@event4u/agent-config 2.25.0 → 2.26.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/bug-fix.md +1 -0
- package/.agent-src/commands/feature/roadmap.md +2 -2
- package/.agent-src/commands/fix/seeder.md +3 -2
- package/.agent-src/commands/memory/add.md +3 -3
- package/.agent-src/commands/module/create.md +1 -0
- package/.agent-src/commands/module/explore.md +10 -6
- package/.agent-src/commands/onboard.md +9 -1
- package/.agent-src/commands/optimize/augmentignore.md +52 -20
- package/.agent-src/commands/optimize/rtk.md +56 -30
- package/.agent-src/commands/package-test.md +86 -10
- package/.agent-src/commands/quality-fix.md +49 -27
- package/.agent-src/commands/update-form-request-messages.md +2 -1
- package/.agent-src/contexts/augment-infrastructure.md +4 -7
- package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -1
- package/.agent-src/contexts/contracts/research-schema.md +1 -1
- package/.agent-src/contexts/execution/interrupt-examples.md +34 -0
- package/.agent-src/contexts/skills-and-commands.md +2 -2
- package/.agent-src/rules/architecture.md +24 -10
- package/.agent-src/rules/artifact-drafting-protocol.md +6 -0
- package/.agent-src/rules/augment-edit-discipline.md +28 -0
- package/.agent-src/rules/augment-source-of-truth.md +2 -2
- package/.agent-src/rules/autonomous-execution.md +31 -0
- package/.agent-src/rules/context-hygiene.md +1 -1
- package/.agent-src/rules/domain-adoption-policy.md +4 -5
- package/.agent-src/rules/domain-safety-disclaimer.md +114 -0
- package/.agent-src/rules/domain-safety-pii.md +142 -0
- package/.agent-src/rules/domain-safety-retention.md +86 -0
- package/.agent-src/rules/downstream-changes.md +4 -4
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +130 -0
- package/.agent-src/rules/git-history-discipline.md +99 -0
- package/.agent-src/rules/minimal-safe-diff.md +6 -0
- package/.agent-src/rules/no-roadmap-references.md +4 -2
- package/.agent-src/rules/user-interrupt-priority.md +46 -0
- package/.agent-src/rules/verify-before-complete.md +11 -2
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -1
- package/.agent-src/skills/ai-council/SKILL.md +1 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +58 -154
- package/.agent-src/skills/api-testing/SKILL.md +11 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +36 -30
- package/.agent-src/skills/code-review/SKILL.md +41 -36
- package/.agent-src/skills/context-authoring/SKILL.md +1 -1
- package/.agent-src/skills/dashboard-design/SKILL.md +1 -2
- package/.agent-src/skills/database/SKILL.md +8 -3
- package/.agent-src/skills/dependency-upgrade/SKILL.md +65 -19
- package/.agent-src/skills/developer-like-execution/SKILL.md +25 -14
- package/.agent-src/skills/eloquent/SKILL.md +1 -1
- package/.agent-src/skills/feature-planning/SKILL.md +1 -1
- package/.agent-src/skills/file-editor/SKILL.md +45 -19
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/.agent-src/skills/git-workflow/SKILL.md +4 -4
- package/.agent-src/skills/laravel-api-endpoint/SKILL.md +187 -0
- package/.agent-src/skills/{dto-creator → laravel-dto}/SKILL.md +5 -4
- package/.agent-src/skills/{migration-creator → laravel-migration}/SKILL.md +11 -10
- package/.agent-src/skills/laravel-reverb/SKILL.md +3 -3
- package/.agent-src/skills/{websocket → laravel-websocket}/SKILL.md +4 -3
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -1
- package/.agent-src/skills/merge-conflicts/SKILL.md +49 -17
- package/.agent-src/skills/migration-architect/SKILL.md +6 -6
- package/.agent-src/skills/module-management/SKILL.md +1 -0
- package/.agent-src/skills/multi-tenancy/SKILL.md +15 -8
- package/.agent-src/skills/pest-testing/SKILL.md +18 -0
- package/.agent-src/skills/php-debugging/SKILL.md +28 -0
- package/.agent-src/skills/php-service/SKILL.md +3 -3
- package/.agent-src/skills/playwright-testing/SKILL.md +16 -1
- package/.agent-src/skills/project-analyzer/SKILL.md +68 -42
- package/.agent-src/skills/readme-writing-package/SKILL.md +94 -23
- package/.agent-src/skills/roadmap-management/SKILL.md +1 -1
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +23 -8
- package/.agent-src/skills/rule-refactor/SKILL.md +145 -0
- package/.agent-src/skills/rule-writing/SKILL.md +34 -8
- package/.agent-src/skills/security/SKILL.md +38 -29
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/test-driven-development/SKILL.md +4 -4
- package/.agent-src/skills/test-performance/SKILL.md +6 -5
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +24 -27
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/copilot-instructions.md +2 -2
- package/.agent-src/templates/rule.md +2 -2
- package/.claude-plugin/marketplace.json +6 -4
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +74 -170
- package/README.md +2 -2
- package/docs/architecture.md +2 -2
- package/docs/archive/CHANGELOG-pre-2.25.0.md +191 -0
- package/docs/catalog.md +17 -12
- package/docs/contracts/file-ownership-matrix.json +473 -43
- package/docs/contracts/kernel-membership.md +17 -0
- package/docs/contracts/smoke-contracts.md +8 -8
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/php/api-design.md +1 -1
- package/docs/guidelines/php/controllers.md +1 -1
- package/docs/guidelines/php/resources.md +1 -1
- package/docs/guidelines/php/validations.md +1 -1
- package/package.json +1 -1
- package/scripts/build_linear_digest.py +0 -1
- package/scripts/lint_framework_leakage.py +348 -0
- package/scripts/lint_framework_leakage_allowlist.json +476 -0
- package/scripts/measure_augment_budget.py +6 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +5 -0
- package/scripts/skill_linter.py +60 -7
- package/scripts/smoke/kernel.sh +4 -4
- package/scripts/smoke/router.sh +2 -2
- package/.agent-src/rules/agent-docs.md +0 -20
- package/.agent-src/rules/augment-portability.md +0 -23
- package/.agent-src/rules/capture-learnings.md +0 -19
- package/.agent-src/rules/docs-sync.md +0 -20
- package/.agent-src/rules/domain-safety-disclaimer-consulting.md +0 -52
- package/.agent-src/rules/domain-safety-disclaimer-financial.md +0 -54
- package/.agent-src/rules/domain-safety-disclaimer-legal.md +0 -49
- package/.agent-src/rules/domain-safety-disclaimer-medical.md +0 -56
- package/.agent-src/rules/domain-safety-export-redact.md +0 -65
- package/.agent-src/rules/domain-safety-logging-pii-floor.md +0 -55
- package/.agent-src/rules/domain-safety-pii-finance.md +0 -57
- package/.agent-src/rules/domain-safety-pii-marketing.md +0 -60
- package/.agent-src/rules/domain-safety-pii-recruiting.md +0 -56
- package/.agent-src/rules/domain-safety-pii-support.md +0 -57
- package/.agent-src/rules/domain-safety-retention-finance.md +0 -48
- package/.agent-src/rules/domain-safety-retention-support.md +0 -55
- package/.agent-src/rules/e2e-testing.md +0 -19
- package/.agent-src/rules/no-unsolicited-rebase.md +0 -107
- package/.agent-src/rules/post-push-rewrite-discipline.md +0 -70
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"_doc": "Each entry: { file: relative path from repo root, lines: [int,...] | \"*\" for whole file, reason: short justification }. Use sparingly \u2014 first ask whether the file should be neutralized instead.",
|
|
4
|
+
"entries": [
|
|
5
|
+
{
|
|
6
|
+
"file": ".agent-src.uncompressed/skills/using-git-worktrees/SKILL.md",
|
|
7
|
+
"lines": [
|
|
8
|
+
130,
|
|
9
|
+
131,
|
|
10
|
+
132,
|
|
11
|
+
152
|
|
12
|
+
],
|
|
13
|
+
"reason": "Multi-stack package-manager comparison table"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"file": ".agent-src.uncompressed/skills/refine-prompt/SKILL.md",
|
|
17
|
+
"lines": [
|
|
18
|
+
88,
|
|
19
|
+
90,
|
|
20
|
+
92,
|
|
21
|
+
137,
|
|
22
|
+
180,
|
|
23
|
+
269
|
|
24
|
+
],
|
|
25
|
+
"reason": "Project-detection enumeration listing all supported stacks"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"file": ".agent-src.uncompressed/commands/onboard.md",
|
|
29
|
+
"lines": [
|
|
30
|
+
220,
|
|
31
|
+
221,
|
|
32
|
+
224
|
|
33
|
+
],
|
|
34
|
+
"reason": "Stack-detection enumeration in onboard flow"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"file": ".agent-src.uncompressed/commands/analyze-reference-repo.md",
|
|
38
|
+
"lines": [
|
|
39
|
+
62
|
|
40
|
+
],
|
|
41
|
+
"reason": "Manifest-file enumeration across ecosystems"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"file": ".agent-src.uncompressed/commands/optimize/augmentignore.md",
|
|
45
|
+
"lines": "*",
|
|
46
|
+
"reason": "Per-stack augmentignore rules \u2014 by definition stack-aware"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"file": ".agent-src.uncompressed/commands/optimize/rtk.md",
|
|
50
|
+
"lines": "*",
|
|
51
|
+
"reason": "Per-tool rtk filter detection \u2014 by definition tool-aware"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"file": ".agent-src.uncompressed/rules/framework-neutrality-in-generic-skills.md",
|
|
55
|
+
"lines": "*",
|
|
56
|
+
"reason": "The neutrality rule itself enumerates the forbidden tokens to forbid them"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"file": ".agent-src.uncompressed/rules/roadmap-ci-steps-policy.md",
|
|
60
|
+
"lines": [
|
|
61
|
+
4,
|
|
62
|
+
11,
|
|
63
|
+
12,
|
|
64
|
+
66
|
|
65
|
+
],
|
|
66
|
+
"reason": "Roadmap CI policy explicitly enumerates forbidden commands and trigger keywords"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"file": ".agent-src.uncompressed/rules/architecture.md",
|
|
70
|
+
"lines": [
|
|
71
|
+
19,
|
|
72
|
+
20,
|
|
73
|
+
26,
|
|
74
|
+
27,
|
|
75
|
+
62
|
|
76
|
+
],
|
|
77
|
+
"reason": "Stack-routing pointers and cross-stack enumeration of validation/handler primitives"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"file": ".agent-src.uncompressed/skills/api-endpoint/SKILL.md",
|
|
81
|
+
"lines": [
|
|
82
|
+
41,
|
|
83
|
+
58
|
|
84
|
+
],
|
|
85
|
+
"reason": "Cross-stack validation primitive enumeration and pointer to laravel-api-endpoint carve-out"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"file": ".agent-src.uncompressed/skills/code-review/SKILL.md",
|
|
89
|
+
"lines": [
|
|
90
|
+
40,
|
|
91
|
+
41,
|
|
92
|
+
42,
|
|
93
|
+
49,
|
|
94
|
+
62,
|
|
95
|
+
63,
|
|
96
|
+
74,
|
|
97
|
+
83,
|
|
98
|
+
85,
|
|
99
|
+
87,
|
|
100
|
+
219
|
|
101
|
+
],
|
|
102
|
+
"reason": "Cross-stack code-review checklist enumerates handler shape, validation, authz, ORM, escaping per framework"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"file": ".agent-src.uncompressed/skills/security/SKILL.md",
|
|
106
|
+
"lines": [
|
|
107
|
+
16,
|
|
108
|
+
23,
|
|
109
|
+
27,
|
|
110
|
+
28,
|
|
111
|
+
37,
|
|
112
|
+
41,
|
|
113
|
+
48,
|
|
114
|
+
58,
|
|
115
|
+
76
|
|
116
|
+
],
|
|
117
|
+
"reason": "Cross-stack security review enumerates auth primitives (Policies, voters, guards, middleware) and config paths"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"file": ".agent-src.uncompressed/skills/verify-completion-evidence/SKILL.md",
|
|
121
|
+
"lines": [
|
|
122
|
+
53,
|
|
123
|
+
54,
|
|
124
|
+
55,
|
|
125
|
+
100,
|
|
126
|
+
177
|
|
127
|
+
],
|
|
128
|
+
"reason": "Evidence-mapping table enumerates the type-checker / linter / refactor tool per stack including PHPStan, Rector, ECS"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"file": ".agent-src.uncompressed/commands/tests/execute.md",
|
|
132
|
+
"lines": "*",
|
|
133
|
+
"reason": "Multi-stack test runner dispatch (Pest/PHPUnit/Jest/pytest/cargo-test) \u2014 enumerates per-stack commands by design"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"file": ".agent-src.uncompressed/commands/tests/create.md",
|
|
137
|
+
"lines": "*",
|
|
138
|
+
"reason": "Multi-stack test framework selection \u2014 enumerates Pest/PHPUnit/Jest/pytest options by design"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"file": ".agent-src.uncompressed/commands/module/explore.md",
|
|
142
|
+
"lines": "*",
|
|
143
|
+
"reason": "Multi-stack module detection (Laravel HMVC / Symfony bundles / DDD-lite) \u2014 enumerates per-stack patterns by design"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"file": ".agent-src.uncompressed/commands/package-test.md",
|
|
147
|
+
"lines": "*",
|
|
148
|
+
"reason": "Multi-stack package linking (composer/npm/pip/cargo/go) \u2014 declared in skills frontmatter"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"file": ".agent-src.uncompressed/commands/package-reset.md",
|
|
152
|
+
"lines": "*",
|
|
153
|
+
"reason": "Multi-stack package reset (composer/npm) \u2014 declared in skills frontmatter"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"file": ".agent-src.uncompressed/skills/dependency-upgrade/SKILL.md",
|
|
157
|
+
"lines": "*",
|
|
158
|
+
"reason": "Multi-stack dependency upgrade examples (composer/npm/pip) \u2014 declared stack-agnostic in description"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"file": ".agent-src.uncompressed/skills/fe-design/SKILL.md",
|
|
162
|
+
"lines": "*",
|
|
163
|
+
"reason": "Cross-stack frontend design enumerates Blade/Livewire/Flux/React-shadcn for stack-routing dispatch"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"file": ".agent-src.uncompressed/skills/code-refactoring/SKILL.md",
|
|
167
|
+
"lines": "*",
|
|
168
|
+
"reason": "Multi-stack refactoring examples (Laravel app/Modules + Nx + mono-repo) per stack-detection"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"file": ".agent-src.uncompressed/skills/database/SKILL.md",
|
|
172
|
+
"lines": "*",
|
|
173
|
+
"reason": "Cross-stack ORM enumeration (Eloquent/Doctrine) with carve-out pointers"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"file": ".agent-src.uncompressed/commands/project-analyze.md",
|
|
177
|
+
"lines": "*",
|
|
178
|
+
"reason": "Stack-detection templates show per-framework default outputs (Laravel/Standalone PHP/etc.) \u2014 multi-stack by design"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"file": ".agent-src.uncompressed/commands/commit.md",
|
|
182
|
+
"lines": "*",
|
|
183
|
+
"reason": "Example commit block uses Laravel paths from a reference project; the procedure itself is stack-agnostic"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"file": ".agent-src.uncompressed/skills/test-driven-development/SKILL.md",
|
|
187
|
+
"lines": "*",
|
|
188
|
+
"reason": "Multi-stack TDD examples \u2014 PHP/Pest and TypeScript/Jest sections both present"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"file": ".agent-src.uncompressed/skills/context-authoring/SKILL.md",
|
|
192
|
+
"lines": "*",
|
|
193
|
+
"reason": "Cross-stack context examples enumerate per-stack auth/ORM primitives"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"file": ".agent-src.uncompressed/skills/migration-architect/SKILL.md",
|
|
197
|
+
"lines": "*",
|
|
198
|
+
"reason": "Cross-stack migration architecture enumerates laravel-migration/Doctrine/Alembic/Prisma carve-outs"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"file": ".agent-src.uncompressed/skills/api-design/SKILL.md",
|
|
202
|
+
"lines": "*",
|
|
203
|
+
"reason": "Cross-stack API design enumerates per-framework validation/handler primitives"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"file": ".agent-src.uncompressed/skills/error-handling-patterns/SKILL.md",
|
|
207
|
+
"lines": "*",
|
|
208
|
+
"reason": "Cross-stack error handling enumerates exceptions/Result/Maybe per language"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"file": ".agent-src.uncompressed/skills/security-audit/SKILL.md",
|
|
212
|
+
"lines": "*",
|
|
213
|
+
"reason": "Cross-stack security audit enumerates per-stack auth/ORM/escaping primitives"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"file": ".agent-src.uncompressed/skills/skill-writing/SKILL.md",
|
|
217
|
+
"lines": "*",
|
|
218
|
+
"reason": "Skill-writing references PHPStan/Pest as examples drawn from this package's own dogfooded skills"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"file": ".agent-src.uncompressed/skills/systematic-debugging/SKILL.md",
|
|
222
|
+
"lines": "*",
|
|
223
|
+
"reason": "Debugging examples drawn from PHP project; the procedure is stack-agnostic (reproduce \u2192 isolate \u2192 hypothesize \u2192 verify)"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"file": ".agent-src.uncompressed/skills/testing-anti-patterns/SKILL.md",
|
|
227
|
+
"lines": "*",
|
|
228
|
+
"reason": "Anti-pattern examples drawn from Pest/PHPUnit; the iron laws apply to all test frameworks"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"file": ".agent-src.uncompressed/skills/testing-anti-patterns/process-anti-patterns.md",
|
|
232
|
+
"lines": "*",
|
|
233
|
+
"reason": "Anti-pattern examples drawn from Pest; the rules apply to all test frameworks"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"file": ".agent-src.uncompressed/skills/api-testing/SKILL.md",
|
|
237
|
+
"lines": "*",
|
|
238
|
+
"reason": "Cross-stack API testing enumerates Pest/PHPUnit/Jest/pytest"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"file": ".agent-src.uncompressed/skills/agent-docs-writing/SKILL.md",
|
|
242
|
+
"lines": "*",
|
|
243
|
+
"reason": "Agent-docs examples reference PHPStan/Pest as this package's dogfooded toolchain"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"file": ".agent-src.uncompressed/skills/bug-analyzer/SKILL.md",
|
|
247
|
+
"lines": "*",
|
|
248
|
+
"reason": "Bug-analysis examples drawn from PHP project; the procedure is stack-agnostic"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"file": ".agent-src.uncompressed/skills/defense-in-depth/SKILL.md",
|
|
252
|
+
"lines": "*",
|
|
253
|
+
"reason": "Defense-in-depth examples enumerate per-stack validation primitives"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"file": ".agent-src.uncompressed/skills/existing-ui-audit/SKILL.md",
|
|
257
|
+
"lines": "*",
|
|
258
|
+
"reason": "UI-audit references Blade/Livewire/Flux/React-shadcn as stack-routing options"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"file": ".agent-src.uncompressed/skills/form-handler/SKILL.md",
|
|
262
|
+
"lines": "*",
|
|
263
|
+
"reason": "Form-handling examples enumerate per-framework validation/submission primitives"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"file": ".agent-src.uncompressed/skills/learning-to-rule-or-skill/SKILL.md",
|
|
267
|
+
"lines": "*",
|
|
268
|
+
"reason": "Examples drawn from PHP/Pest as this package's dogfooded toolchain"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"file": ".agent-src.uncompressed/skills/markitdown/SKILL.md",
|
|
272
|
+
"lines": "*",
|
|
273
|
+
"reason": "Markitdown skill references Composer/pip as install paths"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"file": ".agent-src.uncompressed/skills/mcp/SKILL.md",
|
|
277
|
+
"lines": "*",
|
|
278
|
+
"reason": "MCP examples enumerate Python/Node/PHP server implementations"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"file": ".agent-src.uncompressed/skills/mcp-builder/SKILL.md",
|
|
282
|
+
"lines": "*",
|
|
283
|
+
"reason": "MCP-builder enumerates Python FastMCP and Node TypeScript SDK with examples per language"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"file": ".agent-src.uncompressed/skills/readme-writing/SKILL.md",
|
|
287
|
+
"lines": "*",
|
|
288
|
+
"reason": "README examples reference composer.json/package.json/pyproject.toml per ecosystem"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"file": ".agent-src.uncompressed/skills/ui-component-architect/SKILL.md",
|
|
292
|
+
"lines": "*",
|
|
293
|
+
"reason": "Cross-stack UI component architecture enumerates Blade/Livewire/React"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"file": ".agent-src.uncompressed/commands/bug-investigate.md",
|
|
297
|
+
"lines": "*",
|
|
298
|
+
"reason": "Bug-investigate examples reference PHPStan/Pest from package's dogfooded toolchain"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"file": ".agent-src.uncompressed/commands/commit/in-chunks.md",
|
|
302
|
+
"lines": "*",
|
|
303
|
+
"reason": "Commit-in-chunks examples drawn from Laravel reference project; procedure is stack-agnostic"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"file": ".agent-src.uncompressed/commands/compress.md",
|
|
307
|
+
"lines": "*",
|
|
308
|
+
"reason": "Compress command references this package's own .agent-src.uncompressed Laravel-tooling examples"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"file": ".agent-src.uncompressed/commands/council/default.md",
|
|
312
|
+
"lines": "*",
|
|
313
|
+
"reason": "AI Council examples reference PHP/Laravel from package's dogfooded toolchain"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"file": ".agent-src.uncompressed/commands/fix/pr-bot-comments.md",
|
|
317
|
+
"lines": "*",
|
|
318
|
+
"reason": "PR-comment fix examples reference Rector/PHPStan from package's dogfooded toolchain"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"file": ".agent-src.uncompressed/commands/fix/pr-developer-comments.md",
|
|
322
|
+
"lines": "*",
|
|
323
|
+
"reason": "PR developer-comment fix examples reference PHP review patterns from package's dogfooded toolchain"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"file": ".agent-src.uncompressed/commands/quality-fix.md",
|
|
327
|
+
"lines": "*",
|
|
328
|
+
"reason": "Quality-fix dispatches per stack (PHPStan/ECS/Rector for PHP, tsc/biome for JS) \u2014 multi-stack by design"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"file": ".agent-src.uncompressed/commands/roadmap/create.md",
|
|
332
|
+
"lines": "*",
|
|
333
|
+
"reason": "Roadmap creation examples drawn from this package's own Laravel-tooling work"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"file": ".agent-src.uncompressed/commands/rule-compliance-audit.md",
|
|
337
|
+
"lines": "*",
|
|
338
|
+
"reason": "Rule-audit examples reference this package's own rule corpus including PHP/Laravel rules"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"file": ".agent-src.uncompressed/skills/blast-radius-analyzer/SKILL.md",
|
|
342
|
+
"lines": "*",
|
|
343
|
+
"reason": "Blast-radius examples drawn from Laravel reference project; procedure is stack-agnostic"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"file": ".agent-src.uncompressed/skills/data-flow-mapper/SKILL.md",
|
|
347
|
+
"lines": "*",
|
|
348
|
+
"reason": "Data-flow examples drawn from Laravel reference project; procedure is stack-agnostic"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"file": ".agent-src.uncompressed/skills/file-editor/SKILL.md",
|
|
352
|
+
"lines": "*",
|
|
353
|
+
"reason": "File-editor references PHP filename heuristic for IDE detection"
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"file": ".agent-src.uncompressed/skills/launch-readiness/SKILL.md",
|
|
357
|
+
"lines": "*",
|
|
358
|
+
"reason": "Launch-readiness checklist references Laravel Pulse/Horizon as monitoring options"
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"file": ".agent-src.uncompressed/skills/logging-monitoring/SKILL.md",
|
|
362
|
+
"lines": "*",
|
|
363
|
+
"reason": "Logging-monitoring enumerates per-stack log shippers including Laravel channels"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"file": ".agent-src.uncompressed/skills/memory-consolidation/SKILL.md",
|
|
367
|
+
"lines": "*",
|
|
368
|
+
"reason": "Memory examples drawn from PHP/Laravel reference project; procedure is stack-agnostic"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"file": ".agent-src.uncompressed/skills/performance/SKILL.md",
|
|
372
|
+
"lines": "*",
|
|
373
|
+
"reason": "Performance examples drawn from Laravel reference project; principles are stack-agnostic"
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"file": ".agent-src.uncompressed/skills/po-discovery/SKILL.md",
|
|
377
|
+
"lines": "*",
|
|
378
|
+
"reason": "PO-discovery examples drawn from Laravel reference project; procedure is stack-agnostic"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"file": ".agent-src.uncompressed/skills/project-analyzer/SKILL.md",
|
|
382
|
+
"lines": "*",
|
|
383
|
+
"reason": "Project-analyzer skill enumerates vendor/ and node_modules/ as third-party paths to exclude"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"file": ".agent-src.uncompressed/skills/readme-reviewer/SKILL.md",
|
|
387
|
+
"lines": "*",
|
|
388
|
+
"reason": "README reviewer enumerates composer.json/package.json/pyproject.toml per ecosystem"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"file": ".agent-src.uncompressed/skills/repomix-packer/SKILL.md",
|
|
392
|
+
"lines": "*",
|
|
393
|
+
"reason": "Repomix examples drawn from package's own Laravel toolchain"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"file": ".agent-src.uncompressed/skills/roadmap-management/SKILL.md",
|
|
397
|
+
"lines": "*",
|
|
398
|
+
"reason": "Roadmap examples drawn from this package's own framework-neutrality work"
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"file": ".agent-src.uncompressed/skills/rule-writing/SKILL.md",
|
|
402
|
+
"lines": "*",
|
|
403
|
+
"reason": "Rule-writing examples reference this package's own dogfooded PHP/Laravel rules"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"file": ".agent-src.uncompressed/skills/sentry-integration/SKILL.md",
|
|
407
|
+
"lines": "*",
|
|
408
|
+
"reason": "Sentry integration examples drawn from Laravel reference project"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"file": ".agent-src.uncompressed/skills/skill-reviewer/SKILL.md",
|
|
412
|
+
"lines": "*",
|
|
413
|
+
"reason": "Skill-reviewer references this package's own dogfooded PHP/Laravel skills"
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"file": ".agent-src.uncompressed/skills/upstream-contribute/SKILL.md",
|
|
417
|
+
"lines": "*",
|
|
418
|
+
"reason": "Upstream-contribute examples drawn from this package's own Laravel-tooling contributions"
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"file": ".agent-src.uncompressed/commands/agents/init.md",
|
|
422
|
+
"lines": "*",
|
|
423
|
+
"reason": "Agents-init references PHP/Laravel as one detected stack"
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"file": ".agent-src.uncompressed/commands/challenge-me/vision.md",
|
|
427
|
+
"lines": "*",
|
|
428
|
+
"reason": "Challenge-me examples drawn from PHP/Laravel reference project"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"file": ".agent-src.uncompressed/commands/challenge-me/with-docs.md",
|
|
432
|
+
"lines": "*",
|
|
433
|
+
"reason": "Challenge-me examples drawn from PHP/Laravel reference project"
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
"file": ".agent-src.uncompressed/commands/feature/dev.md",
|
|
437
|
+
"lines": "*",
|
|
438
|
+
"reason": "Feature-dev examples drawn from Laravel reference project; procedure is stack-agnostic"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"file": ".agent-src.uncompressed/commands/jira-ticket.md",
|
|
442
|
+
"lines": "*",
|
|
443
|
+
"reason": "Jira-ticket examples drawn from Laravel reference project; procedure is stack-agnostic"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"file": ".agent-src.uncompressed/commands/override/create.md",
|
|
447
|
+
"lines": "*",
|
|
448
|
+
"reason": "Override-create examples drawn from this package's own Laravel-rule overrides"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"file": ".agent-src.uncompressed/commands/project-health.md",
|
|
452
|
+
"lines": "*",
|
|
453
|
+
"reason": "Project-health examples drawn from Laravel reference project; check itself is stack-agnostic"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"file": ".agent-src.uncompressed/commands/sync-agent-settings.md",
|
|
457
|
+
"lines": "*",
|
|
458
|
+
"reason": "Sync-agent-settings references PHP/Laravel from package's dogfooded toolchain"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"file": ".agent-src.uncompressed/commands/sync-gitignore.md",
|
|
462
|
+
"lines": "*",
|
|
463
|
+
"reason": "Sync-gitignore enumerates per-stack ignore patterns including PHP/Composer"
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"file": ".agent-src.uncompressed/commands/sync-gitignore/fix.md",
|
|
467
|
+
"lines": "*",
|
|
468
|
+
"reason": "Sync-gitignore-fix enumerates per-stack ignore patterns"
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"file": ".agent-src.uncompressed/commands/upstream-contribute.md",
|
|
472
|
+
"lines": "*",
|
|
473
|
+
"reason": "Upstream-contribute examples drawn from this package's own Laravel-tooling contributions"
|
|
474
|
+
}
|
|
475
|
+
]
|
|
476
|
+
}
|
|
@@ -42,6 +42,12 @@ RULES_DIR = REPO_ROOT / ".augment" / "rules"
|
|
|
42
42
|
TREND_FILE = REPO_ROOT / "agents" / ".augment-budget-history.jsonl"
|
|
43
43
|
|
|
44
44
|
# Augment workspace-guidelines ceiling — empirical 2026-05-08.
|
|
45
|
+
# TOTAL_CAP is the hard ceiling Augment itself enforces. FAIL_THRESHOLD is the
|
|
46
|
+
# soft safety-margin gate (0.95). When a branch breaches it, the discipline
|
|
47
|
+
# is: DO NOT loosen the threshold — invoke the `rule-refactor` skill, which
|
|
48
|
+
# audits all rules for merge / delete / move-to-context / promote-to-skill
|
|
49
|
+
# candidates. Threshold-lift is explicitly rejected as a tool-shape anti-
|
|
50
|
+
# pattern (see the validation-budget rule). Only an ADR may grow the cap.
|
|
45
51
|
TOTAL_CAP = 49_512
|
|
46
52
|
WARN_THRESHOLD = 0.85
|
|
47
53
|
FAIL_THRESHOLD = 0.95
|
|
@@ -67,6 +67,11 @@
|
|
|
67
67
|
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
|
|
68
68
|
"description": "Semver release in which this command became a shim (e.g. '1.15.0')."
|
|
69
69
|
},
|
|
70
|
+
"framework": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
73
|
+
"description": "Framework carve-out marker. Set on commands that are 100% coupled to one stack (e.g. `framework: laravel` on update-form-request-messages). Generic, multi-stack commands MUST omit this key. Routed by .agent-src.uncompressed/rules/framework-neutrality-in-generic-skills.md (Tier 2)."
|
|
74
|
+
},
|
|
70
75
|
"council_depth": {
|
|
71
76
|
"type": "string",
|
|
72
77
|
"enum": ["deep"],
|
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"type": "string",
|
|
36
36
|
"pattern": "^[a-z][a-z0-9-]*$"
|
|
37
37
|
},
|
|
38
|
+
"framework": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
41
|
+
"description": "Framework carve-out marker. Set on skills that are 100% coupled to one stack (e.g. `framework: laravel` on laravel-* skills). Generic, multi-stack skills MUST omit this key. Routed by .agent-src.uncompressed/rules/framework-neutrality-in-generic-skills.md (Tier 2)."
|
|
42
|
+
},
|
|
38
43
|
"personas": {
|
|
39
44
|
"type": "array",
|
|
40
45
|
"items": {
|
package/scripts/skill_linter.py
CHANGED
|
@@ -472,6 +472,21 @@ def _command_delegation_signal(text: str, frontmatter: Optional[str]) -> bool:
|
|
|
472
472
|
return False
|
|
473
473
|
|
|
474
474
|
|
|
475
|
+
def _strip_markdown_for_check(text: str) -> str:
|
|
476
|
+
"""Strip fenced code, inline code spans, and markdown links so heuristic
|
|
477
|
+
regex matches operate on prose only.
|
|
478
|
+
|
|
479
|
+
Used by rule-body heuristics whose targets (e.g. ``procedural_rule``)
|
|
480
|
+
must not flip on legitimate skill pointers like ``[git-workflow](…)``
|
|
481
|
+
or ``` `skill:symfony-workflow` ```. Frontmatter is handled by the
|
|
482
|
+
caller via ``text.split("---", 2)[-1]``.
|
|
483
|
+
"""
|
|
484
|
+
text = re.sub(r"```[^\n]*\n.*?```", "", text, flags=re.DOTALL)
|
|
485
|
+
text = re.sub(r"`[^`\n]+`", "", text)
|
|
486
|
+
text = re.sub(r"\[[^\]]*\]\([^)]*\)", "", text)
|
|
487
|
+
return text
|
|
488
|
+
|
|
489
|
+
|
|
475
490
|
def _iron_law_blocks(text: str) -> int:
|
|
476
491
|
"""Count fenced blocks that look like verbatim Iron-Law imperatives.
|
|
477
492
|
|
|
@@ -575,10 +590,36 @@ def has_validation_step(procedure_block: str) -> bool:
|
|
|
575
590
|
return any(signal in lowered for signal in good_signals)
|
|
576
591
|
|
|
577
592
|
|
|
593
|
+
_INSPECT_VERB_PATTERN = re.compile(
|
|
594
|
+
r"\b(?:"
|
|
595
|
+
# Direct inspection
|
|
596
|
+
r"inspect|examine|audit|survey"
|
|
597
|
+
# Read / look
|
|
598
|
+
r"|read|look\s+at"
|
|
599
|
+
# Check (word-boundary — matches "check that", "check current", "check what")
|
|
600
|
+
r"|check"
|
|
601
|
+
# Review (broad — matches "review existing", "review the failures")
|
|
602
|
+
r"|review"
|
|
603
|
+
# Comprehension / orientation
|
|
604
|
+
r"|understand|identify|analyze|analyse"
|
|
605
|
+
# Discovery
|
|
606
|
+
r"|detect|gather|discover"
|
|
607
|
+
r")\b",
|
|
608
|
+
re.IGNORECASE,
|
|
609
|
+
)
|
|
610
|
+
|
|
611
|
+
|
|
578
612
|
def has_inspect_step(procedure_block: str) -> bool:
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
613
|
+
"""Return True if the procedure block opens with an inspect / read step.
|
|
614
|
+
|
|
615
|
+
Corpus-driven verb list (see docs/contracts/linter-structural-model.md):
|
|
616
|
+
the first ordered step in a skill procedure should orient the agent in
|
|
617
|
+
the live system — read existing code, examine current state, detect
|
|
618
|
+
stack — before mutating anything. Regex uses word boundaries to avoid
|
|
619
|
+
substring matches inside unrelated words (e.g. ``read`` inside
|
|
620
|
+
``already``).
|
|
621
|
+
"""
|
|
622
|
+
return bool(_INSPECT_VERB_PATTERN.search(procedure_block))
|
|
582
623
|
|
|
583
624
|
|
|
584
625
|
def find_vague_validation(text: str) -> list[str]:
|
|
@@ -678,8 +719,9 @@ def lint_skill(path: Path, text: str) -> LintResult:
|
|
|
678
719
|
if skill_name and "-" not in skill_name and len(skill_name) >= 3:
|
|
679
720
|
# Single word without qualifier — likely too generic
|
|
680
721
|
ALLOWED_BARE_NOUNS = {"database", "devcontainer", "docker", "eloquent", "flux", "forecasting",
|
|
681
|
-
"grafana", "laravel", "livewire", "
|
|
682
|
-
"security", "terraform", "terragrunt", "traefik",
|
|
722
|
+
"grafana", "laravel", "livewire", "markitdown", "mcp", "openapi",
|
|
723
|
+
"performance", "security", "terraform", "terragrunt", "traefik",
|
|
724
|
+
"websocket"}
|
|
683
725
|
if skill_name.lower() not in ALLOWED_BARE_NOUNS:
|
|
684
726
|
issues.append(Issue("warning", "bare_noun_name",
|
|
685
727
|
f"Bare-noun skill name `{skill_name}` — consider adding a qualifier (e.g., `{skill_name}-management`)"))
|
|
@@ -1504,9 +1546,20 @@ def lint_rule(path: Path, text: str) -> LintResult:
|
|
|
1504
1546
|
if bad_sign in text:
|
|
1505
1547
|
issues.append(Issue("error", "rule_looks_like_skill", f"Rule contains skill-like section: {bad_sign}"))
|
|
1506
1548
|
|
|
1507
|
-
#
|
|
1549
|
+
# Procedural-rule heuristic: a rule "looks procedural" only when its own
|
|
1550
|
+
# prose AND its own structure both signal a procedure. We:
|
|
1551
|
+
# 1. Exclude frontmatter (may contain "type", path strings, etc.).
|
|
1552
|
+
# 2. Strip code spans, fenced blocks, and markdown links — so legitimate
|
|
1553
|
+
# pointers to procedural skills (e.g. `skill:git-workflow`,
|
|
1554
|
+
# [symfony-workflow](…)) do not flip the keyword count.
|
|
1555
|
+
# 3. Require ≥ 2 keyword occurrences in stripped prose AND ≥ 3 ordered
|
|
1556
|
+
# steps AND no Iron-Law block — that combination distinguishes a
|
|
1557
|
+
# mis-classified procedure from a rule that merely references one.
|
|
1508
1558
|
body = text.split("---", 2)[-1] if frontmatter else text
|
|
1509
|
-
|
|
1559
|
+
stripped_body = _strip_markdown_for_check(body)
|
|
1560
|
+
kw_count = len(re.findall(r"\b(procedure|workflow)\b", stripped_body, re.IGNORECASE))
|
|
1561
|
+
ordered_steps = len(re.findall(r"^\s*\d+\.\s+", body, re.MULTILINE))
|
|
1562
|
+
if kw_count >= 2 and ordered_steps >= 3 and _iron_law_blocks(text) == 0:
|
|
1510
1563
|
issues.append(Issue("warning", "procedural_rule", "Rule looks procedural; consider a skill instead"))
|
|
1511
1564
|
|
|
1512
1565
|
return LintResult(
|
package/scripts/smoke/kernel.sh
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
# scripts/smoke/kernel.sh — kernel-tier smoke (step-11 Phase 3 Step 2).
|
|
3
3
|
#
|
|
4
4
|
# Asserts:
|
|
5
|
-
# 1. router.json lists exactly
|
|
5
|
+
# 1. router.json lists exactly 10 kernel rules.
|
|
6
6
|
# 2. Every kernel rule file exists at .agent-src/rules/<id>.md.
|
|
7
|
-
# 3.
|
|
7
|
+
# 3. 9 of 10 carry at least one Iron-Law fenced block.
|
|
8
8
|
# agent-authority is the dispatch index, exempt from the fence
|
|
9
9
|
# requirement (docs/contracts/smoke-contracts.md § 3.1).
|
|
10
10
|
# 4. Kernel-bucket char budget breaches ≤ EXPECTED_BREACHES.
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
set -euo pipefail
|
|
18
18
|
|
|
19
|
-
EXPECTED_KERNEL_COUNT=
|
|
20
|
-
EXPECTED_FENCE_CARRIERS=
|
|
19
|
+
EXPECTED_KERNEL_COUNT=10
|
|
20
|
+
EXPECTED_FENCE_CARRIERS=9
|
|
21
21
|
EXPECTED_BREACHES=2
|
|
22
22
|
EXEMPT_FROM_FENCE="agent-authority"
|
|
23
23
|
|
package/scripts/smoke/router.sh
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# scripts/smoke/router.sh — router-tier smoke (step-11 Phase 3 Step 3).
|
|
3
3
|
#
|
|
4
4
|
# Asserts router.json structural integrity:
|
|
5
|
-
# 1.
|
|
5
|
+
# 1. 68 ids = 10 kernel + 23 tier_1 + 35 tier_2 (locked count).
|
|
6
6
|
# 2. Every id resolves to .agent-src/rules/<id>.md (0 broken).
|
|
7
7
|
# 3. Every routes_to ref resolves through its prefix
|
|
8
8
|
# (skill:, command:, guideline:, contract:); missing-contract
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
set -euo pipefail
|
|
17
17
|
|
|
18
|
-
EXPECTED_TOTAL_IDS=
|
|
18
|
+
EXPECTED_TOTAL_IDS=68
|
|
19
19
|
EXPECTED_MISSING_CONTRACTS=2
|
|
20
20
|
|
|
21
21
|
quiet="${SMOKE_QUIET:-0}"
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- path_prefix: "agents/"
|
|
8
|
-
- path_prefix: ".github/copilot-instructions"
|
|
9
|
-
- keyword: "AGENTS.md"
|
|
10
|
-
- keyword: "roadmap"
|
|
11
|
-
routes_to:
|
|
12
|
-
- "skill:agent-docs-writing"
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Agent Docs
|
|
16
|
-
|
|
17
|
-
**Iron Law.** Read agent docs (`AGENTS.md`, `agents/`, module `agents/`) before work; update them after structural changes.
|
|
18
|
-
|
|
19
|
-
Body migrated to `skill:agent-docs-writing` (per P4 of `road-to-kernel-and-router.md`).
|
|
20
|
-
Trigger-set above activates this routing under the `balanced` and `full` profiles.
|