@event4u/agent-config 1.14.0 → 1.15.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/agent-handoff.md +1 -1
- package/.agent-src/commands/bug-fix.md +2 -2
- package/.agent-src/commands/chat-history-checkpoint.md +2 -2
- package/.agent-src/commands/chat-history-clear.md +1 -1
- package/.agent-src/commands/chat-history-resume.md +2 -2
- package/.agent-src/commands/chat-history.md +2 -2
- package/.agent-src/commands/check-current-md.md +43 -32
- package/.agent-src/commands/commit-in-chunks.md +43 -23
- package/.agent-src/commands/compress.md +34 -2
- package/.agent-src/commands/feature-roadmap.md +2 -2
- package/.agent-src/commands/fix-portability.md +2 -2
- package/.agent-src/commands/onboard.md +14 -5
- package/.agent-src/commands/optimize-augmentignore.md +9 -0
- package/.agent-src/commands/refine-ticket.md +9 -7
- package/.agent-src/commands/review-changes.md +35 -8
- package/.agent-src/commands/roadmap-create.md +13 -2
- package/.agent-src/commands/roadmap-execute.md +9 -7
- package/.agent-src/commands/set-cost-profile.md +8 -0
- package/.agent-src/commands/sync-agent-settings.md +9 -0
- package/.agent-src/commands/tests-execute.md +2 -3
- package/.agent-src/rules/artifact-engagement-recording.md +1 -1
- package/.agent-src/rules/augment-portability.md +56 -37
- package/.agent-src/rules/chat-history-cadence.md +109 -0
- package/.agent-src/rules/chat-history-ownership.md +123 -0
- package/.agent-src/rules/chat-history-visibility.md +96 -0
- package/.agent-src/rules/cli-output-handling.md +1 -1
- package/.agent-src/rules/command-suggestion.md +3 -2
- package/.agent-src/rules/commit-policy.md +44 -34
- package/.agent-src/rules/direct-answers.md +1 -1
- package/.agent-src/rules/language-and-tone.md +19 -15
- package/.agent-src/rules/non-destructive-by-default.md +18 -18
- package/.agent-src/rules/roadmap-progress-sync.md +133 -74
- package/.agent-src/rules/role-mode-adherence.md +1 -1
- package/.agent-src/rules/size-enforcement.md +2 -1
- package/.agent-src/rules/user-interaction.md +28 -4
- package/.agent-src/scripts/update_roadmap_progress.py +56 -4
- package/.agent-src/skills/blade-ui/SKILL.md +29 -10
- package/.agent-src/skills/command-writing/SKILL.md +15 -4
- package/.agent-src/skills/existing-ui-audit/SKILL.md +24 -9
- package/.agent-src/skills/fe-design/SKILL.md +20 -15
- package/.agent-src/skills/file-editor/SKILL.md +9 -0
- package/.agent-src/skills/livewire/SKILL.md +26 -7
- package/.agent-src/skills/refine-ticket/SKILL.md +30 -24
- package/.agent-src/skills/roadmap-management/SKILL.md +22 -16
- package/.agent-src/skills/skill-writing/SKILL.md +3 -3
- package/.agent-src/skills/upstream-contribute/SKILL.md +2 -2
- package/.agent-src/templates/agent-settings.md +1 -1
- package/.agent-src/templates/roadmaps.md +9 -8
- package/.agent-src/templates/scripts/memory_lookup.py +1 -1
- package/.agent-src/templates/scripts/work_engine/__init__.py +2 -2
- package/.agent-src/templates/scripts/work_engine/cli.py +64 -461
- package/.agent-src/templates/scripts/work_engine/cli_args.py +116 -0
- package/.agent-src/templates/scripts/work_engine/delivery_state.py +3 -3
- package/.agent-src/templates/scripts/work_engine/directives/backend/__init__.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/implement.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/memory.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/plan.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/report.py +1 -1
- package/.agent-src/templates/scripts/work_engine/dispatcher.py +1 -1
- package/.agent-src/templates/scripts/work_engine/emitters.py +43 -0
- package/.agent-src/templates/scripts/work_engine/errors.py +19 -0
- package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +76 -0
- package/.agent-src/templates/scripts/work_engine/input_builders.py +163 -0
- package/.agent-src/templates/scripts/work_engine/migration/v0_to_v1.py +34 -2
- package/.agent-src/templates/scripts/work_engine/persona_policy.py +1 -1
- package/.agent-src/templates/scripts/work_engine/resolvers/prompt.py +1 -1
- package/.agent-src/templates/scripts/work_engine/state_io.py +202 -0
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +6 -4
- package/CHANGELOG.md +83 -8
- package/README.md +24 -23
- package/docs/MIGRATION.md +122 -0
- package/docs/architecture.md +83 -34
- package/docs/contracts/STABILITY.md +95 -0
- package/docs/contracts/adr-chat-history-split.md +132 -0
- package/docs/contracts/adr-command-suggestion.md +146 -0
- package/docs/contracts/adr-implement-ticket-runtime.md +122 -0
- package/docs/contracts/adr-product-ui-track.md +384 -0
- package/docs/contracts/adr-prompt-driven-execution.md +187 -0
- package/docs/contracts/agent-memory-contract.md +149 -0
- package/docs/contracts/artifact-engagement-flow.md +262 -0
- package/docs/contracts/command-clusters.md +126 -0
- package/docs/contracts/command-suggestion-flow.md +148 -0
- package/docs/contracts/implement-ticket-flow.md +628 -0
- package/docs/contracts/linear-ai-rules-inclusion.md +143 -0
- package/docs/contracts/linear-ai-three-layers.md +131 -0
- package/docs/contracts/rule-interactions.md +107 -0
- package/docs/contracts/rule-interactions.yml +142 -0
- package/docs/contracts/ui-stack-extension.md +236 -0
- package/docs/contracts/ui-track-flow.md +338 -0
- package/docs/getting-started.md +2 -2
- package/docs/installation.md +42 -6
- package/docs/migrations/commands-1.15.0.md +112 -0
- package/docs/ui-track-mental-model.md +121 -0
- package/package.json +1 -1
- package/scripts/build_linear_digest.py +4 -4
- package/scripts/check_portability.py +2 -0
- package/scripts/check_public_links.py +185 -0
- package/scripts/check_references.py +1 -0
- package/scripts/lint_no_new_atomic_commands.py +179 -0
- package/scripts/lint_rule_interactions.py +149 -0
- package/scripts/memory_lookup.py +1 -1
- package/scripts/release.py +297 -64
- package/scripts/skill_linter.py +14 -0
- package/scripts/update_counts.py +10 -0
- package/.agent-src/rules/chat-history.md +0 -200
|
@@ -73,7 +73,7 @@ Show the handoff prompt in a fenced code block and say:
|
|
|
73
73
|
and without any persistent file.
|
|
74
74
|
- [`/chat-history-resume`](chat-history-resume.md) is **pull-based**: the
|
|
75
75
|
new chat reads `.agent-chat-history` from disk (written by the
|
|
76
|
-
[`chat-history`](../rules/chat-history.md) rule). Works only on the
|
|
76
|
+
[`chat-history`](../rules/chat-history-ownership.md) rule). Works only on the
|
|
77
77
|
same machine and same repo, but captures more detail (every phase /
|
|
78
78
|
tool call / decision the prior session logged).
|
|
79
79
|
|
|
@@ -75,8 +75,8 @@ RISIKO-CHECK:
|
|
|
75
75
|
For each change:
|
|
76
76
|
|
|
77
77
|
1. **Read the file** before modifying.
|
|
78
|
-
2. **Make the change**
|
|
79
|
-
3. **Check for downstream effects** —
|
|
78
|
+
2. **Make the change** with the file-edit tool available to the agent.
|
|
79
|
+
3. **Check for downstream effects** — search the codebase for callers.
|
|
80
80
|
4. **Update related code** if signatures or behavior changed.
|
|
81
81
|
|
|
82
82
|
### 4. Quality checks
|
|
@@ -104,7 +104,7 @@ If the helper returned `skipped_cadence`, surface it:
|
|
|
104
104
|
|
|
105
105
|
- The command writes through the same ownership-state machine as
|
|
106
106
|
hooks — a `foreign` log triggers the
|
|
107
|
-
[`chat-history`](../rules/chat-history.md) Foreign-Prompt before any
|
|
107
|
+
[`chat-history`](../rules/chat-history-ownership.md) Foreign-Prompt before any
|
|
108
108
|
append. This is intentional; the checkpoint must not silently
|
|
109
109
|
hijack another session's log.
|
|
110
110
|
- The `phase` payload key is required. Other keys are accepted but
|
|
@@ -117,7 +117,7 @@ If the helper returned `skipped_cadence`, surface it:
|
|
|
117
117
|
|
|
118
118
|
## See also
|
|
119
119
|
|
|
120
|
-
- [`chat-history`](../rules/chat-history.md) — the rule defining the
|
|
120
|
+
- [`chat-history`](../rules/chat-history-ownership.md) — the rule defining the
|
|
121
121
|
conditional Iron Law (HOOK platforms vs CHECKPOINT/MANUAL platforms)
|
|
122
122
|
- [`/chat-history`](chat-history.md) — read-only status display
|
|
123
123
|
- [`/chat-history-resume`](chat-history-resume.md) — adopt + load
|
|
@@ -96,7 +96,7 @@ effect — this command is scoped to the file on disk only.
|
|
|
96
96
|
|
|
97
97
|
## See also
|
|
98
98
|
|
|
99
|
-
- [`chat-history`](../rules/chat-history.md) — the rule that writes the file
|
|
99
|
+
- [`chat-history`](../rules/chat-history-ownership.md) — the rule that writes the file
|
|
100
100
|
- [`/chat-history`](chat-history.md) — status inspection
|
|
101
101
|
- [`/chat-history-resume`](chat-history-resume.md) — load + adopt instead of wipe
|
|
102
102
|
- [`agent-settings` template](../templates/agent-settings.md) — `chat_history.*` reference
|
|
@@ -17,7 +17,7 @@ flow: silent summarize, adopt, merge, or replace.
|
|
|
17
17
|
|
|
18
18
|
Use after a crashed chat, after switching tools (Augment → Claude Code),
|
|
19
19
|
or when the agent showed the foreign- or returning-session prompt from
|
|
20
|
-
the [`chat-history`](../rules/chat-history.md) rule and the user picked
|
|
20
|
+
the [`chat-history`](../rules/chat-history-ownership.md) rule and the user picked
|
|
21
21
|
"resume".
|
|
22
22
|
|
|
23
23
|
## When NOT to use
|
|
@@ -174,7 +174,7 @@ the user decides what to do next.
|
|
|
174
174
|
|
|
175
175
|
## See also
|
|
176
176
|
|
|
177
|
-
- [`chat-history`](../rules/chat-history.md) — the rule that triggers
|
|
177
|
+
- [`chat-history`](../rules/chat-history-ownership.md) — the rule that triggers
|
|
178
178
|
this command via the foreign- and returning-session prompts
|
|
179
179
|
- [`/chat-history`](chat-history.md) — status inspection without adopting
|
|
180
180
|
- [`/chat-history-clear`](chat-history-clear.md) — wipe instead of adopt
|
|
@@ -12,7 +12,7 @@ suggestion:
|
|
|
12
12
|
# /chat-history
|
|
13
13
|
|
|
14
14
|
Inspect `.agent-chat-history` — the JSONL log maintained by the
|
|
15
|
-
[`chat-history`](../rules/chat-history.md) rule for crash recovery.
|
|
15
|
+
[`chat-history`](../rules/chat-history-ownership.md) rule for crash recovery.
|
|
16
16
|
|
|
17
17
|
Shows:
|
|
18
18
|
|
|
@@ -100,7 +100,7 @@ append may trigger overflow handling.
|
|
|
100
100
|
|
|
101
101
|
## See also
|
|
102
102
|
|
|
103
|
-
- [`chat-history`](../rules/chat-history.md) — the rule that writes the file
|
|
103
|
+
- [`chat-history`](../rules/chat-history-ownership.md) — the rule that writes the file
|
|
104
104
|
- [`/chat-history-resume`](chat-history-resume.md) — adopt + load
|
|
105
105
|
- [`/chat-history-clear`](chat-history-clear.md) — wipe
|
|
106
106
|
- [`agent-settings` template](../templates/agent-settings.md) — `chat_history.*` reference
|
|
@@ -9,23 +9,23 @@ suggestion:
|
|
|
9
9
|
|
|
10
10
|
# check-current-md
|
|
11
11
|
|
|
12
|
-
Manual runner for [`md-language-check`](../skills/md-language-check/SKILL.md)
|
|
13
|
-
Use to spot-check an `.md` file the agent did not just edit, or to
|
|
14
|
-
before opening a PR.
|
|
12
|
+
Manual runner for the [`md-language-check`](../skills/md-language-check/SKILL.md)
|
|
13
|
+
skill. Use to spot-check an `.md` file the agent did not just edit, or to
|
|
14
|
+
audit a file before opening a PR.
|
|
15
15
|
|
|
16
16
|
## Instructions
|
|
17
17
|
|
|
18
18
|
### 1. Resolve target paths
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
in the editor (per `personal.ide` open-file
|
|
22
|
-
no path passed:
|
|
20
|
+
If the user passed one or more paths, use those. Otherwise, default to
|
|
21
|
+
the file currently open in the editor (per `personal.ide` open-file
|
|
22
|
+
context). If no file is open and no path was passed:
|
|
23
23
|
|
|
24
24
|
```
|
|
25
25
|
> ❌ No target file. Pass a path: /check-current-md path/to/file.md
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
Stop.
|
|
28
|
+
Stop here.
|
|
29
29
|
|
|
30
30
|
### 2. Run the checker
|
|
31
31
|
|
|
@@ -33,8 +33,11 @@ Stop.
|
|
|
33
33
|
python3 scripts/check_md_language.py <path> [<path> …] --format json
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
Exit codes:
|
|
37
|
-
|
|
36
|
+
Exit codes:
|
|
37
|
+
|
|
38
|
+
- `0` → no findings; report and stop
|
|
39
|
+
- `1` → findings present; continue to step 3
|
|
40
|
+
- `3` → internal error; surface stderr and stop
|
|
38
41
|
|
|
39
42
|
### 3. Display findings
|
|
40
43
|
|
|
@@ -46,7 +49,7 @@ internal error (surface stderr, stop).
|
|
|
46
49
|
Found: {count} violation(s) across {files} file(s)
|
|
47
50
|
```
|
|
48
51
|
|
|
49
|
-
|
|
52
|
+
For each violation:
|
|
50
53
|
|
|
51
54
|
```
|
|
52
55
|
{file}:{line} — kind: {umlaut|de_word} — match: `{matched_text}`
|
|
@@ -57,14 +60,16 @@ Group by file when multiple files are scanned.
|
|
|
57
60
|
|
|
58
61
|
### 4. Classify and propose fixes
|
|
59
62
|
|
|
63
|
+
For each violation, propose one of:
|
|
64
|
+
|
|
60
65
|
| Cause | Proposed fix |
|
|
61
66
|
|---|---|
|
|
62
|
-
| German sentence in body prose | Translate to English |
|
|
67
|
+
| German sentence in body prose | Translate the line to English |
|
|
63
68
|
| Quoted German token used as example | Move into a labeled `DE: … · EN: …` block |
|
|
64
|
-
| Meta-
|
|
65
|
-
|
|
|
69
|
+
| Meta-documentation that documents trigger words | Append `<!-- md-language-check: ignore -->` to the line |
|
|
70
|
+
| Line is intentionally bilingual but unlabeled | Reformat as labeled anchor block |
|
|
66
71
|
|
|
67
|
-
|
|
72
|
+
Present a summary:
|
|
68
73
|
|
|
69
74
|
```
|
|
70
75
|
Proposed fixes:
|
|
@@ -76,20 +81,21 @@ Summary:
|
|
|
76
81
|
> 3. Skip — report only
|
|
77
82
|
```
|
|
78
83
|
|
|
79
|
-
Recommendation: **2 — Apply interactively** when ≥3 findings,
|
|
80
|
-
|
|
84
|
+
Recommendation: **2 — Apply interactively** when ≥3 findings, **1 —
|
|
85
|
+
Apply all fixes** for ≤2 findings or when all are pure translations.
|
|
81
86
|
|
|
82
87
|
### 5. Apply fixes
|
|
83
88
|
|
|
84
89
|
Edit only the source-of-truth file:
|
|
85
90
|
|
|
86
|
-
- `.agent-src.uncompressed/` → edit directly
|
|
87
|
-
- `.agent-src/` → edit the matching
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
+
- Path under `.agent-src.uncompressed/` → edit there directly
|
|
92
|
+
- Path under `.agent-src/` → edit the matching
|
|
93
|
+
`.agent-src.uncompressed/` file instead, then run
|
|
94
|
+
`bash scripts/compress.sh --sync`
|
|
95
|
+
- Path under `.augment/` → same as `.agent-src/` (it's a projection)
|
|
96
|
+
- Path under `agents/` → edit directly (no compression layer)
|
|
91
97
|
|
|
92
|
-
|
|
98
|
+
After all fixes, re-run:
|
|
93
99
|
|
|
94
100
|
```bash
|
|
95
101
|
python3 scripts/check_md_language.py <path> [<path> …]
|
|
@@ -97,27 +103,32 @@ python3 scripts/check_md_language.py <path> [<path> …]
|
|
|
97
103
|
|
|
98
104
|
### 6. Mark hashes (only if `.agent-src.uncompressed/` was edited)
|
|
99
105
|
|
|
106
|
+
For each modified source file:
|
|
107
|
+
|
|
100
108
|
```bash
|
|
101
109
|
python3 scripts/compress.py --mark-done "{relative_path}"
|
|
102
110
|
```
|
|
103
111
|
|
|
104
|
-
|
|
112
|
+
This keeps `.compression-hashes.json` consistent with the new content.
|
|
105
113
|
|
|
106
114
|
## Rules
|
|
107
115
|
|
|
108
|
-
- **Never edit `.augment/` directly** — it's a generated projection
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
- **
|
|
116
|
+
- **Never edit `.augment/` directly** — it's a generated projection.
|
|
117
|
+
Per [`augment-source-of-truth`](../rules/augment-source-of-truth.md),
|
|
118
|
+
the source is `.agent-src.uncompressed/`.
|
|
119
|
+
- **Per-line ignore marker is reserved** for meta-documentation that
|
|
120
|
+
must quote German tokens; do NOT use it as a generic mute.
|
|
121
|
+
- **Frontmatter is exempt** — the checker skips YAML frontmatter at
|
|
122
|
+
the head of the file; do not try to "fix" frontmatter.
|
|
123
|
+
- **Do NOT commit or push** — finishing the check leaves the working
|
|
124
|
+
tree to the user.
|
|
114
125
|
|
|
115
126
|
## When NOT to use
|
|
116
127
|
|
|
117
128
|
- Project content outside `.agent-src*/`, `.augment/`, or `agents/`
|
|
118
|
-
follows a different language policy
|
|
119
|
-
- During autonomous edits the [`md-language-check`](../skills/md-language-check/SKILL.md)
|
|
120
|
-
skill already gates saves; this command is for **manual** spot-checks
|
|
129
|
+
follows a different language policy — do not enforce English there.
|
|
130
|
+
- During autonomous edits, the [`md-language-check`](../skills/md-language-check/SKILL.md)
|
|
131
|
+
skill already gates saves; this command is for **manual** spot-checks.
|
|
121
132
|
|
|
122
133
|
## See also
|
|
123
134
|
|
|
@@ -11,10 +11,10 @@ suggestion:
|
|
|
11
11
|
|
|
12
12
|
# commit-in-chunks
|
|
13
13
|
|
|
14
|
-
Auto-split and commit all local changes in one go. Use when you
|
|
15
|
-
commits made without being asked to confirm each batch. Sibling
|
|
16
|
-
[`/commit`](commit.md), which
|
|
17
|
-
|
|
14
|
+
Auto-split and commit all local changes in one go. Use this when you
|
|
15
|
+
want commits made without being asked to confirm each batch. Sibling
|
|
16
|
+
of [`/commit`](commit.md), which presents the plan and waits for
|
|
17
|
+
approval. This command skips the approval step.
|
|
18
18
|
|
|
19
19
|
Per [`autonomous-execution`](../rules/autonomous-execution.md), the
|
|
20
20
|
agent does **not** commit on its own initiative — invoking this
|
|
@@ -30,29 +30,36 @@ git diff --stat
|
|
|
30
30
|
git diff --cached --stat
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
If there are no uncommitted changes (staged or unstaged), report
|
|
34
|
+
"Nothing to commit." and stop.
|
|
34
35
|
|
|
35
36
|
### 2. Determine the ticket number
|
|
36
37
|
|
|
37
|
-
- Extract ticket ID from current branch (e.g. `feat/DEV-1234/...`
|
|
38
|
-
|
|
38
|
+
- Extract the ticket ID from the current branch name (e.g. `feat/DEV-1234/...`
|
|
39
|
+
→ `DEV-1234`).
|
|
40
|
+
- If no ticket ID is found, omit the scope from the messages — write
|
|
41
|
+
`chore: ...` not `chore(): ...`. Do **not** ask the user for one.
|
|
39
42
|
|
|
40
43
|
### 3. Analyze and split
|
|
41
44
|
|
|
42
|
-
Group changed files into logical units
|
|
45
|
+
Group changed files into logical units following [`/commit`](commit.md)
|
|
46
|
+
step 3 grouping rules:
|
|
43
47
|
|
|
44
48
|
- Same feature / fix → one commit.
|
|
45
49
|
- Migration + corresponding model/seeder → one commit.
|
|
46
|
-
- Test + class under test → one commit.
|
|
47
|
-
- Style-only (ECS/Rector/formatter) → separate `style:` /
|
|
50
|
+
- Test + the class under test → one commit.
|
|
51
|
+
- Style-only changes (ECS/Rector/formatter) → separate `style:` /
|
|
52
|
+
`chore:` commit when mixed with logic changes.
|
|
48
53
|
- Truly unrelated change → its own commit.
|
|
49
54
|
|
|
50
55
|
Splitting rules:
|
|
51
|
-
- **Do NOT split arbitrarily** — only when logically
|
|
56
|
+
- **Do NOT split arbitrarily** — only when the changes are logically
|
|
57
|
+
independent.
|
|
52
58
|
- **Prefer fewer, coherent commits** over many tiny ones.
|
|
53
|
-
- **Tests go with the code they test** unless test-only changes are
|
|
59
|
+
- **Tests go with the code they test** unless test-only changes are
|
|
60
|
+
large and noisy.
|
|
54
61
|
|
|
55
|
-
Generate messages per [`commit-conventions`](../rules/commit-conventions.md).
|
|
62
|
+
Generate commit messages per [`commit-conventions`](../rules/commit-conventions.md).
|
|
56
63
|
|
|
57
64
|
### 4. Commit immediately
|
|
58
65
|
|
|
@@ -63,10 +70,13 @@ git add {files...}
|
|
|
63
70
|
git commit -m "{message}"
|
|
64
71
|
```
|
|
65
72
|
|
|
66
|
-
No "looks good?" prompt. No confirmation.
|
|
73
|
+
No "looks good?" prompt. No confirmation step. The user invoked this
|
|
74
|
+
command knowing the plan would be executed.
|
|
67
75
|
|
|
68
76
|
### 5. Report
|
|
69
77
|
|
|
78
|
+
Show a summary:
|
|
79
|
+
|
|
70
80
|
```
|
|
71
81
|
Created N commits:
|
|
72
82
|
1. {sha1} feat(DEV-1234): {summary}
|
|
@@ -80,19 +90,29 @@ Include `git log --oneline -N` output for verification.
|
|
|
80
90
|
|
|
81
91
|
- **Never push** — pushing remains explicit per [`scope-control`](../rules/scope-control.md#git-operations--permission-gated).
|
|
82
92
|
- **Never modify files** — only stage and commit existing changes.
|
|
83
|
-
- **Do NOT add untracked files** unless clearly part of the
|
|
84
|
-
|
|
85
|
-
- **
|
|
86
|
-
- **
|
|
93
|
+
- **Do NOT add untracked files** unless they are clearly part of the
|
|
94
|
+
change (check with `git status` first).
|
|
95
|
+
- **Follow commit conventions** as defined in [`commit-conventions`](../rules/commit-conventions.md).
|
|
96
|
+
- **Stop on first failure** — if `git commit` fails (hook rejection,
|
|
97
|
+
pre-commit lint error), stop, report the error, and do not continue
|
|
98
|
+
with the remaining planned commits. Leave staged files for the user
|
|
99
|
+
to inspect.
|
|
100
|
+
- **No interactive prompts** — fail fast over hanging waiting for
|
|
101
|
+
input.
|
|
87
102
|
|
|
88
103
|
## When NOT to use
|
|
89
104
|
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
-
|
|
105
|
+
- The user has not seen the diff yet and would benefit from review →
|
|
106
|
+
use [`/commit`](commit.md) instead.
|
|
107
|
+
- The diff includes large unrelated changes the user might want to
|
|
108
|
+
reorganise → use [`/commit`](commit.md).
|
|
109
|
+
- The repo has a pre-commit hook that requires manual response → fix
|
|
110
|
+
the hook or use `/commit`.
|
|
93
111
|
|
|
94
112
|
## See also
|
|
95
113
|
|
|
96
114
|
- [`/commit`](commit.md) — split + present plan + wait for approval
|
|
97
|
-
- [`autonomous-execution`](../rules/autonomous-execution.md) — the
|
|
98
|
-
-
|
|
115
|
+
- [`autonomous-execution`](../rules/autonomous-execution.md) — the
|
|
116
|
+
rule that defines the no-ask commit default this command opts out of
|
|
117
|
+
- [`commit-conventions`](../rules/commit-conventions.md) — message
|
|
118
|
+
format
|
|
@@ -34,7 +34,8 @@ bash scripts/compress.sh --changed
|
|
|
34
34
|
This lists only `.md` files whose source has changed since the last compression (based on
|
|
35
35
|
stored SHA-256 hashes). If no files changed → you're done.
|
|
36
36
|
|
|
37
|
-
If you need to see ALL files regardless of change status:
|
|
37
|
+
If you need to see ALL files regardless of change status:
|
|
38
|
+
`bash scripts/compress.sh --list`.
|
|
38
39
|
|
|
39
40
|
## Step 3: Compress each changed .md file
|
|
40
41
|
|
|
@@ -71,6 +72,7 @@ For each changed `.md` file:
|
|
|
71
72
|
- Concrete validation checks
|
|
72
73
|
- Gotchas based on real failure patterns
|
|
73
74
|
- Anti-patterns that prevent recurring failures
|
|
75
|
+
- **Iron Law sections** — see "Iron Laws — do not touch" below
|
|
74
76
|
5. **Enrich (SKILL.md files only):** During compression, also improve agent-effectiveness:
|
|
75
77
|
- **Validation steps:** If a Procedure ends with a vague validation ("check if it works"),
|
|
76
78
|
replace with concrete checks (expected output, commands to verify, specific conditions)
|
|
@@ -140,9 +142,39 @@ Show a summary table with per-category stats (files compressed, avg savings).
|
|
|
140
142
|
(useful after an initial full compression or when bootstrapping the hash file).
|
|
141
143
|
- A file with no stored hash is always treated as "changed".
|
|
142
144
|
|
|
145
|
+
## Iron Laws — do not touch
|
|
146
|
+
|
|
147
|
+
Sections under headings matching `Iron Law`, `Iron Laws`, or `The Iron Law` (any
|
|
148
|
+
heading level, numbered variants like `Iron Law 1` included) are **load-bearing
|
|
149
|
+
behavioral rules**. Compression rules above do **not** apply to them.
|
|
150
|
+
|
|
151
|
+
For every Iron Law section in a source file:
|
|
152
|
+
|
|
153
|
+
- **Copy the heading verbatim**, exact text, exact `#` level. NEVER downgrade
|
|
154
|
+
`## Iron Law` to `### Iron Law` or to inline `**Iron Law:**`.
|
|
155
|
+
- **Copy the fenced code block byte-for-byte**, including capitalization, line
|
|
156
|
+
breaks, and trailing punctuation.
|
|
157
|
+
- **Copy the negation clauses verbatim** — `NO X`, `NEVER Y`, `NOT Z`. These
|
|
158
|
+
are the law's exception denials; stripping them weakens the rule.
|
|
159
|
+
- **Caveman the prose, keep every passage** — every paragraph, every list
|
|
160
|
+
item, and every fenced code block from the source must appear in the
|
|
161
|
+
compressed output, in order. Drop articles, shorten phrasing, primitive
|
|
162
|
+
grammar, terse cave-speak — all encouraged. What's forbidden is dropping
|
|
163
|
+
whole sentences, merging two paragraphs into one, or skipping a bullet.
|
|
164
|
+
One paragraph → one paragraph; one bullet → one bullet.
|
|
165
|
+
- **No word-count budget** — compress the prose as hard as caveman style
|
|
166
|
+
allows. The check is structural (passage count), not quantitative.
|
|
167
|
+
|
|
168
|
+
`scripts/check_compression.py` enforces these mechanically — `iron_law_missing`,
|
|
169
|
+
`iron_law_passage_dropped`, and `iron_law_heading_downgrade` are `error`-level
|
|
170
|
+
and block CI.
|
|
171
|
+
|
|
172
|
+
If an Iron Law section genuinely contains filler (rare): edit the SOURCE in
|
|
173
|
+
`.agent-src.uncompressed/`, not the compressed copy. Source is the truth.
|
|
174
|
+
|
|
143
175
|
## Compression quality checklist
|
|
144
176
|
|
|
145
|
-
**Also apply the `preservation-guard` rule** — strongest validation, example, anti-pattern, and decision hints must survive compression.
|
|
177
|
+
**Also apply the `preservation-guard` rule** — strongest validation, example, anti-pattern, and decision hints must survive compression. Iron Laws are non-negotiable.
|
|
146
178
|
|
|
147
179
|
After compressing each file, verify:
|
|
148
180
|
|
|
@@ -176,8 +176,8 @@ What's next?
|
|
|
176
176
|
### Rules
|
|
177
177
|
|
|
178
178
|
- **Do NOT commit or push.**
|
|
179
|
-
- **Do NOT include commit steps** unless user explicitly
|
|
180
|
-
See [`commit-policy`](../rules/commit-policy.md#never-write-commit-steps-into-roadmaps-unsolicited).
|
|
179
|
+
- **Do NOT include commit steps in the roadmap** unless the user explicitly
|
|
180
|
+
requested them. See [`commit-policy`](../rules/commit-policy.md#never-write-commit-steps-into-roadmaps-unsolicited).
|
|
181
181
|
- **Do NOT modify the feature plan** beyond updating the Roadmaps section and status.
|
|
182
182
|
- **Always link roadmaps back to the feature** and vice versa.
|
|
183
183
|
- **Use the roadmap template** from `agents/roadmaps/template.md`.
|
|
@@ -92,8 +92,8 @@ python3 scripts/compress.py --mark-done "{relative_path}"
|
|
|
92
92
|
|
|
93
93
|
## Rules
|
|
94
94
|
|
|
95
|
-
- **Always fix in `.agent-src.uncompressed/`** — never edit `.
|
|
96
|
-
- **
|
|
95
|
+
- **Always fix in `.agent-src.uncompressed/`** — never edit `.augment/` directly.
|
|
96
|
+
- **Copy to `.augment/`** after fixing.
|
|
97
97
|
- **Do NOT commit or push.**
|
|
98
98
|
- **`agents/` directory is allowed** to have project-specific references — skip it.
|
|
99
99
|
- **Do NOT fix references in code blocks** unless the code block is clearly a template.
|
|
@@ -8,6 +8,8 @@ suggestion:
|
|
|
8
8
|
rationale: "Gated by the onboarding-gate rule already; never inferred from prose."
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
<!-- cloud_safe: noop -->
|
|
12
|
+
|
|
11
13
|
# /onboard
|
|
12
14
|
|
|
13
15
|
Centralized first-run flow. Bundles what used to be scattered "ask once"
|
|
@@ -158,10 +160,10 @@ you ask it to change a value.
|
|
|
158
160
|
|
|
159
161
|
### 9. Maintainer-only feature pointer
|
|
160
162
|
|
|
161
|
-
|
|
162
|
-
maintainers who want to opt into artefact-engagement
|
|
163
|
-
can ignore it; the feature is **default-off**
|
|
164
|
-
explicitly enabled.
|
|
163
|
+
Print a one-screen hint after the summary — no question, no prompt, just a
|
|
164
|
+
pointer for maintainers who want to opt into the artefact-engagement
|
|
165
|
+
telemetry layer. Consumers can ignore it; the feature is **default-off**
|
|
166
|
+
and stays off unless explicitly enabled.
|
|
165
167
|
|
|
166
168
|
```
|
|
167
169
|
ℹ️ Maintainer telemetry (opt-in)
|
|
@@ -172,7 +174,7 @@ explicitly enabled.
|
|
|
172
174
|
|
|
173
175
|
The log is local-only JSONL — nothing uploaded, nothing shared across
|
|
174
176
|
projects. Reports: ./agent-config telemetry:report
|
|
175
|
-
Contract + privacy floor:
|
|
177
|
+
Contract + privacy floor: docs/contracts/artifact-engagement-flow.md
|
|
176
178
|
```
|
|
177
179
|
|
|
178
180
|
Skip this block in cloud surfaces (no settings file, no log path).
|
|
@@ -187,6 +189,13 @@ Skip this block in cloud surfaces (no settings file, no log path).
|
|
|
187
189
|
- Never overwrite a non-empty value without asking (applies to `user_name`
|
|
188
190
|
and `ide`).
|
|
189
191
|
|
|
192
|
+
## Cloud Behavior
|
|
193
|
+
|
|
194
|
+
On cloud surfaces (Claude.ai Web, Skills API) this command is **fully inert** —
|
|
195
|
+
there is no `.agent-settings.yml` to write, no `onboarding.onboarded` key to
|
|
196
|
+
flip, and no local IDE/rtk environment to capture. First-run setup is a
|
|
197
|
+
local-agent concern; the cloud agent should proceed without invoking it.
|
|
198
|
+
|
|
190
199
|
## See also
|
|
191
200
|
|
|
192
201
|
- [`onboarding-gate`](../rules/onboarding-gate.md) — rule that triggers this command
|
|
@@ -8,6 +8,8 @@ suggestion:
|
|
|
8
8
|
rationale: "Niche maintenance tool with no recurring NL trigger."
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
<!-- cloud_safe: noop -->
|
|
12
|
+
|
|
11
13
|
# /optimize-augmentignore
|
|
12
14
|
|
|
13
15
|
Scans the project to find files that waste tokens in Augment's retrieval index
|
|
@@ -263,3 +265,10 @@ echo "Rules ignored: $rules_count"
|
|
|
263
265
|
- **Never ignore always-active rules** — only auto-loaded rules (those with `description` frontmatter) may be ignored.
|
|
264
266
|
- **Never ignore meta/agent-system skills** — `agent-docs-writing-writing`, `commands`, `context-create`, `override-management`, `guidelines`, `project-docs`, `roadmap-management`, `naming`, `skill-reviewer`, `file-editor`, `copilot-config`, `copilot-agents-optimization`.
|
|
265
267
|
- **Restore previously ignored skills** when the stack changes (e.g., Vue added to project → restore `vue` skill).
|
|
268
|
+
|
|
269
|
+
## Cloud Behavior
|
|
270
|
+
|
|
271
|
+
On cloud surfaces (Claude.ai Web, Skills API) this command is **fully inert** —
|
|
272
|
+
`.augmentignore` is an Augment-Code-specific retrieval-index config; it has
|
|
273
|
+
no equivalent on the cloud surfaces and no file to write. Index pruning is
|
|
274
|
+
a local-agent concern.
|
|
@@ -34,16 +34,18 @@ If no input resolves: ask **one** focused question:
|
|
|
34
34
|
|
|
35
35
|
### 2. Pick the output language
|
|
36
36
|
|
|
37
|
-
Apply the skill's language-strategy block.
|
|
37
|
+
Apply the skill's language-strategy block. Fallback order, first hit wins:
|
|
38
38
|
|
|
39
39
|
1. **User-message language** — latest user message decides. Honours
|
|
40
40
|
the global `language-and-tone` iron law.
|
|
41
|
-
2. **Ticket body language** —
|
|
42
|
-
with no prose)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
2. **Ticket body language** — when the invocation is minimal
|
|
42
|
+
(`/refine-ticket PROJ-123` with no prose), mirror the ticket's
|
|
43
|
+
own language (summary + description).
|
|
44
|
+
3. **`.agent-settings.yml` default** — fallback when both are silent;
|
|
45
|
+
English when the setting is absent.
|
|
46
|
+
|
|
47
|
+
Quoted identifiers (keys, paths, commands) stay native; only the
|
|
48
|
+
prose mirrors the picked language.
|
|
47
49
|
|
|
48
50
|
### 3. Run the refine-ticket skill
|
|
49
51
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-changes
|
|
3
|
-
skills: [code-review, subagent-orchestration, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality]
|
|
3
|
+
skills: [code-review, subagent-orchestration, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, git-workflow]
|
|
4
4
|
description: Self-review local changes before creating a PR — dispatches to four specialized judges (bug, security, tests, quality) and consolidates verdicts
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
suggestion:
|
|
@@ -17,7 +17,29 @@ Review all uncommitted and committed-but-not-pushed changes against
|
|
|
17
17
|
the default branch (`main`) by dispatching to four specialized judge
|
|
18
18
|
sub-skills and consolidating their verdicts.
|
|
19
19
|
|
|
20
|
-
### 1.
|
|
20
|
+
### 1. Update the current branch
|
|
21
|
+
|
|
22
|
+
Before gathering the diff, run [`/prepare-for-review`](prepare-for-review.md)
|
|
23
|
+
to make sure the current branch is up to date with its base chain:
|
|
24
|
+
|
|
25
|
+
- Detect the current branch with `git rev-parse --abbrev-ref HEAD`.
|
|
26
|
+
- If the branch is `main` → skip this step (nothing to prepare).
|
|
27
|
+
- Otherwise, search for an open GitHub PR whose head is the current
|
|
28
|
+
branch.
|
|
29
|
+
- If exactly one open PR is found → invoke `/prepare-for-review`
|
|
30
|
+
with that PR number. It will update `main`, fetch and merge the
|
|
31
|
+
full branch chain into the current branch, and leave the current
|
|
32
|
+
branch checked out.
|
|
33
|
+
- If no open PR is found → fall back to a minimal local update:
|
|
34
|
+
`git fetch origin main` and `git merge origin/main --no-edit` on
|
|
35
|
+
the current branch. Abort on conflict and report.
|
|
36
|
+
- If multiple PRs are found → ask the user which PR to use before
|
|
37
|
+
proceeding.
|
|
38
|
+
- If `/prepare-for-review` aborts (merge conflict, network error,
|
|
39
|
+
etc.) → stop the review here and surface the error. Do **not**
|
|
40
|
+
continue with stale data.
|
|
41
|
+
|
|
42
|
+
### 2. Gather the diff
|
|
21
43
|
|
|
22
44
|
- `git diff origin/main..HEAD --stat` — overview of changed files
|
|
23
45
|
- `git diff origin/main..HEAD` — full committed-but-not-pushed diff
|
|
@@ -25,7 +47,7 @@ sub-skills and consolidating their verdicts.
|
|
|
25
47
|
|
|
26
48
|
If both diffs are empty, **stop** — nothing to review.
|
|
27
49
|
|
|
28
|
-
###
|
|
50
|
+
### 3. Resolve the judge model
|
|
29
51
|
|
|
30
52
|
Read `.agent-settings.yml`:
|
|
31
53
|
|
|
@@ -33,7 +55,7 @@ Read `.agent-settings.yml`:
|
|
|
33
55
|
|
|
34
56
|
Unknown alias → stop. Never silently fall back.
|
|
35
57
|
|
|
36
|
-
###
|
|
58
|
+
### 4. Dispatch to the four judges
|
|
37
59
|
|
|
38
60
|
Each judge receives **the same diff plus the task context** (ticket,
|
|
39
61
|
PR body, commit messages) and runs independently. The judges are:
|
|
@@ -59,7 +81,7 @@ Pick dispatch mode based on diff size and environment:
|
|
|
59
81
|
Each judge returns its own `Judge / Model / Target / Verdict /
|
|
60
82
|
Issues` block in the format defined by that skill.
|
|
61
83
|
|
|
62
|
-
###
|
|
84
|
+
### 5. Consolidate
|
|
63
85
|
|
|
64
86
|
Produce one combined report:
|
|
65
87
|
|
|
@@ -69,7 +91,7 @@ Produce one combined report:
|
|
|
69
91
|
- Highlight any finding that multiple judges flagged — those are the
|
|
70
92
|
highest-confidence items
|
|
71
93
|
|
|
72
|
-
###
|
|
94
|
+
### 6. Decide next steps
|
|
73
95
|
|
|
74
96
|
- If **any** judge returned `reject` → stop; the approach must change
|
|
75
97
|
before proceeding
|
|
@@ -77,7 +99,7 @@ Produce one combined report:
|
|
|
77
99
|
ask before fixing 🟡 findings, report 🟢 as suggestions
|
|
78
100
|
- If all four returned `apply` → the diff is ready; report and stop
|
|
79
101
|
|
|
80
|
-
###
|
|
102
|
+
### 7. Quality tools (optional)
|
|
81
103
|
|
|
82
104
|
After the consolidated report, ask:
|
|
83
105
|
|
|
@@ -97,8 +119,12 @@ or the equivalent configured command).
|
|
|
97
119
|
files still gets coverage feedback — `judge-test-coverage` treats
|
|
98
120
|
"production changed, no test changed" as its primary finding
|
|
99
121
|
- Project-specific syntax checks (e.g. `php -l`, linter pre-pass) are
|
|
100
|
-
out of scope for the judges and belong in the optional step
|
|
122
|
+
out of scope for the judges and belong in the optional step 7
|
|
101
123
|
quality tools hand-off
|
|
124
|
+
- The new step 1 (`/prepare-for-review`) is **best-effort**: if no
|
|
125
|
+
open PR exists for the current branch, it falls back to a plain
|
|
126
|
+
`git fetch && git merge origin/main`. Existing invocations that
|
|
127
|
+
ran on a fully detached or pre-PR branch keep working
|
|
102
128
|
|
|
103
129
|
## Use this command when
|
|
104
130
|
|
|
@@ -119,6 +145,7 @@ or the equivalent configured command).
|
|
|
119
145
|
|
|
120
146
|
## See also
|
|
121
147
|
|
|
148
|
+
- [`/prepare-for-review`](prepare-for-review.md) — updates `main` and merges the full base-branch chain into the target branch (used by step 1)
|
|
122
149
|
- [`subagent-orchestration`](../skills/subagent-orchestration/SKILL.md) — dispatch and model-pairing rules
|
|
123
150
|
- [`/do-and-judge`](do-and-judge.md) — implementer + judge loop for a single change
|
|
124
151
|
- [`/judge`](judge.md) — standalone judge, no review-changes dispatch
|