feat(fleet): enhancer role + two-agent floor (orchestrator + enhancer) (#614)
From Jason's north-star (docs/fleet/north-star.md, #613): every fleet has a two-agent floor — orchestrator + enhancer minimum. Builds on #612's init-R5. - Presets (general/coding/research/hybrid): add enhancer (claude, class: enhancer, persistent_persona) as a core always-on agent. minimal/local-canary unchanged. - fleet.ts: countEnhancers helper; init guarantee extended — non-minimal profiles must yield exactly 1 orchestrator AND >=1 enhancer (hard-fail); removeAgentFromRoster refuses to drop the sole enhancer (symmetric with the sole-orchestrator guard) so the floor holds at runtime, not just init. - framework/fleet/roles/enhancer.md: the enhancer mandate (monitor -> analyze -> plan -> upgrade tools/skills/harness WITH orchestrator -> file Mosaic Stack bug reports) + boundaries (does NOT code or review). Verified: 155 fleet tests green (countEnhancers; sole-enhancer remove guard; remove-allows-when-another; init two-agent-floor; every-non-minimal-preset-has- enhancer; updated preset rosters). tsc/eslint/prettier/sanitize clean. TDD on the init guarantee + remove protection. Stacked on #612 (feat/fleet-polish-bundle); rebases clean onto main after #612. Refs #614, #613 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EsgTQzV5YUGk1JtCLP4B83
This commit is contained in:
@@ -62,3 +62,7 @@ Active workstream is **W1 — Federation v1**. Workers should:
|
||||
## Fleet-polish bundle — boot-survival symmetry (#611) — feat/fleet-polish-bundle
|
||||
|
||||
- Status: implemented + tested. disable-on-remove (boot-resurrection bug, TDD) + add-enable + init-R5 hard guarantee. 4 new + 147 existing fleet tests green. Detail: scratchpads/fleet-polish-bundle.md.
|
||||
|
||||
## Fleet enhancer role + two-agent floor (#614) — feat/fleet-enhancer-floor (stacked on #612)
|
||||
|
||||
- Status: implemented + tested. enhancer added to 4 presets; init guarantees 1 orchestrator + >=1 enhancer; remove protects the sole enhancer; enhancer role doc. 155 fleet tests green. Detail: scratchpads/fleet-enhancer-floor.md.
|
||||
|
||||
26
docs/scratchpads/fleet-enhancer-floor.md
Normal file
26
docs/scratchpads/fleet-enhancer-floor.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Fleet enhancer role + two-agent floor (#614)
|
||||
|
||||
- **Issue:** #614 · **Branch:** `feat/fleet-enhancer-floor` (stacked on #612 `feat/fleet-polish-bundle`)
|
||||
- **Doctrine:** `docs/fleet/north-star.md` (PR #613) — every fleet = orchestrator + enhancer minimum.
|
||||
|
||||
## Changes
|
||||
|
||||
- **Presets** (general, coding, research, hybrid): add `enhancer` (claude, `class: enhancer`,
|
||||
`persistent_persona: true`) as a core always-on agent alongside the orchestrator. minimal/local-canary
|
||||
unchanged.
|
||||
- **fleet.ts**: `countEnhancers` helper; init guarantee extended — non-minimal profiles must yield
|
||||
exactly 1 orchestrator AND >=1 enhancer (hard-fail otherwise); `removeAgentFromRoster` refuses to drop
|
||||
the sole enhancer (symmetric with the sole-orchestrator guard) so the floor holds at runtime, not just init.
|
||||
- **Role doc**: `framework/fleet/roles/enhancer.md` — the enhancer mandate (monitor → analyze → plan →
|
||||
upgrade tools/skills/harness WITH orchestrator → file Mosaic Stack bug reports) + boundaries (does NOT
|
||||
code or review).
|
||||
|
||||
## Verification
|
||||
|
||||
- 155 fleet tests green (new: countEnhancers; remove-sole-enhancer guard; remove-allows-when-another;
|
||||
init two-agent-floor; every-non-minimal-preset-has-enhancer; updated preset rosters). tsc/eslint/
|
||||
prettier/sanitize clean. TDD on the init guarantee + remove protection.
|
||||
|
||||
## Stacking
|
||||
|
||||
Built on #612's init-R5 code. PR shows #612 + enhancer until #612 merges; then rebase onto main → clean.
|
||||
Reference in New Issue
Block a user