@event4u/agent-config 1.16.0 → 1.18.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 (224) 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/{chat-history-checkpoint.md → chat-history/checkpoint.md} +4 -4
  6. package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +4 -4
  7. package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
  8. package/.agent-src/commands/chat-history/show.md +107 -0
  9. package/.agent-src/commands/chat-history.md +33 -89
  10. package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
  11. package/.agent-src/commands/commit.md +22 -2
  12. package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
  13. package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
  14. package/.agent-src/commands/context.md +44 -0
  15. package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
  16. package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
  17. package/.agent-src/commands/copilot-agents.md +44 -0
  18. package/.agent-src/commands/council/default.md +221 -0
  19. package/.agent-src/commands/{council-design.md → council/design.md} +6 -5
  20. package/.agent-src/commands/{council-optimize.md → council/optimize.md} +7 -6
  21. package/.agent-src/commands/{council-pr.md → council/pr.md} +6 -5
  22. package/.agent-src/commands/council.md +47 -212
  23. package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
  24. package/.agent-src/commands/create-pr.md +26 -5
  25. package/.agent-src/commands/{feature-dev.md → feature/dev.md} +5 -10
  26. package/.agent-src/commands/{feature-explore.md → feature/explore.md} +4 -8
  27. package/.agent-src/commands/{feature-plan.md → feature/plan.md} +4 -8
  28. package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -8
  29. package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +6 -10
  30. package/.agent-src/commands/feature.md +6 -12
  31. package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -8
  32. package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -8
  33. package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -8
  34. package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -8
  35. package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -11
  36. package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -8
  37. package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -8
  38. package/.agent-src/commands/fix.md +7 -13
  39. package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +4 -3
  40. package/.agent-src/commands/judge/solo.md +90 -0
  41. package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +4 -3
  42. package/.agent-src/commands/judge.md +35 -70
  43. package/.agent-src/commands/{memory-add.md → memory/add.md} +4 -3
  44. package/.agent-src/commands/{memory-full.md → memory/load.md} +4 -3
  45. package/.agent-src/commands/{memory-promote.md → memory/promote.md} +4 -3
  46. package/.agent-src/commands/{propose-memory.md → memory/propose.md} +4 -3
  47. package/.agent-src/commands/memory.md +48 -0
  48. package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
  49. package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
  50. package/.agent-src/commands/module.md +44 -0
  51. package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +4 -8
  52. package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -9
  53. package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -8
  54. package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +4 -8
  55. package/.agent-src/commands/optimize.md +4 -10
  56. package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
  57. package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
  58. package/.agent-src/commands/override.md +44 -0
  59. package/.agent-src/commands/{roadmap-create.md → roadmap/create.md} +4 -3
  60. package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
  61. package/.agent-src/commands/roadmap.md +44 -0
  62. package/.agent-src/commands/{tests-create.md → tests/create.md} +4 -3
  63. package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
  64. package/.agent-src/commands/tests.md +44 -0
  65. package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
  66. package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
  67. package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
  68. package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
  69. package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
  70. package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
  71. package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
  72. package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
  73. package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
  74. package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
  75. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
  76. package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
  77. package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -0
  78. package/.agent-src/contexts/judges/no-consolidate-rationale.md +102 -0
  79. package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -0
  80. package/.agent-src/rules/artifact-engagement-recording.md +13 -69
  81. package/.agent-src/rules/ask-when-uncertain.md +27 -42
  82. package/.agent-src/rules/augment-portability.md +15 -61
  83. package/.agent-src/rules/augment-source-of-truth.md +27 -93
  84. package/.agent-src/rules/cli-output-handling.md +10 -76
  85. package/.agent-src/rules/command-suggestion-policy.md +18 -59
  86. package/.agent-src/rules/commit-conventions.md +17 -14
  87. package/.agent-src/rules/context-hygiene.md +6 -0
  88. package/.agent-src/rules/direct-answers.md +35 -59
  89. package/.agent-src/rules/docker-commands.md +5 -5
  90. package/.agent-src/rules/docs-sync.md +15 -69
  91. package/.agent-src/rules/language-and-tone.md +48 -72
  92. package/.agent-src/rules/missing-tool-handling.md +28 -22
  93. package/.agent-src/rules/no-cheap-questions.md +39 -53
  94. package/.agent-src/rules/no-roadmap-references.md +73 -0
  95. package/.agent-src/rules/onboarding-gate.md +7 -0
  96. package/.agent-src/rules/package-ci-checks.md +21 -61
  97. package/.agent-src/rules/preservation-guard.md +64 -29
  98. package/.agent-src/rules/review-routing-awareness.md +24 -43
  99. package/.agent-src/rules/roadmap-progress-sync.md +31 -65
  100. package/.agent-src/rules/rule-type-governance.md +28 -0
  101. package/.agent-src/rules/security-sensitive-stop.md +8 -8
  102. package/.agent-src/rules/skill-quality.md +16 -48
  103. package/.agent-src/rules/slash-command-routing-policy.md +7 -4
  104. package/.agent-src/rules/think-before-action.md +52 -42
  105. package/.agent-src/rules/tool-safety.md +19 -16
  106. package/.agent-src/rules/ui-audit-gate.md +24 -38
  107. package/.agent-src/rules/user-interaction.md +13 -68
  108. package/.agent-src/skills/ai-council/SKILL.md +2 -0
  109. package/.agent-src/skills/api-testing/SKILL.md +1 -1
  110. package/.agent-src/skills/check-refs/SKILL.md +59 -40
  111. package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
  112. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +5 -5
  113. package/.agent-src/skills/developer-like-execution/SKILL.md +4 -4
  114. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
  115. package/.agent-src/skills/flux/SKILL.md +30 -10
  116. package/.agent-src/skills/github-ci/SKILL.md +2 -2
  117. package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
  118. package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
  119. package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
  120. package/.agent-src/skills/lint-skills/SKILL.md +57 -39
  121. package/.agent-src/skills/md-language-check/SKILL.md +61 -39
  122. package/.agent-src/skills/override-management/SKILL.md +5 -5
  123. package/.agent-src/skills/quality-tools/SKILL.md +2 -2
  124. package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
  125. package/.agent-src/skills/readme-reviewer/SKILL.md +30 -29
  126. package/.agent-src/skills/readme-writing/SKILL.md +78 -53
  127. package/.agent-src/skills/readme-writing-package/SKILL.md +50 -47
  128. package/.agent-src/skills/receiving-code-review/SKILL.md +52 -47
  129. package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
  130. package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
  131. package/.agent-src/skills/security/SKILL.md +7 -2
  132. package/.agent-src/skills/security-audit/SKILL.md +7 -3
  133. package/.agent-src/skills/systematic-debugging/SKILL.md +68 -60
  134. package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
  135. package/.agent-src/skills/test-performance/SKILL.md +0 -1
  136. package/.agent-src/skills/traefik/SKILL.md +4 -4
  137. package/.agent-src/skills/verify-completion-evidence/SKILL.md +28 -26
  138. package/.agent-src/templates/roadmaps.md +4 -0
  139. package/.claude-plugin/marketplace.json +22 -11
  140. package/AGENTS.md +2 -2
  141. package/CHANGELOG.md +125 -1
  142. package/README.md +18 -17
  143. package/docs/architecture.md +4 -6
  144. package/docs/catalog.md +67 -39
  145. package/docs/contracts/STABILITY.md +13 -7
  146. package/docs/contracts/adr-chat-history-split.md +1 -3
  147. package/docs/contracts/adr-command-suggestion.md +0 -2
  148. package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
  149. package/docs/contracts/adr-product-ui-track.md +3 -6
  150. package/docs/contracts/adr-prompt-driven-execution.md +3 -4
  151. package/docs/contracts/agent-memory-contract.md +6 -11
  152. package/docs/contracts/artifact-engagement-flow.md +6 -9
  153. package/docs/contracts/command-clusters.md +56 -46
  154. package/docs/contracts/command-suggestion-flow.md +1 -3
  155. package/docs/contracts/context-paths.md +99 -0
  156. package/docs/contracts/file-ownership-matrix.json +6722 -0
  157. package/docs/contracts/file-ownership-matrix.md +134 -0
  158. package/docs/contracts/implement-ticket-flow.md +6 -9
  159. package/docs/contracts/linear-ai-rules-inclusion.md +0 -1
  160. package/docs/contracts/linear-ai-three-layers.md +0 -2
  161. package/docs/contracts/load-context-budget-model.md +258 -0
  162. package/docs/contracts/load-context-schema.md +21 -3
  163. package/docs/contracts/roadmap-complexity-standard.md +137 -0
  164. package/docs/contracts/rule-interactions.md +0 -1
  165. package/docs/contracts/rule-priority-hierarchy.md +1 -1
  166. package/docs/contracts/ui-track-flow.md +7 -17
  167. package/docs/customization.md +2 -0
  168. package/docs/getting-started.md +5 -4
  169. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
  170. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
  171. package/docs/guidelines/agent-infra/direct-answers-demos.md +145 -0
  172. package/docs/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
  173. package/package.json +1 -1
  174. package/scripts/_phase2_shim_helper.py +109 -0
  175. package/scripts/agent-config +30 -0
  176. package/scripts/ai_council/one_off_archive/2026-05/README.md +45 -0
  177. package/scripts/ai_council/one_off_archive/2026-05/_one_off_2a4_acceptance.py +208 -0
  178. package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +206 -0
  179. package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_estimate.py +67 -0
  180. package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_review.py +292 -0
  181. package/scripts/ai_council/one_off_archive/2026-05/_one_off_followups_review.py +259 -0
  182. package/scripts/ai_council/one_off_archive/2026-05/_one_off_nondestructive_inline_audit.py +209 -0
  183. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase4_dispatch_latency.py +108 -0
  184. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase6_trigger_jaccard.py +92 -0
  185. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_budget_rebalance.py +257 -0
  186. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_post_revert.py +197 -0
  187. package/scripts/ai_council/one_off_archive/2026-05/_one_off_rule_hardening_v1.py +251 -0
  188. package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_open_questions.py +232 -0
  189. package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +144 -0
  190. package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_v3_gaps.py +252 -0
  191. package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_v3_review.py +240 -0
  192. package/scripts/build_rule_trigger_matrix.py +360 -0
  193. package/scripts/check_always_budget.py +402 -45
  194. package/scripts/check_cluster_patterns.py +159 -0
  195. package/scripts/check_command_count_messaging.py +14 -7
  196. package/scripts/check_context_paths.py +201 -0
  197. package/scripts/check_no_roadmap_refs.py +155 -0
  198. package/scripts/check_one_off_location.py +81 -0
  199. package/scripts/check_phase_coupling.py +148 -0
  200. package/scripts/check_portability.py +2 -0
  201. package/scripts/check_references.py +35 -2
  202. package/scripts/check_safety_floor_untouched.py +125 -0
  203. package/scripts/command_suggester/loader.py +4 -1
  204. package/scripts/compress.py +64 -15
  205. package/scripts/context_hygiene_hook.py +173 -0
  206. package/scripts/generate_index.py +6 -2
  207. package/scripts/generate_ownership_matrix.py +323 -0
  208. package/scripts/hooks/augment-context-hygiene.sh +55 -0
  209. package/scripts/hooks/augment-onboarding-gate.sh +55 -0
  210. package/scripts/hooks/augment-roadmap-progress.sh +57 -0
  211. package/scripts/install.py +105 -45
  212. package/scripts/lint_examples.py +98 -0
  213. package/scripts/lint_no_new_atomic_commands.py +12 -11
  214. package/scripts/lint_roadmap_complexity.py +127 -0
  215. package/scripts/onboarding_gate_hook.py +137 -0
  216. package/scripts/requirements-evals.txt +1 -0
  217. package/scripts/roadmap_progress_hook.py +159 -0
  218. package/scripts/schemas/command.schema.json +4 -3
  219. package/scripts/schemas/rule.schema.json +5 -0
  220. package/scripts/skill_linter.py +1 -0
  221. package/scripts/sync_agent_settings.py +25 -2
  222. package/scripts/update_counts.py +7 -0
  223. /package/scripts/ai_council/{_one_off_rebalancing_audit.py → one_off_archive/2026-05/_one_off_rebalancing_audit.py} +0 -0
  224. /package/scripts/ai_council/{_one_off_roundtrip.py → one_off_archive/2026-05/_one_off_roundtrip.py} +0 -0
