organic-os start (guided front door)
This is the first thing a new or returning user should run. It never writes
anything itself - it health-checks, then hands off to setup or to whatever
the user picks from the menu.
Step 1: greet
One sentence, no hype: organic-os observes a site's search and AI-answer-
engine performance, proposes changes, and only ships them once a human
approves - the loop is the product.
Step 2: health check
Run each check in order and report plainly what passed and what did not.
Do not stop at the first failure - collect all three results, then act.
python3 on PATH: python3 --version. If missing, tell the user
organic-os needs Python 3.9+ and stop here - nothing else in this skill
works without it.
- PyYAML importable:
python3 -c "import yaml". If this fails, show the
fix and stop: python3 -m pip install --user pyyaml. Offer to run it for
them.
- Registry readable:
PYTHONPATH="$CLAUDE_PLUGIN_ROOT/lib" python3 -c "from core import registry; print(registry.load())".
A clean {'active': None, 'sites': {}} or a populated registry both count
as a pass - this check is about core.registry importing and running,
not about whether any site exists yet.
If all three pass, say so in one line and move to Step 3.
Step 3: route
Use the Step 2 registry read to decide which branch applies.
Registry empty (no sites)
Offer two paths, AskUserQuestion with options:
- Quick start - URL, then 2 more questions, sensible defaults, about 2
minutes.
- Full setup - audits the URL first (brand voice, audience, keywords,
competitors, geos proposed from the actual site, not asked blind), then
covers whatever the audit cannot infer: operator knowledge, connectors,
Google Ads, WordPress, approval channel, runtime, brain location and
mode.
Mention the install form once, before handing off: if you filled the
configuration form when you enabled the plugin, setup will use it -
nothing is asked twice, and a filled form makes quick start a single
confirmation click.
Then invoke the setup skill in the chosen mode - quick-start mode or the
full setup interview - and let it run to completion (scaffold, register,
summary). Do not duplicate its questions here.
Registry has sites
Resolve the active site's brain path, then run
core.contracts.check_schema(brain_path) before anything else in this
branch:
action: "stamp" - tell the user this brain predates schema versioning
and that running /organic-os:setup in update mode will stamp
schema_version: 1 into it; continue to the status view below (stamping
is informational, not blocking).
action anything else with compatible: false - relay the action string
verbatim and stop. Do not show status or the menu, and do not route into
a routine, until the user has resolved it.
compatible: true with action: "none" - continue silently.
Show a compact status, read-only, no writes:
- Active site: name + url (
core.registry.get_active()).
- Pending approvals: count lines under a
status: proposed (or similar
pending) heading in <brain>/approvals/queue.md.
- Last signal date: the filename (or latest entry date) of the most recent
file in
<brain>/signals/. If the directory is empty, say "no signals
yet".
- Latest setup scorecard: find the most recent
<brain>/runs/*-setup- scorecard/REPORT.md by folder date, if any, and print one summary line
from its table - e.g. "setup scorecard (2026-07-19): 7/9 checks passing,
2 degraded (GA4 connector, approval channel) - run /organic-os:setup to
fix." If no scorecard folder exists yet, say "no setup scorecard yet -
run /organic-os:setup to generate one." This is a read, never a write -
start still writes nothing itself.
Then offer a menu, AskUserQuestion with options:
- Run daily - invoke
hoo-daily (the daily signal pull).
- Review approvals - open
<brain>/approvals/queue.md and walk the user
through pending items.
- Update settings - invoke
setup in update mode.
- Add a site - invoke
setup in add mode.
- Docs - point at
$CLAUDE_PLUGIN_ROOT/docs/getting-started.md and README.md's
Quickstart-by-persona section.
Step 4: always close with the three commands
Regardless of which branch ran, end every /organic-os:start session by
naming the three commands a user reaches for most:
/organic-os:daily - the daily signal pull.
/organic-os:onsite-audit - a credential-free on-page audit of any URL.
/organic-os:weekly - the weekly reflection pass.
Rules
- This skill never writes to the registry, a brain repo, or any config file
itself - every write happens inside
setup, hoo-daily, or whichever
skill the menu hands off to.
- Never skip the health check, even for a returning user with sites already
registered - a broken PyYAML install fails silently deep inside
setup or
a routine otherwise.
- If the registry read in Step 2 fails for a reason other than "no sites yet"
(a corrupt YAML file, a permissions error), show the raw error and stop -
do not guess a fix.
1---2name: start3description: Use when the user first opens organic-os, says "get started", "start organic-os", "what do I do first", "guide me through this", or runs /organic-os:start. The branded front door - health-checks the environment, then routes to first-run quick setup or, for a returning user, a compact status view and menu. Always ends by naming the three commands used most.4---56# organic-os start (guided front door)78This is the first thing a new or returning user should run. It never writes9anything itself - it health-checks, then hands off to `setup` or to whatever10the user picks from the menu.1112## Step 1: greet1314One sentence, no hype: organic-os observes a site's search and AI-answer-15engine performance, proposes changes, and only ships them once a human16approves - the loop is the product.1718## Step 2: health check1920Run each check in order and report plainly what passed and what did not.21Do not stop at the first failure - collect all three results, then act.22231. `python3` on PATH: `python3 --version`. If missing, tell the user24 organic-os needs Python 3.9+ and stop here - nothing else in this skill25 works without it.262. PyYAML importable: `python3 -c "import yaml"`. If this fails, show the27 fix and stop: `python3 -m pip install --user pyyaml`. Offer to run it for28 them.293. Registry readable:30 `PYTHONPATH="$CLAUDE_PLUGIN_ROOT/lib" python3 -c "from core import registry; print(registry.load())"`.31 A clean `{'active': None, 'sites': {}}` or a populated registry both count32 as a pass - this check is about `core.registry` importing and running,33 not about whether any site exists yet.3435If all three pass, say so in one line and move to Step 3.3637## Step 3: route3839Use the Step 2 registry read to decide which branch applies.4041### Registry empty (no sites)4243Offer two paths, AskUserQuestion with options:4445- **Quick start** - URL, then 2 more questions, sensible defaults, about 246 minutes.47- **Full setup** - audits the URL first (brand voice, audience, keywords,48 competitors, geos proposed from the actual site, not asked blind), then49 covers whatever the audit cannot infer: operator knowledge, connectors,50 Google Ads, WordPress, approval channel, runtime, brain location and51 mode.5253Mention the install form once, before handing off: if you filled the54configuration form when you enabled the plugin, setup will use it -55nothing is asked twice, and a filled form makes quick start a single56confirmation click.5758Then invoke the `setup` skill in the chosen mode - quick-start mode or the59full setup interview - and let it run to completion (scaffold, register,60summary). Do not duplicate its questions here.6162### Registry has sites6364Resolve the active site's brain path, then run65`core.contracts.check_schema(brain_path)` before anything else in this66branch:6768- `action: "stamp"` - tell the user this brain predates schema versioning69 and that running `/organic-os:setup` in update mode will stamp70 `schema_version: 1` into it; continue to the status view below (stamping71 is informational, not blocking).72- `action` anything else with `compatible: false` - relay the action string73 verbatim and stop. Do not show status or the menu, and do not route into74 a routine, until the user has resolved it.75- `compatible: true` with `action: "none"` - continue silently.7677Show a compact status, read-only, no writes:78791. Active site: name + url (`core.registry.get_active()`).802. Pending approvals: count lines under a `status: proposed` (or similar81 pending) heading in `<brain>/approvals/queue.md`.823. Last signal date: the filename (or latest entry date) of the most recent83 file in `<brain>/signals/`. If the directory is empty, say "no signals84 yet".854. Latest setup scorecard: find the most recent `<brain>/runs/*-setup-86 scorecard/REPORT.md` by folder date, if any, and print one summary line87 from its table - e.g. "setup scorecard (2026-07-19): 7/9 checks passing,88 2 degraded (GA4 connector, approval channel) - run /organic-os:setup to89 fix." If no scorecard folder exists yet, say "no setup scorecard yet -90 run /organic-os:setup to generate one." This is a read, never a write -91 `start` still writes nothing itself.9293Then offer a menu, AskUserQuestion with options:9495- **Run daily** - invoke `hoo-daily` (the daily signal pull).96- **Review approvals** - open `<brain>/approvals/queue.md` and walk the user97 through pending items.98- **Update settings** - invoke `setup` in update mode.99- **Add a site** - invoke `setup` in add mode.100- **Docs** - point at `$CLAUDE_PLUGIN_ROOT/docs/getting-started.md` and `README.md`'s101 Quickstart-by-persona section.102103## Step 4: always close with the three commands104105Regardless of which branch ran, end every `/organic-os:start` session by106naming the three commands a user reaches for most:107108- `/organic-os:daily` - the daily signal pull.109- `/organic-os:onsite-audit` - a credential-free on-page audit of any URL.110- `/organic-os:weekly` - the weekly reflection pass.111112## Rules113114- This skill never writes to the registry, a brain repo, or any config file115 itself - every write happens inside `setup`, `hoo-daily`, or whichever116 skill the menu hands off to.117- Never skip the health check, even for a returning user with sites already118 registered - a broken PyYAML install fails silently deep inside `setup` or119 a routine otherwise.120- If the registry read in Step 2 fails for a reason other than "no sites yet"121 (a corrupt YAML file, a permissions error), show the raw error and stop -122 do not guess a fix.