packages/extension-agent/resources/skills/sub-agent-creator/SKILL.md
Create, edit, convert, or audit ChatLuna sub-agent markdown files. Use when adding a new sub-agent, refining a sub-agent prompt, choosing a sub-agent's goal and output contract, restricting tools, skills, MCP, or computer permissions, pinning or omitting a model, setting maxTurns, placing agents under local `data/chatluna/agents`, writing them into a remote sandbox before `agentcli sync`, or converting Claude or OpenCode agent files into ChatLuna-compatible sub-agents.
npx skillsauth add chatlunalab/chatluna sub-agent-creatorInstall 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.
Create complete sub-agent markdown files for ChatLuna's extension-agent package.
Prefer ChatLuna format unless the target file, target directory, or user request
clearly calls for Claude or OpenCode compatibility.
data/chatluna/agents/<agent-name>/index.md.local, write the new file to the
sandbox path ~/.chatluna/agents/<agent-name>/index.md instead, create the
parent folder first if it does not exist, and finish with agentcli sync subagents so the local ChatLuna path is updated.model when you do not know the exact installed model name. Let the
sub-agent inherit the parent model instead of guessing.allowKoishiMessageTransform: false unless the agent must receive the
user's Koishi message structure instead of plain text.Define the agent's exact job.
Choose the narrowest permission set that still works.
file_read, glob, and grep.file_read, file_edit, file_write,
glob, grep, and sometimes bash.browser_open, web_search,
browser_read_text, and browser_summarize.Choose model and turn budget.
model unset when the correct model is unknown.8-20 turns for lookup or review, 20-60 for focused
implementation, and 100 only for broad multi-step work.Write the prompt body.
Review the file.
agentcli sync subagents and
verify the local file path after sync.description usable as catalog text. Write what the agent does and
when to call it.task.Use this format for new ChatLuna-native agents.
---
name: explore-api
description: Read-only API exploration agent. Use when you need to find routes, trace handlers, inspect request or response shapes, and report exact files and line numbers.
format: chatluna
enabled: true
hidden: false
model: openai/gpt-4.1-mini
maxTurns: 12
allowKoishiMessageTransform: false
permissions:
skills:
mode: deny
allow: []
deny: []
mcp:
mode: allow
allow: []
deny: []
tools:
mode: allow
allow:
- file_read
- glob
- grep
deny: []
computer:
mode: deny
allow: []
deny: []
---
You are the Explore API sub-agent. Your job is to inspect the codebase and answer API questions with evidence.
Start with broad discovery using glob and grep. Then read only the files that matter and trace imports or call sites until the path from route entry to handler is clear.
Do not edit files, run shell commands, use MCP, or speculate beyond the code you can point to.
Return:
- the relevant endpoints or entry points
- the exact files and line numbers
- the request and response shape when present
- any uncertainty that still needs a human decision
name: Human-facing sub-agent name.description: Catalog text. Include both capability and trigger.format: Use chatluna for native agents.enabled: Usually true.hidden: Set true only when the agent should stay out of the normal
catalog.model: Optional exact model name. Omit to inherit from the parent agent.maxTurns: Hard turn budget. Default config is 100, but most specialists
should use less.allowKoishiMessageTransform: Set true only when the prompt must preserve
Koishi message elements, mentions, or multimodal transforms.permissions: Four permission groups: skills, mcp, tools, and
computer.Each permission group uses this shape:
mode: inherit | all | allow | deny
allow: []
deny: []
inherit: Use the global default for that category.all: Allow everything in that category.allow: Allow only the listed entries.deny: Deny the listed entries and allow the rest of that category.Prefer mode: allow for tight specialist agents. It is the clearest and safest
way to restrict behavior.
Use the right names:
permissions.tools: Tool names such as file_read, file_edit,
file_write, glob, grep, bash, web_search, browser_read_text,
and browser_summarize.permissions.skills: Skill names.permissions.mcp: MCP server names.permissions.computer: Backend names such as local, e2b, and
open-terminal.Important behavior:
task, even if you mention it.plan and explore agents get hard-coded read-only
protection. Custom read-only agents must restrict their own tools.mcp.mode: allow with an empty allow list.tools.mode: allow with an empty allow
list.Use these patterns as defaults.
permissions:
skills:
mode: deny
allow: []
deny: []
mcp:
mode: allow
allow: []
deny: []
tools:
mode: allow
allow: [file_read, glob, grep]
deny: []
computer:
mode: deny
allow: []
deny: []
permissions:
skills:
mode: deny
allow: []
deny: []
mcp:
mode: allow
allow: []
deny: []
tools:
mode: allow
allow: [file_read, file_edit, file_write, glob, grep, bash]
deny: []
computer:
mode: deny
allow: []
deny: []
permissions:
skills:
mode: deny
allow: []
deny: []
mcp:
mode: allow
allow: []
deny: []
tools:
mode: allow
allow: [web_search, browser_open, browser_read_text, browser_summarize]
deny: []
computer:
mode: allow
allow: [local]
deny: []
Only grant computer when the task explicitly needs GUI or browser control.
Use Claude-style frontmatter only when editing a Claude agent or when the file will live in a Claude agents directory.
Supported Claude fields:
namedescriptionmodelmaxTurnshiddentoolsdisallowedToolsskillsmcpServersUse a simple allow list when possible.
---
name: repo-reviewer
description: Read-only review agent. Use when you need to inspect code, trace behavior, and report issues with evidence.
model: openai/gpt-4.1-mini
maxTurns: 16
hidden: false
tools:
- read
- glob
- grep
skills: []
mcpServers: []
---
You are the Repo Reviewer sub-agent. Read the relevant code, gather evidence, and return precise findings with file paths and line numbers.
Notes:
read, write, edit, bash, glob, grep, webfetch, and task
aliases are mapped into ChatLuna-compatible tool names.tools over disallowedTools for narrow agents.Use OpenCode-style frontmatter only when editing an OpenCode agent or when the file will live in an OpenCode agents directory.
Supported OpenCode fields:
namedescriptionmodelhiddendisableprompttoolspermissionmodeExample:
---
name: quick-explorer
description: Fast read-only explorer. Use when you need to search a repo, inspect files, and return exact evidence.
mode: subagent
model: openai/gpt-4.1-mini
hidden: false
disable: false
tools:
read: true
glob: true
grep: true
write: false
edit: false
bash: false
permission:
edit: deny
bash: deny
webfetch: deny
task: deny
---
You are the Quick Explorer sub-agent. Find the relevant files, read only what matters, and return exact evidence.
Notes:
prompt exists in frontmatter, ChatLuna prepends it to the markdown body.mode is informational here. Keep it accurate, but do not rely on it for
enforcement.model instead of inventing one.computer off unless the task explicitly needs it.tools
Use this skill to inspect or change ChatLuna agent admin state — skills, sub-agents, tools, MCP servers, MCP tools, or permission rules. The skill edits a working copy of the agent config inside the sandbox; the user must run `chatluna.agent sync` to write changes back to the host instance.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
tools
Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.
tools
Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.