@event4u/agent-config 3.0.0 → 3.1.1

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 (208) hide show
  1. package/.agent-src/commands/install-via-agent.md +129 -0
  2. package/.agent-src/commands/video/from-script.md +1 -1
  3. package/.agent-src/commands/video.md +1 -1
  4. package/.agent-src/contexts/execution/cheap-question-mechanics.md +81 -0
  5. package/.agent-src/rules/caveman-speak.md +2 -2
  6. package/.agent-src/rules/context-hygiene.md +36 -0
  7. package/.agent-src/rules/engineering-safety-floor.md +102 -0
  8. package/.agent-src/rules/finance-safety-floor.md +114 -0
  9. package/.agent-src/rules/git-history-discipline.md +1 -1
  10. package/.agent-src/rules/no-cheap-questions.md +34 -32
  11. package/.agent-src/rules/provider-lifecycle-discipline.md +4 -4
  12. package/.agent-src/rules/strategy-safety-floor.md +114 -0
  13. package/.agent-src/skills/agents-md-thin-root/SKILL.md +15 -9
  14. package/.agent-src/skills/async-python-patterns/SKILL.md +1 -1
  15. package/.agent-src/skills/project-analysis-node-express/SKILL.md +1 -1
  16. package/.agent-src/skills/readme-reviewer/SKILL.md +52 -3
  17. package/.agent-src/skills/readme-writing/SKILL.md +52 -4
  18. package/.agent-src/skills/readme-writing-package/SKILL.md +48 -5
  19. package/.agent-src/skills/systematic-debugging/SKILL.md +41 -0
  20. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  21. package/.agent-src/templates/hooks/pre-commit-frontmatter +66 -0
  22. package/.agent-src/templates/hooks/pre-commit-roadmap-progress +78 -39
  23. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +4 -1
  24. package/.agent-src/templates/scripts/work_engine/orchestration.py +25 -11
  25. package/.claude-plugin/marketplace.json +2 -1
  26. package/AGENTS.md +10 -8
  27. package/CHANGELOG.md +233 -123
  28. package/README.md +165 -553
  29. package/config/agent-settings.template.yml +0 -7
  30. package/config/discovery/packs.yml +20 -0
  31. package/config/discovery/unassigned-artefacts.yml +2 -0
  32. package/config/gitignore-block.txt +19 -3
  33. package/dist/cli/commands/uiServe.js +13 -4
  34. package/dist/cli/commands/uiServe.js.map +1 -1
  35. package/dist/cli/registry.js +2 -0
  36. package/dist/cli/registry.js.map +1 -1
  37. package/dist/discovery/deprecation-report.md +7 -0
  38. package/dist/discovery/discovery-manifest.json +2107 -1409
  39. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  40. package/dist/discovery/discovery-manifest.summary.md +9 -9
  41. package/dist/discovery/orphan-report.md +10 -0
  42. package/dist/discovery/packs.json +1002 -0
  43. package/dist/discovery/trust-report.md +26 -0
  44. package/dist/discovery/workspaces.json +705 -0
  45. package/dist/mcp/registry-manifest.json +4 -4
  46. package/dist/router.json +1623 -0
  47. package/dist/server/app.js +11 -3
  48. package/dist/server/app.js.map +1 -1
  49. package/dist/server/io/atomicMultiWrite.js +3 -1
  50. package/dist/server/io/atomicMultiWrite.js.map +1 -1
  51. package/dist/server/io/yamlIO.js +22 -0
  52. package/dist/server/io/yamlIO.js.map +1 -1
  53. package/dist/server/routes/ping.js +8 -0
  54. package/dist/server/routes/ping.js.map +1 -1
  55. package/dist/server/routes/schema.js +2 -2
  56. package/dist/server/routes/schema.js.map +1 -1
  57. package/dist/server/routes/settings.js +104 -23
  58. package/dist/server/routes/settings.js.map +1 -1
  59. package/dist/server/routes/userMd.js +37 -27
  60. package/dist/server/routes/userMd.js.map +1 -1
  61. package/dist/server/routes/wizard.js +256 -20
  62. package/dist/server/routes/wizard.js.map +1 -1
  63. package/dist/server/schemas/settings.js +0 -1
  64. package/dist/server/schemas/settings.js.map +1 -1
  65. package/dist/server/token.js +10 -3
  66. package/dist/server/token.js.map +1 -1
  67. package/dist/server/writeRoot.js +28 -11
  68. package/dist/server/writeRoot.js.map +1 -1
  69. package/dist/server/writeRoot.test.js +22 -4
  70. package/dist/server/writeRoot.test.js.map +1 -1
  71. package/dist/shared/userMd/formAdapter.js +29 -51
  72. package/dist/shared/userMd/formAdapter.js.map +1 -1
  73. package/dist/shared/userMd/schema.js +32 -104
  74. package/dist/shared/userMd/schema.js.map +1 -1
  75. package/dist/shared/userMd/utils.js +64 -50
  76. package/dist/shared/userMd/utils.js.map +1 -1
  77. package/dist/ui/assets/index-D-DY1ywI.js +35 -0
  78. package/dist/ui/assets/index-D-DY1ywI.js.map +1 -0
  79. package/dist/ui/index.html +1 -1
  80. package/docs/adrs/router/0001-three-tier-routing.md +5 -5
  81. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +1 -1
  82. package/docs/architecture.md +3 -3
  83. package/docs/archive/CHANGELOG-pre-3.1.0.md +167 -0
  84. package/docs/catalog.md +30 -26
  85. package/docs/contracts/CHANGELOG-conventions.md +1 -1
  86. package/docs/contracts/agent-user-schema.md +6 -9
  87. package/docs/contracts/consumer-bridge.md +79 -0
  88. package/docs/contracts/discovery-manifest.md +209 -0
  89. package/docs/contracts/discovery-manifest.schema.json +77 -4
  90. package/docs/contracts/explain-trace.schema.json +1 -1
  91. package/docs/contracts/file-ownership-matrix.json +197 -13
  92. package/docs/contracts/frontmatter-contract.md +140 -0
  93. package/docs/contracts/gui-wizard.md +223 -0
  94. package/docs/contracts/installer-agent-mode.md +137 -0
  95. package/docs/contracts/kernel-membership.md +1 -1
  96. package/docs/contracts/mcp-tool-inventory.md +9 -9
  97. package/docs/contracts/namespace.md +6 -6
  98. package/docs/contracts/provider-lifecycle.md +5 -5
  99. package/docs/contracts/rule-router.md +4 -4
  100. package/docs/contracts/settings-api.md +53 -6
  101. package/docs/contracts/smoke-contracts.md +3 -3
  102. package/docs/contracts/trust-and-safety.md +144 -0
  103. package/docs/customization.md +2 -2
  104. package/docs/decisions/ADR-007-agent-discovery-scopes.md +12 -0
  105. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +24 -0
  106. package/docs/decisions/ADR-015-discovery-manifest-contract.md +146 -0
  107. package/docs/decisions/ADR-016-installer-architecture.md +189 -0
  108. package/docs/decisions/ADR-017-monorepo-physical-layout.md +261 -0
  109. package/docs/decisions/ADR-018-trust-and-safety-layer.md +159 -0
  110. package/docs/decisions/ADR-019-router-json-dist-location.md +124 -0
  111. package/docs/decisions/ADR-020-global-only-consumer-scope.md +123 -0
  112. package/docs/decisions/ADR-021-deployment-shape.md +153 -0
  113. package/docs/decisions/INDEX.md +7 -0
  114. package/docs/deploy/connector-setup.md +129 -0
  115. package/docs/deploy/env-vars.md +70 -0
  116. package/docs/deploy/policy-cookbook.md +130 -0
  117. package/docs/deploy/quickstart.md +112 -0
  118. package/docs/distribution/public-install-smoke.md +68 -0
  119. package/docs/distribution/registries.md +55 -0
  120. package/docs/distribution/telemetry-privacy.md +128 -0
  121. package/docs/distribution/telemetry-schema.md +174 -0
  122. package/docs/featured-skills.md +95 -0
  123. package/docs/getting-started-by-role.md +19 -1
  124. package/docs/getting-started.md +2 -2
  125. package/docs/guidelines/agent-infra/installed-tools-manifest.md +11 -8
  126. package/docs/guidelines/docs/readme-size-and-splitting.md +53 -1
  127. package/docs/installation.md +27 -14
  128. package/docs/maintainers/dev-mode.md +105 -0
  129. package/docs/setup/per-ide/claude-desktop.md +3 -2
  130. package/docs/wizard.md +39 -4
  131. package/package.json +18 -1
  132. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  133. package/scripts/_cli/cmd_doctor.py +150 -2
  134. package/scripts/_cli/cmd_explain.py +2 -1
  135. package/scripts/_cli/cmd_migrate_to_global.py +415 -0
  136. package/scripts/_cli/cmd_settings_migrate.py +146 -0
  137. package/scripts/_cli/explain_last/route.py +2 -1
  138. package/scripts/_dispatch.bash +36 -3
  139. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  140. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  141. package/scripts/_lib/agent_settings.py +4 -1
  142. package/scripts/_lib/agent_src.py +157 -0
  143. package/scripts/agent-config +17 -6
  144. package/scripts/audit_skill_descriptions.py +18 -6
  145. package/scripts/build_discovery_manifest.py +373 -17
  146. package/scripts/check_artefact_checksums.py +104 -0
  147. package/scripts/check_cluster_patterns.py +20 -4
  148. package/scripts/check_command_count_messaging.py +33 -14
  149. package/scripts/check_council_references.py +43 -4
  150. package/scripts/check_overlay_cascade_subdirs.py +7 -3
  151. package/scripts/check_references.py +5 -2
  152. package/scripts/check_reply_consistency.py +32 -9
  153. package/scripts/check_template_pin_drift.py +24 -7
  154. package/scripts/check_token_optimizer_freshness.py +18 -3
  155. package/scripts/compile_router.py +34 -2
  156. package/scripts/compress.py +162 -44
  157. package/scripts/config/presets.py +19 -1
  158. package/scripts/config/profiles.py +16 -1
  159. package/scripts/discovery_stats.py +70 -0
  160. package/scripts/expected_perms.json +47 -0
  161. package/scripts/generate_index.py +78 -46
  162. package/scripts/generate_ownership_matrix.py +98 -43
  163. package/scripts/generate_pack_manifests.py +183 -0
  164. package/scripts/install +18 -1
  165. package/scripts/install.py +934 -59
  166. package/scripts/install.sh +27 -9
  167. package/scripts/lint_agents_layout.py +93 -13
  168. package/scripts/lint_agents_md.py +1 -1
  169. package/scripts/lint_archived_skills.py +32 -16
  170. package/scripts/lint_bench_corpus.py +14 -2
  171. package/scripts/lint_command_tiers.py +15 -2
  172. package/scripts/lint_featured_skills.py +139 -0
  173. package/scripts/lint_framework_leakage.py +33 -6
  174. package/scripts/lint_global_paths.py +147 -0
  175. package/scripts/lint_orchestration_dsl.py +6 -3
  176. package/scripts/lint_pack_boundaries.py +147 -0
  177. package/scripts/lint_pack_first_win.py +103 -0
  178. package/scripts/lint_readme_jargon.py +131 -0
  179. package/scripts/lint_readme_size.py +33 -0
  180. package/scripts/lint_rule_interactions.py +23 -5
  181. package/scripts/lint_rule_tiers.py +12 -3
  182. package/scripts/lint_trust_coherence.py +212 -0
  183. package/scripts/measure_rule_budget.py +22 -4
  184. package/scripts/move_artefact.py +143 -0
  185. package/scripts/new_skill.py +148 -0
  186. package/scripts/plan_physical_move.py +353 -0
  187. package/scripts/refine_ticket_detect.py +30 -7
  188. package/scripts/release.py +22 -2
  189. package/scripts/schemas/command.schema.json +4 -0
  190. package/scripts/skill_linter.py +248 -118
  191. package/scripts/skill_trigger_eval.py +28 -8
  192. package/scripts/smoke/kernel.sh +1 -1
  193. package/scripts/smoke/router.sh +24 -5
  194. package/scripts/smoke/skills.sh +15 -7
  195. package/scripts/smoke_quickstart.py +11 -2
  196. package/scripts/snapshot_agent_outputs.py +144 -0
  197. package/scripts/update_counts.py +45 -17
  198. package/scripts/validate_decision_engine.py +9 -1
  199. package/scripts/validate_discovery_manifest.py +94 -0
  200. package/scripts/validate_frontmatter.py +39 -20
  201. package/scripts/verify_physical_move.py +185 -0
  202. package/templates/agent-user.md +0 -1
  203. package/templates/agent-user.yml +21 -0
  204. package/templates/minimal/agents-overrides-readme.md +46 -0
  205. package/templates/minimal/overrides-gitkeep +2 -0
  206. package/dist/ui/assets/index-BTRcKDlB.js +0 -39
  207. package/dist/ui/assets/index-BTRcKDlB.js.map +0 -1
  208. package/templates/minimal/agents-gitkeep +0 -2
