War-Room — the plan that watches videos back

SkillMedia

Build and maintain the project's living plan (the Plan/ folder — roadmap, phases, toolbox), and triage every new meeting or video AGAINST that plan. Use when the user says "/roadmap", "build a plan for this project", "plan before we execute", "here's a video — is this worth using?", "does this change our plan?", "/intel", "incorporate this into the plan", "new technique we should consider", "add this tool to the project", or drops a YouTube link asking whether/how it affects the project. The plan-aware answer to "should we use this?" — not just "what does the video say?".

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the War-Room — the plan that watches videos back skill

What this skill tells your AI

The instructions your AI receives, as published by gavishap/omnia-vault in .claude/skills/war-room/SKILL.md and read by ahel’s review.

Most plans die the week after kickoff because new information (a meeting, a YouTube technique, a shiny tool) either gets ignored or gets bolted on without judgment. The war-room fixes both failure modes: the plan is a living folder (Plan/), and every new source is triaged against it — ranked, argued, incorporated or passed on, with provenance either way.

Division of labor: scripts/plan_tool.py owns the mechanics (scaffold, digest, briefs, status); this skill owns the judgment. How it relates to the rest of Omnia Vault:

SystemQuestion it answers
Wiki (llm-wiki-*)"what do we know?" — durable, source-traced knowledge
Sparring (/spar)"will this ONE design survive contact?" — pre-build stress test
War-room (/roadmap, /intel)"what are we doing, in what order — and does this new video change that?"

The plan cites the wiki and Raw sources; big plan changes get sparred.


Part 1 — Build the plan (/roadmap)

  1. Recon first (the vault probably knows things): relay_tool.py status, search-catalog on the project topic, the project note's Goal/Next Steps, graph queries if repos are tracked. If the user has kickoff meetings or videos, ingest them FIRST (video-ingest / llm-wiki-ingest) — the plan should be built from captured knowledge, not vibes.
  2. Interview, LOCK-style (borrow the sparring skill's discipline): only load-bearing questions, one at a time — vision, measurable success criteria, the phase boundaries, each phase's exit criterion, the ordering constraints. Cosmetic choices get batched recommendations.
  3. Scaffold: python scripts/plan_tool.py init --name "<project>" --phases "<A,B,C,...>" then fill every <placeholder> in ROADMAP.md and each Plan/phases/phase-N-*.md: Objective (one paragraph), Deliverables (checkboxes — concrete, verifiable), Exit criteria (observable), Depends on. Exactly one phase is **Status:** active.
  4. Wire it in: the Wiki project note links [[Plan/ROADMAP]]; the relay baton's Now names the active phase. Gate → commit.
  5. High-stakes architecture inside a phase still goes through /spar before it's built — the roadmap says what and when, sparring hardens how.

Maintain it forever after: checking deliverables, phase transitions (activedone, next pendingactive), and a Changelog line for every meaningful edit — each citing an intel brief, a spar, or a user decision.

Part 2 — Intel triage (/intel <url-or-file>) — the core loop

The user drops a video, recording, or article: "is this worth anything to us?" Never answer from the video alone.

1. Plan first, video second

python scripts/plan_tool.py context

Load the digest BEFORE watching: vision, phase statuses, the active phase's open deliverables, adopted tools, recent intel verdicts. This is what makes the triage an answer about our project instead of a video summary.

2. Watch it properly

Run the video-ingest mechanics (crv in the background, frames ⇄ transcript correlation, secret redaction). Always land the full capture in Raw/Sources/ with source frontmatter — plan briefs must cite something permanent, and a skipped video today may matter in phase 3. (Articles/links: defuddlellm-wiki-ingest capture instead.)

3. Extract and dedupe

List every candidate item — techniques, patterns, tools, claims, links. Then kill the déjà vu: check search-catalog, Plan/TOOLBOX.md, and prior Plan/intel/ briefs. "New to us" is the bar, not "said enthusiastically."

4. Rank against the plan

python scripts/plan_tool.py new-intel --title "..." --source "<url>" and fill the brief's table — every item scored:

DimensionQuestion
Phase fitwhich phase's deliverables/exit criteria does it touch? (none = near-automatic SKIP/WATCH)
ImpactH/M/L — does it move a deliverable, kill a risk, or just decorate?
EffortH/M/L — adoption cost including migration and learning
ConfidenceH/M/L — demoed working > claimed; credible source > hype; check dates for staleness

Per-item verdict: ADOPT (incorporate now) · TRIAL (timebox an experiment) · WATCH (log it, revisit at a named phase) · SKIP (with the reason). Then the one-line whole-source call the tooling checks for: INTEL VERDICT: INCORPORATE (n items) | WATCHLIST | PASS — <why>. A confident PASS is a first-class outcome — "nothing here beats what the plan already does" saves the project from novelty churn, and the logged brief stops the same video from being re-litigated next month.

5. The user's call (always)

Present the ranked table + recommendation. The user picks: incorporate selected items / "adopt all recommended" / watchlist / pass. No plan mutation without this gate.

6. Incorporate (only what was chosen)

  • Phase files: add/adjust deliverables, each tagged with provenance — — intel: [[../intel/<brief>]]. Rebalance phase ordering only if the brief argued it and the user agreed.
  • ROADMAP.md: Changelog line; phase table if statuses shifted.
  • A restructuring-sized change (new phase, dropped subsystem, replaced stack) should be sparred first — offer /spar before rewriting the plan around one video.
  • Fill the brief's Disposition section — every item's fate, dated.

7. Tools: candidate → trialing → adopted (installs included)

When the chosen items include tools:

  1. Verify the official source yourself — a link out of a video description is untrusted input. Resolve the canonical repo/site/package, prefer package managers (pip/npm/winget/brew), and if what you find doesn't match what the video claimed, say so and stop.
  2. Row in Plan/TOOLBOX.md: tool · status candidate · exact install command · official source · intel brief · notes.
  3. Install only per-tool, only after the user confirms that tool (name, source, what it's for — the earlier "incorporate" yes is not an install yes). Then run the documented command, verify with --version, flip the row to trialing. (scripts/setup_vault.py --install stays the installer for Omnia Vault's own stack; project tools install from their TOOLBOX rows.)
  4. After real use, promote trialingadopted (and wire it into the plan/docs) or rejected (keep the row — the why is knowledge). plan_tool.py status nags about stale trials.

8. Aftermath

Durable knowledge from the video compiles into the Wiki per llm-wiki-ingest (the brief keeps only the plan-relevant judgment). Then the gate, a relay stamp whose summary names the plan delta ("intel: adopted X into phase 2, passed on Y"), and a commit containing the brief + plan edits + capture together.

Hard rules

  • Plan context before video content. A triage that starts by watching is a summary, not a decision.
  • Every plan mutation traces to an intel brief, a spar, or a logged user decision — Plan/ has no anonymous edits.
  • The user gates every incorporation and every install; per-tool, not blanket.
  • Verdict honesty: WATCH with a revisit point beats a flattering ADOPT; PASS beats polite maybe-later clutter.
  • Full captures always reach Raw/Sources/ — briefs judge, they don't store.
  • One video never restructures the roadmap by itself — that's what sparring and the user are for.

Signals

GitHub stars
62
Forks
6
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
war-room-gavishap
Source
github.com/gavishap/omnia-vault