Repository navigation
v1.4.2 — Sonnet scout, medium-effort security executor
pilotfish v1.4.2 re-routes two roles, removes two stale prompt lines found by an Opus 5.5 prompt audit, and updates the documentation for Claude Opus 5.5.
What changed
-
scoutruns on Sonnet (effortlow, unchanged). The current Haiku hallucinates too often for reconnaissance the orchestrator acts on. Revisit when a newer Haiku ships. (#93) -
security-executorruns atmediumeffort (still Opus). Implementation does not needhigh; rigor is carried by review:security-reviewerathighbefore approval, and a freshverifierafter. (#93) -
No Plugin role uses
haikuany more. The Plugin install guide now lists only"opus"and"sonnet"as shipped role-model aliases.Explorestays on Haiku in the legacy global install. -
Stale prompt lines removed.
security-executorno longer claims that Opus routing keeps security work clear of safety classifiers, because Opus 5 and 5.5 run cyber classifiers too.scoutdrops its "under ~20 lines" output cap. (#92, #93) -
Leaner Plugin policy. The leaf-role list becomes
Every pilotfish:<role> is a leaf, takingsessionstart.txtfrom 8,978 to 8,842 bytes. The candidate passed 8/8 across the mechanical, schema lifecycle, coupled-bug and routine-docs cells onclaude-opus-5-5. (#88, #29) -
Opus 5.5 documentation.
- On Claude Code 2.1.280 first-party, the
opusalias resolved toclaude-opus-5-5for the main session and formodel: opusroles. - Opus 5 is not recommended: its system prompt carries an injected Agent-suppression line that Opus 5.5 does not receive.
- The recommended main-session effort is
mediumon Opus 5.5, citing Anthropic's Opus 5.5 prompting guide and the Artificial Analysis Intelligence Index. - The security routing notes now document the Opus 5 / 5.5 cyber-classifier fallback to Opus 4.8, which pilotfish accepts.
- On Claude Code 2.1.280 first-party, the
Maintenance
This release also carries repository work merged since v1.4.1 that does not change installed behavior:
- Release tooling. Test release version stamps are derived from
VERSION(#59, thanks @neoeric). Current derived prose is bound in tests (#83). A CodeRabbit review configuration was added (#84). - Benchmark evidence. Attempts and runs are bound to their sources for:
- prompt compression (#71);
- cue-free TUI (#72);
- dispatch brake (#73), plus the dispatch positive controls (#74);
- Baton dispatch effect (#75) and Baton compatibility (#76);
- compact policy (#77);
- issue 29 recovery (#78);
- spontaneous dispatch (#79);
- verifier boundary (#81), plus the verifier paid summaries (#82).
- Contributor and benchmark docs. Template changes now require a semantic-equivalence review (#68). Safe reproduction boundaries for benchmarks are defined (#69).
- Install docs. The
Exploreoverride is scoped to the legacy global install (#85), and the restart reason in the global install runbook is corrected (#86).
Evidence and limits
- Model routing. A live probe on Claude Code 2.1.280 confirmed the routing:
pilotfish:scoutran asclaude-sonnet-5, andpilotfish:security-executorasclaude-opus-5-5. - Effort. Effort is not observable in the stream, so it is verified by frontmatter and tests only.
- No behavioral Gate. Neither re-routed role was run through a behavioral Gate.
benchmarks/baton-compatibility/results.jsonrecords that limit. - Semantic-equivalence readings. These are recorded on #93 (the agent templates) and #94 (the version comment).
Update
If you installed the mutable marketplace branch (Nanako0129/pilotfish with no tag):
claude plugin marketplace update pilotfish
claude plugin update --scope user pilotfish@pilotfish
If you pinned a release tag (Nanako0129/pilotfish@vX.Y.Z), marketplace update deliberately stays on that tag. Re-register the new tag instead, as PLUGIN-INSTALL describes:
claude plugin uninstall --scope user pilotfish@pilotfish
claude plugin marketplace remove --scope user pilotfish
claude plugin marketplace add --scope user Nanako0129/pilotfish@v1.4.2
claude plugin install --scope user pilotfish@pilotfish
claude plugin marketplace list shows which form you have. Restart Claude Code or run /reload-plugins afterwards so the new role definitions load.