@event4u/agent-config 1.15.0 → 1.17.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 (354) hide show
  1. package/.agent-src/commands/{agents-audit.md → agents/audit.md} +4 -3
  2. package/.agent-src/commands/{agents-cleanup.md → agents/cleanup.md} +12 -6
  3. package/.agent-src/commands/{agents-prepare.md → agents/prepare.md} +4 -3
  4. package/.agent-src/commands/agents.md +46 -0
  5. package/.agent-src/commands/bug-fix.md +1 -1
  6. package/.agent-src/commands/bug-investigate.md +2 -2
  7. package/.agent-src/commands/{chat-history-checkpoint.md → chat-history/checkpoint.md} +5 -5
  8. package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +5 -5
  9. package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
  10. package/.agent-src/commands/chat-history/show.md +107 -0
  11. package/.agent-src/commands/chat-history.md +33 -89
  12. package/.agent-src/commands/check-current-md.md +1 -1
  13. package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
  14. package/.agent-src/commands/commit.md +22 -2
  15. package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
  16. package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
  17. package/.agent-src/commands/context.md +44 -0
  18. package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
  19. package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
  20. package/.agent-src/commands/copilot-agents.md +44 -0
  21. package/.agent-src/commands/council/default.md +221 -0
  22. package/.agent-src/commands/council/design.md +97 -0
  23. package/.agent-src/commands/council/optimize.md +116 -0
  24. package/.agent-src/commands/council/pr.md +124 -0
  25. package/.agent-src/commands/council.md +54 -0
  26. package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
  27. package/.agent-src/commands/create-pr.md +49 -5
  28. package/.agent-src/commands/e2e-heal.md +1 -1
  29. package/.agent-src/commands/e2e-plan.md +1 -1
  30. package/.agent-src/commands/{feature-dev.md → feature/dev.md} +6 -3
  31. package/.agent-src/commands/{feature-explore.md → feature/explore.md} +5 -4
  32. package/.agent-src/commands/{feature-plan.md → feature/plan.md} +32 -5
  33. package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -3
  34. package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +7 -6
  35. package/.agent-src/commands/feature.md +52 -0
  36. package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -3
  37. package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -3
  38. package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -3
  39. package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -3
  40. package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -6
  41. package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -3
  42. package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -3
  43. package/.agent-src/commands/fix.md +54 -0
  44. package/.agent-src/commands/jira-ticket.md +1 -1
  45. package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +7 -6
  46. package/.agent-src/commands/judge/solo.md +90 -0
  47. package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +8 -7
  48. package/.agent-src/commands/judge.md +35 -70
  49. package/.agent-src/commands/{memory-add.md → memory/add.md} +7 -6
  50. package/.agent-src/commands/{memory-full.md → memory/load.md} +6 -5
  51. package/.agent-src/commands/{memory-promote.md → memory/promote.md} +6 -5
  52. package/.agent-src/commands/{propose-memory.md → memory/propose.md} +6 -5
  53. package/.agent-src/commands/memory.md +48 -0
  54. package/.agent-src/commands/mode.md +5 -5
  55. package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
  56. package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
  57. package/.agent-src/commands/module.md +44 -0
  58. package/.agent-src/commands/onboard.md +3 -3
  59. package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +5 -4
  60. package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -4
  61. package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -3
  62. package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +5 -4
  63. package/.agent-src/commands/optimize.md +48 -0
  64. package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
  65. package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
  66. package/.agent-src/commands/override.md +44 -0
  67. package/.agent-src/commands/review-changes.md +26 -1
  68. package/.agent-src/commands/review-routing.md +1 -1
  69. package/.agent-src/commands/{roadmap-create.md → roadmap/create.md} +33 -5
  70. package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
  71. package/.agent-src/commands/roadmap.md +44 -0
  72. package/.agent-src/commands/set-cost-profile.md +3 -3
  73. package/.agent-src/commands/sync-agent-settings.md +2 -2
  74. package/.agent-src/commands/{tests-create.md → tests/create.md} +5 -4
  75. package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
  76. package/.agent-src/commands/tests.md +44 -0
  77. package/.agent-src/commands/upstream-contribute.md +1 -1
  78. package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
  79. package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
  80. package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
  81. package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
  82. package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
  83. package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
  84. package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
  85. package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
  86. package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
  87. package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
  88. package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
  89. package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
  90. package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
  91. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
  92. package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
  93. package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -0
  94. package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
  95. package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
  96. package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
  97. package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
  98. package/.agent-src/contexts/judges/no-consolidate-rationale.md +102 -0
  99. package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -0
  100. package/.agent-src/personas/README.md +1 -1
  101. package/.agent-src/rules/agent-authority.md +24 -0
  102. package/.agent-src/rules/architecture.md +1 -1
  103. package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
  104. package/.agent-src/rules/artifact-engagement-recording.md +14 -70
  105. package/.agent-src/rules/ask-when-uncertain.md +28 -43
  106. package/.agent-src/rules/augment-portability.md +15 -61
  107. package/.agent-src/rules/augment-source-of-truth.md +27 -93
  108. package/.agent-src/rules/autonomous-execution.md +78 -114
  109. package/.agent-src/rules/capture-learnings.md +1 -1
  110. package/.agent-src/rules/chat-history-cadence.md +3 -3
  111. package/.agent-src/rules/chat-history-ownership.md +3 -3
  112. package/.agent-src/rules/chat-history-visibility.md +3 -3
  113. package/.agent-src/rules/cli-output-handling.md +10 -76
  114. package/.agent-src/rules/command-suggestion-policy.md +93 -0
  115. package/.agent-src/rules/commit-conventions.md +17 -14
  116. package/.agent-src/rules/commit-policy.md +14 -42
  117. package/.agent-src/rules/context-hygiene.md +3 -3
  118. package/.agent-src/rules/direct-answers.md +34 -49
  119. package/.agent-src/rules/docker-commands.md +5 -5
  120. package/.agent-src/rules/docs-sync.md +16 -70
  121. package/.agent-src/rules/e2e-testing.md +1 -1
  122. package/.agent-src/rules/guidelines.md +4 -4
  123. package/.agent-src/rules/improve-before-implement.md +2 -2
  124. package/.agent-src/rules/language-and-tone.md +50 -133
  125. package/.agent-src/rules/minimal-safe-diff.md +3 -3
  126. package/.agent-src/rules/missing-tool-handling.md +28 -22
  127. package/.agent-src/rules/model-recommendation.md +4 -4
  128. package/.agent-src/rules/no-cheap-questions.md +82 -0
  129. package/.agent-src/rules/no-roadmap-references.md +73 -0
  130. package/.agent-src/rules/non-destructive-by-default.md +15 -49
  131. package/.agent-src/rules/onboarding-gate.md +5 -5
  132. package/.agent-src/rules/package-ci-checks.md +21 -61
  133. package/.agent-src/rules/preservation-guard.md +64 -29
  134. package/.agent-src/rules/review-routing-awareness.md +26 -45
  135. package/.agent-src/rules/roadmap-progress-sync.md +28 -96
  136. package/.agent-src/rules/role-mode-adherence.md +2 -2
  137. package/.agent-src/rules/scope-control.md +65 -46
  138. package/.agent-src/rules/security-sensitive-stop.md +9 -9
  139. package/.agent-src/rules/size-enforcement.md +1 -1
  140. package/.agent-src/rules/skill-quality.md +16 -48
  141. package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +7 -4
  142. package/.agent-src/rules/think-before-action.md +55 -45
  143. package/.agent-src/rules/token-efficiency.md +4 -4
  144. package/.agent-src/rules/tool-safety.md +19 -16
  145. package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +27 -41
  146. package/.agent-src/rules/user-interaction.md +16 -71
  147. package/.agent-src/rules/verify-before-complete.md +12 -67
  148. package/.agent-src/scripts/update_roadmap_progress.py +9 -4
  149. package/.agent-src/skills/ai-council/SKILL.md +335 -0
  150. package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
  151. package/.agent-src/skills/api-testing/SKILL.md +1 -1
  152. package/.agent-src/skills/blade-ui/SKILL.md +1 -1
  153. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
  154. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
  155. package/.agent-src/skills/check-refs/SKILL.md +59 -40
  156. package/.agent-src/skills/command-routing/SKILL.md +1 -1
  157. package/.agent-src/skills/command-writing/SKILL.md +1 -1
  158. package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
  159. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +7 -7
  160. package/.agent-src/skills/developer-like-execution/SKILL.md +6 -6
  161. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
  162. package/.agent-src/skills/flux/SKILL.md +31 -11
  163. package/.agent-src/skills/git-workflow/SKILL.md +1 -1
  164. package/.agent-src/skills/github-ci/SKILL.md +2 -2
  165. package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
  166. package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
  167. package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
  168. package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
  169. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
  170. package/.agent-src/skills/lint-skills/SKILL.md +57 -39
  171. package/.agent-src/skills/livewire/SKILL.md +1 -1
  172. package/.agent-src/skills/md-language-check/SKILL.md +61 -39
  173. package/.agent-src/skills/override-management/SKILL.md +7 -7
  174. package/.agent-src/skills/php-coder/SKILL.md +1 -1
  175. package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
  176. package/.agent-src/skills/quality-tools/SKILL.md +2 -2
  177. package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
  178. package/.agent-src/skills/readme-reviewer/SKILL.md +31 -30
  179. package/.agent-src/skills/readme-writing/SKILL.md +79 -54
  180. package/.agent-src/skills/readme-writing-package/SKILL.md +51 -48
  181. package/.agent-src/skills/receiving-code-review/SKILL.md +53 -48
  182. package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
  183. package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
  184. package/.agent-src/skills/review-routing/SKILL.md +2 -2
  185. package/.agent-src/skills/rule-writing/SKILL.md +1 -1
  186. package/.agent-src/skills/security/SKILL.md +7 -2
  187. package/.agent-src/skills/security-audit/SKILL.md +7 -3
  188. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
  189. package/.agent-src/skills/skill-writing/SKILL.md +3 -3
  190. package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
  191. package/.agent-src/skills/systematic-debugging/SKILL.md +69 -61
  192. package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
  193. package/.agent-src/skills/test-performance/SKILL.md +0 -1
  194. package/.agent-src/skills/traefik/SKILL.md +4 -4
  195. package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
  196. package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
  197. package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +30 -28
  198. package/.agent-src/templates/agent-settings.md +8 -8
  199. package/.agent-src/templates/contexts/auth-model.md +1 -1
  200. package/.agent-src/templates/scripts/README.md +2 -2
  201. package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
  202. package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
  203. package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
  204. package/.agent-src/templates/scripts/telemetry_record.py +14 -1
  205. package/.claude-plugin/marketplace.json +31 -12
  206. package/AGENTS.md +11 -9
  207. package/CHANGELOG.md +213 -2
  208. package/README.md +43 -44
  209. package/config/agent-settings.template.yml +58 -1
  210. package/config/gitignore-block.txt +3 -0
  211. package/docs/architecture.md +5 -7
  212. package/docs/catalog.md +359 -0
  213. package/docs/contracts/STABILITY.md +46 -1
  214. package/docs/contracts/adr-chat-history-split.md +1 -3
  215. package/docs/contracts/adr-command-suggestion.md +3 -5
  216. package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
  217. package/docs/contracts/adr-product-ui-track.md +5 -8
  218. package/docs/contracts/adr-prompt-driven-execution.md +3 -4
  219. package/docs/contracts/agent-memory-contract.md +8 -13
  220. package/docs/contracts/artifact-engagement-flow.md +7 -10
  221. package/docs/contracts/command-clusters.md +56 -46
  222. package/docs/contracts/command-suggestion-flow.md +4 -6
  223. package/docs/contracts/context-paths.md +99 -0
  224. package/docs/contracts/file-ownership-matrix.json +6722 -0
  225. package/docs/contracts/file-ownership-matrix.md +134 -0
  226. package/docs/contracts/implement-ticket-flow.md +8 -11
  227. package/docs/contracts/linear-ai-rules-inclusion.md +1 -2
  228. package/docs/contracts/linear-ai-three-layers.md +0 -2
  229. package/docs/contracts/load-context-budget-model.md +178 -0
  230. package/docs/contracts/load-context-schema.md +184 -0
  231. package/docs/contracts/rule-interactions.md +0 -1
  232. package/docs/contracts/rule-interactions.yml +96 -0
  233. package/docs/contracts/rule-priority-hierarchy.md +87 -0
  234. package/docs/contracts/ui-track-flow.md +8 -18
  235. package/docs/customization.md +16 -0
  236. package/docs/end-to-end-walkthroughs.md +165 -0
  237. package/docs/getting-started.md +29 -10
  238. package/docs/github-topics.md +12 -3
  239. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
  240. package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
  241. package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
  242. package/docs/guidelines/php/git.md +164 -0
  243. package/docs/migrations/commands-1.15.0.md +1 -1
  244. package/docs/showcase.md +9 -4
  245. package/docs/skills-catalog.md +14 -8
  246. package/docs/ui-track-mental-model.md +2 -2
  247. package/llms.txt +13 -7
  248. package/package.json +1 -1
  249. package/scripts/_one_off_phase4_dispatch_latency.py +108 -0
  250. package/scripts/_one_off_phase6_trigger_jaccard.py +92 -0
  251. package/scripts/_phase2_shim_helper.py +109 -0
  252. package/scripts/agent-config +33 -0
  253. package/scripts/ai_council/__init__.py +39 -0
  254. package/scripts/ai_council/_default_prices.py +41 -0
  255. package/scripts/ai_council/_one_off_2a4_acceptance.py +208 -0
  256. package/scripts/ai_council/_one_off_context_layer_v1_estimate.py +67 -0
  257. package/scripts/ai_council/_one_off_context_layer_v1_review.py +292 -0
  258. package/scripts/ai_council/_one_off_followups_review.py +259 -0
  259. package/scripts/ai_council/_one_off_nondestructive_inline_audit.py +209 -0
  260. package/scripts/ai_council/_one_off_phase_2a_budget_rebalance.py +257 -0
  261. package/scripts/ai_council/_one_off_phase_2a_post_revert.py +197 -0
  262. package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
  263. package/scripts/ai_council/_one_off_roundtrip.py +106 -0
  264. package/scripts/ai_council/_one_off_rule_hardening_v1.py +251 -0
  265. package/scripts/ai_council/_one_off_structural_open_questions.py +232 -0
  266. package/scripts/ai_council/_one_off_structural_optimization.py +144 -0
  267. package/scripts/ai_council/_one_off_structural_v3_gaps.py +252 -0
  268. package/scripts/ai_council/_one_off_structural_v3_review.py +240 -0
  269. package/scripts/ai_council/budget_guard.py +172 -0
  270. package/scripts/ai_council/bundler.py +261 -0
  271. package/scripts/ai_council/clients.py +381 -0
  272. package/scripts/ai_council/modes.py +127 -0
  273. package/scripts/ai_council/orchestrator.py +350 -0
  274. package/scripts/ai_council/pricing.py +213 -0
  275. package/scripts/ai_council/project_context.py +159 -0
  276. package/scripts/ai_council/prompts.py +232 -0
  277. package/scripts/ai_council/session.py +144 -0
  278. package/scripts/check_always_budget.py +444 -0
  279. package/scripts/check_augmentignore.py +69 -0
  280. package/scripts/check_cluster_patterns.py +159 -0
  281. package/scripts/check_command_count_messaging.py +127 -0
  282. package/scripts/check_context_paths.py +201 -0
  283. package/scripts/check_no_roadmap_refs.py +155 -0
  284. package/scripts/check_phase_coupling.py +148 -0
  285. package/scripts/check_portability.py +57 -0
  286. package/scripts/check_public_catalog_links.py +122 -0
  287. package/scripts/check_references.py +33 -3
  288. package/scripts/check_roadmap_trackable.py +111 -0
  289. package/scripts/check_safety_floor_untouched.py +125 -0
  290. package/scripts/command_suggester/cooldown.py +1 -1
  291. package/scripts/command_suggester/loader.py +4 -1
  292. package/scripts/compress.py +59 -13
  293. package/scripts/generate_index.py +270 -0
  294. package/scripts/generate_ownership_matrix.py +323 -0
  295. package/scripts/hooks/augment-roadmap-progress.sh +57 -0
  296. package/scripts/install.py +49 -28
  297. package/scripts/install_anthropic_key.sh +5 -0
  298. package/scripts/install_openai_key.sh +106 -0
  299. package/scripts/lint_load_context.py +163 -0
  300. package/scripts/lint_no_new_atomic_commands.py +12 -11
  301. package/scripts/requirements-evals.txt +1 -0
  302. package/scripts/roadmap_progress_hook.py +159 -0
  303. package/scripts/schemas/command.schema.json +22 -1
  304. package/scripts/schemas/rule.schema.json +10 -0
  305. package/scripts/skill_linter.py +13 -4
  306. package/scripts/sync_agent_settings.py +26 -3
  307. package/scripts/update_counts.py +16 -4
  308. package/scripts/update_prices.py +124 -0
  309. package/.agent-src/guidelines/php/git.md +0 -96
  310. package/.agent-src/rules/command-suggestion.md +0 -134
  311. /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
  312. /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
  313. /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
  314. /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
  315. /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
  316. /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
  317. /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
  318. /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
  319. /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
  320. /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
  321. /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
  322. /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
  323. /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
  324. /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
  325. /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
  326. /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
  327. /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
  328. /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
  329. /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
  330. /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
  331. /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
  332. /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
  333. /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
  334. /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
  335. /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
  336. /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
  337. /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
  338. /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
  339. /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
  340. /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
  341. /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
  342. /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
  343. /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
  344. /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
  345. /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
  346. /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
  347. /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
  348. /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
  349. /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
  350. /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
  351. /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
  352. /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
  353. /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
  354. /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
