arbiterforge/codearbiter-brainstorming
The Socratic spec-refinement front of /feature, and the planning front of /sprint. Routed to BEFORE any code — it takes a one-line idea and drives it to an approved, concrete spec with testable acceptance criteria. Four gated phases — frame, refine, write, approve. No implementation and no handoff to tdd until the spec is on disk and approved; each acceptance criterion becomes one tdd Phase 1 obligation.
npx skills add https://github.com/arbiterForge/codeArbiter --skill brainstorming
Refine the idea before it touches code. Routed to by /feature (before tdd) and by /sprint (the planning front).
Read these, or STOP and surface the gap — never guess scope or stack:
<project-root>/.codearbiter/CONTEXT.md — the stage: frontmatter (the maturity value), domain vocabulary, and what the project is NOT building.<project-root>/.codearbiter/tech-stack.md — the stack the feature must fit; rule out incompatible designs early.<project-root>/.codearbiter/open-questions.md — existing [CONFIRM-NN] items; new ones number sequentially from here.Per-feature and light. NOT decompose's whole-project six-layer interview — one feature, four phases.
Take the one-line idea and pin its boundaries before asking anything else:
CONTEXT.md: it never contradicts the NOT-building list or redefines domain vocabulary. A contradiction is a conflict — surface it, do not reconcile it silently.Gate: problem, caller, and out-of-scope boundary stated and consistent with CONTEXT.md.
One focused question at a time. Never advance on a hand-wavy answer. Run every answer through three lenses:
[CONFIRM-NN].tdd.Record every genuinely-unresolved unknown as [CONFIRM-NN] in <project-root>/.codearbiter/open-questions.md, numbered sequentially. A finding that belongs to a different feature or a future scope gets an inline [NEEDS-TRIAGE] marker in the notes — never route it to a ticket.
Gate: every vague term made concrete; every forced trade-off resolved or recorded as [CONFIRM-NN]; no unresolved "later" outside a [CONFIRM-NN]. A blocking [CONFIRM-NN] that gates the spec's core stops the loop — surface it and STOP.
Write the agreed spec to <project-root>/.codearbiter/specs/<slug>.md. The slug is derived from the feature. The spec holds:
tdd Phase 1 obligations — one obligation per criterion, so an untestable criterion is a defect to fix here, not in tdd.[CONFIRM-NN] raised, cross-referenced to open-questions.md.Governs: <comma-separated globs> that enrolls the approved spec in file-scoped just-in-time context injection: on a Read of any file matching one of the listed globs, a pointer to this spec is surfaced to the agent (tier 3 of the file→knowledge map). Adding the line is sufficient to enroll; no other change required.Gate: the spec file exists on disk under specs/, with at least one acceptance criterion and every criterion individually testable.
The spec is approved before any code is written or any handoff to tdd occurs — no exceptions:
/feature — present the spec and request explicit user approval. Iterate on the file in place until the user approves. A blocking [CONFIRM-NN] must be resolved by the user before approval — never auto-resolve it./sprint — approval may be granted automatically by SMARTS scoring, logged to the .codearbiter/ audit trail. A blocking [CONFIRM-NN] is never auto-approvable; it escalates to the user and STOPs the sprint flow.On approval, hand off to the tdd skill, which enters Phase 1 against the approved spec — one obligation per acceptance criterion.
Gate: the spec is approved (by the user under /feature, or by logged SMARTS auto-approval under /sprint) with no unresolved blocking [CONFIRM-NN]. Only then does control pass to tdd.
tdd before the spec is on disk under specs/ AND approved.[CONFIRM-NN] by guessing — surface it and record it in open-questions.md.[CONFIRM-NN], even under /sprint — it escalates to the user.CONTEXT.md — a contradiction is a conflict to surface, not reconcile./sprint auto-approval to the .codearbiter/ audit trail.${CLAUDE_PLUGIN_ROOT}/includes/harvest.md) over any [NEEDS-TRIAGE] notes raised this run — batch-confirm promoting them to open-tasks.md (work) or open-questions.md (decisions) so out-of-scope ideas don't vanish.Take arbiterforge/codearbiter-brainstorming from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.