@event4u/agent-config 1.16.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 (203) 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/direct-answers.md +34 -49
  88. package/.agent-src/rules/docker-commands.md +5 -5
  89. package/.agent-src/rules/docs-sync.md +15 -69
  90. package/.agent-src/rules/language-and-tone.md +48 -72
  91. package/.agent-src/rules/missing-tool-handling.md +28 -22
  92. package/.agent-src/rules/no-cheap-questions.md +45 -52
  93. package/.agent-src/rules/no-roadmap-references.md +73 -0
  94. package/.agent-src/rules/package-ci-checks.md +21 -61
  95. package/.agent-src/rules/preservation-guard.md +64 -29
  96. package/.agent-src/rules/review-routing-awareness.md +24 -43
  97. package/.agent-src/rules/roadmap-progress-sync.md +10 -71
  98. package/.agent-src/rules/security-sensitive-stop.md +8 -8
  99. package/.agent-src/rules/skill-quality.md +16 -48
  100. package/.agent-src/rules/slash-command-routing-policy.md +7 -4
  101. package/.agent-src/rules/think-before-action.md +52 -42
  102. package/.agent-src/rules/tool-safety.md +19 -16
  103. package/.agent-src/rules/ui-audit-gate.md +24 -38
  104. package/.agent-src/rules/user-interaction.md +13 -68
  105. package/.agent-src/skills/ai-council/SKILL.md +2 -0
  106. package/.agent-src/skills/api-testing/SKILL.md +1 -1
  107. package/.agent-src/skills/check-refs/SKILL.md +59 -40
  108. package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
  109. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +5 -5
  110. package/.agent-src/skills/developer-like-execution/SKILL.md +4 -4
  111. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
  112. package/.agent-src/skills/flux/SKILL.md +30 -10
  113. package/.agent-src/skills/github-ci/SKILL.md +2 -2
  114. package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
  115. package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
  116. package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
  117. package/.agent-src/skills/lint-skills/SKILL.md +57 -39
  118. package/.agent-src/skills/md-language-check/SKILL.md +61 -39
  119. package/.agent-src/skills/override-management/SKILL.md +5 -5
  120. package/.agent-src/skills/quality-tools/SKILL.md +2 -2
  121. package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
  122. package/.agent-src/skills/readme-reviewer/SKILL.md +30 -29
  123. package/.agent-src/skills/readme-writing/SKILL.md +78 -53
  124. package/.agent-src/skills/readme-writing-package/SKILL.md +50 -47
  125. package/.agent-src/skills/receiving-code-review/SKILL.md +52 -47
  126. package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
  127. package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
  128. package/.agent-src/skills/security/SKILL.md +7 -2
  129. package/.agent-src/skills/security-audit/SKILL.md +7 -3
  130. package/.agent-src/skills/systematic-debugging/SKILL.md +68 -60
  131. package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
  132. package/.agent-src/skills/test-performance/SKILL.md +0 -1
  133. package/.agent-src/skills/traefik/SKILL.md +4 -4
  134. package/.agent-src/skills/verify-completion-evidence/SKILL.md +28 -26
  135. package/.claude-plugin/marketplace.json +22 -11
  136. package/AGENTS.md +2 -2
  137. package/CHANGELOG.md +90 -1
  138. package/README.md +18 -17
  139. package/docs/architecture.md +4 -6
  140. package/docs/catalog.md +67 -39
  141. package/docs/contracts/STABILITY.md +13 -7
  142. package/docs/contracts/adr-chat-history-split.md +1 -3
  143. package/docs/contracts/adr-command-suggestion.md +0 -2
  144. package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
  145. package/docs/contracts/adr-product-ui-track.md +3 -6
  146. package/docs/contracts/adr-prompt-driven-execution.md +3 -4
  147. package/docs/contracts/agent-memory-contract.md +6 -11
  148. package/docs/contracts/artifact-engagement-flow.md +6 -9
  149. package/docs/contracts/command-clusters.md +56 -46
  150. package/docs/contracts/command-suggestion-flow.md +1 -3
  151. package/docs/contracts/context-paths.md +99 -0
  152. package/docs/contracts/file-ownership-matrix.json +6722 -0
  153. package/docs/contracts/file-ownership-matrix.md +134 -0
  154. package/docs/contracts/implement-ticket-flow.md +6 -9
  155. package/docs/contracts/linear-ai-rules-inclusion.md +0 -1
  156. package/docs/contracts/linear-ai-three-layers.md +0 -2
  157. package/docs/contracts/load-context-budget-model.md +178 -0
  158. package/docs/contracts/load-context-schema.md +1 -3
  159. package/docs/contracts/rule-interactions.md +0 -1
  160. package/docs/contracts/rule-priority-hierarchy.md +1 -1
  161. package/docs/contracts/ui-track-flow.md +7 -17
  162. package/docs/customization.md +2 -0
  163. package/docs/getting-started.md +5 -4
  164. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
  165. package/package.json +1 -1
  166. package/scripts/_one_off_phase4_dispatch_latency.py +108 -0
  167. package/scripts/_one_off_phase6_trigger_jaccard.py +92 -0
  168. package/scripts/_phase2_shim_helper.py +109 -0
  169. package/scripts/agent-config +10 -0
  170. package/scripts/ai_council/_one_off_2a4_acceptance.py +208 -0
  171. package/scripts/ai_council/_one_off_context_layer_v1_estimate.py +67 -0
  172. package/scripts/ai_council/_one_off_context_layer_v1_review.py +292 -0
  173. package/scripts/ai_council/_one_off_followups_review.py +259 -0
  174. package/scripts/ai_council/_one_off_nondestructive_inline_audit.py +209 -0
  175. package/scripts/ai_council/_one_off_phase_2a_budget_rebalance.py +257 -0
  176. package/scripts/ai_council/_one_off_phase_2a_post_revert.py +197 -0
  177. package/scripts/ai_council/_one_off_rule_hardening_v1.py +251 -0
  178. package/scripts/ai_council/_one_off_structural_open_questions.py +232 -0
  179. package/scripts/ai_council/_one_off_structural_optimization.py +144 -0
  180. package/scripts/ai_council/_one_off_structural_v3_gaps.py +252 -0
  181. package/scripts/ai_council/_one_off_structural_v3_review.py +240 -0
  182. package/scripts/check_always_budget.py +363 -45
  183. package/scripts/check_cluster_patterns.py +159 -0
  184. package/scripts/check_command_count_messaging.py +14 -7
  185. package/scripts/check_context_paths.py +201 -0
  186. package/scripts/check_no_roadmap_refs.py +155 -0
  187. package/scripts/check_phase_coupling.py +148 -0
  188. package/scripts/check_portability.py +2 -0
  189. package/scripts/check_references.py +29 -2
  190. package/scripts/check_safety_floor_untouched.py +125 -0
  191. package/scripts/command_suggester/loader.py +4 -1
  192. package/scripts/compress.py +59 -13
  193. package/scripts/generate_index.py +6 -2
  194. package/scripts/generate_ownership_matrix.py +323 -0
  195. package/scripts/hooks/augment-roadmap-progress.sh +57 -0
  196. package/scripts/install.py +49 -28
  197. package/scripts/lint_no_new_atomic_commands.py +12 -11
  198. package/scripts/requirements-evals.txt +1 -0
  199. package/scripts/roadmap_progress_hook.py +159 -0
  200. package/scripts/schemas/command.schema.json +4 -3
  201. package/scripts/skill_linter.py +1 -0
  202. package/scripts/sync_agent_settings.py +25 -2
  203. package/scripts/update_counts.py +7 -0
