Skip to main content

session-startup

Load terminal task-context. Terminal scope, scope files, SESSION_CONTEXT. Persona conditioning is /boot's job. S165 split.

Source facts

Repository
pnils08/GodWorld
Last source activity
August 16, 2026 at 06:41
Detected SKILL.md language
English
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
session-startup
description
Load terminal task-context. Terminal scope, scope files, SESSION_CONTEXT. Persona conditioning is /boot's job. S165 split.
version
2.1
updated
2026-05-08T00:00:00.000Z
tags
["infrastructure","active"]
effort
low
disable-model-invocation
true
related_skills
["boot","session-end"]
# /session-startup — Terminal Context Load **Purpose:** Load terminal scope and task context. Does NOT handle persona conditioning (that's `/boot`). Per the S165 split: **Boot loads Mags. Session-startup handles terminals.** --- ## When To Use - **Hook misfired** — SessionStart didn't inject the per-terminal boot sequence. - **Terminal switch mid-session** — rarely, if scope context drifted. - **Manual orientation** — Mike asks "what terminal am I in and what's loaded." If Mags identity is also lost (not just terminal context), run `/boot` first, then this. --- ## Hook-Already-Fired Guard (S241 G-SS8) **If the SessionStart hook already injected a `<godworld-state>` block with `BOOT SEQUENCE (<terminal> terminal — ...)` for this session, the reads are already done — skip Steps 0–4 and go to Step 5 (orient).** Only run the full sequence when the godworld-state block is absent (hook genuinely misfired). Why: the hook routes the same boot reads (`docs/SCHEMA.md`, `docs/index.md`, `TERMINAL.md`) the skill steps below specify, and emits the carried set (PIN + this terminal's NEXT line) directly (ADR-0009 §loop-tightening — SESSION_CONTEXT.md is on-demand, not a boot read). Running both duplicates work. The skill is the *recovery path* for hook misfire — not a parallel boot. Source: `output/production_log_session-startup_c95_gaps.md` G-SS8. --- ## Steps ### 0. Free Memory (if hook didn't) ```bash pm2 stop godworld-dashboard 2>/dev/null # free memory; session-end restarts it ``` mags-bot is SUSPENDED (Mike-direct 2026-08-16) — it bills real, metered Anthropic API on every Discord message on two always-on channels, nobody was actively watching them, and no process depends on it running (verified: no functional caller, only boot-ensure-up commands and this rule). Supersedes the S252/S264 "never stop it" standing service designation. Do NOT auto-start it here. `pm2 start mags-bot` only on Mike's explicit word. ### 1. Detect Terminal ```bash tmux display-message -t "$TMUX_PANE" -p '#W' ``` If output is empty or doesn't match a `.claude/terminals/{name}/` directory, fall back to **research-build** (steward terminal — S211). ### 2. Read TERMINAL.md ``` Read: .claude/terminals/{detected-name}/TERMINAL.md ``` This defines the scope, Always-Load list, Persona Level, owned docs, and handoff protocol. ### 3. Load Scope Files Per that TERMINAL.md's **Always Load** table. Each terminal's list differs: - **mags** — identity.md (if not loaded), CHARACTER.md, JOURNAL_RECENT.md (persona files) - **media** — newsroom.md, CHARACTER.md, JOURNAL_RECENT.md - **civic** — civic.md (operational mode — no CHARACTER.md per CLAUDE.md §Terminal architecture, S221) - **research-build** — SCHEMA.md, docs/index.md (operational mode — no CHARACTER.md, S221) - **engine-sheet** — engine.md, README.md (G-SS9: operational terminals (civic / research-build / engine-sheet) do NOT load CHARACTER.md — they're persona-stripped per S221. Only mags + media load persona files. If persona files are genuinely needed, run `/boot` — don't re-implement persona-load logic here.) ### 4. Pull live span ONLY if continuing prior work (ADR-0009, S248) **SESSION_CONTEXT.md is on-demand — NOT read at boot.** Per ADR-0009 §loop-tightening, the SessionStart hook emits the carried set — the PIN (Session/Day/Cycle/Edition) + this terminal's `NEXT[<terminal>]` line — inside `<godworld-state>` as the boot handoff. That NEXT line is what this terminal's last instance left you. What shipped → `git log`; what's open → ROLLOUT_PLAN.md (canonical); why → claude-mem. Only read the file if you are **continuing prior work** (Mike said "resume" / "continue <X>", or you're picking up a thread the NEXT line + ROLLOUT don't fully orient you on): ``` Read: SESSION_CONTEXT.md (on-demand — PIN + per-terminal NEXT lines; no narrative since §loop-tightening) ``` A fresh-but-pivoting session does not read it. (Pre-ADR-0009 this step was an unconditional ~80-line read; the contingent-relevance argument retired that — see ADR-0009.) ### 5. Orient Three lines to Mike (no narration of what you read): - Terminal: {name}, Persona: {Full/Light/Stripped} - Opens on: {the NEXT line for this terminal — what last instance left} - What's first? If the NEXT line is empty (hook emitted no `NEXT:`), say so — that means the previous session didn't write one; fall back to `git log` + ROLLOUT to orient. --- ## What This Skill Does NOT Do - Does NOT reload identity.md / CHARACTER.md / JOURNAL_RECENT.md / queryFamily — that's `/boot` - Does NOT run catch-up (Discord Mags notes, nightly reflections, super-memory search) — that's `/boot` - Does NOT search memory for past sessions — use mem-search on demand - Does NOT load owned-documentation files listed in TERMINAL.md — those are "when to load", not auto-load For any persona reloading needs, compose with `/boot`.
View on GitHub