@@ -9,15 +9,17 @@ source: package
9
9
  ## When to use
10
10
 
11
11
  * Implementation of a feature or bug fix is complete on a development branch
12
- * All planned commits are in, user is ready to hand off
12
+ * All planned commits are in, the user is ready to hand off
13
13
  * You are about to say "done" and suggest the next action
14
- * Branch has been idle and the user wants to decide its fate
14
+ * The branch has been idle and the user wants to decide its fate
15
15
 
16
16
  Do NOT use when:
17
17
 
18
18
  * Still implementing — use targeted verification, not the ship gate
19
- * A PR already exists and is mid-review — use [`receiving-code-review`](../receiving-code-review/SKILL.md)
20
- * Only documentation changed — simplify to commit + PR without full gate
19
+ * A PR already exists and is mid-review — use
20
+ [`receiving-code-review`](../receiving-code-review/SKILL.md)
21
+ * Only documentation changed and no tests apply — simplify to
22
+ commit + PR without the full gate
21
23
 
22
24
  ## Goal
23
25
 
@@ -37,29 +39,33 @@ how work gets lost.
37
39
 
38
40
  ## Procedure
39
41
 
40
- ### 1. Inspect branch state
42
+ ### 1. Inspect the current branch state
41
43
 
42
- Before presenting options, check:
44
+ Before presenting any options, gather context. Do not assume — check:
43
45
 
