diff --git a/.claude/skills/plan b/.claude/skills/plan deleted file mode 120000 index d296e8b..0000000 --- a/.claude/skills/plan +++ /dev/null @@ -1 +0,0 @@ -../../skills/plan \ No newline at end of file diff --git a/.claude/skills/planner b/.claude/skills/planner new file mode 120000 index 0000000..af5fdee --- /dev/null +++ b/.claude/skills/planner @@ -0,0 +1 @@ +../../skills/planner \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index ecef8f8..8548bc7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -266,7 +266,7 @@ Existing entries are not retroactively renamed. plan or code work for the milestone. - **`docs/plans/.md`** (since 2026-05-09): per-iteration - bite-sized executable plan produced by `skills/plan`, consumed + bite-sized executable plan produced by `skills/planner`, consumed by `skills/implement`. - **`docs/WhatsNew.md`** (since 2026-05-11): the user-facing diff --git a/docs/DESIGN.md b/docs/DESIGN.md index 1dc64dd..648e233 100644 --- a/docs/DESIGN.md +++ b/docs/DESIGN.md @@ -40,7 +40,7 @@ evolving in lockstep with the language: - **Examples** (`examples/`): canonical `.ail.json` programs. They are specification anchors, not demos — the E2E suite hangs off them. - **Skills** (`skills/`): specialised disciplines - (`brainstorm`, `plan`, `implement`, `audit`, `debug`, + (`brainstorm`, `planner`, `implement`, `audit`, `debug`, `fieldtest`) plus the agent rosters they dispatch (`skills//agents/`). They form the project's own development methodology and are versioned with the codebase. diff --git a/docs/specs/2026-05-11-implement-orchestrator-agent.md b/docs/specs/2026-05-11-implement-orchestrator-agent.md index 560470c..bc0d83b 100644 --- a/docs/specs/2026-05-11-implement-orchestrator-agent.md +++ b/docs/specs/2026-05-11-implement-orchestrator-agent.md @@ -531,7 +531,7 @@ single commit (or one commit per category, atomically). - **Worker model downgrade** (cheap models for simple subagents). User has explicitly excluded this; all roles stay at Opus 4.7. - **Stats aggregation tool** — written once empirical data exists. -- **Plan-drafter sub-agent** for the `/plan` skill. Separate hebel, +- **Plan-drafter sub-agent** for the `/planner` skill. Separate hebel, separate spec. - **`/brainstorm` spec-drafter** — usage statistic shows `/brainstorm` at 2%, not cost-effective. diff --git a/skills/README.md b/skills/README.md index 66f72d3..54ed6d4 100644 --- a/skills/README.md +++ b/skills/README.md @@ -15,7 +15,7 @@ The system was bootstrapped on 2026-05-09. See | Skill | Trigger | Output | Mandatory? | |-------|---------|--------|------------| | [`brainstorm`](brainstorm/SKILL.md) | New milestone starting | `docs/specs/.md` | Hard-gate before plan | -| [`plan`](plan/SKILL.md) | New iteration within an open milestone | `docs/plans/.md` | Hard-gate before implement | +| [`planner`](planner/SKILL.md) | New iteration within an open milestone | `docs/plans/.md` | Hard-gate before implement | | [`implement`](implement/SKILL.md) | Plan exists | Code + tests + per-task commits + JOURNAL entry | Standard iteration path | | [`audit`](audit/SKILL.md) | Milestone closing OR baseline drift suspected | Drift report + bench-regression report + rustdoc audit | **Mandatory** at milestone close | | [`fieldtest`](fieldtest/SKILL.md) | After audit closes a milestone that touched user-visible surface | 2-4 `.ailx` example fixtures + `docs/specs/-fieldtest-.md` | Standard milestone-close path; skipped only for purely internal milestones | @@ -115,7 +115,7 @@ Two symlink sets, both tracked in git, no setup needed after clone: ``` .claude/skills/brainstorm -> skills/brainstorm -.claude/skills/plan -> skills/plan +.claude/skills/planner -> skills/planner .claude/skills/implement -> skills/implement .claude/skills/audit -> skills/audit .claude/skills/fieldtest -> skills/fieldtest diff --git a/skills/audit/SKILL.md b/skills/audit/SKILL.md index ed929bc..ba023f7 100644 --- a/skills/audit/SKILL.md +++ b/skills/audit/SKILL.md @@ -87,7 +87,7 @@ into one report to the orchestrator (me). Each item is one of: ### Step 5 — Resolve The orchestrator picks per item: -- **fix path:** dispatch `plan` + `implement` for a tidy iteration. +- **fix path:** dispatch `planner` + `implement` for a tidy iteration. Commit pattern: `iter .tidy: `. - **ratify path:** `--update-baseline` + JOURNAL entry. The entry names the iter that moved the metric and the language reason @@ -138,7 +138,7 @@ self-resolve. - `skills/audit/agents/ailang-bencher.md` — bench-regression diagnostics if a metric needs localising - `skills/audit/agents/ailang-docwriter.md` — rustdoc cleanup -- **Hand-off target:** orchestrator (me), or `plan` + `implement` +- **Hand-off target:** orchestrator (me), or `planner` + `implement` for a tidy iteration. - **Project source:** former CLAUDE.md sections "Iter cycle / Tidy-iter at family boundaries" and "Performance regressions" are superseded diff --git a/skills/brainstorm/SKILL.md b/skills/brainstorm/SKILL.md index cd912eb..36ab6cb 100644 --- a/skills/brainstorm/SKILL.md +++ b/skills/brainstorm/SKILL.md @@ -165,9 +165,9 @@ Tell the user: Wait for the user's response. If they request changes, make them and re-run Step 7. Only proceed to the next step after approval. -### Step 9 — Hand off to `plan` +### Step 9 — Hand off to `planner` -The terminal state of `brainstorm` is invoking `plan`. NO other +The terminal state of `brainstorm` is invoking `planner`. NO other skill is invoked from `brainstorm`. NO direct jump to `implement`. Hand off carries: @@ -180,7 +180,7 @@ Hand off carries: | Direction | Carrier | |-----------|---------| | user → `brainstorm` | new milestone request | -| `brainstorm` → `plan` | path to spec + iteration scope | +| `brainstorm` → `planner` | path to spec + iteration scope | ## Common Rationalisations @@ -200,7 +200,7 @@ Hand off carries: - "User said it's clear, who am I to push back" - "The 2-3 approaches all suck, just pick one" - Skipping Step 7 self-review because "I wrote it carefully" -- Jumping straight from spec to `implement` (must go via `plan`) +- Jumping straight from spec to `implement` (must go via `planner`) - Inventing a design rationale that's actually about effort, not semantics @@ -208,6 +208,6 @@ Hand off carries: - **Project source:** `docs/DESIGN.md` "Feature-acceptance criterion" — gate this skill applies during spec writing. -- **Output target:** `skills/plan/SKILL.md` — only valid next +- **Output target:** `skills/planner/SKILL.md` — only valid next skill. - **No private agents.** This skill is dialogue-driven. diff --git a/skills/fieldtest/SKILL.md b/skills/fieldtest/SKILL.md index 84606b1..9305ccb 100644 --- a/skills/fieldtest/SKILL.md +++ b/skills/fieldtest/SKILL.md @@ -19,7 +19,7 @@ that real code immediately exercises, the milestone has shipped a latent debt — even when audit reports `clean`. The skill produces a friction-and-bug spec that the next iteration's -`plan` consumes as a reference. The spec sits next to milestone-design +`planner` consumes as a reference. The spec sits next to milestone-design specs at `docs/specs/-fieldtest-.md`. The substantive process — read DESIGN.md + JOURNAL + milestone spec, @@ -102,7 +102,7 @@ variation); five is too many for one report to stay readable. The orchestrator drives downstream: - `bug` → `debug` (RED-first; GREEN via `implement` mini-mode) -- `friction` → next `brainstorm` or a tidy iteration via `plan` +- `friction` → next `brainstorm` or a tidy iteration via `planner` - `spec_gap` → ratify in JOURNAL + DESIGN.md, or tighten DESIGN.md - `working` → carry-on (worth recording, no follow-up) @@ -118,7 +118,7 @@ The orchestrator drives downstream: comes after a clean (or ratified) audit. - **Downstream targets:** - `skills/debug/SKILL.md` — for each `bug` finding - - `skills/brainstorm/SKILL.md` or `skills/plan/SKILL.md` — for + - `skills/brainstorm/SKILL.md` or `skills/planner/SKILL.md` — for `friction` and `spec_gap` findings worth a follow-up iteration - **Project source:** `docs/DESIGN.md` "Feature-acceptance criterion" — the field test is the empirical complement to brainstorm's diff --git a/skills/fieldtest/agents/ailang-fieldtester.md b/skills/fieldtest/agents/ailang-fieldtester.md index a929dda..4b54d23 100644 --- a/skills/fieldtest/agents/ailang-fieldtester.md +++ b/skills/fieldtest/agents/ailang-fieldtester.md @@ -203,7 +203,7 @@ Per finding, one entry: - Recommended downstream action ## Recommendation summary -A short table mapping finding → action (`debug` / `plan` / `ratify` / +A short table mapping finding → action (`debug` / `planner` / `ratify` / `carry-on`). ``` diff --git a/skills/implement/SKILL.md b/skills/implement/SKILL.md index 905629f..22358f3 100644 --- a/skills/implement/SKILL.md +++ b/skills/implement/SKILL.md @@ -90,7 +90,7 @@ reviewer; loop until `compliant`. If `unclear`: the task text is ambiguous. Resolve at the orchestrator level — either by re-stating the task to the implementer with the -ambiguity removed, or by bouncing back to `plan` if the spec itself +ambiguity removed, or by bouncing back to `planner` if the spec itself is the source of the ambiguity. #### 2.4 — Code quality review @@ -152,7 +152,7 @@ summary: | Source | Carrier | |--------|---------| -| from `plan` | path to `docs/plans/.md` + optional task focus | +| from `planner` | path to `docs/plans/.md` + optional task focus | | from `debug` | RED-test path + cause summary + minimal-fix constraint | `implement` produces: per-task commits + JOURNAL entry. No further @@ -202,7 +202,7 @@ Reviewer subagents typically need at least the standard model. is the diff well-built? - `skills/implement/agents/ailang-tester.md` — Step 3, E2E coverage - **Input sources:** - - `skills/plan/SKILL.md` — produces the plan files this skill + - `skills/planner/SKILL.md` — produces the plan files this skill consumes - `skills/debug/SKILL.md` — produces the RED-test handoff for mini-mode diff --git a/skills/plan/SKILL.md b/skills/planner/SKILL.md similarity index 94% rename from skills/plan/SKILL.md rename to skills/planner/SKILL.md index 540420f..67a813f 100644 --- a/skills/plan/SKILL.md +++ b/skills/planner/SKILL.md @@ -1,5 +1,5 @@ --- -name: plan +name: planner description: Use when a milestone spec exists in docs/specs/ and a new iteration is starting. Produces a placeholder-free, bite-sized implementation plan in docs/plans/ that the implement skill can execute task-by-task. Hard-gate before any implementation work. --- @@ -178,9 +178,9 @@ task focus ("only Tasks 1-3 this run"). | Direction | Carrier | |-----------|---------| -| `brainstorm` → `plan` | path to `docs/specs/.md` + iteration scope ("this iteration covers spec section X+Y") | -| `plan` → `implement` | path to `docs/plans/.md` + optional task-range focus | -| `plan` → `brainstorm` (bounce) | spec contains placeholders or contradictions: name the offending section, request revision | +| `brainstorm` → `planner` | path to `docs/specs/.md` + iteration scope ("this iteration covers spec section X+Y") | +| `planner` → `implement` | path to `docs/plans/.md` + optional task-range focus | +| `planner` → `brainstorm` (bounce) | spec contains placeholders or contradictions: name the offending section, request revision | ## Common Rationalisations