@event4u/agent-config 8.13.0 → 9.1.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 (316) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +183 -0
  3. package/MIGRATION.md +14 -0
  4. package/README.md +2 -2
  5. package/dist/agent-src/commands/agent-handoff.md +35 -0
  6. package/dist/agent-src/commands/agents/init.md +1 -0
  7. package/dist/agent-src/commands/agents/optimize.md +1 -0
  8. package/dist/agent-src/commands/agents/user/accept.md +3 -2
  9. package/dist/agent-src/commands/agents/user/init.md +5 -4
  10. package/dist/agent-src/commands/agents/user/update.md +3 -2
  11. package/dist/agent-src/commands/agents/user.md +1 -0
  12. package/dist/agent-src/commands/agents.md +1 -0
  13. package/dist/agent-src/commands/analytics/show.md +1 -0
  14. package/dist/agent-src/commands/analytics.md +1 -0
  15. package/dist/agent-src/commands/analyze/decision.md +1 -0
  16. package/dist/agent-src/commands/analyze/incident.md +1 -0
  17. package/dist/agent-src/commands/analyze/near-miss.md +1 -0
  18. package/dist/agent-src/commands/analyze/postmortem.md +1 -0
  19. package/dist/agent-src/commands/analyze/premortem.md +1 -0
  20. package/dist/agent-src/commands/analyze/reference-repo.md +1 -0
  21. package/dist/agent-src/commands/analyze.md +3 -2
  22. package/dist/agent-src/commands/brand/identity.md +6 -5
  23. package/dist/agent-src/commands/brand/review.md +6 -5
  24. package/dist/agent-src/commands/brand/strategy.md +6 -4
  25. package/dist/agent-src/commands/brand/tokens.md +7 -6
  26. package/dist/agent-src/commands/brand/voice.md +5 -4
  27. package/dist/agent-src/commands/brand.md +9 -7
  28. package/dist/agent-src/commands/bug/fix.md +1 -0
  29. package/dist/agent-src/commands/bug/investigate.md +1 -0
  30. package/dist/agent-src/commands/bug.md +2 -1
  31. package/dist/agent-src/commands/challenge-me/vision.md +1 -0
  32. package/dist/agent-src/commands/challenge-me/with-docs.md +1 -0
  33. package/dist/agent-src/commands/challenge-me.md +28 -6
  34. package/dist/agent-src/commands/chat-history.md +1 -0
  35. package/dist/agent-src/commands/check-current-md.md +1 -0
  36. package/dist/agent-src/commands/commit.md +1 -0
  37. package/dist/agent-src/commands/context/create.md +3 -2
  38. package/dist/agent-src/commands/context.md +1 -0
  39. package/dist/agent-src/commands/cost/profile.md +1 -0
  40. package/dist/agent-src/commands/cost.md +2 -1
  41. package/dist/agent-src/commands/council/analysis.md +1 -0
  42. package/dist/agent-src/commands/council/debate.md +1 -0
  43. package/dist/agent-src/commands/council/default.md +21 -20
  44. package/dist/agent-src/commands/council/design.md +1 -0
  45. package/dist/agent-src/commands/council/optimize.md +1 -0
  46. package/dist/agent-src/commands/council/pr.md +1 -0
  47. package/dist/agent-src/commands/council.md +1 -0
  48. package/dist/agent-src/commands/estimate-ticket.md +1 -0
  49. package/dist/agent-src/commands/explain-run.md +88 -0
  50. package/dist/agent-src/commands/feature/dev.md +1 -0
  51. package/dist/agent-src/commands/feature/explore.md +1 -0
  52. package/dist/agent-src/commands/feature/plan.md +1 -0
  53. package/dist/agent-src/commands/feature/refactor.md +1 -0
  54. package/dist/agent-src/commands/feature/roadmap.md +1 -0
  55. package/dist/agent-src/commands/feature.md +2 -1
  56. package/dist/agent-src/commands/fix/pr-comments.md +19 -0
  57. package/dist/agent-src/commands/fix.md +2 -1
  58. package/dist/agent-src/commands/ghostwriter/delete.md +1 -0
  59. package/dist/agent-src/commands/ghostwriter/fetch.md +1 -0
  60. package/dist/agent-src/commands/ghostwriter/show.md +1 -0
  61. package/dist/agent-src/commands/ghostwriter/write.md +1 -0
  62. package/dist/agent-src/commands/ghostwriter.md +1 -0
  63. package/dist/agent-src/commands/grill-me.md +17 -12
  64. package/dist/agent-src/commands/humanize.md +1 -0
  65. package/dist/agent-src/commands/image/analyse.md +2 -1
  66. package/dist/agent-src/commands/image/create.md +1 -0
  67. package/dist/agent-src/commands/image/verify.md +1 -0
  68. package/dist/agent-src/commands/image.md +16 -12
  69. package/dist/agent-src/commands/implement-ticket.md +1 -0
  70. package/dist/agent-src/commands/judge/on-diff.md +1 -0
  71. package/dist/agent-src/commands/judge/solo.md +1 -0
  72. package/dist/agent-src/commands/judge/steps.md +1 -0
  73. package/dist/agent-src/commands/judge.md +1 -0
  74. package/dist/agent-src/commands/knowledge/cross-repo.md +1 -0
  75. package/dist/agent-src/commands/knowledge/forget.md +1 -0
  76. package/dist/agent-src/commands/knowledge/ingest.md +1 -0
  77. package/dist/agent-src/commands/knowledge/list.md +10 -0
  78. package/dist/agent-src/commands/knowledge.md +1 -0
  79. package/dist/agent-src/commands/memory/learn-low-impact.md +1 -0
  80. package/dist/agent-src/commands/memory/mine-session.md +1 -0
  81. package/dist/agent-src/commands/memory/promote.md +3 -2
  82. package/dist/agent-src/commands/memory.md +1 -0
  83. package/dist/agent-src/commands/mission/upgrade.md +45 -24
  84. package/dist/agent-src/commands/mode.md +1 -0
  85. package/dist/agent-src/commands/module/create.md +1 -0
  86. package/dist/agent-src/commands/module/explore.md +1 -0
  87. package/dist/agent-src/commands/module.md +1 -0
  88. package/dist/agent-src/commands/optimize/agents-dir.md +1 -0
  89. package/dist/agent-src/commands/optimize/project.md +1 -0
  90. package/dist/agent-src/commands/optimize/prompt.md +1 -0
  91. package/dist/agent-src/commands/optimize.md +2 -1
  92. package/dist/agent-src/commands/orchestrate.md +1 -0
  93. package/dist/agent-src/commands/override.md +1 -0
  94. package/dist/agent-src/commands/package.md +2 -1
  95. package/dist/agent-src/commands/post-as/ghostwriter.md +1 -0
  96. package/dist/agent-src/commands/post-as/me.md +1 -0
  97. package/dist/agent-src/commands/post-as.md +1 -0
  98. package/dist/agent-src/commands/pr/create/description-only.md +139 -8
  99. package/dist/agent-src/commands/pr/create.md +35 -22
  100. package/dist/agent-src/commands/prediction-pool.md +7 -6
  101. package/dist/agent-src/commands/prepare-for-review.md +1 -0
  102. package/dist/agent-src/commands/profile/activate.md +1 -0
  103. package/dist/agent-src/commands/profile/deactivate.md +1 -0
  104. package/dist/agent-src/commands/profile.md +1 -0
  105. package/dist/agent-src/commands/project.md +2 -1
  106. package/dist/agent-src/commands/refine-ticket.md +7 -0
  107. package/dist/agent-src/commands/research/deep.md +1 -0
  108. package/dist/agent-src/commands/research.md +1 -0
  109. package/dist/agent-src/commands/review/routing.md +1 -0
  110. package/dist/agent-src/commands/review.md +2 -1
  111. package/dist/agent-src/commands/roadmap/ai-council.md +1 -0
  112. package/dist/agent-src/commands/roadmap/materialize.md +1 -0
  113. package/dist/agent-src/commands/roadmap/process-full.md +1 -0
  114. package/dist/agent-src/commands/roadmap/process-phase.md +1 -0
  115. package/dist/agent-src/commands/roadmap/process-step.md +1 -0
  116. package/dist/agent-src/commands/roadmap.md +1 -0
  117. package/dist/agent-src/commands/security-audit-config.md +2 -1
  118. package/dist/agent-src/commands/skill/preview.md +1 -0
  119. package/dist/agent-src/commands/skill.md +1 -0
  120. package/dist/agent-src/commands/skills/discover.md +1 -0
  121. package/dist/agent-src/commands/skills.md +1 -0
  122. package/dist/agent-src/commands/sync/agent-settings.md +1 -0
  123. package/dist/agent-src/commands/sync.md +2 -1
  124. package/dist/agent-src/commands/team/adversarial.md +3 -2
  125. package/dist/agent-src/commands/team/delegate.md +3 -2
  126. package/dist/agent-src/commands/team/review.md +3 -2
  127. package/dist/agent-src/commands/team/status.md +49 -18
  128. package/dist/agent-src/commands/team-knowledge.md +8 -6
  129. package/dist/agent-src/commands/team.md +21 -16
  130. package/dist/agent-src/commands/tests/e2e-heal.md +1 -0
  131. package/dist/agent-src/commands/tests/e2e-plan.md +1 -0
  132. package/dist/agent-src/commands/tests/execute.md +1 -0
  133. package/dist/agent-src/commands/tests.md +2 -1
  134. package/dist/agent-src/commands/update-form-request-messages.md +1 -0
  135. package/dist/agent-src/commands/upstream-contribute.md +1 -0
  136. package/dist/agent-src/commands/video/from-script.md +3 -2
  137. package/dist/agent-src/commands/video/from-song.md +22 -21
  138. package/dist/agent-src/commands/video/scene.md +1 -0
  139. package/dist/agent-src/commands/video/stitch.md +2 -1
  140. package/dist/agent-src/commands/video/storyboard.md +1 -0
  141. package/dist/agent-src/commands/video.md +1 -0
  142. package/dist/agent-src/commands/work.md +1 -0
  143. package/dist/agent-src/commands/worktree/cleanup.md +8 -7
  144. package/dist/agent-src/commands/worktree/create.md +1 -0
  145. package/dist/agent-src/commands/worktree/verify.md +1 -0
  146. package/dist/agent-src/commands/worktree.md +1 -0
  147. package/dist/agent-src/rules/active-remediation.md +12 -36
  148. package/dist/agent-src/rules/artifact-drafting-protocol.md +7 -64
  149. package/dist/agent-src/rules/context-hygiene.md +19 -113
  150. package/dist/agent-src/rules/design-fidelity.md +4 -60
  151. package/dist/agent-src/rules/domain-adoption-policy.md +10 -106
  152. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +12 -60
  153. package/dist/agent-src/rules/improve-before-implement.md +4 -0
  154. package/dist/agent-src/rules/minimal-safe-diff.md +6 -86
  155. package/dist/agent-src/rules/size-enforcement.md +10 -0
  156. package/dist/agent-src/rules/tool-safety.md +17 -3
  157. package/dist/agent-src/skills/agent-security-review/SKILL.md +12 -1
  158. package/dist/agent-src/skills/ai-council/SKILL.md +11 -0
  159. package/dist/agent-src/skills/bug-analyzer/SKILL.md +24 -2
  160. package/dist/agent-src/skills/code-review/SKILL.md +105 -93
  161. package/dist/agent-src/skills/code-review/checklists/backend.md +50 -0
  162. package/dist/agent-src/skills/code-review/checklists/database.md +19 -0
  163. package/dist/agent-src/skills/code-review/checklists/dependency.md +18 -0
  164. package/dist/agent-src/skills/code-review/checklists/docs.md +14 -0
  165. package/dist/agent-src/skills/code-review/checklists/frontend.md +19 -0
  166. package/dist/agent-src/skills/code-review/checklists/infra.md +17 -0
  167. package/dist/agent-src/skills/code-review/checklists/producing-the-review.md +62 -0
  168. package/dist/agent-src/skills/code-review/checklists/test-only.md +13 -0
  169. package/dist/agent-src/skills/code-review/evals/evals.json +53 -15
  170. package/dist/agent-src/skills/condense-memory/SKILL.md +3 -2
  171. package/dist/agent-src/skills/conventional-commits-writing/evals/evals.json +15 -0
  172. package/dist/agent-src/skills/docker/SKILL.md +10 -0
  173. package/dist/agent-src/skills/docx-authoring/SKILL.md +102 -0
  174. package/dist/agent-src/skills/github-ci/evals/evals.json +25 -0
  175. package/dist/agent-src/skills/humanizer/SKILL.md +79 -3
  176. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +112 -0
  177. package/dist/agent-src/skills/humanizer/references/fixtures.md +70 -0
  178. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +7 -1
  179. package/dist/agent-src/skills/laravel/SKILL.md +10 -0
  180. package/dist/agent-src/skills/launch-readiness/SKILL.md +35 -0
  181. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +146 -0
  182. package/dist/agent-src/skills/llm-provider-knowledge/evals/triggers.json +20 -0
  183. package/dist/agent-src/skills/merge-conflicts/SKILL.md +30 -0
  184. package/dist/agent-src/skills/pdf-tools/SKILL.md +101 -0
  185. package/dist/agent-src/skills/quality-tools/evals/evals.json +15 -0
  186. package/dist/agent-src/skills/security-audit/SKILL.md +29 -0
  187. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +90 -0
  188. package/dist/agent-src/skills/security-maturity-assessment/evals/triggers.json +52 -0
  189. package/dist/agent-src/skills/skill-writing/SKILL.md +79 -0
  190. package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +11 -3
  191. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +11 -0
  192. package/dist/agent-src/skills/subagent-orchestration/schemas/team-review-status.json +103 -0
  193. package/dist/agent-src/skills/terraform/SKILL.md +10 -0
  194. package/dist/agent-src/skills/test-driven-development/SKILL.md +31 -0
  195. package/dist/agent-src/skills/threat-modeling/SKILL.md +15 -0
  196. package/dist/agent-src/skills/token-optimizer/SKILL.md +10 -4
  197. package/dist/agent-src/templates/agent-settings.md +28 -0
  198. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  199. package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  200. package/dist/agent-src/templates/scripts/telemetry/engagement.ts +30 -0
  201. package/dist/agent-src/templates/scripts/telemetry/report_renderer.ts +22 -9
  202. package/dist/agent-src/templates/scripts/telemetry_record.ts +5 -0
  203. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +4 -1
  204. package/dist/discovery/deprecation-report.md +1 -1
  205. package/dist/discovery/discovery-manifest.json +314 -194
  206. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  207. package/dist/discovery/discovery-manifest.summary.md +5 -5
  208. package/dist/discovery/orphan-report.md +1 -1
  209. package/dist/discovery/packs.json +23 -18
  210. package/dist/discovery/trust-report.md +8 -8
  211. package/dist/discovery/workspaces.json +18 -13
  212. package/dist/install/install.mjs +48 -33
  213. package/dist/mcp/registry-manifest.json +3 -3
  214. package/dist/router.json +1 -1
  215. package/dist/scripts/_lib/agent_settings.js +4 -1
  216. package/dist/scripts/_lib/agent_settings.js.map +1 -1
  217. package/dist/scripts/condense.js +5 -0
  218. package/dist/scripts/condense.js.map +1 -1
  219. package/dist/server/schemas/settings.js +10 -1
  220. package/dist/server/schemas/settings.js.map +1 -1
  221. package/docs/CLAIMS.md +9 -2
  222. package/docs/MIGRATION.md +20 -0
  223. package/docs/SKILL_CENSUS.md +8 -0
  224. package/docs/architecture.md +3 -3
  225. package/docs/benchmark.md +67 -2
  226. package/docs/catalog.md +2 -2
  227. package/docs/command-flows.md +1 -1
  228. package/docs/contracts/agents-layout.md +1 -1
  229. package/docs/contracts/ai-council-config.md +9 -2
  230. package/docs/contracts/ai-team-config.md +37 -4
  231. package/docs/contracts/consumer-bridge.md +55 -63
  232. package/docs/contracts/install-layout.md +1 -1
  233. package/docs/contracts/migrate-command.md +1 -1
  234. package/docs/contracts/prelaunch-diagnostics.md +151 -0
  235. package/docs/contracts/release-pr-gating.md +1 -0
  236. package/docs/customization.md +22 -1
  237. package/docs/decisions/ADR-020-global-only-consumer-scope.md +34 -0
  238. package/docs/decisions/ADR-049-configuration-trust-boundary.md +9 -1
  239. package/docs/featured-skills.md +2 -2
  240. package/docs/getting-started-by-role.md +1 -1
  241. package/docs/getting-started.md +17 -6
  242. package/docs/governance-advantage.md +1 -1
  243. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +45 -0
  244. package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +28 -0
  245. package/docs/guidelines/agent-infra/api-cost-levers.md +126 -0
  246. package/docs/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +76 -0
  247. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +90 -0
  248. package/docs/guidelines/agent-infra/domain-adoption-gates.md +112 -0
  249. package/docs/guidelines/agent-infra/framework-neutrality-patterns.md +66 -0
  250. package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +99 -0
  251. package/docs/guidelines/agent-infra/skill-quality-checklist.md +13 -0
  252. package/docs/guidelines/design-fidelity-mechanics.md +76 -0
  253. package/docs/installation.md +2 -1
  254. package/docs/maintainers/dev-mode.md +3 -2
  255. package/docs/parity/command-frontmatter.md +60 -0
  256. package/docs/proof.md +7 -6
  257. package/package.json +1 -1
  258. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  259. package/src/agent-src/templates/scripts/telemetry/engagement.ts +30 -0
  260. package/src/agent-src/templates/scripts/telemetry/report_renderer.ts +22 -9
  261. package/src/agent-src/templates/scripts/telemetry_record.ts +5 -0
  262. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +4 -1
  263. package/src/config/agent-settings.template.yml +73 -10
  264. package/src/config/gitignore-block.txt +16 -6
  265. package/src/config/prelaunch-areas.yml +36 -0
  266. package/src/scripts/_cli/cmd_conformance.ts +2 -2
  267. package/src/scripts/_cli/cmd_doctor.ts +280 -39
  268. package/src/scripts/_cli/cmd_refresh.ts +35 -118
  269. package/src/scripts/_lib/agent_settings.ts +4 -1
  270. package/src/scripts/_lib/claude_plugin.ts +77 -2
  271. package/src/scripts/_lib/orchestration_record.ts +5 -0
  272. package/src/scripts/_lib/tool_adapter_registry.ts +120 -0
  273. package/src/scripts/ai_council/clients.ts +68 -6
  274. package/src/scripts/ai_council/pricing.ts +62 -0
  275. package/src/scripts/ai_team/config.ts +73 -1
  276. package/src/scripts/ai_team/review_gate.ts +636 -0
  277. package/src/scripts/ai_team/team_dispatch.ts +612 -0
  278. package/src/scripts/bench_ab_task_runner.ts +11 -1
  279. package/src/scripts/bench_parity_count.ts +279 -0
  280. package/src/scripts/build_linear_digest.ts +3 -1
  281. package/src/scripts/check_bridge_derivation.ts +172 -0
  282. package/src/scripts/check_consumer_scope_flip.ts +179 -0
  283. package/src/scripts/check_council_config_location.ts +115 -15
  284. package/src/scripts/check_host_loadability.ts +81 -0
  285. package/src/scripts/condense.ts +5 -0
  286. package/src/scripts/council_cli.ts +19 -3
  287. package/src/scripts/hook_manifest.yaml +12 -1
  288. package/src/scripts/install.ts +44 -45
  289. package/src/scripts/lint_agents_layout.ts +10 -4
  290. package/src/scripts/lint_breaking_changes_index.ts +303 -0
  291. package/src/scripts/lint_handoffs.ts +42 -0
  292. package/src/scripts/lint_skill_descriptions.ts +228 -0
  293. package/src/scripts/lint_skill_descriptions_allowlist.json +1 -0
  294. package/src/scripts/lint_skill_scripts_readonly.ts +145 -0
  295. package/src/scripts/lint_skill_scripts_readonly_allowlist.json +8 -0
  296. package/src/scripts/lint_supported_tools_matrix.ts +35 -0
  297. package/src/scripts/mcp_server/tools.ts +1 -3
  298. package/src/scripts/optimize_skill_description.ts +144 -0
  299. package/src/scripts/orchestration_record.ts +2 -1
  300. package/src/scripts/prelaunch_diagnostics.ts +248 -0
  301. package/src/scripts/run_skill_evals.ts +70 -4
  302. package/src/scripts/schemas/agent-settings.schema.json +17 -0
  303. package/src/scripts/schemas/command.schema.json +7 -0
  304. package/src/scripts/schemas/evals.schema.json +105 -14
  305. package/src/scripts/schemas/prelaunch-report.schema.json +107 -0
  306. package/src/scripts/schemas/skill.schema.json +18 -1
  307. package/src/scripts/schemas/subagent.schema.json +6 -0
  308. package/src/scripts/self_review_gate.test.ts +11 -0
  309. package/src/scripts/self_review_gate.ts +7 -1
  310. package/src/scripts/skill_eval_coverage.ts +4 -1
  311. package/src/scripts/skill_linter.ts +43 -3
  312. package/src/scripts/smoke_host_loadability.sh +73 -0
  313. package/src/scripts/team_review_gate_hook.ts +115 -0
  314. package/src/scripts/trigger_eval_grandfather.json +1 -2
  315. package/src/scripts/utilization_report.ts +225 -0
  316. package/src/server/schemas/settings.ts +24 -1
