Rule: when Q-lock authoring (or any TT-scoped substrate-producing batch) needs to search for previous/existing research, the canonical sequence lives at ~/testatetech/docs-strategy/docs/superpowers/specs/2026-04-29-multi-phase-audit/substrate-search-locations.md. Do NOT re-derive the sequence from refined-directive L7 inline; do NOT consolidate the sequence into a different file; do NOT inline the sequence into a cascade-Q file.
Why:
- Compaction resistance — refined-directive L7 was previously a 300-word inline source list. Authoring history shows large inline blocks in dense process docs get silently lost during concurrent-rebase autostash-pop (BATCH ν″ EMBEDDING-MATERIAL-GAP precedent 2026-05-20T22:00 BST commit 2779a74). Separating the list into its own file with its own commit history makes the loss surface a 0-byte file rather than a silent regression.
- Independent versioning — the locations list evolves at a different cadence than the directive’s L1-L7 process disciplines. Each new spike artefact / each new T-file batch / each new in-scope repo can add a location. Co-edit pressure on a single dense file is operationally hazardous.
- Periodic-review-friendly — the file’s frontmatter carries
review_cadence:+review_triggers:+last_reviewed:+review_log:fields. Rich periodically asks “review the substrate search locations list”; the file’s review_log captures every review with date + reviewer + trigger + outcome. - Rejected-list forensic value — the file’s §3 captures rejected locations + reasons (permanently rejected + conditionally rejected with “becomes relevant if X” conditions). This prevents future-Claude re-investigating already-rejected paths (e.g., re-checking code-ll/ for legal citations when empirical 2026-05-21 grep returned zero hits).
How to apply:
- At session start (any TT-scoped session touching arch-state §15 or cascade-Q files): read
substrate-search-locations.mdBEFORE the first substrate sweep. The file’sread_before:frontmatter declares this discipline. - At Q-lock substrate-sweep step 6: walk the 15 internal steps in order; capture which steps fired + what was found in
CASCADE-Q-TEMPLATE.md §B.0 internal_substrate_checked:block. - At external-source fetch (step 16): capture both
verified_via:chain ANDwatch_for_updates_at:field per the two-field shape codified in[[feedback_substrate_acceptance_verify_plus_watch]]. - When Rich asks “review the substrate search locations list”: read the file’s
review_log:+ checkreview_triggers:against current state + report drift + propose updates. - When tempted to consolidate this file’s content into refined-directive OR a cascade-Q file: STOP — the
maturity: load-bearing-for-q-lock-authoringfrontmatter flag signals that consolidation would break the discipline.
Anti-patterns to avoid:
- Embedding the 15-step list inline in any Q-lock authoring output (creates drift between files).
- Treating the list as static — review_triggers fire often when the project is active (new T-file batches every 1-2 weeks during Phase-3).
- Skipping the periodic-review when Rich asks (the review is cheap; ~5 min; catches drift).
- Searching only steps 1-4 (project-internal) and skipping 5-15 (which contain the bulk of pre-Phase-3 research substrate).
Routing: auto-load via MEMORY.md index. Companion to feedback_check_t_files_first_for_any_inherit_v2_work (READ-time T-files-first; predates this file; this file extends T-files-first to FULL 15-step internal-first discipline) + feedback_research_artefact_forward_traceability (forward-traceability discipline; same family) + feedback_substrate_acceptance_verify_plus_watch (verify+watch two-field shape; sibling discipline).