start · diff
git:20260707.2a2e857 to git:20260710.d9f833e
50 added, 41 removed. Audit A to A.
---
name: start
- description: The day-one first-run flow and the everyday home screen. On first launch, greet, run the setup interview, then carry the operator into their first real win. On return, give a short briefing and the action menu. Reachable any time by typing "start" or "menu".
+ description: The day-one first-run flow and the everyday home screen. On first launch, greet, run setup, then carry the operator into a real first win. On return, give a short briefing and action menu.
trigger: /start
---
# /start: wake the operator
- This runs on first launch (via the optional launcher, or the first time you type `/start`
- yourself) and is reachable any time after. Make it feel like a warm, oriented briefing —
- plain-English choices up front — rather than a blank prompt.
+ Use this skill on first launch and whenever the operator asks for the home screen, start menu, or orientation.
- ## Detect first run
+ ## State contract
- Check for the first-run marker (`.aigent/first-run-done`) or an empty `memory/about-you.md`.
+ The canonical first-run state is `.aigent/state.json`:
- ### First run
- 1. Branded greeting, two lines, warm and plain:
+ ```json
+ {
+ "schemaVersion": 1,
+ "status": "uninitialized | setup-in-progress | ready",
+ "completedAt": null
+ }
+ ```
+
+ For compatibility with installations before v0.9, `.aigent/first-run-done` is also recognized.
+
+ - `status: ready` or a legacy first-run marker means returning operator.
+ - Missing state, invalid state, or any other status means first run.
+ - If the legacy marker exists but the JSON state is not ready, migrate the JSON state to `ready` silently.
+
+ ## First run
+
+ 1. Write `status: setup-in-progress` before asking questions, so an interrupted setup can resume.
+ 2. Give a two-line, warm, plain greeting:
> I'm your AIgent operator. Let's get you one real win in the next few minutes.
- 2. Run **`/operator-setup`** (the three-question interview that ends in a personal briefing).
- 3. When they pick one of the briefing's three actions, run **`/first-win`** and ship a real
- artifact.
- 4. After the artifact lands, teach the operating loop in plain English (one time, unmissable):
- > "Before you go -- three habits that make this system work.
- > Each session, start with /open. I'll load everything and tell you what to pick up.
- > When you're done, say 'close up' and I'll bank the session so next time is seamless.
- > And once, run /statusline in Claude Code and turn on context usage -- that gives you
- > a live counter so you can see when context is getting full. When it fills, close up,
- > start a fresh session, and open again."
- 5. Write `.aigent/first-run-done`.
+ 3. Run `/operator-setup`, one question at a time.
+ 4. When the operator chooses an action from the personal briefing, run `/first-win` and produce a usable artifact.
+ 5. Teach the operating loop once:
+ > Start later sessions with `/open`. When you are done, say "close up" or run `/close` so the work is banked. Run `/statusline` once in Claude Code to show context usage.
+ 6. Only after setup memory and the first artifact are successfully written:
+ - Set `.aigent/state.json` to `status: ready` with an ISO-8601 `completedAt` value.
+ - Write `.aigent/first-run-done` for backward compatibility.
- Do not rush them through. The whole arc is one continuous conversation, not a setup wizard.
+ Do not mark setup ready before the durable writes succeed.
- ### Returning
- 1. Give a short, specific briefing in the spirit of a daily open: what their business is,
- the two or three things you'd move on today, and anything that changed. Pull from
- `memory/about-you.md` and recent work. Keep it jargon-light.
- 2. Surface the action menu.
+ ## Returning operator
- ## The action menu
+ 1. Read `memory/about-you.md` and recent session memory.
+ 2. Give a short, specific briefing: what matters today, what changed, and what is blocked.
+ 3. Surface the action menu.
- Offer plain-English choices alongside the option to type a command directly. Present them as
- a short numbered list and let the operator pick by number or by typing what they want:
+ ## Action menu
- - Plan my day
- - Draft content
- - Research something
- - Build an automation
- - Check my numbers
- - Just talk it through
+ Present a short numbered list and accept either the number or a plain-language request:
- On first run, lead the menu with the two zero-dependency first-win tasks (see `/first-win`)
- so the first win never waits on a connector.
+ 1. Plan my day
+ 2. Draft content
+ 3. Research something
+ 4. Build an automation
+ 5. Check my numbers
+ 6. Talk it through
+ On first run, lead with zero-dependency actions so the first win never waits on a connector.
+
## Rules
- - Plain-English voice by default; you run the skills for them based on what they pick, but
- don't hide the underlying commands if they ask or want to run things directly themselves.
- - If the operator ever hits an error, say plainly what broke, what you tried, and what you
- need from them to get unblocked.
- - No em-dashes. No emoji.
+
+ - Use plain English and the operator's nouns.
+ - Ask one setup question at a time.
+ - Never invent business facts.
+ - If an operation fails, state what failed, what was attempted, and what durable state was or was not written.
+ - Do not leave `status: setup-in-progress` indefinitely after a successful setup.