@event4u/agent-config 9.26.0 → 9.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +57 -229
  3. package/dist/agent-src/commands/analyze/conformance.md +19 -0
  4. package/dist/agent-src/commands/roadmap/next.md +65 -3
  5. package/dist/agent-src/rules/active-remediation.md +2 -0
  6. package/dist/agent-src/rules/analysis-skill-routing.md +2 -0
  7. package/dist/agent-src/rules/architecture.md +2 -0
  8. package/dist/agent-src/rules/artifact-drafting-protocol.md +2 -0
  9. package/dist/agent-src/rules/artifact-engagement-recording.md +2 -0
  10. package/dist/agent-src/rules/augment-edit-discipline.md +2 -0
  11. package/dist/agent-src/rules/autonomous-execution.md +2 -0
  12. package/dist/agent-src/rules/brand-consistency.md +2 -0
  13. package/dist/agent-src/rules/brand-source-of-truth.md +2 -0
  14. package/dist/agent-src/rules/broken-access-control.md +2 -0
  15. package/dist/agent-src/rules/cli-output-handling.md +2 -0
  16. package/dist/agent-src/rules/code-comment-discipline.md +2 -0
  17. package/dist/agent-src/rules/code-provenance.md +2 -0
  18. package/dist/agent-src/rules/command-suggestion-policy.md +2 -0
  19. package/dist/agent-src/rules/commit-conventions.md +2 -0
  20. package/dist/agent-src/rules/communication-through-line.md +2 -0
  21. package/dist/agent-src/rules/content-quoting-floor.md +2 -0
  22. package/dist/agent-src/rules/context-hygiene.md +10 -0
  23. package/dist/agent-src/rules/copilot-routing.md +2 -0
  24. package/dist/agent-src/rules/cross-source-consistency.md +2 -0
  25. package/dist/agent-src/rules/decision-revisit-gate.md +2 -0
  26. package/dist/agent-src/rules/delegation-policy.md +2 -0
  27. package/dist/agent-src/rules/design-fidelity.md +2 -0
  28. package/dist/agent-src/rules/design-review-after-ui-write.md +4 -0
  29. package/dist/agent-src/rules/devcontainer-routing.md +2 -0
  30. package/dist/agent-src/rules/doc-screenshot-hygiene.md +2 -0
  31. package/dist/agent-src/rules/docker-commands.md +2 -0
  32. package/dist/agent-src/rules/domain-adoption-policy.md +2 -0
  33. package/dist/agent-src/rules/domain-safety-disclaimer.md +2 -0
  34. package/dist/agent-src/rules/domain-safety-pii.md +2 -0
  35. package/dist/agent-src/rules/domain-safety-retention.md +2 -0
  36. package/dist/agent-src/rules/downstream-changes.md +2 -0
  37. package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
  38. package/dist/agent-src/rules/evaluator-independence.md +13 -3
  39. package/dist/agent-src/rules/external-code-graph-interop.md +2 -0
  40. package/dist/agent-src/rules/external-reference-deep-dive.md +2 -0
  41. package/dist/agent-src/rules/fast-path-marker-visibility.md +2 -0
  42. package/dist/agent-src/rules/finance-safety-floor.md +2 -0
  43. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
  44. package/dist/agent-src/rules/git-history-discipline.md +3 -1
  45. package/dist/agent-src/rules/guidelines.md +2 -0
  46. package/dist/agent-src/rules/history-discipline.md +2 -0
  47. package/dist/agent-src/rules/icon-consistency.md +2 -0
  48. package/dist/agent-src/rules/image-likeness-and-rights.md +2 -0
  49. package/dist/agent-src/rules/improve-before-implement.md +2 -0
  50. package/dist/agent-src/rules/invite-challenge.md +2 -0
  51. package/dist/agent-src/rules/laravel-routing.md +2 -0
  52. package/dist/agent-src/rules/laravel-translations.md +2 -0
  53. package/dist/agent-src/rules/legal-safety-floor.md +2 -0
  54. package/dist/agent-src/rules/lethal-trifecta-guard.md +2 -0
  55. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +2 -0
  56. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +2 -0
  57. package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -0
  58. package/dist/agent-src/rules/media-governance-routing.md +2 -0
  59. package/dist/agent-src/rules/media-sync-ground-truth.md +2 -0
  60. package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
  61. package/dist/agent-src/rules/missing-tool-handling.md +2 -0
  62. package/dist/agent-src/rules/model-recommendation.md +2 -0
  63. package/dist/agent-src/rules/no-attribution-footers.md +2 -0
  64. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +2 -0
  65. package/dist/agent-src/rules/no-pr-progress-comments.md +2 -0
  66. package/dist/agent-src/rules/no-roadmap-references.md +2 -0
  67. package/dist/agent-src/rules/notes-first-reasoning.md +2 -0
  68. package/dist/agent-src/rules/onboarding-gate.md +2 -0
  69. package/dist/agent-src/rules/output-discipline.md +2 -0
  70. package/dist/agent-src/rules/package-ci-checks.md +2 -0
  71. package/dist/agent-src/rules/persona-governance.md +2 -0
  72. package/dist/agent-src/rules/php-coding.md +2 -0
  73. package/dist/agent-src/rules/prefer-enums-over-literals.md +2 -0
  74. package/dist/agent-src/rules/preservation-guard.md +2 -0
  75. package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -0
  76. package/dist/agent-src/rules/question-not-instruction.md +2 -0
  77. package/dist/agent-src/rules/reviewer-awareness.md +2 -0
  78. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +2 -0
  79. package/dist/agent-src/rules/roadmap-progress-sync.md +2 -0
  80. package/dist/agent-src/rules/role-mode-adherence.md +2 -0
  81. package/dist/agent-src/rules/rule-type-governance.md +2 -0
  82. package/dist/agent-src/rules/runtime-safety.md +2 -0
  83. package/dist/agent-src/rules/scale-discipline.md +2 -0
  84. package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
  85. package/dist/agent-src/rules/security-sensitive-stop.md +2 -0
  86. package/dist/agent-src/rules/senior-engineering-discipline.md +2 -0
  87. package/dist/agent-src/rules/session-canary.md +61 -19
  88. package/dist/agent-src/rules/settings-ask-protocol.md +4 -0
  89. package/dist/agent-src/rules/size-enforcement.md +2 -0
  90. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -0
  91. package/dist/agent-src/rules/skill-quality.md +2 -0
  92. package/dist/agent-src/rules/slash-command-routing-policy.md +2 -0
  93. package/dist/agent-src/rules/source-confidentiality.md +2 -0
  94. package/dist/agent-src/rules/source-discovery-gate.md +2 -0
  95. package/dist/agent-src/rules/source-of-truth.md +2 -0
  96. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -0
  97. package/dist/agent-src/rules/strategy-safety-floor.md +2 -0
  98. package/dist/agent-src/rules/symfony-routing.md +2 -0
  99. package/dist/agent-src/rules/think-before-action.md +2 -0
  100. package/dist/agent-src/rules/token-budget-discipline.md +2 -0
  101. package/dist/agent-src/rules/token-efficiency.md +2 -0
  102. package/dist/agent-src/rules/token-optimizer-maintenance.md +2 -0
  103. package/dist/agent-src/rules/tool-safety.md +2 -0
  104. package/dist/agent-src/rules/ui-audit-gate.md +4 -0
  105. package/dist/agent-src/rules/untrusted-input-defense.md +2 -0
  106. package/dist/agent-src/rules/upstream-proposal.md +2 -0
  107. package/dist/agent-src/rules/user-interaction.md +2 -0
  108. package/dist/agent-src/rules/user-interrupt-priority.md +2 -0
  109. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  110. package/dist/cli/registry.js +2 -0
  111. package/dist/cli/registry.js.map +1 -1
  112. package/dist/cli-delegate/{chunk-SJQMJI7M.js → chunk-3KJIMFTB.js} +1 -1
  113. package/dist/cli-delegate/{chunk-BSLUHV2F.js → chunk-BCPIOAGV.js} +148 -133
  114. package/dist/cli-delegate/cmd_conformance.js +1 -1
  115. package/dist/cli-delegate/cmd_doctor.js +1 -1
  116. package/dist/cli-delegate/cmd_export.js +1 -1
  117. package/dist/cli-delegate/cmd_prune.js +1 -1
  118. package/dist/cli-delegate/cmd_settings_migrate.js +1 -1
  119. package/dist/cli-delegate/cmd_sync.js +1 -1
  120. package/dist/cli-delegate/cmd_uninstall.js +1 -1
  121. package/dist/cli-delegate/cmd_validate.js +1 -1
  122. package/dist/discovery/deprecation-report.md +1 -1
  123. package/dist/discovery/discovery-manifest.json +109 -109
  124. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  125. package/dist/discovery/discovery-manifest.summary.md +1 -1
  126. package/dist/discovery/orphan-report.md +1 -1
  127. package/dist/discovery/packs.json +2 -2
  128. package/dist/discovery/trust-report.md +1 -1
  129. package/dist/discovery/workspaces.json +2 -2
  130. package/dist/hooks/dispatch.js +796 -289
  131. package/dist/install/install.mjs +1 -1
  132. package/dist/mcp/registry-manifest.json +2 -2
  133. package/dist/mcp/server.json +2 -2
  134. package/dist/mcp/server.mjs +571 -417
  135. package/dist/scripts/condense.js +33 -2
  136. package/dist/scripts/condense.js.map +1 -1
  137. package/dist/server/io/yamlIO.js +85 -0
  138. package/dist/server/io/yamlIO.js.map +1 -1
  139. package/dist/server/routes/settings.js +1 -12
  140. package/dist/server/routes/settings.js.map +1 -1
  141. package/dist/server/routes/wizard.js +52 -2
  142. package/dist/server/routes/wizard.js.map +1 -1
  143. package/dist/shared/settingsCarveOut.js +118 -0
  144. package/dist/shared/settingsCarveOut.js.map +1 -0
  145. package/dist/shared/settingsSurface.js +7 -1
  146. package/dist/shared/settingsSurface.js.map +1 -1
  147. package/dist/ui/assets/index-DmR0mbk4.js.map +1 -1
  148. package/package.json +1 -1
  149. package/src/config/evaluator-budgets.json +4 -4
  150. package/src/scripts/_cli/cmd_doctor.ts +6 -21
  151. package/src/scripts/_dispatch.bash +18 -0
  152. package/src/scripts/_lib/git_common_dir.ts +128 -0
  153. package/src/scripts/_lib/obligation_frequency.ts +391 -0
  154. package/src/scripts/_lib/session_register.ts +361 -0
  155. package/src/scripts/check_enforcement_coverage.ts +192 -7
  156. package/src/scripts/check_rule_projection_integrity.ts +364 -0
  157. package/src/scripts/condense.ts +36 -2
  158. package/src/scripts/conformance_scan.ts +35 -0
  159. package/src/scripts/generate_settings_reference.ts +232 -0
  160. package/src/scripts/hook_manifest.yaml +68 -27
  161. package/src/scripts/hooks/block_no_verify.ts +56 -1
  162. package/src/scripts/hooks/block_unauthorized_git.ts +67 -1
  163. package/src/scripts/hooks/concern_registry.ts +2 -0
  164. package/src/scripts/language_mirror_hook.ts +56 -6
  165. package/src/scripts/orchestration_backfill.ts +354 -0
  166. package/src/scripts/release.ts +142 -36
  167. package/src/scripts/schemas/rule.schema.json +5 -0
  168. package/src/scripts/session_canary_hook.ts +35 -3
  169. package/src/scripts/session_register_hook.ts +288 -0
  170. package/src/scripts/sessions_cli.ts +140 -0
  171. package/src/scripts/validate_frontmatter.ts +68 -0
  172. package/src/server/io/yamlIO.ts +87 -0
  173. package/src/shared/settingsCarveOut.ts +143 -0
  174. package/src/shared/settingsSurface.ts +7 -1
