atris/skills/autopilot/SKILL.md
Run ONE autopilot tick. Reads identity (flow) + horizon (endgame), shows a visual status block, picks the next [endgame] task or seeds a new endgame at boundaries, then executes plan→do→review. Lessons compound to atris/lessons.md. Triggers on: autopilot, run one tick, ship one thing, do the next thing, get this done.
npx skillsauth add atrislabs/atris autopilotInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The two-engine architecture: /flow chains forward from identity (who you are → next move). /endgame chains backward from horizon (where you're going → next move). They meet at the same intersection — the next thing /autopilot should ship. Each tick reads both sides and shows them in the visual status block.
Every tick prints this BEFORE scanning for work, so you can see the loop's state at a glance:
┌──────────────────────────────────────────────────────────────┐
│ tick · 14:23 │
│ identity: building atris-business cloud for design partners │
│ horizon: wiki-from-atris-labs │
│ atris-cli wiki has 3 new pages from atris-labs │
│ progress: ████████░░░░ 6/9 endgame steps │
└──────────────────────────────────────────────────────────────┘
atris/PERSONA.md (first non-trivial line)## Endgame section in atris/TODO.md[endgame]-tagged tasks in Backlog vs T#/W#/E#-prefixed entries in CompletedIf identity is missing, edit PERSONA.md. If no horizon is active, /endgame seeds one from inbox / wiki / lessons.
Runs ONE plan→do→review tick anchored to the current endgame. If no endgame is active, seeds one from the inbox or wiki signals first. Not a recurring loop — call /loop for that.
/loop invokes this on each fireatris/TODO.md. Look for the ## Endgame section header and [endgame]-tagged tasks in ## Backlog.## Endgame section exists, OR every [endgame]-tagged task in Backlog is done/missing, invoke /endgame first to seed the next horizon. /endgame will write a new ## Endgame section + tagged backlog tasks to TODO.md.atris autopilot --auto --iterations=1 via Bash. The CLI prefers [endgame]-tagged backlog tasks (priority 0) over reactive signals (priority 1+). One task per tick.When the user (or cron) invokes /autopilot:
1. Read atris/TODO.md
2. If TODO.md has no `## Endgame` section OR no `[endgame]` tasks in Backlog:
→ Invoke `/endgame` first (it will write the new endgame to TODO.md)
3. Run: atris autopilot --auto --iterations=1
4. Show output
5. Stop
The whole point of the architecture: finish the current endgame before picking another. Reactive signals (stale pages, broken refs) are fallbacks, not the main road. The main road is endgame → endgame → endgame, set by the human or seeded from inbox at every boundary.
TODO.md state → tick action
─────────────────────────────────────────────────────────────────────
no ## Endgame section → /endgame to seed, then run tick
## Endgame exists, [endgame] tasks 0 → /endgame to pick next, then run tick
## Endgame exists, [endgame] tasks 1+ → run tick (pick next [endgame] task)
no endgame anywhere, no inbox, clean → loop journals "nothing left", stops
atris autopilot --dry-run — preview what it would do, do not executeatris autopilot --auto --iterations=N — run up to N ticks back-to-back (still one task per tick, boundary checks between)atris autopilot "<task description>" — seed a new inbox item, then runIf the user wants this to fire on a recurring schedule, invoke /loop instead. /loop schedules a cron that calls /autopilot every ~13 min, with the boundary check baked in.
/autopilot → one tick (with boundary check at start)
/loop → /autopilot every ~13 min (heartbeat)
/loop's job./endgame — read inbox/wiki/logs, pick the next horizon, do not just run forever.development
Wake a team member by name — 'gm <member>' or 'wake up <member>' — and run ONE closed-loop tick: boot, inbox, claim, one bounded slice, verify, commit+push, proof, receipt. Optionally dispatch the build to an engine (codex/cursor/devin). Triggers on: gm, good morning, wake up <member>, wake the team, run a tick as <member>.
development
Dispatch coding work to an installed terminal agent — Codex, Cursor, or Devin — as an interchangeable worker engine. Claude orchestrates: writes the bounded prompt, the engine builds, Claude verifies and lands. Triggers on: use codex, use cursor, use devin, engine, dispatch to, worker agent, second opinion build.
development
Live RL tuner for skills. Watches skill invocations, reads user reaction, proposes targeted SKILL.md overlay edits, requires explicit approval, writes scorecards. The in-session half of the skill-RL loop (Path B). Triggers on: tune, sharpen, skill feedback, that was shit, that was great, make X better.
development
Run one RL improvement tick on the workspace via POST /api/improve. Ships one verifiable change, scores it, writes the scorecard. The thing you pay for. Triggers on: improve, make this better, ship one thing, run a tick, get smarter.