一键导入
steward-setup
Set up a project steward via interactive interview
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Set up a project steward via interactive interview
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Collaboratively refine a high-level ambition into a set of chunk prompts.
Migrate the project's ACTIVE chunks to the present-tense, intent-owning standard. Audits each chunk's goal against the code it claims to govern; rewrites retrospective framing inline; logs over-claims that need operator triage; historicalizes chunks with no enduring intent. Designed for full-corpus migrations — fans out across many parallel sub-agents at 5 chunks per agent.
Create a new chunk of work and refine its goal. Use when the operator wants to start new intent-bearing work, chunk something, define a piece of work, or break work into a chunk.
Update code references in the current chunk and move both the PLAN.md and the GOAL.md to the ACTIVE state.
Wake an entity by loading its identity, memories, and operational context
Run the sleep cycle for an entity — extract memories and consolidate
| name | steward-setup |
| description | Set up a project steward via interactive interview |
Set up a project steward by interviewing the operator to produce the steward's
Standard Operating Procedure document at docs/trunk/STEWARD.md.
The operator must have already created a swarm via ve board swarm create. The
swarm's private key should be stored in ~/.ve/keys/. Swarm creation is NOT
part of this setup — only the SOP configuration is.
Before starting the interview, check whether ~/.ve/board.toml exists and
contains a default swarm configuration. This lets you pre-fill interview
answers.
cat ~/.ve/board.toml to read the board configurationdefault_swarm key, note the swarm ID[swarms.<id>] section and extract server_url
if presentIf the file does not exist or has no default_swarm, proceed normally — all
interview questions will require manual input and no error should be shown.
Walk through each of the following questions. Explain what each field means and offer sensible defaults where applicable.
Steward name — A human-readable identifier for this steward.
<Project Name> StewardSwarm ID — Which swarm this steward belongs to. Help the operator identify their swarm:
board.toml, present it as the
default and let the operator confirm or overridels ~/.ve/keys/ to list available swarm key filesve board channels --swarm <id> to verify the swarm existsve board swarm create
outputChannel name — The inbound channel the steward will watch for messages.
<project-name>-stewardtool-b-stewardChangelog channel name — Where the steward posts outcome summaries.
<project-name>-changelogtool-b-changelogBehavior mode — How the steward responds to inbound messages. Explain each option and ask the operator to choose:
autonomous: The steward triages messages, acts on them (creates
chunks, investigations, fixes code), and publishes results — all without
human intervention.queue: The steward creates work items (chunks, investigations) for
human review but does not implement them. Results are posted to the
changelog.custom: The steward follows freeform instructions you provide. Choose
this for arbitrary operator-defined behavior.If the operator chooses custom, capture their freeform instructions as
markdown.
Server URL (optional) — If the swarm is hosted on a remote backend
rather than ws://localhost:8787, ask the operator for the server URL and
note it in the SOP prose body so /steward-watch can pass --server.
server_url was detected from the default swarm's config in
board.toml, present it as the default and let the operator confirm or
overridePost-push deploy command (optional) — A shell command to run after
git push completes. Leave blank if this project has no deploy step.
cd workers/my-worker && npm run deploy./scripts/deploy.shAfter collecting all answers, create docs/trunk/STEWARD.md with the following
structure:
---
steward_name: "<name from interview>"
swarm: "<swarm_id>"
channel: "<channel-name>"
changelog_channel: "<changelog-channel-name>"
behavior:
mode: <autonomous|queue|custom>
custom_instructions: <markdown string if custom, null otherwise>
---
# <Steward Name>
<Brief prose summary of the steward's purpose for this project.>
## Behavior
<Describe the steward's behavior when messages arrive. Tailor this to the
chosen mode. For autonomous mode, use the template below as a starting point.
For queue or custom modes, adjust accordingly.>
When the operator chooses autonomous, include a ## Behavior section in the
SOP that describes the full chunk-and-changelog lifecycle. Use this as the
default content (adapt project-specific details):
## Behavior
When a message arrives:
1. **Triage** — Determine whether the message is a bug report, change request,
question, or something else.
2. **Create a FUTURE chunk** — For bug reports and change requests, create a
chunk (`/chunk-create`) as FUTURE. Write only the goal — do NOT plan or
implement. The orchestrator handles planning and implementation.
3. **Commit and inject** — Commit the chunk directory (both GOAL.md and
PLAN.md) and inject it into the orchestrator (`ve orch inject <chunk>`).
Never plan or implement chunks directly in the steward context — always
delegate to the orchestrator. This protects the steward's context window
from implementation noise.
4. **Monitor the orchestrator** — After injection, monitor orchestrator
progress (`ve orch ps`). When a requested chunk completes, publish a
changelog entry. When a chunk is stuck, investigate and resolve it
autonomously (`/orchestrator-investigate`).
5. **Push completed work** — When a chunk finishes in the orchestrator, run
`git push` to publish the merged work to the remote before posting the
changelog entry.
6. **Deploy** (conditional) — If the operator provided a post-push deploy
command during setup, run it now and verify it succeeds. If the deploy
fails, include the error in the changelog entry. If no deploy command
was provided, skip this step.
7. **Publish to changelog** — Write a concise summary of what was done and
publish it to the changelog channel so the requester and any observers can
see the outcome. Publish when:
- A chunk finishes successfully (include what changed)
- A stuck chunk is resolved (include what went wrong and how it was fixed)
- A question is answered
When writing the STEWARD.md: If the operator provided a deploy command in question 7, replace "run it now" in step 6 with the actual command. If the operator left question 7 blank, omit step 6 entirely and renumber step 7 to step 6.
When the operator chooses queue, the behavior section should note that chunks
are created but NOT injected into the orchestrator — they are left as FUTURE
for the operator to review and schedule manually.
## Notes
<Any additional context from the interview, such as server URL, special
handling instructions, or project-specific conventions.>
After writing STEWARD.md, send bootstrap messages to ensure both channels
exist on the swarm before the first watch attempt.
ve board send <channel> "Steward channel bootstrapped." --swarm <swarm_id> [--server <url>]
ve board send <changelog_channel> "Changelog channel bootstrapped." --swarm <swarm_id> [--server <url>]
The --server flag is only needed if the operator provided a non-default server
URL. If either ve board send command fails, surface the error to the
operator — this likely means the swarm doesn't exist or the key is missing.
ve board channels --swarm <swarm_id>Tell the operator:
/steward-watch to start the steward's watch loop/steward-send/steward-changelog