boss: migration pilot — autonomous orchestrator mode generalised

First skill migrated from AILang's in-tree skills/. boss carries
the autonomous orchestrator authority (god-mode: dispatches every
other skill, decides done-state vs bounce-back), so it is the
load-bearing pilot for the migration pattern.

Profile schema gains three slots that boss needs:

- `git.issue_tracker.url`       — browsable issue list URL
- `git.issue_tracker.list_cmd`  — shell command listing open issues
- `notifications.command`       — script invoked on done-state /
  bounce-back; falls back to chat if empty

AILang-specific bits dropped from the prose:
- AILang/Gitea URL + tea CLI hardcoding → profile slots
- `design/contracts/0004-feature-acceptance.md` cross-reference
  → project CLAUDE.md (not the plugin's concern)
- "Boss" terminology → "orchestrator" (the plugin term; "Boss"
  was AILang vocabulary)
- "Brummel-as-LLM" → "the orchestrator"
- "milestone" → "cycle" (the profile's vocabulary slot)

Universal substance preserved verbatim: Iron Law, the five
process steps, the four bounce-back triggers + new-cycle
rationale, notification protocol, done-state editorial rules,
Common Rationalisations, Red Flags. No discipline-prose compression.

design/out-of-scope claim retracted: boss DOES generalise, and
its body now demonstrates how — the queue mechanic is a single
shell-command slot, not a transport-coupled contract.

skills/README.md flags boss as the landed pilot; the other seven
skills follow once the pattern is approved.
This commit is contained in:
2026-05-28 15:43:39 +02:00
parent de26df1727
commit 9e10e9dfee
6 changed files with 319 additions and 15 deletions
+5 -9
View File
@@ -108,13 +108,9 @@ The relationship:
## What's out of scope for this plugin
- **Boss/autonomous-orchestrator mode**: AILang's `boss` skill
is gated to a user-invoked `/boss` for autonomous queue
execution. Whether that generalises across projects is
unclear (queue mechanics depend on issue-tracker semantics).
Not in the initial skeleton; possibly added later as
`skills/boss/` if a cross-project autonomous mode crystallises.
- **Issue-tracker integration**: the plugin can read the
profile's `issue_tracker.kind` and adjust commit-marker
suggestions, but does not directly call Gitea / GitHub /
Linear APIs.
profile's `issue_tracker.kind` and `issue_tracker.list_cmd`
and invoke the configured listing command, but does not
directly call Gitea / GitHub / Linear APIs. The `boss` skill
uses the configured shell command for queue reads, so the
plugin remains transport-agnostic.
+10
View File
@@ -82,8 +82,16 @@ read as opaque strings the agent should fetch / execute, e.g.
| `only_orchestrator_commits` | bool | `true` | If true, no agent commits; the orchestrator commits. |
| `issue_tracker.kind` | enum | `none` | One of `gitea`, `github`, `linear`, `none`. |
| `issue_tracker.close_marker` | string | `"closes #N"` | Marker the orchestrator includes in commit bodies to auto-close issues. |
| `issue_tracker.url` | string | (empty) | Human-browsable URL of the issue list — surfaced in notifications and cross-references. |
| `issue_tracker.list_cmd` | string | (empty) | Shell command that lists open issues. Used by the `boss` skill to read the forward queue. Examples: `tea issues ls --repo X/Y --state open`, `gh issue list --repo X/Y --state open`. |
| `protected_branches` | list | `[main]` | Branches that are sacrosanct in the same sense as main. |
## `notifications`
| Key | Type | Default | Description |
|-----------|--------|---------|-------------|
| `command` | string | (empty) | Shell command the `boss` skill invokes on done-state and bounce-back. Receives the message text as a single argument. Example: `"~/.claude/notify.sh"`. If empty, the orchestrator falls back to printing the notification in chat. |
## `pipeline`
Per-phase configuration. Each phase has its own sub-map.
@@ -106,6 +114,8 @@ pipeline:
debug:
trigger: bug # observable misbehaviour
red_first: true # RED test before any fix
boss:
user_invoked: true # autonomous-orchestrator mode, /boss
```
Phases not listed are disabled for the project. A project that