一键导入
create-agent
Use when asked to create, set up, or spin up a new agent. Covers the full lifecycle from folder creation to first message.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when asked to create, set up, or spin up a new agent. Covers the full lifecycle from folder creation to first message.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Contribute durable knowledge to the shared llm-wiki second brain. Use when a session produces knowledge that outlives the current project — a concept finally understood, a reusable architecture decision, a cross-project lesson, a comparison/evaluation of tools, or research findings worth keeping. Also use when the user says "add this to the wiki", "second brain", or "llm-wiki". Do NOT use for project-specific operational facts (those go to auto memory) or in-flight task state (that goes to .claude/active-task.md).
Search past Claude Code sessions across all projects on this machine. Use when the user references prior work ("like we did last week", "the bug we fixed", "what did we decide about X"), when context was compacted and details are missing, when resuming a project after time away, or before re-deriving a solution that may already exist in a past session. Keyword FTS5 search over full transcripts including tool output.
Use when asked to create, update, delete, or reconcile a calendar invite. Covers the draft-first approval flow, attendee lookup, timezone rules, and duplicate reconciliation.
Use when asked to write, reply to, forward, or send an email on the principal's behalf. Covers the draft-first approval flow, voice rules, and account selection.
| name | create-agent |
| description | Use when asked to create, set up, or spin up a new agent. Covers the full lifecycle from folder creation to first message. |
Follow these steps in order. Do NOT skip steps. Ask the user for any information you don't have.
Before creating anything, confirm these with the user:
Create PROJECT_ROOT/agents/<name>/ with:
CLAUDE.md - agent identity and scopememory/MEMORY.md - empty memory indexdocs/ - reference materialroutines/ - recurring tasks.claude/settings.local.json - agent-specific settings.mcp.json - MCP server configurationUse this template:
# <Name> - <Role>
You are <Name>, a <role>. Persistent agent on the host machine, reachable via Slack.
## Personality
<Personality description if applicable.>
## Scope
- <Bullet list of responsibilities>
## Security Boundaries
- Never execute destructive operations without confirmation.
- Never proactively share credentials, tokens, or secrets in Slack.
- <Role-specific boundaries>
## Tasks
<Task tracking instructions per your setup.>
## Resources
- Docs: PROJECT_ROOT/agents/<name>/docs/
{
"skipDangerousModePermissionPrompt": true,
"autoMemoryDirectory": "PROJECT_ROOT/agents/<name>/memory",
"cleanupPeriodDays": 3650,
"enabledPlugins": {},
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "bun PROJECT_ROOT/hooks/channel-reply-reminder.ts"
}
]
}
],
"SessionStart": [
{
"matcher": "compact",
"hooks": [
{
"type": "command",
"command": "bun PROJECT_ROOT/hooks/reclaude-steer.ts post-compact",
"timeout": 30
}
]
}
]
}
}
Replace PROJECT_ROOT with the actual installation path.
cleanupPeriodDays: 3650 keeps Claude Code from deleting old session transcripts for 10 years, so the fleet recall tool can full-text search the agent's whole history.matcher: "compact") hook injects post-compaction recovery guidance (reclaude's reclaude-steer.ts). There is intentionally no PreCompact hook — this harness build's hook schema has no PreCompact variant for additionalContext, so a PreCompact steering hook only fails validation. Continuity is carried by .claude/active-task.md + this recovery hook.Tip:
fleet:create_agent(which runsmcp/fleet/scripts/create-agent.sh) writes this exactsettings.local.json, both reclaude skills (Step 4b), and the.mcp.jsonautomatically. These manual steps are the fallback / reference for what that script produces.
Every agent gets the two reclaude skills. recall is a thin pointer to the fleet recall tool (no substitution). llm-wiki drives the shared second-brain vault and needs the vault path substituted in:
mkdir -p PROJECT_ROOT/agents/<name>/.claude/skills/recall \
PROJECT_ROOT/agents/<name>/.claude/skills/llm-wiki
cp PROJECT_ROOT/skills/recall/SKILL.md \
PROJECT_ROOT/agents/<name>/.claude/skills/recall/SKILL.md
sed "s|{{VAULT_PATH}}|PROJECT_ROOT/llm-wiki|g" \
PROJECT_ROOT/skills/llm-wiki/SKILL.md \
> PROJECT_ROOT/agents/<name>/.claude/skills/llm-wiki/SKILL.md
Replace PROJECT_ROOT and <name> with the actual values.
Always include slack and fleet. Add others based on requirements.
{
"mcpServers": {
"slack": {
"command": "bun",
"args": ["run", "--cwd", "PROJECT_ROOT/mcp/slack-channel", "--shell=bun", "--silent", "start"],
"env": {
"SLACK_STATE_DIR": "~/.claude/channels/slack-<name>"
}
},
"fleet": {
"command": "bun",
"args": ["run", "--cwd", "PROJECT_ROOT/mcp/fleet", "--shell=bun", "--silent", "start"]
}
}
}
Replace PROJECT_ROOT with the actual installation path.
Show the user this JSON manifest to create at https://api.slack.com/apps:
{
"display_information": {
"name": "<Name>",
"description": "<Role>",
"background_color": "#2c2d30"
},
"features": {
"app_home": { "home_tab_enabled": false, "messages_tab_enabled": true, "messages_tab_read_only_enabled": false },
"bot_user": { "display_name": "<Name>", "always_online": true }
},
"oauth_config": {
"scopes": {
"bot": ["chat:write", "reactions:read", "reactions:write", "files:read", "files:write", "users:read", "channels:history", "groups:history", "im:history", "mpim:history"]
}
},
"settings": {
"event_subscriptions": { "bot_events": ["message.channels", "message.groups", "message.im", "message.mpim", "reaction_added"] },
"interactivity": { "is_enabled": false },
"org_deploy_enabled": false,
"socket_mode_enabled": true,
"token_rotation_enabled": false
}
}
Wait for the user to create the app and provide:
xoxb-...)xapp-...) with connections:write scopeOnce the user provides the tokens:
~/.claude/channels/slack-<name>/.env:
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
access.json:
{
"dmPolicy": "allowlist",
"allowFromUsers": ["<user-slack-id>"],
"channels": ["<channel-ids>"],
"ackReaction": "eyes"
}
allowFromUsers to the Slack user IDs of principals (admins/owners)channels to the Slack channel IDs the agent should listen toAdd the new agent to the Active Agents table in PROJECT_ROOT/CLAUDE.md.
fleet:restart_agent(<name>, ["slack"])
Or with Telegram: ["slack", "telegram"]
If the agent has any routine files, run fleet:sync_routines.
Ask the user to DM the new bot on Slack. It should react with the ack emoji and respond.