Files
opencode-working-memory/docs/diagnostics.md
T
Ralph Chang 5bca3432b0 feat(memory-diag): add quality review board command
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
2026-05-12 14:13:03 +08:00

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_ambiguous so old artifacts are not treated as current mechanism failures.
  • Does not decide what to delete or mutate.
  • Use --json for 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>