@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.
- package/.agent-src/commands/{agents-audit.md → agents/audit.md} +4 -3
- package/.agent-src/commands/{agents-cleanup.md → agents/cleanup.md} +12 -6
- package/.agent-src/commands/{agents-prepare.md → agents/prepare.md} +4 -3
- package/.agent-src/commands/agents.md +46 -0
- package/.agent-src/commands/{chat-history-checkpoint.md → chat-history/checkpoint.md} +4 -4
- package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +4 -4
- package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
- package/.agent-src/commands/chat-history/show.md +107 -0
- package/.agent-src/commands/chat-history.md +33 -89
- package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
- package/.agent-src/commands/commit.md +22 -2
- package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
- package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
- package/.agent-src/commands/context.md +44 -0
- package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
- package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
- package/.agent-src/commands/copilot-agents.md +44 -0
- package/.agent-src/commands/council/default.md +221 -0
- package/.agent-src/commands/{council-design.md → council/design.md} +6 -5
- package/.agent-src/commands/{council-optimize.md → council/optimize.md} +7 -6
- package/.agent-src/commands/{council-pr.md → council/pr.md} +6 -5
- package/.agent-src/commands/council.md +47 -212
- package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
- package/.agent-src/commands/create-pr.md +26 -5
- package/.agent-src/commands/{feature-dev.md → feature/dev.md} +5 -10
- package/.agent-src/commands/{feature-explore.md → feature/explore.md} +4 -8
- package/.agent-src/commands/{feature-plan.md → feature/plan.md} +4 -8
- package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -8
- package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +6 -10
- package/.agent-src/commands/feature.md +6 -12
- package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -8
- package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -8
- package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -8
- package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -8
- package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -11
- package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -8
- package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -8
- package/.agent-src/commands/fix.md +7 -13
- package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +4 -3
- package/.agent-src/commands/judge/solo.md +90 -0
- package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +4 -3
- package/.agent-src/commands/judge.md +35 -70
- package/.agent-src/commands/{memory-add.md → memory/add.md} +4 -3
- package/.agent-src/commands/{memory-full.md → memory/load.md} +4 -3
- package/.agent-src/commands/{memory-promote.md → memory/promote.md} +4 -3
- package/.agent-src/commands/{propose-memory.md → memory/propose.md} +4 -3
- package/.agent-src/commands/memory.md +48 -0
- package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
- package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
- package/.agent-src/commands/module.md +44 -0
- package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +4 -8
- package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -9
- package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -8
- package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +4 -8
- package/.agent-src/commands/optimize.md +4 -10
- package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
- package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
- package/.agent-src/commands/override.md +44 -0
- package/.agent-src/commands/{roadmap-create.md → roadmap/create.md} +4 -3
- package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
- package/.agent-src/commands/roadmap.md +44 -0
- package/.agent-src/commands/{tests-create.md → tests/create.md} +4 -3
- package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
- package/.agent-src/commands/tests.md +44 -0
- package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
- package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
- package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
- package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
- package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
- package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
- package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
- package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
- package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -0
- package/.agent-src/contexts/judges/no-consolidate-rationale.md +102 -0
- package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -0
- package/.agent-src/rules/artifact-engagement-recording.md +13 -69
- package/.agent-src/rules/ask-when-uncertain.md +27 -42
- package/.agent-src/rules/augment-portability.md +15 -61
- package/.agent-src/rules/augment-source-of-truth.md +27 -93
- package/.agent-src/rules/cli-output-handling.md +10 -76
- package/.agent-src/rules/command-suggestion-policy.md +18 -59
- package/.agent-src/rules/commit-conventions.md +17 -14
- package/.agent-src/rules/context-hygiene.md +6 -0
- package/.agent-src/rules/direct-answers.md +35 -59
- package/.agent-src/rules/docker-commands.md +5 -5
- package/.agent-src/rules/docs-sync.md +15 -69
- package/.agent-src/rules/language-and-tone.md +48 -72
- package/.agent-src/rules/missing-tool-handling.md +28 -22
- package/.agent-src/rules/no-cheap-questions.md +39 -53
- package/.agent-src/rules/no-roadmap-references.md +73 -0
- package/.agent-src/rules/onboarding-gate.md +7 -0
- package/.agent-src/rules/package-ci-checks.md +21 -61
- package/.agent-src/rules/preservation-guard.md +64 -29
- package/.agent-src/rules/review-routing-awareness.md +24 -43
- package/.agent-src/rules/roadmap-progress-sync.md +31 -65
- package/.agent-src/rules/rule-type-governance.md +28 -0
- package/.agent-src/rules/security-sensitive-stop.md +8 -8
- package/.agent-src/rules/skill-quality.md +16 -48
- package/.agent-src/rules/slash-command-routing-policy.md +7 -4
- package/.agent-src/rules/think-before-action.md +52 -42
- package/.agent-src/rules/tool-safety.md +19 -16
- package/.agent-src/rules/ui-audit-gate.md +24 -38
- package/.agent-src/rules/user-interaction.md +13 -68
- package/.agent-src/skills/ai-council/SKILL.md +2 -0
- package/.agent-src/skills/api-testing/SKILL.md +1 -1
- package/.agent-src/skills/check-refs/SKILL.md +59 -40
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +5 -5
- package/.agent-src/skills/developer-like-execution/SKILL.md +4 -4
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
- package/.agent-src/skills/flux/SKILL.md +30 -10
- package/.agent-src/skills/github-ci/SKILL.md +2 -2
- package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
- package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
- package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
- package/.agent-src/skills/lint-skills/SKILL.md +57 -39
- package/.agent-src/skills/md-language-check/SKILL.md +61 -39
- package/.agent-src/skills/override-management/SKILL.md +5 -5
- package/.agent-src/skills/quality-tools/SKILL.md +2 -2
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
- package/.agent-src/skills/readme-reviewer/SKILL.md +30 -29
- package/.agent-src/skills/readme-writing/SKILL.md +78 -53
- package/.agent-src/skills/readme-writing-package/SKILL.md +50 -47
- package/.agent-src/skills/receiving-code-review/SKILL.md +52 -47
- package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
- package/.agent-src/skills/security/SKILL.md +7 -2
- package/.agent-src/skills/security-audit/SKILL.md +7 -3
- package/.agent-src/skills/systematic-debugging/SKILL.md +68 -60
- package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
- package/.agent-src/skills/test-performance/SKILL.md +0 -1
- package/.agent-src/skills/traefik/SKILL.md +4 -4
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +28 -26
- package/.agent-src/templates/roadmaps.md +4 -0
- package/.claude-plugin/marketplace.json +22 -11
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +125 -1
- package/README.md +18 -17
- package/docs/architecture.md +4 -6
- package/docs/catalog.md +67 -39
- package/docs/contracts/STABILITY.md +13 -7
- package/docs/contracts/adr-chat-history-split.md +1 -3
- package/docs/contracts/adr-command-suggestion.md +0 -2
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
- package/docs/contracts/adr-product-ui-track.md +3 -6
- package/docs/contracts/adr-prompt-driven-execution.md +3 -4
- package/docs/contracts/agent-memory-contract.md +6 -11
- package/docs/contracts/artifact-engagement-flow.md +6 -9
- package/docs/contracts/command-clusters.md +56 -46
- package/docs/contracts/command-suggestion-flow.md +1 -3
- package/docs/contracts/context-paths.md +99 -0
- package/docs/contracts/file-ownership-matrix.json +6722 -0
- package/docs/contracts/file-ownership-matrix.md +134 -0
- package/docs/contracts/implement-ticket-flow.md +6 -9
- package/docs/contracts/linear-ai-rules-inclusion.md +0 -1
- package/docs/contracts/linear-ai-three-layers.md +0 -2
- package/docs/contracts/load-context-budget-model.md +258 -0
- package/docs/contracts/load-context-schema.md +21 -3
- package/docs/contracts/roadmap-complexity-standard.md +137 -0
- package/docs/contracts/rule-interactions.md +0 -1
- package/docs/contracts/rule-priority-hierarchy.md +1 -1
- package/docs/contracts/ui-track-flow.md +7 -17
- package/docs/customization.md +2 -0
- package/docs/getting-started.md +5 -4
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
- package/docs/guidelines/agent-infra/direct-answers-demos.md +145 -0
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
- package/package.json +1 -1
- package/scripts/_phase2_shim_helper.py +109 -0
- package/scripts/agent-config +30 -0
- package/scripts/ai_council/one_off_archive/2026-05/README.md +45 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_2a4_acceptance.py +208 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +206 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_estimate.py +67 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_review.py +292 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_followups_review.py +259 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_nondestructive_inline_audit.py +209 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase4_dispatch_latency.py +108 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase6_trigger_jaccard.py +92 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_budget_rebalance.py +257 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_post_revert.py +197 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_rule_hardening_v1.py +251 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_open_questions.py +232 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +144 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_v3_gaps.py +252 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_v3_review.py +240 -0
- package/scripts/build_rule_trigger_matrix.py +360 -0
- package/scripts/check_always_budget.py +402 -45
- package/scripts/check_cluster_patterns.py +159 -0
- package/scripts/check_command_count_messaging.py +14 -7
- package/scripts/check_context_paths.py +201 -0
- package/scripts/check_no_roadmap_refs.py +155 -0
- package/scripts/check_one_off_location.py +81 -0
- package/scripts/check_phase_coupling.py +148 -0
- package/scripts/check_portability.py +2 -0
- package/scripts/check_references.py +35 -2
- package/scripts/check_safety_floor_untouched.py +125 -0
- package/scripts/command_suggester/loader.py +4 -1
- package/scripts/compress.py +64 -15
- package/scripts/context_hygiene_hook.py +173 -0
- package/scripts/generate_index.py +6 -2
- package/scripts/generate_ownership_matrix.py +323 -0
- package/scripts/hooks/augment-context-hygiene.sh +55 -0
- package/scripts/hooks/augment-onboarding-gate.sh +55 -0
- package/scripts/hooks/augment-roadmap-progress.sh +57 -0
- package/scripts/install.py +105 -45
- package/scripts/lint_examples.py +98 -0
- package/scripts/lint_no_new_atomic_commands.py +12 -11
- package/scripts/lint_roadmap_complexity.py +127 -0
- package/scripts/onboarding_gate_hook.py +137 -0
- package/scripts/requirements-evals.txt +1 -0
- package/scripts/roadmap_progress_hook.py +159 -0
- package/scripts/schemas/command.schema.json +4 -3
- package/scripts/schemas/rule.schema.json +5 -0
- package/scripts/skill_linter.py +1 -0
- package/scripts/sync_agent_settings.py +25 -2
- package/scripts/update_counts.py +7 -0
- /package/scripts/ai_council/{_one_off_rebalancing_audit.py → one_off_archive/2026-05/_one_off_rebalancing_audit.py} +0 -0
- /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
|
-
*
|
|
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
|
|
20
|
-
|
|
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
|
|
46
|
-
|
|
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
|
|
50
|
-
|
|
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
|
|
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 —
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
162
|
+
If the branch lives in a `git worktree`:
|
|
148
163
|
|
|
149
|
-
* Options 1, 2, 4 → `git worktree remove <path>` after
|
|
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** —
|
|
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/
|
|
159
|
-
|
|
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
|
|
164
|
-
|
|
165
|
-
* Option
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
*
|
|
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
|
|
174
|
-
|
|
175
|
-
* Do NOT
|
|
176
|
-
|
|
177
|
-
* Do NOT
|
|
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
|
-
*
|
|
182
|
-
|
|
183
|
-
*
|
|
184
|
-
|
|
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
|
-
*
|
|
189
|
-
* Rebasing stack → [`prepare-for-review`](../../commands/prepare-for-review.md)
|
|
190
|
-
*
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
*
|
|
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
|
-
|
|
198
|
-
|
|
199
|
-
* [ ]
|
|
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
|
|
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
|
|
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
|
-
-
|
|
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)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
145
|
-
|
|
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
|
|
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
|
-
|
|
155
|
-
|
|
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
|
-
|
|
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
|
-
|
|
139
|
-
|
|
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
|
-
|
|
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
|
-
|
|
26
|
-
|
|
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.
|
|
31
|
-
resolves `.agent-src.uncompressed/skills/` relative to cwd).
|
|
32
|
-
2. **Dispatch via runtime** —
|
|
35
|
+
### 1. Inspect the environment
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
43
|
+
Invoke the skill through the runtime dispatcher so the `execution:` block in
|
|
44
|
+
this skill's frontmatter governs the call:
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|