44
- * `git status` — clean or dirty?
45
- * `git log --oneline <base>..HEAD` — what commits are actually on this branch
46
- * `git branch --show-current` — branch name to operate on
46
+ * `git status` — clean, or still dirty?
47
+ * `git log --oneline <base>..HEAD` — what commits are actually on this
48
+ branch?
49
+ * `git branch --show-current` — the branch name you will be operating on
47
50
  * Remote state — is the branch pushed? Is there an open PR already?
48
51
 
49
- PR already exists **stop**, route to [`receiving-code-review`](../receiving-code-review/SKILL.md)
50
- or [`fix-pr-comments`](../../commands/fix-pr-comments.md).
52
+ If a PR already exists for this branch, **stop** this is not a
53
+ finishing step, route to [`receiving-code-review`](../receiving-code-review/SKILL.md)
54
+ or [`fix-pr-comments`](../../commands/fix-pr-comments.md) instead.
51
55
 
52
56
  ### 2. Verify readiness
53
57
 
54
- Run the full end-of-work gate — see [`verify-before-complete`](../verify-before-complete/SKILL.md):
58
+ Run the full end-of-work gate before presenting any options — see
59
+ [`verify-before-complete`](../verify-before-complete/SKILL.md):
55
60
 
56
61
  1. Targeted tests green
57
62
  2. Full test suite green
58
63
  3. Quality pipeline (PHPStan → Rector dry-run → ECS → PHPStan) green
59
- 4. `git status` clean — no unstaged files, no stray files
60
- 5. Branch pushed or explicitly marked local-only
64
+ 4. `git status` clean — nothing unstaged, no stray files
65
+ 5. Branch is pushed or explicitly marked local-only
61
66
 
62
- Any step fails → **stop**. Report failure, do not present ship options.
67
+ If any step fails → **stop**. Report the failure, do not present ship
68
+ options. Fixing the failure comes first.
63
69
 
64
70
  ### 3. Determine the base branch
65
71
 
