Agent skill

Captain Hold Lifecycle

by kunchenguid in kunchenguid/firstmate

Agent-only policy for completing investigations and visual reviews without losing unresolved captain calls, and for closing what the captain owns with his actual words.

MITAuto-check passed

Install Captain Hold Lifecycle

skills CLI
$ npx skills add kunchenguid/firstmate --skill captain-hold-lifecycle -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kunchenguid/firstmate captain-hold-lifecycle --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kunchenguid/firstmate.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/captain-hold-lifecycle .claude/skills/captain-hold-lifecycle && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
captain-hold-lifecycle
GitHub stars
7.7k
Token cost
~2.4k tokens
SKILL.md length
1,393 words
Files
1
Skills in repo
29
Repo updated
First seen
Licence
MIT

At a glance

Agent-only policy for completing investigations and visual reviews without losing unresolved captain calls, and for closing what the captain owns with his actual words.

  • Works in 7 steps: Read the complete investigation result… → Inventory only genuine unresolved… → Hold that task - or create one… → …
  • SKILL.md covers Policy and Operating sequence
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Captain Hold Lifecycle is an agent skill from kunchenguid/firstmate. Agent-only policy for completing investigations and visual reviews without losing unresolved captain calls, and for closing what the captain owns with his actual words. Load before treating an investigation, scout report, structured review, or Lavish review as complete, before ending a visual review that exposed a captain decision, when recording or routing the captain's answer, and on any RECORD DIVERGENCE line the wake drain prints.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Talk to one agent. Ship with a crew. The licence is MIT.

Example prompts

  • “/captain-hold-lifecycle”

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Read the complete investigation result and complete the visual review before declaring either complete.
  2. Inventory only genuine unresolved choices that require the captain, and find the task each one gates.
  3. Hold that task - or create one captain-held task for the review's open questions - with a concise reason carrying the question and options.
  4. Run complete with the full captain-held inventory for that review pass.
  5. Relay the choices to the captain as decisions from Bearings' Captain's Call section under AGENTS.md section 9; do not use the word hold in…
  6. Close each call only through answer (or a channel that feeds answers), close a board-requested moot call through evidence-backed reconcile…
  7. Confirm Bearings reflects the outcome: answered or reconciled-moot calls leave Captain's Call, released work resumes, active…

What it can do on your machine

Read from SKILL.md and the folder at commit 19fcbbd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Captain Hold Lifecycle loads about 2.4k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,393 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~115
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from kunchenguid/firstmate at commit 19fcbbd, republished under its MIT licence (© kunchenguid). 1,393 words, ~2,427 tokens.

