Fork Idea Branch — Omega War → Unthinkable + Vittles

Skill: fork-idea-branch · Tier: document · Page: alignment/fork-idea-branch-omega-war.html · created 2026-06-14

alignment_status: review — pre-approval. Nothing is moved, created, or modified until you return compiled YAML with approval_status: ready-for-agent-review.

What this does: splits the current flat-mode Omega War research into two symmetric brand product paths — research/unthinkable/ and research/vittles/ — and installs a research/.progress.yaml manifest. The brand becomes an anthology of almost-wars.
Important deviation from the skill default. Stock fork-idea-branch archives the source path to research/_archive/ and restarts every branch fresh via /idea-scope-brief. That is wrong here: Unthinkable is mature, load-bearing research (idea brief, audience, fantasy, genre-map, arsenal, divisions, roster, and an in-flight unit-data-schema cycle). This run is therefore a preserving restructure, not a destructive fork:

1. Fork rationale

The conversation established that "Omega War" is becoming a brand, not a single title. The existing flat-mode research is one specific game — the 1945 Operation Unthinkable open-front RTS — and a second, distinct title was scoped: Omega War: Vittles, the 1948 Berlin blockade gone hot. The two share engine DNA but are independent divergences from real history (an anthology), with different fantasies and timelines. A single flat research tree can no longer hold both without confusion, so the brand splits into parallel product paths.