@@ -71,9 +77,12 @@ BASE=main
71
77
  BASE=$(git config branch.$(git branch --show-current).merge | sed 's|refs/heads/||')
72
78
  ```
73
79
 
74
- Ambiguous ask: *"This branch splits from `<guess>` — correct?"*.
80
+ If ambiguous, ask: *"This branch splits from `<guess>` — correct?"*
81
+ before presenting options.
75
82
 
76
- ### 4. Present four options — numbered, no narration
83
+ ### 4. Present the four options — numbered, no narration
84
+
85
+ Ask the user exactly one question:
77
86
 
78
87
  ```
79
88
  Implementation is verified. What now?
@@ -84,21 +93,25 @@ Implementation is verified. What now?
84
93
  4. Discard all work on this branch
85
94
  ```
86
95
 
87
- No recommendations unless the user asks.
96
+ Do not add recommendations unless the user asks. Each option leads to
97
+ a different sub-procedure (steps 5a–5d).
88
98
 
89
99
  ### 5a. Option 1 — Open a PR
90
100
 
91
- 1. Update branch → [`prepare-for-review`](../../commands/prepare-for-review.md)
92
- 2. Self-review → [`review-changes`](../../commands/review-changes.md)
93
- 3. Write description → [`create-pr-description`](../../commands/create-pr-description.md)
94
- 4. Open PR → [`create-pr`](../../commands/create-pr.md)
95
- 5. Confirm PR opened green, not red
101
+ 1. Ensure the branch is up to date with the base
102
+ [`prepare-for-review`](../../commands/prepare-for-review.md)
103
+ 2. Self-review the full diff → [`review-changes`](../../commands/review-changes.md)
104
+ 3. Write the PR description → [`create-pr-description`](../../commands/create-pr-description.md)
105
+ 4. Open the PR [`create-pr`](../../commands/create-pr.md)
106
+ 5. Confirm the PR opened green, not red
96
107
 
97
- Surrounding discipline → [`requesting-code-review`](../requesting-code-review/SKILL.md).
108
+ See [`requesting-code-review`](../requesting-code-review/SKILL.md) for
109
+ the surrounding discipline.
98
110
 
99
111
  ### 5b. Option 2 — Merge locally
100
112
 
101
- Use only for no-PR projects (solo, spike, private tooling).
113
+ Use only when the project policy is "no PR required" (solo repos,
114
+ spike branches, private tooling). For team repos, default to Option 1.
102
115
 
103
116
  ```bash
104
117
  git checkout <base-branch>
@@ -110,17 +123,18 @@ git merge --no-ff <feature-branch>
110
123
  git branch -d <feature-branch>
111
124
  ```
112
125
 
113
- Post-merge test fails → `git reset --hard ORIG_HEAD`, fix on feature branch, restart.
126
+ If the post-merge test run fails → `git reset --hard ORIG_HEAD`, fix
127
+ on the feature branch, restart from Option 1/2.
114
128
 
115
129
  ### 5c. Option 3 — Keep as-is
116
130
 
117
- * Push to origin if not already pushed
118
- * Report branch name and last commit SHA
131
+ * Push the branch to origin if not already pushed (safeguards the work)
132
+ * Report the branch name and the last commit SHA back to the user
119
133
  * Do not delete the worktree, do not force-push
120
134
 
121
135
  ### 5d. Option 4 — Discard
122
136
 
123
- **Confirmation gate** — typed answer, not "y":
137
+ **Confirmation gate** — require a typed answer, not "y":
124
138
 
125
139
  ```
126
140
  This will permanently remove:
@@ -140,65 +154,87 @@ git branch -D <feature-branch>
140
154
  git push origin --delete <feature-branch>