@@ -8,6 +8,7 @@ cluster: brand
8
8
  sub: tokens
9
9
  skills: [brand-to-tokens]
10
10
  description: Derive a DTCG .tokens.json source of truth from brand decisions, then emit CSS vars + Tailwind via the no-Node token generator.
11
+ argument-hint: "<identity-ref>"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "derive brand tokens, turn our brand into design tokens, generate a .tokens.json from the brand"
@@ -20,9 +21,9 @@ packs:
20
21
 
21
22
  # /brand:tokens
22
23
 
23
- Run the [`brand-to-tokens`](../../skills/brand-to-tokens/SKILL.md) skill — brand
24
- decisions → a DTCG `.tokens.json` source of truth → `design-tokens` emits CSS
25
- vars + Tailwind (no Node). The same `.tokens.json` is the export pack-ai-image's
26
- brand-asset generation and the greenfield scaffold seed consume; stays on
27
- `$value`/`$type` so Tokens Studio / Style Dictionary round-trip. Args:
28
- `"<identity ref>"`.
24
+ Run the [`brand-to-tokens`](../../skills/brand-to-tokens/SKILL.md) skill —
25
+ brand decisions → a DTCG `.tokens.json` source of truth → `design-tokens`
26
+ emits CSS vars + Tailwind (no Node). The same `.tokens.json` is the export that
27
+ `pack-ai-image`'s brand-asset generation and the greenfield scaffold seed
28
+ consume; stays on `$value`/`$type` so Tokens Studio / Style Dictionary
29
+ round-trip. Args: `"<identity ref>"`.
@@ -8,6 +8,7 @@ cluster: brand
8
8
  sub: voice
