Methodology-migration cascade-Q pairing is mandatory — no --no-verify bypass

The rule: Every docs/superpowers/specs/inherit-v2-architecture-state.md version bump MUST be paired with a cascade-Q file in the same commit. The pairing target depends on amendment shape:

  • Q-architectural decision (new primitive / SKOS scheme / module rename / cross-tier lock / Q-N classifier scheme) → pair with Q-NNN-*-locked.md at answered-questions/ per MQ-006 (originating cascade-Q discipline).
  • Methodology / infrastructure / closure-amendment (planning-infrastructure modernisation closure / launch-prompt authoring session / cross-device-sync infrastructure round / native-Tasks migration / Shape A migration close / similar non-Q-architectural batches) → pair with MQ-NNN-*-locked.md at meta-questions/ per MQ-020 (this rule’s locking amendment).

Stage the cascade-Q file together with the arch-state edit before commit. The check-lock-cascade-completeness.py pre-commit hook will detect the pairing and allow the commit. NO --no-verify.

Why:

  • Between Q-027..Q-031 (May 2026), five consecutive net-new Q-locks landed via arch-state lastmod prose + memory only, without authoring formal cascade-Q files. This fragmented forensic audit trail + broke cross-Q citation. MQ-006 locked the cascade-Q discipline at tooling level.
  • BUT: the discipline only addressed Q-architectural amendments. Methodology-migration amendments developed a parallel silent-drift pattern: A-222..A-287 (~60 amendments between ~2026-04 and 2026-05-23) used --no-verify with documented “NOT a Q-lock” justification. The bypass chain grew unnoticed because each individual bypass was technically defensible per the hook’s “EMERGENCY ESCAPE” framing — but the chain represented an undocumented parallel-amendment-class drift.
  • On 2026-05-24 the Phase B Shape A migration closure commit (would-have-been A-288 + arch-state v4.81 → v4.82) hit the lock-cascade hook block. Rich-directive “Pause + investigate” surfaced the bypass-chain pattern empirically (15 commits inspected; A-285 + A-287 commit messages explicitly cited the precedent chain). Rich-directive “stub cascade-Q first to stop bypass chain extending” produced MQ-020 — the FIRST methodology-migration batch under restored discipline.
  • The bypass chain is now retired going forward. Historical commits (A-222..A-287) PRESERVED as-is in git history; future analogous batches MUST pair with MQ-NNN.

How to apply:

  1. At commit-prep time: if your commit bumps inherit-v2-architecture-state.md version (e.g., v4.82 → v4.83), STOP before git commit. Identify whether the amendment is (a) Q-architectural or (b) methodology / infrastructure / closure.

  2. If methodology / infrastructure / closure:

    • Author an MQ-NNN stub at meta-questions/MQ-NNN-<topic>-locked.md. Next-available MQ number = current highest + 1 (check via ls meta-questions/MQ-*locked.md | grep -oE 'MQ-[0-9]+' | sort -V | tail -1).
    • Template: ~150-300L. Mirror the MQ-019 / MQ-020 shape: frontmatter (title / version / status: approved / maturity: locked / question_status: LOCKED / locked_pick / locked_at / locked_by / locked_amendment / doc_type: meta-q-full / meta_q_number / trigger_type / reactive_trigger_source / reactive_proactive / inherits_substrate_from / companion_files / phase_q_relevance / tags) + body (§0 Lock summary / §1 Decisions / §2 Substrate / §3 Annotation-enforcement-status / §4 Task-classification / §5 Retirement-habit audit / §6 NEXT / §B.0 Verification evidence (thin for meta-Q per MQ-019) / CHANGELOG).
    • Cross-reference the arch-state A-NNN row’s MQ-NNN pairing line AND the MQ-NNN frontmatter locked_amendment AND the MQ-NNN companion_files.arch_state.
  3. At commit time: git add the MQ-NNN file together with the arch-state edit + any CLOSURE.md or audit-record. The lock-cascade hook will pass.

  4. DO NOT --no-verify for an arch-state version bump. The escape valve is for hook bugs, not for routine bypass.

Trigger types observed so far for MQ-NNN amendments (extend list as new shapes surface):

  • closure-amendment-discipline-restoration (MQ-020 — Phase B closure + bypass chain retirement)
  • topology-decision-empirical-discovery (MQ-019)
  • cascade-q-file-discipline (MQ-006 — originating)
  • discipline-overlay-retirement-as-process-habit (MQ-018)
    • 10 others MQ-006..MQ-019

When --no-verify is genuinely OK (RARE):

  • Hook has a confirmed bug (not just inconvenient timing).
  • Document the justification in the commit message.
  • Open an issue / task to fix the hook.

Anti-patterns (each fired in the historical bypass chain):

  1. “NOT a Q-lock per A-222..A-N precedent chain” — was the canonical bypass rationale. It’s accurate (the amendment isn’t a Q-lock) but doesn’t address: an MQ-NNN pairing was always possible + would have closed the discipline gap years earlier. MQ-020 §1 decision 7 retires this rationale.
  2. Bundling methodology-migration arch-state bump with a launch-prompt-authoring commit + bypassing — A-285 / A-287 pattern. Each batch needs its own MQ-NNN.
  3. Treating MQ-NNN as “too heavy” for a small closure — even ~150L is acceptable per MQ-019 precedent. A stub MQ-NNN beats a --no-verify bypass.

Companion files:

  • [[feedback-build-plan-hybrid-shape-a-narrative-plus-native-tasks]] — Shape A pattern that Phase B implemented (MQ-020’s substantive scope)
  • [[feedback-no-forward-calendar-projection-in-plans-or-conversation]] — date-rule applied throughout Phase B execution
  • [[feedback-compound-launch-prompts-amplify-context-degradation-risk]] — single-action discipline that justified D AGENTS.md coda deferral per MQ-020 §1 decision 6
  • ~/testatetech/docs-strategy/docs/superpowers/specs/2026-04-29-multi-phase-audit/meta-questions/MQ-020-phase-b-shape-a-migration-formalisation-plus-methodology-migration-cascade-q-discipline-restored-locked.md — the lock file itself
  • ~/testatetech/docs-strategy/docs/superpowers/specs/2026-04-29-multi-phase-audit/meta-questions/MQ-006-cascade-q-file-discipline-locked.md — originating cascade-Q discipline (Q-027..Q-031 silent-drift remediation)
  • ~/testatetech/docs-strategy/scripts/check-lock-cascade-completeness.py — the hook that enforces this

Phase B closure precedent commit (the FIRST methodology-migration batch to follow this restored discipline): e1a2fe0 in docs-strategy (arch-state v4.81 → v4.82 + A-288 + MQ-020 + CLOSURE.md; ALL pre-commit hooks PASSED with NO --no-verify).