@event4u/agent-config 1.19.0 → 1.21.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 (297) hide show
  1. package/.agent-src/commands/agent-handoff.md +14 -10
  2. package/.agent-src/commands/agents.md +1 -1
  3. package/.agent-src/commands/bug-fix.md +1 -1
  4. package/.agent-src/commands/bug-investigate.md +2 -2
  5. package/.agent-src/commands/chat-history/import.md +166 -0
  6. package/.agent-src/commands/chat-history/learn.md +178 -0
  7. package/.agent-src/commands/chat-history/show.md +17 -18
  8. package/.agent-src/commands/chat-history.md +26 -25
  9. package/.agent-src/commands/compress.md +12 -0
  10. package/.agent-src/commands/context/create.md +2 -2
  11. package/.agent-src/commands/context.md +1 -1
  12. package/.agent-src/commands/copilot-agents.md +1 -1
  13. package/.agent-src/commands/council/default.md +21 -12
  14. package/.agent-src/commands/council.md +1 -1
  15. package/.agent-src/commands/create-pr.md +28 -8
  16. package/.agent-src/commands/e2e-heal.md +1 -1
  17. package/.agent-src/commands/e2e-plan.md +1 -1
  18. package/.agent-src/commands/feature/dev.md +3 -3
  19. package/.agent-src/commands/feature.md +1 -1
  20. package/.agent-src/commands/fix/seeder.md +2 -2
  21. package/.agent-src/commands/fix.md +1 -1
  22. package/.agent-src/commands/jira-ticket.md +1 -1
  23. package/.agent-src/commands/judge.md +2 -2
  24. package/.agent-src/commands/memory.md +1 -1
  25. package/.agent-src/commands/mode.md +5 -5
  26. package/.agent-src/commands/module.md +1 -1
  27. package/.agent-src/commands/onboard.md +4 -4
  28. package/.agent-src/commands/optimize/augmentignore.md +1 -1
  29. package/.agent-src/commands/optimize-prompt.md +61 -0
  30. package/.agent-src/commands/optimize.md +1 -1
  31. package/.agent-src/commands/override.md +1 -1
  32. package/.agent-src/commands/review-changes.md +1 -1
  33. package/.agent-src/commands/review-routing.md +1 -1
  34. package/.agent-src/commands/roadmap.md +1 -1
  35. package/.agent-src/commands/set-cost-profile.md +3 -3
  36. package/.agent-src/commands/sync-agent-settings.md +2 -2
  37. package/.agent-src/commands/sync-gitignore.md +1 -1
  38. package/.agent-src/commands/tests/create.md +2 -2
  39. package/.agent-src/commands/tests.md +1 -1
  40. package/.agent-src/commands/threat-model.md +4 -4
  41. package/.agent-src/contexts/authority/commit-mechanics.md +14 -1
  42. package/.agent-src/contexts/authority/destructive-mechanics.md +14 -1
  43. package/.agent-src/contexts/authority/scope-mechanics.md +5 -0
  44. package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +76 -0
  45. package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +76 -0
  46. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +4 -4
  47. package/.agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +98 -0
  48. package/.agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +93 -0
  49. package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +125 -9
  50. package/.agent-src/contexts/execution/autonomy-mechanics.md +44 -0
  51. package/.agent-src/contexts/model-recommendations.md +2 -2
  52. package/.agent-src/contexts/override-system.md +1 -1
  53. package/.agent-src/personas/product-owner.md +2 -2
  54. package/.agent-src/personas/qa.md +1 -1
  55. package/.agent-src/rules/agent-authority.md +5 -6
  56. package/.agent-src/rules/agent-docs.md +11 -53
  57. package/.agent-src/rules/analysis-skill-routing.md +10 -40
  58. package/.agent-src/rules/architecture.md +6 -1
  59. package/.agent-src/rules/artifact-drafting-protocol.md +5 -0
  60. package/.agent-src/rules/artifact-engagement-recording.md +23 -59
  61. package/.agent-src/rules/ask-when-uncertain.md +24 -47
  62. package/.agent-src/rules/augment-portability.md +14 -62
  63. package/.agent-src/rules/augment-source-of-truth.md +10 -1
  64. package/.agent-src/rules/autonomous-execution.md +17 -98
  65. package/.agent-src/rules/capture-learnings.md +9 -80
  66. package/.agent-src/rules/cli-output-handling.md +12 -42
  67. package/.agent-src/rules/command-suggestion-policy.md +25 -73
  68. package/.agent-src/rules/commit-conventions.md +9 -58
  69. package/.agent-src/rules/commit-policy.md +16 -47
  70. package/.agent-src/rules/context-hygiene.md +5 -0
  71. package/.agent-src/rules/direct-answers.md +21 -42
  72. package/.agent-src/rules/docker-commands.md +11 -45
  73. package/.agent-src/rules/docs-sync.md +10 -56
  74. package/.agent-src/rules/downstream-changes.md +5 -0
  75. package/.agent-src/rules/e2e-testing.md +9 -44
  76. package/.agent-src/rules/guidelines.md +13 -75
  77. package/.agent-src/rules/improve-before-implement.md +10 -2
  78. package/.agent-src/rules/language-and-tone.md +35 -69
  79. package/.agent-src/rules/laravel-translations.md +11 -40
  80. package/.agent-src/rules/markdown-safe-codeblocks.md +4 -0
  81. package/.agent-src/rules/minimal-safe-diff.md +4 -0
  82. package/.agent-src/rules/missing-tool-handling.md +4 -0
  83. package/.agent-src/rules/model-recommendation.md +9 -61
  84. package/.agent-src/rules/no-attribution-footers.md +53 -0
  85. package/.agent-src/rules/no-cheap-questions.md +11 -27
  86. package/.agent-src/rules/no-council-references.md +76 -0
  87. package/.agent-src/rules/no-roadmap-references.md +8 -1
  88. package/.agent-src/rules/non-destructive-by-default.md +13 -43
  89. package/.agent-src/rules/onboarding-gate.md +9 -117
  90. package/.agent-src/rules/package-ci-checks.md +10 -37
  91. package/.agent-src/rules/php-coding.md +10 -55
  92. package/.agent-src/rules/preservation-guard.md +9 -0
  93. package/.agent-src/rules/review-routing-awareness.md +9 -97
  94. package/.agent-src/rules/reviewer-awareness.md +8 -83
  95. package/.agent-src/rules/roadmap-progress-sync.md +7 -170
  96. package/.agent-src/rules/role-mode-adherence.md +6 -2
  97. package/.agent-src/rules/rule-type-governance.md +8 -66
  98. package/.agent-src/rules/runtime-safety.md +5 -0
  99. package/.agent-src/rules/scope-control.md +17 -62
  100. package/.agent-src/rules/security-sensitive-stop.md +7 -1
  101. package/.agent-src/rules/size-enforcement.md +6 -1
  102. package/.agent-src/rules/skill-improvement-trigger.md +9 -49
  103. package/.agent-src/rules/skill-quality.md +7 -64
  104. package/.agent-src/rules/slash-command-routing-policy.md +11 -63
  105. package/.agent-src/rules/think-before-action.md +22 -87
  106. package/.agent-src/rules/token-efficiency.md +10 -74
  107. package/.agent-src/rules/token-optimizer-maintenance.md +68 -0
  108. package/.agent-src/rules/tool-safety.md +4 -0
  109. package/.agent-src/rules/ui-audit-gate.md +25 -61
  110. package/.agent-src/rules/upstream-proposal.md +9 -67
  111. package/.agent-src/rules/user-interaction.md +25 -95
  112. package/.agent-src/rules/verify-before-complete.md +1 -1
  113. package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  114. package/.agent-src/skills/ai-council/SKILL.md +69 -5
  115. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  116. package/.agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  117. package/.agent-src/skills/artisan-commands/SKILL.md +2 -2
  118. package/.agent-src/skills/authz-review/SKILL.md +1 -1
  119. package/.agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  120. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +8 -8
  121. package/.agent-src/skills/bug-analyzer/SKILL.md +5 -5
  122. package/.agent-src/skills/code-refactoring/SKILL.md +4 -4
  123. package/.agent-src/skills/code-review/SKILL.md +2 -2
  124. package/.agent-src/skills/command-writing/SKILL.md +11 -0
  125. package/.agent-src/skills/composer-packages/SKILL.md +2 -2
  126. package/.agent-src/skills/context-authoring/SKILL.md +11 -0
  127. package/.agent-src/skills/context-document/SKILL.md +1 -1
  128. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +23 -0
  129. package/.agent-src/skills/copilot-config/SKILL.md +1 -1
  130. package/.agent-src/skills/dcf-modeling/SKILL.md +89 -0
  131. package/.agent-src/skills/dependency-upgrade/SKILL.md +2 -2
  132. package/.agent-src/skills/devcontainer/SKILL.md +2 -2
  133. package/.agent-src/skills/developer-like-execution/SKILL.md +1 -1
  134. package/.agent-src/skills/docker/SKILL.md +1 -1
  135. package/.agent-src/skills/dto-creator/SKILL.md +1 -1
  136. package/.agent-src/skills/estimate-ticket/SKILL.md +2 -2
  137. package/.agent-src/skills/fe-design/SKILL.md +4 -4
  138. package/.agent-src/skills/feature-planning/SKILL.md +5 -5
  139. package/.agent-src/skills/funnel-analysis/SKILL.md +100 -0
  140. package/.agent-src/skills/laravel/SKILL.md +1 -1
  141. package/.agent-src/skills/laravel-notifications/SKILL.md +5 -5
  142. package/.agent-src/skills/laravel-pennant/SKILL.md +1 -1
  143. package/.agent-src/skills/laravel-pulse/SKILL.md +4 -4
  144. package/.agent-src/skills/laravel-reverb/SKILL.md +2 -2
  145. package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -1
  146. package/.agent-src/skills/md-language-check/SKILL.md +1 -1
  147. package/.agent-src/skills/migration-creator/SKILL.md +7 -7
  148. package/.agent-src/skills/multi-tenancy/SKILL.md +8 -8
  149. package/.agent-src/skills/okr-tree-modeling/SKILL.md +93 -0
  150. package/.agent-src/skills/performance-analysis/SKILL.md +3 -3
  151. package/.agent-src/skills/pest-testing/SKILL.md +6 -6
  152. package/.agent-src/skills/php-service/SKILL.md +2 -2
  153. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  154. package/.agent-src/skills/project-analysis-react/SKILL.md +1 -1
  155. package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  156. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  157. package/.agent-src/skills/project-analyzer/SKILL.md +4 -4
  158. package/.agent-src/skills/prompt-optimizer/SKILL.md +108 -0
  159. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
  160. package/.agent-src/skills/rice-prioritization/SKILL.md +100 -0
  161. package/.agent-src/skills/rule-writing/SKILL.md +33 -0
  162. package/.agent-src/skills/sentry-integration/SKILL.md +1 -1
  163. package/.agent-src/skills/skill-writing/SKILL.md +14 -0
  164. package/.agent-src/skills/subagent-orchestration/SKILL.md +34 -2
  165. package/.agent-src/skills/terraform/SKILL.md +2 -2
  166. package/.agent-src/skills/terragrunt/SKILL.md +8 -8
  167. package/.agent-src/skills/test-performance/SKILL.md +5 -5
  168. package/.agent-src/skills/threat-modeling/SKILL.md +2 -2
  169. package/.agent-src/skills/token-optimizer/SKILL.md +110 -0
  170. package/.agent-src/skills/unit-economics-modeling/SKILL.md +104 -0
  171. package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  172. package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -0
  173. package/.agent-src/templates/AGENTS.md +1 -1
  174. package/.agent-src/templates/agent-settings.md +25 -41
  175. package/.agent-src/templates/contexts/tenant-boundaries.md +2 -2
  176. package/.agent-src/templates/contexts.md +1 -1
  177. package/.agent-src/templates/copilot-instructions.md +21 -0
  178. package/.agent-src/templates/copilot-review-instructions.md +76 -0
  179. package/.agent-src/templates/features.md +1 -1
  180. package/.agent-src/templates/rule.md +127 -0
  181. package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +7 -5
  182. package/.agent-src/templates/scripts/work_engine/hooks/__init__.py +0 -4
  183. package/.agent-src/templates/scripts/work_engine/hooks/builtin/__init__.py +0 -4
  184. package/.agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.py +7 -51
  185. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_append.py +1 -2
  186. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_halt_append.py +1 -2
  187. package/.agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.py +2 -3
  188. package/.agent-src/templates/skill.md +30 -1
  189. package/.claude-plugin/marketplace.json +11 -4
  190. package/AGENTS.md +71 -3
  191. package/CHANGELOG.md +180 -3
  192. package/README.md +24 -23
  193. package/config/agent-settings.template.yml +63 -23
  194. package/config/gitignore-block.txt +11 -4
  195. package/docs/architecture.md +84 -3
  196. package/docs/catalog.md +23 -11
  197. package/docs/contracts/adr-chat-history-split.md +10 -1
  198. package/docs/contracts/agent-memory-contract.md +1 -1
  199. package/docs/contracts/command-clusters.md +1 -1
  200. package/docs/contracts/context-paths.md +2 -1
  201. package/docs/contracts/cross-wing-handoff.md +133 -0
  202. package/docs/contracts/file-ownership-matrix.json +678 -609
  203. package/docs/contracts/hook-architecture-v1.md +8 -1
  204. package/docs/contracts/iron-law-overrides.txt +25 -0
  205. package/docs/contracts/kernel-membership.md +273 -0
  206. package/docs/contracts/load-context-schema.md +26 -11
  207. package/docs/contracts/memory-visibility-v1.md +8 -24
  208. package/docs/contracts/pilot/agent-authority.md +24 -0
  209. package/docs/contracts/pilot/direct-answers.md +70 -0
  210. package/docs/contracts/pilot/language-and-tone.md +63 -0
  211. package/docs/contracts/rule-classification.md +170 -0
  212. package/docs/contracts/rule-router.md +153 -0
  213. package/docs/customization.md +18 -7
  214. package/docs/decisions/ADR-001-kernel-swap-deferred.md +109 -0
  215. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +124 -0
  216. package/docs/decisions/ADR-rule-kernel-and-router.md +122 -0
  217. package/docs/getting-started.md +19 -27
  218. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
  219. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +176 -0
  220. package/docs/guidelines/agent-infra/rule-type-governance.md +73 -0
  221. package/docs/guidelines/agent-infra/size-and-scope.md +13 -2
  222. package/docs/guidelines/agent-infra/skill-quality-checklist.md +119 -0
  223. package/docs/guidelines/augment-portability-patterns.md +68 -0
  224. package/docs/guidelines/php/php-coding-patterns.md +62 -0
  225. package/docs/hook-payload-capture.md +221 -0
  226. package/docs/migrations/commands-1.15.0.md +17 -12
  227. package/docs/skills-catalog.md +5 -4
  228. package/llms.txt +4 -3
  229. package/package.json +1 -1
  230. package/scripts/_p43_bodies.py +235 -0
  231. package/scripts/_p43_compress.py +118 -0
  232. package/scripts/_p4_migrate.py +199 -0
  233. package/scripts/_pilot_council_question.py +57 -0
  234. package/scripts/_pilot_measure.py +53 -0
  235. package/scripts/agent-config +1 -1
  236. package/scripts/ai_council/_default_prices.py +4 -4
  237. package/scripts/ai_council/clients.py +1 -1
  238. package/scripts/ai_council/modes.py +3 -4
  239. package/scripts/ai_council/pricing.py +10 -9
  240. package/scripts/ai_council/session.py +107 -5
  241. package/scripts/build_linear_digest.py +3 -5
  242. package/scripts/build_rule_trigger_matrix.py +1 -9
  243. package/scripts/chat_history.py +952 -596
  244. package/scripts/check_always_budget.py +39 -6
  245. package/scripts/check_compressed_paths.py +213 -0
  246. package/scripts/check_compression.py +15 -0
  247. package/scripts/check_context_paths.py +1 -0
  248. package/scripts/check_council_layout.py +105 -0
  249. package/scripts/check_council_references.py +145 -0
  250. package/scripts/check_portability.py +2 -0
  251. package/scripts/check_references.py +14 -2
  252. package/scripts/check_token_optimizer_freshness.py +131 -0
  253. package/scripts/compile_router.py +148 -0
  254. package/scripts/compress.py +219 -11
  255. package/scripts/council_cli.py +63 -9
  256. package/scripts/council_prune.py +81 -0
  257. package/scripts/count_token_optimizer_usage.sh +54 -0
  258. package/scripts/hook_manifest.yaml +33 -0
  259. package/scripts/hooks/augment-chat-history.sh +10 -0
  260. package/scripts/hooks/cowork-dispatcher.sh +98 -0
  261. package/scripts/hooks/dispatch_hook.py +35 -0
  262. package/scripts/hooks_status.py +12 -1
  263. package/scripts/install-hooks.sh +2 -2
  264. package/scripts/install.sh +81 -2
  265. package/scripts/iron_law_sha.py +98 -0
  266. package/scripts/lint_handoffs.py +214 -0
  267. package/scripts/lint_hook_manifest.py +2 -1
  268. package/scripts/lint_load_context.py +35 -5
  269. package/scripts/measure_rule_budget.py +314 -0
  270. package/scripts/prototype_lint_contradictions.py +150 -0
  271. package/scripts/redact_hook_capture.py +148 -0
  272. package/scripts/schemas/rule.schema.json +55 -6
  273. package/scripts/schemas/skill.schema.json +5 -0
  274. package/scripts/skill_linter.py +359 -7
  275. package/scripts/smoke_path_resolution.py +93 -0
  276. package/scripts/update_prices.py +3 -3
  277. package/scripts/validate_frontmatter.py +41 -1
  278. package/.agent-src/commands/chat-history/checkpoint.md +0 -126
  279. package/.agent-src/commands/chat-history/clear.md +0 -103
  280. package/.agent-src/commands/chat-history/resume.md +0 -183
  281. package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +0 -72
  282. package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +0 -79
  283. package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +0 -87
  284. package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +0 -62
  285. package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +0 -78
  286. package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +0 -85
  287. package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +0 -65
  288. package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +0 -78
  289. package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +0 -53
  290. package/.agent-src/rules/chat-history-cadence.md +0 -143
  291. package/.agent-src/rules/chat-history-ownership.md +0 -124
  292. package/.agent-src/rules/chat-history-visibility.md +0 -97
  293. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_heartbeat.py +0 -50
  294. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_turn_check.py +0 -49
  295. package/scripts/check_phase_coupling.py +0 -148
  296. /package/{docs → .agent-src/contexts}/contracts/artifact-engagement-flow.md +0 -0
  297. /package/{docs → .agent-src/contexts}/contracts/command-suggestion-flow.md +0 -0