9
9
  skills: [voice-and-tone-design]
10
10
  description: Define the brand voice-and-tone profile — register, do/don't lexicon, and tone shifts by context — the profile the brand-consistency gate checks copy against.
11
+ argument-hint: "<brand-ref | strategy-ref>"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "define our brand voice, voice and tone guide, how should our copy sound, tone of voice profile"
@@ -21,7 +22,7 @@ packs:
21
22
  # /brand:voice
22
23
 
23
24
  Run the [`voice-and-tone-design`](../../skills/voice-and-tone-design/SKILL.md)
24
- skill — register, do/don't lexicon, per-context tone shifts. The voice profile
25
- is what `/brand:review` and the `brand-consistency` gate check emitted copy
26
- against. Args: `"<brand/strategy ref>"`. Run `/brand:strategy` first when the
27
- archetype/positioning is not yet set.
25
+ skill — register, do/don't lexicon, and per-context tone shifts. The resulting
26
+ voice profile is what `/brand:review` and the `brand-consistency` gate check
27
+ emitted copy against. Args: `"<brand/strategy ref>"`. Run `/brand:strategy`
28
+ first when the archetype/positioning is not yet set.
@@ -7,6 +7,7 @@ visibility: internal
7
7
  cluster: brand
8
8
  type: orchestrator