@@ -20,6 +20,8 @@ packs: [engineering-base]
20
20
  collision_ok:
21
21
  "refactor": "refactors churn comments — the keep/drop discipline applies"
22
22
  "implement": "fresh implementation is where over-commenting lands"
23
+ # obligation: line 5
24
+ obligation_frequency: "per-edit"
23
25
  ---
24
26
 
25
27
  # Code Comment Discipline
@@ -21,6 +21,8 @@ packs: [engineering-base]
21
21
  roles: [developer, reviewer, tester, po, incident, planner]
22
22
  enforced_by:
23
23
  - "none"
24
+ # obligation: line 38
25
+ obligation_frequency: "per-edit"
24
26
  ---
25
27
 
26
28
  # Code Provenance
@@ -11,6 +11,8 @@ load_context:
11
11
  - "../contexts/contracts/command-suggestion-flow.md"
12
12
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
13
13
  packs: [meta]
14
+ # obligation: line 18
15
+ obligation_frequency: "per-turn"
14
16
  ---
15
17
 
16
18
  # Command Suggestion Policy
@@ -12,6 +12,8 @@ workspaces: [engineering]
12
12
  packs: [engineering-base]
13
13
  collision_ok:
14
14
  "commit": "format floor for every commit message"
15
+ # obligation: line 19
16
+ obligation_frequency: "per-commit"
15
17
  ---
