Added
skill-agent-topology— audits whether an existing multi-agent setup earns its coordination cost. Counts boundaries rather than agents, names what is lost at each crossing, and weighs that against gains a single agent could not deliver. "Collapse to one agent" is a first-class outcome.- Agency allocation in
skill-intent-contract— initiative, control and decision rights are elicited separately and resolved to anAUTONOMY_MODEvalue, with the lossiness of that mapping stated. Adds a risk rubric (irreversibility, consequence, accountability), which nothing previously scored. - Four workflow skills adapted from mattpocock/skills (MIT):
skill-pressure-test,skill-authoring,skill-work-slicing,skill-intake.
Changed
- The Gemini migration is now offered as a real choice.
gemini-via-agyshipped asdecision: nonewith default0, so the disclosure framework was told never to raise it — users stayed on a path that can only fail. Nowdecision: requiredwithbackfill: true. Default stays0. - Test-suite counts are no longer stored in
PRODUCT.md, so adding a test file no longer conflicts with every other branch doing the same.
Fixed
- Provider quota dead-marks were written where nothing reads them.
gemini-exec.shandagy-exec.shmark providers dead from insideenv -iisolation that did not forwardWORKSPACE_DIR, so the marker landed under the$HOMEfallback while readers used$CLAUDE_PLUGIN_DATA. The seat kept advertising as available and re-triggered the macOS keychain prompt every run. - Three env vars were silently inert: a recorded
gemini-via-agyanswer never reached dispatch;OCTOPUS_REVIEWER_FLIP=1did not flip review despite a comment promising it did;OCTOPUS_COMMANDCODE_PERMISSION_MODEwas overridden by a positional argument. All three shared one cause —octo_features_choiceonly forwards env values matching a declared choice. - The human-only skill list disagreed with what skills declare — six declared, five listed, one of those naming no real skill.
- Design review seats were labelled by historical slot name, so a reconfigured seat was described to the synthesizer as the wrong provider. Thanks to @Jhacarreiro.
skill-debatedocumented its own command as bare/debatein fourteen places; the command is/octo:debate.test-feature-disclosure.shfailed on a symlinked checkout, which bit exactly when using the release worktreeRELEASING.mdrecommends.
Full changelog: https://github.com/nyldn/claude-octopus/blob/main/CHANGELOG.md