9
9
  description: Brand-as-UX orchestrator — strategy, identity, tokens, review, voice. Routes to the brand-grounding skills that constrain the design layer.
10
+ argument-hint: "[strategy|identity|tokens|review|voice] [args]"
10
11
  suggestion:
11
12
  eligible: true
12
13
  trigger_description: "work on our brand, define brand strategy/identity/voice, derive brand tokens, audit brand consistency"
@@ -20,11 +21,12 @@ packs:
20
21
  # /brand
21
22
 
22
23
  Top-level orchestrator for the `/brand:*` family — brand as a first-class UX
23
- layer that **constrains** the UI. Consulted **before**
24
+ layer that **constrains** the UI. The brand layer is consulted **before**
24
25
  [`design-intelligence`](../../skills/design-intelligence/SKILL.md) so brand
25
- bounds style selection. Designer flow: discover → strategy → identity → tokens →
26
- application → governance. Derived brand tokens are the export pack-ai-image's
27
- brand-asset generation and the greenfield scaffold seed consume (B → A).
26
+ decisions bound style selection. Walk the designer flow: discover → strategy →
27
+ identity → tokens → application → governance. Brand tokens, once derived, are
28
+ the export that pack-ai-image's brand-asset generation and the greenfield
29
+ scaffold seed consume (B → A dependency).
28
30
 
29
31
  ## Sub-commands
30
32
 
@@ -47,9 +49,9 @@ brand-asset generation and the greenfield scaffold seed consume (B → A).
47
49
 
48
50
  - **Do NOT commit, push, or open a PR** — subcommands never do this.
49
51
  - **Do NOT chain subcommands.** One `/brand <sub>` per turn.
50
- - **Consumer brand tokens are the source of truth.** Corpus only fills gaps; a
51
- value not traceable to a brand token or voice rule is off-brand (per
52
- [`brand-consistency`](../rules/brand-consistency.md)).
52
+ - **Consumer brand tokens are the source of truth.** The brand corpus only
53
+ fills gaps; a value not traceable to a brand token or voice rule is off-brand
54
+ (per [`brand-consistency`](../rules/brand-consistency.md)).
53
55
  - **Edit `src/` only.** Generated mirrors regenerate.
54
56
 
55
57
  ## See also
@@ -8,6 +8,7 @@ sub: fix
8
8
  cluster: bug