16
18
 
17
19
  # Commit Conventions
@@ -8,6 +8,8 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
8
8
  packs: [meta]
9
9
  triggers:
10
10
  - phrase: "reporting progress"
11
+ # obligation: line 20
12
+ obligation_frequency: "per-turn"
11
13
  ---
12
14
 
13
15
  # Communication Through-Line
@@ -9,6 +9,8 @@ triggers:
9
9
  self_contained: true
10
10
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
11
11
  packs: [meta]
12
+ # obligation: line 19
13
+ obligation_frequency: "per-event"
12
14
  ---
13
15
 
14
16
  # Content Quoting Floor
@@ -12,6 +12,8 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
12
12
  packs: [meta]
13
13
  enforced_by:
14
14
  - "hook:context-hygiene"
15
+ # obligation: line 67
16
+ obligation_frequency: "per-turn"
15
17
  ---
16
18
 
17
19
  # Context Hygiene
@@ -21,6 +23,14 @@ enforced_by:
21
23
  > `agents/state/context-hygiene.json` (tool-call count, loop signal,
22
24
  > freshness milestones at 20/40/60); the prose below is the spec the
23
25
  > hook implements and the agent-side fallback.
26
+ >
27
+ > **What the slot cannot reach.** The carrier fires per *tool call*; the
28
+ > read-loop law below is per *turn*. A turn that makes no tool call fires it
29
+ > zero times — and a reply with no tool call is exactly the shape the read-loop
30
+ > counter is trying to notice. So the counters are hook-carried and the
31
+ > every-turn obligation is model-carried, on every host. Named here because the
32
+ > frequency join in `check_enforcement_coverage.ts` reports it, and a rule whose
33
+ > header says "enforced by" without that sentence reads as a guarantee it is not.
24
34
 
