# Phase 33: Fresh-Start Commune + Auto-Resume - Discussion Log

> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

**Date:** 2026-05-17
**Phase:** 33-fresh-start-commune-auto-resume
**Areas discussed:** First-commune summary content, Sentinel + cleared_at storage, Next body of work extraction, Casual-language triggers + rejection

---

## First-commune summary content (FRESH-01)

| Option | Description | Selected |
|--------|-------------|----------|
| Agent id + starter role hint | "You are myrepo-executor (starter: task execution) in repo claude_skill_owl." Pulled from pick-spec starter pool. | |
| Repo context (basename + git origin) | Current repo names from Phase 32 derivation. | |
| Live ecosystem hint | List of other known agents in this repo. | |
| Minimal blank-slate text | Literal "No prior context. You are starting fresh as {id} in {repo}." | |
| **Other (free-text)** | **User-provided** | ✓ |

**User's choice (free-text):** "Derive a summary from both session context and project files. Session context is most important: if self has memory of things they've done so far, that's the summary. Alongside potentially a short brief of the project and its current state/progress."

**Notes:** Captured as D-01 in CONTEXT.md — no new binary subcommand; skill instructs Claude to compose summary from (1) Self's session memory primary, (2) project file synthesis (README/CLAUDE.md/state file) secondary.

---

## First-commune summary content (FRESH-02 NO-CONTEXT path)

| Option | Description | Selected |
|--------|-------------|----------|
| Same synthesis path as FRESH-01 | Treat NO-CONTEXT identically; no prior-existence note. | ✓ |
| Same synthesis + note prior-existence | Append "agent id has prior records but psyche context is empty" line. | |
| Pull prior project_history into summary | Enumerate {id}'s known repos from info.json.project_history if present. | |

**User's choice:** Same synthesis path as FRESH-01.
**Notes:** Captured as D-02. NO-CONTEXT treated as blank slate; nothing useful to recover means nothing useful to differentiate.

---

## Sentinel + cleared_at storage (FRESH-04, FRESH-05)

| Option | Description | Selected |
|--------|-------------|----------|
| Sidecar file in psyches dir | `${SPT_HOME}/psyches/tracked/.{id}.first-commune-sent` | |
| Owlery state dir per identity | `${SPT_HOME}/owlery/{id}/first-commune-sent` | |
| Field inside psyche-md frontmatter | YAML/JSON frontmatter prepended to {id}.md | |
| Single registry file | `${SPT_HOME}/psyches/.first-commune-log.json` keyed by id | |
| **Other (free-text)** | **User-provided** | ✓ |

**User's choice (free-text):** "why do we need the sentinel?"

**Claude's response:** Traced double-fire cases A-D; identified Case C (proceed-to-init without ever communing) and Case D (clear-psyche → NO-CONTEXT) as the only re-fire scenarios; proposed dropping sentinel in favor of cleared_at frontmatter alone.

**Follow-up question:** Drop sentinel — cleared_at alone | Keep sentinel for Case C | Keep both narrow.

**User's choice (free-text):** "we don't need either .first-commune-sent (covered by empty state of psyche md) or the cleared_at value. FRESH-02 *should* fire for case C and D. and reminder that case C is extremely improbable, because FRESH-02 prompts for a first commune, and even without it the echo communes happen."

**Notes:** Captured as D-03 (strike FRESH-04 + FRESH-05) and D-04 (reword FRESH-06 as natural consequence) in CONTEXT.md. Plan 01 begins with REQUIREMENTS.md + ROADMAP.md amendment commit.

---

## Next body of work extraction (AUTO-02)

| Option | Description | Selected |
|--------|-------------|----------|
| Last commune body — most recent section | Surface most recent commune body from Pulse Log. | |
| Structured marker — ## Current Focus / ## Next | H2 header match with fallback. | ✓ (with fallback = synthesize) |
| Skill instructs Claude to synthesize | 1-2 sentence "here's where we left off" summary. | (fallback only) |
| Last N lines of payload | Tail last 20-40 lines of psyche-download. | |

**User's choice:** "2, but where the fallback is 3. no 'last commune body' surfacing."

