Storytime Consolidate — Document Organization
Sort, triage, archive, and roll up documents into the storytime structure. This is a file-operations skill — it moves and organizes, it doesn't interpret or generate new content (that's absorb's job).
Arguments
Optional scope: $ARGUMENTS (specific files, directories, or "everything")
Process
1. Inventory
If a recent survey exists, use its artifact inventory. Otherwise, run a quick scan (same targets as the survey artifact scan) to find documents.
Present the inventory as a checklist with disposition options per item:
Documents found (18 files):
[x] [consolidate] team/ICEBREAKER.md → .storytime/archive/current/
[x] [consolidate] team/DECISIONS.md → .storytime/history/decisions.md
[x] [consolidate] team/log.md → .storytime/archive/current/
[ ] [leave] docs/GDD.md — game design doc, referenced externally
[x] [rollup] team/adaptive-music-discussion.md ─┐
[x] [rollup] team/visual-stem-feedback-brainstorm.md ─┤→ rollup: audio-design.md
[x] [rollup] team/bounce-audio-sync-discussion.md ─┘
[x] [archive] docs/IMPLEMENTATION_PLAN.md → .storytime/archive/current/
[x] [cold] archive/deprecated/ → .storytime/archive/cold/
2. User Curation
The user controls everything:
- Toggle items on/off
- Change disposition per item (consolidate / leave / rollup / archive / cold)
- Group items for rollup: "roll up all the music-related discussions"
- Bulk operations: "consolidate all", "leave everything", "archive everything under team/"
- Ask about any item before deciding
3. Execute Moves
For each item based on its disposition:
Consolidate — git mv to the storytime structure:
- Team-like →
specs/.storytime/cohort/ - Spec-like →
specs/.storytime/archive/current/orsessions/ - Decision logs →
specs/.storytime/history/ - Preserve git history with
git mv
Rollup — create a rollup artifact:
- Read all source documents
- Produce a rollup with: key decisions carried forward, timeline, context
summary, source pointers (see
references/artifact-tiers.mdfor format) - Write rollup to
specs/.storytime/archive/rollups/ - Move originals to
specs/.storytime/archive/cold/
Archive (warm) — move to specs/.storytime/archive/current/
Cold — move to specs/.storytime/archive/cold/
Leave — no file operation, just note the reference
4. Update Index
After all moves, write or update specs/.storytime/archive/_index.md
with the current state of all archived artifacts:
# Storytime Archive Index
Last updated: <YYYY-MM-DD>
## Current (warm)
| File | Source | Archived | Summary |
|------|--------|----------|---------|
## Rollups (warm)
| File | Sources | Created | Covers |
|------|---------|---------|--------|
## Cold Storage
| File | Source | Archived | Reason |
|------|--------|----------|--------|
5. Timestamp Backfill
For every file that was moved, archived, rolled up, or left in place,
check if it has the universal frontmatter minimum (type, created,
session). If not, backfill from available evidence.
See ${CLAUDE_PLUGIN_ROOT}/docs/timestamps.md for the full timestamp
principle, evidence sources, and confidence markers.
Evidence sources (in priority order):
git log -1 --format=%aI -- <path>— first commit adding the file (forcreated)git log -1 --format=%aI -- <path>— last commit touching the file (for last modified)- Existing frontmatter dates — parse any YAML dates already present
- Filename dates — parse
YYYY-MM-DDfrom filename if present - Filesystem mtime —
statcommand (medium confidence) - Adjacent file dates — files created around the same time (low confidence)
- Content references — "as of March" or date mentions in body text (low confidence)
Backfill process per file:
- Read the file
- Check for existing frontmatter. If
type,created,sessionall present → skip - For each missing field, search evidence sources in priority order
- Add or update frontmatter with inferred values
- Mark confidence:
git-derived,approximate, orestimated - Present backfilled files to the user for approval before writing
Coarseness rules:
- Git evidence → exact date,
git-derivedconfidence - Filename evidence → exact date,
git-derivedconfidence - Filesystem evidence → exact date,
approximateconfidence - Adjacent/content evidence → use
~YYYY-MMor~YYYY-Qn,estimatedconfidence - No evidence → mark as
unknown, don't guess
Example backfill:
# Before (no frontmatter):
# team/ICEBREAKER.md — just a markdown file
# After backfill:
---
type: icebreaker
created: 2026-03-20
created_confidence: git-derived
session: null
---
Bulk backfill: The user can say "backfill timestamps on everything" to run backfill across all storytime-managed documents. Present a summary:
Timestamp backfill results (18 files):
Already complete: 4 files
Backfilled: 11 files (8 git-derived, 2 approximate, 1 estimated)
No evidence: 3 files (marked unknown)
Review backfilled files? [y/n]
6. Fold the State
After all file operations land, re-fold the read model — consolidation is an event on the board's event stream (BOARD-010):
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/fold.py --repo .
Emits board/state.json (atomic, deterministic; local-only — it may
fold user-local directives per BOARD-016). On failure the fold exits
nonzero with file:line — surface the error and stop; a consolidation
that leaves stale state behind is worse than one that halts. Skip
silently only if scripts/fold.py does not exist (pre-board repos).
7. Report
Show what was done:
- Files moved (with old → new paths)
- Rollups created (with source count)
- Files left in place
- Timestamps backfilled (with confidence breakdown)
- New archive index state
- Fold result (item count + schema version, or the failure)
Rules
git mvis preferred over copy-and-delete. Preserves history.- Never delete source files — move to cold at minimum.
- Rollups are opinionated summaries, not mechanical concatenation. Extract what matters, note what's stale, cite sources.
- The user approves every move before execution. No silent file ops.
- External-system artifacts (Slack threads, Google Docs links) get a citation stub in the archive, not a full copy.
- Backfill is additive — add timestamps, never remove existing metadata.
- Coarse-and-honest over precise-and-wrong —
~2026-02beats a guess of2026-02-15. Mark confidence on every inferred timestamp. - Universal frontmatter on every file —
type,created,session. See${CLAUDE_PLUGIN_ROOT}/docs/timestamps.mdfor the full spec. - Every consolidation re-folds.
board/state.jsonis derived byscripts/fold.pyand nowhere else (FIX-004). A fold failure is part of the consolidation outcome — report it, never swallow it.