25
35
  ## Conversation Freshness
26
36
 
@@ -10,6 +10,8 @@ routes_to:
10
10
  - "skill:copilot-config"
11
11
  workspaces: [agent-config-maintainer, engineering]
12
12
  packs: [meta]
13
+ # obligation: line 19
14
+ obligation_frequency: "none"
13
15
  ---
14
16
 
15
17
  # Copilot Routing
@@ -26,6 +26,8 @@ packs: [engineering-base, product-basic]
26
26
  collision_ok:
27
27
  "mockup": "a mockup is a second source — discrepancy check against the ticket text"
28
28
  "screenshot": "a screenshot is a second source — discrepancy check"
29
+ # obligation: line 71
30
+ obligation_frequency: "per-task"
29
31
  ---
30
32
 
31
33
  # Cross-Source Consistency
@@ -16,6 +16,8 @@ workspaces: [agent-config-maintainer, engineering]
16
16
  packs: [meta]
17
17
  collision_ok:
18
18
  "honest null": "this rule asks whether a recorded null may be REVISITED; evaluator-independence asks how one was PRODUCED — different decision points on the same artefact"
19
+ # obligation: line 31
20
+ obligation_frequency: "per-task"
19
21
  ---
20
22
 
21
23
  # Decision Revisit Gate
@@ -20,6 +20,8 @@ routes_to:
20
20
  - "skill:subagent-orchestration"
21
21
  workspaces: [engineering]
22
22
  packs: [engineering-base]
23
+ # obligation: line 35
24
+ obligation_frequency: "per-task"
23
25
  ---
24
26
 
25
27
  # Delegation Policy
@@ -36,6 +36,8 @@ workspaces: [engineering]
36
36
  packs: [engineering-base, frontend-design]
37
37
  collision_ok:
38
38
  "mockup": "a provided mockup is the spec — 1:1 fidelity floor"
39
+ # obligation: line 58
40
+ obligation_frequency: "per-edit"
39
41
  ---
40
42
 
41
43
  # Design Fidelity
@@ -13,11 +13,15 @@ routes_to:
13
13
  - "skill:accessibility-auditor"
14
14
  workspaces: [agent-config-maintainer, engineering]
15
15
  packs: [frontend-design]
16
+ enforced_by:
17
+ - "none"
16
18
  collision_ok:
17
19
  "component": "a written component is reviewed before it is called done — the write-side half"
18
20
  "design token": "same surface, opposite side: ui-audit-gate inventories tokens before the write, this reviews what the write emitted"
19
21
  "resources/views/": "both halves of one UI loop fire on the same path — audit before, review after; neither substitutes for the other"
20
22
  "resources/js/": "both halves of one UI loop fire on the same path — audit before, review after; neither substitutes for the other"
23
+ # obligation: line 39
24
+ obligation_frequency: "per-edit"
21
25
  ---
22
26
 
23
27
  # Design Review After UI Write
@@ -11,6 +11,8 @@ routes_to:
11
11
  - "skill:devcontainer"
12
12
  workspaces: [agent-config-maintainer, engineering]
13
13
  packs: [meta]
14
+ # obligation: line 20
15
+ obligation_frequency: "none"
14
16
  ---
15
17
 
16
18
  # Devcontainer Routing
@@ -27,6 +27,8 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
27
27
  packs: [meta]
28
28
  collision_ok:
29
29
  "screenshot": "a screenshot shipping into docs is the PII/anonymization gate"
30
+ # obligation: line 49
31
+ obligation_frequency: "per-event"
30
32
  ---
31
33
 
32
34
  # Doc-Screenshot Hygiene
