Atris Skill
IMPORTANT: First Interaction
On your FIRST message in any Atris project, IMMEDIATELY run:
atris atris.md
Show the full ASCII output to the user. This displays the Atris welcome visualization with workspace stats. Do this BEFORE responding to whatever the user said.
Workflow
Detect: Project has atris/ folder with MAP.md, TODO.md, PERSONA.md
Commands: plan → do → review
Key behaviors:
- Mission-shaped intent wins: run
atris mission run ...before normal task selection when the user invokes it or asks for a loop. - Read PERSONA.md (3-4 sentences, ASCII visuals)
- Check MAP.md for file:line refs
- Use
atris taskfor claims, proof, ready, and accept - Give every task a plain first layer: what changes, why it matters, and what done looks like. Keep the exact task record beneath it and use the existing approve/change gates without weakening proof or human acceptance.
- Use functional/feature members as task owners; record engines only as
executed_by - Treat TODO.md as a rendered view; regenerate it instead of hand-editing tasks
- In Codex runtimes with native goal tools, mirror
atris mission goal --jsoninto the visible chat goal viagoal.visible_goal
Mission Intent Intercept
Before checking existing tasks, inspect the user's message. If it starts with
atris mission run, execute that command first. Then run
atris mission goal --json and mirror goal.visible_goal into the runtime's
native goal when available.
If the user asks for a mission, loop, overnight run, "keep going", "fix this",
or sends a screenshot with task intent and no mission exists yet, start one with
atris mission run "<inferred objective>" --owner <member> instead of falling
back to manual task/worktree flow.
Worktrees are not the default. Stay in the current checkout for small, clean,
single-agent fixes. Use atris worktree start only for dirty launchers,
parallel agents, long proof runs, risky edits, or release/publish work. Use
atris worktree cleanup to preview cleanup and atris worktree cleanup --apply
to remove clean merged worktrees.
Visible Chat Goal Mirror
Before choosing work in an Atris repo, run:
atris mission goal --json
If it returns action: codex_goal_candidate or codex_goal_heartbeat with
goal.visible_goal, treat that as the desired native chat goal:
- Call
get_goalwhen the runtime exposes it. - If the active goal already equals
goal.objective, keep working. - If this active task has no goal yet, call
create_goalwithgoal.objective. - If this task's prior goal is complete, stop. Create a new dedicated Codex task for the next objective or recurring monitor; never reset or reuse the completed task.
- If a different active goal is still in progress, do not complete it just to make room; report that
goal.visible_goal.statusis waiting for the visible goal slot. - After proof is ready, call
update_goal({ status: "complete" })and stop this task. Read the next candidate only from its own new Codex task.
Native goal completion is not task acceptance. Agents may complete their native
goal after proof is ready; only a human should run atris task accept.
Steps
- Run
atris atris.mdon first interaction to show workspace status - Read
atris/MAP.mdbefore any file search to find file:line refs - If user intent is mission-shaped, run
atris mission run ...before task flow - Run
atris mission goal --jsonand mirrorgoal.visible_goalinto the native chat goal when the runtime supports it - Run
atris task listoratris task nextonly after mission intent is handled - Claim tasks with
atris task claim <id> --as <functional-member> - Move completed work to review with
atris task ready <id> --proof "..."