Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/mountainunicorn/add/promotenpx skills add MountainUnicorn/add --skill promotegit clone --depth 1 https://github.com/MountainUnicorn/addWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mountainunicorn/add/promote)<a href="https://agentmods.dev/skills/mountainunicorn/add/promote"><img src="https://agentmods.dev/badge/skills/mountainunicorn/add/promote.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00017 | $0.02776 |
| Opus 5 | $0.00009 | $0.01388 |
| Sonnet 5 | $0.00003 | $0.00555 |
| Haiku 4.5 | $0.00002 | $0.00278 |
Grade A, and why
promote scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 306 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ADD Promote Command v{{VERSION}}
Assess readiness and promote the project's maturity level. Maturity is the master control for all ADD behavior — promotion is intentional, evidence-based, and deliberate.
--check(default) — Gap analysis: scan evidence against next level's requirements--execute— Gap analysis + promotion interview + apply level change
Pre-Flight
- Read
.add/config.json— extractmaturity.level,promoted_from,promoted_date,next_promotion_criteria- If not found: abort with "No ADD project found. Run
/add:initfirst."
- If not found: abort with "No ADD project found. Run
- Read
${CLAUDE_PLUGIN_ROOT}/references/maturity-matrix.md— load cascade matrix + promotion process (source of truth for level requirements) - Read
docs/prd.md— project context, maturity references - Read
CLAUDE.md— check for maturity references
Edge Cases
Already at GA:
"Project is at GA — the highest maturity level. No further promotion available. Run /add:verify to check compliance."
--target below current level: Trigger demotion flow (see below).
--target skips a level (e.g., poc → beta):
"Cannot skip levels. Progression is sequential: poc → alpha → beta → ga. Next available: {next_level}."
No --target: Default to next level in sequence.
Command: /promote --check (default)
Scan project evidence and present readiness report. No file modifications.
Step 1: Determine Target
Current maturity: {CURRENT}
Assessing readiness for: {TARGET}
Step 2: Evidence Scan
Use Glob, Grep, Bash, Read to gather real data across these categories:
| # | Category | How to Check |
|---|---|---|
| 1 | Feature specs | Glob specs/*.md, count files, check for acceptance criteria |
| 2 | Test coverage | Run test command from config quality.test.unit with coverage flag. If no test command configured, score as MISSING. If command fails, score as PARTIAL and note the error. |
| 3 | CI/CD pipeline | Glob .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile |
| 4 | PR workflow | git log --merges --oneline -20 — check for merge commits |
| 5 | Environments | Read config environments — count tiers with non-null URLs |
| 6 | Conventional commits | git log --oneline -20 — check feat:/fix:/docs: compliance % |
| 7 | TDD evidence | Compare test vs implementation file timestamps |
| 8 | Branch protection | Check .github/settings.yml or gh api if available |
| 9 | Release tags | git tag -l 'v*' — check for semver tags |
| 10 | Quality gates | Check .pre-commit-config.yaml, .husky/, CI check configs |
| 11 | Milestones completed | Glob docs/milestones/*.md — count COMPLETE milestones |
| 12 | Learnings captured | Read .add/learnings.json — count entries |
| 13 | PRD depth | Read docs/prd.md — assess completeness for target level |
| 14 | Stability | git log --since="30 days ago" --oneline — check for hotfix-free stability |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 306 lines · 17 tokens per session scan A 1549c3093c54
promote is a skill published in the GitHub repository MountainUnicorn/add (11 stars, last pushed 1mo ago), licensed MIT. It adds 17 tokens to every session and 2,776 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
swarm
Launching multi-agent parallel work with the Agentic SDLC. Use when a task benefits from decomposition into parallel subtasks.
finish
Completing a development branch for merge readiness. Use when implementation and tests pass and the branch needs formal preparation for review and merge.
grill
Interrogating requirements to validate before building. Use before swarm decomposition, design decisions on ambiguous features, or when scope creep risk is high.
team
Referencing the agent roster, roles, coordination model, and dispatch modes. Use when spawning agents or checking permissions.
ticket
Associate every PDS task with a GitHub issue. Orchestrator finds or creates the ticket, posts plan and acceptance criteria as a checkbox list, updates it as work progresses. Use at Phase 1 of every swarm.
triage
Triage insights into actionable GitHub issues across repos. Use after running /insights to convert analysis into tracked work.