141
155
  ```
142
156
 
143
- Log discarded SHAs so work can be recovered via `git reflog`.
157
+ Log the discarded SHAs so the work can be recovered via `git reflog`
158
+ within the reflog TTL if needed.
144
159
 
145
160
  ### 6. Clean up worktrees
146
161
 
147
- Branch in a `git worktree`:
162
+ If the branch lives in a `git worktree`:
148
163
 
149
- * Options 1, 2, 4 → `git worktree remove <path>` after terminal state
164
+ * Options 1, 2, 4 → `git worktree remove <path>` after the branch
165
+ terminal state
150
166
  * Option 3 → keep the worktree
151
167
 
152
168
  ## Output format
153
169
 
154
- After chosen option completes:
170
+ After the chosen option completes, report:
155
171
 
156
- 1. **What happened** — one sentence ("PR #123 opened", "Merged as `abcdef`", "Discarded")
172
+ 1. **What happened** — single sentence ("PR #123 opened", "Merged
173
+ into main as `abcdef`", "Branch discarded")
157
174
  2. **Evidence** — exit codes / PR URL / commit SHA
158
- 3. **Cleanup state** — worktree removed/kept, branch deleted/retained
159
- 4. **Next step** — "Awaiting review", "Main is one commit ahead", etc.
175
+ 3. **Cleanup state** — worktree removed / kept, branch deleted /
176
+ retained
177
+ 4. **Next step** — e.g. "Awaiting review" / "Main is one commit ahead"
160
178
 
161
179
  ## Gotchas
162
180
 
163
- * Option 1 on red CI — PR opens but not reviewable; check CI status
164
- * Option 2 with ff-only on diverged base silently aborts — check exit code
165
- * Option 4 on a branch that is upstream of another local branch — orphans the dependent
166
- * Force-push after PR open can lose reviewer line-comments
167
- * `-d` refuses unmerged; `-D` forces only use `-D` inside confirmed discard
168
- * Stacked PRs base `main` opening PR to `main` invalidates the stack
181
+ * Option 1 (PR) on a red CI — the PR opens but is not actually
182
+ reviewable; check the CI status before reporting success
183
+ * Option 2 (local merge) with fast-forward only on a diverged base
184
+ silently fails the merge command aborts but the report can look
185
+ successful if the exit code is not checked
186
+ * Option 4 (discard) on a branch that is already the upstream of
187
+ another local branch — the dependent branch is orphaned
188
+ * Force-pushing after a PR is opened can lose the reviewer's
189
+ line-comments — prefer additional commits during review
190
+ * `git branch -d` vs `-D` — lowercase `-d` refuses unmerged branches,
191
+ uppercase `-D` forces; only use `-D` inside the confirmed discard
192
+ flow
193
+ * On stacked PRs, the base is **not** `main` — opening a PR to `main`
194
+ invalidates the stack
169
195
 
170
196
  ## Do NOT
171
197
 
172
- * Do NOT present ship options while tests or quality are red
173
- * Do NOT add rationale to the four options — user decides
174
- * Do NOT discard without typed confirmation including branch name
175
- * Do NOT force-delete remote without user confirmation
176
- * Do NOT silently change the base between verification and ship
177
- * Do NOT mix other cleanup into the discard step
198
+ * Do NOT present ship options while tests or quality checks are red
199
+ * Do NOT add rationale or recommendations to the four numbered options
200
+ the user decides
201
+ * Do NOT discard a branch without a typed confirmation including the
202
+ branch name
203
+ * Do NOT force-delete a remote branch without user confirmation
204
+ * Do NOT silently change the base branch between verification and ship
205
+ * Do NOT mix any other cleanup into the discard step
178
206
 
179
207
  ## Anti-patterns
180
208
 
181
- * Three options + "or discard" buries destructive option
182
- * Running the full gate here *and* at start of `create-pr` — duplicate
183
- * Merge local + open PR at the same time
184
- * Asking "ready to ship?" without the four numbered options
209
+ * Presenting three options and phrasing the fourth as "or we can
210
+ discard if you want" buries the destructive option
211
+ * Running the full gate inside this skill *and* at the start of
212
+ `create-pr` duplicates work. Trust the gate result if nothing
213
+ changed in between
214
+ * Merging local + opening PR at the same time — pick one
215
+ * Asking "ready to ship?" without listing the four concrete options
185
216
 
186
217
  ## When to hand over to another skill / command
187
218
 
188
- * Pre-merge verification → [`verify-before-complete`](../verify-before-complete/SKILL.md)
189
- * Rebasing stack → [`prepare-for-review`](../../commands/prepare-for-review.md)
190
- * Last-minute commits [`commit`](../../commands/commit.md), [`conventional-commits-writing`](../conventional-commits-writing/SKILL.md)
191
- * Self-review → [`review-changes`](../../commands/review-changes.md)
192
- * Creating PR → [`create-pr`](../../commands/create-pr.md)
193
- * Review comments → [`receiving-code-review`](../receiving-code-review/SKILL.md)
219
+ * Final pre-merge verification → [`verify-before-complete`](../verify-before-complete/SKILL.md)
220
+ * Rebasing the stack before PR → [`prepare-for-review`](../../commands/prepare-for-review.md)
221
+ * Writing the commit for any last-minute tweaks
222
+ [`commit`](../../commands/commit.md),
223
+ [`conventional-commits-writing`](../conventional-commits-writing/SKILL.md)
224
+ * Self-review walkthrough → [`review-changes`](../../commands/review-changes.md)
225
+ * Creating the PR → [`create-pr`](../../commands/create-pr.md)
226
+ * Processing review comments after the PR is open →
227
+ [`receiving-code-review`](../receiving-code-review/SKILL.md)
194
228
 
195
229
  ## Validation checklist
196
230
 
197
- * [ ] Full gate verified green in this turn
198
- * [ ] Base branch determined and confirmed when ambiguous
199
- * [ ] Exactly four numbered options presented, no narration
231
+ Before reporting "done" after this skill runs:
232
+
233
+ * [ ] Full gate (tests + quality pipeline) verified green in this turn
234
+ * [ ] Base branch determined and confirmed with the user when ambiguous
235
+ * [ ] Exactly four numbered options were presented, no narration added
200
236
  * [ ] User's choice recorded literally, not reinterpreted
201
- * [ ] Sub-procedure for chosen option completed end-to-end
202
- * [ ] Worktree handled per option
203
- * [ ] Destructive actions had typed confirmation with branch name
204
- * [ ] Final report includes evidence (PR URL, SHA, exit code)
237
+ * [ ] Sub-procedure for the chosen option completed end-to-end
238
+ * [ ] Worktree state handled per option (remove for 1/2/4, keep for 3)
239
+ * [ ] Destructive actions had typed confirmation including branch name
240
+ * [ ] Final report includes evidence (PR URL, SHA, or exit code)
@@ -8,7 +8,12 @@ source: package
8
8
 
9
9
  ## Positioning — dispatched, not standalone
10
10
 
11
- `flux` is the **primitive-library executor** for projects on the Livewire + Flux stack. Invoked by [`directives/ui/apply.py`](../../templates/scripts/work_engine/directives/ui/apply.py) once the design brief is locked, and revisited by `review.py` / `polish.py` during the design-review loop. Does **not** own the flow, drive the audit, or lock the design.
11
+ `flux` is the **primitive-library executor** for projects on the
12
+ Livewire + Flux stack. It is invoked by
13
+ [`directives/ui/apply.py`](../../templates/scripts/work_engine/directives/ui/apply.py)
14
+ once the design brief is locked, and revisited by `review.py` /
15
+ `polish.py` during the design-review loop. It does **not** own the
16
+ flow, does **not** drive the audit, and does **not** lock the design.
12
17
 
13
18
  | Concern | Owner |
14
19
  |---|---|
@@ -22,8 +27,8 @@ source: package
22
27
 
23
28
  Cite this skill when:
24
29
 
25
- - Project depends on `livewire/flux` and `directives/ui/apply.py` dispatches Flux primitives
26
- - Building forms, modals, dropdowns, toasts, or other standard UI elements Flux already provides
30
+ - The project depends on `livewire/flux` and `directives/ui/apply.py` dispatches Flux primitives
31
+ - Building forms, modals, dropdowns, toasts, or other standard UI elements that Flux already provides
27
32
 
28
33
  Do NOT use when:
29
34
 
@@ -64,16 +69,31 @@ Do NOT use when:
64
69
 
65
70
  ### Review pass — a11y findings + preview envelope
66
71
 
67
- When dispatched by `directives/ui/review.py` (test slot) or `directives/ui/polish.py` (verify slot) — review/polish run, not initial apply — also emits:
68
-
69
- - `state.ui_review.a11y` `{violations: [{rule, selector, severity}, ...], severity_floor?, accepted_violations?}`. Use same `(rule, selector)` shape as `state.ui_audit.a11y_baseline` so engine's de-dup matches pre-existing entries on replay. Omit envelope on apply passes; engine's `_apply_a11y_gate` only fires when baseline present.
70
- - `state.ui_review.preview` — `{render_ok: bool, screenshot_path?, dom_dump_path?, error?, skipped?}`. `render_ok: false` with `error` populated triggers `preview_render_failed` halt; `render_ok: true` with `screenshot_path` threads screenshot into delivery report's `artifacts` list. Browser tooling (Playwright/Cypress/…) is consumer-project dependency — package does not ship one.
71
-
72
- Polish dispatch: when dispatcher skips `review` because previous review pass returned `SUCCESS`, this skill MUST itself synthesise updated `state.ui_review.findings` (including remaining `a11y_violation` entries) so engine's gate sees current state on next polish round.
72
+ When this skill is dispatched by `directives/ui/review.py` (test slot)
73
+ or `directives/ui/polish.py` (verify slot) — i.e. a review/polish run,
74
+ not the initial apply it also emits:
75
+
76
+ - `state.ui_review.a11y` — `{violations: [{rule, selector, severity}, ...],
77
+ severity_floor?, accepted_violations?}`. Use the same `(rule, selector)`
78
+ shape as `state.ui_audit.a11y_baseline` so the engine's de-dup matches
79
+ pre-existing entries on replay. Omit the envelope on apply passes; the
80
+ engine's `_apply_a11y_gate` only fires when a baseline is present.
81
+ - `state.ui_review.preview` — `{render_ok: bool, screenshot_path?,
82
+ dom_dump_path?, error?, skipped?}`. `render_ok: false` with `error`
83
+ populated triggers the `preview_render_failed` halt; `render_ok: true`
84
+ with `screenshot_path` threads the screenshot into the delivery
85
+ report's `artifacts` list. Browser tooling (Playwright/Cypress/…) is
86
+ a consumer-project dependency — this package does not ship one.
87
+
88
+ Polish dispatch: when the dispatcher skips `review` because a previous
89
+ review pass already returned `SUCCESS`, this skill MUST itself
90
+ synthesise the updated `state.ui_review.findings` (including any
91
+ remaining `a11y_violation` entries) so the engine's gate sees the
92
+ current state on the next polish round.
73
93
 
74
94
  ## Gotcha
75
95
 
76
- - Model tends to use old Flux API syntax — always check latest docs.
96
+ - The model tends to use old Flux API syntax — always check latest docs.
77
97
  - Flux has built-in validation display — don't add manual error rendering alongside it.
78
98
  - Don't mix Flux with raw HTML form elements in the same form.
79
99
 
@@ -14,7 +14,7 @@ Use this skill when working with GitHub Actions workflows, CI pipeline configura
14
14
 
15
15
  1. Read `.github/workflows/` to understand the full pipeline.
16
16
  2. Check `AGENTS.md` for quality tool commands and testing setup.
17
- 3. Read `.augment/commands/fix-ci.md` for CI failure debugging workflow.
17
+ 3. Read `commands/fix/ci.md` for CI failure debugging workflow.
18
18
 
19
19
  ## Workflow overview
20
20
 
@@ -91,7 +91,7 @@ Check `.github/workflows/` for the runner types used. Common patterns:
91
91
  3. Get logs: `GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs`
92
92
  4. Fix locally, verify in container, then push.
93
93
 
94
- See `.augment/commands/fix-ci.md` for the full debugging workflow.
94
+ See `commands/fix/ci.md` for the full debugging workflow.
95
95
 
96
96
 
97
97
  ## Output format
@@ -112,8 +112,8 @@ Required fields (ordered):
112
112
  a codebase convention; omit only when verdict is `apply`
113
113
 
114
114
  If a finding needs runtime confirmation (running a formatter, linter,
115
- or static analyzer), note it as a follow-up for the implementer — the
116
- judge does not execute tools.
115
+ or static analyzer to see the actual report), note it as a follow-up
116
+ for the implementer — the judge does not execute tools.
117
117
 
118
118
  ## Gotcha
119
119
 
@@ -140,16 +140,15 @@ judge does not execute tools.
140
140
  ## References
141
141
 
142
142
  - **LLM-as-a-Judge foundations** — Zheng et al., "Judging LLM-as-a-Judge
143
- with MT-Bench and Chatbot Arena" (2023),
144
- [arxiv.org/abs/2306.05685](https://arxiv.org/abs/2306.05685).
145
- Establishes the specialized-judge pattern and failure modes (position
146
- bias, self-consistency) this skill defends against.
143
+ with MT-Bench and Chatbot Arena" (2023), [arxiv.org/abs/2306.05685](https://arxiv.org/abs/2306.05685).
144
+ Establishes the specialized-judge pattern and its known failure modes
145
+ (position bias, self-consistency) this skill must defend against.
147
146
  - **Code-review rubric** — Google Engineering Practices, "The Standard
148
147
  of Code Review" and "What to look for in a code review",
149
148
  [google.github.io/eng-practices/review/reviewer](https://google.github.io/eng-practices/review/reviewer/).
150
149
  The lenses (design, functionality, complexity, tests, naming, comments,
151
- style, consistency) the judge applies — codebase conventions over
152
- external style preferences.
150
+ style, consistency) the judge applies — prioritizing codebase conventions
151
+ over external style preferences.
153
152
  - [`subagent-orchestration`](../subagent-orchestration/SKILL.md) —
154
153
  model-pairing rules (`subagents.judge_model` one tier above implementer).
155
154
  - Sibling judges: [`judge-bug-hunter`](../judge-bug-hunter/SKILL.md),
@@ -150,13 +150,12 @@ Runtime boundary: the judge does not execute tools.
150
150
  ## References
151
151
 
152
152
  - **LLM-as-a-Judge foundations** — Zheng et al., "Judging LLM-as-a-Judge
153
- with MT-Bench and Chatbot Arena" (2023),
154
- [arxiv.org/abs/2306.05685](https://arxiv.org/abs/2306.05685).
155
- Establishes the specialized-judge pattern and failure modes (position
156
- bias, self-consistency) this skill defends against.
153
+ with MT-Bench and Chatbot Arena" (2023), [arxiv.org/abs/2306.05685](https://arxiv.org/abs/2306.05685).
154
+ Establishes the specialized-judge pattern and its known failure modes
155
+ (position bias, self-consistency) this skill must defend against.
157
156
  - **Security rubric** — OWASP Application Security Verification Standard
158
157
  (ASVS), [owasp.org/www-project-application-security-verification-standard](https://owasp.org/www-project-application-security-verification-standard/).
159
- Finding categories (authentication, access control, validation,
158
+ The finding categories (authentication, access control, validation,
160
159
  cryptography, error handling) the judge walks on every diff.
161
160
  - [`subagent-orchestration`](../subagent-orchestration/SKILL.md) —
162
161
  model-pairing rules (`subagents.judge_model` one tier above implementer).
@@ -134,10 +134,9 @@ as a follow-up for the implementer — the judge does not execute tools.
134
134
  ## References
135
135
 
136
136
  - **LLM-as-a-Judge foundations** — Zheng et al., "Judging LLM-as-a-Judge
137
- with MT-Bench and Chatbot Arena" (2023),
138
- [arxiv.org/abs/2306.05685](https://arxiv.org/abs/2306.05685).
139
- Establishes the specialized-judge pattern and failure modes (position
140
- bias, self-consistency) this skill defends against.
137
+ with MT-Bench and Chatbot Arena" (2023), [arxiv.org/abs/2306.05685](https://arxiv.org/abs/2306.05685).
138
+ Establishes the specialized-judge pattern and its known failure modes
139
+ (position bias, self-consistency) this skill must defend against.
141
140
  - **Test-value rubric** — Martin Fowler, "Test Pyramid",
142
141
  [martinfowler.com/bliki/TestPyramid.html](https://martinfowler.com/bliki/TestPyramid.html),
143
142
  and Kent Beck, "Test Desiderata",
@@ -17,56 +17,74 @@ execution:
17
17
 
18
18
  ## When to use
19
19
 
20
- - Validate shape of every skill/rule in `.agent-src.uncompressed/`
21
- - Verify `execution:` metadata is well-formed
22
- - Pre-PR local check before CI skill-lint job
23
- - Investigate reported linter failure
20
+ Use this skill when:
24
21
 
25
- NOT: single file (call `skill_linter.py <path>`), cross-refs (use `check-refs`),
26
- compression freshness (use `bash scripts/compress.sh --check`).
22
+ - Validating the shape of every skill and rule in `.agent-src.uncompressed/`
23
+ - Verifying execution metadata (`execution.type`, `handler`, `command`) is well-formed
24
+ - Checking locally before opening a PR that CI's skill-lint job will pass
25
+ - Investigating a reported linter failure on a specific skill or rule
26
+
27
+ Do NOT use when:
28
+
29
+ - Linting only one file — call `python3 scripts/skill_linter.py <path>` directly
30
+ - Checking cross-references between files — use `check-refs` instead
31
+ - Checking compression freshness — use `bash scripts/compress.sh --check` instead
27
32
 
28
33
  ## Procedure
29
34
 
30
- 1. **Inspect env** — `python3` on PATH, cwd = agent-config repo root (linter
31
- resolves `.agent-src.uncompressed/skills/` relative to cwd).
32
- 2. **Dispatch via runtime** —
35
+ ### 1. Inspect the environment
33
36
 
34
- ```bash
35
- python3 scripts/runtime_dispatcher.py run --skill lint-skills
36
- ```
37
+ Confirm `python3` is available and the working directory is the agent-config
38
+ repository root the linter expects to find `.agent-src.uncompressed/skills/`
39
+ and related directories relative to `cwd`.
37
40
 
38
- Handler runs `python3 scripts/skill_linter.py --all`, captures stdout/stderr,
39
- returns typed `ExecutionResult`.
40
- 3. **Verify result** —
41
- - `status: success` + `exit_code: 0` → all clean
42
- - `exit_code: 1` → warnings only — review stdout
43
- - `exit_code: 2` → errors — fix flagged files
44
- - `status: timeout` → investigate slowdown, do not just raise timeout
45
- - `status: error` → interpreter missing or wrong cwd
41
+ ### 2. Dispatch via the runtime layer
46
42
 
47
- ## Output
43
+ Invoke the skill through the runtime dispatcher so the `execution:` block in
44
+ this skill's frontmatter governs the call:
48
45
 
49
- 1. One-line summary: status, exit code, duration (ms)
50
- 2. Count of skills/rules inspected if known
51
- 3. First 10 errored files: code + message
52
- 4. Next action: fix, re-run, or surface raw stdout
46
+ ```bash
47
+ python3 scripts/runtime_dispatcher.py run --skill lint-skills
48
+ ```
53
49
 
54
- ## Gotcha
50
+ The dispatcher resolves the request, the shell handler runs
51
+ `python3 scripts/skill_linter.py --all`, captures stdout/stderr, and returns
52
+ a typed `ExecutionResult`.
55
53
 
56
- - `--all` walks full tree — several seconds; bump `timeout_seconds` if repo grew
57
- - Running outside repo root → zero skills inspected, looks green but is a no-op
58
- - `exit_code: 1` (warnings) does not fail CI — not the same as "clean"
54
+ ### 3. Verify the result
59
55
 
60
- ## Do NOT
56
+ Check the returned `ExecutionResult`:
57
+
58
+ - `status: success` and `exit_code: 0` → all skills and rules are clean
59
+ - `exit_code: 1` → warnings only — review `stdout` for the listed warnings
60
+ - `exit_code: 2` → errors present — fix the flagged files before continuing
61
+ - `status: timeout` → the linter exceeded `timeout_seconds` — investigate
62
+ - `status: error` → the interpreter could not launch — check that `python3`
63
+ is on `PATH` and the repository root is the current working directory
61
64
 
62
- - Do NOT call `skill_linter.py` directly when the intent is to exercise the
63
- runtime path — go through the dispatcher
64
- - Do NOT raise `timeout_seconds` to mask slowdowns
65
- - Do NOT add pipes/redirection — handler uses `shell=False`, argv form only
65
+ ## Output format
66
66
 
67
- ## References
67
+ 1. One-line summary: `success | failure | timeout | error`, exit code,
68
+ duration in milliseconds
69
+ 2. Count of skills and rules the linter inspected, if known
70
+ 3. List of files with errors (first 10), each with code and message
71
+ 4. Next action: fix errors, re-run, or surface the raw `stdout` for review
72
+
73
+ ## Gotchas
74
+
75
+ - The command uses `--all`, which walks the full tree — expect several seconds
76
+ of runtime on a warm repo; bump `timeout_seconds` if the repo has grown
77
+ - Running outside the agent-config repo root will make the linter report zero
78
+ skills, which looks like a pass but is actually a no-op
79
+ - Warnings (`exit_code: 1`) do not fail CI by default; do not dismiss them as
80
+ "green" when the task is to get to zero warnings
81
+
82
+ ## Do NOT
68
83
 
69
- - Skill: `check-refs` sibling pilot that runs the cross-ref checker
70
- - Rule: `runtime-safety`execution metadata constraints
71
- - Script: `scripts/skill_linter.py`, `scripts/runtime_dispatcher.py`,
72
- `scripts/runtime_handler.py`
84
+ - Do NOT invoke `scripts/skill_linter.py` directly when the intent is to test
85
+ the runtime path use the dispatcher so the handler and result object are
86
+ exercised
87
+ - Do NOT raise `timeout_seconds` to hide a genuinely slow linter pass —
88
+ investigate the slowdown first
89
+ - Do NOT add shell redirection or pipes to `command` — the handler runs
90
+ `subprocess.run` with `shell=False`; only argv form is supported