@@ -16,57 +16,76 @@ execution:
16
16
 
17
17
  ## When to use
18
18
 
19
- - Skill/rule/command/guideline/context renamed, moved, or deleted
20
- - Linking newly added artifact from elsewhere in `.agent-src.uncompressed/`
21
- - Pre-PR when changes touch cross-references
22
- - CI `check-refs` job failed and target ref needs locating
19
+ Use this skill when:
23
20
 
24
- NOT: body-only edits, frontmatter shape (use `lint-skills`), compressed pairs
25
- (use `bash scripts/compress.sh --check`).
21
+ - A skill, rule, command, guideline, or context has been renamed or deleted
22
+ - Linking a newly added artifact from elsewhere in `.agent-src.uncompressed/`
23
+ - Preparing a PR that touches cross-references between agent artifacts
24
+ - CI's `check-refs` job failed and the broken reference needs to be located
25
+
26
+ Do NOT use when:
27
+
28
+ - Only the body of a single file changed and no names or paths were touched
29
+ - Checking frontmatter shape or required sections — use `lint-skills` instead
30
+ - Verifying compressed vs uncompressed pairs — use `bash scripts/compress.sh --check` instead
26
31
 
27
32
  ## Procedure
28
33
 
29
- 1. **Inspect scope** confirm at least one rename/move/remove since last clean
30
- run. Body-only edits cannot break refs.
31
- 2. **Dispatch via runtime** —
34
+ ### 1. Inspect the scope of recent changes
32
35
 
