Goal
Convert remaining non-deterministic dev-discipline guidelines into manifest-driven rules using the T1-T7 decomposition techniques documented in hooks/rules/README.md.
Estimated scope
~24 rules, decomposed via:
- T1 Narrative → structural assertion (e.g., Slack alerts grouped by project → milestone → assignee)
- T2 Scope boundary → path-based block (e.g., owner-specific paths)
- T3 Behavioral mandate → Stop-event reminder (e.g., "don't ask 'should I continue?'")
- T4 Preference → linter on alternative (e.g., warn on "refactor" in PR titles)
- T5 Fall-through judgment → explicit gate (e.g., require
blocking_reason: when setting blockedBy)
- T6 Context-sensitive → structural proxy (e.g., detect alert-shaped Slack messages, filter posthog/dashboard)
- T7 Multi-part → AND-chain of detectors (e.g., owner path + content trigger + exception)
Why follow-up not Tier 1
Tier 2 rules have higher false-positive risk and benefit from Tier 1 field-testing first. Adding them directly to v1.5.0 would balloon the PR diff and dilute review focus.
Approach
- Pick one Tier 2 candidate (e.g.,
linear-blocking-reason via T5).
- Decompose into a single
rules.yaml row with full tests: array.
- Run
npm run build-rules && npm run test-hooks.
- Open separate small PR (1-3 rules at a time) for incremental review.
Related
Depends on Tier 1 (issue #10) being merged first.
Goal
Convert remaining non-deterministic dev-discipline guidelines into manifest-driven rules using the T1-T7 decomposition techniques documented in
hooks/rules/README.md.Estimated scope
~24 rules, decomposed via:
blocking_reason:when setting blockedBy)Why follow-up not Tier 1
Tier 2 rules have higher false-positive risk and benefit from Tier 1 field-testing first. Adding them directly to v1.5.0 would balloon the PR diff and dilute review focus.
Approach
linear-blocking-reasonvia T5).rules.yamlrow with fulltests:array.npm run build-rules && npm run test-hooks.Related
Depends on Tier 1 (issue #10) being merged first.