@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.
- 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/direct-answers.md +34 -49
- 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 +45 -52
- package/.agent-src/rules/no-roadmap-references.md +73 -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 +10 -71
- 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/.claude-plugin/marketplace.json +22 -11
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +90 -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 +178 -0
- package/docs/contracts/load-context-schema.md +1 -3
- 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/asking-and-brevity-examples.md +100 -0
- package/package.json +1 -1
- package/scripts/_one_off_phase4_dispatch_latency.py +108 -0
- package/scripts/_one_off_phase6_trigger_jaccard.py +92 -0
- package/scripts/_phase2_shim_helper.py +109 -0
- package/scripts/agent-config +10 -0
- package/scripts/ai_council/_one_off_2a4_acceptance.py +208 -0
- package/scripts/ai_council/_one_off_context_layer_v1_estimate.py +67 -0
- package/scripts/ai_council/_one_off_context_layer_v1_review.py +292 -0
- package/scripts/ai_council/_one_off_followups_review.py +259 -0
- package/scripts/ai_council/_one_off_nondestructive_inline_audit.py +209 -0
- package/scripts/ai_council/_one_off_phase_2a_budget_rebalance.py +257 -0
- package/scripts/ai_council/_one_off_phase_2a_post_revert.py +197 -0
- package/scripts/ai_council/_one_off_rule_hardening_v1.py +251 -0
- package/scripts/ai_council/_one_off_structural_open_questions.py +232 -0
- package/scripts/ai_council/_one_off_structural_optimization.py +144 -0
- package/scripts/ai_council/_one_off_structural_v3_gaps.py +252 -0
- package/scripts/ai_council/_one_off_structural_v3_review.py +240 -0
- package/scripts/check_always_budget.py +363 -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_phase_coupling.py +148 -0
- package/scripts/check_portability.py +2 -0
- package/scripts/check_references.py +29 -2
- package/scripts/check_safety_floor_untouched.py +125 -0
- package/scripts/command_suggester/loader.py +4 -1
- package/scripts/compress.py +59 -13
- package/scripts/generate_index.py +6 -2
- package/scripts/generate_ownership_matrix.py +323 -0
- package/scripts/hooks/augment-roadmap-progress.sh +57 -0
- package/scripts/install.py +49 -28
- package/scripts/lint_no_new_atomic_commands.py +12 -11
- 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/skill_linter.py +1 -0
- package/scripts/sync_agent_settings.py +25 -2
- package/scripts/update_counts.py +7 -0
|
@@ -9,23 +9,23 @@ source: package
|
|
|
9
9
|
## When to use
|
|
10
10
|
|
|
11
11
|
* Adding a new function, method, or behavior
|
|
12
|
-
* Fixing a bug (bug needs a regression test before the fix)
|
|
12
|
+
* Fixing a bug (the bug needs a regression test before the fix)
|
|
13
13
|
* Refactoring a unit whose current behavior is unclear
|
|
14
14
|
* Any task where expected behavior can be expressed as an assertion
|
|
15
15
|
|
|
16
16
|
Do NOT use when:
|
|
17
17
|
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* Writing throwaway prototype or spike code explicitly marked as exploration
|
|
19
|
+
* Generating boilerplate (migrations, config files, scaffolding)
|
|
20
|
+
* Editing pure documentation (`.md`, `AGENTS.md`, README)
|
|
21
21
|
* Working inside this `agent-config` package on skill/rule markdown
|
|
22
22
|
|
|
23
23
|
## Goal
|
|
24
24
|
|
|
25
|
-
* Drive implementation from a verified-failing test, not the agent's
|
|
26
|
-
belief that code "should work".
|
|
27
|
-
* Catch edge cases **before** production bugs.
|
|
28
|
-
* Leave every change with a regression test
|
|
25
|
+
* Drive implementation from a verified-failing test, not from the agent's
|
|
26
|
+
belief that the code "should work".
|
|
27
|
+
* Catch edge cases **before** they become production bugs.
|
|
28
|
+
* Leave every change with a regression test that runs in CI.
|
|
29
29
|
|
|
30
30
|
## The core discipline
|
|
31
31
|
|
|
@@ -38,7 +38,7 @@ Do NOT use when:
|
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
If step 2 is skipped, the test is not trusted — a test that has never
|
|
41
|
-
failed proves nothing.
|
|
41
|
+
failed proves nothing about the code under test.
|
|
42
42
|
|
|
43
43
|
## Procedure
|
|
44
44
|
|
|
@@ -46,21 +46,21 @@ failed proves nothing.
|
|
|
46
46
|
|
|
47
47
|
State in one sentence: *"When X happens, the system should do Y."*
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
one sentence
|
|
49
|
+
If you cannot state it in one sentence, the scope is too big — split into
|
|
50
|
+
multiple tests, each covering one sentence.
|
|
51
51
|
|
|
52
52
|
### 2. Write the failing test first
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Write the smallest test that expresses the sentence from step 1.
|
|
55
55
|
|
|
56
|
-
* One assertion per behavior (multiple assertions OK only when
|
|
57
|
-
the same single behavior).
|
|
56
|
+
* One assertion per behavior (multiple assertions are OK only when they
|
|
57
|
+
describe the same single behavior).
|
|
58
58
|
* Real code paths, not mocks — mock only at I/O boundaries (HTTP, DB, time).
|
|
59
|
-
*
|
|
59
|
+
* Use a descriptive name: `it_rejects_empty_email`, not `test_email_1`.
|
|
60
60
|
|
|
61
61
|
### 3. Run the test and watch it fail
|
|
62
62
|
|
|
63
|
-
Execute the single test (targeted, not full suite):
|
|
63
|
+
Execute the single test (targeted, not the full suite):
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
66
|
# PHP/Pest
|
|
@@ -72,26 +72,27 @@ npx vitest run --testNamePattern "rejects empty email"
|
|
|
72
72
|
|
|
73
73
|
Required observations **before proceeding**:
|
|
74
74
|
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
do not start writing production code.
|
|
75
|
+
* The test **fails** (not errors).
|
|
76
|
+
* The failure message matches what you expected (missing behavior, not typo).
|
|
77
|
+
* If the test passes immediately → it does not test what you think. Fix
|
|
78
|
+
the test, do not start writing production code.
|
|
79
79
|
|
|
80
80
|
### 4. Write minimum code to pass
|
|
81
81
|
|
|
82
|
-
**
|
|
82
|
+
Add **just enough** production code to make the test green. No extra
|
|
83
83
|
features, no unrelated refactoring, no "while I'm here" cleanups.
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
test
|
|
85
|
+
If you feel the urge to add a parameter, edge case, or helper not covered
|
|
86
|
+
by the current test — stop. That belongs in the next RED step, not this
|
|
87
|
+
GREEN step.
|
|
87
88
|
|
|
88
89
|
### 5. Run again and watch it pass
|
|
89
90
|
|
|
90
91
|
Re-run the same targeted command. Required:
|
|
91
92
|
|
|
92
|
-
*
|
|
93
|
-
* No previously green tests turned red.
|
|
94
|
-
*
|
|
93
|
+
* The new test passes.
|
|
94
|
+
* No previously green tests have turned red.
|
|
95
|
+
* Test output is clean (no new warnings, deprecations, or noise).
|
|
95
96
|
|
|
96
97
|
### 6. Refactor (only if green)
|
|
97
98
|
|
|
@@ -101,8 +102,8 @@ With all tests green, you may:
|
|
|
101
102
|
* Extract duplication into helpers
|
|
102
103
|
* Tighten types
|
|
103
104
|
|
|
104
|
-
Do **not** add new behavior during refactor — needs its own failing
|
|
105
|
-
first. Re-run tests after refactor to confirm still-green.
|
|
105
|
+
Do **not** add new behavior during refactor — that needs its own failing
|
|
106
|
+
test first. Re-run tests after the refactor to confirm still-green.
|
|
106
107
|
|
|
107
108
|
### 7. Repeat for the next behavior
|
|
108
109
|
|
|
@@ -110,25 +111,25 @@ Back to step 1 with the next single-sentence behavior.
|
|
|
110
111
|
|
|
111
112
|
## Output format
|
|
112
113
|
|
|
113
|
-
1.
|
|
114
|
-
2.
|
|
114
|
+
1. The failing test (file + test name) with captured failure output
|
|
115
|
+
2. The minimum-code diff that makes it pass
|
|
115
116
|
3. Captured green-run output
|
|
116
|
-
4.
|
|
117
|
+
4. Any refactor diff (optional)
|
|
117
118
|
|
|
118
119
|
## Anti-rationalizations table
|
|
119
120
|
|
|
120
|
-
The urge to skip TDD is strongest
|
|
121
|
-
rationalization and reject it:
|
|
121
|
+
The urge to skip TDD is strongest on tasks where TDD matters most. Name
|
|
122
|
+
the rationalization and reject it:
|
|
122
123
|
|
|
123
124
|
| Thought | Reality |
|
|
124
125
|
|---|---|
|
|
125
|
-
| "
|
|
126
|
-
| "I'll add the test after the code works" | A test written after code passes on first run — never failed.
|
|
127
|
-
| "I already ran it manually" | Manual runs not repeatable.
|
|
128
|
-
| "Deleting code I just wrote is wasteful" | Sunk cost.
|
|
129
|
-
| "I'll keep the code as reference while I write the test" | You will adapt it. That is test-after-the-fact with extra steps. Delete it. |
|
|
130
|
-
| "I just need to explore the API first" | Spike on a throwaway branch. Then delete and restart with TDD. |
|
|
131
|
-
| "The test is too hard to write" |
|
|
126
|
+
| "This is too simple to need a test" | Simple code still breaks. A test takes less time than one debug cycle. |
|
|
127
|
+
| "I'll add the test after the code works" | A test written after code passes on the first run — it has never failed. It does not prove the code is correct. |
|
|
128
|
+
| "I already ran it manually" | Manual runs are not repeatable. The next edit breaks it silently. |
|
|
129
|
+
| "Deleting this code I just wrote is wasteful" | Sunk cost. The cheap path is: delete, write the test, reimplement minimally. |
|
|
130
|
+
| "I'll keep the code as reference while I write the test" | You will read it and adapt it. That is test-after-the-fact with extra steps. Delete it. |
|
|
131
|
+
| "I just need to explore the API first" | Spike it on a throwaway branch. Then delete it and restart with TDD. |
|
|
132
|
+
| "The test is too hard to write" | That signals a design problem in the code, not in the test. Listen to it. |
|
|
132
133
|
| "This bug is urgent, no time for a test" | The test **is** the fastest path to a verified fix. Guessing takes longer. |
|
|
133
134
|
|
|
134
135
|
|
|
@@ -162,7 +163,7 @@ final class EmailValidator
|
|
|
162
163
|
}
|
|
163
164
|
```
|
|
164
165
|
|
|
165
|
-
Run filter again → passes. No additional rules (format, MX, length)
|
|
166
|
+
Run the filter again → passes. No additional rules (format, MX, length)
|
|
166
167
|
until a next failing test drives them.
|
|
167
168
|
|
|
168
169
|
### JS / Vitest
|
|
@@ -184,7 +185,7 @@ it('retries a failing operation up to 3 times', async () => {
|
|
|
184
185
|
```
|
|
185
186
|
|
|
186
187
|
Run: `npx vitest run --testNamePattern "retries a failing"` → fails
|
|
187
|
-
(`retry` undefined).
|
|
188
|
+
(`retry` is undefined).
|
|
188
189
|
|
|
189
190
|
```ts
|
|
190
191
|
// src/retry.ts — GREEN (minimum)
|
|
@@ -197,21 +198,22 @@ export async function retry<T>(op: () => Promise<T>): Promise<T> {
|
|
|
197
198
|
}
|
|
198
199
|
```
|
|
199
200
|
|
|
200
|
-
Run again → passes. Configurable attempt count, backoff, jitter all
|
|
201
|
+
Run again → passes. Configurable attempt count, backoff, and jitter all
|
|
201
202
|
wait for their own failing tests.
|
|
202
203
|
|
|
203
204
|
## Gotchas
|
|
204
205
|
|
|
205
206
|
* Running the full suite instead of a filtered test hides the RED→GREEN
|
|
206
207
|
signal in noise. Always target first.
|
|
207
|
-
* A test that passes on the very first run is not TDD — written
|
|
208
|
-
|
|
208
|
+
* A test that passes on the very first run is not TDD — it was written
|
|
209
|
+
against code that already exists.
|
|
209
210
|
* `expect()` with three or four assertions on unrelated fields describes
|
|
210
211
|
multiple behaviors. Split them.
|
|
211
|
-
* Snapshot tests invert the discipline — they generate the expected
|
|
212
|
-
|
|
213
|
-
contract (CLI, SQL strings).
|
|
214
|
-
* Mocking the thing under test (instead of its I/O) tests the mock
|
|
212
|
+
* Snapshot tests invert the discipline — they generate the expected value
|
|
213
|
+
from the code. Only use snapshots where human-readable output is the
|
|
214
|
+
contract (CLI output, SQL strings).
|
|
215
|
+
* Mocking the thing under test (instead of its I/O) tests the mock, not
|
|
216
|
+
the code.
|
|
215
217
|
|
|
216
218
|
## Do NOT
|
|
217
219
|
|
|
@@ -219,22 +221,22 @@ wait for their own failing tests.
|
|
|
219
221
|
and has been observed to fail
|
|
220
222
|
* Do NOT accept a test that never failed as evidence the code works
|
|
221
223
|
* Do NOT bundle refactors into the GREEN step
|
|
222
|
-
* Do NOT silence a flaky test — diagnose or delete it
|
|
223
|
-
* Do NOT skip the targeted RED-run because "I know it fails"
|
|
224
|
+
* Do NOT silence a flaky test — diagnose it, or delete it
|
|
225
|
+
* Do NOT skip the targeted RED-run because "I just wrote it, I know it fails"
|
|
224
226
|
|
|
225
227
|
## Anti-patterns
|
|
226
228
|
|
|
227
229
|
* `it('works')` — no behavior described
|
|
228
230
|
* One test covering "and/and/and" — split per behavior
|
|
229
|
-
* Test
|
|
230
|
-
* Test
|
|
231
|
+
* Test that reaches into private state instead of testing observable behavior
|
|
232
|
+
* Test that duplicates the production code's algorithm (tautology)
|
|
231
233
|
|
|
232
234
|
## When to hand over to another skill
|
|
233
235
|
|
|
234
236
|
* Quality tools, PHPStan, ECS, Rector → [`quality-tools`](../quality-tools/SKILL.md)
|
|
235
237
|
* Full Pest conventions, Laravel testing helpers → [`pest-testing`](../pest-testing/SKILL.md)
|
|
236
238
|
* Running tests inside Docker → [`tests-execute`](../tests-execute/SKILL.md)
|
|
237
|
-
* Investigating why a test
|
|
239
|
+
* Investigating why a test is failing for non-obvious reasons →
|
|
238
240
|
[`systematic-debugging`](../systematic-debugging/SKILL.md)
|
|
239
241
|
|
|
240
242
|
## Validation checklist
|
|
@@ -243,10 +245,10 @@ Before marking TDD work complete:
|
|
|
243
245
|
|
|
244
246
|
* [ ] Every new behavior has a test
|
|
245
247
|
* [ ] Each test was observed to fail first, with a matching failure message
|
|
246
|
-
* [ ]
|
|
248
|
+
* [ ] The minimum code was written to turn each RED into GREEN
|
|
247
249
|
* [ ] All targeted tests pass
|
|
248
|
-
* [ ] No adjacent test turned red
|
|
249
|
-
* [ ]
|
|
250
|
+
* [ ] No adjacent test has turned red
|
|
251
|
+
* [ ] Test output is clean (no new warnings or deprecations)
|
|
250
252
|
|
|
251
253
|
See also [`developer-like-execution`](../developer-like-execution/SKILL.md)
|
|
252
254
|
for the broader think → analyze → verify loop this skill plugs into.
|
|
@@ -148,7 +148,6 @@ Replace dynamic `getPdo()` probing with explicit config:
|
|
|
148
148
|
|
|
149
149
|
## Related project docs
|
|
150
150
|
|
|
151
|
-
- `agents/roadmaps/test-performance-refactor.md` — active roadmap for this project
|
|
152
151
|
- `agents/docs/seeders.md` — seeder conventions (if exists)
|
|
153
152
|
|
|
154
153
|
## Output format
|
|
@@ -18,11 +18,11 @@ Use this skill when:
|
|
|
18
18
|
|
|
19
19
|
### 0. Understand current setup
|
|
20
20
|
|
|
21
|
-
Before changing routing:
|
|
21
|
+
Before changing any routing configuration:
|
|
22
22
|
|
|
23
|
-
1. Check existing proxy — `docker ps | grep traefik
|
|
24
|
-
2. Review docker-compose for existing labels and network config
|
|
25
|
-
3. Check `/etc/hosts` or dnsmasq for existing domain mappings
|
|
23
|
+
1. **Check existing proxy setup** — is Traefik already running? Check `docker ps | grep traefik`.
|
|
24
|
+
2. **Review docker-compose** — read `docker-compose.yml` for existing labels and network config.
|
|
25
|
+
3. **Check DNS/hosts** — review `/etc/hosts` or dnsmasq for existing domain mappings.
|
|
26
26
|
|
|
27
27
|
### Architecture
|
|
28
28
|
|
|
@@ -11,9 +11,9 @@ source: package
|
|
|
11
11
|
* Just before claiming a task, feature, fix, or refactor is complete
|
|
12
12
|
* Just before proposing `/commit`, `/create-pr`, or pushing
|
|
13
13
|
* Before answering "is it ready?", "can I merge?", "does it work?"
|
|
14
|
-
* After a sequence of edits, when next step
|
|
15
|
-
* Whenever "should work", "looks good", "probably fine" is
|
|
16
|
-
appear in a reply
|
|
14
|
+
* After a sequence of edits, when next step would be reporting to the user
|
|
15
|
+
* Whenever the wording "should work", "looks good", "probably fine" is
|
|
16
|
+
about to appear in a reply
|
|
17
17
|
|
|
18
18
|
Do NOT use when:
|
|
19
19
|
|
|
@@ -40,11 +40,11 @@ runs are stale the moment another edit lands.
|
|
|
40
40
|
|
|
41
41
|
### 1. Identify the claim you are about to make
|
|
42
42
|
|
|
43
|
-
Examples: *"all tests pass"*, *"ready for PR"*, *"refactor
|
|
44
|
-
*"bug is fixed"*.
|
|
43
|
+
Examples: *"all tests pass"*, *"this is ready for PR"*, *"the refactor
|
|
44
|
+
is done"*, *"the bug is fixed"*.
|
|
45
45
|
|
|
46
|
-
Each claim maps to a specific verification command. Write the
|
|
47
|
-
before running anything:
|
|
46
|
+
Each claim maps to a specific verification command. Write down the
|
|
47
|
+
mapping before running anything:
|
|
48
48
|
|
|
49
49
|
| Claim | Evidence command |
|
|
50
50
|
|---|---|
|
|
@@ -58,11 +58,11 @@ before running anything:
|
|
|
58
58
|
|
|
59
59
|
### 2. Run the command fresh
|
|
60
60
|
|
|
61
|
-
* Run against current working tree, not a cached summary.
|
|
62
|
-
* PHP projects inside Docker: run inside the container (see
|
|
61
|
+
* Run against the current working tree, not a cached summary.
|
|
62
|
+
* For PHP projects inside Docker: run inside the container (see
|
|
63
63
|
[`docker`](../docker/SKILL.md) and [`tests-execute`](../tests-execute/SKILL.md)).
|
|
64
64
|
* Use targeted runs during iteration (`--filter=`, `--testNamePattern`).
|
|
65
|
-
Run full suite only in the final verification pass.
|
|
65
|
+
Run the full suite only in the final verification pass.
|
|
66
66
|
|
|
67
67
|
### 3. Read the full output
|
|
68
68
|
|
|
@@ -87,20 +87,20 @@ errors on `app/Services/`."* — not *"everything looks good"*.
|
|
|
87
87
|
|
|
88
88
|
## The end-of-work sequence (PHP projects)
|
|
89
89
|
|
|
90
|
-
When all code changes are done and ready to report completion:
|
|
90
|
+
When all code changes are done and you are ready to report completion:
|
|
91
91
|
|
|
92
|
-
1. **Targeted tests** — test(s) covering the changed code pass
|
|
92
|
+
1. **Targeted tests** — the test(s) covering the changed code pass
|
|
93
93
|
2. **Full test suite** — only after targeted pass is green
|
|
94
94
|
3. **PHPStan** → **Rector --dry-run** → **ECS** → **PHPStan** (second pass
|
|
95
|
-
catches issues Rector / ECS introduced)
|
|
95
|
+
catches issues Rector / ECS may have introduced)
|
|
96
96
|
4. Fix any output from steps 1–3 and restart the sequence
|
|
97
97
|
5. Only then: claim completion or suggest `/commit`, push, or PR
|
|
98
98
|
|
|
99
|
-
Do not run the full quality pipeline between intermediate edits —
|
|
100
|
-
time and tokens. Use it once, at the end.
|
|
99
|
+
Do not run the full quality pipeline between intermediate edits — it
|
|
100
|
+
burns time and tokens. Use it once, at the end.
|
|
101
101
|
|
|
102
|
-
See [`quality-tools`](../quality-tools/SKILL.md) for exact commands
|
|
103
|
-
tool.
|
|
102
|
+
See [`quality-tools`](../quality-tools/SKILL.md) for the exact commands
|
|
103
|
+
per tool.
|
|
104
104
|
|
|
105
105
|
## Minimum evidence per task type
|
|
106
106
|
|
|
@@ -124,7 +124,7 @@ is sound", "compiles" (unless compilation itself is the contract).
|
|
|
124
124
|
When reporting completion to the user:
|
|
125
125
|
|
|
126
126
|
1. **What was changed** — one line summary per changed file / component
|
|
127
|
-
2. **Verification run** — exact command and its exit code
|
|
127
|
+
2. **Verification run** — the exact command and its exit code
|
|
128
128
|
3. **Result** — numeric breakdown (tests passed/failed/skipped, errors,
|
|
129
129
|
warnings)
|
|
130
130
|
4. **Caveats** — anything the output flagged but you chose to accept
|
|
@@ -132,14 +132,16 @@ When reporting completion to the user:
|
|
|
132
132
|
|
|
133
133
|
## Gotchas
|
|
134
134
|
|
|
135
|
-
* "
|
|
136
|
-
analyzed-file count.
|
|
135
|
+
* A "no output" result from a linter is not proof it ran — check the
|
|
136
|
+
exit code and the analyzed-file count.
|
|
137
137
|
* Silencing a warning with `@phpstan-ignore-next-line` or `// @ts-expect-error`
|
|
138
138
|
without a reason code passes the linter but defers the real problem.
|
|
139
|
-
* Running tests with `--stop-on-failure` then reporting "passed" —
|
|
140
|
-
ran until the first failure; the green streak after is
|
|
139
|
+
* Running tests with `--stop-on-failure` then reporting "passed" — it
|
|
140
|
+
only ran until the first failure; the green streak after it is
|
|
141
|
+
unexamined.
|
|
141
142
|
* Cached static-analysis results (`--cache` directories) can report
|
|
142
|
-
clean after you
|
|
143
|
+
clean after you have broken something; clear the cache when the
|
|
144
|
+
change is large.
|
|
143
145
|
* Running the test suite on the wrong branch (forgot to switch or
|
|
144
146
|
rebase) — verify `git status` and `git log -1` before the final gate.
|
|
145
147
|
* A previously green PHPStan run in the same conversation is stale as
|
|
@@ -165,13 +167,13 @@ When reporting completion to the user:
|
|
|
165
167
|
* Do NOT suppress warnings or skip tests to pass the gate
|
|
166
168
|
* Do NOT report only the last line of output — read the whole thing
|
|
167
169
|
* Do NOT run the full quality pipeline between intermediate edits —
|
|
168
|
-
run once at the end
|
|
170
|
+
run it once at the end
|
|
169
171
|
|
|
170
172
|
## When to hand over to another skill
|
|
171
173
|
|
|
172
174
|
* Exact PHPStan / Rector / ECS commands → [`quality-tools`](../quality-tools/SKILL.md)
|
|
173
175
|
* Running tests inside Docker → [`tests-execute`](../tests-execute/SKILL.md)
|
|
174
|
-
* Writing the regression test the gate requires →
|
|
176
|
+
* Writing the regression test that the gate requires →
|
|
175
177
|
[`test-driven-development`](../test-driven-development/SKILL.md)
|
|
176
178
|
* Diagnosing why the gate failed → [`systematic-debugging`](../systematic-debugging/SKILL.md)
|
|
177
179
|
* Committing once the gate is green → [`git-workflow`](../git-workflow/SKILL.md)
|
|
@@ -180,7 +182,7 @@ When reporting completion to the user:
|
|
|
180
182
|
|
|
181
183
|
Before sending a completion message:
|
|
182
184
|
|
|
183
|
-
* [ ] Every claim maps to a command run in this turn
|
|
185
|
+
* [ ] Every claim in the message maps to a command run in this turn
|
|
184
186
|
* [ ] Exit code of each command is read and matches the claim
|
|
185
187
|
* [ ] Output is quoted with numeric counts, not paraphrased
|
|
186
188
|
* [ ] No warnings or skips are hidden
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.17.0"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"./.claude/skills/agent-docs-writing",
|
|
20
20
|
"./.claude/skills/agent-handoff",
|
|
21
21
|
"./.claude/skills/agent-status",
|
|
22
|
+
"./.claude/skills/agents",
|
|
22
23
|
"./.claude/skills/agents-audit",
|
|
23
24
|
"./.claude/skills/agents-cleanup",
|
|
24
25
|
"./.claude/skills/agents-prepare",
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
"./.claude/skills/chat-history-checkpoint",
|
|
42
43
|
"./.claude/skills/chat-history-clear",
|
|
43
44
|
"./.claude/skills/chat-history-resume",
|
|
45
|
+
"./.claude/skills/chat-history-show",
|
|
44
46
|
"./.claude/skills/check-current-md",
|
|
45
47
|
"./.claude/skills/check-refs",
|
|
46
48
|
"./.claude/skills/code-refactoring",
|
|
@@ -51,21 +53,24 @@
|
|
|
51
53
|
"./.claude/skills/commit-in-chunks",
|
|
52
54
|
"./.claude/skills/composer-packages",
|
|
53
55
|
"./.claude/skills/compress",
|
|
56
|
+
"./.claude/skills/context",
|
|
54
57
|
"./.claude/skills/context-authoring",
|
|
55
58
|
"./.claude/skills/context-create",
|
|
56
59
|
"./.claude/skills/context-document",
|
|
57
60
|
"./.claude/skills/context-refactor",
|
|
58
61
|
"./.claude/skills/conventional-commits-writing",
|
|
62
|
+
"./.claude/skills/copilot-agents",
|
|
59
63
|
"./.claude/skills/copilot-agents-init",
|
|
60
64
|
"./.claude/skills/copilot-agents-optimization",
|
|
61
65
|
"./.claude/skills/copilot-agents-optimize",
|
|
62
66
|
"./.claude/skills/copilot-config",
|
|
63
67
|
"./.claude/skills/council",
|
|
68
|
+
"./.claude/skills/council-default",
|
|
64
69
|
"./.claude/skills/council-design",
|
|
65
70
|
"./.claude/skills/council-optimize",
|
|
66
71
|
"./.claude/skills/council-pr",
|
|
67
72
|
"./.claude/skills/create-pr",
|
|
68
|
-
"./.claude/skills/create-pr-description",
|
|
73
|
+
"./.claude/skills/create-pr-description-only",
|
|
69
74
|
"./.claude/skills/dashboard-design",
|
|
70
75
|
"./.claude/skills/data-flow-mapper",
|
|
71
76
|
"./.claude/skills/database",
|
|
@@ -74,8 +79,6 @@
|
|
|
74
79
|
"./.claude/skills/design-review",
|
|
75
80
|
"./.claude/skills/devcontainer",
|
|
76
81
|
"./.claude/skills/developer-like-execution",
|
|
77
|
-
"./.claude/skills/do-and-judge",
|
|
78
|
-
"./.claude/skills/do-in-steps",
|
|
79
82
|
"./.claude/skills/docker",
|
|
80
83
|
"./.claude/skills/dto-creator",
|
|
81
84
|
"./.claude/skills/e2e-heal",
|
|
@@ -96,10 +99,10 @@
|
|
|
96
99
|
"./.claude/skills/fix",
|
|
97
100
|
"./.claude/skills/fix-ci",
|
|
98
101
|
"./.claude/skills/fix-portability",
|
|
99
|
-
"./.claude/skills/fix-pr
|
|
100
|
-
"./.claude/skills/fix-pr-
|
|
101
|
-
"./.claude/skills/fix-pr-
|
|
102
|
-
"./.claude/skills/fix-
|
|
102
|
+
"./.claude/skills/fix-pr",
|
|
103
|
+
"./.claude/skills/fix-pr-bots",
|
|
104
|
+
"./.claude/skills/fix-pr-developers",
|
|
105
|
+
"./.claude/skills/fix-refs",
|
|
103
106
|
"./.claude/skills/fix-seeder",
|
|
104
107
|
"./.claude/skills/flux",
|
|
105
108
|
"./.claude/skills/git-workflow",
|
|
@@ -113,7 +116,10 @@
|
|
|
113
116
|
"./.claude/skills/judge",
|
|
114
117
|
"./.claude/skills/judge-bug-hunter",
|
|
115
118
|
"./.claude/skills/judge-code-quality",
|
|
119
|
+
"./.claude/skills/judge-on-diff",
|
|
116
120
|
"./.claude/skills/judge-security-auditor",
|
|
121
|
+
"./.claude/skills/judge-solo",
|
|
122
|
+
"./.claude/skills/judge-steps",
|
|
117
123
|
"./.claude/skills/judge-test-coverage",
|
|
118
124
|
"./.claude/skills/laravel",
|
|
119
125
|
"./.claude/skills/laravel-horizon",
|
|
@@ -131,12 +137,15 @@
|
|
|
131
137
|
"./.claude/skills/logging-monitoring",
|
|
132
138
|
"./.claude/skills/mcp",
|
|
133
139
|
"./.claude/skills/md-language-check",
|
|
140
|
+
"./.claude/skills/memory",
|
|
134
141
|
"./.claude/skills/memory-add",
|
|
135
|
-
"./.claude/skills/memory-
|
|
142
|
+
"./.claude/skills/memory-load",
|
|
136
143
|
"./.claude/skills/memory-promote",
|
|
144
|
+
"./.claude/skills/memory-propose",
|
|
137
145
|
"./.claude/skills/merge-conflicts",
|
|
138
146
|
"./.claude/skills/migration-creator",
|
|
139
147
|
"./.claude/skills/mode",
|
|
148
|
+
"./.claude/skills/module",
|
|
140
149
|
"./.claude/skills/module-create",
|
|
141
150
|
"./.claude/skills/module-explore",
|
|
142
151
|
"./.claude/skills/module-management",
|
|
@@ -146,8 +155,9 @@
|
|
|
146
155
|
"./.claude/skills/optimize",
|
|
147
156
|
"./.claude/skills/optimize-agents",
|
|
148
157
|
"./.claude/skills/optimize-augmentignore",
|
|
149
|
-
"./.claude/skills/optimize-rtk
|
|
158
|
+
"./.claude/skills/optimize-rtk",
|
|
150
159
|
"./.claude/skills/optimize-skills",
|
|
160
|
+
"./.claude/skills/override",
|
|
151
161
|
"./.claude/skills/override-create",
|
|
152
162
|
"./.claude/skills/override-manage",
|
|
153
163
|
"./.claude/skills/override-management",
|
|
@@ -173,7 +183,6 @@
|
|
|
173
183
|
"./.claude/skills/project-analyzer",
|
|
174
184
|
"./.claude/skills/project-docs",
|
|
175
185
|
"./.claude/skills/project-health",
|
|
176
|
-
"./.claude/skills/propose-memory",
|
|
177
186
|
"./.claude/skills/quality-fix",
|
|
178
187
|
"./.claude/skills/quality-tools",
|
|
179
188
|
"./.claude/skills/react-shadcn-ui",
|
|
@@ -186,6 +195,7 @@
|
|
|
186
195
|
"./.claude/skills/requesting-code-review",
|
|
187
196
|
"./.claude/skills/review-changes",
|
|
188
197
|
"./.claude/skills/review-routing",
|
|
198
|
+
"./.claude/skills/roadmap",
|
|
189
199
|
"./.claude/skills/roadmap-create",
|
|
190
200
|
"./.claude/skills/roadmap-execute",
|
|
191
201
|
"./.claude/skills/roadmap-management",
|
|
@@ -211,6 +221,7 @@
|
|
|
211
221
|
"./.claude/skills/terragrunt",
|
|
212
222
|
"./.claude/skills/test-driven-development",
|
|
213
223
|
"./.claude/skills/test-performance",
|
|
224
|
+
"./.claude/skills/tests",
|
|
214
225
|
"./.claude/skills/tests-create",
|
|
215
226
|
"./.claude/skills/tests-execute",
|
|
216
227
|
"./.claude/skills/threat-model",
|
package/AGENTS.md
CHANGED
|
@@ -103,8 +103,8 @@ and
|
|
|
103
103
|
```
|
|
104
104
|
.agent-src.uncompressed/ ← edit here
|
|
105
105
|
skills/ (129 skills)
|
|
106
|
-
rules/ (
|
|
107
|
-
commands/ (
|
|
106
|
+
rules/ (58 rules)
|
|
107
|
+
commands/ (95 commands)
|
|
108
108
|
personas/ (7 personas)
|
|
109
109
|
templates/ (AGENTS.md, copilot-instructions.md, skill.md, …)
|
|
110
110
|
contexts/
|