skill-builder
$
npx mdskill add boshu2/agentops/skill-builderScaffold or absorb new SKILL.md files using the AgentOps template
- Solves the problem of inconsistent skill definitions by enforcing a unified template
- Relies on the skill-auditor and converter for validation and transformation
- Uses triggers like 'create a skill' or 'absorb external skill' to determine action
- Produces validated SKILL.md files and a structured build report
SKILL.md
.github/skills/skill-builderView on GitHub ↗
---
name: skill-builder
description: 'Scaffold or absorb new SKILL.md files against the unified AgentOps template.
Triggers: "create a skill", "scaffold skill", "absorb external skill", "new skill".'
practices:
- code-complete
- pragmatic-programmer
- design-patterns
hexagonal_role: supporting
consumes: []
produces:
- converted-skill
context_rel: []
skill_api_version: 1
context:
window: fork
intent:
mode: questions
sections:
exclude:
- HISTORY
intel_scope: topic
metadata:
tier: meta
dependencies:
- skill-auditor
- converter
stability: experimental
output_contract: skills/skill-builder/schemas/build-report.json
---
# /skill-builder — Scaffold or absorb a new SKILL.md
Materializes a new skill against the unified template at `references/skill-template.md` (extracted from anthropics/financial-services). Runs `skill-auditor` on the new skill as a self-check before declaring success.
## ⚠️ Critical Constraints
- **Template is canonical.** All four modes produce SKILL.md files conforming to `references/skill-template.md`. Do not invent ad-hoc structures. **Why:** `skill-auditor` validates against this template; drift creates auditor false-fails.
- **Self-audit is mandatory.** After every successful build, the build script invokes `/skill-auditor` against the new skill directory. A FAIL verdict aborts the build. **Why:** PR-002 (external validation gate) — the builder must not declare its own work complete.
- **Codex parity is day-1, not later.** `from-scratch`, `from-template`, and `absorb-external` modes must produce both `skills/<name>/SKILL.md` AND `skills-codex/<name>/SKILL.md` + `skills-codex/<name>/prompt.md`. **Why:** finding `2026-05-03-codex-skill-shape-is-dual-file` — codex SKILL.md uses slim frontmatter (no `skill_api_version`); prompt.md is mandatory; `audit-codex-parity.sh` is a content scanner that won't catch frontmatter drift.
- **250-line ceiling on new SKILL.md.** Use `references/` for overflow. **Why:** finding `f-2026-05-01-025` — every Skill() invocation reloads 5-15KB; multi-lifecycle sessions compound to 150-200KB+ pure scaffolding.
- **Clean-room factory inputs only.** When using lessons learned from external corpora, read [references/agentops-skill-factory.md](references/agentops-skill-factory.md) and use only AgentOps-owned summaries, scripts, and rubrics. **Why:** productization must improve structure without copying protected third-party skill content.
## Modes
| Mode | Status | Description |
|------|--------|-------------|
| `from-scratch` | stable | Interactive scaffold from canonical template. Produces full skill skeleton + scripts/validate.sh + codex parity. |
| `from-template` | stable | `--like <existing-skill>` copies structure from a sibling skill, swaps domain-specific sections. |
| `absorb-external` | stable | Reads external SKILL.md (e.g., from `~/dev/financial-services/.../<skill>/SKILL.md`), wraps in AgentOps frontmatter, invokes `/converter` for codex parity. |
| `from-pattern` | **alpha (passthrough)** | Delegates to `ao flywheel close-loop`. Outputs land at `.agents/knowledge/promoted/` per flywheel rules — they are NOT yet shaped as SKILL.md drafts. v2 will add skill-specific synthesis. Use `from-scratch` or `absorb-external` for SKILL.md output today. |
## Workflow
### Phase 1: Mode dispatch
`scripts/build.sh` reads `$1` and routes:
```bash
build.sh from-scratch <new-skill-name> # → init.sh --interactive
build.sh from-template <new-skill-name> --like council
build.sh absorb-external <new-skill-name> --from /path/to/SKILL.md
build.sh from-pattern # → ao flywheel close-loop
```
**Checkpoint:** Confirm with user the new skill's `metadata.tier` and `metadata.dependencies` before generation.
### Phase 2: Materialize from template
`scripts/init.sh` reads `references/skill-template.md` (the canonical template section) and renders a SKILL.md skeleton with frontmatter pre-filled. For `from-template`, structure is copied from the source skill; section bodies are blanked and replaced with template stubs.
For `absorb-external`, the external SKILL.md's content (Constraints / Workflow / Output / Quality sections) is preserved verbatim where possible; AgentOps' structured frontmatter is added on top; the external description is reformatted to satisfy `description-has-triggers`.
**Checkpoint:** `/heal-skill --check skills/<new-name>` returns clean.
### Phase 3: Codex parity
`scripts/init.sh` invokes `/converter skills/<new-name> codex` to produce `skills-codex/<new-name>/{SKILL.md,prompt.md}`. Then trims `skill_api_version` from the codex SKILL.md (converter may preserve it). Asserts `prompt.md` exists.
**Checkpoint:** `bash scripts/audit-codex-parity.sh` returns clean AND `grep -q "^skill_api_version:" skills-codex/<name>/SKILL.md` returns nothing.
### Phase 4: Self-audit
The build script tail invokes `/skill-auditor` on `skills/<new-name>`. WARN is acceptable for v1 skills (e.g., `experimental` stability). FAIL aborts.
**Checkpoint:** `audit_pass=true` in build report.
### Phase 5: Factory score overlay
For AgentOps skill upgrades, use the productization score as a patch selector,
not as a replacement for `skill-auditor`:
```bash
python3 skills/skill-auditor/scripts/score_agentops_skill.py skills/<name> --markdown
```
Choose the smallest patch that improves the score while preserving the
canonical template and Codex parity constraints.
## Output Specification
**Format:** JSON conforming to `schemas/build-report.json` written to stdout; markdown audit report written to `.agents/audits/<skill>-build.md`.
**Files created (from-scratch mode):**
```
skills/<name>/
├── SKILL.md (≤250 lines, full template spine)
├── scripts/
│ └── validate.sh (self-validation per AgentOps convention)
└── references/ (only if expected to exceed 400 lines)
skills-codex/<name>/
├── SKILL.md (slim frontmatter — no skill_api_version)
└── prompt.md (~10-20 line Execution Profile)
```
## Quality Rubric
- [ ] All four modes produce skills that pass `skill-auditor` PASS or WARN (not FAIL)
- [ ] Codex parity files exist and pass slim-frontmatter check
- [ ] No SKILL.md exceeds 250 lines (overflow goes to `references/`)
- [ ] Build report JSON validates against `schemas/build-report.json`
- [ ] `from-pattern` mode prominently marked alpha/passthrough in user output
## Examples
**Create a new skill from scratch:**
```bash
/skill-builder from-scratch hello-world
# → interactive prompt: tier? deps? primary deliverable?
# → writes skills/hello-world/SKILL.md + skills-codex/hello-world/{SKILL.md,prompt.md}
# → runs /skill-auditor on the new skill
```
**Clone structure from an existing skill:**
```bash
/skill-builder from-template my-new-skill --like council
# → mirrors council's section spine; substitutes new metadata
```
**Absorb a skill from anthropics/financial-services:**
```bash
/skill-builder absorb-external dcf-helper \
--from ~/dev/financial-services/plugins/vertical-plugins/financial-analysis/skills/dcf-model/SKILL.md
# → preserves Constraints/Workflow/Output content, wraps in AgentOps frontmatter
```
## Troubleshooting
| Problem | Cause | Solution |
|---------|-------|----------|
| Self-audit FAIL | Generated SKILL.md missing required Pass-2 check | Re-run with `--verbose`; inspect which check failed; usually `output-spec-explicit` or `trigger-clarity` |
| Codex parity drift | `/converter` preserved `skill_api_version` | `init.sh` runs `sed -i '/^skill_api_version:/d' skills-codex/<name>/SKILL.md`; verify with grep |
| SKILL.md > 250 lines | Mode generated too much inline content | Move section bodies to `references/<topic>.md`; reference inline as `[text](references/<topic>.md)` |
| `from-pattern` produces no SKILL.md | Expected behavior — passthrough only in v1 | Use `from-scratch` or `absorb-external` if you need a SKILL.md draft |
## See Also
- [skill-auditor](../skill-auditor/SKILL.md) — companion audit gate, invoked by build self-check
- [heal-skill](../heal-skill/SKILL.md) — structural hygiene (Pass 1 of skill-auditor wraps heal.sh)
- [converter](../converter/SKILL.md) — produces codex parity artifacts
- [scaffold](../scaffold/SKILL.md) — scaffolds projects/components/CI (NOT skills)
- [forge](../forge/SKILL.md) — mines transcripts into learnings (different layer)
## References
- [references/skill-template.md](references/skill-template.md) — canonical SKILL.md template + auditor checklist + PRODUCT.md alignment
- [references/agentops-skill-factory.md](references/agentops-skill-factory.md) — clean-room factory workflow and productization rules
- [references/skill-builder.feature](references/skill-builder.feature) — Executable spec: mode dispatch, materialize from template, Codex parity bundle, self-audit + factory score (soc-qk4b)
More from boshu2/agentops
- autodevManage bounded autonomous dev loops.
- beadsTrack issues with bd/br, triage with bv, and convert plans to beads.
- bootstrapInitialize AgentOps project files.
- bug-huntInvestigate bugs and root causes.
- codex-teamCoordinate multiple Codex agents.
- compileCompile .agents knowledge wiki.
- complexityFind focused refactor hotspots.
- converterConvert AgentOps skill formats.
- crankExecute epics through waves.
- curateMine transcripts, .agents, bd, and git for skill diffs, bd updates, or