@@ -15,6 +15,8 @@ collision_ok:
15
15
  "artisan": "artisan runs inside the project container, never on the host"
16
16
  "composer": "composer runs inside the project container"
17
17
  "docker": "its own core subject"
18
+ # obligation: line 22
19
+ obligation_frequency: "per-edit"
18
20
  ---
19
21
 
20
22
  # Docker Commands
@@ -18,6 +18,8 @@ workspaces: [agent-config-maintainer]
18
18
  packs: [meta]
19
19
  collision_ok:
20
20
  "src/skills/": "a skill in a fresh vertical is exactly the domain-gate surface"
21
+ # obligation: line 38
22
+ obligation_frequency: "per-task"
21
23
  ---
22
24
 
23
25
  # Domain Adoption Policy
@@ -42,6 +42,8 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
42
42
  packs: [meta]
43
43
  collision_ok:
44
44
  "review this contract": "contract review is advisory-shaped — the not-legal-advice footer floor"
45
+ # obligation: line 52
46
+ obligation_frequency: "per-task"
45
47
  ---
46
48
 
47
49
  # Domain Safety — Advisory Disclaimer
@@ -42,6 +42,8 @@ applies_to_user_types:
42
42
  - "all"
43
43
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
44
44
  packs: [meta]
45
+ # obligation: line 52
46
+ obligation_frequency: "per-task"
45
47
  ---
46
48
 
47
49
  # Domain Safety — PII Redaction
@@ -27,6 +27,8 @@ applies_to_user_types:
27
27
  - "gtm"
28
28
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
29
29
  packs: [meta]
30
+ # obligation: line 47
31
+ obligation_frequency: "per-turn"
30
32
  ---
31
33
 
32
34
  # Domain Safety — Data Retention
@@ -11,6 +11,8 @@ triggers:
11
11
  self_contained: true
12
12
  workspaces: [engineering]
13
13
  packs: [engineering-base]
14
+ # obligation: line 30
15
+ obligation_frequency: "per-edit"
14
16
  ---
15
17
 
16
18
  # Downstream Changes
@@ -28,6 +28,8 @@ workspaces: [engineering]
28
28
  packs: [engineering-base]
29
29
  collision_ok:
30
30
  "migration": "a prod migration is a hard-floor evidence surface (rollback path, blast radius)"
31
+ # obligation: line 49
32
+ obligation_frequency: "per-commit"
31
33
  ---
32
34
 
33
35
  # Engineering Safety Floor
@@ -20,6 +20,12 @@ enforced_by:
20
20
  - "hook:evidence-independence"
21
21
  collision_ok:
22
22
  "honest null": "this rule asks how a recorded null was PRODUCED; decision-revisit-gate asks whether it may be REVISITED — different decision points on the same artefact"
23
+ # obligation: dispatching an evaluator is a tool call, and the guard is a pre_tool_use
24
+ # concern that reads that prompt — src/rules/evaluator-independence.md:81
25
+ obligation_frequency: "per-edit"
26
+ # frequency-override: line 70 states a per-turn clause ("one evaluation per turn"),
27
+ # but the guard counts it AT the dispatch, which is a tool call — a per-edit point
28
+ # carrier sees every dispatch, so it carries the per-turn cap too.
23
29
  ---
24
30
 
25
31
  # Evaluator Independence
@@ -85,11 +91,15 @@ pre-loaded verdict, and **blocks** a second *self-scoped* evaluation dispatch in
85
91
  the same turn; it **warns** on the first. It reads the prompt the agent is about
86
92
  to send, so items 1 and 4 above are mechanically enforced.
87
93
 
88
- Two limits, stated because round 2 measured them. The pre-loaded-verdict list is
94
+ Three limits, stated because they were measured. The pre-loaded-verdict list is
89
95
  a **phrase list**, so a paraphrase evades it — it catches recurrences of known
90
- steering wording, not steering as such. And the turn boundary is the
96
+ steering wording, not steering as such. The turn boundary is the
91
97
  authorization ledger's `detected_at` stamp, because the envelope carries no turn
92
- id; with no ledger yet, the counter falls back to session scope.
98
+ id; with no ledger yet, the counter falls back to session scope. And the slot
99
+ itself is not universal: `pre_tool_use` exists on **three** hosts — augment,
100
+ claude, cowork. On cursor, cline, windsurf, gemini and copilot this guard has
101
+ nowhere to bind, so items 1 and 4 join 2 and 3 as model-carried there. The
102
+ frequency join in `check_enforcement_coverage.ts` reports exactly that set.
93
103
 
94
104
  Items 2 and 3 — an honestly chosen scope, and recording the prompt with the
95
105
  verdict — are **not** enforced by anything. A narrowed scope is not decidable