@@ -30,6 +30,9 @@ rules:
30
30
  - commit-policy
31
31
  - ask-when-uncertain
32
32
  - verify-before-complete
33
+ - agent-authority
34
+ - language-and-tone
35
+ - direct-answers
33
36
 
34
37
  pairs:
35
38
 
@@ -140,3 +143,96 @@ pairs:
140
143
  evidence:
141
144
  - .agent-src.uncompressed/rules/commit-policy.md#the-iron-law
142
145
  - .agent-src.uncompressed/rules/autonomous-execution.md#commit-policy--see-commit-policy
146
+
147
+ - id: authority-x-ndd
148
+ rules: [agent-authority, non-destructive-by-default]
149
+ relation: defers_to
150
+ conflict: >-
151
+ Both rules speak to "may the agent do this autonomously?" — the
152
+ Priority Index points to the Hard Floor as Band 1.
153
+ resolution: >-
154
+ `agent-authority` is a router, never a source of truth. The Hard
155
+ Floor's Iron Law lives verbatim in `non-destructive-by-default`
156
+ and wins every conflict. The index points; it never restates.
157
+ evidence:
158
+ - .agent-src.uncompressed/rules/agent-authority.md#index-rules
159
+ - .agent-src.uncompressed/rules/non-destructive-by-default.md#the-iron-law
160
+
161
+ - id: authority-x-scope-control
162
+ rules: [agent-authority, scope-control]
163
+ relation: defers_to
164
+ conflict: >-
165
+ Permission Gate questions (push, branch, PR, architectural change)
166
+ surface during routine work — the index labels Band 2.
167
+ resolution: >-
168
+ The Priority Index routes to `scope-control` for git-shape and
169
+ scope-expansion decisions. Index never narrows or weakens the
170
+ gate; canonical rule wins on any wording divergence.
171
+ evidence:
172
+ - .agent-src.uncompressed/rules/agent-authority.md#index-rules
173
+ - .agent-src.uncompressed/rules/scope-control.md#git-operations--permission-gated
174
+
175
+ - id: authority-x-commit-policy
176
+ rules: [agent-authority, commit-policy]
177
+ relation: defers_to
178
+ conflict: >-
179
+ The "about to commit" decision arises — the index labels it Band 3
180
+ (Commit Default = never, with four exceptions).
181
+ resolution: >-
182
+ `commit-policy` Iron Law is canonical. The Priority Index points
183
+ to it; it does not enumerate the four exceptions itself. Future
184
+ edits to commit-policy do not require Index updates unless the
185
+ band ordering changes.
186
+ evidence:
187
+ - .agent-src.uncompressed/rules/agent-authority.md#index-rules
188
+ - .agent-src.uncompressed/rules/commit-policy.md#exceptions--when-committing-is-allowed
189
+
190
+ - id: scope-x-commit-policy
191
+ rules: [scope-control, commit-policy]
192
+ relation: narrows
193
+ conflict: >-
194
+ `scope-control` § "Git operations" forbids committing without
195
+ explicit permission as one of several git-op gates; `commit-policy`
196
+ narrows the commit case to a never-ask default with four named
197
+ exceptions.
198
+ resolution: >-
199
+ `commit-policy` is the narrower, canonical rule for the commit
200
+ sub-case. `scope-control` continues to govern push, branch, PR,
201
+ tag operations. On commit specifics, defer to `commit-policy`;
202
+ on other git ops, defer to `scope-control`.
203
+ evidence:
204
+ - .agent-src.uncompressed/rules/scope-control.md#git-operations--permission-gated
205
+ - .agent-src.uncompressed/rules/commit-policy.md#the-iron-law
206
+
207
+ - id: ask-x-direct-answers
208
+ rules: [ask-when-uncertain, direct-answers]
209
+ relation: complements
210
+ conflict: >-
211
+ A vague request triggers `ask-when-uncertain` (must ask), but
212
+ `direct-answers` Iron Law 3 (brevity by default) discourages
213
+ overlong replies; could read as tension when the question needs
214
+ framing.
215
+ resolution: >-
216
+ Both rules apply. `ask-when-uncertain` decides *whether* to ask
217
+ and demands one question per turn with numbered options.
218
+ `direct-answers` shapes *how* the question reads — no flattery,
219
+ no padding, shortest form that fully states the choice.
220
+ evidence:
221
+ - .agent-src.uncompressed/rules/ask-when-uncertain.md#iron-law--one-question-per-turn-always
222
+ - .agent-src.uncompressed/rules/direct-answers.md#iron-law-3--brevity-by-default
223
+
224
+ - id: language-x-direct-answers
225
+ rules: [language-and-tone, direct-answers]
226
+ relation: complements
227
+ conflict: >-
228
+ User writes German; agent must mirror language AND avoid flattery,
229
+ invented facts, padding. Both rules speak to reply shape.
230
+ resolution: >-
231
+ `language-and-tone` decides the language token (mirror user's last
232
+ chat message); `direct-answers` decides content discipline (no
233
+ flattery, verified facts, brevity). They compose: a brief, direct,
234
+ flattery-free reply in the user's language. Neither weakens the
235
+ other.
236
+ evidence:
237
+ - .agent-src.uncompressed/rules/language-and-tone.md#iron-law--mirror-the-users-language-always
238
+ - .agent-src.uncompressed/rules/direct-answers.md#iron-law-1--no-flattery
@@ -0,0 +1,87 @@
1
+ ---
2
+ stability: beta
3
+ ---
4
+
5
+ # Rule Priority Hierarchy
6
+
7
+ > **Audience:** anyone reading or editing `.agent-src.uncompressed/rules/*.md`,
8
+ > or trying to predict which rule wins when several fire on the same turn.
9
+ > **Machine-readable counterpart:** [`rule-interactions.yml`](rule-interactions.yml)
10
+ > (linted by `scripts/lint_rule_interactions.py`).
11
+ > **Diagram + pair-by-pair narrative:** [`rule-interactions.md`](rule-interactions.md).
12
+
13
+ This document is the **ordered list** view. The matrix files describe
14
+ how *pairs* of rules interact; this file states **which band wins**
15
+ when the bands themselves disagree.
16
+
17
+ ## The four-line principle
18
+
19
+ ```
20
+ Safety beats autonomy.
21
+ Scope beats helpfulness.
22
+ Verification beats completion.
23
+ User intent beats command suggestion.
24
+ ```
25
+
26
+ Every band below is a concrete instance of one of those four lines.
27
+ When in doubt, walk the list top-down and stop at the first band that
28
+ fires — that band's canonical rule decides the turn.
29
+
30
+ ## The ordered list
31
+
32
+ | Band | Rule | What it gates | Lifts under |
33
+ |---|---|---|---|
34
+ | 1 | [`non-destructive-by-default`](../../.agent-src.uncompressed/rules/non-destructive-by-default.md) | Prod-trunk merge · deploy · push · prod data/infra · whimsical bulk deletion · bulk-deletion or infra commit | **Never.** Explicit user confirmation *this turn* only. |
35
+ | 2 | [`security-sensitive-stop`](../../.agent-src.uncompressed/rules/security-sensitive-stop.md) | Auth · billing · tenant boundaries · secrets · file uploads · webhooks · public endpoints | Threat-model pass completed and recorded *before* the edit. |
36
+ | 3 | [`scope-control`](../../.agent-src.uncompressed/rules/scope-control.md) | Git ops (branch · PR · tag · push · merge · rebase) · architectural changes · new libraries · scope expansion | Explicit user permission *this turn* or unrevoked standing instruction. |
37
+ | 4 | [`ask-when-uncertain`](../../.agent-src.uncompressed/rules/ask-when-uncertain.md) | Ambiguous requirements · vague-request triggers · fenced steps | Concrete evidence resolves the ambiguity, **or** user answers the single question. |
38
+ | 5 | [`commit-policy`](../../.agent-src.uncompressed/rules/commit-policy.md) | Any `git commit` | Four exceptions only — explicit "commit now", standing instruction, `/commit*` invocation, roadmap authorization. |
39
+ | 6 | [`verify-before-complete`](../../.agent-src.uncompressed/rules/verify-before-complete.md) | "Done" / "complete" claims · suggestions to commit, push, or PR | Fresh verification evidence in *this* message. |
40
+ | 7 | [`autonomous-execution`](../../.agent-src.uncompressed/rules/autonomous-execution.md) | Trivial-vs-blocking classification · autonomy opt-in detection | Per-step decision; never above bands 1–6. |
41
+ | 8 | [`command-suggestion-policy`](../../.agent-src.uncompressed/rules/command-suggestion-policy.md) | Surfacing slash-command matches as numbered options | User always picks; nothing auto-executes. |
42
+ | 9 | [`language-and-tone`](../../.agent-src.uncompressed/rules/language-and-tone.md) | First-token language of every reply · `.md` always English | Mirror the user's last chat message — no momentum exception. |
43
+
44
+ **Read direction:** top-to-bottom is *priority on conflict*, not chronology.
45
+ A turn typically touches several bands at once; the hierarchy decides
46
+ which one's Iron Law gets the final say.
47
+
48
+ ## Index rules
49
+
50
+ - **Higher band wins.** A band-3 permission does not lift band-1; a band-5
51
+ commit exception does not lift band-3. Each band's "Lifts under" column
52
+ is its own escape hatch and only its own.
53
+ - **No band restates an Iron Law.** Iron Laws live verbatim in the
54
+ canonical rule files. This hierarchy points; it does not paraphrase.
55
+ - **Bands 1–2 are *Hard Floors*.** No autonomy setting, no roadmap step,
56
+ no standing instruction lifts them. See
57
+ [`agent-authority`](../../.agent-src.uncompressed/rules/agent-authority.md)
58
+ § Index rules for the matching authority statement.
59
+ - **Unsure → ask.** [`ask-when-uncertain`](../../.agent-src.uncompressed/rules/ask-when-uncertain.md)
60
+ is the universal escape hatch when the band is unclear.
61
+
62
+ ## Worked examples
63
+
64
+ | Situation | Bands that fire | Winner | Why |
65
+ |---|---|---|---|
66
+ | Standing autonomy + roadmap step says "merge to `main`" | 1, 7 | **1** | Hard Floor predates and outranks autonomy; surface the merge, ask. |
67
+ | `/commit:in-chunks` on a diff that removes a directory | 1, 5 | **1** | Commit exception authorizes *commits*, not *bulk deletions*. Confirm diff this turn. |
68
+ | User asks "improve this" with no metric named | 4, 7 | **4** | Vague-request trigger fires before any autonomy decision; ask the one clarifying question. |
69
+ | Editing `app/Auth/PasswordReset.php` mid-feature | 2, 7 | **2** | Security-sensitive surface stops the edit until threat-model is recorded. |
70
+ | Agent about to claim "ready to merge" with no fresh test output | 5, 6 | **6** | Verification gate fires before the commit/push question is even valid. |
71
+ | User types free-form prompt that matches `/refine-ticket` | 8, 9 | **8 + 9** | Suggestion runs as numbered options, mirrored to user's language. No conflict. |
72
+
73
+ ## Cross-references
74
+
75
+ - [`agent-authority`](../../.agent-src.uncompressed/rules/agent-authority.md) — the four-band authority router (bands 1–3 + 7 of this hierarchy).
76
+ - [`rule-interactions.md`](rule-interactions.md) — pairwise interaction narrative + Mermaid diagram.
77
+ - [`rule-interactions.yml`](rule-interactions.yml) — machine-readable, CI-linted matrix.
78
+ - [`STABILITY.md`](STABILITY.md) — what the `stability: beta` tag means for breaking changes.
79
+
80
+ ## Stability
81
+
82
+ `beta` — the band ordering and four-line principle are settled, but
83
+ the *worked examples* and the inclusion of band 8 (`command-suggestion-policy`)
84
+ in the public hierarchy have not yet shipped through one major release.
85
+ A breaking change to the band ordering is a SemVer-minor-pre-1.0 bump
86
+ or a SemVer-major bump after 1.0. Adding a row, refining a "Lifts under"
87
+ clause, or expanding the worked-examples table is non-breaking.
@@ -4,8 +4,7 @@ stability: beta
4
4
 
