description: Mint a new PMOVES skill through Archon — scaffold SKILL.md, lint, register, publish archon.mint.skill.v1.
Mint a new composable skill into the PMOVES skills constellation. Mirrors /archon:mint-agent for skills.
Usage
Invoke when the operator says "mint a skill", "scaffold a SKILL.md", or "register a composable skill". Produces a SKILL.md under .claude/skills/<name>/, runs the skill linter, registers via Archon (when ready), and publishes the NATS mint event.
Implementation
Step 0 — Authenticate the creator (Google OAuth via Supabase)
Mandatory. Skills are tied to a creator identity (same RLS rules as agents). Follow the Step 0 procedure in /archon:mint-agent to obtain a valid Supabase session JWT with provider: 'google' and email_verified: true. Capture creator_id (Supabase auth.users.id) and creator_email for the skill manifest.
If OAuth wiring is not live, halt — see .claude/context/self-hosted-defaults.md § "Authentication".
Step 1 — Collect the manifest
Ask the operator for:
skill-name— kebab-case (e.g.pmoves-room-rotator).description— single sentence beginning with an action verb; this becomes the frontmatterdescription.user-invocable?— boolean. If false, set frontmatteruser-invocable: false(Claude-only).owning-persona— accountable agent or human; defaults to authenticated creator email from Step 0.- Optional:
tools,dependencies(other skills it composes with).
Validate uniqueness:
test ! -d ".claude/skills/<skill-name>" || { echo "skill exists"; exit 1; }
Step 2 — Scaffold the skill
Create .claude/skills/<skill-name>/SKILL.md:
---
name: <skill-name>
description: <description>
user-invocable: <true|false>
owning_persona: <owning-persona>
minted_at: <YYYY-MM-DD>
---
# <Skill-Name>
## When to invoke
<one paragraph trigger conditions>
## Inputs
<bullet list>
## Outputs
<bullet list>
## Implementation
<script reference or inline steps>
If the skill ships a script, also scaffold .claude/skills/<skill-name>/scripts/<entry>.sh (or .py) with a shebang and set -euo pipefail.
Step 3 — Lint
Run frontmatter + structure checks:
# Frontmatter present
head -1 .claude/skills/<skill-name>/SKILL.md | grep -q '^---$' || echo "FAIL: missing frontmatter"
# Description starts with verb (heuristic)
grep -E '^description: [A-Z][a-z]+ ' .claude/skills/<skill-name>/SKILL.md || echo "WARN: description should start with an action verb"
# Required sections
for s in "When to invoke" "Inputs" "Outputs" "Implementation"; do
grep -q "^## $s$" .claude/skills/<skill-name>/SKILL.md || echo "FAIL: missing section '$s'"
done
Block on any FAIL.
Step 4 — Register through Archon
Contract for the future archon:create-skill MCP tool:
{
"name": "create-skill",
"input": {
"skill_name": "<skill-name>",
"description": "<description>",
"user_invocable": <bool>,
"path": ".claude/skills/<skill-name>/SKILL.md"
},
"output": { "skill_id": "<uuid>", "registry_url": "<url>" }
}
Until the MCP tool ships, optionally curl -sf -X POST http://localhost:8091/api/skills with the manifest. If the endpoint is unavailable, stash the manifest under /tmp/skill-manifest.json and continue.
Step 5 — Publish NATS mint event
{
"subject": "archon.mint.skill.v1",
"payload": {
"skill_id": "<uuid|null>",
"skill_name": "<skill-name>",
"path": ".claude/skills/<skill-name>/SKILL.md",
"user_invocable": <bool>,
"owning_persona": "<owning-persona>",
"ts": "<RFC3339>"
}
}
Publish via pmoves-nats-mcp nats_publish tool if configured, otherwise print the payload + the nats pub archon.mint.skill.v1 ... fallback.
Step 6 — Cross-link
Append a row to skills/README.md (Status: provisional) so the constellation surface reflects the new skill.
Notes
- Wave-0 Task 9 in the gap-fill roadmap.
- Wave-1 dependency: Supabase
archon_minted_artifactstable (W1.10). - Wave-2 dependency:
archon.mint.skill.v1publishers on the bus (W2.1). - Companion:
/archon:mint-agentfor agents,/archon:creator-onboardfor human creators.
Expert Next.js App Router
Developpement
Un skill qui transforme Claude en expert Next.js App Router.
Générateur de README
Developpement
Crée des README.md professionnels et complets pour vos projets.
Rédacteur de Documentation API
Developpement
Génère de la documentation API complète au format OpenAPI/Swagger.