Project Kit

v0.6.0 · generated

Projects

Read from your own registry at ~/.claude/project-kit/registry.json. Project data is deliberately never committed to this repo — the repo is the tool.

Projects
0
In flight
0
Judged
0
Launched
0

Status

No projects yet. Run /ideate <your idea> in a project directory and this table fills itself from ~/.claude/project-kit/registry.json.

Install

claude plugin marketplace add miricoder/project-kit
claude plugin install project-kit

Then /reload-plugins, or start a new session. Verify with claude plugin details project-kit; update later with claude plugin update project-kit.

Requires Claude Code 2.x or newer — plugin support. Check claude --version; upgrade with npm i -g @anthropic-ai/claude-code@latest.

Using it

/ideate I want an app that tracks my houseplants
/pipeline                 # where are we, what runs next
/pipeline mode yolo       # manual | auto | yolo
/pipeline run --to design
ModeBehaviourStops
manualStops after every phase and offers a menuevery phase
auto (default)Advances between phases, stopping at the four checkpoints4 checkpoints
yoloEnd to end with no pipeline stops, subject to the budget capnone

Two layers of autonomy

yolo removes Project Kit's checkpoints. It cannot remove Claude Code's own tool-permission prompts — those are harness-level and no plugin can suppress them. For a genuinely unattended run, allowlist them too:

// ~/.claude/settings.json
{
  "permissions": {
    "allow": ["Bash(python3:*)", "Bash(git:*)", "Bash(gh:*)", "Edit", "Write"]
  }
}

/pipeline mode yolo reports whether this is configured, so the mode never looks hands-off while silently waiting on a prompt.

Budget

Every project carries budget.max_usd in its pipeline.json. yolo adds no confirmation stops but still halts when spend passes the ceiling — what that rules out is an unattended REJECT → re-judge → REJECT loop burning credit with nobody watching.

The judge panel

The judge gate needs three verdicts from three different model families. Two rules are enforced in code, not left to judgement:

  1. No family may hold two seats. Two judges from one family share priors, producing a ruling that looks independent and is not.
  2. The authoring family is excluded. Claude writes the plan, so Anthropic cannot judge it.
TransportWhen
api_keyA real API key exists. Fully automated
cliA subscription-backed CLI — e.g. npm i -g @openai/codex reuses an existing ChatGPT login, no API key and no extra cost
pasteNeither. The brief is rendered for you to paste, and the returned JSON is validated before being accepted

A ChatGPT subscription is not an OpenAI API key. Using api_key for that seat means paying for API usage separately; cli avoids it.

No keys at all? Name three families you will paste for by hand — PROJECT_KIT_PASTE_SEATS=google,moonshot,openai in ~/.claude/project-kit/.env — and the panel can sit. Every reply is validated against the judge form before it counts, however it arrived.

Every judge rates the same nine criteria and replies in one fixed format; the three verdicts are combined by a fixed rule (the median by severity) into docs/ruling.md, which shows every judge's rating on every criterion. The full form is skills/handover/references/judge-form.md.

Where your data lives

WhatWhere
Per-project phase state, gates, mode, budget<project>/pipeline.json
Human-readable project snapshot<project>/.github/projects/<name>.md
Registry of all projects, for the table above~/.claude/project-kit/registry.json