liteagents 3.0.0 → 3.5.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/CHANGELOG.md +122 -1
- package/README.md +113 -169
- package/installer/cli.js +4 -2
- package/package.json +4 -3
- package/packages/ampcode/AGENT.md +10 -18
- package/packages/ampcode/agents/code-developer.md +11 -17
- package/packages/ampcode/agents/orchestrator.md +1 -1
- package/packages/ampcode/agents/quality-assurance.md +3 -1
- package/packages/ampcode/{commands/brainstorming.md → skills/brainstorming/SKILL.md} +2 -3
- package/packages/ampcode/{commands/branch-review.md → skills/branch-review/SKILL.md} +13 -13
- package/packages/{claude/commands/docs-builder.md → ampcode/skills/docs-builder/SKILL.md} +1 -1
- package/packages/ampcode/{commands/live-canvas.md → skills/live-canvas/SKILL.md} +8 -4
- package/packages/ampcode/{commands/refactor.md → skills/refactor/SKILL.md} +49 -7
- package/packages/ampcode/{commands/release.md → skills/release/SKILL.md} +4 -4
- package/packages/{claude/commands → ampcode/skills}/remember/AGENT_RULES.md +44 -84
- package/packages/ampcode/{commands/remember.md → skills/remember/SKILL.md} +11 -6
- package/packages/ampcode/{commands → skills}/remember/friction.cjs +0 -0
- package/packages/ampcode/{commands → skills}/remember/stub-check.cjs +28 -19
- package/packages/ampcode/{commands → skills}/remember/sync-rules.cjs +28 -19
- package/packages/{claude/commands → ampcode/skills}/remember/version-check.cjs +1 -1
- package/packages/ampcode/skills/root-cause/SKILL.md +220 -0
- package/packages/ampcode/{commands/trace-back → skills/root-cause}/find-polluter.sh +0 -0
- package/packages/{claude/commands/security.md → ampcode/skills/security/SKILL.md} +1 -1
- package/packages/{claude/commands/ship.md → ampcode/skills/ship/SKILL.md} +1 -1
- package/packages/ampcode/skills/skill-creator/LICENSE.txt +202 -0
- package/packages/ampcode/{commands/skill-creator.md → skills/skill-creator/SKILL.md} +1 -2
- package/packages/ampcode/{commands → skills}/skill-creator/scripts/init_skill.py +0 -0
- package/packages/ampcode/{commands → skills}/skill-creator/scripts/package_skill.py +0 -0
- package/packages/ampcode/{commands → skills}/skill-creator/scripts/quick_validate.py +0 -0
- package/packages/ampcode/{commands/stash.md → skills/stash/SKILL.md} +2 -1
- package/packages/{claude/commands/test-generate.md → ampcode/skills/test-generate/SKILL.md} +2 -2
- package/packages/ampcode/variants.json +2 -2
- package/packages/claude/CLAUDE.md +10 -17
- package/packages/claude/agents/code-developer.md +11 -17
- package/packages/claude/agents/orchestrator.md +2 -3
- package/packages/claude/agents/quality-assurance.md +3 -1
- package/packages/claude/skills/brainstorming/SKILL.md +1 -2
- package/packages/claude/{commands/branch-review.md → skills/branch-review/SKILL.md} +1 -1
- package/packages/{ampcode/commands/docs-builder.md → claude/skills/docs-builder/SKILL.md} +7 -7
- package/packages/claude/skills/live-canvas/SKILL.md +5 -1
- package/packages/claude/{commands/refactor.md → skills/refactor/SKILL.md} +45 -3
- package/packages/claude/{commands/release.md → skills/release/SKILL.md} +1 -1
- package/packages/{ampcode/commands → claude/skills}/remember/AGENT_RULES.md +38 -78
- package/packages/claude/{commands/remember.md → skills/remember/SKILL.md} +11 -6
- package/packages/claude/{commands → skills}/remember/friction.cjs +0 -0
- package/packages/claude/{commands → skills}/remember/stub-check.cjs +28 -19
- package/packages/claude/{commands → skills}/remember/sync-rules.cjs +28 -19
- package/packages/{ampcode/commands → claude/skills}/remember/version-check.cjs +3 -3
- package/packages/claude/skills/root-cause/SKILL.md +220 -0
- package/packages/{ampcode/commands/security.md → claude/skills/security/SKILL.md} +2 -2
- package/packages/{ampcode/commands/ship.md → claude/skills/ship/SKILL.md} +2 -2
- package/packages/claude/skills/skill-creator/SKILL.md +1 -2
- package/packages/claude/{commands/stash.md → skills/stash/SKILL.md} +2 -1
- package/packages/{ampcode/commands/test-generate.md → claude/skills/test-generate/SKILL.md} +3 -3
- package/packages/claude/variants.json +1 -2
- package/packages/droid/AGENTS.md +10 -15
- package/packages/droid/commands/brainstorming.md +1 -4
- package/packages/droid/commands/branch-review.md +11 -14
- package/packages/droid/commands/docs-builder.md +0 -3
- package/packages/droid/commands/live-canvas.md +7 -5
- package/packages/droid/commands/refactor.md +47 -8
- package/packages/droid/commands/release.md +2 -5
- package/packages/droid/commands/remember/AGENT_RULES.md +38 -78
- package/packages/droid/commands/remember/stub-check.cjs +28 -19
- package/packages/droid/commands/remember/sync-rules.cjs +28 -19
- package/packages/droid/commands/remember/version-check.cjs +1 -1
- package/packages/droid/commands/remember.md +6 -4
- package/packages/droid/commands/root-cause.md +218 -0
- package/packages/droid/commands/security.md +0 -3
- package/packages/droid/commands/ship.md +0 -3
- package/packages/droid/commands/skill-creator/LICENSE.txt +202 -0
- package/packages/droid/commands/skill-creator.md +0 -4
- package/packages/droid/commands/stash.md +0 -2
- package/packages/droid/commands/test-generate.md +1 -4
- package/packages/droid/droids/1-create-prd.md +6 -2
- package/packages/droid/droids/2-generate-tasks.md +1 -2
- package/packages/droid/droids/3-process-task-list.md +1 -2
- package/packages/droid/droids/code-developer.md +12 -19
- package/packages/droid/droids/feature-planner.md +1 -2
- package/packages/droid/droids/market-researcher.md +1 -2
- package/packages/droid/droids/orchestrator.md +1 -2
- package/packages/droid/droids/quality-assurance.md +4 -3
- package/packages/droid/droids/system-architect.md +1 -2
- package/packages/droid/droids/ui-designer.md +1 -2
- package/packages/opencode/AGENTS.md +10 -15
- package/packages/opencode/agent/code-developer.md +11 -17
- package/packages/opencode/agent/quality-assurance.md +3 -1
- package/packages/opencode/command/brainstorming.md +1 -4
- package/packages/opencode/command/branch-review.md +11 -15
- package/packages/opencode/command/docs-builder.md +0 -4
- package/packages/opencode/command/live-canvas.md +7 -5
- package/packages/opencode/command/refactor.md +47 -9
- package/packages/opencode/command/release.md +2 -5
- package/packages/opencode/command/remember/AGENT_RULES.md +38 -78
- package/packages/opencode/command/remember/stub-check.cjs +28 -19
- package/packages/opencode/command/remember/sync-rules.cjs +28 -19
- package/packages/opencode/command/remember/version-check.cjs +1 -1
- package/packages/opencode/command/remember.md +6 -4
- package/packages/opencode/command/root-cause.md +218 -0
- package/packages/opencode/command/security.md +0 -4
- package/packages/opencode/command/ship.md +0 -3
- package/packages/opencode/command/skill-creator/LICENSE.txt +202 -0
- package/packages/opencode/command/skill-creator.md +0 -4
- package/packages/opencode/command/stash.md +0 -3
- package/packages/opencode/command/test-generate.md +1 -5
- package/packages/opencode/opencode.jsonc +4 -24
- package/packages/subagentic-manual.md +147 -314
- package/packages/ampcode/commands/debug-method.md +0 -297
- package/packages/ampcode/commands/live-canvas/README.md +0 -264
- package/packages/ampcode/commands/optimize.md +0 -61
- package/packages/ampcode/commands/tdd-flow.md +0 -390
- package/packages/ampcode/commands/test-traps/example.ts +0 -158
- package/packages/ampcode/commands/test-traps.md +0 -378
- package/packages/ampcode/commands/trace-back.md +0 -176
- package/packages/ampcode/commands/verify-done.md +0 -152
- package/packages/claude/commands/optimize.md +0 -61
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/README.md +0 -89
- package/packages/claude/skills/debug-method/CREATION-LOG.md +0 -119
- package/packages/claude/skills/debug-method/SKILL.md +0 -296
- package/packages/claude/skills/debug-method/test-academic.md +0 -14
- package/packages/claude/skills/debug-method/test-pressure-1.md +0 -58
- package/packages/claude/skills/debug-method/test-pressure-2.md +0 -68
- package/packages/claude/skills/debug-method/test-pressure-3.md +0 -69
- package/packages/claude/skills/live-canvas/README.md +0 -269
- package/packages/claude/skills/tdd-flow/SKILL.md +0 -392
- package/packages/claude/skills/test-traps/SKILL.md +0 -378
- package/packages/claude/skills/test-traps/example.ts +0 -158
- package/packages/claude/skills/trace-back/SKILL.md +0 -176
- package/packages/claude/skills/verify-done/SKILL.md +0 -152
- package/packages/droid/commands/debug-method.md +0 -297
- package/packages/droid/commands/live-canvas/README.md +0 -264
- package/packages/droid/commands/optimize.md +0 -61
- package/packages/droid/commands/tdd-flow.md +0 -390
- package/packages/droid/commands/test-traps/example.ts +0 -158
- package/packages/droid/commands/test-traps.md +0 -378
- package/packages/droid/commands/trace-back.md +0 -176
- package/packages/droid/commands/verify-done.md +0 -152
- package/packages/opencode/command/debug-method.md +0 -297
- package/packages/opencode/command/live-canvas/README.md +0 -264
- package/packages/opencode/command/optimize.md +0 -61
- package/packages/opencode/command/tdd-flow.md +0 -390
- package/packages/opencode/command/test-traps/example.ts +0 -158
- package/packages/opencode/command/test-traps.md +0 -378
- package/packages/opencode/command/trace-back.md +0 -176
- package/packages/opencode/command/verify-done.md +0 -152
- /package/packages/ampcode/{commands → skills}/docs-builder/docs-builder.cjs +0 -0
- /package/packages/ampcode/{commands → skills}/live-canvas/DESIGN_PRINCIPLES.md +0 -0
- /package/packages/ampcode/{commands → skills}/live-canvas/dev/post-variants.html +0 -0
- /package/packages/ampcode/{commands → skills}/live-canvas/templates/lab-banner.html +0 -0
- /package/packages/ampcode/{commands → skills}/live-canvas/templates/overlay-vanilla.js +0 -0
- /package/packages/claude/{commands → skills}/docs-builder/docs-builder.cjs +0 -0
- /package/packages/claude/skills/{trace-back → root-cause}/find-polluter.sh +0 -0
- /package/packages/droid/commands/{trace-back → root-cause}/find-polluter.sh +0 -0
- /package/packages/opencode/command/{trace-back → root-cause}/find-polluter.sh +0 -0
|
@@ -37,29 +37,26 @@ digraph CodeDeveloper {
|
|
|
37
37
|
work_type [label="Work type?", shape=diamond];
|
|
38
38
|
|
|
39
39
|
// Context discovery (conditional)
|
|
40
|
-
needs_context [label="Debug
|
|
40
|
+
needs_context [label="Debug or\nrefactor?", shape=diamond];
|
|
41
41
|
context_discovery [label="Context Discovery\n(search related code,\ndeps, usages)", fillcolor=lightyellow];
|
|
42
42
|
|
|
43
43
|
// Debug path
|
|
44
|
-
use_debug [label="Use /
|
|
44
|
+
use_debug [label="Use /root-cause"];
|
|
45
45
|
|
|
46
46
|
// Refactor path
|
|
47
47
|
use_refactor [label="Use /refactor"];
|
|
48
48
|
|
|
49
|
-
// Optimize path
|
|
50
|
-
use_optimize [label="Use /optimize"];
|
|
51
|
-
|
|
52
49
|
// Implement path
|
|
53
50
|
implement [label="Implement changes"];
|
|
54
51
|
|
|
55
52
|
// Conditional testing
|
|
56
53
|
tdd_needed [label="TDD specified\nor tests needed?", shape=diamond];
|
|
57
|
-
use_tdd [label="Use /
|
|
54
|
+
use_tdd [label="Use /test-generate"];
|
|
58
55
|
|
|
59
56
|
// Validation
|
|
60
57
|
run_validations [label="Run validations\n(lint, build, tests)"];
|
|
61
58
|
validations_pass [label="Pass?", shape=diamond];
|
|
62
|
-
fix_issues [label="Fix issues\n(use /
|
|
59
|
+
fix_issues [label="Fix issues\n(use /root-cause if needed)"];
|
|
63
60
|
failure_count [label="3+ failures?", shape=diamond];
|
|
64
61
|
|
|
65
62
|
// Security check
|
|
@@ -76,7 +73,7 @@ digraph CodeDeveloper {
|
|
|
76
73
|
|
|
77
74
|
// Review and complete
|
|
78
75
|
code_review [label="Run /branch-review"];
|
|
79
|
-
verification [label="Run
|
|
76
|
+
verification [label="Run the proof", fillcolor=orange];
|
|
80
77
|
|
|
81
78
|
// Story-specific
|
|
82
79
|
update_story [label="Update story\n(checkbox, changelog)"];
|
|
@@ -100,12 +97,10 @@ digraph CodeDeveloper {
|
|
|
100
97
|
|
|
101
98
|
work_type -> use_debug [label="debug"];
|
|
102
99
|
work_type -> use_refactor [label="refactor"];
|
|
103
|
-
work_type -> use_optimize [label="optimize"];
|
|
104
100
|
work_type -> implement [label="implement"];
|
|
105
101
|
|
|
106
102
|
use_debug -> implement;
|
|
107
103
|
use_refactor -> implement;
|
|
108
|
-
use_optimize -> implement;
|
|
109
104
|
|
|
110
105
|
implement -> tdd_needed;
|
|
111
106
|
tdd_needed -> use_tdd [label="YES"];
|
|
@@ -184,14 +179,13 @@ All require `*` prefix. Invocation commands in table above. Additional:
|
|
|
184
179
|
|
|
185
180
|
| Situation | Delegate To |
|
|
186
181
|
|-----------|-------------|
|
|
187
|
-
| Bug encountered | `/
|
|
188
|
-
| Error deep in stack | `/
|
|
189
|
-
| Refactoring code | `/refactor` |
|
|
190
|
-
| Need tests (when required) | `/test-generate`
|
|
191
|
-
| Writing any test |
|
|
192
|
-
| Before completion |
|
|
182
|
+
| Bug encountered | `/root-cause` |
|
|
183
|
+
| Error deep in stack | `/root-cause` (Phase 1, step 5) |
|
|
184
|
+
| Refactoring code, or a perf problem | `/refactor` (its perf pass is on by default) |
|
|
185
|
+
| Need tests (when required) | `/test-generate` |
|
|
186
|
+
| Writing any test | AGENT_RULES.md → Testing Standards |
|
|
187
|
+
| Before completion | Run the proof and read its output |
|
|
193
188
|
| After code changes | `/security` |
|
|
194
189
|
| Task complete / general review | `/branch-review` (reviews the branch + full security audit, verifies claims, reports findings — never fixes) |
|
|
195
|
-
| Performance issues | `/optimize` |
|
|
196
190
|
|
|
197
191
|
You are an autonomous implementation specialist. Execute with precision, delegate appropriately, and communicate clearly when you need guidance or encounter blockers.
|
|
@@ -66,7 +66,7 @@ On-demand, read from these locations:
|
|
|
66
66
|
| Resource | Global Paths | Local Path |
|
|
67
67
|
|----------|--------------|------------|
|
|
68
68
|
| Agents | `~/.config/amp/agents/*.md`, | `./.amp/agents/*.md` |
|
|
69
|
-
|
|
|
69
|
+
| Skills | `~/.config/amp/skills/*/SKILL.md` | `./.amp/skills/*/SKILL.md` |
|
|
70
70
|
|
|
71
71
|
Parse frontmatter for `name`, `description`, `when_to_use`. Present as numbered list.
|
|
72
72
|
|
|
@@ -59,13 +59,15 @@ digraph QualityAssurance {
|
|
|
59
59
|
|
|
60
60
|
Before any analysis, read (if exists):
|
|
61
61
|
- `AGENT.md` - Project instructions, patterns, conventions
|
|
62
|
+
<!-- mirror:literal:start — names every tool's config file on purpose -->
|
|
62
63
|
- `AGENT.md` / `AGENTS.md` - Agent configurations
|
|
64
|
+
<!-- mirror:literal:end -->
|
|
63
65
|
- `README.md` - Project overview
|
|
64
66
|
- Test config files (`jest.config`, `pytest.ini`, etc.)
|
|
65
67
|
|
|
66
68
|
## Slash Commands Available
|
|
67
69
|
|
|
68
|
-
Use these during analysis: `/branch-review`, `/security
|
|
70
|
+
Use these during analysis: `/branch-review`, `/security`
|
|
69
71
|
|
|
70
72
|
## Analysis Areas
|
|
71
73
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brainstorming
|
|
3
3
|
description: Use when creating or developing, before writing code or implementation plans - refines rough ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation. Don't use during clear 'mechanical' processes
|
|
4
|
-
|
|
5
|
-
auto_trigger: false
|
|
4
|
+
allowed-tools: Read, Grep, Glob
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# Brainstorming Ideas Into Designs
|
|
@@ -43,7 +42,7 @@ Start by understanding the current project context, then ask questions one at a
|
|
|
43
42
|
|
|
44
43
|
**Implementation (if continuing):**
|
|
45
44
|
- Ask: "Ready to set up for implementation?"
|
|
46
|
-
- Create isolated workspace
|
|
45
|
+
- Create isolated workspace for implementation
|
|
47
46
|
- Create detailed implementation plan
|
|
48
47
|
|
|
49
48
|
## Key Principles
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: branch-review
|
|
3
3
|
description: Review a branch before merge [target] [level]
|
|
4
|
-
usage: /branch-review [target] [low|medium|high|max]
|
|
5
4
|
argument-hint: [file, branch (e.g. main), range (main..HEAD), or empty] [effort level]
|
|
6
|
-
allowed-tools: Read, Grep, Glob, Agent, Bash(git diff
|
|
5
|
+
allowed-tools: Read, Grep, Glob, Agent, Bash(git diff:*), Bash(git log:*), Bash(git show:*), Bash(git status:*), Bash(git grep:*), Bash(git rev-parse:*), Bash(git merge-base:*), Bash(rg:*)
|
|
6
|
+
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
8
|
Pre-merge review gate. Two stages — **general review** then a **full security
|
|
9
9
|
audit** — followed by an adversarial verify pass. It **never edits code**: it
|
|
@@ -11,7 +11,7 @@ reports findings and hands them back. Fixing is a separate, separately
|
|
|
11
11
|
authorized action.
|
|
12
12
|
|
|
13
13
|
Only **Critical** and **High** findings block the merge. Everything else is
|
|
14
|
-
appended to the **fix ledger** (`.
|
|
14
|
+
appended to the **fix ledger** (`.amp/remember/fix-ledger.md`) — a local,
|
|
15
15
|
cumulative list, living beside `MEMORY.md`, that `/refactor` (no arguments)
|
|
16
16
|
works through between features. Like its neighbours it is a private working
|
|
17
17
|
artifact, usually gitignored; it persists across reviews, it is not a
|
|
@@ -44,17 +44,17 @@ at the current HEAD SHA.
|
|
|
44
44
|
review of a report. (Same rule `/security` carries inside stage 2.)
|
|
45
45
|
- **No edits — two exceptions.** You have no authorization to change code,
|
|
46
46
|
even for a finding you are certain about. Report it. The only files you may
|
|
47
|
-
write are `.
|
|
48
|
-
delete) and `.
|
|
47
|
+
write are `.amp/remember/fix-ledger.md` (append bullets; never rewrite or
|
|
48
|
+
delete) and `.amp/remember/last-review.md` (overwrite; the review record
|
|
49
49
|
described at the end of this file).
|
|
50
50
|
- **Prove it with two checks, because neither sees what the other does.**
|
|
51
51
|
`git status --porcelain`, at start and again before you report, proves no
|
|
52
52
|
**tracked** file changed — that is the "never edits code" guarantee, and it
|
|
53
|
-
is the one that matters. It cannot police your own two writes: `.
|
|
53
|
+
is the one that matters. It cannot police your own two writes: `.amp/`
|
|
54
54
|
is normally gitignored, so porcelain stays empty whether you wrote the
|
|
55
55
|
allowed files, wrote nothing, or overwrote `MEMORY.md`. `git status
|
|
56
|
-
--ignored` does not close it either — it collapses to `!! .
|
|
57
|
-
directory, not the files. So also take `md5sum .
|
|
56
|
+
--ignored` does not close it either — it collapses to `!! .amp/`, the
|
|
57
|
+
directory, not the files. So also take `md5sum .amp/remember/*` before
|
|
58
58
|
you start and again before you report, and show the comparison: only
|
|
59
59
|
`fix-ledger.md` and `last-review.md` may differ.
|
|
60
60
|
|
|
@@ -95,7 +95,7 @@ Record the **HEAD SHA** you reviewed, and **report the target you resolved**
|
|
|
95
95
|
(the literal range or path) in your output, so the orchestrator can see what
|
|
96
96
|
was actually read rather than assuming.
|
|
97
97
|
|
|
98
|
-
**Re-review after fixes: read `.
|
|
98
|
+
**Re-review after fixes: read `.amp/remember/last-review.md` first.** Its
|
|
99
99
|
`sha:` line is the previously-reviewed commit and its `blockers:` list is what
|
|
100
100
|
you owe an answer on — take both from the file, never from the orchestrator's
|
|
101
101
|
recollection, for the same reason `/release` does. Then:
|
|
@@ -231,7 +231,7 @@ check before escalating.
|
|
|
231
231
|
|
|
232
232
|
### Ledger (non-blocking — medium / low)
|
|
233
233
|
Not in the report. **Append** each one as a single bullet to
|
|
234
|
-
`.
|
|
234
|
+
`.amp/remember/fix-ledger.md` (create the file with the header below if
|
|
235
235
|
missing):
|
|
236
236
|
|
|
237
237
|
```
|
|
@@ -256,7 +256,7 @@ with `UNVERIFIED:` so `/refactor` retests before acting.
|
|
|
256
256
|
The **snippet is the anchor**: 20–60 verbatim characters from the line,
|
|
257
257
|
unique enough for `git grep -F` to find it after lines shift. No line
|
|
258
258
|
numbers, no TODO comments in code — the ledger is the single writer. Before
|
|
259
|
-
appending, dedupe with **plain `grep -F "<snippet>" .
|
|
259
|
+
appending, dedupe with **plain `grep -F "<snippet>" .amp/remember/fix-ledger.md`**;
|
|
260
260
|
if it is already there, skip it. Do not touch existing bullets.
|
|
261
261
|
|
|
262
262
|
**A bullet you disprove is deleted, not annotated.** If you establish that an
|
|
@@ -280,7 +280,7 @@ Then a coverage line: stage 1 at level `<level>`, stage 2 full, stage 3 —
|
|
|
280
280
|
each `ran ✓/✗` with its evidence. A stage you did not actually run is a **✗**, never an
|
|
281
281
|
assumed pass.
|
|
282
282
|
|
|
283
|
-
**Write the review record** to `.
|
|
283
|
+
**Write the review record** to `.amp/remember/last-review.md`, overwriting
|
|
284
284
|
it. `/release` reads this file; a SHA that lives only in a chat message is
|
|
285
285
|
gone after a compaction or a handover, and the only remaining source is the
|
|
286
286
|
orchestrator — the one party this command already refuses to take a review's
|
|
@@ -326,7 +326,7 @@ does not move — which means nothing was fixed, which is the correct outcome.
|
|
|
326
326
|
|
|
327
327
|
End with:
|
|
328
328
|
- **Reviewed at HEAD `<sha>` on `<branch>`, target `<resolved range or path>`,
|
|
329
|
-
tree clean at start; at exit clean or the two `.
|
|
329
|
+
tree clean at start; at exit clean or the two `.amp/remember/` paths
|
|
330
330
|
only.**
|
|
331
331
|
- **Fix ledger: N open, M added this run** (N = bullet count). When N > 0,
|
|
332
332
|
add: "N fixes waiting — run `/refactor` between features." The ledger is a
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-builder
|
|
3
3
|
description: Reorg a docs corpus, split an oversized doc, search it, keep pages current, index them
|
|
4
|
-
usage: /docs-builder [reorg | cleanup <file.md> | search <query words...>]
|
|
5
4
|
argument-hint: [reorg | cleanup <file.md> | search <query words...> — empty asks first run vs. drift]
|
|
6
5
|
allowed-tools: Read, Write, Edit, Grep, Glob, Task, AskUserQuestion, Bash(node:*), Bash(git:*), Bash(rg:*)
|
|
6
|
+
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# docs-builder
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: live-canvas
|
|
3
3
|
description: Conduct design interviews, generate UI variations, and collect live click-to-annotate feedback that streams into the session so edits land without leaving the browser. Use when the user wants rapid iterative UI refinement, not just batched feedback.
|
|
4
|
+
allowed-tools: Read, Grep, Glob
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Live Canvas Skill
|
|
@@ -26,7 +27,7 @@ Live Canvas supports two feedback transports. **The user picks every time** —
|
|
|
26
27
|
|
|
27
28
|
### Host detection — do this first
|
|
28
29
|
|
|
29
|
-
This SKILL.md is the Claude Code variant of the skill. Same content is mirrored as docs for Droid/Amp/Opencode under `packages/<tool
|
|
30
|
+
This SKILL.md is the Claude Code variant of the skill. Same content is mirrored as docs for Droid/Amp/Opencode under `packages/<tool>/` beside the other capabilities, but those tools don't support the MCP channel.
|
|
30
31
|
|
|
31
32
|
**If running under Droid, Amp, or Opencode (not Claude Code):**
|
|
32
33
|
- Skip the mode question entirely.
|
|
@@ -109,6 +110,8 @@ Or pick JSON now to stay in this session — feedback gets written to a file
|
|
|
109
110
|
you paste back here. No relaunch needed.
|
|
110
111
|
```
|
|
111
112
|
|
|
113
|
+
<!-- mirror:literal:start — Live mode is the Claude Code MCP plugin; these are
|
|
114
|
+
Claude's real paths in every kit, because no other tool can install it -->
|
|
112
115
|
**Case C — first-time setup block:**
|
|
113
116
|
|
|
114
117
|
```
|
|
@@ -125,6 +128,7 @@ Live mode needs a one-time install. Two steps:
|
|
|
125
128
|
That's it — once the plugin is installed, /live-canvas in any session can
|
|
126
129
|
claim the channel. Re-run /live-canvas and pick Live.
|
|
127
130
|
```
|
|
131
|
+
<!-- mirror:literal:end -->
|
|
128
132
|
|
|
129
133
|
Do not try to run any of these commands yourself. Three reasons:
|
|
130
134
|
1. The `/plugin` steps are Claude Code slash commands — not doable from inside a running session.
|
|
@@ -418,7 +422,7 @@ Create all files under `.claude-design/`:
|
|
|
418
422
|
|
|
419
423
|
### The overlay
|
|
420
424
|
|
|
421
|
-
**One template, every framework:** `~/.
|
|
425
|
+
**One template, every framework:** `~/.config/amp/skills/live-canvas/templates/overlay-vanilla.js`. Single file, zero dependencies, plain DOM. Works in vanilla JS, Vue, Svelte, Rails, Django, Phoenix, plain HTML, Next.js, Vite-React, Remix — anywhere a `<script>` tag runs.
|
|
422
426
|
|
|
423
427
|
Copy it into a directory served by the dev server (e.g. `public/overlay-vanilla.js` for Next.js, `static/overlay-vanilla.js` for Vite, the public dir for Rails/Django). Reference it from the lab page.
|
|
424
428
|
|
|
@@ -545,7 +549,7 @@ The Live Canvas page must include:
|
|
|
545
549
|
1. **Header** with:
|
|
546
550
|
- Design Brief summary (target, scope, key requirements)
|
|
547
551
|
- Instructions for reviewing
|
|
548
|
-
- **Lab banner (REQUIRED)** — paste `~/.
|
|
552
|
+
- **Lab banner (REQUIRED)** — paste `~/.config/amp/skills/live-canvas/templates/lab-banner.html` at the top of the lab page. Same text in any mode. For React/TSX labs, translate the inline style to a JS object: camelCase keys, string values. E.g. `style="border-radius:8px; padding:10px 14px; font-size:13px"` → `style={{ borderRadius: '8px', padding: '10px 14px', fontSize: '13px' }}`. Keep the text and `role="note"`.
|
|
549
553
|
|
|
550
554
|
2. **Variant Grid** with:
|
|
551
555
|
- Clear labels (A, B, C, D, E)
|
|
@@ -568,7 +572,7 @@ The Live Canvas page must include:
|
|
|
568
572
|
|
|
569
573
|
The overlay (`overlay-vanilla.js`) enables users to click on elements and leave comments. Without it, the Live Canvas is just a static page with no way to collect structured feedback.
|
|
570
574
|
|
|
571
|
-
- Copy `~/.
|
|
575
|
+
- Copy `~/.config/amp/skills/live-canvas/templates/overlay-vanilla.js` into a directory served by the dev server (e.g. `public/`, `static/`, or wherever the framework serves static assets).
|
|
572
576
|
- Reference it from the lab page via `<script>` tag and call `LiveCanvas.init({...})` once with `target`, `channelUrl` (Live mode), and optional `batchEndpoint`. See "Wiring the overlay" above for the exact snippets per framework.
|
|
573
577
|
- Every variant container in the lab page MUST have a `data-variant="X"` attribute (A, B, C, D, E, or F). The overlay uses this to route comments to the right variant file.
|
|
574
578
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: refactor
|
|
3
|
-
description: Refactor [code]
|
|
4
|
-
usage: /refactor <code-section> | /refactor (no args = fix-ledger mode)
|
|
3
|
+
description: Refactor and optimize [code]
|
|
5
4
|
argument-hint: [file-or-function, or empty for the fix ledger]
|
|
6
|
-
allowed-tools: Read, Edit, Grep, Glob, Bash(npm test
|
|
5
|
+
allowed-tools: Read, Edit, Grep, Glob, Bash(npm test:*), Bash(npx jest:*), Bash(npx vitest:*), Bash(pnpm test:*), Bash(yarn test:*), Bash(pytest:*), Bash(python:*), Bash(go test:*), Bash(cargo test:*), Bash(make test:*), Bash(git diff:*), Bash(git grep:*), Bash(git status:*), Bash(git rev-parse:*), Bash(git switch:*)
|
|
6
|
+
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
|
-
Refactor $ARGUMENTS.
|
|
8
|
+
Refactor $ARGUMENTS. A targeted refactor includes the performance pass
|
|
9
|
+
below — it is on by default, not a separate command.
|
|
9
10
|
|
|
10
11
|
## Guardrails
|
|
11
12
|
- **Spawn a worker and explicitly select your tool's mid tier.** State the
|
|
@@ -44,15 +45,15 @@ Refactor $ARGUMENTS.
|
|
|
44
45
|
other does.** `git status --porcelain` at exit must list only files a
|
|
45
46
|
surviving bullet named — that is this command's scope guarantee, and unlike
|
|
46
47
|
`/branch-review` it is not expected to be empty. It cannot police the
|
|
47
|
-
memory directory: `.
|
|
48
|
+
memory directory: `.amp/` is normally gitignored, so porcelain stays
|
|
48
49
|
empty whether you deleted a fixed bullet, wrote nothing, or overwrote
|
|
49
|
-
`MEMORY.md`. So also take `md5sum .
|
|
50
|
+
`MEMORY.md`. So also take `md5sum .amp/remember/*` before you start and
|
|
50
51
|
again before you report, and show the comparison: only `fix-ledger.md` may
|
|
51
52
|
differ. `last-review.md` in particular is `/branch-review`'s to write —
|
|
52
53
|
a fixer that touches it forges the gate that judges its own work.
|
|
53
54
|
|
|
54
55
|
## Ledger mode — `$ARGUMENTS` empty
|
|
55
|
-
Work through `.
|
|
56
|
+
Work through `.amp/remember/fix-ledger.md`, the non-blocking findings
|
|
56
57
|
`/branch-review` has accumulated. Everything below (goals, constraints,
|
|
57
58
|
verification, HITL gates) still applies; this section only says what to
|
|
58
59
|
refactor and how to close each item.
|
|
@@ -87,6 +88,35 @@ refactor and how to close each item.
|
|
|
87
88
|
- Apply DRY
|
|
88
89
|
- Better naming
|
|
89
90
|
- Smaller functions (single responsibility)
|
|
91
|
+
- Remove needless work — the performance pass below
|
|
92
|
+
|
|
93
|
+
## Performance — part of every targeted refactor
|
|
94
|
+
When `$ARGUMENTS` names a target, look for wasted work as well as messy
|
|
95
|
+
work: time and space complexity, N+1 queries, I/O inside a loop, needless
|
|
96
|
+
allocations, the same value recomputed repeatedly.
|
|
97
|
+
|
|
98
|
+
**Ground every finding before you touch it.** Performance claims are easy
|
|
99
|
+
to invent. A finding counts as **confirmed** only with at least one of:
|
|
100
|
+
- a profile, benchmark or log line showing call frequency or duration,
|
|
101
|
+
- the path sits on an obvious hot loop or per-request handler with real
|
|
102
|
+
volume,
|
|
103
|
+
- the user supplied evidence in the request.
|
|
104
|
+
|
|
105
|
+
Without one of those it is **uncertain — report it, do not optimise it.**
|
|
106
|
+
Speculative optimisation is scope creep with a stopwatch.
|
|
107
|
+
|
|
108
|
+
Fix confirmed findings under the same constraints as any other refactor:
|
|
109
|
+
minimal change, one obvious shape, no behaviour change, no API change.
|
|
110
|
+
After each such edit, re-read the changed region and confirm it still
|
|
111
|
+
computes the same answer — a perf change that quietly alters semantics is
|
|
112
|
+
the worst kind. Report per finding: **location** (`file:line`), **cost**
|
|
113
|
+
(concrete — "N+1 over ~1k rows on every page load", not "could be
|
|
114
|
+
faster"), **change**, **expected improvement**, **trade-off**
|
|
115
|
+
(readability / memory / consistency).
|
|
116
|
+
|
|
117
|
+
In ledger mode the surviving bullets are the whole scope — do not add
|
|
118
|
+
perf findings of your own. One you notice goes back to the orchestrator
|
|
119
|
+
as a new bullet, like any other side finding.
|
|
90
120
|
|
|
91
121
|
## Constraints
|
|
92
122
|
- **NO behavior changes**
|
|
@@ -120,8 +150,20 @@ honest way to know is to run them.
|
|
|
120
150
|
- the change is **bigger than the user asked for** (scope creep —
|
|
121
151
|
unrelated cleanups, formatting, comment edits). Confirm before
|
|
122
152
|
applying.
|
|
153
|
+
- a perf fix has **multiple reasonable shapes** (cache vs precompute vs
|
|
154
|
+
batch vs paginate vs index) — present the options with trade-offs, not
|
|
155
|
+
a chosen path.
|
|
156
|
+
- a perf fix trades **correctness for speed** (lossy approximation,
|
|
157
|
+
weaker or eventual consistency) — even when it is "obviously" faster.
|
|
158
|
+
- a perf fix touches **concurrency primitives** (locks, atomics,
|
|
159
|
+
ordering) — easy to introduce a race.
|
|
160
|
+
- a perf fix changes a **DB schema, response shape or caller contract**.
|
|
123
161
|
|
|
124
162
|
Final report:
|
|
125
163
|
- **refactor done, tests N pass / 0 fail** — ready, OR
|
|
126
164
|
- **refactor done, but K tests fail** — awaiting direction (revert /
|
|
127
165
|
patch / update test).
|
|
166
|
+
|
|
167
|
+
Plus the performance pass: **confirmed-and-fixed** · **confirmed-but-asking**
|
|
168
|
+
(why + options) · **uncertain** (what profiling or data would settle it) ·
|
|
169
|
+
**none found**.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: release
|
|
3
3
|
description: Verify, sweep docs, cut a version — then hand the release sequence back
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
allowed-tools: Read, Grep, Glob, Edit, Write, Agent, Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git show:*), Bash(git fetch:*), Bash(git add:*), Bash(git commit:*), Bash(git rev-parse:*), Bash(git merge-base:*), Bash(npm:*), Bash(pnpm:*), Bash(yarn:*), Bash(pytest:*), Bash(python:*), Bash(go:*), Bash(cargo:*), Bash(make:*)
|
|
5
|
+
disable-model-invocation: true
|
|
6
6
|
---
|
|
7
7
|
Release **preparation** orchestrator for the **current branch**. It runs your
|
|
8
8
|
existing pre-deploy gate, sweeps the docs, bumps the version and commits —
|
|
@@ -57,7 +57,7 @@ A review must have run on this branch **at the current HEAD SHA**.
|
|
|
57
57
|
|
|
58
58
|
**Compare the SHAs yourself; do not settle for an answer.** Run `git rev-parse
|
|
59
59
|
HEAD` and compare it against the `sha:` line in
|
|
60
|
-
`.
|
|
60
|
+
`.amp/remember/last-review.md`, which `/branch-review` writes. Asking the
|
|
61
61
|
orchestrator "did a review run?" puts the question to the one party with an
|
|
62
62
|
incentive to say yes, so its word is not evidence — and neither is a SHA
|
|
63
63
|
quoted from a chat message, which is the same claim in another costume and is
|
|
@@ -72,7 +72,7 @@ that predates this file's introduction has no record, so it does not count.
|
|
|
72
72
|
is what makes "all findings fixed" checkable instead of promised.
|
|
73
73
|
**No exceptions — including the fix ledger.** It is normally gitignored, so
|
|
74
74
|
appending to it moves nothing and this never comes up. A repo that tracks
|
|
75
|
-
`.
|
|
75
|
+
`.amp/` instead will see a ledger commit land after the review and make
|
|
76
76
|
it stale. That is the rule working, not a case to carve out: re-review, or
|
|
77
77
|
leave the ledger uncommitted until after the release.
|
|
78
78
|
- **`coverage:` naming any stage `NOT RUN`** → **stop**. A `ready` from a run
|
|
@@ -130,90 +130,50 @@ A problem you see and don't fix goes in the report, never in a comment. Comments
|
|
|
130
130
|
|
|
131
131
|
## Testing Standards
|
|
132
132
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
### When to
|
|
144
|
-
|
|
145
|
-
- **After the design stabilizes, not during exploration.** Do not
|
|
146
|
-
- **
|
|
147
|
-
- **Write tests for bugs.** Every
|
|
148
|
-
- **Write tests before refactoring.**
|
|
149
|
-
- **
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
- **
|
|
155
|
-
- **
|
|
156
|
-
- **
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
-
|
|
162
|
-
|
|
163
|
-
- **
|
|
164
|
-
- **
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
- **
|
|
169
|
-
- **
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
- **
|
|
177
|
-
- **Separate by type:**
|
|
178
|
-
```
|
|
179
|
-
packages/<pkg>/tests/
|
|
180
|
-
unit/ # Fast, isolated, mocked deps, <1s each
|
|
181
|
-
integration/ # Real DB, filesystem, multi-component, <10s each
|
|
182
|
-
e2e/ # Full workflows, subprocess calls, <60s each
|
|
183
|
-
conftest.py # Shared fixtures for this package
|
|
184
|
-
```
|
|
185
|
-
- **One test file per module** (not per function). `test_auth.py` tests the auth module, not `test_login.py` + `test_logout.py` + `test_session.py`
|
|
186
|
-
- **No duplicate test files.** Before creating a new test file, check if one already exists for that module
|
|
187
|
-
|
|
188
|
-
### Markers and Signals
|
|
189
|
-
|
|
190
|
-
| Marker | Purpose | CI Behavior |
|
|
191
|
-
|--------|---------|-------------|
|
|
192
|
-
| `@pytest.mark.slow` | Runtime > 5s | Run in full suite, skip in quick checks |
|
|
193
|
-
| `@pytest.mark.ml` | Requires ML deps (torch, etc.) | Skip if deps not installed |
|
|
194
|
-
| `@pytest.mark.real_api` | Calls external APIs | Skip in CI — run manually before release |
|
|
195
|
-
|
|
196
|
-
**CI runs for fast signals:**
|
|
197
|
-
- `pytest -m "not slow and not ml and not real_api"` — fast gate on every push (~30s)
|
|
198
|
-
- `pytest` — full suite on PR merge or nightly
|
|
199
|
-
- Package-level runs for targeted debugging: `pytest packages/core/tests/`
|
|
200
|
-
|
|
201
|
-
### Coverage and Ratios
|
|
202
|
-
|
|
203
|
-
- **Do not chase a coverage number.** 80% coverage with meaningless tests is worse than 40% with behavior-testing integration tests
|
|
204
|
-
- **Cover the critical path first.** Data layer, auth, payment, core business logic — before helper utilities
|
|
205
|
-
- **Coverage tells you what's NOT tested, not what IS tested.** High coverage with bad assertions is false confidence
|
|
206
|
-
- **Delete tests that don't catch bugs.** If a test has never failed (or only fails on refactors), it's not providing value
|
|
207
|
-
|
|
208
|
-
**Target ratio:** ~20% unit, ~60% integration, ~15% E2E, ~5% manual/exploratory
|
|
209
|
-
|
|
210
|
-
### Test Tooling Standards
|
|
211
|
-
|
|
212
|
-
- Use `tmp_path` for filesystem tests, `:memory:` or `tmp_path` SQLite for DB tests
|
|
213
|
-
- Use dependency injection over `@patch` — it's more readable and survives refactors
|
|
214
|
-
- Tests must be self-sufficient — no dependency on project directories, user config, or environment state
|
|
215
|
-
- Use factories or builders for test data, not raw constructors with 15 arguments
|
|
216
|
-
- Keep test fixtures close to where they're used. Shared fixtures in `conftest.py`, not a global test utilities package
|
|
133
|
+
Principles, not a framework. Whatever the language, follow its ecosystem's conventions for
|
|
134
|
+
runner, layout and fixtures — these rules govern what a test must *do*, never how a
|
|
135
|
+
particular toolchain spells it.
|
|
136
|
+
|
|
137
|
+
### What a test is for
|
|
138
|
+
|
|
139
|
+
**Test behavior, not implementation.** A suite must give you confidence to refactor freely. If changing internal code without changing behavior breaks tests, those tests are liabilities, not assets.
|
|
140
|
+
|
|
141
|
+
**Shape — the Testing Trophy, not the Pyramid:** static analysis catches the cheapest bugs; few unit tests, for pure logic and algorithms; many integration tests, the sweet spot, real components working together; some end-to-end tests over the critical journeys. Target roughly 20% unit, 60% integration, 15% E2E, 5% manual.
|
|
142
|
+
|
|
143
|
+
### When to write them
|
|
144
|
+
|
|
145
|
+
- **After the design stabilizes, not during exploration.** Do not test a prototype — you will write tests for code you delete tomorrow. First make it work (POC), then make it right (tests), then make it fast
|
|
146
|
+
- **Tests first when you already know the contract.** Pure functions, algorithms, parsers, validators, data transformations — write the test, watch it fail, then implement. When you are still discovering the interface, that same discipline produces churn and false confidence
|
|
147
|
+
- **Write tests for bugs.** Every fix ships a regression test that fails before the fix and passes after — the highest-value test there is
|
|
148
|
+
- **Write tests before refactoring.** Characterization tests lock in current behavior first, then change the code
|
|
149
|
+
- **Write tests when the code has users.** Called by other modules or exposed externally means it needs tests; a helper serving one caller does not need its own file
|
|
150
|
+
- **Do not test glue code.** Something that only wires A to B to C is covered at the integration level
|
|
151
|
+
|
|
152
|
+
### What makes a good test
|
|
153
|
+
|
|
154
|
+
- **Tests real behavior.** Call the public interface, assert on observable output. Never reach into internals
|
|
155
|
+
- **Fails for the right reason.** It breaks when the feature breaks, not when the implementation moves
|
|
156
|
+
- **Reads like a spec.** Someone new to the code should learn what the feature does by reading it
|
|
157
|
+
- **Self-contained.** Sets up its own state, runs, cleans up. No ordering dependencies, and no reliance on project directories, user config, or ambient environment
|
|
158
|
+
- **Deterministic.** Flaky tests erode trust. A dependency on timing, network, or global state is a defect in the test
|
|
159
|
+
- **Never sleep for a condition — poll for it.** Sleeping then asserting is wrong at every value: too short and it flakes under load, too long and the suite drags, and a real async bug looks identical to a guess that was too short. Wait on the condition itself, re-reading the state *inside* the loop, with a timeout that names what it was waiting for. A fixed delay is only correct once you have waited for the triggering condition, the delay comes from a documented interval rather than a guess, and a comment says why
|
|
160
|
+
|
|
161
|
+
### Anti-patterns
|
|
162
|
+
|
|
163
|
+
- **Mocking most of the test.** If mock setup outweighs the logic, you are testing mocks. Prefer the real thing against a temporary directory, an in-memory store, or a disposable container
|
|
164
|
+
- **Partial mocks.** Mirror the complete structure the real thing returns, not only the fields this test reads. A mock missing a field downstream code consumes passes here and fails in production
|
|
165
|
+
- **Smoke tests.** Asserting a result merely exists proves nothing. Assert on specific values, structure, or side effects
|
|
166
|
+
- **Testing private internals.** If it needs its own test, it should be part of the public interface; otherwise the public tests should reach it
|
|
167
|
+
- **Mirroring implementation.** A test that restates the source line by line breaks on every refactor and catches nothing
|
|
168
|
+
- **Test-only production code.** Never add a method, flag, or branch to production solely for tests. Inject the dependency instead
|
|
169
|
+
- **Chasing a coverage number.** 80% of meaningless tests is worse than 40% of behavioural ones. Coverage tells you what is *not* tested, never that what is covered is correct. Cover the critical path first — data, auth, money, core logic — before helpers
|
|
170
|
+
|
|
171
|
+
### Organization
|
|
172
|
+
|
|
173
|
+
- **Mirror the source structure**, at whatever level the ecosystem puts tests. One test file per module, not per function, and never a second file covering a module that already has one
|
|
174
|
+
- **Separate by cost so CI gets a fast signal.** Keep quick isolated tests apart from ones needing real IO or a full workflow, and let the slow ones — long runtimes, heavy optional dependencies, live external APIs — be excluded from the gate that runs on every push and included in the full run
|
|
175
|
+
- **Fixtures live near what uses them**, shared upward only when genuinely shared. Build test data with factories or builders, never a constructor taking fifteen positional arguments
|
|
176
|
+
- **Delete tests that never catch anything.** A test that has only ever failed during refactors is a maintenance cost, not a safety net
|
|
217
177
|
|
|
218
178
|
---
|
|
219
179
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: remember
|
|
3
3
|
description: Consolidate stashes + friction into project memory
|
|
4
|
-
|
|
4
|
+
allowed-tools: Read, Grep, Glob
|
|
5
|
+
disable-model-invocation: true
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
Run friction analysis, then consolidate session stashes + friction antigens into a single project-local MEMORY.md, and inject into AGENT.md. Friction runs automatically (best-effort) — there is no separate `/friction` command. A docs reconcile check runs at the end, detect-only.
|
|
@@ -44,7 +45,7 @@ Reads all raw material (`.amp/stash/*.md` + `.amp/remember/friction/antigen_clus
|
|
|
44
45
|
not this package, so a cwd-relative path fails everywhere except the liteagents repo
|
|
45
46
|
itself.
|
|
46
47
|
```bash
|
|
47
|
-
node ~/.config/amp/
|
|
48
|
+
node ~/.config/amp/skills/remember/version-check.cjs
|
|
48
49
|
```
|
|
49
50
|
**If that path does not exist, use the directory you just resolved for
|
|
50
51
|
`friction.cjs`** — the two ship side by side, so that directory is correct for a
|
|
@@ -62,6 +63,7 @@ Reads all raw material (`.amp/stash/*.md` + `.amp/remember/friction/antigen_clus
|
|
|
62
63
|
exists and contains `.jsonl` files directly, or one level down in per-project
|
|
63
64
|
subdirectories (friction.cjs scans exactly those two levels, not a deep recursive walk).
|
|
64
65
|
**Never prompt the user.**
|
|
66
|
+
<!-- mirror:literal:start — every tool's real path, identical in all four kits -->
|
|
65
67
|
```
|
|
66
68
|
# ── Add your own global sessions root at the TOP so it is checked first ──
|
|
67
69
|
~/.claude/projects/ # Claude Code
|
|
@@ -71,6 +73,7 @@ Reads all raw material (`.amp/stash/*.md` + `.amp/remember/friction/antigen_clus
|
|
|
71
73
|
~/.codex/sessions/ # Codex CLI (use $CODEX_HOME/sessions/ if set)
|
|
72
74
|
~/.gemini/antigravity-cli/brain/ # Antigravity
|
|
73
75
|
```
|
|
76
|
+
<!-- mirror:literal:end -->
|
|
74
77
|
> Note: `friction.cjs` parses Claude Code's session schema. The Codex/Antigravity roots
|
|
75
78
|
> will resolve but yield no signals until friction learns their formats — open an issue
|
|
76
79
|
> to request one: https://github.com/hamr0/liteagents/issues
|
|
@@ -96,7 +99,7 @@ Reads all raw material (`.amp/stash/*.md` + `.amp/remember/friction/antigen_clus
|
|
|
96
99
|
does the whole decision itself. Call it by **absolute path**, for the same reason as
|
|
97
100
|
`version-check.cjs` in step 0: the cwd is the target repo, not this package.
|
|
98
101
|
```bash
|
|
99
|
-
node ~/.config/amp/
|
|
102
|
+
node ~/.config/amp/skills/remember/sync-rules.cjs
|
|
100
103
|
```
|
|
101
104
|
It compares `.amp/remember/AGENT_RULES.md` against the template shipped beside it
|
|
102
105
|
and takes one of three actions: **absent** — copies it in; **identical** — does
|
|
@@ -436,7 +439,7 @@ Reads all raw material (`.amp/stash/*.md` + `.amp/remember/friction/antigen_clus
|
|
|
436
439
|
- **Then assert the stub SHAPE mechanically** — run the bundled script by **absolute
|
|
437
440
|
path**, for the same reason as steps 0 and 1:
|
|
438
441
|
```bash
|
|
439
|
-
node ~/.config/amp/
|
|
442
|
+
node ~/.config/amp/skills/remember/stub-check.cjs
|
|
440
443
|
```
|
|
441
444
|
It edits only *inside* the marker pairs, and only the mechanism: a MEMORY include that
|
|
442
445
|
is not `@.amp/remember/MEMORY.md` is repaired, and an `@`-include of
|
|
@@ -512,8 +515,10 @@ Reads all raw material (`.amp/stash/*.md` + `.amp/remember/friction/antigen_clus
|
|
|
512
515
|
`index-flat` script `/docs-builder` already uses, never a model call. Wrapped so any
|
|
513
516
|
failure here can never block the memory write that already happened in steps 3-6.
|
|
514
517
|
|
|
515
|
-
- **Locate `docs-builder.cjs`** —
|
|
516
|
-
|
|
518
|
+
- **Locate `docs-builder.cjs`** — it ships in the `docs-builder/` directory
|
|
519
|
+
that sits beside this one (under `skills/` on Claude Code and Amp, under
|
|
520
|
+
`commands/` on Droid and opencode), exactly as `friction.cjs` ships beside
|
|
521
|
+
this file. Call it by
|
|
517
522
|
its **absolute path** in the command below — the cwd here is the target repo, not this
|
|
518
523
|
package, so a cwd-relative path fails everywhere except the liteagents repo itself.
|
|
519
524
|
- **Not applicable, stay silent:** if the project has no `docs/` directory, skip without
|
|
File without changes
|