@@ -17,6 +17,8 @@ applies_to_user_types:
17
17
  self_contained: true
18
18
  workspaces: [engineering]
19
19
  packs: [meta]
20
+ # obligation: line 37
21
+ obligation_frequency: "per-turn"
20
22
  ---
21
23
 
22
24
  # External Code-Graph Interop
@@ -10,6 +10,8 @@ triggers:
10
10
  self_contained: true
11
11
  workspaces: [agent-config-maintainer, engineering]
12
12
  packs: [meta]
13
+ # obligation: line 20
14
+ obligation_frequency: "per-task"
13
15
  ---
14
16
 
15
17
  # external-reference-deep-dive
@@ -14,6 +14,8 @@ validator_ignore:
14
14
  self_contained: true
15
15
  workspaces: [agent-config-maintainer, engineering]
16
16
  packs: [meta]
17
+ # obligation: line 30
18
+ obligation_frequency: "per-turn"
17
19
  ---
18
20
 
19
21
  # Fast-Path Marker Visibility
@@ -33,6 +33,8 @@ packs: [finance-basic, finance-advanced]
33
33
  trust:
34
34
  level: advisory
35
35
  human_review_required: true
36
+ # obligation: line 53
37
+ obligation_frequency: "per-task"
36
38
  ---
37
39
  <!-- agent-config:human-review-banner -->
38
40
  > HUMAN REVIEW REQUIRED · trust: advisory · owner: unknown
@@ -43,6 +43,8 @@ collision_ok:
43
43
  "formrequest": "FormRequest named in a generic artifact is leakage — the lint surface"
44
44
  "phpstan": "phpstan named in a generic artifact is leakage — the lint surface"
45
45
  "rector": "rector named in a generic artifact is leakage — the lint surface"
46
+ # obligation: line 65
47
+ obligation_frequency: "per-edit"
46
48
  ---
47
49
 
48
50
  # framework-neutrality-in-generic-skills
@@ -23,6 +23,8 @@ workspaces: [engineering]
23
23
  packs: [engineering-base]
24
24
  enforced_by:
25
25
  - "hook:block-no-verify"
26
+ # obligation: line 35
27
+ obligation_frequency: "per-commit"
26
28
  ---
27
29
 
28
30
  # Git History Discipline
@@ -82,4 +84,4 @@ Trigger-set above activates this routing on demand, independent of the disciplin
82
84
  - [`commit-policy`](commit-policy.md) — commits are the user's call; rewriting them is a stronger version of the same restriction.
83
85
  - [`token-efficiency`](token-efficiency.md) — Iron Law on burning the user's tokens for cosmetic gain.
84
86
  - [`skill:git-workflow`](../skills/git-workflow/SKILL.md) — Safe Squash-After-Push protocol and Divergent-State Recovery decision tree.
85
- - `git … --no-verify` / `core.hooksPath` overrides — deterministically blocked by the `block-no-verify` PreToolUse guard (`src/scripts/hooks/block_no_verify.ts`, registered in `hook_manifest.yaml`).
87
+ - `git … --no-verify` / `core.hooksPath` overrides — deterministically blocked by the `block-no-verify` PreToolUse guard (`src/scripts/hooks/block_no_verify.ts`, registered in `hook_manifest.yaml`) **on the three hosts that have a `pre_tool_use` slot at all** — augment, claude, cowork. On cursor, cline, windsurf, gemini and copilot the guard has nowhere to bind, so on those hosts the Iron Laws above are model-carried and "deterministically blocked" is not a claim this rule can make. Surfaced by the frequency join in `check_enforcement_coverage.ts`, which reports the per-commit obligation as uncovered on exactly those platforms.
@@ -9,6 +9,8 @@ triggers:
9
9
  - keyword: "convention"
10
10
  workspaces: [agent-config-maintainer, engineering]
11
11
  packs: [meta]
12
+ # obligation: line 16
13
+ obligation_frequency: "per-edit"
12
14
  ---
13
15
 
14
16
  # Guidelines
@@ -19,6 +19,8 @@ workspaces: [engineering]
19
19
  packs: [history-discipline]
20
20
  trust:
21
21
  level: professional
22
+ # obligation: line 35
23
+ obligation_frequency: "per-edit"
22
24
  ---
23
25
 
24
26
  # History Discipline
@@ -16,6 +16,8 @@ applies_to_user_types:
16
16
  self_contained: true
17
17
  workspaces: [engineering]
18
18
  packs: [frontend-design]
19
+ # obligation: line 41
20
+ obligation_frequency: "per-edit"
19
21
  ---
20
22
 
21
23
  # Icon Consistency
@@ -22,6 +22,8 @@ collision_ok:
22
22
  "/image:": "rights/likeness gate on the image-generation surface"