@@ -0,0 +1,1623 @@
1
+ {
2
+ "schema_version": 1,
3
+ "kernel": [
4
+ "agent-authority",
5
+ "ask-when-uncertain",
6
+ "commit-policy",
7
+ "direct-answers",
8
+ "language-and-tone",
9
+ "no-cheap-questions",
10
+ "non-destructive-by-default",
11
+ "scope-control",
12
+ "user-interrupt-priority",
13
+ "verify-before-complete"
14
+ ],
15
+ "tier_1": [
16
+ {
17
+ "id": "architecture",
18
+ "triggers": [
19
+ {
20
+ "keyword": "controller"
21
+ },
22
+ {
23
+ "keyword": "service"
24
+ },
25
+ {
26
+ "keyword": "module"
27
+ },
28
+ {
29
+ "intent": "structural decision"
30
+ }
31
+ ],
32
+ "routes_to": []
33
+ },
34
+ {
35
+ "id": "artifact-engagement-recording",
36
+ "triggers": [
37
+ {
38
+ "phrase": "/implement-ticket"
39
+ },
40
+ {
41
+ "phrase": "/work"
42
+ },
43
+ {
44
+ "keyword": "telemetry"
45
+ }
46
+ ],
47
+ "routes_to": [
48
+ "contract:artifact-engagement-flow"
49
+ ]
50
+ },
51
+ {
52
+ "id": "augment-source-of-truth",
53
+ "triggers": [
54
+ {
55
+ "path_prefix": ".agent-src/"
56
+ },
57
+ {
58
+ "path_prefix": ".augment/"
59
+ },
60
+ {
61
+ "path_prefix": ".claude/"
62
+ },
63
+ {
64
+ "path_prefix": ".cursor/"
65
+ }
66
+ ],
67
+ "routes_to": []
68
+ },
69
+ {
70
+ "id": "autonomous-execution",
71
+ "triggers": [
72
+ {
73
+ "intent": "trivial workflow question"
74
+ },
75
+ {
76
+ "intent": "autonomy mode"
77
+ },
78
+ {
79
+ "keyword": "personal.autonomy"
80
+ }
81
+ ],
82
+ "routes_to": []
83
+ },
84
+ {
85
+ "id": "caveman-speak",
86
+ "triggers": [
87
+ {
88
+ "intent": "any reply"
89
+ }
90
+ ],
91
+ "routes_to": []
92
+ },
93
+ {
94
+ "id": "command-suggestion-policy",
95
+ "triggers": [
96
+ {
97
+ "phrase": "free-form prompt"
98
+ },
99
+ {
100
+ "phrase": "command suggestion"
101
+ }
102
+ ],
103
+ "routes_to": [
104
+ "contract:command-suggestion-flow"
105
+ ]
106
+ },
107
+ {
108
+ "id": "context-hygiene",
109
+ "triggers": [
110
+ {
111
+ "intent": "long conversation"
112
+ },
113
+ {
114
+ "intent": "tool loop"
115
+ },
116
+ {
117
+ "intent": "fresh chat"
118
+ },
119
+ {
120
+ "keyword": "3-failure"
121
+ }
122
+ ],
123
+ "routes_to": []
124
+ },
125
+ {
126
+ "id": "copilot-routing",
127
+ "triggers": [
128
+ {
129
+ "keyword": "copilot"
130
+ },
131
+ {
132
+ "phrase": "copilot-instructions"
133
+ },
134
+ {
135
+ "phrase": "copilot pr review"
136
+ }
137
+ ],
138
+ "routes_to": [
139
+ "skill:copilot-config"
140
+ ]
141
+ },
142
+ {
143
+ "id": "devcontainer-routing",
144
+ "triggers": [
145
+ {
146
+ "keyword": "devcontainer"
147
+ },
148
+ {
149
+ "keyword": "codespaces"
150
+ },
151
+ {
152
+ "keyword": "codespace"
153
+ },
154
+ {
155
+ "phrase": "devcontainer.json"
156
+ }
157
+ ],
158
+ "routes_to": [
159
+ "skill:devcontainer"
160
+ ]
161
+ },
162
+ {
163
+ "id": "docker-commands",
164
+ "triggers": [
165
+ {
166
+ "keyword": "docker"
167
+ },
168
+ {
169
+ "keyword": "artisan"
170
+ },
171
+ {
172
+ "keyword": "composer"
173
+ },
174
+ {
175
+ "phrase": "inside the container"
176
+ }
177
+ ],
178
+ "routes_to": [
179
+ "skill:docker"
180
+ ]
181
+ },
182
+ {
183
+ "id": "fast-path-marker-visibility",
184
+ "triggers": [
185
+ {
186
+ "keyword": "low-impact council"
187
+ },
188
+ {
189
+ "keyword": "fast-path"
190
+ },
191
+ {
192
+ "keyword": "Resolved via low-impact council"
193
+ },
194
+ {
195
+ "keyword": "low_impact"
196
+ },
197
+ {
198
+ "intent": "low-impact council dispatch"
199
+ }
200
+ ],
201
+ "routes_to": []
202
+ },
203
+ {
204
+ "id": "laravel-routing",
205
+ "triggers": [
206
+ {
207
+ "keyword": "laravel"
208
+ },
209
+ {
210
+ "keyword": "artisan"
211
+ },
212
+ {
213
+ "keyword": "eloquent"
214
+ },
215
+ {
216
+ "keyword": "FormRequest"
217
+ }
218
+ ],
219
+ "routes_to": [
220
+ "skill:laravel"
221
+ ]
222
+ },
223
+ {
224
+ "id": "low-impact-corpus-privacy-floor",
225
+ "triggers": [
226
+ {
227
+ "path_prefix": "agents/decisions/low-impact-decisions"
228
+ },
229
+ {
230
+ "keyword": "low-impact-decisions"
231
+ },
232
+ {
233
+ "keyword": "low-impact corpus"
234
+ },
235
+ {
236
+ "keyword": "learn-low-impact"
237
+ }
238
+ ],
239
+ "routes_to": []
240
+ },
241
+ {
242
+ "id": "no-attribution-footers",
243
+ "triggers": [
244
+ {
245
+ "intent": "PR body"
246
+ },
247
+ {
248
+ "intent": "commit message"
249
+ },
250
+ {
251
+ "intent": "Jira comment"
252
+ },
253
+ {
254
+ "keyword": "co-authored"
255
+ }
256
+ ],
257
+ "routes_to": []
258
+ },
259
+ {
260
+ "id": "no-roadmap-references",
261
+ "triggers": [
262
+ {
263
+ "path_prefix": "agents/roadmaps/"
264
+ },
265
+ {
266
+ "path_prefix": "agents/runtime/council/questions/"
267
+ },
268
+ {
269
+ "path_prefix": "agents/runtime/council/responses/"
270
+ },
271
+ {
272
+ "path_prefix": "agents/runtime/council/sessions/"
273
+ },
274
+ {
275
+ "intent": "link from stable artifact"
276
+ },
277
+ {
278
+ "intent": "link to council artefact"
279
+ }
280
+ ],
281
+ "routes_to": [
282
+ "skill:ai-council"
283
+ ]
284
+ },
285
+ {
286
+ "id": "onboarding-gate",
287
+ "triggers": [
288
+ {
289
+ "phrase": "first turn"
290
+ },
291
+ {
292
+ "keyword": "onboarding"
293
+ },
294
+ {
295
+ "path_prefix": ".agent-settings.yml"
296
+ }
297
+ ],
298
+ "routes_to": []
299
+ },
300
+ {
301
+ "id": "php-coding",
302
+ "triggers": [
303
+ {
304
+ "file_pattern": "*.php"
305
+ },
306
+ {
307
+ "keyword": "phpstan"
308
+ },
309
+ {
310
+ "keyword": "ecs"
311
+ }
312
+ ],
313
+ "routes_to": [
314
+ "guideline:php/php-coding-patterns"
315
+ ]
316
+ },
317
+ {
318
+ "id": "roadmap-progress-sync",
319
+ "triggers": [
320
+ {
321
+ "path_prefix": "agents/roadmaps/"
322
+ },
323
+ {
324
+ "command": "/roadmap:process-step"
325
+ },
326
+ {
327
+ "command": "/roadmap:process-phase"
328
+ },
329
+ {
330
+ "command": "/roadmap:process-full"
331
+ }
332
+ ],
333
+ "routes_to": [
334
+ "guideline:agent-infra/roadmap-progress-mechanics"
335
+ ]
336
+ },
337
+ {
338
+ "id": "skill-quality",
339
+ "triggers": [
340
+ {
341
+ "path_prefix": ".agent-src.uncompressed/skills/"
342
+ }
343
+ ],
344
+ "routes_to": [
345
+ "guideline:agent-infra/skill-quality-checklist"
346
+ ]
347
+ },
348
+ {
349
+ "id": "slash-command-routing-policy",
350
+ "triggers": [
351
+ {
352
+ "keyword": "/create-pr"
353
+ },
354
+ {
355
+ "keyword": "/commit"
356
+ },
357
+ {
358
+ "keyword": "/fix-ci"
359
+ },
360
+ {
361
+ "phrase": "slash command"
362
+ }
363
+ ],
364
+ "routes_to": [
365
+ "skill:command-routing"
366
+ ]
367
+ },
368
+ {
369
+ "id": "symfony-routing",
370
+ "triggers": [
371
+ {
372
+ "keyword": "symfony"
373
+ },
374
+ {
375
+ "keyword": "doctrine"
376
+ },
377
+ {
378
+ "keyword": "twig"
379
+ },
380
+ {
381
+ "keyword": "messenger"
382
+ }
383
+ ],
384
+ "routes_to": [
385
+ "skill:symfony-workflow"
386
+ ]
387
+ },
388
+ {
389
+ "id": "user-interaction",
390
+ "triggers": [
391
+ {
392
+ "intent": "ask user a question"
393
+ },
394
+ {
395
+ "intent": "numbered options"
396
+ },
397
+ {
398
+ "intent": "summarizing progress"
399
+ }
400
+ ],
401
+ "routes_to": []
402
+ }
403
+ ],
404
+ "tier_2": [
405
+ {
406
+ "id": "artifact-drafting-protocol",
407
+ "triggers": [
408
+ {
409
+ "intent": "create new skill"
410
+ },
411
+ {
412
+ "intent": "create new rule"
413
+ },
414
+ {
415
+ "intent": "create new command"
416
+ },
417
+ {
418
+ "intent": "create new guideline"
419
+ }
420
+ ],
421
+ "routes_to": []
422
+ },
423
+ {
424
+ "id": "augment-edit-discipline",
425
+ "triggers": [
426
+ {
427
+ "path_prefix": ".augment/"
428
+ },
429
+ {
430
+ "path_prefix": ".agent-src.uncompressed/"
431
+ },
432
+ {
433
+ "keyword": "portable"
434
+ },
435
+ {
436
+ "keyword": "rename"
437
+ },
438
+ {
439
+ "keyword": "delete"
440
+ }
441
+ ],
442
+ "routes_to": [
443
+ "guideline:augment-portability-patterns",
444
+ "skill:agent-docs-writing"
445
+ ]
446
+ },
447
+ {
448
+ "id": "cli-output-handling",
449
+ "triggers": [
450
+ {
451
+ "keyword": "git"
452
+ },
453
+ {
454
+ "keyword": "phpstan"
455
+ },
456
+ {
457
+ "keyword": "rector"
458
+ },
459
+ {
460
+ "keyword": "phpunit"
461
+ },
462
+ {
463
+ "keyword": "composer"
464
+ }
465
+ ],
466
+ "routes_to": [
467
+ "skill:rtk-output-filtering"
468
+ ]
469
+ },
470
+ {
471
+ "id": "commit-conventions",
472
+ "triggers": [
473
+ {
474
+ "keyword": "commit"
475
+ },
476
+ {
477
+ "keyword": "branch"
478
+ },
479
+ {
480
+ "phrase": "conventional commits"
481
+ }
482
+ ],
483
+ "routes_to": [
484
+ "skill:conventional-commits-writing"
485
+ ]
486
+ },
487
+ {
488
+ "id": "domain-adoption-policy",
489
+ "triggers": [
490
+ {
491
+ "intent": "adopt new domain"
492
+ },
493
+ {
494
+ "intent": "harvest new domain track"
495
+ },
496
+ {
497
+ "intent": "open a domain plate"
498
+ },
499
+ {
500
+ "keyword": "mobile track"
501
+ },
502
+ {
503
+ "keyword": "ml track"
504
+ },
505
+ {
506
+ "keyword": "blockchain track"
507
+ },
508
+ {
509
+ "path_prefix": ".agent-src.uncompressed/skills/"
510
+ }
511
+ ],
512
+ "routes_to": []
513
+ },
514
+ {
515
+ "id": "domain-safety-disclaimer",
516
+ "triggers": [
517
+ {
518
+ "keyword": "legal brief"
519
+ },
520
+ {
521
+ "keyword": "contract redline"
522
+ },
523
+ {
524
+ "keyword": "terms of service"
525
+ },
526
+ {
527
+ "keyword": "privacy policy"
528
+ },
529
+ {
530
+ "keyword": "diagnosis"
531
+ },
532
+ {
533
+ "keyword": "symptoms"
534
+ },
535
+ {
536
+ "keyword": "dosage"
537
+ },
538
+ {
539
+ "keyword": "medication"
540
+ },
541
+ {
542
+ "keyword": "investment memo"
543
+ },
544
+ {
545
+ "keyword": "valuation"
546
+ },
547
+ {
548
+ "keyword": "DCF"
549
+ },
550
+ {
551
+ "keyword": "tax position"
552
+ },
553
+ {
554
+ "keyword": "strategic recommendation"
555
+ },
556
+ {
557
+ "keyword": "board memo"
558
+ },
559
+ {
560
+ "keyword": "executive summary"
561
+ },
562
+ {
563
+ "phrase": "review this contract"
564
+ },
565
+ {
566
+ "phrase": "is this symptom"
567
+ },
568
+ {
569
+ "phrase": "should I invest"
570
+ },
571
+ {
572
+ "phrase": "what should we do"
573
+ }
574
+ ],
575
+ "routes_to": [
576
+ "skill:contracts-cognition",
577
+ "skill:dcf-modeling",
578
+ "skill:decision-record",
579
+ "skill:privacy-review",
580
+ "skill:scenario-modeling",
581
+ "skill:stakeholder-tradeoff"
582
+ ]
583
+ },
584
+ {
585
+ "id": "domain-safety-pii",
586
+ "triggers": [
587
+ {
588
+ "keyword": "support macro"
589
+ },
590
+ {
591
+ "keyword": "ticket response"
592
+ },
593
+ {
594
+ "keyword": "help desk"
595
+ },
596
+ {
597
+ "keyword": "Zendesk"
598
+ },
599
+ {
600
+ "keyword": "Intercom"
601
+ },
602
+ {
603
+ "keyword": "testimonial"
604
+ },
605
+ {
606
+ "keyword": "case study"
607
+ },
608
+ {
609
+ "keyword": "customer story"
610
+ },
611
+ {
612
+ "keyword": "candidate"
613
+ },
614
+ {
615
+ "keyword": "interview notes"
616
+ },
617
+ {
618
+ "keyword": "scorecard"
619
+ },
620
+ {
621
+ "keyword": "rejection email"
622
+ },
623
+ {
624
+ "keyword": "offer letter"
625
+ },
626
+ {
627
+ "keyword": "invoice"
628
+ },
629
+ {
630
+ "keyword": "accounts receivable"
631
+ },
632
+ {
633
+ "keyword": "accounts payable"
634
+ },
635
+ {
636
+ "keyword": "finance memo"
637
+ },
638
+ {
639
+ "keyword": "log"
640
+ },
641
+ {
642
+ "keyword": "logger"
643
+ },
644
+ {
645
+ "keyword": "Sentry"
646
+ },
647
+ {
648
+ "keyword": "Datadog"
649
+ },
650
+ {
651
+ "keyword": "structured log"
652
+ },
653
+ {
654
+ "keyword": "export to CSV"
655
+ },
656
+ {
657
+ "keyword": "data export"
658
+ },
659
+ {
660
+ "keyword": "partner integration"
661
+ },
662
+ {
663
+ "phrase": "draft a response to"
664
+ },
665
+ {
666
+ "phrase": "marketing email featuring"
667
+ },
668
+ {
669
+ "phrase": "draft feedback for"
670
+ },
671
+ {
672
+ "phrase": "log the user"
673
+ },
674
+ {
675
+ "phrase": "send them the spreadsheet"
676
+ }
677
+ ],
678
+ "routes_to": [
679
+ "skill:data-handling-judgment",
680
+ "skill:logging-monitoring",
681
+ "skill:privacy-review",
682
+ "skill:secrets-management"
683
+ ]
684
+ },
685
+ {
686
+ "id": "domain-safety-retention",
687
+ "triggers": [
688
+ {
689
+ "keyword": "retention policy"
690
+ },
691
+ {
692
+ "keyword": "data retention"
693
+ },
694
+ {
695
+ "keyword": "record retention"
696
+ },
697
+ {
698
+ "keyword": "ticket retention"
699
+ },
700
+ {
701
+ "keyword": "CRM retention"
702
+ },
703
+ {
704
+ "keyword": "delete financial"
705
+ },
706
+ {
707
+ "keyword": "purge invoice"
708
+ },
709
+ {
710
+ "keyword": "DSAR"
711
+ },
712
+ {
713
+ "keyword": "data subject request"
714
+ },
715
+ {
716
+ "keyword": "right to be forgotten"
717
+ },
718
+ {
719
+ "phrase": "how long should we keep"
720
+ },
721
+ {
722
+ "phrase": "when can we delete"
723
+ },
724
+ {
725
+ "phrase": "delete customer data"
726
+ },
727
+ {
728
+ "phrase": "how long do we keep tickets"
729
+ }
730
+ ],
731
+ "routes_to": [
732
+ "skill:data-handling-judgment",
733
+ "skill:privacy-review"
734
+ ]
735
+ },
736
+ {
737
+ "id": "downstream-changes",
738
+ "triggers": [
739
+ {
740
+ "intent": "after code edit"
741
+ },
742
+ {
743
+ "keyword": "callers"
744
+ },
745
+ {
746
+ "keyword": "imports"
747
+ },
748
+ {
749
+ "keyword": "downstream"
750
+ }
751
+ ],
752
+ "routes_to": []
753
+ },
754
+ {
755
+ "id": "engineering-safety-floor",
756
+ "triggers": [
757
+ {
758
+ "keyword": "production"
759
+ },
760
+ {
761
+ "keyword": "deploy"
762
+ },
763
+ {
764
+ "keyword": "migration"
765
+ },
766
+ {
767
+ "keyword": "schema change"
768
+ },
769
+ {
770
+ "keyword": "DROP TABLE"
771
+ },
772
+ {
773
+ "keyword": "TRUNCATE"
774
+ },
775
+ {
776
+ "keyword": "force push"
777
+ },
778
+ {
779
+ "keyword": "rebase main"
780
+ },
781
+ {
782
+ "keyword": "rollback"
783
+ },
784
+ {
785
+ "keyword": "secrets rotation"
786
+ },
787
+ {
788
+ "keyword": "IAM"
789
+ },
790
+ {
791
+ "keyword": "DNS"
792
+ },
793
+ {
794
+ "keyword": "terraform apply"
795
+ },
796
+ {
797
+ "keyword": "kubectl apply"
798
+ },
799
+ {
800
+ "phrase": "ship to prod"
801
+ },
802
+ {
803
+ "phrase": "deploy to production"
804
+ },
805
+ {
806
+ "phrase": "merge to main"
807
+ },
808
+ {
809
+ "phrase": "release this"
810
+ }
811
+ ],
812
+ "routes_to": [
813
+ "skill:launch-readiness",
814
+ "skill:threat-modeling"
815
+ ]
816
+ },
817
+ {
818
+ "id": "external-reference-deep-dive",
819
+ "triggers": [
820
+ {
821
+ "intent": "look at how X does it"
822
+ },
823
+ {
824
+ "intent": "compare with reference repo"
825
+ },
826
+ {
827
+ "intent": "use as template / vorlage"
828
+ },
829
+ {
830
+ "intent": "wie macht es X"
831
+ },
832
+ {
833
+ "intent": "vergleiche mit Y"
834
+ },
835
+ {
836
+ "intent": "schau dir Z an"
837
+ },
838
+ {
839
+ "intent": "study this competitor"
840
+ },
841
+ {
842
+ "keyword": "github.com/"
843
+ },
844
+ {
845
+ "keyword": "source of truth"
846
+ },
847
+ {
848
+ "phrase": "reference repo"
849
+ }
850
+ ],
851
+ "routes_to": []
852
+ },
853
+ {
854
+ "id": "finance-safety-floor",
855
+ "triggers": [
856
+ {
857
+ "keyword": "runway"
858
+ },
859
+ {
860
+ "keyword": "burn"
861
+ },
862
+ {
863
+ "keyword": "valuation"
864
+ },
865
+ {
866
+ "keyword": "DCF"
867
+ },
868
+ {
869
+ "keyword": "IRR"
870
+ },
871
+ {
872
+ "keyword": "MOIC"
873
+ },
874
+ {
875
+ "keyword": "LTV"
876
+ },
877
+ {
878
+ "keyword": "CAC"
879
+ },
880
+ {
881
+ "keyword": "payback"
882
+ },
883
+ {
884
+ "keyword": "sensitivity"
885
+ },
886
+ {
887
+ "keyword": "fundraise"
888
+ },
889
+ {
890
+ "keyword": "term sheet"
891
+ },
892
+ {
893
+ "keyword": "dilution"
894
+ },
895
+ {
896
+ "keyword": "NRR"
897
+ },
898
+ {
899
+ "keyword": "EBITDA"
900
+ },
901
+ {
902
+ "keyword": "free cash flow"
903
+ },
904
+ {
905
+ "phrase": "what's it worth"
906
+ },
907
+ {
908
+ "phrase": "how long do we have"
909
+ },
910
+ {
911
+ "phrase": "should we raise"
912
+ },
913
+ {
914
+ "phrase": "model the scenarios"
915
+ }
916
+ ],
917
+ "routes_to": [
918
+ "skill:dcf-modeling",
919
+ "skill:forecasting",
920
+ "skill:runway-cognition",
921
+ "skill:scenario-modeling",
922
+ "skill:unit-economics-modeling"
923
+ ]
924
+ },
925
+ {
926
+ "id": "framework-neutrality-in-generic-skills",
927
+ "triggers": [
928
+ {
929
+ "path_prefix": ".agent-src.uncompressed/skills/"
930
+ },
931
+ {
932
+ "path_prefix": ".agent-src.uncompressed/rules/"
933
+ },
934
+ {
935
+ "path_prefix": ".agent-src.uncompressed/commands/"
936
+ },
937
+ {
938
+ "keyword": "FormRequest"
939
+ },
940
+ {
941
+ "keyword": "PHPStan"
942
+ },
943
+ {
944
+ "keyword": "php artisan"
945
+ },
946
+ {
947
+ "keyword": "composer.json"
948
+ },
949
+ {
950
+ "keyword": "Eloquent"
951
+ },
952
+ {
953
+ "keyword": "Pest"
954
+ },
955
+ {
956
+ "keyword": "Blade"
957
+ },
958
+ {
959
+ "keyword": "vendor/bin"
960
+ },
961
+ {
962
+ "keyword": "Artisan"
963
+ },
964
+ {
965
+ "keyword": "Rector"
966
+ },
967
+ {
968
+ "phrase": "every controller"
969
+ },
970
+ {
971
+ "phrase": "all controllers"
972
+ },
973
+ {
974
+ "phrase": "generic skill"
975
+ }
976
+ ],
977
+ "routes_to": []
978
+ },
979
+ {
980
+ "id": "git-history-discipline",
981
+ "triggers": [
982
+ {
983
+ "intent": "rebase the branch"
984
+ },
985
+ {
986
+ "intent": "squash commits"
987
+ },
988
+ {
989
+ "intent": "clean up commit history"
990
+ },
991
+ {
992
+ "intent": "fold this into the previous commit"
993
+ },
994
+ {
995
+ "intent": "tidy history after pushing"
996
+ },
997
+ {
998
+ "keyword": "git rebase"
999
+ },
1000
+ {
1001
+ "keyword": "fixup"
1002
+ },
1003
+ {
1004
+ "keyword": "--amend"
1005
+ },
1006
+ {
1007
+ "keyword": "force-push"
1008
+ },
1009
+ {
1010
+ "keyword": "--force-with-lease"
1011
+ },
1012
+ {
1013
+ "keyword": "squash-merge"
1014
+ },
1015
+ {
1016
+ "phrase": "branch diverged"
1017
+ },
1018
+ {
1019
+ "phrase": "pull --rebase failed"
1020
+ },
1021
+ {
1022
+ "phrase": "ahead and behind"
1023
+ }
1024
+ ],
1025
+ "routes_to": [
1026
+ "skill:git-workflow"
1027
+ ]
1028
+ },
1029
+ {
1030
+ "id": "improve-before-implement",
1031
+ "triggers": [
1032
+ {
1033
+ "intent": "implement feature"
1034
+ },
1035
+ {
1036
+ "intent": "architectural change"
1037
+ },
1038
+ {
1039
+ "keyword": "refactor"
1040
+ }
1041
+ ],
1042
+ "routes_to": []
1043
+ },
1044
+ {
1045
+ "id": "invite-challenge",
1046
+ "triggers": [
1047
+ {
1048
+ "intent": "complex plan"
1049
+ },
1050
+ {
1051
+ "intent": "design decision"
1052
+ },
1053
+ {
1054
+ "intent": "architectural plan"
1055
+ },
1056
+ {
1057
+ "intent": "multi-step implementation"
1058
+ },
1059
+ {
1060
+ "keyword": "plan"
1061
+ },
1062
+ {
1063
+ "keyword": "design"
1064
+ },
1065
+ {
1066
+ "keyword": "architecture"
1067
+ },
1068
+ {
1069
+ "keyword": "approach"
1070
+ }
1071
+ ],
1072
+ "routes_to": []
1073
+ },
1074
+ {
1075
+ "id": "laravel-translations",
1076
+ "triggers": [
1077
+ {
1078
+ "path_prefix": "lang/"
1079
+ },
1080
+ {
1081
+ "keyword": "translation"
1082
+ },
1083
+ {
1084
+ "keyword": "__()"
1085
+ },
1086
+ {
1087
+ "keyword": "trans("
1088
+ }
1089
+ ],
1090
+ "routes_to": [
1091
+ "skill:laravel"
1092
+ ]
1093
+ },
1094
+ {
1095
+ "id": "markdown-safe-codeblocks",
1096
+ "triggers": [
1097
+ {
1098
+ "intent": "markdown with code blocks"
1099
+ },
1100
+ {
1101
+ "keyword": "triple backticks"
1102
+ },
1103
+ {
1104
+ "file_pattern": "*.md"
1105
+ }
1106
+ ],
1107
+ "routes_to": []
1108
+ },
1109
+ {
1110
+ "id": "media-governance-routing",
1111
+ "triggers": [
1112
+ {
1113
+ "keyword": "/video:"
1114
+ },
1115
+ {
1116
+ "keyword": "/image:"
1117
+ },
1118
+ {
1119
+ "keyword": "/audio:"
1120
+ },
1121
+ {
1122
+ "keyword": "deepfake"
1123
+ },
1124
+ {
1125
+ "keyword": "voice clone"
1126
+ },
1127
+ {
1128
+ "keyword": "voice cloning"
1129
+ },
1130
+ {
1131
+ "keyword": "likeness"
1132
+ },
1133
+ {
1134
+ "keyword": "brand impersonation"
1135
+ },
1136
+ {
1137
+ "phrase": "in the style of"
1138
+ },
1139
+ {
1140
+ "phrase": "in the voice of"
1141
+ },
1142
+ {
1143
+ "phrase": "as [public figure]"
1144
+ },
1145
+ {
1146
+ "phrase": "impersonate"
1147
+ }
1148
+ ],
1149
+ "routes_to": []
1150
+ },
1151
+ {
1152
+ "id": "minimal-safe-diff",
1153
+ "triggers": [
1154
+ {
1155
+ "intent": "writing a diff"
1156
+ },
1157
+ {
1158
+ "intent": "reviewing a diff"
1159
+ },
1160
+ {
1161
+ "keyword": "drive-by"
1162
+ }
1163
+ ],
1164
+ "routes_to": []
1165
+ },
1166
+ {
1167
+ "id": "missing-tool-handling",
1168
+ "triggers": [
1169
+ {
1170
+ "keyword": "command not found"
1171
+ },
1172
+ {
1173
+ "keyword": "not installed"
1174
+ },
1175
+ {
1176
+ "intent": "install tool"
1177
+ }
1178
+ ],
1179
+ "routes_to": []
1180
+ },
1181
+ {
1182
+ "id": "model-recommendation",
1183
+ "triggers": [
1184
+ {
1185
+ "phrase": "switch task"
1186
+ },
1187
+ {
1188
+ "phrase": "new task"
1189
+ },
1190
+ {
1191
+ "phrase": "which model"
1192
+ }
1193
+ ],
1194
+ "routes_to": [
1195
+ "command:set-cost-profile"
1196
+ ]
1197
+ },
1198
+ {
1199
+ "id": "persona-governance",
1200
+ "triggers": [
1201
+ {
1202
+ "path_prefix": ".agent-src.uncompressed/personas/"
1203
+ },
1204
+ {
1205
+ "path_prefix": ".agent-src/personas/"
1206
+ },
1207
+ {
1208
+ "keyword": "persona"
1209
+ },
1210
+ {
1211
+ "keyword": "personas"
1212
+ },
1213
+ {
1214
+ "phrase": "new persona"
1215
+ },
1216
+ {
1217
+ "phrase": "add a persona"
1218
+ },
1219
+ {
1220
+ "phrase": "specialist persona"
1221
+ },
1222
+ {
1223
+ "phrase": "review lens"
1224
+ }
1225
+ ],
1226
+ "routes_to": [
1227
+ "contract:persona-schema"
1228
+ ]
1229
+ },
1230
+ {
1231
+ "id": "preservation-guard",
1232
+ "triggers": [
1233
+ {
1234
+ "intent": "merge skill"
1235
+ },
1236
+ {
1237
+ "intent": "compress rule"
1238
+ },
1239
+ {
1240
+ "intent": "refactor artifact"
1241
+ },
1242
+ {
1243
+ "keyword": "Iron Law"
1244
+ }
1245
+ ],
1246
+ "routes_to": []
1247
+ },
1248
+ {
1249
+ "id": "provider-lifecycle-discipline",
1250
+ "triggers": [
1251
+ {
1252
+ "keyword": "/video:"
1253
+ },
1254
+ {
1255
+ "keyword": "/image:"
1256
+ },
1257
+ {
1258
+ "keyword": "/audio:"
1259
+ },
1260
+ {
1261
+ "keyword": "ai-video"
1262
+ },
1263
+ {
1264
+ "keyword": "ai-image"
1265
+ },
1266
+ {
1267
+ "keyword": "ai-audio"
1268
+ },
1269
+ {
1270
+ "keyword": "adapter"
1271
+ },
1272
+ {
1273
+ "keyword": "provider"
1274
+ },
1275
+ {
1276
+ "path_prefix": "scripts/ai-video/adapters/"
1277
+ },
1278
+ {
1279
+ "path_prefix": "agents/.ai-video.xml"
1280
+ },
1281
+ {
1282
+ "phrase": "lifecycle"
1283
+ },
1284
+ {
1285
+ "phrase": "default provider"
1286
+ }
1287
+ ],
1288
+ "routes_to": [
1289
+ "contract:provider-lifecycle"
1290
+ ]
1291
+ },
1292
+ {
1293
+ "id": "reviewer-awareness",
1294
+ "triggers": [
1295
+ {
1296
+ "keyword": "reviewer"
1297
+ },
1298
+ {
1299
+ "phrase": "suggest reviewers"
1300
+ },
1301
+ {
1302
+ "phrase": "risk hotspot"
1303
+ },
1304
+ {
1305
+ "phrase": "ownership map"
1306
+ }
1307
+ ],
1308
+ "routes_to": [
1309
+ "skill:review-routing"
1310
+ ]
1311
+ },
1312
+ {
1313
+ "id": "roadmap-ci-steps-policy",
1314
+ "triggers": [
1315
+ {
1316
+ "path_prefix": "agents/roadmaps/"
1317
+ },
1318
+ {
1319
+ "path_prefix": "app/Modules/"
1320
+ },
1321
+ {
1322
+ "keyword": "task ci"
1323
+ },
1324
+ {
1325
+ "keyword": "make test"
1326
+ },
1327
+ {
1328
+ "keyword": "npm run check"
1329
+ },
1330
+ {
1331
+ "keyword": "pnpm run check"
1332
+ },
1333
+ {
1334
+ "keyword": "yarn check"
1335
+ },
1336
+ {
1337
+ "keyword": "composer test"
1338
+ },
1339
+ {
1340
+ "phrase": "run the quality pipeline"
1341
+ },
1342
+ {
1343
+ "phrase": "run task ci"
1344
+ },
1345
+ {
1346
+ "phrase": "run the full ci"
1347
+ }
1348
+ ],
1349
+ "routes_to": []
1350
+ },
1351
+ {
1352
+ "id": "role-mode-adherence",
1353
+ "triggers": [
1354
+ {
1355
+ "keyword": "active_role"
1356
+ },
1357
+ {
1358
+ "keyword": "role-mode"
1359
+ },
1360
+ {
1361
+ "intent": "mode marker"
1362
+ }
1363
+ ],
1364
+ "routes_to": []
1365
+ },
1366
+ {
1367
+ "id": "rule-type-governance",
1368
+ "triggers": [
1369
+ {
1370
+ "path_prefix": ".agent-src.uncompressed/rules/"
1371
+ }
1372
+ ],
1373
+ "routes_to": [
1374
+ "guideline:agent-infra/rule-type-governance"
1375
+ ]
1376
+ },
1377
+ {
1378
+ "id": "runtime-safety",
1379
+ "triggers": [
1380
+ {
1381
+ "keyword": "execution"
1382
+ },
1383
+ {
1384
+ "keyword": "automated"
1385
+ },
1386
+ {
1387
+ "keyword": "assisted"
1388
+ },
1389
+ {
1390
+ "keyword": "handler"
1391
+ }
1392
+ ],
1393
+ "routes_to": []
1394
+ },
1395
+ {
1396
+ "id": "security-sensitive-stop",
1397
+ "triggers": [
1398
+ {
1399
+ "keyword": "auth"
1400
+ },
1401
+ {
1402
+ "keyword": "billing"
1403
+ },
1404
+ {
1405
+ "keyword": "tenant"
1406
+ },
1407
+ {
1408
+ "keyword": "secret"
1409
+ },
1410
+ {
1411
+ "keyword": "webhook"
1412
+ }
1413
+ ],
1414
+ "routes_to": []
1415
+ },
1416
+ {
1417
+ "id": "skill-improvement-trigger",
1418
+ "triggers": [
1419
+ {
1420
+ "phrase": "after completing"
1421
+ },
1422
+ {
1423
+ "keyword": "improvement"
1424
+ },
1425
+ {
1426
+ "keyword": "pipeline"
1427
+ }
1428
+ ],
1429
+ "routes_to": [
1430
+ "skill:skill-improvement-pipeline"
1431
+ ]
1432
+ },
1433
+ {
1434
+ "id": "strategy-safety-floor",
1435
+ "triggers": [
1436
+ {
1437
+ "keyword": "vision"
1438
+ },
1439
+ {
1440
+ "keyword": "positioning"
1441
+ },
1442
+ {
1443
+ "keyword": "moat"
1444
+ },
1445
+ {
1446
+ "keyword": "competitive"
1447
+ },
1448
+ {
1449
+ "keyword": "market entry"
1450
+ },
1451
+ {
1452
+ "keyword": "OKR"
1453
+ },
1454
+ {
1455
+ "keyword": "build vs buy"
1456
+ },
1457
+ {
1458
+ "keyword": "buy vs partner"
1459
+ },
1460
+ {
1461
+ "keyword": "beachhead"
1462
+ },
1463
+ {
1464
+ "keyword": "GTM"
1465
+ },
1466
+ {
1467
+ "keyword": "category"
1468
+ },
1469
+ {
1470
+ "keyword": "where to play"
1471
+ },
1472
+ {
1473
+ "keyword": "where not to play"
1474
+ },
1475
+ {
1476
+ "phrase": "what's our strategy"
1477
+ },
1478
+ {
1479
+ "phrase": "should we enter"
1480
+ },
1481
+ {
1482
+ "phrase": "what's our moat"
1483
+ },
1484
+ {
1485
+ "phrase": "where should we focus"
1486
+ },
1487
+ {
1488
+ "phrase": "should we reorg"
1489
+ }
1490
+ ],
1491
+ "routes_to": [
1492
+ "skill:build-buy-partner",
1493
+ "skill:competitive-moat-analysis",
1494
+ "skill:market-entry-analysis",
1495
+ "skill:okr-tree-modeling",
1496
+ "skill:positioning-strategy",
1497
+ "skill:vision-articulation"
1498
+ ]
1499
+ },
1500
+ {
1501
+ "id": "think-before-action",
1502
+ "triggers": [
1503
+ {
1504
+ "intent": "before coding"
1505
+ },
1506
+ {
1507
+ "intent": "before debugging"
1508
+ },
1509
+ {
1510
+ "intent": "before modifying"
1511
+ }
1512
+ ],
1513
+ "routes_to": []
1514
+ },
1515
+ {
1516
+ "id": "token-efficiency",
1517
+ "triggers": [
1518
+ {
1519
+ "intent": "verbose CLI output"
1520
+ },
1521
+ {
1522
+ "intent": "fetching logs"
1523
+ },
1524
+ {
1525
+ "keyword": "minimize tool calls"
1526
+ }
1527
+ ],
1528
+ "routes_to": []
1529
+ },
1530
+ {
1531
+ "id": "token-optimizer-maintenance",
1532
+ "triggers": [
1533
+ {
1534
+ "keyword": "cli-output-handling"
1535
+ },
1536
+ {
1537
+ "keyword": "rtk-output-filtering"
1538
+ },
1539
+ {
1540
+ "keyword": "token-efficiency"
1541
+ },
1542
+ {
1543
+ "keyword": "agent-handoff"
1544
+ },
1545
+ {
1546
+ "keyword": "markitdown"
1547
+ },
1548
+ {
1549
+ "keyword": "token-optimizer"
1550
+ }
1551
+ ],
1552
+ "routes_to": [
1553
+ "skill:token-optimizer"
1554
+ ]
1555
+ },
1556
+ {
1557
+ "id": "tool-safety",
1558
+ "triggers": [
1559
+ {
1560
+ "keyword": "allowed_tools"
1561
+ },
1562
+ {
1563
+ "keyword": "tool registry"
1564
+ },
1565
+ {
1566
+ "intent": "external API"
1567
+ }
1568
+ ],
1569
+ "routes_to": []
1570
+ },
1571
+ {
1572
+ "id": "ui-audit-gate",
1573
+ "triggers": [
1574
+ {
1575
+ "path_prefix": "resources/views/"
1576
+ },
1577
+ {
1578
+ "path_prefix": "resources/js/"
1579
+ },
1580
+ {
1581
+ "keyword": "component"
1582
+ },
1583
+ {
1584
+ "keyword": "design token"
1585
+ }
1586
+ ],
1587
+ "routes_to": [
1588
+ "skill:existing-ui-audit"
1589
+ ]
1590
+ },
1591
+ {
1592
+ "id": "upstream-proposal",
1593
+ "triggers": [
1594
+ {
1595
+ "phrase": "after creating"
1596
+ },
1597
+ {
1598
+ "phrase": "after improving"
1599
+ },
1600
+ {
1601
+ "keyword": "upstream"
1602
+ }
1603
+ ],
1604
+ "routes_to": [
1605
+ "skill:upstream-contribute"
1606
+ ]
1607
+ }
1608
+ ],
1609
+ "profiles": {
1610
+ "minimal": [
1611
+ "__kernel__"
1612
+ ],
1613
+ "balanced": [
1614
+ "__kernel__",
1615
+ "__tier_1__"
1616
+ ],
1617
+ "full": [
1618
+ "__kernel__",
1619
+ "__tier_1__",
1620
+ "__tier_2__"
1621
+ ]
1622
+ }
1623
+ }