Reference
Full Reference Index
This page is the entry point into the full reference material, split across several pages so nothing requires scrolling through one giant file:
- Skills Reference — every skill, grouped by Setup & Planning, Execution, Status & Review, and Committing & Maintenance.
- Agents — Scrum Master, Developer, Tester: roles, ownership, and responsibilities.
- Hooks — session lifecycle hooks and what they run.
- MCP Tools — Model Context Protocol tools available in a Claude Code session.
The rest of this page covers the repo’s directory structure and the inter-agent communication contract (the typed “sender object” every agent call carries).
Per CLAUDE.md’s Source of Truth rule, skills/, agents/, hooks/, scripts/, and templates/ at the repo root are canonical — this is where every feature is created and edited. .agents/ and .claude/ are generated build outputs (populated by j:self-sync in this monorepo, or by the npm package’s postinstall hook in a consumer project) and are never hand-edited.
skills/ ← Canonical skill source — invoke with j:<name> (see CLAUDE.md)
├── brainstorm/
├── btw/
├── clearify/ (alias: wtf)
├── close-story/
├── commit/
├── continue/
├── convert/
├── deep-dive/
├── dev-done/
├── distribute/
├── do/
├── doc/
├── doc-sync/
├── dooo/
├── error/
├── evaluate/
├── examplify/
├── help/
├── idea/
├── improve/
├── init/
├── j-init/ (Copilot-collision-safe alias of init)
├── jbp/
├── jenga/
├── jenga-permission-level/
├── lgtm/
├── mirror-public/
├── pi-plan/
├── proceed/
├── publish/
├── reconcile/
├── reconcile-origin/
├── redo/
├── self-sync/
├── skillify/
├── spinoff/
├── status/
├── strategy/
├── todo/
├── train/
├── uncharted/
└── wtf/ (alias: clearify)
agents/
├── ai_engineer.md
├── developer.md
├── scrum-master.md
├── scrutiny-agent.md
├── solution-assessor.md
└── tester.md
hooks/
├── on_session_end.sh ← SessionEnd hook (see above)
├── copilot_session_end.sh ← Copilot-equivalent session-end handling
├── prompt_router.sh
├── prompt_router_helper.js
├── session_end_helper.js
└── session_end_watcher.sh
scripts/ ← Shell/JS tooling backing skills, CI, and board operations
├── validate-board.sh ← Board schema/frontmatter validation
├── with-lock.sh ← Advisory file-lock wrapper for concurrent board writes
├── write-context-digest.sh ← Writes resolved_context digests (see Agent Communication Contract)
├── postinstall.js ← npm install hook — mirrors skills/ + agents/ into .claude/ + .agents/
└── ... ← see the directory for the full list (board ops, CI, permission tooling)
templates/
├── SCRUM_BOARD_SCHEMA.md
├── PROBLEM_RAPPORT_TEMPLATE.md
├── EXECUTION_PLAN_TEMPLATE.md
├── EXECUTION_SUMMARY_TEMPLATE.md
├── USER_INSTRUCTIONS_TEMPLATE.md
├── CHANGELOG_TEMPLATE.md
├── JENGA_CONFIG_TEMPLATE.json
├── SKILL.md ← Legacy/simple skill scaffold (predates SKILL_TEMPLATE.md)
├── SKILL_TEMPLATE.md
├── agent-context.md.tpl
├── copilot-instructions.md.tpl
└── permission-levels/ ← level-1-locked.json … level-5-unrestricted.json (see j:jenga-permission-level)
.agents/ and .claude/ ← Generated mirrors — never hand-edited.
In this monorepo: refreshed by j:self-sync.
In a consumer project: `npm install @jenga-ai/agent` copies only
skills/ and agents/ here; hooks/, scripts/, and templates/ are
sourced live from node_modules/@jenga-ai/agent/ at runtime.
project/ ← Created by j:init inside your software project
├── board/
│ ├── epics/ ← E##_<slug>.md
│ ├── stories/ ← E##_S##_<slug>.md
│ └── tasks/ ← E##_S##_T##_<slug>.md
├── configs/
│ ├── workflow.json ← Shared constants (statuses, paths, agents)
│ └── test-config.json ← Test tool stack (owned by Tester, user-approved)
├── data/
│ └── baselines.json ← Analytics baselines (owned by Tester)
├── documentation/
│ ├── plans/ ← Pre-execution plans by Developer
│ └── summaries/ ← Post-execution summaries by Developer
├── ideas.md ← Lightweight idea log (j:idea)
├── instructions/ ← User-action-prerequisite instructions (Developer-written)
├── queue/
│ ├── scrum_triggers.jsonl
│ ├── developer_triggers.jsonl
│ ├── tester_triggers.jsonl
│ ├── context/ ← resolved_context digests (see Agent Communication Contract)
│ ├── handoffs/ ← Session-boundary handoff files
│ └── project_summary_updates.jsonl
├── rapports/
│ ├── problems/ ← Problem rapports (Developer + Tester)
│ └── analysis/ ← Analysis rapports (Tester)
├── logs/
│ └── events.json ← Append-only inter-agent event log
└── PROJECT_SUMMARY.md ← Project source of truth (owned by Scrum Master)
CHANGELOG.md ← Created by j:init at the project's repo root; maintained by j:publish
Every call between agents must include a sender object. This is the typed contract that carries context across boundaries.
{
"sender": {
"agent": "<scrum-master | developer | tester | orchestrator>",
"session_id": "<session id from Claude Code>",
"task_id": "<E##_S##_T##>",
"story_id": "<E##_S##>",
"epic_id": "<E##>",
"date": "<ISO 8601 UTC timestamp>",
"paths": ["<commit SHA 1>", "<commit SHA 2>"],
"worktree": "<absolute path to task worktree>",
"resolved_context": "<optional: path to a digest file under project/queue/context/>"
}
}
Rules:
- Every agent logs every incoming sender object to
project/logs/events.jsonas its first action - The Tester rejects any call with missing required fields (responds with
"error") - The
pathsarray contains commit SHAs from the Developer’s commits for this task - The
worktreefield is the absolute path to the isolated git worktree created by the Developer - The
resolved_contextfield is optional: a size-capped digest (under ~100 lines/a few hundred tokens) of what the sending agent already resolved — relevant schema fields, skill precedent, prior decisions — written viascripts/write-context-digest.shto a unique file underproject/queue/context/. It’s a starting point only, never a restriction — the receiving agent may still read full source files when the digest doesn’t cover what it needs.
Required fields by agent:
| Field | Scrum Master | Developer | Tester |
|---|---|---|---|
agent |
✅ | ✅ | ✅ |
session_id |
✅ | ✅ | ✅ |
task_id |
✅ | ✅ | ✅ |
story_id |
✅ | ✅ | ✅ |
epic_id |
✅ | ✅ | ✅ |
date |
✅ | ✅ | ✅ |
paths (commit SHAs) |
❌ | ✅ | ✅ |
worktree |
❌ | ✅ | ✅ |
resolved_context (optional) |
✅ | ✅ | ❌ |