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/agenticdevops/aoh/author-and-promote-skillnpx skills add agenticdevops/aoh --skill author-and-promote-skillgit clone --depth 1 https://github.com/agenticdevops/aohWrote 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/agenticdevops/aoh/author-and-promote-skill)<a href="https://agentmods.dev/skills/agenticdevops/aoh/author-and-promote-skill"><img src="https://agentmods.dev/badge/skills/agenticdevops/aoh/author-and-promote-skill.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.1 | $0.00051 | $0.00835 |
| Opus 5 | $0.00026 | $0.00417 |
| Sonnet 5 | $0.00010 | $0.00167 |
| Haiku 4.5 | $0.00005 | $0.00084 |
Grade A, and why
author-and-promote-skill 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 6d 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 — 71 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Author and Promote a Skill
Draft a skill locally, then promote it into a shared, git-hosted AOH pack using
aoh skill promote (this pack ships a thin wrapper around it — see
scripts/promote.sh). AOH never executes your skill or the promote itself in
some hidden way — running the CLI from your own shell, with your own
credentials, is the whole mechanism.
Process
-
Confirm the draft validates standalone. Before promoting, check:
- The skill lives in a directory whose name matches the
name:field in itsSKILL.mdfrontmatter (e.g.skills/my-skill/SKILL.mdhasname: my-skill). - The frontmatter has both
nameand a non-emptydescription. - Any scripts under
scripts/are executable (ls -l scripts/should showxbits; if not,chmod +x scripts/*.sh).
- The skill lives in a directory whose name matches the
-
Identify the target pack. Promote publishes into a pack you've already configured by name in
~/.aoh/config.yaml. Read the file directly, or ask for one pack's entry with:aoh config get packs.<pack-name>This resolves the nested
packs.<pack-name>key from the config'spacks: {<name>: {repo: ...}}structure and prints that pack's configuration (e.g. itsrepoURL). If it prints(unset), the pack isn't configured yet — set it first withaoh config set packs.<pack-name> <repo-url>(promote requires a git-hosted pack; alocal_path-only entry will be rejected). -
Run the promote script.
Prerequisite:
aohmust be on PATH. If you're outside this repo's venv, run the promote command directly viauv run aoh skill promote ...instead of the wrapper script.scripts/promote.sh <skill-name> --pack <pack-name>Add
--from <draft-dir>if the draft isn't discoverable from the current directory's.claude/skills/<name>or.agents/skills/<name>. Add--prto open a pull request instead of committing directly to the pack's default branch. -
Read the staged diff before it's pushed. The command prints the staged diff (
git diff --cached) from inside a throwaway worktree before it announces success. Stop and ask the user if anything in that diff looks unexpected — an unrelated file, a change outside the new skill's directory, or content that shouldn't be shared.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 6d ago First seen · 71 lines · 51 tokens per session scan A 36aa6ed9a5e7
author-and-promote-skill is a skill published in the GitHub repository agenticdevops/aoh (5 stars, last pushed 1mo ago), licensed MIT. It adds 51 tokens to every session and 835 once invoked, about $0.0003 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-31.
Other skills, from other repositories
harness
Use when governing a workspace's control plane, code or not — the 01-TOOLS/ tooling layer, the 02-DOCS/ chaos→knowledge wiki, the root Knowledge map. Audits it, migrates legacy XX- folders, scaffolds provider tooling, sweeps the inbox, writes root CLAUDE.md/AGENTS.md. NOT the bootstrap front door (that is init, which…
agent-release-swarm
Agent skill for release-swarm - invoke with $agent-release-swarm.
agent-workflow-automation
Agent skill for workflow-automation - invoke with $agent-workflow-automation.
agent-pagerank-analyzer
Agent skill for pagerank-analyzer - invoke with $agent-pagerank-analyzer.
agent-trading-predictor
Agent skill for trading-predictor - invoke with $agent-trading-predictor.
agent-pseudocode
Agent skill for pseudocode - invoke with $agent-pseudocode.