9
9
  skills: [bug-analyzer, pest-testing]
10
10
  description: Plan and implement a bug fix — based on investigation, with quality checks and test verification
11
+ argument-hint: "[bug-description]"
11
12
  council_depth: deep
12
13
  suggestion:
13
14
  eligible: true
@@ -8,6 +8,7 @@ sub: investigate
8
8
  cluster: bug
9
9
  skills: [bug-analyzer, sentry-integration]
10
10
  description: Investigate a bug — auto-detect ticket from branch, gather Jira/Sentry/description context, trace root cause
11
+ argument-hint: "[ticket-key | sentry-url | error-message | description]"
11
12
  council_depth: deep
12
13
  suggestion:
13
14
  eligible: true
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: bug
4
4
  disable-model-invocation: true
5
+ argument-hint: "[investigate|fix] [args]"
5
6
  pack: engineering-base
6
7
  intent: "Bug dispatcher — investigate the root cause or implement the fix"
7
8
  routes_to: [bug-investigate, bug-fix]
@@ -34,7 +35,7 @@ user knows they have a defect but has not picked a workflow yet.
34
35
  | `/bug fix` | `commands/bug/fix.md` | Plan and implement a bug fix — based on investigation, with quality checks and test verification |
35
36
 
36
37
  Sub-command names match the locked contract in
37
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
38
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
38
39
 
39
40
  ## Dispatch
40
41
 
@@ -7,6 +7,7 @@ visibility: internal
7
7
  cluster: challenge-me
8
8
  sub: vision
9
9
  description: "Stress-test a plan or idea by one-question-at-a-time interview until 95% confidence — emits a copyable Markdown vision pitch for tickets, roadmaps, or fresh-chat handoff."
10
+ argument-hint: "[--until=N] [--keep-going] [seed]"
10
11
  suggestion:
11
12
  eligible: true
12
13
  trigger_description: "challenge me on this plan, grill me, grill me on this, grill me on the vision, grill me on the idea, grill me until it's clear, grill me hard, frag mich durch, dreh mich durch die Mangel"
@@ -7,6 +7,7 @@ visibility: internal
7
7
  cluster: challenge-me
8
8
  sub: with-docs
9
9
  description: "Doc-aware /challenge-me — 95%-confidence interview with session glossary vs CONTEXT.md, load-bearing claim-vs-code verification, optional CONTEXT.md patch + ADR candidates in the pitch."
10
+ argument-hint: "[--until=N] [--keep-going] [seed]"
10
11
  suggestion:
11
12
  eligible: true
12
13
  trigger_description: "challenge me against the docs, grill me with our context, grill me against the docs, grill me against CONTEXT.md, grill me with the project context, frag mich durch und prüf gegen CONTEXT.md, challenge plan with domain docs"
@@ -5,6 +5,7 @@ pack: product-reasoning
5
5
  tier: 2
6
6
  visibility: internal
7
7
  description: Challenge-me orchestrator — routes to vision, with-docs
8
+ argument-hint: "[vision|with-docs] [flags] [seed]"
8
9
  cluster: challenge-me
9
10
  type: orchestrator
10
11
  suggestion:
@@ -55,15 +56,36 @@ enough to emit a copyable Markdown pitch.
55
56
  > 2. with-docs — same flow, but checks the seed against `CONTEXT.md` /
56
57
  > ADRs and emits an optional doc patch in the pitch
57
58
 
59
+ ## In-interview triggers (both sub-commands)
60
+
61
+ While inside `vision` or `with-docs`, the user can end or branch the
62
+ interview at any turn by typing one of three triggers. Full syntax,
63
+ match rules, and routing live in
64
+ [`vision.md` § Triggers — strict matching](challenge-me/vision.md);
65
+ `with-docs` inherits verbatim.
66
+
67
+ | Trigger | Action |
68
+ |---|---|
69
+ | `!pitch` (and aliases) | Emit the pitch, hand back. |
70
+ | `!roadmap` / `!roadmap:create` (and aliases) | Emit the pitch, then auto-route to [`/roadmap:create`](roadmap/create.md) with the pitch as seed. Routing is opt-in by the trigger, not silent. |
71
+ | `!ai` / `!ai-council` / `!council` (and aliases) | Invoke [`/council default`](council/default.md) on the open question(s); cost gate **auto-accepted** by the trigger; council answers integrated, interview resumes. |
72
+
58
73
  ## Rules
59
74
 
60
75
  - **Do NOT chain sub-commands.** One `/challenge-me <sub>` per turn.
61
76
  - If the user invokes `/challenge-me` with no argument, **show the menu**
62
77
  — do not guess which sub-command they meant.
63
- - **No file writes from either sub-command.** Both variants are
64
- conversational; the pitch is the only artefact, and it is copyable
65
- Markdown the user pastes elsewhere. `with-docs` emits its `CONTEXT.md`
66
- patch and ADR candidates inside the same pitch block — agent does not
67
- apply them itself.
78
+ - **No file writes from /challenge-me itself.** Both variants are
79
+ conversational; the pitch is the only artefact `/challenge-me` produces,
80
+ and it is copyable Markdown the user pastes elsewhere. `with-docs`
81
+ emits its `CONTEXT.md` patch and ADR candidates inside the same pitch
82
+ block — `/challenge-me` does not apply them itself. The `!roadmap`
83
+ trigger routes to `/roadmap:create`, which then writes under its own
84
+ contract (with its own user confirmation in its Step 6); the file
85
+ write happens there, not here.
86
+ - **Council cost gate is auto-accepted under `!ai`** — typing the
87
+ trigger is the consent. Sub-commands do not surface a second
88
+ confirmation, even under `personal.autonomy: auto`.
68
89
  - **Mirror the user's language** — sub-commands inherit the
69
- `language-and-tone` Iron Law for question blocks and pitch.
90
+ `language-and-tone` Iron Law for question blocks and pitch. All
91
+ trigger syntax stays literal in any language.
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: chat-history
4
4
  disable-model-invocation: true
5
+ argument-hint: "[import]"
5
6
  pack: memory
6
7
  tier: 2
7
8
  visibility: internal
@@ -5,6 +5,7 @@ pack: meta
5
5
  tier: 2
6
6
  visibility: internal
7
7
  description: "Check the open .md file (or a passed path) for German outside DE:/EN: anchor blocks — umlauts, function words, untranslated quotes. Reports and offers fixes."
8
+ argument-hint: "[path...]"
8
9
  suggestion:
9
10
  eligible: false
10
11
  rationale: "Package-internal — only the event4u/agent-config repo runs this."
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: git-commit
4
4
  disable-model-invocation: true
5
+ argument-hint: "[in-chunks] [args]"
5
6
  pack: git
6
7
  intent: "Stage and commit changes in logical chunks with a Conventional Commits message"
7
8
  routes_to: [git-workflow, conventional-commits-writing]
