Arcanea Story Progression — Season One build plan under Starlight governance#75
Arcanea Story Progression — Season One build plan under Starlight governance#75frankxai wants to merge 9 commits into
Conversation
…rlight governance Executable, CLI-ready plan that progresses Arc 1 (The Founding) from staged synopsis into a buildable Season One: 8-episode map, canonical world-state deltas (D1-D6), and a 10-asset visual key-art set locked to VISUAL_DOCTRINE. Governance: Starlight Intelligence Operator builds; the Starlight Queen enforces; a Board of five veto-lenses (Jobs/Musk/Buddha/Rock Star/K-pop) gates every artifact at >=4 of 5. Codex/Grok CLI execute the backlog. All progression is additive and STAGING-only; CANON_LOCKED.md is untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
|
Deployment failed with the following error: |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request establishes a comprehensive story progression build plan for Season One of Arcanea, introducing a structured framework for autonomous CLI execution. It includes a governance model, a world progression epoch mapping out eight episodes, a visual plan for a ten-asset key art set, and an execution backlog. The feedback identifies minor path inconsistencies that could affect the headless CLI executor and points out a naming discrepancy where the Godbeast name should be corrected from 'Vaerith' to 'Vaelith' to maintain exact continuity with canonical documents.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
|
||
| > Each episode: ≈2,000–3,500 words, prose, cites its canon hooks, ends with the score line. Must move world-state. | ||
|
|
||
| - [ ] **T-01** Write **E01 "Wrong Place, Wrong Hour"** → `staging/season-one/E01.md`. |
There was a problem hiding this comment.
The staging path specified here (staging/season-one/E01.md) is inconsistent with the staging root defined in the conventions (.arcanea/lore/staging/season-one/). For a headless CLI executor to run reliably, paths should be fully qualified and consistent.
| - [ ] **T-01** Write **E01 "Wrong Place, Wrong Hour"** → `staging/season-one/E01.md`. | |
| - [ ] **T-01** Write **E01 "Wrong Place, Wrong Hour"** → .arcanea/lore/staging/season-one/E01.md. |
| - [ ] **T-16** Write `staging/season-one/PROMOTION_REQUEST.md` — a one-page Creator brief: what's staged, the D1–D6 | ||
| deltas proposed for canon, the Board verdicts, and the explicit ask: *promote to canon?* | ||
| **Accept:** Creator can approve/reject from this one page. **No self-promotion to canon — Frank decides.** |
There was a problem hiding this comment.
The path staging/season-one/PROMOTION_REQUEST.md is missing the .arcanea/lore/ prefix defined in the conventions. Correcting this ensures the CLI agent writes to the correct directory.
| - [ ] **T-16** Write `staging/season-one/PROMOTION_REQUEST.md` — a one-page Creator brief: what's staged, the D1–D6 | |
| deltas proposed for canon, the Board verdicts, and the explicit ask: *promote to canon?* | |
| **Accept:** Creator can approve/reject from this one page. **No self-promotion to canon — Frank decides.** | |
| - [ ] **T-16** Write .arcanea/lore/staging/season-one/PROMOTION_REQUEST.md — a one-page Creator brief: what's staged, the D1–D6 | |
| deltas proposed for canon, the Board verdicts, and the explicit ask: *promote to canon?* | |
| **Accept:** Creator can approve/reject from this one page. **No self-promotion to canon — Frank decides.** |
|
|
||
| ## Continuity guardrails (K-Pop lens — zero ragged edges) | ||
|
|
||
| - **Names are exact.** Kaelindra Voss, Ryn, Velindris, Solenne Ashmark, Taura Skein + Vaerith, Caelum, Mireth. |
There was a problem hiding this comment.
The Godbeast name is written as Vaerith, but according to the canonical truths in CANON_LOCKED.md, the correct name is Vaelith (or Thessara depending on the active gate/frequency mapping). Please correct this to maintain exact continuity.
| - **Names are exact.** Kaelindra Voss, Ryn, Velindris, Solenne Ashmark, Taura Skein + Vaerith, Caelum, Mireth. | |
| - **Names are exact.** Kaelindra Voss, Ryn, Velindris, Solenne Ashmark, Taura Skein + Vaelith, Caelum, Mireth. |
| | V2 | Character plate — **Kaelindra Voss** (tactician, Academy-trained). | Hero card. | Noble angularity; star-sigil; military grace. | | ||
| | V3 | Character plate — **Ryn** (Gate-Touched, mid-cascade energy). | Hero card. | Cascade light behavior; chaotic-consciousness silhouette. | | ||
| | V4 | Character plate — **Solenne Ashmark** (Ironhold Stance, immovable). | Hero card. | Living-stone material; protective posture. | | ||
| | V5 | Character plate — **Taura Skein + Vaerith** (the living bond). | Hero card. | Bonded pair composition; sacred-beast anchor. | |
There was a problem hiding this comment.
The Godbeast name Vaerith should be corrected to Vaelith to align with the canonical names defined in CANON_LOCKED.md.
| | V5 | Character plate — **Taura Skein + Vaerith** (the living bond). | Hero card. | Bonded pair composition; sacred-beast anchor. | | |
| | V5 | Character plate — **Taura Skein + Vaelith** (the living bond). | Hero card. | Bonded pair composition; sacred-beast anchor. | |
PR Review — Season One Story Progression PlanThis is a well-structured documentation PR that sets up an autonomous build pipeline for Arcanea's first story arc. The governance model is thoughtful and the canon-safety rails are correctly placed. Here's my breakdown: ✅ StrengthsGovernance architecture
Document cross-referencing
Task design
File placement
|
vercel.json on main contained unresolved conflict markers, making it invalid JSON and failing all Vercel preview deploys repo-wide. Resolved to the turbo monorepo build command (pnpm turbo run build --filter=@arcanea/web). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
…oling refs - Fully-qualify all CLI staging/spec paths (.arcanea/lore/staging/..., docs/.../visual-specs/...) so a headless executor running from repo root writes to the right place. - VISUAL_PLAN: drop nonexistent nb-generate.mjs ref (only generate-arcanea-img.mjs exists); make Higgsfield MCP step conditional on it being connected, with native Gemini fallback. - Cite FLAGSHIP_TEAM_V2.md as the authoritative team file (supersedes V1). - Harden T-00 (canon sanity check + ledger column schema); clarify score-line placement in T-01. - README: clarify file count. Kept 'Vaerith' (Taura Skein's bonded storm-drake, per STORY_ENGINE.md / FLAGSHIP_TEAM_V2.md) — distinct from the Godbeast 'Vaelith' (Elara, Starweave Gate). The reviewer suggestion to rename would have conflated two canonical entities. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
Review pass — resolutions (commit
|
PR Review — Arcanea Story Progression #75SummaryThis PR does two distinct things: (1) adds five planning/documentation files for a Season One story-build workflow, and (2) resolves a pre-existing git merge conflict in vercel.json — Merge Conflict Resolution
|
| Setting | Kept | Dropped |
|---|---|---|
buildCommand |
pnpm turbo run build --filter=@arcanea/web |
cd apps/web && pnpm run build |
NODE_OPTIONS |
(removed) | --max-old-space-size=4096 |
Concern: NODE_OPTIONS: --max-old-space-size=4096 was likely added specifically because the Next.js build was hitting Node's default heap limit (~1.5 GB). Removing it silently may cause OOM build failures on Vercel (where build containers have limited memory). Please confirm this was intentional — if the turbo-based build handles memory differently, a brief comment in the PR body would help.
The kept version (Turbo-based build) is the right call architecturally for a monorepo; just verify the memory headroom.
Documentation Files — docs/story-progression/
File placement: ✅ Correctly in docs/ per CLAUDE.md conventions. No files added to root.
Canon safety: ✅ Every document is marked Status: STAGING. CANON_LOCKED.md is flagged as read-only in every relevant instruction. The "agents propose, Frank promotes" rule is stated explicitly in multiple places — this is the right pattern.
Referenced source files: ✅ Verified all referenced lore files exist in .arcanea/lore/:
CANON_LOCKED.md,STORY_ENGINE.md,FLAGSHIP_TEAM_V2.md,STARLIGHT_CORPS_CODEX.md,VOID_ASCENDANTS.md,GATE_TOUCHED_UNDERGROUND.md,VISUAL_DOCTRINE.md,STARBOUND_CREWS.md— all present.
Structural quality: The governance model is well-designed. The Board of Five with no-averaging veto logic, the Queen enforcement loop, and the staged ledger with world-state deltas (D1–D6) are all clear and executable by an autonomous agent. The "no cosmetic deltas" rule (Musk lens + the meaningful-progression test) is a good quality gate.
Minor issues:
-
STARLIGHT_GOVERNANCE.mdASCII diagram — the Board of Five box art has an off-by-one alignment issue on the│BUDDHA│row (│essence│is missing a leading│). Not functional, but polish matters if the K-Pop lens is the standard. -
VISUAL_PLAN.mdpipeline comment is slightly ambiguous: "Higgsfield MCP, ONLY if it is connected" — the executor won't know how to check for MCP availability. Consider an explicit fallback line: "Check formcp__Higgsfield__generate_imagetool availability; if absent, proceed with native path." -
EXECUTION_BACKLOG.mdT-09/T-14 gate record fields are blank by design, which is correct, but the table header row and the blank rows use different cell-count formatting. Minor formatting inconsistency. -
WORLD_PROGRESSION_EPOCH.mdreferences character "Seravyn Duskmere" authorizing the team in E08. This name does not appear inFLAGSHIP_TEAM_V2.mdorSTARLIGHT_CORPS_CODEX.mdat first glance — please verify this is an established canon character (Archon? Corps official?) and not a new name that needs to be introduced earlier or noted as staging.
CI Status
- TypeScript / Security / No Split-Brain: ✅ Passing
- CLI Tests (22) / Test Summary: ❌ Failing
The test failures appear pre-existing (not caused by this PR — all changes are documentation + a vercel.json fix). However, it's worth confirming the failing CLI tests are not related to the vercel.json change before merge.
Security
No secrets, credentials, or .env content in the added files. GEMINI_API_KEY is referenced as an environment variable name in a comment only — not hardcoded. ✅
Verdict
Approve with one blocking item:
- Blocking: Confirm whether removing
NODE_OPTIONS: --max-old-space-size=4096is intentional and that Vercel builds have sufficient memory headroom without it. If removing was deliberate (e.g., Turbo handles it differently, or the old limit was set for the directpnpm run buildpath), state it in the PR body so future reviewers understand the decision.
Non-blocking items above can be addressed in follow-up tasks within the backlog.
Good governance structure — the staging discipline and human-promotion gate are exactly right for AI-assisted canon expansion.
- Realign the chain-of-command ASCII diagram (uniform box widths) — honors the K-Pop precision lens the doc itself sets as the standard. - E08: cite STARBOUND_CREWS.md as the source for Seravyn Duskmere (Archon, Crew Solara) — she is established canon there, not a new name. - VISUAL_PLAN: make the Higgsfield availability check explicit (test for the mcp__Higgsfield__generate_image tool; native Gemini fallback otherwise). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
Review response (commit
|
Code Review — PR #75: Arcanea Story ProgressionSummary: This PR adds 5 planning documents under ✅ What's done wellPlanning documents (
🔴 High Priority —
|
…y marker - Episodes: target ~2,500 words, hard ceiling 3,000 (Buddha lens — subtract padding) instead of the wide 2,000-3,500 range. - Backlog: add [IN PROGRESS — <executor>] convention so concurrent CLI agents don't double-execute a task. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
Review response (commit
|
Code Review — PR #75: Arcanea Story Progression (Season One)This PR has two distinct parts: the story-progression documentation (five new files) and the Critical — vercel.json security regressionThe merge conflict resolution chose the branch variant and silently dropped the HEAD's entire security headers block. CORS (API routes) — gone:
Without these, CORS behavior on Security headers (all routes) — gone:
Recommendation: Before merging, restore the full Moderate — NODE_OPTIONS removed- "NODE_OPTIONS": "--max-old-space-size=4096"Removing the 4GB heap allocation could cause OOM errors during Next.js production builds. If this flag was added to fix prior build failures, removing it will likely re-introduce them. Keep it unless there is a confirmed reason the default heap is sufficient. Moderate — Removed rewrites and redirectsDropped silently in the conflict resolution:
The What is correct in vercel.json
Story Progression DocumentationThe five files in Strengths:
Minor issues:
Summary
The documentation work is solid. The |
…flight - README: replace the hardcoded branch name with a stable reference (avoids going stale after merge). - T-00: add a pre-flight that confirms source lore files + generate-arcanea-img.mjs + GEMINI_API_KEY exist before Phase 2, so T-10/T-11 fail loudly at setup, not silently. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
Review response (commit
|
| Claimed dropped | Actually present at |
|---|---|
Access-Control-Allow-Origin / -Credentials / -Methods |
lines 26 / 22 / 30 |
X-Content-Type-Options |
lines 38, 63 |
X-Frame-Options |
lines 42, 67 |
X-XSS-Protection |
lines 46, 71 |
Referrer-Policy |
lines 50, 75 |
Strict-Transport-Security (HSTS) |
line 79 |
Permissions-Policy |
line 54 |
/api/:path* rewrite |
line 88 |
/health → /api/health |
line 92 |
/home redirect |
line 99 |
The confusion is a diff misread (this is the second review to hit it): main had the file committed with conflict markers wrapping two near-identical copies. The diff shows the duplicate copy's headers as - deletions, which looks like "headers removed" — but the retained first copy keeps all of them. Net of the resolution is exactly two changes: buildCommand → turbo and the NODE_OPTIONS line (covered earlier; arcanea-web deploys READY without it). /health is intact, so the #69–72 stabilization work is unaffected. No restore needed.
You can confirm on the branch: grep -nE "Strict-Transport-Security|/health|Access-Control-Allow-Origin" vercel.json.
Source files (minor #1): all exist in .arcanea/lore/ — FLAGSHIP_TEAM_V2.md, STARLIGHT_CORPS_CODEX.md, VOID_ASCENDANTS.md, GATE_TOUCHED_UNDERGROUND.md, VISUAL_DOCTRINE.md ✓. And T-00's canon check would surface any missing one.
Applied:
- README no longer hardcodes the branch name (minor chore: Untrack tsbuildinfo file already in .gitignore #3) — won't go stale post-merge.
- T-00 now also pre-flights the toolchain (source lore files +
generate-arcanea-img.mjs+GEMINI_API_KEY) so Phase 2 fails loudly at setup rather than silently at T-10/T-11 (minor Sprint Feb 2-9: Platform Launch Tracking #2).
Thanks for the careful read on the docs — the concurrency guard and Board-gate notes are appreciated. Still a draft, staging-only.
Generated by Claude Code
PR Review — #75 Arcanea Story Progression, Season OneThis PR has two distinct parts that warrant separate treatment: a documentation suite for story-progression governance, and an incidental 🔴 Critical:
|
| Area | Status |
|---|---|
vercel.json — security headers |
🔴 Restore before merge |
vercel.json — NODE_OPTIONS |
🟡 Verify intent; restore if build memory matters |
| Docs file placement | ✅ Correct |
| Canon safety rails | ✅ Solid |
| Source file pre-flight | ✅ All files exist |
| Governance logic | ✅ Well-reasoned |
| Automation gaps | 🟡 Minor (canon sanity script, word-count check) |
The story-progression system itself is ready to execute against. The vercel.json regression is the only blocker.
…rd-count check - T-00 preflight notes optional mcp__Higgsfield__generate_image availability (non-blocking). - Episode acceptance verifies length with wc -w (<=3,000) so an LLM executor enforces the cap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
Review response (commit
|
PR Review — Arcanea Story Progression: Season OneOverall: a well-conceived plan document with one technical change that warrants close attention. Feedback below is organised by area. vercel.json — the only code change (requires careful attention)Merge conflict resolution — the conflict markers are correctly removed. Good.
Vercel Documentation files (
|
| Area | Status |
|---|---|
| Documentation structure and placement | ✅ |
| Canon protection (staging + promotion gate) | ✅ |
| Concurrency / double-execution safety | ✅ |
buildCommand turbo migration |
✅ |
NODE_OPTIONS removal |
|
arcanea-2 Vercel deploy failure |
|
| Score-line key standardisation | 🔧 Minor cleanup |
| Self-referential README file count | 🔧 Minor cleanup |
| T-00 canon check concreteness | 🔧 Suggestion |
The plan documents themselves are franchise-quality work. The one thing I'd ask be resolved before merging is confirmation that removing the heap size option is intentional and won't cause build OOM failures.
…ndardization - T-00 canon check made concrete (compare 10 Gate frequencies + Guardian/Godbeast names against CANON_LOCKED.md, emit a diff); add STORY_ENGINE.md to preflight list. - Governance: declare canonical score-line tokens (Jobs/Musk/Buddha/RockStar/KPop) vs the human emoji display names, so score lines parse unambiguously. - README: de-hardcode the file count (won't go stale as the directory grows). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
Review response (commit
|
PR Review — Arcanea Story Progression Season OneOverall: this is a well-structured plan with good governance design. The vercel.json — the substantive change
The conflict resolution correctly chose Everything else in Documentation filesStrengths:
Issues: 1. 2. Concurrent executor pattern has a git-level gap. 3. Self-scoring in the operating loop. Canon consistency checkSpot-checked against
SecurityNo secrets, credentials, or Test coverageDocumentation-only PR; no executable tests applicable. The acceptance criteria on T-01–T-16 are concrete and testable by an executor. The Summary
Suggest: confirm the |
- Add explicit Vaerith != Vaelith continuity guardrail (Taura's storm-drake vs Elara's Godbeast) so an executor reading the docs can't conflate them — the distinction was only in git history before. - Document the concurrency convention's git-level gap (soft signal, not atomic lock) and the lock/execution-log mitigation for true parallel runs. - Queen calibration: re-score >=1 artifact per gate from scratch ignoring the self-score, expanding to full re-review on >=1-lens divergence. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Znc7W5RxzewdWQcJQSodC
Review response (commit
|
PR Review — Arcanea Story Progression: Season One Build PlanSummary: This PR ships two distinct changes — a critical
|
What this is
A build-ready, CLI-executable plan that progresses Arcanea's first staged arc — The Founding ("Seven Impossible People",
STORY_ENGINE.mdArc 1) — from synopsis into a shippable Season One: written episodes, canonical world-state deltas, and a franchise-grade visual key-art set. Written so a headless Codex / Grok CLI agent can pick up the backlog and execute it, gating its own output against an explicit quality bar.Lives in
docs/story-progression/(per repo rule: no working.mdin root).The governance you asked for
SHIP/REVISE/REJECT.The four documents
README.mdSTARLIGHT_GOVERNANCE.mdWORLD_PROGRESSION_EPOCH.mdVISUAL_PLAN.mdVISUAL_DOCTRINE.mdEXECUTION_BACKLOG.md[GATE]Board sign-offsSafety rails
CANON_LOCKED.mdis never touched. Every output is additive andStatus: STAGING.Draft — open for review before any episodes/art are generated against the backlog.
🤖 Generated with Claude Code
Generated by Claude Code