Source signalObservationWhy it forces a split
Two distinct titles confirmedUser: name the current game Omega War: Unthinkable; add Omega War: Vittles as "a parallel research branch under the Omega War brand."Two products, one brand → product-path mode, not flat mode.
Anthology brand modelInterview decision: each title is an independent divergence (1945 stays cold so the 1948 Airlift can exist, then goes hot).Separate timelines/fantasies cannot be one idea brief.
Mature source researchFlat research/*.md: idea brief + audience + fantasy + genre-map + arsenal + divisions + roster, plus an in-flight unit-data-schema cycle.Must be preserved and relocated, not reset — hence the preserving-restructure deviation.
User directive"fork-idea-branch … to get symmetry in the research: research/unthinkable and research/vittles."Explicit request for the two-path symmetric layout this page proposes.

Gate — fork-rationale required

Approve splitting the flat-mode Omega War research into two brand product paths (unthinkable + vittles) under an anthology model?

2. Per-branch scope

activecarry-forward (move)

Omega War: Unthinkable

slug unthinkable · research/unthinkable/

Concept: July 1945 — the alliance that beat Germany turns on itself. Open-front tactical+strategic RTS (CoH × Broken Arrow × EndWar/Wargame:RD), deck+base hybrid, persistent European theater map. The brand's first title.

Value wedge: unmined Operation Unthinkable premise; deck-as-roster fused with base building; zero-install browser delivery; persistent division evolution.

Pipeline stage: deep — through genre-map; unit-data-schema cycle in flight.

activefresh scaffold

Omega War: Vittles

slug vittles · research/vittles/

Concept: June 1948 — the Berlin blockade goes hot. A two-act campaign: siege-and-relief (hold the encircled West Berlin garrison, keep the lifeline open) escalating into open-front war as both blocs commit. Reuses Unthinkable's engine; stack-reuse depth deferred to a design pass.

Value wedge: near-untouched Airlift flashpoint; the besieged-enclave + lifeline spine (siege before maneuver); 1948 arsenal shift.

Pipeline stage: idea-scope-brief (interview done in-conversation; brief to be written next).

deferred (parked sibling)

Airlift sim (working name)

slug airlift · path reserved, not created

Concept: the Berlin Airlift as the gameplay itself — win without firing a shot. ATC/logistics under pressure, or an asymmetric deter-vs-provoke RTS. Genuinely novel; different genre/audience.

Revisit trigger: when the brand wants a non-combat / logistics-deterrence entry, or after a Vittles/Unthinkable slice ships. naming note: "Vittles" is literally the real airlift codename — reconcile names if this is ever activated.

Gate — branch-scope required

Approve the three path definitions above — unthinkable (active, moved), vittles (active, fresh scaffold), and airlift (deferred sibling, path reserved)?

3. Reuse decisions (per branch)

The skill's default is "fresh start (recommended)" for every branch, because carried-forward artifacts were shaped by assumptions that may not hold for a new ICP/market (contamination risk). That logic applies to Vittles — which is why Vittles gets a fresh start. It does not apply to Unthinkable: Unthinkable is not a new market interpretation of the source, it is the source. Carrying it forward is a relocation, not contamination.

BranchDecisionWhat carriesContamination risk
unthinkableFull carry-forward (move)All flat research/*.md + the _working/unit-data-schema/ cycle, relocated intact.none — it is the original concept, not a reinterpretation
vittlesFresh start (default)Nothing copied. A fork-seed.md records ground-truth inputs only (concept + the 3 confirmed interview decisions). Brand-level constraints are re-validated by /idea-scope-brief, not inherited as fact.avoided — clean restart
airliftDeferred — no scaffold yetNothing. Concept captured in the manifest + fork memo only.n/a

Why Vittles does not inherit Unthinkable's brief. Even though it reuses the engine, Vittles' fantasy (siege-and-relief), timeline (1948 independent divergence), and arsenal differ. Seeding it with Unthinkable's full brief would import 1945-specific assumptions. The seed therefore carries only the concept and the decisions you have explicitly made — everything else is established fresh.

Gate — reuse required

Approve the reuse decisions: Unthinkable = full carry-forward (move, no reset); Vittles = fresh start with a ground-truth-only seed?

4. Restructure method — preserving move vs destructive archive

This replaces the skill's "archive current path to research/_archive/" step. Because Unthinkable is preserved (not abandoned), dumping it into _archive/ would mislabel live research as dead. Instead:

Reference hygiene (scoped, low-risk). Inside the moved research files, ~23 cross-references of the form research/<file>.md will be rewritten to research/unthinkable/<file>.md so the relocated corpus stays internally linked. External URLs that merely contain the word "research" (e.g. archives.gov/research/…) are not matched — only the eight known artifact filenames plus the future unit-data-schema.md synthesis target. See §5 for exactly what is and is not touched.

Gate — restructure-method required

Approve the preserving git mv relocation (no _archive/ dump of Unthinkable, git history as rollback)?

5. Proposed file changes

A. Move (git mvresearch/unthinkable/)

FromTo
research/arsenal-1945.mdresearch/unthinkable/arsenal-1945.md
research/divisions-1945.mdresearch/unthinkable/divisions-1945.md
research/game-audience.mdresearch/unthinkable/game-audience.md
research/game-fantasy.mdresearch/unthinkable/game-fantasy.md
research/game-genre-map.mdresearch/unthinkable/game-genre-map.md
research/glossary.mdresearch/unthinkable/glossary.md
research/idea-brief.mdresearch/unthinkable/idea-brief.md
research/idea-brief-interview.mdresearch/unthinkable/idea-brief-interview.md
research/proposed-divisions-and-decks-roster.mdresearch/unthinkable/proposed-divisions-and-decks-roster.md
research/_working/unit-data-schema/ (3 files)research/unthinkable/_working/unit-data-schema/

B. Modify (cross-reference rewrite inside moved files only)

~23 references of research/<file>.mdresearch/unthinkable/<file>.md across game-fantasy.md, divisions-1945.md, proposed-divisions-and-decks-roster.md, arsenal-1945.md, idea-brief-interview.md, and the three unit-data-schema working docs (the last pointing at the future research/unthinkable/unit-data-schema.md synthesis target). Only the 8 known artifact filenames + unit-data-schema.md are rewritten; URLs are untouched.

C. Create

PathPurpose
research/.progress.yamlProduct-path manifest (§6). Records both active paths + the deferred airlift sibling.
research/vittles/_working/fork-seed.mdGround-truth seed for Vittles' fresh /idea-scope-brief (§7).
research/_working/fork-memo-2026-06-14.mdThe fork record: what moved where, reuse decisions, restart instructions (§8).
alignment/index.htmlUpdated to add this page (entry + date + [doc] badge), grouped under Product Design & Spec.

D. Left untouched (by design)

WhatWhy
tasks/todo.md, tasks/history.mdSkill constraint: fork-idea-branch does not modify task files. history.md is an append-only record accurate for its time; todo.md's path pointers will be refreshed when the unit-data-schema cycle next runs. Migration is recorded in the fork memo.
All alignment/*.html (confirmed + in-flight review pages)Point-in-time review artifacts. Their internal path strings record where files were when the page was written. Renaming them would also break the provenance links the moved research files make back to alignment/*-omega-war.html. The fork memo is the authoritative migration record.
docs/history/archive/Historical snapshots — never rewritten.
.agents/project.jsonProject-type/packs unchanged by a research restructure.
In-flight cycle note. The unit-data-schema cycle is mid-review (topics 01–02 approved, 03 in review). Its working packet moves to research/unthinkable/_working/unit-data-schema/. When that cycle resumes, it writes its synthesis to research/unthinkable/unit-data-schema.md and reads from the new location — the manifest and fork memo record this so no work is orphaned. Its existing review pages keep their original path strings (point-in-time).

Gate — file-changes required

Approve this exact change set — the move list (A), the scoped reference rewrite (B), the new files (C), and the "left untouched" set (D)?

6. research/.progress.yaml — full preview

# Omega War — product-path manifest (created 2026-06-14 by fork-idea-branch)
active_paths:
  - unthinkable
  - vittles
max_concurrent: 2

product_paths:
  - id: unthinkable
    label: "Omega War: Unthinkable"
    scope_path: research/unthinkable/
    status: active
    source_skill: fork-idea-branch
    pipeline_stage: unit-data-schema
    reason: >-
      1945 Operation Unthinkable — Allies vs USSR open-front RTS; the brand's first
      title. Mature research relocated intact from flat research/ during the
      2026-06-14 brand split. unit-data-schema cycle in flight.
    last_touched: 2026-06-14

  - id: vittles
    label: "Omega War: Vittles"
    scope_path: research/vittles/
    status: active
    source_skill: fork-idea-branch
    pipeline_stage: idea-scope-brief
    next_skill: /idea-scope-brief vittles
    reason: >-
      Berlin blockade goes hot, June 1948 — two-act campaign: besieged-enclave
      siege-and-relief escalating into open-front war. Independent divergence in the
      Omega War anthology; reuses Unthinkable's engine (stack-reuse depth deferred).
      Scaffolded 2026-06-14; idea brief to be written next.
    last_touched: 2026-06-14

  - id: airlift
    label: "Omega War — airlift sim (working name)"
    scope_path: research/airlift/   # reserved; not created until activated
    status: deferred
    source_skill: idea-scope-brief
    pipeline_stage: idea-scope-brief
    next_skill: /idea-scope-brief airlift
    revisit_trigger: >-
      When the brand wants a non-combat / logistics-deterrence entry (ATC-style or
      asymmetric deter-vs-provoke), or after a Vittles/Unthinkable slice ships.
    reason: >-
      The Berlin Airlift as the gameplay itself — win without firing a shot. Parked
      2026-06-14 in favor of the hot-war Vittles path; recorded, not lost. NOTE:
      "Vittles" is the real airlift codename — reconcile naming if activated.
    last_touched: 2026-06-14

7. research/vittles/_working/fork-seed.md — full preview

# Fork Seed — Omega War: Vittles
# Ground-truth inputs only. Seeded 2026-06-14 by fork-idea-branch from the flat
# Omega War research at split time. Everything below is to be RE-VALIDATED by
# /idea-scope-brief vittles, not treated as settled findings.

## Original idea
Omega War: Vittles — an alt-history story + campaign set during the Berlin
Airlift; the premise is "the blockade goes hot" (June 1948).

## Brand model (interview decision)
Anthology of almost-wars: each Omega War title is an INDEPENDENT divergence from
real history. Vittles = real history holds (1945 stays cold, the Airlift happens)
until June 1948, when the blockade turns into a shooting war. NOT a continuation
of Unthinkable's 1945 timeline.

## Core fantasy (interview decision)
Two-act: opens as besieged-enclave SIEGE-AND-RELIEF (hold the encircled West
Berlin garrison; keep a lifeline / air corridor open against the odds), then
escalates into OPEN-FRONT war as the conflict spreads. Siege first, wider war
later.

## Engine / scope (interview decision)
Reuses Unthinkable's engine and brand constraints (browser Three.js, deck+base
hybrid, tactical+strategic layers, CC0 stand-in art/audio, single-player first,
no netcode v1, Europe-only). EXACT depth of stack reuse is deferred to a design
pass — record as open, do not assume the full stack.

## Value-wedge hypothesis (to test)
Near-untouched Airlift flashpoint; the besieged-enclave + lifeline spine as the
distinguishing mechanic vs Unthinkable's open-front maneuver; the 1945→1948
arsenal shift.

## Beneficiary hypothesis (to test)
Primary: the developer (passion project). Secondary: Cold War / alt-history
enthusiasts; possibly a different audience than Unthinkable's open-front RTS crowd.

## Riskiest unknowns (for idea-scope-brief + downstream)
1. Is siege-and-relief fun and distinct, or just a slower start?
2. The 1948 spark (candidates: corridor buzzing, the Gatow midair, a checkpoint
   incident) — credible tip from blockade into combat.
3. Two-phase scope (siege -> breakout doubles the design surface).
4. Stack-reuse depth (deferred).
5. The 1945->1948 arsenal delta (a Vittles-specific arsenal study).

## Sibling concept (parked, do NOT scope here)
"Airlift sim" — the airlift AS the gameplay (win without firing a shot). Deferred
sibling in the manifest; revisit per its trigger. Reconcile the "Vittles" naming
if that path is ever activated.

## Provenance
Brand DNA reference (do not copy as fact — re-validate): the Unthinkable research
now lives at research/unthinkable/ (idea-brief, game-fantasy, arsenal-1945, etc.).
Unthinkable's fantasy doc already anticipated this premise — "Vienna as the
besieged-enclave drama (the Berlin of this war)."

8. research/_working/fork-memo-2026-06-14.md — full preview

# Fork Memo — 2026-06-14

- **Source skill:** user-initiated (/fork-idea-branch)
- **Source path:** flat-mode research/ (the "Omega War: Unthinkable" concept)
- **Method:** PRESERVING restructure (git mv), not destructive archive-and-restart.

## Branches
| slug | label | status | reuse |
|------|-------|--------|-------|
| unthinkable | Omega War: Unthinkable | active | full carry-forward (moved intact) |
| vittles | Omega War: Vittles | active | fresh start (seed only) |
| airlift | airlift sim (working name) | deferred | none — concept recorded only |

## Rationale
"Omega War" becomes an anthology brand. The flat research was one title
(Unthinkable, 1945 open-front RTS). A second, distinct title (Vittles, 1948
Berlin blockade gone hot — independent divergence) was scoped, so the brand
splits into symmetric product paths.

## Artifact inventory (what moved where)
research/{arsenal-1945,divisions-1945,game-audience,game-fantasy,game-genre-map,
glossary,idea-brief,idea-brief-interview,proposed-divisions-and-decks-roster}.md
  -> research/unthinkable/.md
research/_working/unit-data-schema/  -> research/unthinkable/_working/unit-data-schema/
Cross-references inside the moved files rewritten research/.md ->
research/unthinkable/.md (8 artifact files + future unit-data-schema.md).

## Created
research/.progress.yaml ; research/vittles/_working/fork-seed.md ;
research/_working/fork-memo-2026-06-14.md

## Left untouched (recorded here as the authoritative migration note)
tasks/todo.md, tasks/history.md — path pointers now reference pre-move locations;
refresh on the next unit-data-schema run. alignment/*.html keep point-in-time path
strings. docs/history/archive/ unchanged.

## Restart instructions
- unthinkable: NO restart — mature; continue at the unit-data-schema cycle
  (now under research/unthinkable/_working/unit-data-schema/).
- vittles: /idea-scope-brief vittles (interview already done in-conversation;
  resume to write research/vittles/idea-brief.md + interview).
- airlift: /idea-scope-brief airlift only when its revisit trigger fires.

9. Post-approval route

Stock fork-idea-branch "scaffolds and stops," handing back a restart checklist. Because the Vittles interview is already done in this conversation, the natural next step is to continue straight into /idea-scope-brief vittles and write its brief — rather than stopping and re-invoking. Your call:

Gate — route required

After the fork executes, how should I proceed?

10. Compile Responses

Answer the six required gates above, add optional section feedback, then compile and copy the YAML into your next message. Partial responses are fine — they're treated as revision requests, not approval.