OMA Skill Authoring
Scheduling
Goal
Create or revise a usable OMA skill with clear routing, one execution path, domain-specific recovery, and proportionate context.
Intent signature
- Create, update, audit, or normalize an OMA skill, its resources, or the SSL-lite format.
- Decide whether content belongs inline, in a conditional resource, or should be removed.
When to use
- Authoring
.agents/skills/{name}/SKILL.md and supporting resources.
- Reviewing skill routing, execution contracts, reference loading, or duplicated instructions.
When NOT to use
- Installing third-party skills -> skill installer; creating a Codex plugin -> plugin tooling.
- Application implementation -> the owning specialist; project requirements ->
oma-pm.
Expected inputs
Skill purpose, triggers, boundaries, execution model, and existing commands/resources or user edits to preserve.
Expected outputs
A four-section SKILL.md, only necessary supporting resources, and validation results with unresolved limitations.
Dependencies
resources/ssl-lite-template.md for the skeleton and resources/validation-checklist.md for acceptance criteria. Use native file tools and available oma skill validators. Follow repository rules for source ownership and generated copies.
Structural Flow
Transitions
- New skill: compare 1–3 analogous skills, then use the template.
- Existing skill: preserve working domain detail and change only the requested scope.
- Repeated instructions: retain one authoritative location and a short reference where independently invoked entry points need it.
- Long or conditional detail: move to a named resource with a load condition. Do not move a duplicate merely to keep it elsewhere.
- Machine-checkable artifacts: declare structured
outputs: as documented in the template.
Failure and recovery
| Failure |
Recovery |
| Overbroad routing |
Narrow triggers and add a concrete When NOT to use cross-route |
| Vague execution |
Add actual objects, paths, command flags, and evidence to the canonical path |
| Repeated procedure in multiple sections |
Keep the canonical procedure; retain only distinct branches or state transitions elsewhere |
| Required tool unavailable |
Use the documented fallback; otherwise report which result cannot be verified |
| Conflicting source and generated copies |
Use the repository's generation flow; do not hand-edit protected definitions |
Exit
A completed skill has valid structure, useful routing, executable steps, recoverable failures, valid references, and applicable validation evidence. Missing tools or unresolved assumptions must remain explicit.
Logical Operations
Canonical workflow path
- Read the target, its invoked resources, and relevant repository rules. Identify which entry points run independently and which content the runtime already injects.
- Select command-heavy, judgment-heavy, or reference-heavy behavior. Use the template's minimal skeleton and optional sections only where they add information.
- Write the canonical procedure once. Preserve exact command/output contracts, failure mechanisms, side effects, and harmful-action limits; remove generic restatements and redundant examples.
- Index resources once under References with load conditions. Keep source-adjacent evidence one hop from SKILL.md where possible.
- Run
oma skill lint --skill <name> and git diff --check. If routing descriptions changed, run oma skill audit. Apply the content checks in resources/validation-checklist.md that automated lint does not cover.
- Report the changes, checks, and remaining limits. Do not claim reduced token usage merely from removing duplicate files; measure the context actually loaded when making that claim.
Resource scope and effects
Skill work reads and may change local definitions/resources and generated vendor copies through the authorized repository flow. User data and credentials are not skill examples. Commits and publishing require the corresponding authorization.
Guardrails
- Keep YAML
name and a routing-grade description. Preserve the four top-level headings: Scheduling, Structural Flow, Logical Operations, References.
- Keep one canonical command/workflow path, an Intent signature, When to use/When NOT to use, input/output expectations, failure recovery, and relevant effects/guardrails. Section titles beyond these are optional when their information is already represented.
- Entry, Scenes, Actions, and tool/scope tables must add distinct information. Do not repeat a procedure to fill the template.
- Keep SKILL.md under 500 body lines. Load supporting resources conditionally; do not create README/changelog/install documents inside a skill merely to explain the skill.
- Keep parsed output/schema examples. Do not prescribe decorative report layouts or add generic self-review loops; use runnable validators and explicit evidence requirements.
- Process bulk data through deterministic tools and return summaries/artifact paths instead of streaming raw data into context.
- Preserve unrelated user edits. Apply the shared execution policy to clarification, authorization, and verification.
References
- Prompt behavior and model comparisons:
resources/prompt-evaluation.md (routing, injection, authorization, or review-contract changes)
- Skeleton and optional sections:
resources/ssl-lite-template.md (authoring or restructuring)
- Acceptance criteria:
resources/validation-checklist.md (validation)
- Context loading:
../_shared/core/context-loading.md (resource/injection decisions)
- Quality principles:
../_shared/core/quality-principles.md (domain verification requirements)
- Eval fixtures:
web/docs/guide/skill-eval.md (when measuring held-out task utility with oma skill eval or oma skill optimize)
1---2name: oma-skill-creation3description: Create or revise OMA skills and their references. Use for skill routing, execution contracts, conditional loading, and authoring validation.4---56# OMA Skill Authoring78## Scheduling910### Goal11Create or revise a usable OMA skill with clear routing, one execution path, domain-specific recovery, and proportionate context.1213### Intent signature14- Create, update, audit, or normalize an OMA skill, its resources, or the SSL-lite format.15- Decide whether content belongs inline, in a conditional resource, or should be removed.1617### When to use18- Authoring `.agents/skills/{name}/SKILL.md` and supporting resources.19- Reviewing skill routing, execution contracts, reference loading, or duplicated instructions.2021### When NOT to use22- Installing third-party skills -> skill installer; creating a Codex plugin -> plugin tooling.23- Application implementation -> the owning specialist; project requirements -> `oma-pm`.2425### Expected inputs26Skill purpose, triggers, boundaries, execution model, and existing commands/resources or user edits to preserve.2728### Expected outputs29A four-section SKILL.md, only necessary supporting resources, and validation results with unresolved limitations.3031### Dependencies32`resources/ssl-lite-template.md` for the skeleton and `resources/validation-checklist.md` for acceptance criteria. Use native file tools and available `oma skill` validators. Follow repository rules for source ownership and generated copies.3334## Structural Flow3536### Transitions37- New skill: compare 1–3 analogous skills, then use the template.38- Existing skill: preserve working domain detail and change only the requested scope.39- Repeated instructions: retain one authoritative location and a short reference where independently invoked entry points need it.40- Long or conditional detail: move to a named resource with a load condition. Do not move a duplicate merely to keep it elsewhere.41- Machine-checkable artifacts: declare structured `outputs:` as documented in the template.4243### Failure and recovery44| Failure | Recovery |45|---|---|46| Overbroad routing | Narrow triggers and add a concrete When NOT to use cross-route |47| Vague execution | Add actual objects, paths, command flags, and evidence to the canonical path |48| Repeated procedure in multiple sections | Keep the canonical procedure; retain only distinct branches or state transitions elsewhere |49| Required tool unavailable | Use the documented fallback; otherwise report which result cannot be verified |50| Conflicting source and generated copies | Use the repository's generation flow; do not hand-edit protected definitions |5152### Exit53A completed skill has valid structure, useful routing, executable steps, recoverable failures, valid references, and applicable validation evidence. Missing tools or unresolved assumptions must remain explicit.5455## Logical Operations5657### Canonical workflow path581. Read the target, its invoked resources, and relevant repository rules. Identify which entry points run independently and which content the runtime already injects.592. Select command-heavy, judgment-heavy, or reference-heavy behavior. Use the template's minimal skeleton and optional sections only where they add information.603. Write the canonical procedure once. Preserve exact command/output contracts, failure mechanisms, side effects, and harmful-action limits; remove generic restatements and redundant examples.614. Index resources once under References with load conditions. Keep source-adjacent evidence one hop from SKILL.md where possible.625. Run `oma skill lint --skill <name>` and `git diff --check`. If routing descriptions changed, run `oma skill audit`. Apply the content checks in `resources/validation-checklist.md` that automated lint does not cover.636. Report the changes, checks, and remaining limits. Do not claim reduced token usage merely from removing duplicate files; measure the context actually loaded when making that claim.6465### Resource scope and effects66Skill work reads and may change local definitions/resources and generated vendor copies through the authorized repository flow. User data and credentials are not skill examples. Commits and publishing require the corresponding authorization.6768### Guardrails691. Keep YAML `name` and a routing-grade `description`. Preserve the four top-level headings: Scheduling, Structural Flow, Logical Operations, References.702. Keep one canonical command/workflow path, an Intent signature, When to use/When NOT to use, input/output expectations, failure recovery, and relevant effects/guardrails. Section titles beyond these are optional when their information is already represented.713. Entry, Scenes, Actions, and tool/scope tables must add distinct information. Do not repeat a procedure to fill the template.724. Keep SKILL.md under 500 body lines. Load supporting resources conditionally; do not create README/changelog/install documents inside a skill merely to explain the skill.735. Keep parsed output/schema examples. Do not prescribe decorative report layouts or add generic self-review loops; use runnable validators and explicit evidence requirements.746. Process bulk data through deterministic tools and return summaries/artifact paths instead of streaming raw data into context.757. Preserve unrelated user edits. Apply the shared execution policy to clarification, authorization, and verification.7677## References78- Prompt behavior and model comparisons: `resources/prompt-evaluation.md` (routing, injection, authorization, or review-contract changes)79- Skeleton and optional sections: `resources/ssl-lite-template.md` (authoring or restructuring)80- Acceptance criteria: `resources/validation-checklist.md` (validation)81- Context loading: `../_shared/core/context-loading.md` (resource/injection decisions)82- Quality principles: `../_shared/core/quality-principles.md` (domain verification requirements)83- Eval fixtures: `web/docs/guide/skill-eval.md` (when measuring held-out task utility with `oma skill eval` or `oma skill optimize`)