internal/seed/sidecar/skills/mission/SKILL.md
# Mission Scaffold a Phase 3 mission contract, register it in the store, and spawn the worker. This skill turns a conversation about "who does what" into a typed, enforced delegation — the write set is admitted, the evaluator is frozen, rounds are bounded, the event log records every transition. ## Who invokes this Leaders only. Sub-agents cannot spawn other sub-agents (Claude Code constraint), so this skill is a no-op inside a delegation. If you are reading this from inside an `Agent()` call
npx skillsauth add punt-labs/ethos internal/seed/sidecar/skills/missionInstall 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.
Scaffold a Phase 3 mission contract, register it in the store, and spawn the worker. This skill turns a conversation about "who does what" into a typed, enforced delegation — the write set is admitted, the evaluator is frozen, rounds are bounded, the event log records every transition.
Leaders only. Sub-agents cannot spawn other sub-agents (Claude Code
constraint), so this skill is a no-op inside a delegation. If you
are reading this from inside an Agent() call, stop — report back
to your leader and let them invoke the skill themselves.
Invoke when:
Do not invoke for exploratory research, work you intend to do yourself, or epics that need decomposition first.
Before scaffolding, confirm you have a one-paragraph task description, a rough list of files the worker will touch, at least one verifiable success criterion, and a worker handle (or a willingness to pick one). If anything is missing, ask the leader. Do not invent.
Read the team roster via the ethos team MCP tool. If the team store is not configured, ask the leader to name a handle directly.
Match the worker to the task:
bwkrmhmdmdjbkpzadbThe worker and evaluator must be distinct handles and must not
share a role — ethos mission create refuses the contract otherwise
(DES-033). Surface the choice to the leader as confirmable.
Build the contract from conversation context. Every field maps to
the typed mission.Contract schema — no freeform prose, no invented
keys. The strict decoder rejects unknown fields, so a typo in a key
name is a hard error at create time.
Required fields:
leader — your handleworker — the handle from Step 1evaluator.handle — the frozen reviewer (Step 3)inputs — a map; bead, files, and references are optionalwrite_set — repo-relative paths; no absolute paths, no ..
segments, at least one entrysuccess_criteria — at least one verifiable stringbudget.rounds — integer in [1, 10]budget.reflection_after_each — booleanOptional: tools (worker allowlist), context (free-text design
notes), session, repo.
Do NOT populate these fields — the store overwrites them:
mission_id, status, created_at, updated_at, closed_at,
evaluator.pinned_at, evaluator.hash, current_round.
Present the scaffolded YAML to the leader in a fenced block and ask for confirmation. The leader may edit any field. Never submit without confirmation.
The evaluator is the frozen reviewer pinned at create time (DES-033). The hash is computed from the evaluator's personality, writing style, talents, and role assignments at creation. If any of those files change after create, the verifier hook refuses the spawn. The evaluator cannot be changed after create.
Defaults by task type:
djbmdm or bwkrmhmdmConfirm the evaluator with the leader before moving on.
Write the confirmed YAML to a scratch file and run:
ethos mission create --file .tmp/missions/contract.yaml
The command is silent on success in human mode. Capture the
returned mission ID (e.g. m-2026-04-09-001) — use --json on
create, or read it from ethos mission list --json.
The ethos MCP server exposes a mission tool with a create
method that takes the YAML body as a contract string argument.
Either path enforces the same trust boundary.
Common create failures — read the error, fix the contract, retry:
Do not bypass.
Use the Agent tool with subagent_type set to the worker handle
and run_in_background: true. The main session must stay responsive
— a foreground spawn blocks the leader.
The prompt's job is to point the worker at the mission, not to
restate the contract. The worker reads the contract from the store
via ethos mission show <id> as its first action. Phase 3
enforcement fires from there.
Prompt template:
Mission <id> is yours. Read it first: `ethos mission show <id>`.
The contract names the write set, success criteria, and budget.
Your first write must land inside the write set — the store
refuses anything else. After your work for this round, submit a
result artifact: `ethos mission result <id> --file <path>`. See
`ethos mission result --help` for the YAML shape. The mission
will refuse to close until a valid result for the current round
exists. Do not commit, push, or merge — return results to me.
While the worker runs, monitor from the leader session:
ethos mission show <id> — contract, current round, latest result.ethos mission log <id> — append-only event log. Filter with
--event result,close or --since <RFC3339>.ethos mission results <id> — full round-by-round result log.ethos mission reflections <id> — full reflection log.When the worker reports back, read the result artifact and decide:
ethos mission close <id>. The close gate refuses the
transition until a valid result for the current round exists.ethos mission reflect <id> --file <path>, then ethos mission advance <id> to bump the
round counter. The advance gate refuses after a stop or
escalate recommendation.ethos mission close <id> --status failed or
--status escalated.The user says: "We need to add a model field to the Role struct
so generated agents can express a model preference (sonnet vs
opus)." The leader sizes this as a 30-minute Go job for bwk, with
djb evaluating because the change touches identity-adjacent code.
The skill scaffolds the contract:
leader: claude
worker: bwk
evaluator:
handle: djb
inputs:
bead: ethos-9ai.x
context: |
Add a Model field to internal/role/role.go and wire it through
GenerateAgentFiles. Default to "inherit" when empty so
pre-existing roles round-trip without loss.
write_set:
- internal/role/role.go
- internal/role/role_test.go
- internal/hook/generate_agents.go
- internal/hook/generate_agents_test.go
success_criteria:
- Role struct has a Model string field with yaml and json tags
- GenerateAgentFiles emits model in frontmatter when non-empty
- Default is "inherit" when Model is empty
- make check passes
- tests cover model set, empty, and "inherit" cases
budget:
rounds: 2
reflection_after_each: true
The leader confirms. The skill writes it to
.tmp/missions/role-model.yaml and runs:
ethos mission create --file .tmp/missions/role-model.yaml
The store returns m-2026-04-09-001. The skill spawns bwk:
Agent(
subagent_type="bwk",
prompt="Mission m-2026-04-09-001 is yours. Read it first via
`ethos mission show m-2026-04-09-001`. After your work,
submit a result via `ethos mission result
m-2026-04-09-001 --file <path>`. Do not commit — return
results to me.",
run_in_background=true,
)
While bwk works, the leader checks progress:
ethos mission log m-2026-04-09-001 --event create,result
bwk reports back pass. The leader reads the result and closes:
ethos mission results m-2026-04-09-001
ethos mission close m-2026-04-09-001
The log now records create, result, close. The leader writes
the commit, pushes, and opens the PR.
Some missions produce a document rather than code — an integration design, an architecture decision, a protocol specification. These are design missions. The contract shape and workflow differ from code missions in three ways: the write set targets docs, the success criteria require before/after user-visible impact, and the worker often needs to talk to agents in other repos before writing anything.
leader: claude
worker: mdm # or the domain specialist
evaluator:
handle: bwk # someone who reads the design
inputs:
bead: ethos-abc
references:
- docs/existing-design.md # prior art the worker should read
- .punt-labs/ethos/teams/core.yaml # team graph for cross-repo scope
context: |
One paragraph: what the design must decide, what repos are
involved, what constraints exist. Name the agents who own the
other repos — the worker will contact them.
write_set:
- docs/my-design.md # docs, not code
success_criteria:
- Design covers <topic> with concrete API contracts
- Each integration point has a before/after showing user-visible change
- No code changes required in this repo (or: minimal code changes listed)
- make check passes
budget:
rounds: 2
reflection_after_each: true
The write set is typically one or two files under docs/. If the
design requires code changes, list those files too — but a design
mission that grows a large code write set is probably two missions.
Every success criterion that describes an integration point should include a "before/after" requirement: what the user or operator sees today versus what they will see after the design is implemented. This forces the worker to ground the design in observable behavior rather than internal abstractions.
Design missions that span repositories need information from agents who own the other side. The worker should talk to those agents before reading their code — the agent has context (plans, pending changes, constraints) that the code does not.
When biff is available:
/who to see which agents are active across repos./finger @<agent> to check what they are working on./write @<agent> with a specific question: what the integration
point looks like from their side, what constraints they have,
what they plan to change. Include enough context that they can
answer without reading your repo./read. Incorporate their answers
into the design. Attribute cross-repo decisions to the
conversation ("agreed with @bwk via biff").Detecting biff availability:
Biff is an MCP server, not a guaranteed dependency. Before using
biff tools, check whether the tty MCP server is loaded in the
current session. If it is not loaded, or if no agent is active in
the target repo, fall back to reading code directly.
The fallback chain:
/write them anyway (they
will see it when they start), then read their code and docs
for immediate answers.Do not block on biff. If the agent does not respond within the round's working time, proceed with code-reading and mark the decision as unconfirmed. A design with an unconfirmed decision is better than no design.
Design missions default to mdm for docs and CLI-facing designs,
or the domain specialist when the design is deep in their area
(e.g. djb for a security protocol, kpz for an inference
pipeline). The evaluator should be someone who will consume the
design — the implementer, not another writer.
inputs.ticket only.ethos mission create --help, show --help, log --help — CLI
surfaces with JSON payload shapes documentedDESIGN.md DES-031 through DES-037 — runtime designinternal/mission/mission.go — the Contract struct and YAML
tags (schema source of truth)data-ai
# Create Identity from Project Context Create an ethos identity by fine-tuning starter content from your existing project files. 90% batteries-included defaults, 10% LLM-inferred personalization from what you already have. ## When to Use Run this when you've just installed ethos and want to create your first identity without starting from scratch. The skill reads your project context (CLAUDE.md, .claude/agents/, git config) and proposes identity attributes that match your existing preferences
tools
# Baseline Operations Operational discipline for sub-agents. This skill replaces the operational guidance lost when Claude Code's default system prompt is replaced by an agent definition. ## Tool Usage Use dedicated tools instead of shell equivalents: - **Read** files, never `cat`, `head`, `tail`, or `sed` - **Grep** for content search, never `grep` or `rg` via Bash - **Glob** for file discovery, never `find` or `ls` via Bash - **Edit** for modifications, never `sed` or `awk` via Bash - **Wr
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.