23
23
  "likeness": "its own core subject — the rights gate"
24
24
  "scripts/ai-image/adapters/": "adapter edits touch the likeness-gated generation path"
25
+ # obligation: line 32
26
+ obligation_frequency: "per-event"
25
27
  ---
26
28
 
27
29
  # Image Likeness and Rights
@@ -20,6 +20,8 @@ collision_ok:
20
20
  "migration": "a migration is a significant behavioural change — the pre-implementation checks apply"
21
21
  "refactor": "refactor = significant change; the demand gate + three checks apply"
22
22
  "implement": "its own core trigger — pre-implementation validation"
23
+ # obligation: line 45
24
+ obligation_frequency: "per-task"
23
25
  ---
24
26
 
25
27
  # Improve Before Implement
@@ -12,6 +12,8 @@ triggers:
12
12
  self_contained: true
13
13
  workspaces: [agent-config-maintainer, engineering]
14
14
  packs: [meta]
15
+ # obligation: line 62
16
+ obligation_frequency: "per-task"
15
17
  ---
16
18
 
17
19
  # invite-challenge
@@ -20,6 +20,8 @@ collision_ok:
20
20
  "artisan": "artisan is a Laravel-flavoured PHP routing cue — load the laravel skill"
21
21
  "eloquent": "eloquent is a Laravel routing cue"
22
22
  "formrequest": "FormRequest is a Laravel routing cue"
23
+ # obligation: line 29
24
+ obligation_frequency: "none"
23
25
  ---
24
26
 
25
27
  # Laravel Routing
@@ -16,6 +16,8 @@ trust:
16
16
  install:
17
17
  default: false
18
18
  removable: true
19
+ # obligation: line 23
20
+ obligation_frequency: "per-edit"
19
21
  ---
20
22
 
21
23
  # Laravel Translations
@@ -31,6 +31,8 @@ trust:
31
31
  collision_ok:
32
32
  "controller": "'controller' is a GDPR role term (controller/processor) in the legal pack"
33
33
  "review this contract": "the legal-pack contract-review gate — both floors must fire"
34
+ # obligation: line 103
35
+ obligation_frequency: "per-task"
34
36
  ---
35
37
  <!-- agent-config:human-review-banner -->
36
38
  > HUMAN REVIEW REQUIRED · trust: advisory · owner: unknown
@@ -20,6 +20,8 @@ enforced_by:
20
20
  collision_ok:
21
21
  "src/skills/": "skill authoring reviews tool grants and the egress leg"
22
22
  "src/agent-src/commands/": "command authoring reviews the three trifecta legs"
23
+ # obligation: line 60
24
+ obligation_frequency: "per-edit"
23
25
  ---
24
26
 
25
27
  # Lethal-Trifecta Guard
@@ -23,6 +23,8 @@ trust:
23
23
  confidence: medium
24
24
  install:
25
25
  removable: true
26
+ # obligation: line 30
27
+ obligation_frequency: "per-session"
26
28
  ---
27
29
 
28
30
  # Linked-Projects Onboarding Gate
@@ -10,6 +10,8 @@ triggers:
10
10
  self_contained: true
11
11
  workspaces: [agent-config-maintainer]
12
12
  packs: [meta]
13
+ # obligation: line 28
14
+ obligation_frequency: "per-edit"
13
15
  ---
14
16
 
15
17
  # Low-Impact Corpus — Privacy Floor
@@ -9,6 +9,8 @@ triggers:
9
9
  self_contained: true
10
10
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
11
11
  packs: [meta]
12
+ # obligation: line 23
13
+ obligation_frequency: "per-turn"
12
14
  ---
13
15
 
14
16
  # Markdown Safe Codeblocks
@@ -36,6 +36,8 @@ collision_ok:
36
36
  "/audio:": "routes the media policy layer for audio surfaces"
37
37
  "/video:": "routes the media policy layer for video surfaces"
38
38
  "likeness": "likeness prompts must load the policy layer before generation"
39
+ # obligation: line 46
40
+ obligation_frequency: "per-event"
39
41
  ---
40
42
 
41
43
  # Media Governance Routing
@@ -17,6 +17,8 @@ triggers:
17
17
  self_contained: true
18
18
  workspaces: [agent-config-maintainer, engineering, gtm]
19
19
  packs: [ai-video]
20
+ # obligation: line 31
21
+ obligation_frequency: "per-event"
20
22
  ---
21
23
 
22
24
  # Media Sync — Ground Truth Is the Audio
@@ -17,6 +17,8 @@ enforced_by:
17
17
  - "hook:minimal-safe-diff"
18
18
  collision_ok:
19
19
  "fix": "a fix is the smallest change that solves the stated problem"