@@ -4,6 +4,11 @@ tier: "mechanical-already"
4
4
  description: "Creating or editing rules, skills, commands, guidelines, AGENTS.md, or copilot-instructions.md — enforce size and scope limits"
5
5
  alwaysApply: false
6
6
  source: package
7
+ triggers:
8
+ - intent: "create rule"
9
+ - intent: "create skill"
10
+ - intent: "create command"
11
+ - intent: "create guideline"
7
12
  ---
8
13
 
9
14
  # size-enforcement
@@ -23,7 +28,7 @@ source: package
23
28
  - Rules and system instructions should stay well below 200 lines
24
29
  - Smaller (≈60 lines) is strongly preferred
25
30
 
26
- → Size limits and details: `../../docs/guidelines/agent-infra/size-and-scope.md`
31
+ → Size limits and details: `../docs/guidelines/agent-infra/size-and-scope.md`
27
32
 
28
33
  → Frontmatter contract: schemas live in `scripts/schemas/` and are enforced by
29
34
  `python3 scripts/validate_frontmatter.py`.
@@ -2,58 +2,18 @@
2
2
  type: "auto"
3
3
  tier: "2a"
4
4
  description: "After completing a meaningful task — trigger post-task learning capture if pipelines.skill_improvement is enabled"
5
- alwaysApply: false
6
5
  source: package
