v0.12.0
Adds the advisor pattern: a plan check before implementation, for the case where no plan exists yet. Docs only - no pin, config, hook, or stats changes.
- Plan check before implementation, when no plan exists yet. Every escalation rule in the skill was reactive - a stuck agent hands back, a weak result retries one step up. This adds the proactive counterpart: when implementation work is dispatched with no approved plan behind it, the cheap-tier agent returns its PLAN first and the main session checks it before any code is written.
- Source and measurement: Anthropic's model-selection guidance names this the advisor strategy - "faster, lower-cost worker models to call more intelligent models to check their plan and evaluate their work" - and reports Sonnet 5 with a Fable 5 advisor within 10% of Fable 5's SWE-bench Pro score at 63% of the price of using Fable 5 for the whole task.
- Costs one short turn and adds no new agent. In this plugin's shape the main session already IS the advisor, so the pattern reuses the loop that is already there instead of introducing a seventh bundled agent.
- Written as a condition, not a rule-plus-exemption: it fires when there is no approved plan and is silent when there is one. That form holds for a setup where this plugin is the only thing installed as well as one with a planning workflow in front of it, and it leaves no exemption clause for a model to negotiate with under pressure.
- Skill: new bullet placed ahead of the escalation rules, which are now named reactive so the two read as a pair rather than as competing advice.
- Routing anchor: one line, so the pattern is present in every session rather than only when the skill is explicitly invoked. The anchor is the surface that actually changes behaviour here; the skill entry documents it for anyone reading the plugin.
- Audited the rest of the plugin for assumptions about an external planning workflow and found none: planning is already routed to the main session, the verifier and reviewer agents ship with the plugin, and the SendMessage-unavailable path was already handled.