33
- ```bash
34
- python3 scripts/runtime_dispatcher.py run --skill check-refs
35
- ```
36
+ Identify whether any artifact was renamed, moved, or removed since the last
37
+ clean run. Cross-reference checks are relevant only when names or paths shift;
38
+ pure body edits cannot break references.
36
39
 
37
- Handler runs `python3 scripts/check_references.py`, captures stdout/stderr,
38
- returns typed `ExecutionResult`.
39
- 3. **Verify result** —
40
- - `exit_code: 0` → all refs resolve
41
- - `exit_code: 1` → broken refs — read stdout for `file:line → target`
42
- - `status: timeout` → investigate, do not raise limit blindly
43
- - `status: error` → interpreter or script missing, or wrong cwd
40
+ ### 2. Dispatch via the runtime layer
44
41
 
45
- ## Output
42
+ Invoke the skill through the runtime dispatcher so the `execution:` block in
43
+ this skill's frontmatter governs the call:
46
44
 
47
- 1. One-line summary: status, exit code, duration (ms)
48
- 2. Count of broken refs if any
49
- 3. First 10 broken refs: `file:line → missing-target`
50
- 4. Next action: fix, re-run, or surface raw stdout
45
+ ```bash
46
+ python3 scripts/runtime_dispatcher.py run --skill check-refs
47
+ ```
51
48
 
52
- ## Gotcha
49
+ The dispatcher resolves the request, the shell handler runs
50
+ `python3 scripts/check_references.py`, captures stdout/stderr, and returns a
51
+ typed `ExecutionResult`.
53
52
 
54
- - Checker is read-only — clean re-run must be produced by re-invoking, not
55
- assumed
56
- - Running outside repo root → zero files inspected, false pass
57
- - Refs inside fenced code blocks may still be parsed — verify a "false
58
- positive" before suppressing it
53
+ ### 3. Verify the result
59
54
 
60
- ## Do NOT
55
+ Check the returned `ExecutionResult`:
56
+
57
+ - `exit_code: 0` → all cross-references resolve
58
+ - `exit_code: 1` → at least one broken reference — read `stdout` for file,
59
+ line, and the offending ref, then fix the source or update the target
60
+ - `status: timeout` → the checker exceeded `timeout_seconds` — investigate
61
+ - `status: error` → interpreter or script missing — confirm `python3` and
62
+ `scripts/check_references.py` are available at the repository root
61
63
 
62
- - Do NOT call `check_references.py` directly when the intent is to exercise
63
- the runtime path — go through the dispatcher
64
- - Do NOT raise `timeout_seconds` to mask a real slowdown
65
- - Do NOT add pipes/redirection — handler uses `shell=False`, argv form only
64
+ ## Output format
66
65
 
67
- ## References
66
+ 1. One-line summary: `success | failure | timeout | error`, exit code,
67
+ duration in milliseconds
68
+ 2. Count of broken references found, if any
69
+ 3. First 10 broken references with `file:line → missing-target`
70
+ 4. Next action: fix references, re-run the skill, or surface `stdout` for
71
+ review
72
+
73
+ ## Gotchas
74
+
75
+ - The checker is read-only — it never rewrites references, so a clean run
76
+ after a fix must be produced by re-invoking the skill, not by assumption
77
+ - Running outside the agent-config repo root makes the checker inspect zero
78
+ files and report a false pass
79
+ - Relative links inside comments or fenced code blocks may still be parsed as
80
+ references depending on the checker's current rules; do not suppress a
81
+ broken ref without confirming it is a genuine false positive
82
+
83
+ ## Do NOT
68
84
 