**Notes:** Captured as D-05 in CONTEXT.md. Order: H2 marker → Claude synthesis. Last-commune surfacing explicitly excluded.

---

## H2 marker name (AUTO-02 D-06)

| Option | Description | Selected |
|--------|-------------|----------|
| ## Current Focus only | Single canonical marker; strict. | |
| Current Focus / Next Up / Next Steps | Skill accepts any of three; first match wins. | ✓ |
| Memformat `<topic name="focus">` block | Parse memformat XML instead of markdown H2. | |

**User's choice:** Current Focus / Next Up / Next Steps.
**Notes:** Captured as D-06. Exact case-sensitive string match; first match wins.

---

## Casual-language triggers + rejection enforcement (AUTO-05/06)

| Option | Description | Selected |
|--------|-------------|----------|
| Skill description wording only | Curate description frontmatter; rely on Claude Code dispatcher. | ✓ |
| Skill body guard — first instruction is a phrase check | In-skill regex/predicate rejects ambiguous phrases. | |
| Both — curated description + body guard | Belt and suspenders. | |

**User's choice:** Skill description wording only.
**Notes:** Captured as D-07. AUTO-07 confirmation hop is the safety net for dispatcher false-positives.

---

## Trigger phrase list (AUTO-05/06 D-08)

| Option | Description | Selected |
|--------|-------------|----------|
| Proposed 5-phrase set | resume my agent, wake up my agent, resume my live agent, resume live agent, wake up my live agent | |
| Above + fork/revive references | Adds "revive my agent", "fork my agent" — risk: routing fork to --auto wrong. | |
| Narrower — 3 phrases | resume my agent, wake up my agent, resume my live agent. | |
| **Other (free-text)** | **User-provided** | ✓ |

**User's choice (free-text):** 8 phrases — `continue live work`, `resume live work`, `continue live agent`, `resume live agent`, `live agent continue`, `live agent resume`, `live work continue`, `live work resume`.

**Notes:** Captured as D-08 in CONTEXT.md. All 8 phrases contain BOTH `live` and either `agent` or `work` — satisfies AUTO-06 explicit-reference rule. Description also explicitly calls out rejected: "keep going", "resume work", "continue" (bare).

---

## `--auto` edge-case dispatch (AUTO-01)

| Option | Description | Selected |
|--------|-------------|----------|
| Refuse with explanatory message | Exit with stderr hint. | |
| Fall through to normal /spt:live flow | Treat --auto as no-op on prompt-new / all-live. | ✓ |
| Confirm-or-cancel hop | AskUserQuestion "continue with normal pick flow?" | |

**User's choice:** Fall through to normal /spt:live flow.
**Notes:** Captured as D-09. `--auto` is a no-op enhancement on `prompt-new` and `all-live` — never errors.

---

## Claude's Discretion

- SessionStart `<spt-live-auto-pick>` XML payload shape (AUTO-03) — flagged in STATE.md for research.
- AUTO-03 allow-list predicate exact env-var set — flagged in STATE.md for research.
- 15+/15+ AUTO-03 test corpus design — flagged in STATE.md for research.
- Exact wording of FRESH-03 surface text when SessionStart auto-fires vs manual `--auto`.
- Plan split (likely 3 plans) — planner's discretion; Plan 01 must include REQUIREMENTS.md/ROADMAP.md amendment.
- AUTO-08 argument-hint exact form — pick during Plan 02 honoring Phase 32 HINT-04 YAML quoting.
- "Most-recently-active" tie-breaker for `kind:"pick"` — uses pick-spec's existing `last_active desc, then id asc` sort; `options[0]` deterministically.

## Deferred Ideas

- AUTO-D1 (task-level auto-resume without confirmation) — out of scope; AUTO-07 mandates confirmation.
- AUTO-D2 (last commune body decorator on AUTO-07 prompt) — out of scope; composes with D-05.
- SessionStart auto-pick rich payload (preview of D-05 next-work) — future extension.
- Casual-language trigger telemetry — future tuning aid.
- Trigger-phrase i18n expansion — English-only per project convention.
- `--auto` + `--period` pass-through to `$LIVE start` — confirm during planning.
- First-commune flow composition with SessionStart auto-pick surface — confirm during planning.
