@event4u/agent-config 2.24.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/create-pr/description-only.md +39 -11
- package/.agent-src/commands/create-pr.md +59 -5
- 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/commands/video/from-script.md +5 -5
- package/.agent-src/commands/video/storyboard.md +1 -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/execution/roadmap-process-loop.md +69 -14
- package/.agent-src/contexts/skills-and-commands.md +2 -2
- package/.agent-src/personas/README.md +3 -2
- package/.agent-src/personas/ai-video-technical-director.md +2 -2
- package/.agent-src/personas/hollywood-director.md +3 -3
- package/.agent-src/profiles/content_creator.yml +5 -0
- 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/media-governance-routing.md +82 -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/persona-governance.md +90 -0
- package/.agent-src/rules/provider-lifecycle-discipline.md +75 -0
- package/.agent-src/rules/roadmap-ci-steps-policy.md +145 -0
- package/.agent-src/rules/roadmap-progress-sync.md +11 -5
- 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/character-consistency/SKILL.md +12 -1
- 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 +135 -2
- 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/motion-choreographer/SKILL.md +12 -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/pixar-storyteller/SKILL.md +19 -6
- 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/roadmap-writing/SKILL.md +10 -0
- 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/scene-expander/SKILL.md +22 -7
- 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/skills/video-director/SKILL.md +13 -0
- 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/roadmaps.md +16 -0
- package/.agent-src/templates/rule.md +2 -2
- package/.claude-plugin/marketplace.json +6 -4
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +80 -133
- package/README.md +6 -4
- package/config/agent-settings.template.yml +26 -0
- package/docs/architecture.md +2 -2
- package/docs/archive/CHANGELOG-pre-2.25.0.md +191 -0
- package/docs/catalog.md +20 -12
- package/docs/contracts/file-ownership-matrix.json +588 -90
- package/docs/contracts/kernel-membership.md +17 -0
- package/docs/contracts/provider-lifecycle.md +122 -0
- package/docs/contracts/smoke-contracts.md +8 -8
- package/docs/decisions/ADR-011-domain-pack-readiness.md +213 -0
- package/docs/decisions/INDEX.md +1 -0
- package/docs/getting-started-by-role.md +10 -0
- 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/docs/personas.md +73 -26
- package/docs/profiles.md +9 -4
- package/package.json +1 -1
- package/scripts/_tmp_scan_framework_leakage.py +119 -0
- package/scripts/ai-video/adapters/gemini-veo.sh +5 -0
- package/scripts/ai-video/adapters/higgsfield.sh +6 -0
- package/scripts/ai-video/adapters/kling.sh +5 -0
- package/scripts/ai-video/adapters/openai-images.sh +5 -0
- package/scripts/ai-video/adapters/sora.sh +6 -0
- package/scripts/build_linear_digest.py +0 -1
- package/scripts/check_portability.py +6 -0
- package/scripts/lint_framework_leakage.py +348 -0
- package/scripts/lint_framework_leakage_allowlist.json +476 -0
- package/scripts/lint_media_policy_linkage.py +140 -0
- package/scripts/lint_persona_governance.py +164 -0
- package/scripts/lint_roadmap_ci_steps.py +182 -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/scripts/smoke/schema.sh +1 -1
- package/.agent-src/personas/pixar-storyboard-artist.md +0 -98
- 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
|
@@ -39,17 +39,45 @@ The user may or may not provide a PR URL or branch name.
|
|
|
39
39
|
- If no PR found → use `git diff origin/{default}..HEAD --stat` for the branch diff.
|
|
40
40
|
3. **Never** reuse a PR number from earlier in the conversation.
|
|
41
41
|
|
|
42
|
-
### 2. Gather context
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
### 2. Gather context — **one parallel tool-call block**
|
|
43
|
+
|
|
44
|
+
The four primary fetches below are **independent** and **must** be
|
|
45
|
+
dispatched in a single parallel tool-call block, not serially. Serial
|
|
46
|
+
reads here add 3+ round-trips per PR for zero benefit.
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
parallel:
|
|
50
|
+
1. Jira API — GET /issue/{ticketId} (skip when no ticket ID)
|
|
51
|
+
2. git diff — git diff origin/{default}..HEAD --stat
|
|
52
|
+
3. git log — git log origin/{default}..HEAD --format="%s"
|
|
53
|
+
4. view PR template — .github/pull_request_template.md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
After the block returns:
|
|
57
|
+
|
|
58
|
+
- **Jira ticket**: ticket ID is extracted from the branch name
|
|
59
|
+
(e.g. `fix/DEV-4673-description` → `DEV-4673`) **before** the
|
|
60
|
+
parallel block. No ticket → skip fetch 1 silently; ask the user
|
|
61
|
+
for a number only after the block, and only if needed.
|
|
62
|
+
- **PR template missing** → fall back to the structure in § 4.
|
|
63
|
+
- **Read key changed files** (migrations, new classes, modified
|
|
64
|
+
services, route/config changes) — second parallel block, keyed
|
|
65
|
+
off the diff summary. Group all file reads in one block.
|
|
66
|
+
- **Check roadmap/agent docs** that describe the feature intent
|
|
67
|
+
(if they exist) — fold into the second block.
|
|
68
|
+
|
|
69
|
+
Anti-pattern (do **not** do this):
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
turn 1: fetch Jira
|
|
73
|
+
turn 2: git diff
|
|
74
|
+
turn 3: git log
|
|
75
|
+
turn 4: view template
|
|
76
|
+
turn 5: view file A
|
|
77
|
+
turn 6: view file B
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
That's 6 round-trips for what should be 2.
|
|
53
81
|
|
|
54
82
|
### 3. Build the PR title
|
|
55
83
|
|
|
@@ -94,6 +94,44 @@ Resolve `"draft"` (first match wins):
|
|
|
94
94
|
3. `routine_confirmations: true` → ask `1. draft / 2. ready`.
|
|
95
95
|
4. Default → `true` (silent draft).
|
|
96
96
|
|
|
97
|
+
#### 3a. Tool selection — single-call mandate
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
POST THE PR WITH ONE github-api CALL.
|
|
101
|
+
NEVER COMPOSE THE BODY THROUGH SHELL, PYTHON, OR TEMP FILES.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Use the `github-api` tool **directly** with the markdown body in the
|
|
105
|
+
JSON `data` field. The body is a regular JSON string — escaping is the
|
|
106
|
+
tool's job, not yours.
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
github-api
|
|
110
|
+
method: POST
|
|
111
|
+
path: /repos/{owner}/{repo}/pulls
|
|
112
|
+
data: { "title": "...", "body": "<markdown>", "head": "<branch>",
|
|
113
|
+
"base": "main", "draft": <bool> }
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Hard prohibitions** (each one cost 3+ extra tool calls in past runs):
|
|
117
|
+
|
|
118
|
+
- ❌ `python3 -c "import urllib..."` / `python3 - <<PY ... PY` heredocs
|
|
119
|
+
to serialize the body or POST it.
|
|
120
|
+
- ❌ `save-file PR_BODY.md` → read back → `curl -d @PR_BODY.md`.
|
|
121
|
+
- ❌ `gh pr create --body-file …` shelling out when `github-api` is
|
|
122
|
+
available in this surface.
|
|
123
|
+
- ❌ Splitting `title` and `body` into two API calls (create + PATCH).
|
|
124
|
+
|
|
125
|
+
The body may contain any Markdown — code fences, tables, multi-line
|
|
126
|
+
HTML, emoji. Do **not** preprocess, escape, or strip newlines before
|
|
127
|
+
handing it to `github-api`.
|
|
128
|
+
|
|
129
|
+
If the surface genuinely lacks `github-api` (rare), fall back to
|
|
130
|
+
`gh pr create --title "..." --body-file <(echo -n "<body>")` as a
|
|
131
|
+
**single** shell call, never the python-urllib path.
|
|
132
|
+
|
|
133
|
+
#### 3b. Submit
|
|
134
|
+
|
|
97
135
|
Create the PR with the approved title/body and the resolved `draft`.
|
|
98
136
|
|
|
99
137
|
**Verify after `draft: false`** — the GitHub REST API sometimes ignores
|
|
@@ -126,18 +164,21 @@ Run this strip-pass **after PR creation and after every body PATCH**:
|
|
|
126
164
|
- `Pull Request opened by [Augment Code]`
|
|
127
165
|
- `Co-authored by Augment Code`
|
|
128
166
|
- Any `augmentcode.com` link the user did not ask for
|
|
129
|
-
3.
|
|
167
|
+
3. **No match → done.** Skip steps 4–5; the body is already clean.
|
|
168
|
+
This is the common path and **must not** spend a verify-GET.
|
|
169
|
+
4. Match found → remove the footer(s) together with surrounding
|
|
130
170
|
`---` separators and trailing whitespace, then:
|
|
131
171
|
```
|
|
132
172
|
PATCH /repos/{owner}/{repo}/pulls/{number}
|
|
133
173
|
{ "body": "<cleaned body>" }
|
|
134
174
|
```
|
|
135
|
-
|
|
136
|
-
pattern reappears (server re-injection), repeat
|
|
175
|
+
Re-fetch the body **once** to verify the strip stuck. If a
|
|
176
|
+
pattern reappears (server re-injection), repeat the PATCH once;
|
|
137
177
|
if it still reappears, surface the issue to the user and stop
|
|
138
178
|
(do not enter a strip/PATCH loop).
|
|
139
|
-
5. Briefly note in the reply how many footers were removed (
|
|
140
|
-
|
|
179
|
+
5. Briefly note in the reply how many footers were removed (omit
|
|
180
|
+
the line entirely when nothing was stripped — silence is the
|
|
181
|
+
expected path, not "no footers found").
|
|
141
182
|
|
|
142
183
|
#### 4b. Show the PR URL (verbosity-gated)
|
|
143
184
|
|
|
@@ -154,6 +195,19 @@ Linked ticket + `routine_confirmations: true` → ask `1. Yes / 2. No`.
|
|
|
154
195
|
Default (`false`) → skip silently. **Only emit a transition line when
|
|
155
196
|
an actual Jira API call succeeded** — never announce "skipped".
|
|
156
197
|
|
|
198
|
+
#### 4d. Settings short-circuit — single read per run
|
|
199
|
+
|
|
200
|
+
`verbosity.routine_confirmations`, `verbosity.post_action_reports`, and
|
|
201
|
+
`commands.create_pr.preview_description` are read **once** at the top
|
|
202
|
+
of the run and cached for the whole `/create-pr` invocation. Do **not**
|
|
203
|
+
re-read `.agent-settings.yml` in 4b / 4c — both branches resolve from
|
|
204
|
+
the cached values from step 1.
|
|
205
|
+
|
|
206
|
+
When all three resolve to their silent defaults (`false` / `minimal` /
|
|
207
|
+
`false`), steps 4b–4c collapse to the single `→ #N opened: <url>` line
|
|
208
|
+
from 4b and a silent 4c. No extra file reads, no "checking settings…"
|
|
209
|
+
narration, no confirmation prompts.
|
|
210
|
+
|
|
157
211
|
### Rules
|
|
158
212
|
|
|
159
213
|
- **Always use the PR template** from `.github/pull_request_template.md`.
|
|
@@ -97,7 +97,7 @@ For each roadmap, work through the phases interactively:
|
|
|
97
97
|
- [ ] {concrete task with file reference}
|
|
98
98
|
- [ ] {concrete task}
|
|
99
99
|
- [ ] Tests: {what to test}
|
|
100
|
-
- [ ] Quality: PHPStan + Rector
|
|
100
|
+
- [ ] Quality: project's type-checker + auto-fixer (see `quality-tools` skill — e.g. PHPStan + Rector for PHP, tsc + eslint --fix for TS, mypy + ruff for Python)
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
### 4. Generate the roadmap(s)
|
|
@@ -206,7 +206,7 @@ What's next?
|
|
|
206
206
|
- **Always link roadmaps back to the feature** and vice versa.
|
|
207
207
|
- **Use the roadmap template** at `.augment/templates/roadmaps.md`.
|
|
208
208
|
- **Reference specific files** in roadmap tasks — not vague descriptions.
|
|
209
|
-
- **Include quality gates**
|
|
209
|
+
- **Include quality gates** in every phase — the project's type-checker, auto-fixer, and full test run. Look up the actual commands via `quality-tools` instead of hardcoding stack-specific tool names in the roadmap.
|
|
210
210
|
- **Research the codebase** to make tasks concrete and realistic.
|
|
211
211
|
|
|
212
212
|
## See also
|
|
@@ -10,6 +10,7 @@ suggestion:
|
|
|
10
10
|
eligible: true
|
|
11
11
|
trigger_description: "the seeder is broken, foreign key errors in seeders"
|
|
12
12
|
trigger_context: "seeder error output or recent edits in database/seeders/"
|
|
13
|
+
framework: laravel
|
|
13
14
|
---
|
|
14
15
|
|
|
15
16
|
# /fix seeder
|
|
@@ -64,9 +65,9 @@ where the seeder class is NOT the owner of the data file.
|
|
|
64
65
|
|
|
65
66
|
### Known Exceptions
|
|
66
67
|
|
|
67
|
-
Currently there are **no exceptions**. All circular
|
|
68
|
+
Currently there are **no exceptions**. All circular dependencies have been resolved.
|
|
68
69
|
|
|
69
|
-
**Pattern for resolving circular
|
|
70
|
+
**Pattern for resolving circular dependencies:** Use two-phase seeding. The data file seeds
|
|
70
71
|
records with placeholder values (e.g., empty arrays). The Seeder's `run()` method then updates
|
|
71
72
|
records with the real values using `getReference()`. Since `run()` is called after all seeders
|
|
72
73
|
are initialized, the circular dependency is broken.
|
|
@@ -137,6 +137,6 @@ Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
|
|
|
137
137
|
|
|
138
138
|
- [`engineering-memory-data-format`](../../docs/guidelines/agent-infra/engineering-memory-data-format.md)
|
|
139
139
|
— full schema
|
|
140
|
-
- [`
|
|
141
|
-
learning is better captured as an `incident-learnings` entry vs
|
|
142
|
-
rule/skill proposal
|
|
140
|
+
- [`skill:learning-to-rule-or-skill`](../skills/learning-to-rule-or-skill/SKILL.md) —
|
|
141
|
+
when a learning is better captured as an `incident-learnings` entry vs
|
|
142
|
+
a rule/skill proposal
|
|
@@ -3,7 +3,7 @@ name: module:explore
|
|
|
3
3
|
tier: 2
|
|
4
4
|
cluster: module
|
|
5
5
|
sub: explore
|
|
6
|
-
skills: [laravel]
|
|
6
|
+
skills: [laravel, symfony-workflow, php-coder]
|
|
7
7
|
description: Explore a module — load its structure, docs, and context into the current conversation
|
|
8
8
|
disable-model-invocation: true
|
|
9
9
|
suggestion:
|
|
@@ -17,17 +17,21 @@ suggestion:
|
|
|
17
17
|
|
|
18
18
|
### 1. Check for modules
|
|
19
19
|
|
|
20
|
-
- **Laravel
|
|
21
|
-
- **
|
|
22
|
-
-
|
|
20
|
+
- **Laravel HMVC**: Check `app/Modules/`.
|
|
21
|
+
- **Symfony / DDD-lite**: Check `src/<Domain>/` or `src/Module/<Domain>/`.
|
|
22
|
+
- **Composer packages / libraries**: Check `./agents/` or `src/` for domain directories.
|
|
23
|
+
- **Node / TS monorepo**: Check `packages/`, `apps/`, or `modules/`.
|
|
24
|
+
- **Python**: Check top-level package dirs under `src/<package>/` or flat `<package>/`.
|
|
25
|
+
- **Go**: Check `internal/<domain>/` or `cmd/<service>/`.
|
|
26
|
+
- If none of the above exists:
|
|
23
27
|
```
|
|
24
|
-
⚠️ No module system found (no
|
|
28
|
+
⚠️ No module system found (no Modules/, src/<Domain>/, packages/, internal/, or equivalent directory).
|
|
25
29
|
```
|
|
26
30
|
Stop.
|
|
27
31
|
|
|
28
32
|
### 2. List available modules
|
|
29
33
|
|
|
30
|
-
Scan
|
|
34
|
+
Scan the detected modules directory (see step 1) and show all modules. Skip `.module-template`, `.example`, and hidden dirs:
|
|
31
35
|
|
|
32
36
|
```
|
|
33
37
|
📦 Available modules:
|
|
@@ -217,7 +217,15 @@ no network call, file-existence only:
|
|
|
217
217
|
|
|
218
218
|
```bash
|
|
219
219
|
stacks=()
|
|
220
|
-
[ -f composer.json ]
|
|
220
|
+
if [ -f composer.json ]; then
|
|
221
|
+
if grep -q '"laravel/framework"' composer.json 2>/dev/null; then
|
|
222
|
+
stacks+=("php-laravel")
|
|
223
|
+
elif grep -q '"symfony/framework-bundle"' composer.json 2>/dev/null; then
|
|
224
|
+
stacks+=("php-symfony")
|
|
225
|
+
else
|
|
226
|
+
stacks+=("php")
|
|
227
|
+
fi
|
|
228
|
+
fi
|
|
221
229
|
[ -f package.json ] && stacks+=("node")
|
|
222
230
|
[ -f Cargo.toml ] && stacks+=("rust")
|
|
223
231
|
[ -f go.mod ] && stacks+=("go")
|
|
@@ -31,11 +31,24 @@ and creates/updates `.augmentignore` accordingly. Also identifies irrelevant
|
|
|
31
31
|
| `go.mod` exists | `go.sum` |
|
|
32
32
|
| `.idea/` exists | `.idea/` |
|
|
33
33
|
| `.vscode/` exists | `.vscode/` |
|
|
34
|
-
| `_ide_helper.php` exists | `_ide_helper.php`, `_ide_helper_models.php`, `.phpstorm.meta.php` |
|
|
34
|
+
| `_ide_helper.php` exists (Laravel `barryvdh/laravel-ide-helper`) | `_ide_helper.php`, `_ide_helper_models.php`, `.phpstorm.meta.php` |
|
|
35
35
|
| `public/build/` exists | `public/build/` |
|
|
36
|
-
| `storage/` exists (Laravel) | `storage/logs/`, `storage/framework/cache/`, `storage/framework/sessions/`, `storage/framework/views/` |
|
|
36
|
+
| `storage/` exists AND `artisan` exists (Laravel) | `storage/logs/`, `storage/framework/cache/`, `storage/framework/sessions/`, `storage/framework/views/` |
|
|
37
37
|
| `docker-compose.yml` exists | `.storage/`, `.composer/` |
|
|
38
38
|
| `.env` exists | `.env`, `.env.*` |
|
|
39
|
+
| `pyproject.toml` exists | `__pycache__/`, `*.pyc`, `*.pyo`, `.pytest_cache/`, `.mypy_cache/`, `.ruff_cache/`, `.tox/`, `.nox/`, `dist/`, `build/`, `*.egg-info/` |
|
|
40
|
+
| `Pipfile` or `Pipfile.lock` exists | `Pipfile.lock` |
|
|
41
|
+
| `poetry.lock` exists | `poetry.lock` |
|
|
42
|
+
| `Cargo.toml` exists | `target/`, `Cargo.lock` (binaries only — keep for libraries) |
|
|
43
|
+
| `go.mod` exists | `go.sum`, `vendor/` (if `go mod vendor` is used) |
|
|
44
|
+
| `Gemfile` exists | `.bundle/`, `vendor/bundle/`, `Gemfile.lock` (apps only — keep for gems) |
|
|
45
|
+
| `next.config.js` / `next.config.mjs` / `next.config.ts` exists | `.next/`, `out/` |
|
|
46
|
+
| `nuxt.config.ts` / `nuxt.config.js` exists | `.nuxt/`, `.output/` |
|
|
47
|
+
| `vite.config.*` exists | `dist/`, `.vite/` |
|
|
48
|
+
| `astro.config.*` exists | `.astro/`, `dist/` |
|
|
49
|
+
| `svelte.config.*` exists | `.svelte-kit/`, `build/` |
|
|
50
|
+
| `tsconfig.json` exists | `*.tsbuildinfo`, `.tscache/` |
|
|
51
|
+
| `.terraform/` exists | `.terraform/`, `*.tfstate`, `*.tfstate.backup`, `.terraform.lock.hcl` (debatable — keep if collaborating) |
|
|
39
52
|
|
|
40
53
|
### 2. Find large files polluting the index
|
|
41
54
|
|
|
@@ -62,7 +75,9 @@ For each large file, decide: is this **source code** (keep) or **generated/fixtu
|
|
|
62
75
|
| `**/.docker/**/*.json` | Generated dashboard/config JSONs (Grafana, etc.) |
|
|
63
76
|
| `.github/workflows/` | CI YAML — large, rarely relevant for code context |
|
|
64
77
|
| `.github/actions/` | CI actions — same reason |
|
|
65
|
-
| `lang/*/validation.php` | Translation files — huge, static, rarely needed |
|
|
78
|
+
| `lang/*/validation.php` (Laravel) | Translation files — huge, static, rarely needed |
|
|
79
|
+
| `locales/**/*.json` (i18next / next-intl / vue-i18n) | Translation bundles — large, mostly static |
|
|
80
|
+
| `messages/**/*.{json,po,properties}` (gettext / Java-style) | Same reason |
|
|
66
81
|
|
|
67
82
|
### 3. Find duplicate content
|
|
68
83
|
|
|
@@ -88,21 +103,33 @@ If many exist in specific dirs, add the directory pattern.
|
|
|
88
103
|
|
|
89
104
|
### 6. Whitelist own packages
|
|
90
105
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
- Add negation pattern: `!vendor/{org}/` to keep own packages in the retrieval index
|
|
106
|
+
Detect the project's own organization namespace from whichever manifest is present.
|
|
107
|
+
Add a negation pattern after the broad ignore so the agent can still index
|
|
108
|
+
first-party packages via `codebase-retrieval`:
|
|
95
109
|
|
|
96
|
-
|
|
97
|
-
|
|
110
|
+
| Manifest | Where the org lives | Negation pattern |
|
|
111
|
+
|------------------|-------------------------------------------------------------|-------------------------------------------|
|
|
112
|
+
| `composer.json` | `name` (`vendor/pkg`) + `repositories[]` for private repos | `!vendor/{org}/` |
|
|
113
|
+
| `package.json` | `name` (`@scope/pkg`) — derive `@scope` | `!node_modules/@{scope}/` |
|
|
114
|
+
| `pyproject.toml` | `[project].name` + `[tool.poetry].repositories` | `!**/site-packages/{org}*/` (rare — most Python projects don't vendor) |
|
|
115
|
+
| `go.mod` | `module example.com/{org}/{repo}` — derive `example.com/{org}` | `!vendor/example.com/{org}/` (only if `go mod vendor` is used) |
|
|
116
|
+
| `Cargo.toml` | `[package].name` / workspace members | Not applicable — Cargo does not vendor by default; skip |
|
|
117
|
+
| `Gemfile` | Git source URLs pointing to the org | `!vendor/bundle/ruby/*/gems/{org-prefix}*/` |
|
|
118
|
+
|
|
119
|
+
Effect: the broad ignore (`vendor/` / `node_modules/` / `vendor/bundle/`) excludes
|
|
120
|
+
thousands of third-party files; the negation keeps first-party packages indexed.
|
|
98
121
|
|
|
99
122
|
### 7. Cross-reference with .gitignore
|
|
100
123
|
|
|
101
124
|
Read `.gitignore` — most entries there should also be in `.augmentignore`.
|
|
102
|
-
But `.augmentignore` should ALSO include
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
125
|
+
But `.augmentignore` should ALSO include the following — these are typically
|
|
126
|
+
tracked in Git (so absent from `.gitignore`) yet useless for the retrieval
|
|
127
|
+
index because they are large, generated, or duplicate first-class source:
|
|
128
|
+
|
|
129
|
+
- Lock files (`composer.lock`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, `poetry.lock`, `Pipfile.lock`, `Gemfile.lock`, `go.sum`, `Cargo.lock` for binaries) — tracked but useless for code understanding.
|
|
130
|
+
- IDE helpers and codegen artefacts (`_ide_helper.php`, `_ide_helper_models.php`, `.phpstorm.meta.php`, `*.generated.ts`, `*.gen.go`, `__generated__/`) — tracked but huge.
|
|
131
|
+
- API contracts that are generated, not authored (`openapi.{yaml,json}` produced by codegen, `schema.graphql` generated from resolvers, `swagger.json`) — keep the source, drop the generated.
|
|
132
|
+
- Translation bundles when the project ships them in source control (`lang/`, `locales/`, `i18n/` files larger than ~20 KB).
|
|
106
133
|
|
|
107
134
|
### 8. Analyze irrelevant agent skills
|
|
108
135
|
|
|
@@ -112,10 +139,16 @@ Each ignored skill saves ~3 lines of system prompt tokens per request.
|
|
|
112
139
|
**How:**
|
|
113
140
|
|
|
114
141
|
1. Read `AGENTS.md` — extract tech stack (framework, language, DB, frontend, infra).
|
|
115
|
-
2. Read
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
142
|
+
2. Read every package manifest present in the project root — extract dependencies:
|
|
143
|
+
- `composer.json` → `require`, `require-dev`
|
|
144
|
+
- `package.json` → `dependencies`, `devDependencies`, `peerDependencies`
|
|
145
|
+
- `pyproject.toml` → `[project].dependencies`, `[tool.poetry.dependencies]`, `[dependency-groups]`
|
|
146
|
+
- `requirements*.txt` / `Pipfile` → package list
|
|
147
|
+
- `go.mod` → `require` blocks
|
|
148
|
+
- `Cargo.toml` → `[dependencies]`, `[dev-dependencies]`, workspace members
|
|
149
|
+
- `Gemfile` → `gem` lines
|
|
150
|
+
3. List all skills: `ls .augment/skills/`
|
|
151
|
+
4. For each skill, decide: **is this relevant to the detected stack?**
|
|
119
152
|
|
|
120
153
|
**Decision matrix — ignore when ALL conditions are true:**
|
|
121
154
|
|
|
@@ -165,7 +198,6 @@ Only consider rules with a `description` frontmatter (auto-loaded by topic match
|
|
|
165
198
|
|
|
166
199
|
| Rule | Ignore when... |
|
|
167
200
|
|---|---|
|
|
168
|
-
| `e2e-testing.md` | No Playwright / no E2E tests in project |
|
|
169
201
|
| `lang-files.md` | No `lang/` directory in project |
|
|
170
202
|
|
|
171
203
|
**Conservative approach:**
|
|
@@ -262,9 +294,9 @@ echo "Rules ignored: $rules_count"
|
|
|
262
294
|
- **Lock files are always ignored** — they're huge and provide zero code insight.
|
|
263
295
|
- **IDE helpers are always ignored** — generated, 20k+ lines, stale quickly.
|
|
264
296
|
- **When in doubt, ignore files** — false positive is easy to fix, false negative wastes tokens silently.
|
|
265
|
-
- **When in doubt, keep skills** — ignoring a needed skill
|
|
297
|
+
- **When in doubt, keep skills** — ignoring a needed skill causes bad output, keeping an unneeded one just wastes ~3 lines.
|
|
266
298
|
- **Never ignore always-active rules** — only auto-loaded rules (those with `description` frontmatter) may be ignored.
|
|
267
|
-
- **Never ignore meta/agent-system skills** — `agent-docs-writing-writing`, `
|
|
299
|
+
- **Never ignore meta / agent-system skills** — these are framework-independent and used by every project regardless of stack: `agent-docs-writing`, `agents-md-thin-root`, `check-refs`, `command-routing`, `command-writing`, `compress-memory`, `context-authoring`, `copilot-agents-optimization`, `copilot-config`, `description-assist`, `file-editor`, `guideline-writing`, `learning-to-rule-or-skill`, `lint-skills`, `md-language-check`, `override-management`, `persona-writing`, `project-analyzer`, `project-docs`, `project-health`, `roadmap-writing`, `rule-writing`, `skill-improvement-pipeline`, `skill-management`, `skill-reviewer`, `skill-writing`.
|
|
268
300
|
- **Restore previously ignored skills** when the stack changes (e.g., Vue added to project → restore `vue` skill).
|
|
269
301
|
|
|
270
302
|
## Cloud Behavior
|
|
@@ -26,21 +26,29 @@ which rtk
|
|
|
26
26
|
|
|
27
27
|
Scan the project to determine which CLI tools are used:
|
|
28
28
|
|
|
29
|
-
|
|
|
30
|
-
|
|
31
|
-
| `composer.json` contains `phpstan` or `larastan`
|
|
32
|
-
| `composer.json` contains `pestphp/pest` or `phpunit/phpunit`
|
|
33
|
-
| `composer.json` contains `symplify/easy-coding-standard`
|
|
34
|
-
| `composer.json` contains `rector/rector`
|
|
35
|
-
| `composer.json` contains scripts like `quality:phpstan`
|
|
36
|
-
| `package.json` contains `
|
|
37
|
-
| `package.json` contains `
|
|
38
|
-
| `package.json` contains `
|
|
39
|
-
| `package.json` contains `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
29
|
+
| Detection | Tool |
|
|
30
|
+
|------------------------------------------------------------------------------------------------|----------------------------|
|
|
31
|
+
| `composer.json` contains `phpstan` or `larastan` | PHPStan |
|
|
32
|
+
| `composer.json` contains `pestphp/pest` or `phpunit/phpunit` | Pest / PHPUnit |
|
|
33
|
+
| `composer.json` contains `symplify/easy-coding-standard` | ECS |
|
|
34
|
+
| `composer.json` contains `rector/rector` | Rector |
|
|
35
|
+
| `composer.json` contains scripts like `quality:phpstan` | Artisan / Composer quality wrappers |
|
|
36
|
+
| `package.json` contains `typescript` | tsc |
|
|
37
|
+
| `package.json` contains `eslint` | ESLint |
|
|
38
|
+
| `package.json` contains `prettier` | Prettier |
|
|
39
|
+
| `package.json` contains `@biomejs/biome` | Biome |
|
|
40
|
+
| `package.json` contains `vitest` | Vitest |
|
|
41
|
+
| `package.json` contains `jest` | Jest |
|
|
42
|
+
| `package.json` contains `playwright` / `@playwright/test` | Playwright |
|
|
43
|
+
| `pyproject.toml` / `requirements*.txt` contains `ruff` | Ruff |
|
|
44
|
+
| `pyproject.toml` / `requirements*.txt` contains `mypy` / `pyright` | mypy / Pyright |
|
|
45
|
+
| `pyproject.toml` / `requirements*.txt` contains `pytest` | pytest |
|
|
46
|
+
| `.golangci.yml` exists OR `golangci-lint` in `go.mod` tool dependencies | golangci-lint |
|
|
47
|
+
| `go.mod` exists | `go test` / `go vet` |
|
|
48
|
+
| `Cargo.toml` exists | cargo (build / test / clippy / fmt) |
|
|
49
|
+
| `Gemfile` contains `rubocop` / `standard` | RuboCop / Standard |
|
|
50
|
+
| `docker-compose.yml` or `docker-compose.yaml` exists | Docker Compose |
|
|
51
|
+
| `Makefile` exists | Make targets |
|
|
44
52
|
|
|
45
53
|
### 3. Read existing filters
|
|
46
54
|
|
|
@@ -77,16 +85,24 @@ max_lines = <appropriate limit>
|
|
|
77
85
|
|
|
78
86
|
**Common noise patterns per tool:**
|
|
79
87
|
|
|
80
|
-
| Tool
|
|
81
|
-
|
|
82
|
-
| PHPStan
|
|
83
|
-
| Pest/PHPUnit | Empty lines, box-drawing chars (`│`, `⇂`)
|
|
84
|
-
| ECS/Rector
|
|
85
|
-
| Composer
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
|
|
|
88
|
+
| Tool | Noise to strip |
|
|
89
|
+
|----------------|------------------------------------------------------------------------------|
|
|
90
|
+
| PHPStan | Progress bars (`\d+/\d+`), separator lines (`━`), notes |
|
|
91
|
+
| Pest / PHPUnit | Empty lines, box-drawing chars (`│`, `⇂`) |
|
|
92
|
+
| ECS / Rector | Separator lines, empty lines |
|
|
93
|
+
| Composer | Download progress, "Loading composer" |
|
|
94
|
+
| tsc | Progress dots, repeated cache-hit notes, watch-mode banners |
|
|
95
|
+
| ESLint | Numeric prefix per line (`123:45`), summary divider, `0 errors / 0 warnings` |
|
|
96
|
+
| Prettier | File-list output when only formatting (`✔ src/foo.ts`) |
|
|
97
|
+
| Vitest / Jest | Spinner frames, watch banner, coverage summary table when not requested |
|
|
98
|
+
| Playwright | Browser launch banner, retry notices, trace-file paths repeated per run |
|
|
99
|
+
| Ruff | Progress (`Checking N files`), repeated file headers in `--watch` |
|
|
100
|
+
| mypy / Pyright | `Daemon running` banners, success summary repeated per file |
|
|
101
|
+
| golangci-lint | Progress (`linters`), divider lines between linters |
|
|
102
|
+
| `go test` | `=== RUN` / `--- PASS` per sub-test (suppress in passing runs) |
|
|
103
|
+
| Cargo | ` Compiling …` lines for dependencies, `Finished release` banner |
|
|
104
|
+
| npm / yarn | Audit warnings, funding messages |
|
|
105
|
+
| Docker Compose | Build-context lines, pull progress |
|
|
90
106
|
|
|
91
107
|
### 5. Write the filters file
|
|
92
108
|
|
|
@@ -114,11 +130,21 @@ Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
|
|
|
114
130
|
- `full` → multi-line summary table:
|
|
115
131
|
|
|
116
132
|
```
|
|
117
|
-
| #
|
|
118
|
-
|
|
119
|
-
| 1
|
|
120
|
-
| 2
|
|
121
|
-
|
|
|
133
|
+
| # | Filter | Match | Max |
|
|
134
|
+
|-----|--------------|---------------------------------------------------------------|------|
|
|
135
|
+
| 1 | phpstan | phpstan\|quality:phpstan\|vendor/bin/phpstan | 80 |
|
|
136
|
+
| 2 | pest | pest\|phpunit\|artisan test | 60 |
|
|
137
|
+
| 3 | tsc | tsc\|tsc --noEmit | 60 |
|
|
138
|
+
| 4 | eslint | eslint\|next lint | 50 |
|
|
139
|
+
| 5 | vitest | vitest\|jest | 50 |
|
|
140
|
+
| 6 | playwright | playwright\|@playwright/test | 40 |
|
|
141
|
+
| 7 | ruff | ruff check\|ruff format | 60 |
|
|
142
|
+
| 8 | mypy | mypy\|pyright | 50 |
|
|
143
|
+
| 9 | pytest | pytest\|python -m pytest | 50 |
|
|
144
|
+
| 10 | golangci | golangci-lint\|go vet | 50 |
|
|
145
|
+
| 11 | gotest | go test | 40 |
|
|
146
|
+
| 12 | cargo | cargo build\|cargo check\|cargo clippy\|cargo test\|cargo fmt | 50 |
|
|
147
|
+
| ... | ... | (add per project as the toolchain grows) | ... |
|
|
122
148
|
```
|
|
123
149
|
|
|
124
150
|
### Rules
|