69
- - Skill: `lint-skills` sibling pilot for skill/rule shape
70
- - Rule: `runtime-safety`execution metadata constraints
71
- - Script: `scripts/check_references.py`, `scripts/runtime_dispatcher.py`,
72
- `scripts/runtime_handler.py`
85
+ - Do NOT invoke `scripts/check_references.py` directly when the intent is to
86
+ verify the runtime path always go through the dispatcher so the
87
+ `ExecutionResult` is produced and inspectable
88
+ - Do NOT raise `timeout_seconds` to mask a slowdown — investigate which part
89
+ of the tree grew large enough to push past 60 seconds
90
+ - Do NOT add piping or redirection to `command` — the handler uses
91
+ `shell=False` and will refuse anything outside pure argv form
@@ -12,48 +12,106 @@ execution:
12
12
 
13
13
  ## When to use
14
14
 
15
- - Generating commit message from staged changes
16
- - Generating squash merge title from PR
17
- - Deciding correct type for a change
18
- - Reviewing/correcting commit messages
19
- - Splitting vague changes into multiple commits
15
+ Use this skill when:
20
16
 
21
- NOT: explaining standard (reference rule), git workflow (use `git-workflow`)
17
+ - Generating a commit message from staged changes
18
+ - Generating a squash merge title from a PR
19
+ - Deciding the correct Conventional Commit type for a change
20
+ - Reviewing whether a commit message is correct
21
+ - Splitting one vague change into multiple commit messages
22
22
 
23
- ## Procedure: Generate
23
+ Do NOT use when:
24
24
 
25
- 1. **Intent** feat/fix/refactor/docs/test/ci/chore/perf/build/style. Classify by intent, not file type.
26
- 2. **Mixed concerns?** split into multiple commits or choose dominant net effect for squash title.
27
- 3. **Scope** Jira ID or area name. Only if it adds clarity.
28
- 4. **Description** — intent, not implementation. Imperative. Max 72 chars. No generic filler.
29
- 5. **Breaking?** add `!` or `BREAKING CHANGE:` footer:
25
+ - Only explaining the Conventional Commits standard (just reference the rule)
26
+ - The message is already correct and does not need review
27
+ - Following the Git workflow (use `git-workflow` skill)
28
+
29
+ ## Procedure: Generate commit message
30
+
31
+ ### 1. Identify the actual intent
32
+
33
+ Determine whether the change is:
34
+
35
+ - New behavior → `feat`
36
+ - Bug fix → `fix`
37
+ - Structural cleanup → `refactor`
38
+ - Docs only → `docs`
39
+ - Tests only → `test`
40
+ - CI/build/tooling → `ci` or `build`
41
+ - Maintenance → `chore`
42
+ - Performance → `perf`
43
+ - Formatting only → `style`
44
+
45
+ Classify by **user-visible or system-relevant intent**, not by file type alone.
46
+
47
+ ### 2. Detect mixed concerns
48
+
49
+ Check whether the change includes more than one unrelated concern.
50
+
51
+ If yes:
52
+
53
+ - Suggest splitting into multiple commits
54
+ - Or choose the dominant net effect for squash merge title
55
+
56
+ ### 3. Choose scope
57
+
58
+ Add a scope only if it improves clarity:
59
+
60
+ - Jira ticket ID: `DEV-1234`
61
+ - Module/area: `api`, `auth`, `skills`, `rules`, `ci`
62
+
63
+ ### 4. Write the description
64
+
65
+ - State the intent clearly
66
+ - Avoid generic filler (`update stuff`, `fix things`)
67
+ - Stay concise — max 72 chars total for first line
68
+ - Imperative mood: "add", "fix", "remove" — not "added", "fixed", "removed"
69
+
70
+ ### 5. Check for breaking change
71
+
72
+ If compatibility is broken, add `!` after type/scope:
30
73
 
31
74
  ```
32
75
  feat(api)!: rename invoice status values
33
76
  ```
34
77
 
35
- 6. **Validate** type matches intent? scope useful? not hiding multiple concerns?
78
+ Or add `BREAKING CHANGE:` in the commit body/footer.
79
+
80
+ ### 6. Validate
81
+
82
+ - Type matches intent?
83
+ - Scope is useful (not noise)?
84
+ - Description is specific (not generic)?
85
+ - Not hiding multiple unrelated changes?
86
+ - Breaking changes are marked?
36
87
 
37
- ## Procedure: Review
88
+ ## Procedure: Review existing commit message
38
89
 
39
- Parse check type vs diff → check scope → check description clarity → suggest corrections.
90
+ 1. Parse the message into type, scope, description
91
+ 2. Check type accuracy against the actual diff
92
+ 3. Check scope usefulness
93
+ 4. Check description clarity and specificity
94
+ 5. Suggest corrections if any check fails
40
95
 