6
+ triggers:
7
+ - phrase: "after completing"
8
+ - keyword: "improvement"
9
+ - keyword: "pipeline"
10
+ routes_to:
11
+ - "skill:skill-improvement-pipeline"
7
12
  ---
8
13
 
9
14
  # Skill Improvement Trigger
10
15
 
11
- ## When to activate
16
+ **Iron Law.** After a meaningful task, trigger the post-task learning capture if `pipelines.skill_improvement` is enabled.
12
17
 
13
- Read `pipelines.skill_improvement` from `.agent-settings.yml`.
14
-
15
- - **If `false` or missing** → do nothing. Stop here.
16
- - **If `true`** → continue.
17
-
18
- ## What counts as "meaningful task"
19
-
20
- Trigger after completing tasks that involve:
21
- - Debugging a non-trivial bug (root cause wasn't obvious)
22
- - Implementing a feature that required learning something new
23
- - A pattern that worked well and should be remembered
24
- - A mistake that cost >5 minutes to diagnose
25
- - A workaround for a tool limitation
26
-
27
- ## What does NOT trigger
28
-
29
- - Config changes, typos, docs-only edits
30
- - Routine tasks with no surprises
31
- - Tasks where the agent is just following instructions step by step
32
- - Tasks shorter than 3 messages
33
-
34
- ## Trigger behavior
35
-
36
- After completing a qualifying task, do a **quick mental check** (not a full workflow):
37
-
38
- 1. Was there a concrete, actionable learning?
39
- 2. Is it generalizable (not project-specific one-off)?
40
- 3. Is it NOT already covered by an existing rule or skill?
41
-
42
- If all 3 are YES → propose to the user:
43
-
44
- ```
45
- > 💡 Learning detected: "{one-sentence summary}"
46
- >
47
- > 1. Capture & improve — run the improvement pipeline
48
- > 2. Skip — not worth capturing
49
- ```
50
-
51
- If user picks 1 → invoke the `skill-improvement-pipeline` skill.
52
- If user picks 2 → stop, do not ask again for this task.
53
-
54
- ## Important
55
-
56
- - **Never auto-run the pipeline** — always ask first.
57
- - **Max 1 trigger per task** — don't ask repeatedly.
58
- - **Be honest** — if the learning is vague ("be more careful"), skip it silently.
59
- - **Do not interrupt the user's flow** — only trigger AFTER the task is done.
18
+ Body migrated to `skill:skill-improvement-pipeline` (per P4 of `road-to-kernel-and-router.md`).
19
+ Trigger-set above activates this routing under the `balanced` and `full` profiles.
@@ -2,73 +2,16 @@
2
2
  type: "auto"
3
3
  tier: "mechanical-already"
4
4
  description: "Creating, editing, or reviewing skills — minimum quality standard, every skill must be executable, validated, and self-contained"
5
- alwaysApply: false
6
5
  source: package
7
- load_context:
8
- - .agent-src.uncompressed/contexts/communication/rules-auto/skill-quality-mechanics.md
6
+ triggers:
7
+ - path_prefix: ".agent-src.uncompressed/skills/"
8
+ routes_to:
9
+ - "guideline:agent-infra/skill-quality-checklist"
9
10
  ---
10
11
 
11
12
  # Skill Quality
12
13
 
13
- ## Minimum Sharpness
14
+ **Iron Law.** Every skill must be executable, validated, and self-contained — full checklist in the guideline.
14
15
 
15
- Every skill must answer four questions. If ANY answer is weak, the skill is not done.
16
-
17
- | # | Question | Section | Standard |
18
- |---|---|---|---|
19
- | 1 | When should I use this? | `When to use` | Concrete trigger, not generic |
20
- | 2 | What exactly do I do? | `Procedure` | Executable steps with decisions |
21
- | 3 | How do I verify it worked? | `Procedure` (validation step) | Concrete checks, not "verify it works" |
22
- | 4 | What common failure must I avoid? | `Gotcha` + `Do NOT` | Real failure patterns, not platitudes |
23
-
24
- ## Required Sections
25
-
26
- Every skill MUST have: `When to use`, `Procedure`, `Gotcha`, `Output format`, `Do NOT`.
27
-
28
- ## Frontmatter Contract
29
-
30
- Every skill's YAML frontmatter MUST validate against `scripts/schemas/skill.schema.json`.
31
- Violations are reported by `scripts/skill_linter.py` as `schema_<rule>` errors
32
- and fail `python3 scripts/validate_frontmatter.py` and the full CI pipeline.
33
-
34
- ## Description Triggering
35
-
36
- Claude routes skills by their frontmatter `description`. Pushy,
37
- trigger-rich descriptions are required — polite or hedged ones cause
38
- undertriggering. The full recipe (concrete verb phrase, ≥2 triggers,
39
- `even if they don't explicitly ask for …` tail, ≤200 chars,
40
- litmus test) lives in
41
- [`contexts/communication/rules-auto/skill-quality-mechanics.md`](../contexts/communication/rules-auto/skill-quality-mechanics.md)
42
- § Description Triggering.
43
-
44
- ## Skill Independence
45
-
46
- ```
47
- If a skill is not executable without opening a guideline, it is broken.
48
- ```
49
-
50
- - Skills MAY reference guidelines for detailed conventions
51
- - Skills MUST NOT outsource their core workflow to guidelines
52
- - If removing guideline references makes the skill useless → the skill is too weak
53
-
54
- **Litmus test:** Cover all guideline references in the Procedure. Is it still executable?
55
- If not → the skill needs more own steps, decisions, and validation — not more guideline links.
56
-
57
- ## Merge & Compression Preservation
58
-
59
- When merging or compressing skills, the result MUST preserve the
60
- strongest validation, strongest examples, all anti-patterns, all
61
- decision criteria, and trigger quality. Full preservation invariants
62
- and "merge is invalid if …" / "compression may remove …" lists in
63
- [`contexts/communication/rules-auto/skill-quality-mechanics.md`](../contexts/communication/rules-auto/skill-quality-mechanics.md)
64
- § Merge Preservation and § Compression Preservation.
65
-
66
- ## Refactor Safety
67
-
68
- When refactoring or optimizing skills:
69
-
70
- - NEVER weaken validation to pass linter
71
- - NEVER remove anti-patterns to reduce size
72
- - NEVER replace concrete checks with "verify it works"
73
- - NEVER merge skills if the result is broader than either source
74
- - ALWAYS run linter before and after — fail count must not increase
16
+ Body migrated to `guideline:agent-infra/skill-quality-checklist` (per P4 of `road-to-kernel-and-router.md`).
17
+ Trigger-set above activates this routing under the `balanced` and `full` profiles.
@@ -2,71 +2,19 @@
2
2
  type: "auto"
3
3
  tier: "1"
4
4
  description: "When user types a slash command like /create-pr, /commit, or pastes command file content"
5
- alwaysApply: false
6
5
  source: package
7
- load_context:
8
- - .agent-src.uncompressed/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md
6
+ triggers:
7
+ - keyword: "/create-pr"
8
+ - keyword: "/commit"
9
+ - keyword: "/fix-ci"
10
+ - phrase: "slash command"
11
+ routes_to:
12
+ - "skill:command-routing"
9
13
  ---
10
14
 
11
- # Commands
15
+ # Slash Command Routing Policy
12
16
 
13
- When the user types a command (`/create-pr`, `# create-pr`, or pastes a command file),
14
- **execute it immediately**. No questions, no opinions, no summaries, no confirmations.
17
+ **Iron Law.** On a slash-command invocation or pasted command body, route to the matching command file; never improvise.
15
18
 
16
- - Match the command file in `.augment/commands/` (or `agents/overrides/commands/`).
17
- - Read it, follow the steps in order.
18
- - Ask only when the command itself says "ask the user".
19
- - If the user pastes the **content** of a command file, treat it as an invocation — not a question.
20
- - **NEVER** respond with "looks good" or ask "shall I execute?" — just execute.
21
- - **NEVER** respond with "this is the current version" or "do you want to change something?" — just execute.
22
- - **NEVER** treat pasted command content as a review request — it's ALWAYS an invocation.
23
- - The only exception: the user's message contains an explicit instruction about the command
24
- (e.g., "update this command" or "review this command"). In that case, follow the instruction instead.
25
-
26
- ## Open files are irrelevant for command detection
27
-
28
- The editor may report that the user has a file open (e.g., "The user has file `compress.md` open").
29
- This is **irrelevant** for command detection.
30
-
31
- - If the user types `/compress`, they want to **run** the compress command — even if `compress.md` is open in the editor.
32
- - If command file content appears in the context alongside an open file, the **command invocation takes priority**.
33
- - Do NOT confuse "file is open" with "user wants to discuss this file".
34
- - The user's typed message determines intent — not editor state.
35
-
36
- ## Read the whole prompt — command is the operator, prose is the target
37
-
38
- ```
39
- /<command> IS THE OPERATOR.
40
- THE REST OF THE USER MESSAGE NAMES THE TARGET.
41
- NEVER ASSUME THE COMMAND NAME IS THE TARGET.
42
- ```
43
-
44
- Slash token = **what to do**; surrounding prose = **what to do it on**.
45
-
46
- - `/council and analyse chat-history` → target is `chat-history`,
47
- not `council`. Council is the *tool*, prose names the *artefact*.
48
- - `/work the memory bug from PROJ-123` → target is "the memory bug
49
- from PROJ-123".
50
- - `/fix ci and then open a PR` → target is "CI failure"; trailing
51
- "open a PR" is a follow-up needing separate permission (per
52
- `scope-control`).
53
-
54
- ### Pre-flight before expensive operations
55
-
56
- Before any operation costing real time or money — external API call,
57
- large codebase analysis, multi-file refactor, council run, generated
58
- test suite — run silently:
59
-
60
- 1. Re-read the **whole** user message, not just slash + first token.
61
- 2. Identify the target the prose actually names.
62
- 3. Target unambiguous → execute, no question.
63
- 4. Target **genuinely** ambiguous after re-reading (prose names *two*
64
- artefacts, can't tell which is the operand) → ask ONE
65
- disambiguating numbered-options question per
66
- [`ask-when-uncertain`](ask-when-uncertain.md), then proceed.
67
-
68
- **Not** a license to re-introduce cheap questions (`no-cheap-questions`
69
- still binds). Threshold: *"would this guess waste the user's tokens,
70
- money, or trust?"* — not *"I'd feel safer asking"*. Single failure
71
- mode to avoid: spending API spend on the wrong artefact because the
72
- agent fixated on the command name.
19
+ Body migrated to `skill:command-routing` (per P4 of `road-to-kernel-and-router.md`).
20
+ Trigger-set above activates this routing under the `balanced` and `full` profiles.
@@ -4,100 +4,35 @@ tier: "2b"
4
4
  description: "Before coding, modifying, or debugging — analyze first, verify with real tools, never guess or trial-and-error"
5
5
  alwaysApply: false
6
6
  source: package
7
+ load_context:
8
+ - ../contexts/communication/rules-auto/think-before-action-mechanics.md
9
+ triggers:
10
+ - intent: "before coding"
11
+ - intent: "before debugging"
12
+ - intent: "before modifying"
7
13
  ---
8
14
 
9
15
  # think-before-action
10
16
 
11
- - Always analyze before coding or modifying anything
12
- - Never guess behavior — verify using code, data, or tools
13
- - Prefer targeted inspection over brute-force trial-and-error
14
- - Use efficient tooling (e.g. jq, debugger, logs) instead of loading full data
15
- - Always verify results after changes (API calls, UI tests, etc.)
16
- - When behavior can be defined, prefer test-first or test-driven work
17
- - If requirements are unclear, ask a precise clarification question instead of making hidden assumptions
18
- - Refactors must preserve behavior, validation, examples, and anti-failure guidance unless there is an explicit reason to change them
19
- - Do NOT modify code you do not fully understand — read it first, trace the flow, then change it
20
- - When multiple valid frameworks/patterns already exist in the codebase (e.g. Tailwind + Flux, multiple form libraries, competing state stores), do NOT pick one silently — ask which to use. See [`no blind implementation`](../../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md#2-no-blind-implementation)
17
+ ## The Iron Law
21
18
 
22
- ## The Developer Workflow
19
+ ```
20
+ ANALYZE BEFORE CODING. VERIFY WITH REAL TOOLS. NEVER GUESS.
21
+ NO BLIND TRIAL-AND-ERROR. MAX 2 RETRIES PER APPROACH.
22
+ ```
23
23
 
24
- Work like a real developer not a text generator. Follow this order strictly:
24
+ - Always analyze before coding or modifying anything.
25
+ - Never guess behavior — verify using code, data, or tools.
26
+ - Prefer targeted inspection (jq, debugger, logs) over brute-force.
27
+ - Always verify results after changes (API, UI, tests).
28
+ - When behavior can be defined → prefer test-first / TDD.
29
+ - Unclear requirements → precise clarification question, not hidden assumptions.
30
+ - Refactors must preserve behavior, validation, examples, and anti-failure guidance unless explicitly changed.
31
+ - Do NOT modify code you do not fully understand — read it, trace the flow, then change it.
32
+ - Multiple valid frameworks/patterns coexist (Tailwind + Flux, multiple form libs, competing state stores) → do NOT pick one silently — ask. See [`no blind implementation`](../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md#2-no-blind-implementation).
25
33
 
26
- 1. **Understand**Read the task, ticket, acceptance criteria. If unclear: ask, don't assume.
27
- 2. **Analyze** — Read affected code, trace data flow, compare with requirements and existing patterns.
28
- 3. **Plan** — Decide what to change, what NOT to change, and how to verify success.
29
- 4. **Implement** — Make focused changes. Follow existing patterns. No unrelated rewrites.
30
- 5. **Verify** — Run tests, hit the endpoint, check the UI. Real execution, not "should work".
34
+ ## Mechanicsworkflow, minimum read set, verify-with-real-tools, no blind retries
31
35
 
32
- Skipping steps 1-3 is the #1 cause of wrong implementations and wasted retries.
33
-
34
- ## Minimum read set — read before you write
35
-
36
- Before editing code, read the minimum set that defines its behavior:
37
-
38
- 1. **Symbol under edit** — full method/function body, not just the planned line.
39
- 2. **Direct callers** — one level up (`grep -rn "<symbol>"` + open the matches).
40
- 3. **Tests** — if a test file exists, it encodes the contract.
41
- 4. **One layer of related abstractions** — interface, parent class, or trait (one hop, not the full hierarchy).
42
- 5. **Data changes:** the migration that created the column + any seeder/factory that references it.
43
-
44
- Stop expanding once you can explain, in your own words, what the symbol does, who calls
45
- it, and what breaks if you change its behavior. If you cannot → read more. Never write
46
- code based on guessed behavior.
47
-
48
- ### Consult memory before editing
49
-
50
- Prior decisions and invariants live in the memory layer. Via
51
- [`memory-access`](../../docs/guidelines/agent-infra/memory-access.md), call
52
- `retrieve(types=["architecture-decisions", "domain-invariants"], keys=<touched paths>, limit=3)`.
53
- A matching `architecture-decision` explains *why* the current shape
54
- exists; a matching `domain-invariant` is a hard constraint you cannot
55
- violate. Cite the `id` if a match influences the plan.
56
-
57
- ## Verify with real tools
58
-
59
- Always verify changes with actual execution — not by reading code and assuming it works.
60
-
61
- | What changed | How to verify |
62
- |---|---|
63
- | **Backend/API** | `curl`, Postman (or Postman MCP if available), test endpoint |
64
- | **Frontend/UI** | Playwright MCP or browser — check rendered state, interactions |
65
- | **Logic/flow** | Xdebug (or Xdebug MCP if available) — trace execution, inspect variables |
66
- | **CLI/Jobs** | Run the command, check side effects, verify exit code |
67
- | **Database** | Query the result, check migrations ran correctly |
68
-
69
- If a debugging/testing tool is available as MCP server — prefer it over manual alternatives.
70
-
71
- If verification is not possible (no endpoint, no UI, no test): explicitly state what is missing
72
- and explain how the change should be tested.
73
-
74
- ## Reduce output — targeted tools over full dumps
75
-
76
- Never load full datasets into context. Extract what you need:
77
-
78
- - `jq` for JSON: `curl -s /api/users | jq '.[0] | {id, email}'` — not the full response
79
- - `rg` / `grep` for text: search specific patterns, not full files
80
- - `head`, `tail`, `cut`, `sort`, `uniq` for narrowing results
81
- - `--filter`, `--json`, `--format` flags on CLI tools — use them
82
- - Laravel: `route:list --json | jq` over raw `route:list` dump
83
- - Logs: filter by request ID, timestamp, or error type — not full log files
84
-
85
- ## No blind retries
86
-
87
- - If something fails: **read the error**, analyze the cause, then fix it
88
- - Do NOT retry the same approach hoping for a different result
89
- - Do NOT loop through trial-and-error when one targeted inspection would reveal the cause
90
- - Max 2 retries for the same approach — then stop and rethink
91
-
92
- ## Open files are context, not intent
93
-
94
- The editor may report that the user has a file open. This is **background context only** —
95
- it does NOT mean the user's message is about that file.
96
-
97
- - **The user's message determines intent** — not which file is open.
98
- - A user can have `README.md` open and type `/compress` — the intent is to compress, not to discuss the README.
99
- - A user can have `UserController.php` open and ask "how do tests work?" — the intent is testing, not the controller.
100
- - Only treat the open file as relevant when the user's message explicitly references it
101
- (e.g., "fix this file", "what does this do?", "update the open file").
36
+ The five-step Understand → Analyze → Plan → Implement → Verify workflow, the minimum read set (symbol, callers, tests, abstractions, data), the memory-consult step, the verification matrix, the output-reduction patterns, the no-blind-retries protocol, and the "open files are context, not intent" clause all live in [`contexts/communication/rules-auto/think-before-action-mechanics.md`](../contexts/communication/rules-auto/think-before-action-mechanics.md). The rule above is the obligation surface; the mechanics file is the lookup material.
102
37
 
103
38
  If analysis is skipped → results are unreliable.
@@ -4,6 +4,12 @@ tier: "2a"
4
4
  description: "When running CLI tools, fetching logs, or producing replies — redirect verbose output, minimize tool calls, keep replies concise"
5
5
  alwaysApply: false
6
6
  source: package
7
+ load_context:
8
+ - ../contexts/communication/rules-auto/token-efficiency-mechanics.md
9
+ triggers:
10
+ - intent: "verbose CLI output"
11
+ - intent: "fetching logs"
12
+ - keyword: "minimize tool calls"
7
13
  ---
8
14
 
9
15
  # Token Efficiency
@@ -19,82 +25,12 @@ NEVER call the same tool more than 2 times in a row with similar parameters.
19
25
  If you catch yourself repeating a tool call — STOP, rethink, try a different approach, or ask the user.
20
26
  ```
21
27
 
22
- ### Anti-loop: Extended Reasoning
23
-
24
- Do NOT use extended reasoning / chain-of-thought tools for simple tasks like viewing files,
25
- running commands, or making straightforward edits. They are ONLY for genuinely complex
26
- multi-step reasoning. If you find yourself calling such tools more than once per task —
27
- you are looping. Stop immediately and act directly instead.
28
-
29
- ### Anti-loop: "CRITICAL INSTRUCTION" and self-prompting
30
-
31
- If you find yourself generating text that starts with "CRITICAL INSTRUCTION", "I need to",
32
- "Let me think", "Related tools:", or similar self-directed reasoning inside a tool call
33
- or as a preamble before acting — **you are in a loop**. This happens after connection errors
34
- or when the user says something like "continue" / "mach weiter".
35
-
36
- **Immediate action:**
37
-
38
- 1. STOP generating self-instructions.
39
- 2. Read the last user message — what did they actually ask?
40
- 3. Do that ONE thing directly. No planning monologue, no tool selection reasoning.
41
- 4. If you don't know what the user wanted, ask: "Where were we?"
42
-
43
28
  ## Fresh Output Over Memory
44
29
 
45
- **CRITICAL**: When a tool or command returns a value (branch name, file path, PR number),
46
- use that EXACT value in subsequent API calls. NEVER substitute a value from earlier in
47
- the conversation. Context decay causes silent mismatches — fresh output is the only source of truth.
48
-
49
- ## Conversation Efficiency
50
-
51
- ### Act, skip narration
52
-
53
- - **Skip repeating the user's request.** They know what they asked.
54
- - **Just do it** — skip announcing what you're about to do.
55
- - **Skip explaining obvious tool calls.** Reading a file needs no justification.
56
- - **Report only outcomes** — skip intermediate step summaries unless the user needs them.
57
-
58
- **This rule NEVER overrides user-interaction or command rules.**
59
- Token efficiency means fewer *unnecessary* words — NOT skipping required questions,
60
- numbered options, or command steps. When a rule or command says "ask the user", you ask.
61
-
62
- ### Stop early — max 2 retries
63
-
64
- - **Command fails twice with same error** → stop, rethink. Try a different approach.
65
- - **grep/search returns nothing after 2 attempts** → switch approach or ask the user.
66
- - **Max 3 diagnostic commands** per error. Read the error, think, act.
67
- - **One hypothesis at a time.** Pick the most likely, try it. If it fails, ask.
68
-
69
- ### Keep intermediate output minimal
70
-
71
- Read `personal.minimal_output` (default: `true`) and `personal.play_by_play`
72
- (default: `false`) from `.agent-settings.yml`.
73
-
74
- When `personal.minimal_output: true`:
75
- - Multi-step work: short bullet points only, no paragraphs.
76
- - No thinking out loud — user doesn't need your reasoning.
77
- - When `personal.play_by_play: false`: silently investigate, report conclusion only.
78
- - When `personal.play_by_play: true`: briefly share intermediate findings.
79
- - At the end: concise summary — what changed, what user needs to know.
80
-
81
- ### Don't re-read what you already know
82
-
83
- - Edited a file → edit tool showed result. Don't re-read.
84
- - Ran a command → you have output. Don't re-run to "verify".
85
- - File in context from recent messages → don't reload.
86
-
87
- ### Minimize tool calls
88
-
89
- - Parallel reads — don't read 5 files sequentially.
90
- - Regex search over full file reads. View specific line ranges.
91
- - One codebase search call with all symbols — not 5 separate.
92
- - Short question → short answer. Summary tables only for 3+ items.
30
+ When a tool or command returns a value (branch name, file path, PR number), use that EXACT value in subsequent API calls. NEVER substitute a value from earlier in the conversation. Context decay → silent mismatches — fresh output is the only source of truth.
93
31
 
94
- ### Exceptions
32
+ ## Mechanics — anti-loop patterns, conversation efficiency, exceptions
95
33
 
96
- - Small output (< 30 lines): read directly.
97
- - Debugging: OK to read more context around one error.
98
- - User explicitly asks for full output: show it.
34
+ The anti-loop patterns (extended-reasoning loops, "CRITICAL INSTRUCTION" self-prompting), the act-skip-narration / stop-early / keep-output-minimal / don't-re-read / minimize-tool-calls clauses, and the small-output / debugging / explicit-full-output exceptions all live in [`contexts/communication/rules-auto/token-efficiency-mechanics.md`](../contexts/communication/rules-auto/token-efficiency-mechanics.md). The rule above is the obligation surface; the mechanics file is the lookup material.
99
35
 
100
- Detailed patterns: `docs/guidelines/agent-infra/output-patterns.md`
36
+ This rule NEVER overrides `user-interaction` or command rules. Token efficiency means fewer *unnecessary* words — NOT skipping required questions, numbered options, or command steps.
@@ -0,0 +1,68 @@
1
+ ---
2
+ type: "auto"
3
+ tier: "2a"
4
+ description: "Editing a token-optimizer-cited asset (cli-output-handling, rtk-output-filtering, token-efficiency, agent-handoff, direct-answers, markitdown) — keep the catalog row in sync in the same commit."
5
+ source: package
6
+ triggers:
7
+ - keyword: "cli-output-handling"
8
+ - keyword: "rtk-output-filtering"
9
+ - keyword: "token-efficiency"
10
+ - keyword: "agent-handoff"
11
+ - keyword: "markitdown"
12
+ - keyword: "token-optimizer"
13
+ routes_to:
14
+ - "skill:token-optimizer"
15
+ validator_ignore:
16
+ - type: "substring"
17
+ pattern: ".agent-src.uncompressed/"
18
+ reason: "Rule lists the authoring-tree paths that must stay in sync with the catalog."
19
+ ---
20
+
21
+ # Token Optimizer Maintenance
22
+
23
+ ## Iron Law
24
+
25
+ ```
26
+ EDIT A CITED ASSET → UPDATE THE TOKEN-OPTIMIZER ROW IN THE SAME COMMIT.
27
+ THE CI LINK VALIDATOR IS A BACKSTOP, NOT A SUBSTITUTE FOR CARE.
28
+ ```
29
+
30
+ ## When this rule fires
31
+
32
+ About to edit any of:
33
+
34
+ - `.agent-src.uncompressed/rules/cli-output-handling.md`
35
+ - `.agent-src.uncompressed/rules/token-efficiency.md`
36
+ - `.agent-src.uncompressed/rules/direct-answers.md`
37
+ - `.agent-src.uncompressed/skills/rtk-output-filtering/SKILL.md`
38
+ - `.claude/skills/agent-handoff/SKILL.md`
39
+ - Any other asset cited by
40
+ [`token-optimizer`](../skills/token-optimizer/SKILL.md) (catalog
41
+ table is the canonical list).
42
+
43
+ ## Obligation
44
+
45
+ If the edit touches:
46
+
47
+ - **Trigger keywords** the decision tree associates with the asset, OR
48
+ - **What the asset does** (the one-line "what it does" summary), OR
49
+ - **The asset's path / location** (rename, move, deletion)
50
+
51
+ then in the same commit, update the matching row in
52
+ `.agent-src.uncompressed/skills/token-optimizer/SKILL.md` —
53
+ the catalog table AND the relevant tree leaf.
54
+
55
+ ## Out of scope
56
+
57
+ - Whitespace, comment, formatting, or grammar edits in the cited
58
+ asset → no token-optimizer update required.
59
+ - Internal restructuring that leaves trigger + summary + path
60
+ unchanged → no update required.
61
+
62
+ ## Backstop
63
+
64
+ The CI pipeline runs `scripts/check_token_optimizer_freshness.py`
65
+ after the reference checker. The validator parses the catalog,
66
+ verifies every cited path exists, and `grep`s the trigger keywords
67
+ against each target. A failure is a **drift signal**, not a
68
+ substitute for keeping the catalog correct manually.
@@ -3,6 +3,10 @@ type: auto
3
3
  tier: "2b"
4
4
  source: package
5
5
  description: "When a skill uses external tools — enforce allowlist, deny-by-default, and no hidden credential patterns"
6
+ triggers:
7
+ - keyword: "allowed_tools"
8
+ - keyword: "tool registry"
9
+ - intent: "external API"
6
10
  ---
7
11
 
8
12
  # Tool Safety