@@ -8,6 +8,7 @@ cluster: context
8
8
  sub: create
9
9
  skills: [agent-docs-writing]
10
10
  description: Analyze a codebase area and create a structured context document
11
+ argument-hint: "[topic]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "document this part of the codebase, create a context doc for X"
@@ -86,9 +87,9 @@ Based on the type, analyze the relevant code area:
86
87
  - Identify all models and tables involved
87
88
 
88
89
  **Service context:**
89
- - Read the service class and its deps
90
+ - Read the service class and its dependencies
90
91
  - Trace call chain (who calls it, what it calls)
91
- - Identify configuration and env deps
92
+ - Identify configuration and env dependencies
92
93
 
93
94
  **Integration context:**
94
95
  - Find API client classes, HTTP calls
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: context
4
4
  disable-model-invocation: true
5
+ argument-hint: "[create|refactor] [args]"
5
6
  pack: meta
6
7
  tier: 2
7
8
  visibility: internal
@@ -8,6 +8,7 @@ replaces: [set-cost-profile]
8
8
  sub: profile
9
9
  cluster: cost
10
10
  description: Change the rule_loading_tier in .agent-settings.yml — shows each profile's meaning and applies the selection
11
+ argument-hint: "[minimal|balanced|full|custom]"
11
12
  skills: [file-editor]
12
13
  suggestion:
13
14
  eligible: false
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: cost
4
4
  disable-model-invocation: true
5
+ argument-hint: "[report|profile] [args]"
5
6
  pack: meta
6
7
  intent: "Cost dispatcher — session cost report or rule-loading cost profile"
7
8
  routes_to: [cost-report, cost-profile]
@@ -34,7 +35,7 @@ and configuration.
34
35
  | `/cost profile` | `commands/cost/profile.md` | Change the `rule_loading_tier` in `.agent-settings.yml` — shows each profile's meaning, applies the selection |
35
36
 
36
37
  Sub-command names match the locked contract in
37
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
38
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
38
39
 
39
40
  ## Dispatch
40
41
 
@@ -8,6 +8,7 @@ cluster: council
8
8
  sub: analysis
9
9
  skills: [ai-council]
10
10
  description: Run the council on a local analysis output (project-analyze, audit script, codebase scan) — critiques the analysis itself for dedup, evidence quality, and roadmap-readiness.
11
+ argument-hint: "[path] [question]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "council on this analysis, critique the project-analyze output, second opinion on the audit findings, turn analysis into roadmap"
@@ -8,6 +8,7 @@ cluster: council
8
8
  sub: debate
9
9
  skills: [ai-council]
10
10
  description: Multi-round council debate with progressive cost disclosure — each member produces a position, then rebuts the strongest opposing position in subsequent rounds. User confirms spend between rounds.
11
+ argument-hint: "[topic | path] [--rounds N] [--auto-continue]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "council debate on X, multi-round rebuttal, escalate council to debate mode, push the council to argue not synthesize"
@@ -8,6 +8,7 @@ cluster: council
8
8
  sub: default
9
9
  skills: [ai-council]
10
10
  description: Default council lens — neutral framing, redacted context, advisory output only. Run `/council default <input>` for prompt/roadmap/diff/files; the cluster shows a menu when invoked bare.
11
+ argument-hint: "[prompt:\"…\" | roadmap:<path> | diff:<a>..<b> | files:<paths>] [rounds:N] [depth:deep]"
11
12
  suggestion:
12
13
  eligible: false
13
14
  rationale: "Default lens — invoked via /council dispatcher; no direct trigger."
@@ -93,19 +94,19 @@ NOT in `.agent-settings.yml`, NOT in the project tree. The CLI
93
94
  (`scripts/ai_council/config.ts:resolve_config_path`, per
94
95
  [ADR-104](../../../docs/decisions/ADR-104-ai-council-config-global-only.md),
95
96
  superseding [ADR-093](../../../docs/decisions/ADR-093-ai-council-config-user-global.md))
96
- resolves it — first hit wins:
97
+ resolves it in this order — first hit wins:
97
98
 
98
99
  1. `$AI_COUNCIL_CONFIG` — explicit absolute path (tests / power users),
99
- honoured even when absent. Explicit path, never a project search.
100
- 2. User-global `~/.event4u/agent-config/settings/.ai-council.yml` — the one
101
- and only home; this single global config serves every project.
100
+ honoured even when absent. An explicit path, never a project search.
101
+ 2. User-global `~/.event4u/agent-config/settings/.ai-council.yml` — the
102
+ one and only home; this single global config serves every project.
102
103
 
103
- No project-local lookup. The council never reads
104
- `<project_root>/agents/settings/.ai-council.yml`, `scripts/ai_council`, or any
105
- project file. Keys are **top-level** (`enabled`, `defaults:`, `members:`). No
106
- `ai_council:` parent block; the legacy `ai_council.*` block under
107
- `.agent-settings.yml` was removed in ADR-093 — never read or recommend that
108
- path for council config.
104
+ There is **no project-local lookup.** The council never reads
105
+ `<project_root>/agents/settings/.ai-council.yml`, `scripts/ai_council`, or
106
+ any project file. Keys are **top-level** in the global file (`enabled`,
107
+ `defaults:`, `members:`). There is no `ai_council:` parent block, and the
108
+ legacy `ai_council.*` block under `.agent-settings.yml` was removed in
109
+ ADR-093 — never read or recommend that path for council config.
109
110
 
110
111
  ```
111
112
  THE COUNCIL CONFIG IS ALWAYS GLOBAL. NEVER SEARCH THE PROJECT FOR IT.
@@ -119,18 +120,18 @@ is authoritative: run `council:estimate` (Step 3) and read its exit code
119
120
  consumer repos, fresh worktrees, any CWD — with zero per-project setup.
120
121
  ```
121
122
 
122
- CLI is the single source of truth for the configured-check — do not hand-parse
123
- the YAML, and never eyeball the project tree, to second-guess it. Map its outcomes (Step 4 exit codes + the
124
- **CLI exits 2** cases below):
123
+ The CLI is the single source of truth for the configured-check — do not
124
+ hand-parse the YAML, and never eyeball the project tree, to second-guess it. Map its outcomes (Step 4 exit
125
+ codes, plus the **CLI exits 2** cases below):
125
126
 
