Add memory-diag quality command for objective review of memory-system mechanisms and active memory content. The command is read-only and non-authoritative, providing evidence, heuristic flags, and review questions without making quality judgments or suggesting mutations. Key components: - quality-review-model.ts: builds ReviewBoardReport with provenance, re-absorption detection, mechanism facts (rejection, reinforcement, eviction/caps, identity/dedup), and memory content facts - formatters/quality.ts: human and JSON output with separate system-mechanism and memory-content sections - commands/quality.ts: command entry point with --json, --verbose, --no-emoji, --raw options - cli.ts: parser whitelist for quality accepting --workspace, --json, rejecting mutation/filter flags co-author: code-execute-agent, comprehensive-code-reviewer, systems-architect, creative-disruptor Closes docs/plans/2026-05-11-memory-diag-quality-review-board.md
3.5 KiB
Memory Diagnostics
Use the read-only diagnostics CLI when you want to understand what OpenCode Working Memory is doing for the current workspace.
The npm package is opencode-working-memory; the installed bin is memory-diag, so package-qualified npx avoids resolving a different package named memory-diag.
Commands
| Question | Command |
|---|---|
| Is memory healthy? | npx --package opencode-working-memory memory-diag or npx --package opencode-working-memory memory-diag status |
| Why was something rejected? | npx --package opencode-working-memory memory-diag rejected |
| Where did my memory go? | npx --package opencode-working-memory memory-diag missing |
| Why is this memory shown or hidden? | npx --package opencode-working-memory memory-diag explain <memory-id> |
| How are numbered memory commands behaving? | npx --package opencode-working-memory memory-diag commands |
| How do I review memory quality without automatic cleanup? | npx --package opencode-working-memory memory-diag quality |
| Revert a numbered replacement? | npx --package opencode-working-memory memory-diag revert --memory <replacement-memory-id> |
Global Options
--workspace <path>— inspect another workspace; defaults to the current directory.--verbose— show detailed diagnostics.--json— print machine-readable output where supported.
Examples
npx --package opencode-working-memory memory-diag status
npx --package opencode-working-memory memory-diag rejected --verbose
npx --package opencode-working-memory memory-diag missing --workspace /path/to/project
npx --package opencode-working-memory memory-diag status --json
npx --package opencode-working-memory memory-diag commands --verbose
npx --package opencode-working-memory memory-diag quality
npx --package opencode-working-memory memory-diag revert --memory <replacement-memory-id>
Quality Review Board
Use memory-diag quality for a read-only, evidence-first review of memory quality without automatic cleanup.
- Primarily provides memory-system mechanism observations for human/agent interpretation.
- Secondarily helps review active memory content quality.
- Separates system-mechanism facts, memory-content facts, heuristic flags, and review questions.
- Includes inferred evidence provenance because historical records do not record producer package version.
- Labels uncertain provenance as
unversioned_ambiguousso old artifacts are not treated as current mechanism failures. - Does not decide what to delete or mutate.
- Use
--jsonfor agent/objective review.
Numbered Memory Command Reports
Use memory-diag commands to inspect REINFORCE [M#] and REPLACE [M#] outcomes from compaction.
npx --package opencode-working-memory memory-diag commands
npx --package opencode-working-memory memory-diag commands --verbose
The report includes successful reinforcements, successful replacements, malformed commands, stale refs, protected replacement blocks, and latest command events in verbose mode.
Dry-run Recovery
memory-diag revert is dry-run by default. Add --apply only after reviewing the planned original/replacement status changes.
npx --package opencode-working-memory memory-diag revert --memory <replacement-memory-id>
npx --package opencode-working-memory memory-diag revert --memory <replacement-memory-id> --apply
You can also target a replacement evidence event directly:
npx --package opencode-working-memory memory-diag revert --event <event-id>