41
- ## Procedure: Squash merge title
96
+ ## Procedure: Generate squash merge title
42
97
 
43
- Read all PR commits identify net effect → write single Conventional Commit summarizing it.
98
+ 1. Read all commits in the PR
99
+ 2. Identify the **net effect** — what does the PR accomplish overall?
100
+ 3. Write a single Conventional Commit message summarizing the net effect
101
+ 4. Do not list every internal commit — summarize
44
102
 
45
- ## Output
103
+ ## Output format
46
104
 
47
- 1. Recommended message(s)
48
- 2. Brief type rationale
49
- 3. Split suggestion if needed
105
+ 1. Recommended commit message(s)
106
+ 2. Brief rationale for type choice
107
+ 3. Split suggestion if the change should be multiple commits
50
108
 
51
109
  ## Gotcha
52
110
 
53
- - Model overuses `chore`/`refactor` — classify by intent, not effort
54
- - File type commit type (`.md` change can be `feat`)
55
- - `refactor` = NO behavior change if behavior changes, use `feat`/`fix`
56
- - Squash title = net effect, not internal details
111
+ - The model tends to overuse `chore` and `refactor` — classify by intent, not by effort
112
+ - File type alone does not determine commit type (e.g. a `.md` change can be `feat` if it's a new feature doc)
113
+ - Squash merge titles should describe the net effect, not every internal detail
114
+ - `refactor` means NO behavior change — if behavior changes, use `feat` or `fix`
57
115
 
58
116
  ## Do NOT
59
117
 
@@ -65,6 +123,6 @@ Read all PR commits → identify net effect → write single Conventional Commit
65
123
 
66
124
  ## References
67
125
 
68
- - Rule: `commit-conventions` — format, types, scope
69
- - Guideline: `docs/guidelines/php/git.md` — selection rules, anti-patterns, checklist
70
- - Command: `/commit` — uses this skill
126
+ - Rule: `commit-conventions` — base format, types, scope, examples
127
+ - Guideline: `docs/guidelines/php/git.md` — type selection rules, anti-patterns, decision checklist
128
+ - Command: `/commit` — uses this skill for message generation
@@ -27,12 +27,12 @@ Do NOT use when:
27
27
 
28
28
  ### 0. Analyze current state
29
29
 
30
- Before changing anything:
30
+ Before changing anything, read and understand:
31
31
 
32
- 1. Read `AGENTS.md` — content, line count, what's duplicated vs. unique
33
- 2. Read `.github/copilot-instructions.md` — same analysis
34
- 3. Scan `.augment/` — which skills/rules already cover topics from above
35
- 4. Identify duplication — what exists in both AGENTS.md and `.augment/`?
32
+ 1. **Read `AGENTS.md`**current content, line count, what's duplicated vs. unique.
33
+ 2. **Read `.github/copilot-instructions.md`** — same analysis.
34
+ 3. **Scan `.augment/`** — which skills, rules, and guidelines already cover topics from the files above.
35
+ 4. **Identify duplication** — what content exists in both AGENTS.md and `.augment/`?
36
36
 
37
37
  Only after this analysis, proceed with optimization.
38
38
 
@@ -129,10 +129,10 @@ If important information is missing:
129
129
  - **Consult memory — invariants and prior decisions.** Via
130
130
  [`memory-access`](../../../docs/guidelines/agent-infra/memory-access.md), call
131
131
  `retrieve(types=["domain-invariants", "architecture-decisions"], keys=<touched paths>, limit=3)`.
132
- A matching `domain-invariant` is a hard constraint — violating it =
133
- regression, surface the conflict before proceeding. A matching
134
- `architecture-decision` explains *why* the current shape exists; plan
135
- around it, do not silently overturn it. Cite matching `id`s in the plan.
132
+ A matching `domain-invariant` is a hard constraint — violating it = regression,
133
+ surface the conflict to the user before proceeding. A matching
134
+ `architecture-decision` explains *why* the current shape exists; plan around
135
+ it, do not silently overturn it. Cite matching `id`s in the plan.
136
136
  See [`engineering-memory-data-format`](../../../docs/guidelines/agent-infra/engineering-memory-data-format.md)
137
137
  for the schema.
138
138
 
@@ -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