Download SKILL.mdSave it as .claude/skills/captain-hold-lifecycle/SKILL.md (or your agent's skills folder).
name
captain-hold-lifecycle
description
Agent-only policy for completing investigations and visual reviews without losing unresolved captain calls, and for closing what the captain owns with his actual words. Load before treating an investigation, scout report, structured review, or Lavish review as complete, before ending a visual review that exposed a captain decision, when recording or routing the captain's answer, and on any RECORD DIVERGENCE line the wake drain prints.
user-invocable
false
metadata.internal
true

Captain-hold lifecycle

A decision is not a separate thing: it is simply a task waiting on the captain. The one primitive is an ordinary backlog task held for the captain through bin/fm-captain-hold.sh hold; its identity is the task id, and that wrapper owns the deterministic mechanics this policy relies on. The agent performs the semantic inventory because scripts must not infer captain calls from report prose, visual-review artifacts, terminal output, or chat.

Policy

Every unresolved question that belongs to the captain and is discovered while producing, reading, presenting, or ending an investigation or visual review must be carried by a captain-held task in the authoritative backlog of the home that owns the originating work before that work or review may be treated as complete. For a Lavish board-backed handoff, pass the reply through bin/fm-procevent-lavish.sh arm --agent-reply-file before appending the status; the adapter owns version-specific acceptance ordering. Prefer holding the work item the question gates over minting a new row; create a new task only when no work item exists to hold. The originating investigation or review is never its own inventory entry, so hold a separate task for the call and pass --origin <origin-id> so complete can check it. Put the question and its options in the hold reason, and keep one held task per genuine gate: a multi-question review is one held task pointing at its report, not a row per question. Represent that task with exactly one board card that consolidates its questions and options; never fan one task id into duplicate same-key cards. Register or re-hold through bin/fm-captain-hold.sh hold, which is idempotent per task id. After inventorying the whole report and review surface, run bin/fm-captain-hold.sh complete with every captain-held task id, or with --none only when the reviewed surface leaves nothing waiting on the captain. A completed investigation and an ended visual review use this same owner and completion command; a visual tool, including Lavish, never owns a parallel completion policy. Run the command in the originating work's authoritative FM_HOME; secondmate-owned work registers in that secondmate home's backlog, and a question already held anywhere is never re-registered as a second row. Do not close a captain-held task merely because the originating investigation completed, its report was archived, its visual review ended, or its task was torn down. Holding the work item the question gates is safe for exactly that reason: cleanup keeps such a row open with the finished work's deliverable recorded and returns it to the queue, so it still reads as the captain's own call. Only answer with the captain's words or an evidence-backed reconcile close may resolve it.

Never close anything the captain owns without recording what he actually said: bin/fm-captain-hold.sh answer writes his exact words into the task and closes a question-shaped call, while --release frees a captain-gated work item to proceed. A merge approval uses that existing release path because approval permits the merge to proceed; cleanup closes the work only after it lands and records what shipped. Closing a held row at merge approval instead records completion before landing, so the backlog claims completion before the work actually ships. When the answer changes what a task must build, follow AGENTS.md section 7's mid-task ask rule to preserve the captain's words in the brief and steer the worker. When the captain says "later", that is an answer too: re-hold with bin/fm-captain-hold.sh hold <id> --reason "<reason>" --until <date> so the item leaves the live Captain's Call and resurfaces on its date, instead of leaving a live-looking card or fabricating a closure. "A keyed answer resolves its matching captain-held task" is one capability with one owner, bin/fm-captain-hold.sh answers, and every channel that carries a captain answer feeds it the same task id and answer; a channel never maps keys to tasks, records a decision, or resolves anything itself. Chat already feeds it through bin/fm-send.sh --resolve-key, and a captured-answer source feeds it once bound with bin/fm-captain-hold.sh bind <source-id>; bind before arming the source, and key each structured question by the held task's id. An unbound source and a key that names no captain-held task both simply feed nothing: the answer is still captured and firstmate is still woken, and closing falls back to the direct command above. One answer value is reserved and closes nothing: reconcile means "go re-check reality", never "the captain answered", so the shared intake refuses it from every channel and creates nothing. A bound captured source uses a separate seam: its adapter omits reconcile from keyed answers and emits the selected task id through reconciles, the generic runner feeds that into reconcile-requests, and the intake verifies the source binding and the local captain-held task before filing the durable board request. A remote-secondmate card whose task is absent from the main backlog therefore remains announced but cannot create a main-home request; owner-aware request and mutation routing to the authoritative secondmate home is a separate follow-up. That board-created request is yours to work off in the turn that receives it: bin/fm-captain-hold.sh reconcile close <id> --evidence-file <path> records the EVIDENCE and closes a moot call, while reconcile note <id> --note-file <path> annotates a genuinely active call and leaves it held. Both outcomes refuse unless that task still has the pending request created by the captain's board selection, so neither is a standalone way to mutate a captain call. A normal captain answer also retires any pending request because the call is settled, including close, release, and idempotent replay paths. A retirement failure makes the command fail without reversing the already-durable answer, close, or note, and reconcile list keeps the surviving request visible for retry. reconcile list names every request still outstanding. Never use answer for an evidence-only moot call: answer records what the captain said, while reconcile close records verified evidence. A captain-held task closed outside this owner leaves no durable answer, so the completion gate keeps failing until answer records the decision the captain actually gave. Resolved findings, recommendations that need no captain choice, and prose that merely sounds decision-like do not create held tasks. Bearings reads the resulting structured state and must never compensate by scraping historical reports, visual-review artifacts, terminal output, chat, or other prose.

Show full SKILL.md (369 more words)Show less

A captain call can be written down twice - as the keyed status decision the fold reads, and as the backlog task held for the captain - and those two records can disagree without either surface saying so. bin/fm-captain-hold.sh diverged reports that contradiction and the wake drain prints it as RECORD DIVERGENCE; it closes nothing, because a captain call closed wrongly leaves review entirely, which is worse than the noise. Read such a line as "these two records disagree", never as "the captain ruled and someone forgot to file it": a call can dissolve because its premise was false, or turn out to have been a question of fact rather than the captain's to answer. Reconcile it with what actually happened - answer when the captain's own words exist to record, and a fresh needs-decision line re-opening the status decision when that resolution was not the captain's word. The absence of a routed work item is not a divergence and the guard never requires one: when the decision IS the deliverable there is nothing to route.

Operating sequence

  1. Read the complete investigation result and complete the visual review before declaring either complete.
  2. Inventory only genuine unresolved choices that require the captain, and find the task each one gates.
  3. Hold that task - or create one captain-held task for the review's open questions - with a concise reason carrying the question and options.
  4. Run complete with the full captain-held inventory for that review pass.
  5. Relay the choices to the captain as decisions from Bearings' Captain's Call section under AGENTS.md section 9; do not use the word hold in captain chat.
  6. Close each call only through answer (or a channel that feeds answers), close a board-requested moot call through evidence-backed reconcile close, record a still-active reconciliation through reconcile note, use --until when the captain defers it, or confirm a channel already closed it.
  7. Confirm Bearings reflects the outcome: answered or reconciled-moot calls leave Captain's Call, released work resumes, active reconciliations remain held, and deferred calls sit in Charted Next with their date.

bin/fm-captain-hold.sh --help owns command syntax, close modes, legacy-identity compatibility, completion attestation, retry behavior, and close ordering. docs/captain-hold-lifecycle.md records the mechanism and regression evidence without restating this policy.

© kunchenguid, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/captain-hold-lifecycle of kunchenguid/firstmate.

Open the folder on GitHubat commit 19fcbbd

Compare with similar skills

Captain Hold Lifecycle next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Captain Hold Lifecycle compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Captain Hold Lifecycle this skillkunchenguid/firstmate7.7k—~2.4kAutomated safety check: PassMIT
Implementing Policy As Code With Open Policy Agentmukul975/Anthropic-Cybersecurity-Skills34k—~2.6kAutomated safety check: NotesApache-2.0
Root Cause Investigationgarrytan/gstack136k—~12kAutomated safety check: NotesMIT
Policy Acknowledgementsickn33/agentic-awesome-skills47k1 repos~3.4kAutomated safety check: PassMIT
Privacy Policythedaviddias/Front-End-Checklist74k—~617Automated safety check: PassMIT
Editorial Policythedaviddias/Front-End-Checklist74k—~763Automated safety check: PassMIT

Similar skills

  • Implementing Policy As Code With Open Policy Agent

    mukul975/Anthropic-Cybersecurity-Skills

    Implements policy-as-code enforcement with Open Policy Agent (OPA) and Gatekeeper for Kubernetes and CI/CD pipelines, covering writing Rego policies, deploying OPA Gatekeeper as a Kubernetes…

    34k GitHub stars~2.6k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check: notes
  • Debugs in four phases (investigate, analyze, hypothesize, implement) under one rule: no fix is made until the root cause is found.

    136k GitHub stars~12k tokensUpdated today
    DevelopmentAuto-check: notes
  • Policy Acknowledgement

    sickn33/agentic-awesome-skills

    Policy acknowledgement register: employee, policy and version, sent and due dates, acknowledged date and flag, days overdue, reminder sent and status.

    47k GitHub starsUsed in 1 repo~3.4k tokens
    Auto-check passed
  • Privacy Policy

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing whether a website has a visible, accessible privacy policy link, particularly in the footer navigation.

    74k GitHub stars~617 tokensUpdated 2 days ago
    Legal & ComplianceAuto-check passed
  • Editorial Policy

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing a blog, news site, or YMYL content site for trust signals, drafting editorial policy page content, or evaluating whether a site meets Google's quality rater…

    74k GitHub stars~763 tokensUpdated 2 days ago
    Auto-check passed
  • Policy Drafting

    anthropics/claude-for-legal

    Official

    Draft an employment policy with state supplements where law differs across the jurisdictional footprint.

    9.6k GitHub starsUsed in 2 repos~1.4k tokens
    Legal & ComplianceAuto-check passed

More from kunchenguid/firstmate

All 29 skills in this repo
  • Project Management

    kunchenguid/firstmate

    Agent-only procedure for Firstmate project management. An agent skill from kunchenguid/firstmate.

    7.7k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Stow

    kunchenguid/firstmate

    Sweep the current conversation for durable knowledge - user preferences, project facts, operational gotchas, standing decisions, and unfinished next steps - and file each through explicit…

    7.7k GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Updatefirstmate

    kunchenguid/firstmate

    Self-update a running firstmate and its secondmates to the latest from origin.

    7.7k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Harness Adapters

    kunchenguid/firstmate

    Agent-only reference for firstmate harness operations. An agent skill from kunchenguid/firstmate.

    7.7k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Secondmate Provisioning

    kunchenguid/firstmate

    Agent-only reference for persistent secondmate setup and retirement.

    7.7k GitHub stars~8.1k tokensUpdated today
    Auto-check passed
  • Stow

    kunchenguid/firstmate

    Sweep the current session for uncaptured durable knowledge, file it to disk, persist the open work records this session knows are unfiled or now wrong, and curate the home's tiered, decaying startup…

    7.7k GitHub stars~9k tokensUpdated today
    Auto-check passed

Questions about Captain Hold Lifecycle

What does Captain Hold Lifecycle do?

Agent-only policy for completing investigations and visual reviews without losing unresolved captain calls, and for closing what the captain owns with his actual words. Captain Hold Lifecycle is an agent skill from kunchenguid/firstmate. Agent-only policy for completing investigations and visual reviews without losing unresolved captain calls, and for closing what the captain owns with his actual words.

How do I install Captain Hold Lifecycle in Claude Code?

Run `npx skills add kunchenguid/firstmate --skill captain-hold-lifecycle -a claude-code`. Or copy the skill folder (.agents/skills/captain-hold-lifecycle in kunchenguid/firstmate) into .claude/skills/captain-hold-lifecycle in your project. Claude Code loads it when a task matches its description.

How do I install Captain Hold Lifecycle in Codex?

Run `npx skills add kunchenguid/firstmate --skill captain-hold-lifecycle -a codex`. Or copy the skill folder (.agents/skills/captain-hold-lifecycle in kunchenguid/firstmate) into .agents/skills/captain-hold-lifecycle in your project. Codex loads it when a task matches its description.

Can I use Captain Hold Lifecycle in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kunchenguid/firstmate --skill captain-hold-lifecycle -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/captain-hold-lifecycle, .gemini/skills/captain-hold-lifecycle, .github/skills/captain-hold-lifecycle and .opencode/skills/captain-hold-lifecycle in your project.

What does Captain Hold Lifecycle need to run?

SKILL.md names no scripts, command-line tools or credentials: Captain Hold Lifecycle is instructions for the agent only.

Does Captain Hold Lifecycle access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Captain Hold Lifecycle safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Captain Hold Lifecycle use?

Captain Hold Lifecycle is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Captain Hold Lifecycle use?

About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Captain Hold Lifecycle?

Skills that share tags, products or a category with Captain Hold Lifecycle: Implementing Policy As Code With Open Policy Agent (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Root Cause Investigation (garrytan/gstack, 136k stars), Policy Acknowledgement (sickn33/agentic-awesome-skills, 47k stars) and Privacy Policy (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Captain Hold Lifecycle?

kunchenguid (a GitHub user) maintains it in kunchenguid/firstmate, which has 7,707 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 2026.

Source: kunchenguid/firstmate on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.