20
+ # obligation: line 25
21
+ obligation_frequency: "per-edit"
20
22
  ---
21
23
 
22
24
  # Minimal Safe Diff
@@ -9,6 +9,8 @@ routes_to:
9
9
  - "guideline:agent-infra/missing-tool-handling"
10
10
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
11
11
  packs: [meta]
12
+ # obligation: line 16
13
+ obligation_frequency: "per-event"
12
14
  ---
13
15
 
14
16
  # Missing Tool Handling
@@ -13,6 +13,8 @@ routes_to:
13
13
  - "guideline:agent-infra/model-recommendation"
14
14
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
15
15
  packs: [meta]
16
+ # obligation: line 4
17
+ obligation_frequency: "per-task"
16
18
  ---
17
19
 
18
20
  # Model Recommendation
@@ -8,6 +8,8 @@ triggers:
8
8
  self_contained: true
9
9
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
10
10
  packs: [meta]
11
+ # obligation: line 18
12
+ obligation_frequency: "per-commit"
11
13
  ---
12
14
 
13
15
  # No Attribution Footers
@@ -17,6 +17,8 @@ triggers:
17
17
  self_contained: true
18
18
  workspaces: [agent-config-maintainer, engineering]
19
19
  packs: [meta]
20
+ # obligation: line 27
21
+ obligation_frequency: "per-commit"
20
22
  ---
21
23
 
22
24
  # No Decorative Emojis in Git Surfaces
@@ -10,6 +10,8 @@ triggers:
10
10
  self_contained: true
11
11
  workspaces: [agent-config-maintainer, engineering]
12
12
  packs: [meta]
13
+ # obligation: line 20
14
+ obligation_frequency: "per-commit"
13
15
  ---
14
16
 
15
17
  # No Unsolicited PR Progress Comments
@@ -22,6 +22,8 @@ enforced_by:
22
22
  - "validator:src/scripts/check_council_references.ts"
23
23
  collision_ok:
24
24
  "agents/roadmaps/": "roadmap edits are where transient-ref links get written"
25
+ # obligation: line 47
26
+ obligation_frequency: "per-edit"
25
27
  ---
26
28
 
27
29
  # No Transient References from Stable Artifacts
@@ -17,6 +17,8 @@ workspaces: [agent-config-maintainer, engineering]
17
17
  packs: [meta]
18
18
  collision_ok:
19
19
  "debug": "debug hypotheses belong in the session notes file"
20
+ # obligation: line 35
21
+ obligation_frequency: "per-turn"
20
22
  ---
21
23
 
22
24
  # Notes-First Reasoning
@@ -11,6 +11,8 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
11
11
  packs: [meta]
12
12
  enforced_by:
13
13
  - "hook:onboarding-gate"
14
+ # obligation: line 18
15
+ obligation_frequency: "per-session"
14
16
  ---
15
17
 
16
18
  # Onboarding Gate
@@ -12,6 +12,8 @@ workspaces: [engineering]
12
12
  packs: [engineering-base]
13
13
  enforced_by:
14
14
  - "validator:src/scripts/lint_output_slop.ts"
15
+ # obligation: line 22
16
+ obligation_frequency: "per-edit"
15
17
  ---
16
18
 
17
19
  # Output Discipline
@@ -10,6 +10,8 @@ routes_to:
10
10
  - "skill:lint-skills"
11
11
  workspaces: [agent-config-maintainer]
12
12
  packs: [meta]
13
+ # obligation: line 17
14
+ obligation_frequency: "per-commit"
13
15
  ---
14
16
 
15
17
  # Package Ci Checks
@@ -27,6 +27,8 @@ workspaces: [agent-config-maintainer]
27
27
  packs: [meta]
28
28
  enforced_by:
29
29
  - "validator:src/scripts/lint_persona_governance.ts"
30
+ # obligation: line 41
31
+ obligation_frequency: "per-edit"
30
32
  ---
31
33
 
32
34
  # Persona Governance
@@ -18,6 +18,8 @@ install:
18
18
  removable: true
19
19
  collision_ok:
20
20
  "phpstan": "phpstan findings are the PHP pattern floor's own quality surface"
21
+ # obligation: line 25
22
+ obligation_frequency: "per-edit"
21
23
  ---
22
24
 
23
25
  # Php Coding
@@ -15,6 +15,8 @@ packs: [engineering-base]
15
15
  collision_ok:
16
16
  "migration": "migrations add columns — multi-state fields should land as enums from the start"
17
17
  "category": "a category field is the canonical enum candidate"
18
+ # obligation: line 27
19
+ obligation_frequency: "per-edit"
18
20
  ---
19
21
 
20
22
  # Prefer Enums Over Literal Values