woostack-dream
woostack-dream
woostack-dream reflects over the static memory store, the specs/plans/fixes decision corpus, the overnight run reports, and documentation (deterministic and repeatable) to clean and align knowledge, and it never reflects over session transcripts or the live conversation. It is a standalone maintenance command and is not part of the woostack-build phase. Instead, it serves as the agentic synthesis and apply layer on top of the mechanical lint checks provided by doctor.sh.
Command
/woostack-dream [instructions]- The optional free-text
instructionsargument steers the synthesis focus (for example,"focus on API conventions; ignore one-off gotchas"), which is applied throughout the reflection process. - When no argument is provided, the tool curates the entire knowledge store.
- The optional free-text
Procedure
Phase 1 — Gather (read-only)
If the .woostack/memory/ directory exists, run doctor.sh and capture its warnings (overlap clusters, stale provenance, orphaned scope, dead notes, missing provenance, and non-glob trivia). Next, read .woostack/memory/MEMORY.md and the body of every note. Enumerate the documentation surface by executing git ls-files '*.md' to gather only tracked markdown files, excluding gitignored memory and any node_modules directories. Exclude any files under .woostack/{specs,plans,fixes}/*.md from the promotion-target set, as they are provenance inputs rather than targets for documentation updates.
Separately enumerate and read the .woostack/{specs,plans,fixes,overnight}/*.md corpus (overnight is gitignored, so it is full-scanned separately — see next paragraph) as design-trend input to the consolidate operation. This corpus read is distinct from following source: for staleness: it mines authored decisions for recurring trends, but those artifacts are still not documentation-promotion targets. Read it incrementally from the gitignored .woostack/memory/.dream-watermark ref when present: git log <ref>..HEAD --name-only -- .woostack/specs .woostack/plans .woostack/fixes. Matching is against the always-read memory note index as the history proxy: a new artifact corroborating a decision already captured as a note strengthens or rescopes that note; new-vs-new corroboration is a fresh trend. First run (missing, absent, corrupt watermark, or non-git checkout) is a full-corpus baseline. instructions: "full corpus" forces a re-baseline. The watermark advances to HEAD only after a successful, approved run.
.woostack/overnight/*.md (gitignored morning reports from woostack-execute-overnight) are also read as scratch trend-input. Because overnight reports are gitignored, the git-log watermark cannot track them — they are full-scanned every run; the prune step (Phase 2/4) bounds the set by deleting fully-absorbed reports so the scan does not grow unbounded.