What's new
Adds a mandatory before_plan hook that enforces Constitution Principle VIII — Red Team Qualifying Specs Before Plan automatically. Prior releases left enforcement hybrid (constitution declared the rule, maintainer remembered to invoke /speckit.red-team.run); v1.0.2 closes the gap using the hook mechanism /speckit.plan already understands.
New command
/speckit.red-team.gate— deterministic gate that scans the current feature spec for the six trigger categories (money_path,regulatory_path,ai_llm,immutability_audit,multi_party,contracts) and returns one of three outcomes:- PROCEED — non-qualifying spec (no trigger match). Silent.
- SATISFIED — qualifying spec with a findings report on record (
specs/<feature-id>/red-team-findings-*.mdor99_Archive/red-team/<feature-id>/). - HALT — qualifying spec, no findings on record.
/speckit.planblocks with explicit options: run/speckit.red-team.runnow, or opt out with--skip-red-team-gate: <reason>which is recorded as an Accepted Risk tagged[red-team-skipped]in the plan.
Extension.yml change
New hooks.before_plan block declaring speckit.red-team.gate as a mandatory hook. /speckit.plan auto-invokes it on every run; the gate is idempotent and cheap (<10ms on non-qualifying specs).
Compatibility
- Keyword matching is deliberately liberal — the only acceptable failure mode is a false-positive prompt (red team you may not strictly have needed), never a false-negative silent waiver.
- Projects that do not want the gate simply do not install the extension.
- No breaking changes to
/speckit.red-team.runor the lens catalog schema.
Full details: CHANGELOG.