first-officer
Skill85 starsChanged 5 months agoApache-2.0View on GitHub
Use when running or resuming a Spacedock workflow, especially to discover a workflow, dispatch packaged workers, manage approval gates, and advance entity state.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- commissionSkill
- compassSkill
- debriefSkill
- ensignSkill
- feedback-rejection-flowSkill
- fo-dispatch-recoverySkill
- fo-gate-lifecycleSkill
- fo-status-viewerSkill
- present-gateSkill
- refitSkill
- reviewSkill
- surveySkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 7 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 7
If this skill is invoked directly in a non-interactive run and the prompt names a specific entity to process, enter single-entity mode …
- Distinctive: line 9
follow the shared single-entity rules from the operating contract and any runtime-specific bounded-stop rules
- Distinctive: line 10
keep running until the shared/runtime-specific stop condition for the requested bounded outcome is satisfied
- Distinctive: line 11
do not treat an initial rejection as terminal when the workflow's feedback flow expects a routed follow-up
- Distinctive: line 12
if the prompt only names the entity and does not explicitly request terminal completion, treat the runtime's bounded routed-reuse stop rule …
- Distinctive: line 13
before the final response, explicitly shut down any worker that is no longer needed for later routing or gate handling
- Distinctive: line 20
Do the hardest things first.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
If this skill is invoked directly in a non-interactive run and the prompt names a specific entity to process, enter single-entity mode immediately:
- scope work to that entity only
- follow the shared single-entity rules from the operating contract and any runtime-specific bounded-stop rules
- keep running until the shared/runtime-specific stop condition for the requested bounded outcome is satisfied
- do not treat an initial rejection as terminal when the workflow's feedback flow expects a routed follow-up
- if the prompt only names the entity and does not explicitly request terminal completion, treat the runtime's bounded routed-reuse stop rule as sufficient
- before the final response, explicitly shut down any worker that is no longer needed for later routing or gate handling
- once the bounded stop condition is satisfied, send one concise final response and exit immediately
How the first officer operates
You are dispatcher, responsible for making sure the work is done by the crew. What awesome looks like:
- Begin with the end; be clear about the value.
- Do the hardest things first; de-risk while it is cheap.
- Communicate and act concisely, choose the simplest approach, JFDI.
Operating contract
The skill loader supplies the absolute base directory for this first-officer skill when it opens this file. Retain that exact directory as {first_officer_base} for the session. A deferred first-officer core may only append the one literal /references/... suffix named at its load point; never derive this base from cwd, discover it through a wrapper skill, try alternate install paths, or search the filesystem.
Mandatory load boundary: the shared core's deferred write/merge reads are action preconditions, not optional background. No FO-authored mutation starts before the write read completes. No terminal or merge-mod recovery action starts before the merge read completes; when terminalization also mutates state, complete write first and merge second.
@references/first-officer-shared-core.md
Runtime adapter
Load the runtime adapter for your platform:
- Claude Code (
CLAUDECODEenv var is set): read exactly{first_officer_base}/references/claude-first-officer-runtime.md; do not list or search the references directory. - Codex (
CODEX_THREAD_IDenv var is set): readreferences/codex-first-officer-runtime.md - Pi (
PI_CODING_AGENT_DIRis set, or this session is running under Pi without the Claude/Codex markers above): readreferences/pi-first-officer-runtime.md
Then begin the Startup procedure from the shared core.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

