/manage
Create, update, or delete agents, skills, and rules; update or delete hooks (hook creation not yet implemented — edit `hooks/<name>.js` directly). Full cross-reference propagation. Trivial edits (typos, small fixes ≤10 words) applied inline without agent; `.md` content-edits
Claude Code
$ npx -y skills add Borda/AI-Rig --skill manage --agent claude-code
Codex
$ npx skills add Borda/AI-Rig --skill manage -a codex -y
Cursor
$ npx skills add Borda/AI-Rig --skill manage -a cursor -y
Gemini CLI
$ npx skills add Borda/AI-Rig --skill manage -a gemini-cli -y
GitHub Copilot
$ npx skills add Borda/AI-Rig --skill manage -a github-copilot -y
OpenCode
$ npx skills add Borda/AI-Rig --skill manage -a opencode -y
Windsurf
$ npx skills add Borda/AI-Rig --skill manage -a windsurf -y
SKILL.md
manage.SKILL.mdname: manage
description: 'Create, update, or delete agents, skills, and rules; content-edit or delete hooks (hook creation and rename not implemented). Full cross-reference propagation. Trivial Markdown edits (typos, small fixes ≤10 words) applied inline without agent; agent/skill Markdown content-edits delegated to foundry:curator; hook JavaScript edits always delegated to foundry:sw-engineer; large cross-ref fan-outs (> 3 files) also delegate. Use --local for plugin-source Markdown content-edits. The parent orchestrates README, audit, calibration, and the final report. Also manages settings.json permissions atomically with permissions-guide.md. NOT for: validation/quality audit of existing agents/skills (use /foundry:audit); implementing application source code changes (use develop:feature or develop:fix — requires `develop` plugin).'
argument-hint: create <agent|skill|rule> <name> "desc" | update <name> [new-name|"change"|spec.md] [--local] | delete <name> | add perm <rule> "desc" "use-case" | remove perm <rule>
effort: medium
disable-model-invocation: true
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Agent, TaskList, TaskCreate, TaskUpdate, AskUserQuestion
> **Note:** `disable-model-invocation: true` — `/foundry:manage` user-invoked only, no `Skill()` chaining from orchestrators. When suggesting `/foundry:manage` as follow-up, invoking skill must present as user-run command, not auto step.
<objective>
Manage lifecycle of agents, skills, rules, hooks in `.claude/`; plugin-source Markdown content-edits with `--local`. Handles creation with rich domain content, atomic renames with cross-ref propagation, content editing (routed by file type — Step 4), clean deletion with broken-ref cleanup.
</objective>
<inputs>
- **$ARGUMENTS**: required, one of:
- `create agent <name> "description"` — create new agent with generated domain content
- `create skill <name> "description"` — create new skill with workflow scaffold
- `create rule <name> "description"` — create new rule file with frontmatter and sections
- `update <name> <new-name>` — rename; type auto-detected from disk
- `update <name> "change description"` — content-edit (routing: Step 4)
- `update <name> <spec-file.md>` — content-edit from spec file (routing: Step 4)
- `delete <name>` — delete; type auto-detected from disk (agents, skills, rules, hooks); asks user if ambiguous
- `add perm <rule> "description" "use case"` — add permission to settings.json allow list and permissions-guide.md
- `remove perm <rule>` — remove permission from settings.json allow list and permissions-guide.md
- Names must be **kebab-case** (lowercase, hyphens only)
- Descriptions must be quoted when containing spaces
- Permission rules use Claude Code format: `WebSearch`, `Bash(cmd:*)`, `WebFetch(domain:example.com)`
- `--skip-audit` — optional flag: skip Step 9 `/foundry:audit` validation (use inside `audit fix` loop to avoid recursion)
- `--local` — resolve plugin-source agents, skills or rules for `update` content-edit only; use a quoted directive or spec file. Creation, rename, deletion, hooks and permission operations reject this flag. `foundry:curator` owns source agent/skill Markdown edits; the parent owns rule Markdown edits. The installed cache is never an edit target.
- **Spec-file paths must be quoted** — `update <name> <spec-file.md>` requires spec path quoted if it contains any whitespace (e.g. `update my-agent "docs/My Spec.md"`); unquoted paths with spaces split into multiple arguments, trigger argument-shape mismatch. Recommended: keep spec filenames free of spaces.
**Update/delete mode** — name looked up across agents, skills, rules and hooks automatically:
- One match on disk → proceed with that type
- Multiple matches → use the single type-selection `AskUserQuestion` in Step 1
- No match → report error and stop
**Update second-argument discrimination**:
- Two bare kebab-case args (second arg no spaces, no `.md` extension) → **rename mode**, confirmed interactively before any write (Step 1 rename confirmation gate) — an unquoted change directive such as `update my-agent add-error-handling` has this exact shape and would otherwise delete `my-agent`
- One name + quoted string → **content-edit mode** (routing: Step 4)
- One name + path ending in `.md` → **content-edit mode** (routing: Step 4)
**Examples:**
- `/foundry:manage create agent task-planner "Planning specialist for decomposing epics into actionable tasks"`
- `/foundry:manage update my-agent "add a section on error handling patterns"`
- `/foundry:manage update optimize docs/specs/YYYY-MM-DD-<spec-name>.md`
- `/foundry:manage delete old-agent-name`
- `/foundry:manage add perm "Bash(jq:*)" "Parse and filter JSON" "Extract fields from REST API responses"`
</inputs>
<constants>
- AGENTS_DIR: `.claude/agents`
- SKILLS_DIR: `.claude/skills`
- RULES_DIR: `.claude/rules`
- HOOKS_DIR: `.claude/hooks`
- AVAILABLE_COLORS: red, blue, green, yellow, purple, orange, pink, cyan
- AGENT_WATCH_DIR: `.temp/manage` · deadlines: `web-explorer` 300 s · `sw-engineer` 900 s · `curator` 900 s
Every spawn in this skill (Step 4 mode files, Step 5 cross-ref curator, Step 9 targeted curator, challenger gate) follows `_shared/agent-spawn-protocol.md` §Deadlines. Spawns here are sequential, one agent in flight at a time, so every spawn response **overwrites** `.temp/manage/agent-watch-manage.tsv` with that one agent's row (`<name>\t<deliverable or ->\t<deadline>`) via the Write tool — never a waiting tool (`ScheduleWakeup`, `ListAgents`, `Monitor`), probe, or sleep. On its completion notification run the check block once, before reading its output:
PLUGIN_ROOT=$(python "${CLAUDE_PLUGIN_ROOT}/bin/resolve_plugin_root.py" --plugin-name foundry) || exit $?; export PLUGIN_ROOT
python "$PLUGIN_ROOT/bin/agent_watch.py" --state-dir ".temp/manage" # timeout: 5000`done` → continue · notification arrived but row not `done` (deliverable empty/missing, o
Read more
name: manage description: 'Create, update, or delete agents, skills, and rules; content-edit or delete hooks (hook creation and rename not implemented). Full cross-reference propagation. Trivial Markdown edits (typos, small fixes ≤10 words) applied inline without agent; agent/skill Markdown content-edits delegated to foundry:curator; hook JavaScript edits always delegated to foundry:sw-engineer; large cross-ref fan-outs (> 3 files) also delegate. Use --local for plugin-source Markdown content-edits. The parent orchestrates README, audit, calibration, and the final report. Also manages settings.json permissions atomically with permissions-guide.md. NOT for: validation/quality audit of existing agents/skills (use /foundry:audit); implementing application source code changes (use develop:feature or develop:fix — requires `develop` plugin).' argument-hint: create <agent|skill|rule> <name> "desc" | update <name> [new-name|"change"|spec.md] [--local] | delete <name> | add perm <rule> "desc" "use-case" | remove perm <rule> effort: medium disable-model-invocation: true allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Agent, TaskList, TaskCreate, TaskUpdate, AskUserQuestion
> **Note:** `disable-model-invocation: true` — `/foundry:manage` user-invoked only, no `Skill()` chaining from orchestrators. When suggesting `/foundry:manage` as follow-up, invoking skill must present as user-run command, not auto step.
<objective>
Manage lifecycle of agents, skills, rules, hooks in `.claude/`; plugin-source Markdown content-edits with `--local`. Handles creation with rich domain content, atomic renames with cross-ref propagation, content editing (routed by file type — Step 4), clean deletion with broken-ref cleanup.
</objective>
<inputs>
- **$ARGUMENTS**: required, one of:
- `create agent <name> "description"` — create new agent with generated domain content
- `create skill <name> "description"` — create new skill with workflow scaffold
- `create rule <name> "description"` — create new rule file with frontmatter and sections
- `update <name> <new-name>` — rename; type auto-detected from disk
- `update <name> "change description"` — content-edit (routing: Step 4)
- `update <name> <spec-file.md>` — content-edit from spec file (routing: Step 4)
- `delete <name>` — delete; type auto-detected from disk (agents, skills, rules, hooks); asks user if ambiguous
- `add perm <rule> "description" "use case"` — add permission to settings.json allow list and permissions-guide.md
- `remove perm <rule>` — remove permission from settings.json allow list and permissions-guide.md
- Names must be **kebab-case** (lowercase, hyphens only)
- Descriptions must be quoted when containing spaces
- Permission rules use Claude Code format: `WebSearch`, `Bash(cmd:*)`, `WebFetch(domain:example.com)`
- `--skip-audit` — optional flag: skip Step 9 `/foundry:audit` validation (use inside `audit fix` loop to avoid recursion)
- `--local` — resolve plugin-source agents, skills or rules for `update` content-edit only; use a quoted directive or spec file. Creation, rename, deletion, hooks and permission operations reject this flag. `foundry:curator` owns source agent/skill Markdown edits; the parent owns rule Markdown edits. The installed cache is never an edit target.
- **Spec-file paths must be quoted** — `update <name> <spec-file.md>` requires spec path quoted if it contains any whitespace (e.g. `update my-agent "docs/My Spec.md"`); unquoted paths with spaces split into multiple arguments, trigger argument-shape mismatch. Recommended: keep spec filenames free of spaces.
**Update/delete mode** — name looked up across agents, skills, rules and hooks automatically:
- One match on disk → proceed with that type
- Multiple matches → use the single type-selection `AskUserQuestion` in Step 1
- No match → report error and stop
**Update second-argument discrimination**:
- Two bare kebab-case args (second arg no spaces, no `.md` extension) → **rename mode**, confirmed interactively before any write (Step 1 rename confirmation gate) — an unquoted change directive such as `update my-agent add-error-handling` has this exact shape and would otherwise delete `my-agent`
- One name + quoted string → **content-edit mode** (routing: Step 4)
- One name + path ending in `.md` → **content-edit mode** (routing: Step 4)
**Examples:**
- `/foundry:manage create agent task-planner "Planning specialist for decomposing epics into actionable tasks"`
- `/foundry:manage update my-agent "add a section on error handling patterns"`
- `/foundry:manage update optimize docs/specs/YYYY-MM-DD-<spec-name>.md`
- `/foundry:manage delete old-agent-name`
- `/foundry:manage add perm "Bash(jq:*)" "Parse and filter JSON" "Extract fields from REST API responses"`
</inputs>
<constants>
- AGENTS_DIR: `.claude/agents`
- SKILLS_DIR: `.claude/skills`
- RULES_DIR: `.claude/rules`
- HOOKS_DIR: `.claude/hooks`
- AVAILABLE_COLORS: red, blue, green, yellow, purple, orange, pink, cyan
- AGENT_WATCH_DIR: `.temp/manage` · deadlines: `web-explorer` 300 s · `sw-engineer` 900 s · `curator` 900 s
Every spawn in this skill (Step 4 mode files, Step 5 cross-ref curator, Step 9 targeted curator, challenger gate) follows `_shared/agent-spawn-protocol.md` §Deadlines. Spawns here are sequential, one agent in flight at a time, so every spawn response **overwrites** `.temp/manage/agent-watch-manage.tsv` with that one agent's row (`<name>\t<deliverable or ->\t<deadline>`) via the Write tool — never a waiting tool (`ScheduleWakeup`, `ListAgents`, `Monitor`), probe, or sleep. On its completion notification run the check block once, before reading its output:
PLUGIN_ROOT=$(python "${CLAUDE_PLUGIN_ROOT}/bin/resolve_plugin_root.py" --plugin-name foundry) || exit $?; export PLUGIN_ROOT
python "$PLUGIN_ROOT/bin/agent_watch.py" --state-dir ".temp/manage" # timeout: 5000`done` → continue · notification arrived but row not `done` (deliverable empty/missing, o
Practical agent workflows for Python, ML, and open-source maintenance. AI-Rig turns recurring work—scoping a change, reproducing a bug, reviewing a pull request, running an experiment, or checking release readiness—into explicit workflows with specialist
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about manage.
- Which coding agents can use manage?
- manage installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