126
- - `enabled: false` (top-level in resolved `.ai-council.yml`) → CLI exits 2 with
127
- `ai_council.enabled is false`. State that, offer to flip it on. Do not flip
128
- it autonomously.
129
- - No member has `enabled: true` (under top-level `members:`) → list install
130
- commands (`./agent-config keys:install-anthropic`,
127
+ - `enabled: false` (top-level in the resolved `.ai-council.yml`) → CLI exits 2
128
+ with `ai_council.enabled is false`. State that and offer to flip it on. Do
129
+ not flip it autonomously.
130
+ - No member has `enabled: true` (under top-level `members:`) → list the
131
+ install commands (`./agent-config keys:install-anthropic`,
131
132
  `./agent-config keys:install-openai`) and stop.
132
- - A member is enabled but its `*.key` file is missing or wrong-mode → tell the
133
- user which key to install. Do not fall back to env vars. Ever.
133
+ - A member is enabled but its `*.key` file is missing or has the wrong mode
134
+ → tell the user which key to install. Do not fall back to env vars. Ever.
134
135
 
135
136
  Load the price table via `scripts.ai_council.pricing.load_prices()`
136
137
  (auto-bootstraps `agents/runtime/.agent-prices.md` from defaults if missing). Run
@@ -8,6 +8,7 @@ cluster: council
8
8
  sub: design
9
9
  skills: [ai-council]
10
10
  description: Run the council on a design document, ADR, or architecture proposal — surfaces hidden coupling, missing rollback, and sequencing risk before commitment.
11
+ argument-hint: "[path]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "council on this design, second opinion on the ADR, external review of architecture proposal"
@@ -8,6 +8,7 @@ cluster: council
8
8
  sub: optimize
9
9
  skills: [ai-council]
10
10
  description: Run the council on an optimization target — perf hot path, memory pattern, query, or an /optimize-* output — for ranked, evidence-based suggestions instead of generic advice.
11
+ argument-hint: "[target]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "council on this perf hot path, second opinion on this optimization, external review of /optimize output"
@@ -8,6 +8,7 @@ cluster: council
8
8
  sub: pr
9
9
  skills: [ai-council]
10
10
  description: Pull a GitHub PR via gh CLI and run the council on the diff with a PR-specific neutrality preamble — read-only by default; comment posting is opt-in.
11
+ argument-hint: "[pr-number | url]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "council on PR #N, external review of pull request, second opinion on a PR"
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: council
4
4
  disable-model-invocation: true
5
+ argument-hint: "[default|pr|design|optimize|analysis|debate] [args]"
5
6
  pack: product-reasoning
6
7
  intent: "Poll external AIs for a neutral second opinion (pr/design/optimize/analysis lenses)"
7
8
  routes_to: [council-default, council-pr, council-design, council-analysis]
@@ -9,6 +9,7 @@ tier: 1
9
9
  visibility: advanced
10
10
  skills: [estimate-ticket]
11
11
  description: Estimate a Jira/Linear ticket before sprint planning — size + risk + split recommendation + uncertainty, sibling to /refine-ticket, ends with a close-prompt
12
+ argument-hint: "[ticket-key | url | text] [--personas=<list>] [--scale=<map>]"
12
13
  suggestion:
13
14
  eligible: true
14
15
  trigger_description: "how big is this ticket, estimate PROJ-123, should we split this"
@@ -0,0 +1,88 @@
1
+ ---
2
+ model_tier: inherit
3
+ name: explain-run
4
+ pack: meta
5
+ tier: 2
6
+ visibility: internal
7
+ description: "Read-only 'why did that happen' run report — resolved rule set, rules fired, artefact engagement, subagent dispatches, hook/loop/freshness state — even when the user just says 'explain the last run'."
8
+ argument-hint: "[--task <id>] [--since <ref>]"
9
+ skills: [agent-docs-writing]
10
+ suggestion:
11
+ eligible: false
12
+ rationale: "Package-internal maintainer diagnostic — only the event4u/agent-config repo runs this."
13
+ workspaces:
14
+ - agent-config-maintainer
15
+ packs:
16
+ - meta
17
+ ---
18
+
19
+ # explain-run
20
+
21
+ Thin runner for the read-only explainability engine `explain_run`
22
+ (`src/scripts/explain_run.ts`). Renders one Markdown
23
+ report answering **"why did the agent do that this run?"** entirely from
24
+ artefacts other parts of the suite already write — no new state, no capture,
25
+ no daemon.
26
+
27
+ The report covers: the resolved rule set (kernel vs trigger-routed, from
28
+ `dist/router.json`), rules the audit log actually observed firing, artefact
29
+ engagement (consulted vs applied), subagent dispatches (mode / tiers / token
30
+ deltas), a hook / loop / freshness state snapshot, and a parked list of
31
+ "why" questions this v0 cannot answer yet (surfaced, never silently omitted).
32
+
33
+ ## Instructions
34
+
35
+ ### 1. Resolve the window
36
+
37
+ Both arguments are optional and narrow the report:
38
+
39
+ - `--task <id>` — restrict to one task id seen in the audit log.
40
+ - `--since <ref>` — an ISO-8601 timestamp / date cutoff (e.g. `2026-07-01`).
41
+
42
+ With neither, the engine reports over all available artefacts. Pass through
43
+ exactly what the user gave — do not invent a task id or a date.
44
+
45
+ ### 2. Run the engine
46
+
47
+ ```bash
48
+ ./scripts-run src/scripts/explain_run [--task <id>] [--since <ISO-8601>]
49
+ ```
50
+
51
+ Exit codes:
52
+
53
+ - `0` → report rendered to stdout; continue to step 3.
54
+ - `2` → bad argument (unknown flag or unparsable `--since`); surface stderr
55
+ and stop.
56
+
57
+ The engine prints an honest `no data — <source> absent or empty` for any
58
+ section whose source file is missing — that is expected output, not an error.
59
+
60
+ ### 3. Surface the report
61
+
62
+ Show the engine's Markdown output. Do not re-summarize or re-order it — the
63
+ report already opens with a plain-language `## Summary`. If the user wants the
64
+ report written to a file, add `--output <path>` and confirm the write.
65
+
66
+ ## Rules
67
+
68
+ - **Read-only** — this command only reads on-disk artefacts. It never edits,
69
+ captures, or writes state (aside from an explicit `--output` file).
70
+ - **Do NOT commit or push** — the working tree is left to the user.
71
+ - **Never edit generated trees** — per [`source-of-truth`](../rules/source-of-truth.md),
72
+ the engine lives in `src/scripts/`; never hand-edit `dist/agent-src/` or any
73
+ tool projection.
74
+ - **Honest nulls, not invented rows** — the engine's `no data` lines are
75
+ correct output; do not fabricate rule firings or dispatches to fill them.
76
+
77
+ ## When NOT to use
78
+
79
+ - To *change* behaviour — this only explains it. Rule / routing edits go
80
+ through the normal source-of-truth flow.
81
+ - Kill criterion: the engine self-documents a delete-if-unused-after-3-releases
82
+ criterion; if this command sees zero use, retire it with the engine.
83
+
84
+ ## See also
85
+
86
+ - `explain_run` (`src/scripts/explain_run.ts`) — the read-only engine this wraps.
87
+ - `/agent-status` — live session snapshot (this is the retrospective, artefact-sourced view).
88
+ - [`source-of-truth`](../rules/source-of-truth.md) — edit `src/`, never generated trees.
@@ -7,6 +7,7 @@ visibility: internal
7
7
  cluster: feature
8
8
  sub: dev
9
9
  description: Full 7-phase feature development workflow for complex features.
10
+ argument-hint: "[description]"
10
11
  skills: [laravel, php-coder]
11
12
  suggestion:
12
13
  eligible: true
@@ -8,6 +8,7 @@ cluster: feature
8
8
  sub: explore
9
9
  skills: [laravel]
10
10
  description: Brainstorm and explore a feature idea before committing to a full plan
11
+ argument-hint: "[idea]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "brainstorm this idea, explore this feature concept"
@@ -8,6 +8,7 @@ cluster: feature
8
8
  sub: plan
9
9
  skills: [feature-planning]
10
10
  description: Interactively plan a feature — research, discuss, and create a structured feature document
11
+ argument-hint: "[description]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "plan this feature, create a feature spec for X"
@@ -8,6 +8,7 @@ cluster: feature
8
8
  sub: refactor
9
9
  skills: [laravel, php-coder]
10
10
  description: Refine and update an existing feature plan through interactive discussion
11
+ argument-hint: "[feature-name]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "update the feature plan, refine the feature spec"
@@ -8,6 +8,7 @@ cluster: feature
8
8
  sub: roadmap
9
9
  skills: [agent-docs-writing]
10
10
  description: Generate implementation roadmap(s) from a feature plan and link them
11
+ argument-hint: "[feature-name]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "turn this feature into a roadmap, generate the implementation roadmap"
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: feature
4
4
  disable-model-invocation: true
5
+ argument-hint: "[explore|plan|refactor|roadmap|dev] [args]"
5
6
  pack: engineering-base
6
7
  intent: "Feature-workflow dispatcher — explore, plan, refactor, roadmap, dev"
7
8
  routes_to: [feature-explore, feature-plan, feature-refactor, feature-roadmap, feature-dev]
@@ -39,7 +40,7 @@ commands with a single entry point + sub-command dispatch.
39
40
  ## Workflow ordering
40
41
 
41
42
  Typical sequence: `explore` → `plan` → `roadmap` → `dev` (or per-step
42
- impl). Use `refactor` whenever an existing plan needs an update.
43
+ implementation). Use `refactor` whenever an existing plan needs an update.
43
44
 
