832375f2ac
All 176 files in the four accumulating directories now use a zero-padded 4-digit counter prefix that reflects creation order (`NNNN-slug.md`). The counter is assigned per directory in strict git-log creation order; ties broken alphabetically by original name. The old `YYYY-MM-DD-` prefix on docs/specs/ and docs/plans/ files is dropped — the date is recoverable from git log and the counter carries the ordering. A file's counter is stable for the life of the file: never reassigned, never reused, never compacted. Deleted files retire their counter; subsequent files do not fill the gap. This is the property that lets cross-references stay literal — refs use the full filename including the counter (`design/contracts/0007-honesty-rule.md`) so they grep cleanly and resolve directly without a glob step. 313 cross-references updated across .md/.rs/.toml/.c/.json files (test pins, include_str! paths, design-INDEX entries, baseline notes, runtime C comments, inter-contract markdown links incl. bare basename and `../models/foo.md` forms). CLAUDE.md gets a new "File-naming convention" section spelling out the rule and rationale. skills/brainstorm/SKILL.md and skills/planner/SKILL.md updated so new spec/plan creation produces counter-prefixed names from the start. The full test suite (cargo test --workspace) passes.
505 lines
22 KiB
Markdown
505 lines
22 KiB
Markdown
# AILang Skill System — Design Spec
|
|
|
|
**Date:** 2026-05-09
|
|
**Status:** Draft — awaiting user spec review
|
|
**Authors:** Brummel (orchestrator) + Claude
|
|
|
|
## Goal
|
|
|
|
Formalise the existing AILang development workflow as a five-skill system
|
|
that lives under `skills/`. The skills codify discipline that is currently
|
|
spread across `CLAUDE.md` and the orchestrator's habits, and they emit
|
|
durable artefacts (specs, plans) that future iterations can reference.
|
|
|
|
The orchestrator (the user) remains the boss: skills are sharper tools, not
|
|
a replacement for judgement. Where the existing per-iteration workflow
|
|
already works (small focused commits, JOURNAL discipline, agent
|
|
delegation), it is preserved verbatim. The new layer formalises the
|
|
*pre-iteration design step* (spec) and the *iteration handoff contract*
|
|
(plan), and turns implicit discipline (tidy-iteration at milestone close,
|
|
RED-first for bugs) into explicit skill invocations.
|
|
|
|
A second goal is **context relief**. Skills delegate to subagents that
|
|
work in isolated context windows; the orchestrator only sees the
|
|
subagent's report, not its raw transcript. Long-running design cycles no
|
|
longer have to fit in one main-context window.
|
|
|
|
This is the bootstrap spec. It defines the system that future specs will
|
|
go through. Once the system is in place, every new milestone starts with
|
|
a spec under `docs/specs/`, and every iteration starts with a plan under
|
|
`docs/plans/`.
|
|
|
|
## Architecture
|
|
|
|
### Five skills
|
|
|
|
All five skills are project-local under `skills/`. Names are imperative
|
|
verbs without milestone-/iteration- scope prefixes — the trigger
|
|
condition is encoded in each skill's `description` frontmatter, not in
|
|
its name.
|
|
|
|
| Skill | Trigger | Output | Verbindlichkeit |
|
|
|-------|---------|--------|-----------------|
|
|
| `brainstorm` | New milestone starting | `docs/specs/<milestone>.md` | Hard-gate before plan |
|
|
| `plan` | New iteration within an open milestone | `docs/plans/<iteration>.md` | Hard-gate before implement |
|
|
| `implement` | Plan exists | Code + tests + per-task commits + JOURNAL entry | Standard iteration path |
|
|
| `audit` | Milestone closing OR baseline drift suspected | Drift report + bench-regression report + rustdoc audit | **Mandatory** at milestone close |
|
|
| `debug` | Bug encountered (red test, segfault, wrong stdout) | RED-test commit + cause analysis | **Mandatory RED-first** for any bug |
|
|
|
|
### Directory layout
|
|
|
|
```
|
|
skills/
|
|
brainstorm/
|
|
SKILL.md
|
|
plan/
|
|
SKILL.md
|
|
implement/
|
|
SKILL.md
|
|
agents/
|
|
ailang-implementer.md
|
|
ailang-tester.md
|
|
audit/
|
|
SKILL.md
|
|
agents/
|
|
ailang-architect.md
|
|
ailang-bencher.md
|
|
ailang-docwriter.md
|
|
debug/
|
|
SKILL.md
|
|
agents/
|
|
ailang-debugger.md
|
|
agents/
|
|
README.md # roster: pointers into skills/<name>/agents/
|
|
docs/
|
|
specs/ # NEW — emitted by brainstorm
|
|
plans/ # NEW — emitted by plan
|
|
DESIGN.md # unchanged
|
|
JOURNAL.md # unchanged
|
|
```
|
|
|
|
`brainstorm` and `plan` have no private agents — both run as a dialogue
|
|
between orchestrator and user, producing the artefact directly.
|
|
|
|
`implement`, `audit`, and `debug` each own the agents they dispatch. An
|
|
agent definition lives next to the skill that primarily uses it.
|
|
|
|
`ailang-docwriter` lives under `audit` because rustdoc drift is a form
|
|
of drift covered by the milestone-close audit pass — even though
|
|
docwriter writes (rather than only diagnoses) it is a low-frequency,
|
|
read-mostly tool that fits the audit cycle.
|
|
|
|
### `.claude/agents/` discovery
|
|
|
|
Subagent-type discovery requires the agent definitions to be reachable
|
|
from `.claude/agents/`. Pragmatic resolution: one symlink per agent
|
|
directory, created at install time:
|
|
|
|
```
|
|
.claude/agents/implement -> ../../skills/implement/agents
|
|
.claude/agents/audit -> ../../skills/audit/agents
|
|
.claude/agents/debug -> ../../skills/debug/agents
|
|
```
|
|
|
|
This keeps the agent files visible in the project tree (per the existing
|
|
convention in `agents/README.md`) while still letting the Claude harness
|
|
find them.
|
|
|
|
## Core rules adopted from Superpowers
|
|
|
|
The five skills inherit non-trivial discipline from the Anthropic
|
|
`superpowers` skill set. These are the rules adopted verbatim or with
|
|
minimal adaptation. They live at the top of each relevant SKILL.md so
|
|
future readers do not have to recover them from the upstream source.
|
|
|
|
### From `superpowers:brainstorming` → adopted by `brainstorm`
|
|
|
|
- **HARD-GATE:** No implementation, scaffolding, or downstream skill
|
|
invocation until a spec has been presented and the user has approved
|
|
it. Applies to every milestone regardless of perceived simplicity.
|
|
- **One question at a time.** Multi-question messages overwhelm and
|
|
collapse signal.
|
|
- **Propose 2-3 approaches** with trade-offs and a recommendation
|
|
before settling on a design. Lead with the recommended option.
|
|
- **Design in sections** scaled to complexity; ask after each section
|
|
whether it looks right.
|
|
- **Spec self-review** after writing: placeholder scan, internal
|
|
consistency, scope check, ambiguity check. Fix issues inline.
|
|
- **User review gate** after the spec is committed: ask the user to
|
|
review the file before proceeding to plan.
|
|
- **Terminal state = invoke `plan`.** No other skill is invoked from
|
|
`brainstorm`.
|
|
|
|
### From `superpowers:writing-plans` → adopted by `plan`
|
|
|
|
- **Bite-sized tasks** (one action per step, 2-5 minutes each).
|
|
- **No Placeholders rule:** the plan MUST NOT contain "TBD", "TODO",
|
|
"implement later", "add appropriate error handling", "similar to
|
|
Task N", or steps that describe what to do without showing the code.
|
|
- **File structure first:** before defining tasks, map which files
|
|
are created or modified and what each one is responsible for.
|
|
- **Plan header** with required sub-skill reference, goal, architecture
|
|
summary, tech stack.
|
|
- **Self-review** after writing: spec coverage, placeholder scan, type
|
|
consistency across tasks.
|
|
|
|
### From `superpowers:executing-plans` and `superpowers:subagent-driven-development` → adopted by `implement`
|
|
|
|
- **Fresh subagent per task.** Subagents do not inherit orchestrator
|
|
context; the orchestrator constructs exactly the context the subagent
|
|
needs.
|
|
- **Two-stage review per task:** spec compliance first, code quality
|
|
second. Code-quality review never starts before spec compliance is
|
|
green.
|
|
- **Continuous execution.** No "should I continue?" between tasks.
|
|
Stop only on `BLOCKED` status or unresolvable ambiguity.
|
|
- **Status handling:** `DONE` → spec review; `DONE_WITH_CONCERNS` →
|
|
read concerns first; `NEEDS_CONTEXT` → provide context, redispatch;
|
|
`BLOCKED` → escalate (context, model, split, or user).
|
|
- **Model selection** scales with task complexity: cheap model for
|
|
isolated mechanical tasks, standard for multi-file integration, top
|
|
model for design judgement and review.
|
|
- **Controller curates context.** The orchestrator hands the subagent
|
|
full task text and surrounding scene-set; the subagent does not
|
|
re-read the plan file.
|
|
|
|
### From `superpowers:systematic-debugging` → adopted by `debug`
|
|
|
|
- **Iron Law:** *NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST.*
|
|
Symptom fixes are failure.
|
|
- **Four phases:** Root Cause → Pattern Analysis → Hypothesis → Fix.
|
|
Each phase must complete before the next.
|
|
- **Phase 4.5:** if 3+ fixes have failed, the architecture is wrong,
|
|
not the latest hypothesis. STOP, surface the architecture question
|
|
to the user, do not attempt Fix #4.
|
|
- **RED first** (project-local, from `CLAUDE.md`): the failing test
|
|
is committed before any fix is attempted. Bug fix without a
|
|
regression test is a code change, not a fix.
|
|
- **Cross-skill anchor:** "Violating the letter of these rules is
|
|
violating the spirit." Lifted verbatim from the upstream skill,
|
|
printed at the top of every SKILL.md.
|
|
|
|
### From `superpowers:writing-skills` → adopted by every skill (meta)
|
|
|
|
- **TDD for skills.** Every SKILL.md is built RED → GREEN → REFACTOR:
|
|
pressure scenarios with a fresh subagent first (RED, baseline),
|
|
minimal SKILL.md addressing the documented rationalisations second
|
|
(GREEN), loophole-closing iterations third (REFACTOR).
|
|
- **CSO (Claude Search Optimization).** Description starts with
|
|
"Use when…" and lists triggers, not workflow. No process summary in
|
|
the description.
|
|
- **Cross-references** to other skills use explicit requirement markers
|
|
("REQUIRED SUB-SKILL: …") rather than `@`-loads (which burn context
|
|
immediately).
|
|
|
|
## Components
|
|
|
|
### CLAUDE.md migration
|
|
|
|
CLAUDE.md splits into **orchestrator identity** (stays) and **discipline
|
|
detail** (moves into skills, with a one-line reference back from
|
|
CLAUDE.md).
|
|
|
|
**Stays in CLAUDE.md:**
|
|
|
|
- Project mission ("Invent your own programming language")
|
|
- Code layout table
|
|
- "My role: orchestrator" (delegation rules, when not to delegate)
|
|
- "Design rationale ≠ implementation effort"
|
|
- "Direction freedom" + "Notifications"
|
|
- "Roles of JOURNAL.md and DESIGN.md"
|
|
|
|
**Moves into skills (CLAUDE.md keeps a one-line pointer):**
|
|
|
|
| CLAUDE.md section | Destination skill |
|
|
|-------------------|-------------------|
|
|
| "Bug fixes — TDD, always" (RED first / GREEN second / keep the test) | `debug` (Iron Law) |
|
|
| "Tidy-iteration at milestone boundaries" (mandatory, drift review) | `audit` (trigger logic + escalation) |
|
|
| "Performance regressions" (`bench/check.py` + `bench/compile_check.py` + `bench/cross_lang.py`, exit codes 0/1/2) | `audit` (bench discipline) |
|
|
| "Feature acceptance: LLM utility" (full criterion, beyond the CLAUDE.md summary) | `brainstorm` (feature gate during spec writing) |
|
|
|
|
CLAUDE.md keeps a short pointer in each migrated section, e.g.:
|
|
|
|
> **Bug fixes** are RED-first TDD, autonomous, no orchestrator gate.
|
|
> Full discipline lives in `skills/debug/SKILL.md`.
|
|
|
|
This way `CLAUDE.md` shrinks but a reader who only opens it still gets
|
|
the headline rule and a pointer to the binding source.
|
|
|
|
### Agent migration
|
|
|
|
Agent definitions move via `git mv`. Frontmatter (`name`, `description`,
|
|
`tools`) is preserved unchanged. The "mandatory reading order" sections
|
|
inside each agent stay — they are agent discipline, not skill
|
|
discipline.
|
|
|
|
The dirigierende skill provides the **task context** (plan extract, bug
|
|
symptom, drift item) so the agent does not have to rediscover it. This
|
|
is the controller-curates-context pattern from
|
|
`superpowers:subagent-driven-development`.
|
|
|
|
Migration map:
|
|
|
|
```
|
|
agents/ailang-implementer.md -> skills/implement/agents/ailang-implementer.md
|
|
agents/ailang-tester.md -> skills/implement/agents/ailang-tester.md
|
|
agents/ailang-architect.md -> skills/audit/agents/ailang-architect.md
|
|
agents/ailang-bencher.md -> skills/audit/agents/ailang-bencher.md
|
|
agents/ailang-docwriter.md -> skills/audit/agents/ailang-docwriter.md
|
|
agents/ailang-debugger.md -> skills/debug/agents/ailang-debugger.md
|
|
agents/README.md -> agents/README.md (rewritten as a
|
|
pointer roster)
|
|
```
|
|
|
|
After migration, `agents/` contains only `README.md`. The README is
|
|
rewritten to point into `skills/<name>/agents/` and to explain the
|
|
project convention (agents live next to their skill).
|
|
|
|
## Data flow
|
|
|
|
### Pipeline 1: milestone happy path
|
|
|
|
```
|
|
[orchestrator: new milestone starting]
|
|
|
|
|
v
|
|
brainstorm
|
|
Q&A dialogue with user (one question at a time, 2-3 approaches, design)
|
|
write docs/specs/<milestone>.md
|
|
commit: "spec: <milestone> <topic>"
|
|
|
|
|
v
|
|
[orchestrator: first iteration of milestone]
|
|
|
|
|
v
|
|
plan
|
|
read docs/specs/<milestone>.md
|
|
write docs/plans/<iteration>.md (header references parent spec)
|
|
commit: "plan: <iteration> <subject>"
|
|
|
|
|
v
|
|
implement
|
|
read docs/plans/<iteration>.md
|
|
dispatch implementer (per task) -> spec-review -> code-quality-review
|
|
dispatch tester (E2E coverage)
|
|
per-task commits: "iteration <iteration>.<n>: <subject>"
|
|
JOURNAL entry: "## YYYY-MM-DD — Iteration <iteration>: <title>"
|
|
```
|
|
|
|
### Pipeline 2: milestone close path
|
|
|
|
```
|
|
[orchestrator: milestone-tidy due]
|
|
|
|
|
v
|
|
audit
|
|
dispatch architect -> drift report
|
|
run bench/check.py && bench/compile_check.py && bench/cross_lang.py
|
|
dispatch docwriter (optional, if rustdoc drift suspected)
|
|
classify: 0 (clean) | 1 (drift/regression) | 2 (infra failure)
|
|
report to orchestrator
|
|
|
|
|
+--- exit 0 (clean) -------> JOURNAL: "Milestone-<X> tidy (clean)"
|
|
|
|
|
+--- exit 1 (drift/regression)
|
|
| |
|
|
| v
|
|
| plan + implement (tidy-iteration) OR ratify in DESIGN.md
|
|
| commit: "iteration <X>.tidy: <fix>" OR JOURNAL ratify entry
|
|
|
|
|
+--- exit 2 (infra failure)
|
|
|
|
|
v
|
|
fix infrastructure FIRST, re-run audit
|
|
```
|
|
|
|
### Pipeline 3: bug autonomous TDD path
|
|
|
|
```
|
|
[orchestrator: bug observed]
|
|
|
|
|
v
|
|
debug
|
|
dispatch debugger
|
|
reproduce + isolate
|
|
write RED test (failing on current code)
|
|
commit: "test: red for <symptom>"
|
|
diagnosis report (Symptom, Cause, Fix-Vorschlag)
|
|
hand-off: bug-context + RED-test path
|
|
|
|
|
v
|
|
implement (mini-mode, no docs/plans/ file for trivial fixes)
|
|
dispatch implementer with RED-test as goal:
|
|
"make this test pass, minimal change"
|
|
commit: "fix: <symptom>"
|
|
JOURNAL entry: "## YYYY-MM-DD — Bug fix: <symptom>"
|
|
```
|
|
|
|
### Handoff contracts
|
|
|
|
Every handoff carries an explicit, named context. No implicit "the next
|
|
skill knows what to do":
|
|
|
|
| Handoff | Carrier |
|
|
|---------|---------|
|
|
| `brainstorm` -> `plan` | path to `docs/specs/<milestone>.md` + iteration scope ("section X+Y of the spec is what this iteration covers") |
|
|
| `plan` -> `implement` | path to `docs/plans/<iteration>.md` + optional task focus ("only Tasks 1-3 this run") |
|
|
| `debug` -> `implement` | RED-test path + 1-2-sentence cause summary + hard constraint ("minimal fix, no surrounding cleanup") |
|
|
| `audit` -> orchestrator | prioritised drift items + bench exit code + raw bench numbers + recommendation ("fix N", "ratify M", "carry on") |
|
|
|
|
### Skipping rules (codified in the skills, not ad-hoc)
|
|
|
|
| Skill | May be skipped when | Never skipped when |
|
|
|-------|---------------------|--------------------|
|
|
| `brainstorm` | Iteration is tidy / bug fix / trivial mechanic (≤1 file, ≤30 LOC, no design judgement) | New milestone starts |
|
|
| `plan` | Bug fix where RED-test is sufficient as plan; trivial mechanic | Standard iteration within an active milestone |
|
|
| `implement` | — | Always required when there is code to ship |
|
|
| `audit` | — | **Always** at milestone close; deferral requires a JOURNAL entry naming the reason and the re-run date |
|
|
| `debug` | — | **Always** for any observable bug; trivial bugs still get RED first |
|
|
|
|
Each skill's `SKILL.md` repeats the relevant skipping clause from this
|
|
table verbatim — the rule lives in the skill, not just here.
|
|
|
|
### Commit-per-stage invariant
|
|
|
|
Each pipeline stage commits its own artefact before handing off. Specs,
|
|
plans, RED-tests, and per-task implementation diffs are separate
|
|
commits. This makes every stage independently revertable: `git revert
|
|
<plan-commit>` discards the plan only, leaving the spec intact. The
|
|
convention also gives `audit` clean drift-review boundaries (commit
|
|
ranges per milestone correspond to spec ranges).
|
|
|
|
## Error handling
|
|
|
|
### Escalation ladder
|
|
|
|
Common across all five skills:
|
|
|
|
| Level | Decider | Trigger |
|
|
|-------|---------|---------|
|
|
| L1 — skill-internal recovery | The skill itself | Subagent reports `NEEDS_CONTEXT` -> provide more context, redispatch (max 2x with same model) |
|
|
| L2 — bounce to previous skill | The skill | `plan` cannot decompose spec -> back to `brainstorm`; implementer finds spec/code contradiction -> back to `plan` |
|
|
| L3 — orchestrator decision | Me | Task too large to fit one plan -> split; reasoning insufficient -> stronger model; design-rationale fork |
|
|
| L4 — user decision | User | Spec/DESIGN.md conflict; 3+ failed fix attempts in `debug` (architecture question); `audit` drift item where fix vs ratify is unclear |
|
|
|
|
### Skill-specific stop conditions
|
|
|
|
- **`brainstorm`** — After 3 approach iterations with no convergence,
|
|
STOP. User decides whether the milestone is dropped (commit message
|
|
`wip: drop spec, scope unclear`) or paused.
|
|
- **`plan`** — Spec containing a placeholder ("TBD", "implement later")
|
|
bounces back to `brainstorm`. The plan itself MUST contain no
|
|
placeholders (writing-plans Iron Rule, adopted verbatim).
|
|
- **`implement`** — implementer status `BLOCKED` with reason
|
|
"task too large" -> split + new plan. Status `BLOCKED` with reason
|
|
"design conflict" -> escalate to user. Never push past `BLOCKED` by
|
|
hand (context pollution).
|
|
- **`debug`** — Phase 4.5 trigger: 3+ failed fix attempts mean the
|
|
pattern is wrong, not the latest hypothesis. STOP, surface the
|
|
architecture question to the user. No bug fix without a RED-test
|
|
first; no "I'll write the test after I've confirmed the fix".
|
|
- **`audit`** — Bench exit code 2 (infrastructure failure) means fix
|
|
infrastructure FIRST and never report it as a regression. Drift
|
|
items where fix-vs-ratify is genuinely unclear escalate to the user.
|
|
|
|
### Cross-skill rule
|
|
|
|
> **Violating the letter of these rules is violating the spirit.**
|
|
|
|
This single sentence (lifted verbatim from
|
|
`superpowers:systematic-debugging`) lives at the top of every SKILL.md.
|
|
"It's obvious, so we can skip the spec/plan/audit step" is not a valid
|
|
argument — the codified skipping rules in *Data flow* are the only
|
|
sanctioned way to skip. Ad-hoc judgement that a step is unnecessary
|
|
is exactly the failure mode the system exists to prevent.
|
|
|
|
## Testing strategy
|
|
|
|
Skills are developed under TDD per `superpowers:writing-skills`: RED
|
|
baseline first, GREEN minimal skill second, REFACTOR loopholes third.
|
|
|
|
### Per-skill pressure scenarios (for the RED phase)
|
|
|
|
| Skill | Scenarios |
|
|
|-------|-----------|
|
|
| `brainstorm` | (a) "Idea is clear, write the plan now" — must hold the spec hard-gate. (b) "This milestone is trivial, no spec needed" — must cite the skipping rule or run anyway. (c) "Just sketch a one-paragraph spec, full design is overkill" — must produce a real spec or block. |
|
|
| `plan` | (a) "TBD steps are fine, I'll fill them in later" — No-Placeholders rule. (b) "Bundle these as one big step, faster" — bite-sized rule. (c) "Skip the spec, I know the milestone already" — bounce to `brainstorm`. |
|
|
| `implement` | (a) "Skip spec-review, the implementer self-reviewed" — both reviews still required. (b) "Commit straight to main" — never without explicit user consent. (c) "Implementer says DONE_WITH_CONCERNS, move on" — must read concerns first. |
|
|
| `debug` | (a) "Cause is obvious, fix it directly" — reproduce + RED first. (b) "Bug is trivial, no test needed" — TDD anyway. (c) "Fix #3 failed, one more try" — Phase 4.5 architecture question, no Fix #4. |
|
|
| `audit` | (a) "Tidy-iteration later, we're in a hurry" — mandatory at milestone close. (b) "Bench is red, just bump the baseline" — only with `--update-baseline` AND a JOURNAL ratify entry. (c) "Drift item doesn't matter, ignore it" — must be either fixed or ratified. |
|
|
|
|
### Verification sequence per skill
|
|
|
|
1. **RED** — A general-purpose subagent receives the pressure scenario
|
|
without the skill's content. Document its rationalisations and
|
|
shortcuts verbatim.
|
|
2. **GREEN** — Write the SKILL.md with the documented rationalisations
|
|
as explicit counters in a "Common Rationalisations" table. Hand the
|
|
skill content + scenario to a fresh subagent. It must comply.
|
|
3. **REFACTOR** — A third subagent run, same scenario plus minor
|
|
variations, looking for new loopholes. Add explicit counters for
|
|
each found loophole. Re-test until bulletproof.
|
|
|
|
Minimum **3 independent subagent runs** in the GREEN+REFACTOR phases
|
|
per skill. A single passing run is not evidence — random compliance is
|
|
possible.
|
|
|
|
### Acceptance criterion per skill
|
|
|
|
A skill ships (= is committed to `skills/`) only after:
|
|
|
|
- 3 RED scenarios have been run and the rationalisations documented in
|
|
the skill's `Common Rationalisations` table.
|
|
- 3+ GREEN/REFACTOR runs all pass without further amendment.
|
|
- The skill's `description` frontmatter is technology-agnostic and
|
|
trigger-focused (no workflow summary — see CSO section in
|
|
`superpowers:writing-skills`).
|
|
|
|
## Implementation order
|
|
|
|
The skills depend on each other transitively (a `plan` skill cannot be
|
|
built without a working `brainstorm` skill upstream of it), but the test
|
|
discipline does not require the dependency chain to be live for testing
|
|
— the pressure scenarios are self-contained.
|
|
|
|
The initial ordering choice is at the orchestrator's discretion; the
|
|
recommended sequence is the one that ships independent, testable
|
|
artefacts first:
|
|
|
|
1. `debug` skill (smallest scope, clearest Iron Law, no upstream
|
|
dependency since bugs do not flow through brainstorm/plan).
|
|
2. `audit` skill (also independent of brainstorm/plan; migrates the
|
|
existing tidy-iteration discipline).
|
|
3. `implement` skill (consumes plans, dispatches implementer + tester;
|
|
depends on plan format being defined).
|
|
4. `plan` skill (produces what `implement` consumes).
|
|
5. `brainstorm` skill (top of the pipeline).
|
|
6. CLAUDE.md split + agent migration + `.claude/agents/` symlink setup.
|
|
7. First audit on the new infrastructure itself.
|
|
|
|
The first milestone to use the new system end-to-end is the next
|
|
milestone after the build-out. Iteration numbering for the build-out
|
|
is fixed by the orchestrator at plan time.
|
|
|
|
## Acceptance criteria for the system as a whole
|
|
|
|
The skill system is considered shipped when:
|
|
|
|
- All five SKILL.md files exist under `skills/<name>/SKILL.md` with
|
|
passing pressure tests.
|
|
- Agent definitions have moved to their target locations and
|
|
`.claude/agents/` symlinks resolve.
|
|
- CLAUDE.md is split: orchestrator-identity stays, migrated sections
|
|
carry one-line pointers to the relevant skill.
|
|
- `docs/specs/` and `docs/plans/` exist with at least this spec and
|
|
the implementation plan derived from it as their first inhabitants.
|
|
- A JOURNAL entry records the system as live and names the next
|
|
milestone as the first end-to-end consumer.
|
|
|
|
The headline test is: **the next milestone after the build-out is
|
|
brainstormed, planned, implemented, and audited entirely through the
|
|
skill system, with no ad-hoc orchestrator improvisation.** If the
|
|
orchestrator catches themselves bypassing a skill mid-milestone, that
|
|
is a skill bug to be fixed in a follow-up iteration — not a permitted
|
|
shortcut.
|