Chalk Labs
Need help deploying fo-gate-lifecycle?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/spacedock-dev-fo-gate-lifecycle
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fo-gate-lifecycle
What's inside
- Skill name
fo-gate-lifecycle- Description
- Handle an engaged gate entry.
- License
- Apache-2.0
- Instructions
- 72 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# First Officer Gate Lifecycle
## «gate.lifecycle»(slug, stage): bind, decide, apply one recorded authorization
Load before engaged gate action. It grants no writes; read `fo-write-core.md` before FO mutation.
The binary owns preparation, withdrawal, recording, and one-use consume; this skill only routes their observed results.
**Boot.** `status --boot --identify --json` `ready_gates` gives `definition_dir`, `entity_dir`, slug/stage/readiness. Engage slug via `status --read <slug> --json`, never search. `needs-preparation`: review report, or at an `initial: true` stage the committed seed itself; `awaiting-captain`: open; `withdrawn-awaiting-prepare`: successor; approved: unblocked; malformed/ambiguous: fail closed.
**Prepare.** Resolve `${SPACEDOCK_BIN:-spacedock}`; keep paths. For each retained absolute R (`definition_dir`, `entity_dir`), derive relative P; state R is the engaged task directory, never `.`. Run `git -C "<R>" ls-tree -r --name-only HEAD -- "<P>" | awk 'tolower($0)~/\.(md|markdown)$/{print}'`, quoted. Read once; summarize. No logs/history/status/help probes. Compose the selected-source `<R>/<P>` (observed workflow root or committed entity path); never retype prose. Use absolute if cwd/state spellings differ. No binary JSON/IDs/digests/Git locators/room coordinates.
Run this sequence once and in this order:
```text
1. ${SPACEDOCK_BIN:-spacedock} gate prepare ENTITY --question QUESTION --artifact REVIEW --summary SUMMARY [--reference FILE ...] --workflow-dir WORKFLOW_DIR
2. ${SPACEDOCK_BIN:-spacedock} state commit ENTITY --workflow-dir WORKFLOW_DIR
3. In one shell event, run `${SPACEDOCK_BIN:-spacedock} status --read ENTITY --checklist --json --workflow-dir WORKFLOW_DIR` and the same command with `--ac-scan` instead of `--checklist`.
4. Load spacedock:present-gate and present once from that structured evidence.
```
**Initial-stage gate.** At a stage the workflow marks `initial: true`, the committed seed IS the reviewed artifact: no prior stage existed to write a report. Prepare directly from the seed with `--artifact` naming the entity; never author, request, or wait for a stage report, and never emit `report-incomplete`. Skip step 3 — both structured reads exit nonzero with no report. Present outcome, scope, exclusions, and the ideation proof the next stage owes.
**Cold report candidate (non-initial stages).** Structurally review the path-resolved entity's latest exact-stage report/checklist and commit. An insufficient obligation, claim, Summary, or scope stops once with `report-incomplete: <concrete defect>` and no prepare, mutation, presentation, idle, or repeat-next. Otherwise invoke prepare once; nonzero/mismatch stops with its exact error and no retry or `gate record --briefing`.
Require prepare to emit `room`, `briefing`, `digest`, and `state=open`; never reconstruct the room. On nonzero commit, structured-read failure, or stage mismatch, stop before presentation or any later lifecycle effect. Use checklist text/ranges and AC citations to cross-check the gate; do not full-read/grep the entity or project boot after prepare or presentation. No conn: ask and stop open. Explicit conn: immediately record and consume; never final after presentation.
**Withdraw stale open authority.** If a prepared room is stale before the Captain decision, run:
```text
${SPACEDOCK_BIN:-spacedock} gate withdraw ENTITY --reason REASON --workflow-dir WORKFLOW_DIR
```
Require `state=withdrawn`, commit the entity, and stop unless replacement inputs are ready. Withdrawal never means approve, revise, or hold. On `withdrawn-awaiting-prepare`, prepare and commit N+1, present its emitted room, and stop open. Never record, consume, present, dispatch, or recover with `record --briefing` on withdrawn N.
**Record and durably close.** Use exactly one semantic source:
```text
# Captain-approve fast path: close, sync, consume, sync in one call
${SPACEDOCK_BIN:-spacedock} gate record ENTITY --decision approve --actor person:captain [--reason REASON] --consume --workflow-dir WORKFLOW_DIR
# Captain's chat decision
${SPACEDOCK_BIN:-spacedock} gate record ENTITY --decision approve|revise|hold --actor person:captain [--reason REASON] --workflow-dir WORKFLOW_DIR
# FO decision under explicit Captain conn
${SPACEDOCK_BIN:-spacedock} gate record ENTITY --decision approve|revise|hold --actor agent:first-officer --reason EVIDENCE_JUDGMENT --conn-quote GRANT --conn-source SOURCE --workflow-dir WORKFLOW_DIR
```
No Captain grant: bind/present and leave open; a later grant permits delegation. An existing conn requires present once, immediate record, then the route below. Record an FO-rendered decision as `agent:first-officer` with a nonblank reason, never `person:captain`; reserve it for the Captain. Cite the grant: quote it verbatim and name where it was given; the recorder refuses an FO decision without both. `revise`/`hold` need reasons.
Map Captain calls before recording: `approve` maps to `approve` with an accepts-direction evidence reason; `redo with feedback` maps to `revise` with an accepts-direction reason; `reject` with `feedback-to` maps to `revise` with a rejects-direction reason; `reject` without `feedback-to` maps to `hold` with a pause reason; `hold` maps to `hold` with a pause reason; `not yet` maps to `hold` with a pause reason naming what remains. Routed redo/reject reasons include concrete asks and invoke `«feedback.route»` after the close commit; hold decisions commit and stop at the gate.
Require exit 0, bound attempt/Briefing, `state=closed`, and decision; record validates Resolution/application before atomic write, commits, and syncs itself (split-root); `sync=`/`phase=` discriminator and recovery in fo-dispatch-core.md. Close/sync failure halts.
**Route fail-closed.** For approve, run:
```text
${SPACEDOCK_BIN:-spacedock} gate consume ENTITY --workflow-dir WORKFLOW_DIR
```
Consume rechecks currency, successor, blockers, and one-use state under lock. Nonterminal: require exit 0, `consumed=true`, expected successor; it writes successor/consumed state, commits, and syncs. Then call `dispatch build --stamp` exactly once in the bound adapter shape (Codex named: no `--bare-mode`); never probe another shape. Require status and nonempty `started` in its commit. Terminal: require `consumed=false`, `route=approved-awaiting-merge`; drive `«merge.guard»(slug)` with no dispatch. Never use `status --set` to advance a gate.
- `revise`: never consume after close commit; invoke `«feedback.route»`.
- `hold`: after close commit, remain at the gate and surface the reason.
- blocked/wrong-stage/unknown/ineligible approval: close is durable; halt and preserve status bytes.
- `stale`: consume exits nonzero, leaves status unchanged, changes only pending → superseded; commit it, bind a replacement Briefing, re-present.
- pending terminal approval: unspent — drive `«merge.guard»`.
- already `consumed`: authorization is spent. Nonterminal status resumes ordinary dispatch/recovery; terminal status resumes the existing merge ceremony. Never re-record, consume, or dispatch a terminal successor. Diagnostic repeat consume must be nonzero and byte-clean.
**Resume.** Recover durable-but-unsynced writes per fo-dispatch-core.md; never retry failures or repair frontmatter. Routes: open → always `state commit`, then structured reads and presentation; failure stops; `needs-preparation` → review; withdrawn → prepare; pending approval → consume; revise/hold → route/stop; consumed → dispatch/merge. Prepare replay is idempotent; divergent binding refuses.From spacedock-dev/spacedock, Apache-2.0.
More from spacedock-dev/spacedock
- 0.676score
first-officer
spacedock-dev
Use when running or resuming a Spacedock workflow, especially to discover a workflow, dispatch packaged workers, manage approval gates, and advance entity…
SkillAFreshness: A★ 81Claude Code +9 - 0.671score
compass
spacedock-dev
Open Spacedock Compass, the local dashboard of what your coding-agent sessions are doing: sessions, subagents, progress and drift.
SkillAFreshness: A★ 81Claude Code +9 - 0.671score
review
spacedock-dev
Get a person's review of an artifact you produced or were handed: a plan, spec, report or other Markdown file.
SkillAFreshness: A★ 81Claude Code +9 - 0.642score
commission
spacedock-dev
This skill should be used when the user asks to "commission a workflow", "create a workflow", "design a workflow", "launch a workflow", or wants to…
SkillAFreshness: A★ 81Claude Code +9 - 0.636score
survey
spacedock-dev
Use when arriving at or returning to a project that already has AI-agent history and you want the lay of the land before doing anything else — "survey this…
SkillBFreshness: B★ 81Claude Code +9 - 0.631score
fo-dispatch-recovery
spacedock-dev
Claude dispatch failure recovery — Break-Glass Manual Dispatch (the manual `Agent()` template) and Context Budget Failure/Dead Ensign Handling (the…
SkillBFreshness: B★ 81Claude Code +9 - 0.631score
fo-status-viewer
spacedock-dev
First-officer status query/mutate/display surface — the `status` command flag docs, `--set` field docs, canonical captain-facing invocations, the…
SkillBFreshness: B★ 81Claude Code +9 - 0.628score
feedback-rejection-flow
spacedock-dev
First-officer feedback-rejection routing — the correction-round record, reuse-or-fresh routing of findings to the `feedback-to` target, the reviewer re-run…
SkillBFreshness: B★ 81Claude Code +9 - 0.628score
present-gate
spacedock-dev
First-officer gate-presentation rendering — the captain-facing gate-review template and assembly rules, including workflow-owned finding labels.
SkillBFreshness: B★ 81Claude Code +9 - 0.622score
ensign
spacedock-dev
Execute workflow stage work as a dispatched worker.
SkillBFreshness: B★ 81Claude Code +9 - 0.606score
refit
spacedock-dev
This skill should be used when the user asks to "refit a workflow", "upgrade a workflow", "update workflow scaffolding", or wants to bring an existing…
SkillBFreshness: B★ 81Claude Code +9 - 0.606score
debrief
spacedock-dev
This skill should be used when the user asks to "debrief", "record what happened", "session summary", "write a debrief", or wants to capture session activity…
SkillBFreshness: B★ 81Claude Code +9
Signals
- Stars
- 81
- Forks
- 9
- Open issues
- 85
- Last commit (this folder)
- Oct 6, 2026 (24 days ago)
- Last release
- Sep 15, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/spacedock-dev/spacedock
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from spacedock-dev
- 0.676score
first-officer
spacedock-dev
Use when running or resuming a Spacedock workflow, especially to discover a workflow, dispatch packaged workers, manage approval gates, and advance entity…
SkillAFreshness: A★ 81Claude Code +9 - 0.671score
compass
spacedock-dev
Open Spacedock Compass, the local dashboard of what your coding-agent sessions are doing: sessions, subagents, progress and drift.
SkillAFreshness: A★ 81Claude Code +9 - 0.671score
review
spacedock-dev
Get a person's review of an artifact you produced or were handed: a plan, spec, report or other Markdown file.
SkillAFreshness: A★ 81Claude Code +9 - 0.642score
commission
spacedock-dev
This skill should be used when the user asks to "commission a workflow", "create a workflow", "design a workflow", "launch a workflow", or wants to…
SkillAFreshness: A★ 81Claude Code +9 - 0.636score
survey
spacedock-dev
Use when arriving at or returning to a project that already has AI-agent history and you want the lay of the land before doing anything else — "survey this…
SkillBFreshness: B★ 81Claude Code +9 - 0.631score
fo-dispatch-recovery
spacedock-dev
Claude dispatch failure recovery — Break-Glass Manual Dispatch (the manual `Agent()` template) and Context Budget Failure/Dead Ensign Handling (the…
SkillBFreshness: B★ 81Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get fo-gate-lifecycle running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
fo-gate-lifecycle skill. Agent Mart. https://agentmart.dev/skills/spacedock-dev-fo-gate-lifecycle (last updated 2026-10-24)