Getting Started with Jerry¶
Follow this runbook to go from a freshly installed Jerry instance to your first successful skill invocation. By the end you will have a configured project, a running session, and a persisted output artifact on disk.
Document Sections¶
| Section | Purpose |
|---|---|
| Prerequisites | What you must have before starting |
| Procedure | Step-by-step instructions |
| Verification | How to confirm success |
| Troubleshooting | Common failures and resolutions |
| Next Steps | Where to go after completing this runbook |
Prerequisites¶
Start state: You have completed the Jerry installation documented in
../INSTALLATION.md. Do not proceed until all three criteria below are met.
- [ ]
uvis installed and on your PATH — confirm withuv --version(minimum: uv 0.5.x or later) - [ ] Jerry is cloned to your local filesystem (recommended:
~/plugins/jerry) — confirm withls ~/plugins/jerry/pyproject.toml - [ ] The Jerry plugin is registered in Claude Code — in Claude Code, run
/plugin, go to the Installed tab, and verifyjerryappears (alternatively, confirm withclaude mcp listfrom the terminal)
If any of these are not in place, complete the installation steps in ../INSTALLATION.md first, then return here. That document covers uv installation, Jerry repository cloning, and Claude Code plugin registration.
Tested with: uv 0.5.x, Jerry CLI v0.2.0, Claude Code v2.x. If you are using different versions, the commands in this runbook should still work but minor output differences are possible.
Procedure¶
Step 1: Create a Project Directory¶
Jerry requires an active project to operate. Every session, skill invocation, and output artifact is scoped to a project. This is enforced by rule H-04: the JERRY_PROJECT environment variable MUST be set before any Jerry workflow can proceed.
Create the project directory structure:
# macOS / Linux
mkdir -p projects/PROJ-001-my-first-project/.jerry/data/items
# Windows PowerShell
New-Item -ItemType Directory -Force -Path "projects\PROJ-001-my-first-project\.jerry\data\items"
Create the two required project files:
# macOS / Linux
touch projects/PROJ-001-my-first-project/PLAN.md
touch projects/PROJ-001-my-first-project/WORKTRACKER.md
# Windows PowerShell
New-Item -ItemType File -Force -Path "projects\PROJ-001-my-first-project\PLAN.md"
New-Item -ItemType File -Force -Path "projects\PROJ-001-my-first-project\WORKTRACKER.md"
Expected result: The path projects/PROJ-001-my-first-project/ exists and contains PLAN.md, WORKTRACKER.md, and the .jerry/data/items/ subdirectory.
What are these files?
PLAN.mdholds your project's implementation plan and scope.WORKTRACKER.mdis the project-level work manifest — Jerry's skills and agents write work item entries (tasks, enablers, bugs, decisions) into this file as they execute, giving you a single-file view of all tracked work. You can inspectWORKTRACKER.mdat any time to see what Jerry has tracked for your project.Naming convention: Project IDs follow the pattern
PROJ-{NNN}-{slug}(e.g.,PROJ-001-my-first-project). Use any slug that describes your work. You can list existing projects withjerry projects list.
Step 2: Set the JERRY_PROJECT Environment Variable¶
Jerry reads the JERRY_PROJECT environment variable to determine which project is active. This variable must be set in the same terminal session where you run Claude Code.
# macOS / Linux
export JERRY_PROJECT=PROJ-001-my-first-project
# Windows PowerShell
$env:JERRY_PROJECT = "PROJ-001-my-first-project"
Confirm the variable is set:
Expected output: PROJ-001-my-first-project
Why is this required (H-04)? Jerry's hooks, skills, and output paths all depend on knowing which project is active. Without
JERRY_PROJECT, the SessionStart hook cannot load project context, and any skill that attempts to write an output artifact will fail or write to an incorrect location. This is a hard constraint that cannot be bypassed.Make it persistent: To avoid setting the variable every session, add the
exportline to your shell profile (~/.zshrc,~/.bashrc, or~/.profile). On Windows, set it as a user environment variable via System Properties > Environment Variables.
Step 3: Start a Jerry Session¶
Open Claude Code in the same terminal session where JERRY_PROJECT is set. Jerry's SessionStart hook runs automatically when Claude Code starts. You can also trigger it explicitly:
The SessionStart hook will respond with one of three XML-tagged outputs. Read the output carefully — each tag requires a different action:
| Hook Tag | Meaning | Your Action |
|---|---|---|
<project-context> |
Project found and loaded successfully | Proceed — your session is active |
<project-required> |
JERRY_PROJECT is not set or points to a non-existent project |
Set JERRY_PROJECT per Step 2 and retry |
<project-error> |
Project directory exists but is malformed (missing required files) | Verify PLAN.md and WORKTRACKER.md exist in the project directory, then retry |
Expected output (success):
If you see <project-context>, your session is active and you are ready to invoke skills.
Step 4: Invoke the Problem-Solving Skill¶
The problem-solving skill is the recommended first skill for new Jerry users. It has the lowest friction (no additional prerequisites beyond project setup) and demonstrates Jerry's core value: turning a natural language research or analysis request into a persisted, structured output artifact.
The skill activates automatically when your message contains trigger keywords: research, analyze, investigate, explore, root cause, or why.
Type a message like one of these in Claude Code:
Jerry will invoke the problem-solving skill, run through its research and analysis agents, and save the output artifact to your project directory.
Expected behavior:
- Claude responds by activating the problem-solving skill — you will see a message indicating which agent was selected (e.g., "Invoking ps-researcher...") and where its output will be saved
- The skill runs one or more agents (researcher, analyst, synthesizer, etc.) and streams progress
- A persisted output artifact is written to a subdirectory under projects/PROJ-001-my-first-project/ (e.g., docs/research/ or docs/analysis/)
Step 5: Verify the Output Artifact¶
After the skill completes, confirm the output artifact was saved to disk.
# macOS / Linux
ls projects/PROJ-001-my-first-project/
# Windows PowerShell
Get-ChildItem projects\PROJ-001-my-first-project\
All skill agents persist their output to your project directory as guaranteed by P-002 (file persistence requirement). The specific subdirectory depends on which agent ran — for example, ps-researcher writes to docs/research/, ps-analyst writes to docs/analysis/, and ps-synthesizer writes to docs/synthesis/. See the Problem-Solving Playbook for the full agent-to-directory mapping.
# macOS / Linux — check for any new files recursively
find projects/PROJ-001-my-first-project -name "*.md" -newer projects/PROJ-001-my-first-project/PLAN.md
# Windows PowerShell — list new .md files (exclude PLAN.md and WORKTRACKER.md which were pre-existing)
Get-ChildItem -Recurse projects\PROJ-001-my-first-project\ -Filter "*.md" | Where-Object { $_.Name -notin @("PLAN.md", "WORKTRACKER.md") }
Expected result: One or more .md files exist under projects/PROJ-001-my-first-project/ that were not there before Step 4. Files named PLAN.md and WORKTRACKER.md are pre-existing from Step 1 — look for new files in agent output subdirectories (docs/research/, docs/analysis/, etc.).
Verification¶
End state: You have a configured project with
JERRY_PROJECTset, a successful session start showing<project-context>, and at least one persisted output artifact created by the problem-solving skill.
- [ ]
JERRY_PROJECTis set and resolves to an existing project directory containingPLAN.mdandWORKTRACKER.md - [ ]
jerry session start(or Claude Code startup) produced<project-context>output — not<project-required>or<project-error> - [ ] At least one output artifact (
.mdfile) exists underprojects/PROJ-001-my-first-project/that was created by the problem-solving skill invocation
Troubleshooting¶
| Symptom | Cause | Resolution |
|---|---|---|
jerry session start outputs <project-required> |
JERRY_PROJECT environment variable is not set, or is set in a different terminal session than Claude Code |
Run export JERRY_PROJECT=PROJ-NNN-slug (macOS/Linux) or $env:JERRY_PROJECT = "PROJ-NNN-slug" (Windows PowerShell) in the same terminal session, then restart Claude Code |
jerry session start outputs <project-error> |
JERRY_PROJECT points to a project directory that is missing required files |
Verify the directory projects/$JERRY_PROJECT/ exists and contains both PLAN.md and WORKTRACKER.md; create any missing files with touch (macOS/Linux) or New-Item (Windows), then retry |
| No output artifact created after skill invocation | JERRY_PROJECT was not set when Claude Code started, so skill output has no project context to write to |
Confirm JERRY_PROJECT is set (echo $JERRY_PROJECT), restart Claude Code in the same terminal session, start a new session, and retry the skill invocation |
<project-context> appears but skill does not activate |
Trigger keyword not present in your message, or message phrasing did not match the skill's activation pattern | Use one of the exact trigger keywords: research, analyze, investigate, explore, root cause, why — for example: "Research X" or "Analyze the root cause of Y" |
jerry: command not found |
The Jerry CLI is not on your PATH, or the plugin is not installed | Verify the plugin is installed via /plugin > Installed tab in Claude Code; for CLI access, confirm the Jerry repository is on your PATH or use uv run jerry from the Jerry repository root |
Next Steps¶
After completing this runbook, you have the foundational Jerry workflow in place. Explore the skill playbooks to deepen your use of each skill:
../playbooks/problem-solving.md— All 9 problem-solving agents, trigger keywords, creator-critic cycle, and concrete invocation examples../playbooks/orchestration.md— Multi-phase workflow coordination using orch-planner, orch-tracker, and orch-synthesizer../playbooks/transcript.md— Meeting transcript parsing: CLI invocation, domain contexts, and two-phase workflow