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.
13 KiB
/boss Skill — Design Spec
Date: 2026-05-12 Status: Draft — awaiting user spec review Authors: Brummel (orchestrator) + Claude
Goal
Extract autonomous-orchestrator-mode discipline from CLAUDE.md
into a new user-invoked skill /boss. After the change:
- Default session (no
/boss): Claude is in collaborative-interactive mode. Responds to user messages, answers questions, makes local edits, but does not autonomously pull the next item fromdocs/roadmap.mdand dispatch a multi-iter sequence. If the user wants something done, the user asks; Claude executes; Claude stops. - Inside a
/bosssession: Claude is the autonomous orchestrator described today inCLAUDE.md. Picks the next iter from the roadmap, dispatches the appropriate skill (brainstorm,planner,implement,audit,fieldtest,debug,docwriter), continues until done-state or a genuine bounce-back, notifies viaWhatsNew.md+ the notify hook on done-state.
CLAUDE.md keeps project description and all universal
orchestrator discipline (agent role boundaries, commit rules,
main sanctity, design discipline, file-role roster, TDD-for-bugs,
authority over skills). It loses only the three mode-specific
sections — Direction freedom, Notifications, Done-state
notifications: WhatsNew.md — which move into skills/boss/SKILL.md,
plus gains a one-sentence pointer that autonomous mode is gated
to /boss.
Architecture
A new skill at skills/boss/SKILL.md. No agents under
skills/boss/agents/ — /boss itself is the orchestrator role;
it dispatches the existing skills (and their agents). This is
analogous to how audit dispatches ailang-architect and
ailang-bencher but is itself an orchestration layer, not a
worker.
Symlink .claude/skills/boss -> ../../skills/boss makes the
skill discoverable to the harness's Skill tool, matching the
convention codified in skills/README.md.
CLAUDE.md is refactored in place: sections that describe
how the orchestrator behaves in autonomous mode move into
/boss. Where a moved section was load-bearing for
cross-references elsewhere in the project, a one-line pointer
stays behind ("see skills/boss/SKILL.md").
What moves vs. what stays
The split is calibrated to one question: does this content apply only when the orchestrator is autonomously executing the queue, or does it apply in every session regardless of mode?
Universal content (applies in any session — interactive or
/boss-active) stays in CLAUDE.md. Examples: agent role
boundaries (an agent dispatched in any session needs to know what
the orchestrator does vs. what the agent does), design discipline
(applies whenever a design choice is made, including a brainstorm
invoked outside /boss), authority over skills (the orchestrator
can edit skills at any time), the universal commit rules.
Mode-specific content (applies only inside an active /boss
loop) moves into the skill. This is a narrower set than the
first draft of this spec implied; recon surfaced that several
draft "moved OUT" sections are universal, not mode-specific.
Moved OUT of CLAUDE.md and INTO skills/boss/SKILL.md:
- "Direction freedom" — autonomously picking the next iter from
docs/roadmap.md. Outside/boss, the orchestrator does not pick autonomously; it responds to the user's message. - "Notifications" — when to bounce back vs. continue silently.
Outside
/bossthere is no autonomous loop to break out of; the orchestrator always responds to the user, so the bounce-back-vs-continue judgement does not apply. - "Done-state notifications: WhatsNew.md procedure" — fires when
the autonomous queue empties. Outside
/bossthere is no autonomous queue.
Stays in CLAUDE.md (universal facts and rules):
- AILang one-paragraph intro ("a language for LLM authors").
- Code layout table.
- Skill system pointer (one paragraph), extended with a
one-sentence note that autonomous orchestrator mode is gated to
/boss; details inskills/boss/SKILL.md. - "My role: orchestrator" → most of this section stays:
- "What this means in practice" — agent role boundaries, what Boss does vs. what agents do, when trivial inline edits are fine, verify-the-work. Universal; agents reading their standing reading list rely on this.
- "Commit discipline and main-branch sanctity" — only-Boss-commits, main-is-sacrosanct. Universal; an interactive session can still produce a commit.
- "Authority over
skills/and the agent roster" — universal; the orchestrator may edit skills at any time, not only inside/boss. - "When NOT to delegate" — universal; the rules for inline-vs- delegate apply whenever an agent might be dispatched.
- "Design rationale ≠ implementation effort" — universal design
discipline; applies whenever a design choice is made,
including
brainstormoutside/boss. - "Feature acceptance: LLM utility" — paraphrase of the
canonical criterion at
docs/DESIGN.md§"Feature-acceptance criterion"; the paraphrase MAY be reduced to a one-line pointer to DESIGN.md to keep CLAUDE.md leaner (Boss judgement at implement time).
- "Bug fixes — TDD, always" —
debugskill is mandatory in every session in which a bug surfaces. - "Milestone cycle" — short paragraph naming the pipeline; details
in
skills/README.md. - "Roles of
docs/DESIGN.md,docs/journals/, ...docs/WhatsNew.md" — universal document-role roster.
Components
-
skills/boss/SKILL.md— new file. Follows the standard skill template (frontmatter, spirit-letter lead-in, overview, when-to-use, iron law, process, common rationalisations, red flags, cross-references). Body content:- Frontmatter description narrowly trigger-bound:
"Use only when the user explicitly types
/boss. Activates autonomous orchestrator mode." - Overview — defines autonomous orchestrator mode and why it is gated to user invocation.
- When to Use / Skipping — only on explicit
/boss; never auto-invoked on heuristic match. - The Iron Law — the discipline below applies only in
this mode. Universal rules (commits, main, language, TDD-
for-bugs) come from
CLAUDE.mdand apply regardless. - The Process — restates the three mode-specific sections:
direction freedom (autonomous picking from
docs/roadmap.md), notification policy (done-state vs. bounce-back), and the WhatsNew.md procedure. ReferencesCLAUDE.mdfor the universal rules the skill assumes (agent role boundaries, commit discipline, design rationale, feature acceptance). - Common Rationalisations — calibrated to autonomous-mode
failure modes (mid-flow notifications burning user attention,
bouncing back at every iter boundary instead of continuing,
treating sub-goal completion as done-state, forgetting the
WhatsNew.mdappend on real done-state). - Red Flags — STOP — the existing stop signals.
- Cross-references — back to
skills/README.mdfor the skill table, todocs/DESIGN.mdfor the feature-acceptance criterion, todocs/roadmap.mdfor the queue.
- Frontmatter description narrowly trigger-bound:
"Use only when the user explicitly types
-
CLAUDE.md— heavy edit. Sections listed above as "moved OUT" are removed; replaced where useful by one-line pointers. -
.claude/skills/boss— new symlink to../../skills/boss. -
skills/README.md— skill table gets a new row:|
boss| User-invoked (/boss) only | Autonomous orchestration session | No — user-gated |The pipeline diagram gets a short note that
/bosswraps the pipeline; it is not a step inside it. -
Cross-reference repoint. Two agent/skill files name the moved sections by sub-heading and need repointing to
skills/boss/SKILL.md:skills/implement/SKILL.md— citation ofCLAUDE.md"Done-state notifications" subsection.skills/implement/agents/ailang-implement-orchestrator.md— standing reading list entry for "Done-state notifications: WhatsNew.md subsection".
Other agent-file references to "orchestrator framing" continue to resolve correctly because that framing stays in
CLAUDE.md; no further repointing is in scope for this iter. -
docs/journals/2026-05-12-iter-boss.md— per-iter journal entry recording the refactor and the rationale.
Data flow
fresh session
|
v
[user message] -------------------------+
| |
v v
[no /boss] [user types /boss]
| |
v v
interactive mode: /boss skill loads
- chat, answer, edit - rules: direction freedom,
- ad-hoc dispatch on notify, WhatsNew, delegation
explicit user request - read docs/roadmap.md
- universal rules - dispatch first item
from CLAUDE.md apply - loop until done-state /
bounce-back
- notify on done-state, append
WhatsNew.md
- universal rules from
CLAUDE.md still apply
The boundary is soft. There is no persistent on-disk flag for "boss mode is on". Mode is established by skill load + adherence to its rules, and is exited by:
- The user signalling "stop" / "pause" / "back to chat"
- A bounce-back trigger firing (design fork, invariant violation, external failure, explicit checkpoint request)
- Done-state (queue empty)
A fresh session always starts in interactive mode; the user
re-enters boss mode by typing /boss again.
Error handling
- Empty roadmap.
/bossinvoked butdocs/roadmap.mdhas no actionable items: notify done-state immediately ("autonomous queue empty; nothing to do"). Do not invent work. - Iter mid-flight.
/bossinvoked while a previous session left an iter half-done (e.g. uncommitted working tree, plan written but not implemented): inspect, then resume the right step. Do not restart from scratch. - Missing skill prerequisite.
/bossis about to dispatchplannerbut no spec exists for the milestone: bounce-back to user proposing to invokebrainstorm. Do not silently make one up. - Ambiguous next item.
/bossreads the roadmap and finds no clear top item (two items of equal priority, both nontrivial): bounce-back per the direction-freedom rules. - User signals "stop" mid-
/boss. Revert to interactive on the next message; do not auto-resume the loop.
Testing strategy
Skills are documents, not code; the test is operational, applied once the change lands:
- Fresh-session spot-check, no
/boss. Open a fresh session, ask a small question. Verify Claude does not read the roadmap and dispatch an iter — it just answers. - Fresh-session spot-check,
/boss. Open a fresh session, type/boss. Verify Claude loads the skill, readsdocs/roadmap.md, picks the top item, and dispatches the right skill — i.e. behaves as it does today in autonomous mode. - CLAUDE.md scan. Confirm the sections listed under
"Components → moved OUT" are no longer in
CLAUDE.mdexcept as one-line pointers. Confirm universal rules (commits, main, language, file-role roster, TDD-for-bugs) are still present. - Skill table scan.
skills/README.mdlistsbosswith the trigger "User-invoked (/boss) only".
No code change, no compiler change, no bench/ change, no
docs/DESIGN.md change (the language proper is untouched).
Acceptance criteria
skills/boss/SKILL.mdexists, follows the standard skill template, and consolidates the moved sections without losing rules.CLAUDE.mdshrinks by ~100 lines (the three mode-specific sections under "Architecture → Moved OUT" are gone, replaced where useful by a one-line pointer toskills/boss/SKILL.md). Universal sections (agent role boundaries, commit discipline, authority over skills, design rationale, when-not-to-delegate, feature acceptance paraphrase, TDD-for-bugs, milestone cycle, document-role roster) remain in place..claude/skills/bosssymlink resolves toskills/boss.skills/README.mdskill table includes abossrow.- The brainstorm-skill Step 7.5 grounding-check on this spec
returns
PASS— the spec makes no claims about AILang compiler / checker / codegen / schema behaviour that would need a ratifying test. The skill-system structure (symlinks,Skill-tool discovery, agent dispatch) is harness/repo facts, not language-runtime facts, and is outside the grounding-check's remit. - A per-iter journal entry under
docs/journals/2026-05-12-iter-boss.mdrecords the refactor with rationale.