5
5
  # UI Track — Flow Contract
6
6
 
7
- > Technical contracts for the UI directive sets shipped under
8
- > [`road-to-product-ui-track.md`](../../agents/roadmaps/road-to-product-ui-track.md).
7
+ > Technical contracts for the UI directive sets.
9
8
  > Sibling of [`implement-ticket-flow.md`](implement-ticket-flow.md) — that
10
9
  > doc covers `backend`; this one covers `ui`, `ui-trivial`, and the
11
10
  > `mixed` set that stitches both.
@@ -14,11 +13,10 @@ stability: beta
14
13
  > - **Status:** Phase 1–6 shipped — audit / design / apply / review /
15
14
  > polish handlers live under
16
15
  > [`.agent-src.uncompressed/templates/scripts/work_engine/directives/ui/`](../../.agent-src.uncompressed/templates/scripts/work_engine/directives/ui/).
17
- > Mixed (Phase 4) under `directives/mixed/`. `ui-trivial` (Phase 2 Step 6)
18
- > under `directives/ui_trivial/`. R4 (Visual Review Loop) added the
16
+ > Mixed under `directives/mixed/`. `ui-trivial` under
17
+ > `directives/ui_trivial/`. R4 (Visual Review Loop) added the
19
18
  > a11y gate, the preview envelope, and a polish-termination rewrite