44
45
  ## Dispatch
45
46
 
@@ -8,6 +8,7 @@ cluster: fix
8
8
  sub: pr-comments
9
9
  skills: [php-coder, quality-tools]
10
10
  description: Fix, commit+push, reply to, then resolve all open review comments (bots + human reviewers) on a GitHub PR
11
+ argument-hint: "[pr-url]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "fix all PR review comments, resolve the review feedback"
@@ -194,6 +195,24 @@ Example: `🤖 Good catch, fixed.`
194
195
 
195
196
  If `false` or `.agent-settings.yml` doesn't exist, do NOT add the prefix.
196
197
 
198
+ ## Dedup + re-review scoping — before posting anything
199
+
200
+ Two guards run before any reply/comment is posted:
201
+
202
+ 1. **Dedup against existing comments (fuzzy, not just id).** Fetch **all**
203
+ existing PR comments paginated (`per_page: 100`, follow `Link` headers).
204
+ Beyond the exact comment-id + reply-marker check, suppress a would-be new
205
+ comment when it **matches an existing one** on: same file **and** within
206
+ **±3 lines** **and** overlapping title keywords. Log every suppressed item
207
+ ("suppressed: <file>:<line> — already raised by @<login> in #<id>") so the
208
+ suppression is auditable — never silently drop. This stops the bot from
209
+ re-raising a point a human reviewer already made three lines away.
210
+ 2. **Re-review scoping on reply rounds.** A reply round scopes to the
211
+ **changed lines** of the push it responds to; never raise **new** issues in
212
+ code the round did not touch (mirrors the `code-review` re-review-scoping
213
+ rule). A pre-existing issue you notice in untouched code is noted to the
214
+ user, not posted as a fresh blocking comment on someone else's PR.
215
+
197
216
  ## Replying via GitHub API
198
217
 
199
218
  Read `github.pr_reply_method` from `.agent-settings.yml` to determine the correct endpoint.
@@ -2,6 +2,7 @@
2
2
  model_tier: medium
3
3
  name: fix
4
4
  disable-model-invocation: true
5
+ argument-hint: "[ci|refs|portability|seeder|pr-comments|comments|quality] [args]"
5
6
  pack: engineering-base
6
7
  intent: "Fix-workflow dispatcher — ci, pr-comments, refs, seeder, portability, comments, quality"
7
8
  routes_to: [fix-ci, fix-pr-comments, fix-refs, fix-seeder, fix-portability, fix-comments, fix-quality]
@@ -40,7 +41,7 @@ with a single entry point + sub-command dispatch.
40
41
  | `/fix quality` | `commands/fix/quality.md` | Run the quality pipeline (type-checker / linter / formatter, PHP and/or JS/TS) and fix every error — auto-detects language from changed files |
41
42
 
42
43
  Sub-command names match the locked contract in
43
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
44
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
44
45
 
45
46
  ## Non-interactive & auto-detection
46
47
 
@@ -8,6 +8,7 @@ cluster: ghostwriter
8
8
  sub: delete
9
9
  skills: [ghostwriter]
10
10
  description: Hard-delete a ghostwriter profile at agents/reference/ghostwriter/<slug>.md after a two-step confirmation. No backup, no soft delete — the file is gone after acceptance.
11
+ argument-hint: "[slug]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "delete ghostwriter profile, remove public-figure voice, drop ghostwriter, retire captured profile"
@@ -7,6 +7,7 @@ visibility: internal
7
7
  cluster: ghostwriter
8
8
  sub: fetch
9
9
  description: Build or refresh a public-figure voice profile under agents/reference/ghostwriter/ from a URL or bare name; runs the public-figure attestation gate; delegates web-fetch/web-search to host.
10
+ argument-hint: "<url | name> [--force-refresh]"
10
11
  suggestion:
11
12
  eligible: true
12
13
  trigger_description: "fetch public figure writing voice, capture LinkedIn / blog / Substack style, build ghostwriter profile from name, refresh stale profile"
@@ -8,6 +8,7 @@ cluster: ghostwriter
8
8
  sub: show
9
9
  skills: [ghostwriter]
10
10
  description: Render a single ghostwriter profile in full — identity, style fingerprint, voice samples, taboos, source URLs. Read-only.
11
+ argument-hint: "[slug | index]"
11
12
  suggestion:
12
13
  eligible: true
13
14
  trigger_description: "show ghostwriter profile, inspect public-figure voice, view ghostwriter details, what does this profile contain"