CI gate G1 (scripts/check_paths.py) failed with 8 unresolvable references. Both command files referenced `scripts/<tool>.py` and `assets/<file>` as if they were relative to the command file, but commands/ sits at the plugin root while the scripts live under skills/memory-engineering/. SKILL.md was correct already — it sits inside the skill directory, so its bare `scripts/...` paths resolve — which is why this only showed up in the two command files. Rewritten to the plugin-root-relative form (`skills/memory-engineering/scripts/...`), matching how agent-harness writes its command paths. check_paths.py --all now reports 0 findings across 586 files. Also re-ran the other five blocking gates locally: check_plugin_json, check_dual_publish, smoke_scripts, smoke_json_output, derive_counters --check — all pass, plus compileall on the plugin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jt1sqt5kQmopyfXu2Hhjnv
2.9 KiB
| description | argument-hint |
|---|---|
| Price, choose, audit and gate an agent memory system — the full four-lens memory-engineering pass. | [memory dir, design spec JSON, or a question about a memory system] |
/cs:memory-engineering
Run the memory-engineering pass on $ARGUMENTS.
Load engineering/memory-engineering/skills/memory-engineering/SKILL.md and
follow it. Report every script's exit code as a finding — a non-zero exit is a
result to surface, never an error to swallow.
Pre-flight
Establish these before running anything. If the user cannot answer 1 or 2, that gap is the first finding — say so rather than guessing:
- Does a memory system exist yet, or is this a design? Design → steps 1, 2, 4. Existing store → steps 1, 3, 4.
- What leaves the store today? If the answer is "nothing", skip to step 4; the gate result is the headline.
- Is this actually a memory question? Maintaining one markdown vault →
llm-wiki. Nightly consolidation loop →skillopt-sleep. Bounding a task loop →agent-harness.
Pass
1. Price the write path
python skills/memory-engineering/scripts/memory_cost_profiler.py --spec <workload.json>
Lead the report with the construction/query split and cost per correct answer. Never present accuracy on its own.
2. Choose which cost to pay
python skills/memory-engineering/scripts/memory_architecture_picker.py --constraints <workload.json>
If it exits 2 (AMBIGUOUS), stop and put the printed tie-breaking question to
the user. Do not pick for them — the tie is real, not a tooling limitation.
3. Audit the real store (skip if this is a greenfield design)
python skills/memory-engineering/scripts/memory_density_auditor.py --dir <path>
Report the FACT/SKILL/LOG/PROSE split. Users are routinely wrong about how much of their store is transcripts.
4. Gate on forgetting — blocking
python skills/memory-engineering/scripts/forgetting_policy_linter.py --policy <design.json>
Exit 4 is a stop. Name the failing check (F1 or F4) and its fix. Do not present a FAIL alongside a recommendation to proceed.
Output
Report in this order — cost before quality, always:
- Verdict — one line, leading with the blocking result if there is one
- Cost — construction/query split, cost per correct answer, amortization
- Architecture — the family, and the cost it makes them pay
- What the store holds — the FACT/SKILL/LOG/PROSE split, duplicates, staleness
- Forgetting gate — PASS / CONDITIONAL / FAIL with the named failing checks
- Next step — exactly one, sequenced per the ship order
Attribute every number to its source with a confidence level. Vendor customer figures are testimonials, not benchmarks — label them as such.
For a structured walkthrough, hand the user
skills/memory-engineering/assets/memory_engineer_worksheet.md (the seven forcing questions) and walk
them one at a time.