20
- > that splits subjective ceilings from objective a11y blocks — see
21
- > [`road-to-visual-review-loop.md`](../../agents/roadmaps/road-to-visual-review-loop.md).
19
+ > that splits subjective ceilings from objective a11y blocks.
22
20
  > Golden Transcripts GT-U1..U4, U7, U8, U9..U12 plus GT-U5 (mixed
23
21
  > flow), GT-U6A/B (stack dispatch), and R4's GT-U13..U15 (a11y polish,
24
22
  > a11y ceiling, preview render failure) pin happy-path, ambiguity,
@@ -42,8 +40,6 @@ sentinels that release each gate.
42
40
  `SKILL.md` files.
43
41
  - A migration guide for the schema — see
44
42
  [`implement-ticket-flow.md`](implement-ticket-flow.md#state-schema-v1).
45
- - A roadmap — phased delivery lives in
46
- [`road-to-product-ui-track.md`](../../agents/roadmaps/road-to-product-ui-track.md).
47
43
 
48
44
  ## The four directive sets
49
45
 
@@ -323,16 +319,10 @@ suite asserts every `BLOCKED` path has a matching declaration.
323
319
  - [`implement-ticket-flow.md`](implement-ticket-flow.md) — sibling
324
320
  contract for the `backend` set; covers `DeliveryState`, schema v1,
325
321
  hooks, persona policies, replay protocol.
326
- - [`road-to-product-ui-track.md`](../../agents/roadmaps/road-to-product-ui-track.md)
327
- phased delivery and Golden-Transcript matrix.
328
- - [`road-to-product-ui-track-followup.md`](../../agents/roadmaps/archive/road-to-product-ui-track-followup.md)
329
- — pinned GT-U5 (mixed flow), GT-U6A/B (stack dispatch), GT-U7
330
- (trivial happy path), GT-U8 (trivial reclassification).
331
- - [`road-to-visual-review-loop.md`](../../agents/roadmaps/road-to-visual-review-loop.md)
332
- — R4 contract: a11y gate, preview envelope, polish-termination
333
- rewrite. Pinned by GT-U13 (a11y polish), GT-U14 (a11y ceiling),
334
- GT-U15 (preview render failure).
322
+ - [`adr-product-ui-track.md`](adr-product-ui-track.md) — locked
323
+ decisions for the UI track (R3) and the visual-review-loop
324
+ amendment (R4: a11y gate, preview envelope, polish-termination).
335
325
  - [`existing-ui-audit` SKILL](../../.agent-src.uncompressed/skills/existing-ui-audit/SKILL.md)
336
326
  — producer of `state.ui_audit`.
337
- - [`ui-audit-before-build` rule](../../.agent-src.uncompressed/rules/ui-audit-before-build.md)
327
+ - [`ui-audit-gate` rule](../../.agent-src.uncompressed/rules/ui-audit-gate.md)
338
328
  — the always-on rule that mirrors the audit gate at the agent layer.
@@ -58,6 +58,22 @@ those sections.
58
58
  | `chat_history.max_size_kb` | per profile | Max file size before overflow handling (see matrix below). |
59
59
  | `chat_history.on_overflow` | per profile | `rotate` drops oldest, `compress` marks for summarization (see matrix below). |
60
60
  | `onboarding.onboarded` | `false` | Whether `/onboard` has run. The `onboarding-gate` rule prompts for `/onboard` while this is `false`. |
61
+ | `ai_council.enabled` | `false` | Master switch for the `/council` command. Even when enabled, every consultation asks before spending tokens. |
62
+ | `ai_council.members.<provider>.enabled` | `false` | Per-provider opt-in (`anthropic`, `openai`). Tokens live in `~/.config/agent-config/<provider>.key` (mode 0600), never in this file. |
63
+ | `ai_council.members.<provider>.model` | per provider | Which model the provider sends the query to (e.g. `claude-sonnet-4-5`, `gpt-4o`). |
64
+ | `ai_council.cost_budget.max_input_tokens` | `50000` | Hard cap on summed input tokens per `/council` invocation. |
65
+ | `ai_council.cost_budget.max_output_tokens` | `20000` | Hard cap on summed output tokens per `/council` invocation. |
66
+ | `ai_council.cost_budget.max_calls` | `10` | Maximum council members per invocation. |
67
+ | `ai_council.cost_budget.max_total_usd` | `0.0` | Per-invocation USD ceiling. `0` disables (token caps still apply). |
68
+ | `ai_council.cost_budget.daily_limit_usd` | `0.0` | Rolling 24h USD ceiling across all `/council` calls. `0` disables. Ledger lives at `~/.config/agent-config/council-spend.jsonl` (mode 0600). |
69
+
70
+ > **Experimental.** AI Council is not yet validated by external users. API costs apply per consultation.
71
+
72
+ Council API tokens are installed via `./agent-config keys:install-anthropic`
73
+ and `./agent-config keys:install-openai` — they prompt on `/dev/tty`, write to
74
+ `~/.config/agent-config/<provider>.key` with mode `0600`, and never accept env
75
+ vars. The `/council` command refuses to run if the key file's permissions
76
+ drift.
61
77
 
62
78
  ### Cost profiles
63
79
 
@@ -0,0 +1,165 @@
1
+ # End-to-end walkthroughs
2
+
3
+ Four cycle-by-cycle traces of the engine commands — backend ticket,
4
+ free-form prompt, UI track, and a blocked path. Each walkthrough cites
5
+ a checked-in **golden transcript** under [`tests/golden/baseline/`](../tests/golden/baseline/);
6
+ the transcripts are regenerated by `python3 -m tests.golden.capture` and
7
+ diffed in CI, so the cycle counts and directive names below stay
8
+ in sync with the engine's actual behavior.
9
+
10
+ > Behavior demos (autonomy, commit policy, hard floor, verification)
11
+ > live in [`showcase.md`](showcase.md). This file is the cycle-trace
12
+ > companion: input → directives → outcome.
13
+
14
+ ---
15
+
16
+ ## 1. Backend ticket → ship — `/implement-ticket`
17
+
18
+ **Anchor:** [`tests/golden/baseline/GT-1/`](../tests/golden/baseline/GT-1/) ·
19
+ [`tickets/gt-1-happy.json`](../tests/golden/sandbox/tickets/gt-1-happy.json)
20
+
21
+ **Input** — a ticket payload with three concrete acceptance criteria:
22
+
23
+ ```text
24
+ GT-1-MULT — Add multiply(a, b) to the toy calculator
25
+ AC: signature multiply(a: int, b: int) -> int returning the product;
26
+ edge cases multiply(0, n)=0, multiply(-2, 3)=-6;
27
+ pytest test_multiply_returns_product in tests/test_calculator.py.
28
+ ```
29
+
30
+ **Trace** — five cycles, exit code `0` on the last:
31
+
32
+ | Cycle | Directive | What the agent does |
33
+ |---|---|---|
34
+ | c1 | `create-plan` | Builds the three-step plan (impl, test, run) |
35
+ | c2 | `apply-plan` | Edits `src/calculator.py` and `tests/test_calculator.py` |
36
+ | c3 | `run-tests` | `pytest` — `4 passed` (targeted scope) |
37
+ | c4 | `review-changes` | Four judges (bug, security, test-coverage, code-quality) — `success` |
38
+ | c5 | _(none)_ | Engine emits the delivery report, exits `0` |
39
+
40
+ **Outcome** — verified delivery report at
41
+ [`GT-1/delivery-report.md`](../tests/golden/baseline/GT-1/delivery-report.md):
42
+ plan, changes, test verdict, judge findings, suggested next command
43
+ (`/commit`).
44
+
45
+ **Anchored in:** [`commands/implement-ticket.md`](../.agent-src/commands/implement-ticket.md)
46
+ (eight-step contract) · [`work_engine/dispatcher.py`](../.agent-src/templates/scripts/work_engine/dispatcher.py)
47
+ (`STEP_ORDER`).
48
+
49
+ ---
50
+
51
+ ## 2. Free-form prompt → ship — `/work`
52
+
53
+ **Anchor:** [`tests/golden/baseline/GT-P1/`](../tests/golden/baseline/GT-P1/) ·
54
+ [`prompts/gt-p1-high.txt`](../tests/golden/sandbox/prompts/gt-p1-high.txt)
55
+
56
+ **Input** — one line, no AC, no ticket:
57
+
58
+ ```text
59
+ Add modulo(a, b) to src/calculator.py — return a % b for ints
60
+ ```
61
+
62
+ **Trace** — six cycles. The extra cycle vs. GT-1 is the
63
+ `refine-prompt` step that reconstructs the prompt into AC + assumptions
64
+ + confidence band before any plan runs:
65
+
66
+ | Cycle | Directive | Effect |
67
+ |---|---|---|
68
+ | c1 | `refine-prompt` | High confidence — AC reconstructed, no halt |
69
+ | c2 | `create-plan` | Two-step plan |
70
+ | c3 | `apply-plan` | Edits `src/calculator.py` |
71
+ | c4 | `run-tests` | targeted pass |
72
+ | c5 | `review-changes` | judges green |
73
+ | c6 | _(none)_ | delivery report, exit `0` |
74
+
75
+ **Outcome** — `success`. The same dispatcher and judges as GT-1; only
76
+ the input envelope (`input.kind="prompt"` vs `"ticket"`) differs.
77
+
78
+ **Anchored in:** [`commands/work.md`](../.agent-src/commands/work.md) ·
79
+ [`skills/refine-prompt/SKILL.md`](../.agent-src/skills/refine-prompt/SKILL.md)
80
+ · [`docs/contracts/adr-prompt-driven-execution.md`](contracts/adr-prompt-driven-execution.md).
81
+
82
+ ---
83
+
84
+ ## 3. UI improvement → review-loop ship — `/work` (UI track)
85
+
86
+ **Anchor:** [`tests/golden/baseline/GT-U2/`](../tests/golden/baseline/GT-U2/) ·
87
+ [`diffs/gt-u2-improve-diff.diff`](../tests/golden/sandbox/diffs/gt-u2-improve-diff.diff)
88
+
89
+ **Input** — a Blade diff that adds a `<label>` and a heading change to
90
+ `resources/views/contact.blade.php`. The input shape (a diff, not a
91
+ prompt) routes the engine onto the **UI track** instead of the
92
+ generic implement loop.
93
+
94
+ **Trace** — six cycles, none of them `create-plan` / `apply-plan` /
95
+ `run-tests`. The UI track has its own directive set:
96
+
97
+ | Cycle | Directive | Effect |
98
+ |---|---|---|
99
+ | c1 | `existing-ui-audit` | Inventory existing components / tokens before any new design |
100
+ | c2 | `ui-design-brief` | Brief for the proposed change |
101
+ | c3 | _(none — `_no_directive`)_ | Engine threads forward to the apply step |
102
+ | c4 | `ui-apply-plain` | Apply the diff |
103
+ | c5 | `ui-design-review-plain` | Design review judge |
104
+ | c6 | _(none)_ | delivery report, exit `0` |
105
+
106
+ **Outcome** — `success`. The audit-first ordering is enforced by the
107
+ [`ui-audit-gate`](../.agent-src/rules/ui-audit-gate.md) rule: any
108
+ non-trivial UI change without `state.ui_audit` halts before design.
109
+
110
+ **Anchored in:** [`docs/ui-track-mental-model.md`](ui-track-mental-model.md) ·
111
+ [`rules/ui-audit-gate.md`](../.agent-src/rules/ui-audit-gate.md) ·
112
+ [`skills/existing-ui-audit/SKILL.md`](../.agent-src/skills/existing-ui-audit/SKILL.md).
113
+
114
+ ---
115
+
116
+ ## 4. Blocked on ambiguity — `/implement-ticket` halts
117
+
118
+ **Anchor:** [`tests/golden/baseline/GT-2/`](../tests/golden/baseline/GT-2/) ·
119
+ [`tickets/gt-2-ambiguity.json`](../tests/golden/sandbox/tickets/gt-2-ambiguity.json)
120
+
121
+ **Input** — a ticket whose AC list contains a vague entry:
122
+
123
+ ```text
124
+ GT-2-DIV — divide(a, b)
125
+ AC: ... vague acceptance criteria at position(s) 2 ...
126
+ ```
127
+
128
+ **Trace** — one cycle, exit code `1`:
129
+
130
+ | Cycle | Directive | Effect |
131
+ |---|---|---|
132
+ | c1 | _(none)_ | Engine refuses to plan; surfaces refine prompt |
133
+
134
+ **Halt surface** — the engine does not write a plan, does not edit any
135
+ file, and emits a numbered-options block (verbatim from
136
+ [`GT-2/halt-markers.json`](../tests/golden/baseline/GT-2/halt-markers.json)):
137
+
138
+ ```text
139
+ > Ticket GT-2-DIV is missing: vague acceptance criteria at position(s) 2.
140
+ > 1. Run `/refine-ticket GT-2-DIV` and re-invoke `/implement-ticket`
141
+ > 2. Provide the missing details in chat — I'll merge them into the ticket
142
+ > 3. Abandon this ticket — too vague to implement
143
+ ```
144
+
145
+ **Outcome** — `halt_unhandled`; the run is recorded as **blocked** in
146
+ the outcome-aware telemetry (`outcomes: ["blocked"]`, see
147
+ [P2 #9](../agents/roadmaps/road-to-1-15-followups.md#phase-9--outcome-aware-telemetry-p2-9)).
148
+ No work is committed, no auto-guess is taken.
149
+
150
+ **Anchored in:** [`rules/ask-when-uncertain.md`](../.agent-src/rules/ask-when-uncertain.md)
151
+ · [`rules/non-destructive-by-default.md`](../.agent-src/rules/non-destructive-by-default.md)
152
+ · [`skills/refine-ticket/SKILL.md`](../.agent-src/skills/refine-ticket/SKILL.md).
153
+
154
+ ---
155
+
156
+ ## Reproducing these locally
157
+
158
+ ```bash
159
+ python3 -m tests.golden.capture --scenarios GT-1 GT-P1 GT-U2 GT-2
160
+ ```
161
+
162
+ Each scenario writes a fresh `transcript.json`, `delivery-report.md`,
163
+ and `halt-markers.json` under `tests/golden/baseline/<id>/`. CI diffs
164
+ the regenerated output against the committed baseline; drift fails the
165
+ build via the `roadmap-progress-check` and `golden-replay` tasks.
@@ -1,23 +1,39 @@
1
1
  # Getting Started
2
2
 
3
+ `agent-config` is a stack-agnostic orchestration contract for coding
4
+ agents. The installer detects the project shape (Composer / npm / both /
5
+ neither) and wires the matching glue. **Pick the entrypoint that
6
+ matches the project**, not the language you happen to prefer.
7
+
3
8
  ## Installation
4
9
 
10
+ The installer is the same orchestrator across stacks — it reads
11
+ `composer.json` and/or `package.json`, syncs the payload, and generates
12
+ the tool-specific glue. Pick one entrypoint:
13
+
5
14
  ```bash
6
- # Composer (PHP) two steps: install, then run the orchestrator
15
+ # Composer-based projects (PHP / Laravel / Symfony / Zend / Laminas)
7
16
  composer require --dev event4u/agent-config
8
17
  php vendor/bin/install.php
9
18
  # Equivalent: bash vendor/event4u/agent-config/scripts/install
10
19
 
11
- # npm (JavaScript/TypeScript) the orchestrator runs via postinstall
20
+ # npm-based projects (Next.js / React / Node / Vue / plain JS/TS)
12
21
  npm install --save-dev @event4u/agent-config
13
- # Re-run or pick a profile:
22
+ # Postinstall runs the orchestrator. Re-run or pick a profile:
14
23
  # bash node_modules/@event4u/agent-config/scripts/install --profile=balanced
24
+
25
+ # Mixed Composer + npm projects (Laravel + Inertia, Symfony + Vue, …)
26
+ # Run both — the orchestrator merges results, no double-write.
27
+
28
+ # Stack-less or polyglot repos (no Composer, no npm)
29
+ git clone https://github.com/event4u-app/agent-config /tmp/agent-config
30
+ bash /tmp/agent-config/scripts/install --target "$PWD"
15
31
  ```
16
32
 
17
33
  That's it. Your agent now follows your team's standards. The orchestrator
18
34
  runs a bash payload sync and a Python bridge generator (Python 3 is
19
35
  recommended; without it the payload sync still runs). No Task or Make
20
- required for end users.
36
+ required for end users — those are contributor-only.
21
37
 
22
38
  ## Project CLI — `./agent-config`
23
39
 
@@ -99,7 +115,7 @@ Your agent is now:
99
115
  - **Respecting your codebase** — no conflicting patterns
100
116
  - **Following standards** — consistent code quality
101
117
 
102
- This is enforced automatically by 55 rules. No configuration needed.
118
+ This is enforced automatically by 58 rules. No configuration needed.
103
119
 
104
120
  ---
105
121
 
@@ -131,13 +147,15 @@ Your agent now understands slash commands:
131
147
  |---|---|
132
148
  | `/commit` | Stage and commit with Conventional Commits |
133
149
  | `/create-pr` | Create PR with Jira-linked description |
134
- | `/fix-ci` | Fetch and fix GitHub Actions failures |
150
+ | `/fix ci` | Fetch and fix GitHub Actions failures |
151
+ | `/optimize skills` | Audit skills, find duplicates, run linter |
152
+ | `/feature plan` | Interactively plan a feature |
135
153
  | `/quality-fix` | Run and fix all quality checks |
136
154
  | `/chat-history` | Inspect the persistent chat-history log |
137
155
  | `/chat-history-resume` | Recover context after a crashed or switched session |
138
156
  | `/chat-history-clear` | Wipe the chat-history log (with confirmation) |
139
157
 
140
- → [Browse all 77 commands](../.agent-src/commands/)
158
+ → [Browse all 95 active commands](../.agent-src/commands/)
141
159
 
142
160
  ---
143
161
 
@@ -149,8 +167,9 @@ for every profile), the agent keeps a JSONL log of your conversation in
149
167
  rotates at the size configured in the profile (`128 KB` on `minimal`,
150
168
  `256 KB` on `balanced`, `512 KB` on `full`).
151
169
 
152
- When a chat opens and finds an existing log, the agent runs a
153
- 4-state ownership check and chooses the right flow:
170
+ When a chat opens and finds an existing log, the host agent is
171
+ instructed to run a 4-state ownership check and choose the right
172
+ flow:
154
173
 
155
174
  - **match** — this chat already owns the file. Append silently.
156
175
  - **foreign** — a different session's file. You get 3 options:
@@ -173,7 +192,7 @@ See the [`chat-history` rule](../.agent-src/rules/chat-history-ownership.md) and
173
192
  ## Next steps
174
193
 
175
194
  1. **Stay on `minimal`** — use it for a few days, see if the difference is noticeable
176
- 2. **Try commands** — `/commit`, `/create-pr`, `/fix-ci` are great starting points
195
+ 2. **Try commands** — `/commit`, `/create-pr`, `/fix ci` are great starting points
177
196
  3. **Upgrade when ready** — switch to `balanced` to let the runtime dispatcher execute skills that declare a shell command
178
197
  4. **Customize** — add [project overrides](customization.md) for your team's specific patterns
179
198
 
@@ -13,8 +13,12 @@ ai-coding
13
13
  agent-skills
14
14
  agent-rules
15
15
  governance
16
+ orchestration
16
17
  laravel
17
18
  php
19
+ nextjs
20
+ nodejs
21
+ typescript
18
22
  devcontainer
19
23
  augment-agent
20
24
  claude-code
@@ -30,8 +34,9 @@ agentskills-standard
30
34
  | `agent-skills` | Aligns with the [Agent Skills](https://agentskills.io) community spec |
31
35
  | `agent-rules` | Complementary — rules govern behavior, skills provide expertise |
32
36
  | `governance` | Differentiates from prompt collections |
33
- | `laravel` | Primary domainLaravel projects are the main audience |
34
- | `php` | Broader PHP audience |
37
+ | `orchestration` | Captures the core identity a deterministic orchestration contract / state machine |
38
+ | `laravel`, `php` | Reference-implementation stack currently the deepest skill density |
39
+ | `nextjs`, `nodejs`, `typescript` | Parallel skill sets for JS/TS surfaces (project-analysis, UI directives) |
35
40
  | `devcontainer` | One of our 4 core concerns |
36
41
  | `augment-agent`, `claude-code`, `copilot` | Tool-specific discovery |
37
42
  | `agentskills-standard` | SKILL.md format is compatible with the agentskills.io spec |
@@ -53,8 +58,12 @@ gh repo edit event4u-app/agent-config \
53
58
  --add-topic agent-skills \
54
59
  --add-topic agent-rules \
55
60
  --add-topic governance \
61
+ --add-topic orchestration \
56
62
  --add-topic laravel \
57
63
  --add-topic php \
64
+ --add-topic nextjs \
65
+ --add-topic nodejs \
66
+ --add-topic typescript \
58
67
  --add-topic devcontainer \
59
68
  --add-topic augment-agent \
60
69
  --add-topic claude-code \
@@ -69,7 +78,7 @@ curl -X PUT \
69
78
  -H "Authorization: Bearer $GITHUB_TOKEN" \
70
79
  -H "Accept: application/vnd.github+json" \
71
80
  https://api.github.com/repos/event4u-app/agent-config/topics \
72
- -d '{"names":["ai-coding","agent-skills","agent-rules","governance","laravel","php","devcontainer","augment-agent","claude-code","copilot","agentskills-standard"]}'
81
+ -d '{"names":["ai-coding","agent-skills","agent-rules","governance","orchestration","laravel","php","nextjs","nodejs","typescript","devcontainer","augment-agent","claude-code","copilot","agentskills-standard"]}'
73
82
  ```
74
83
 
75
84
  ## Verify