The author/audit pair pattern
Every artifact type in CyberOS is represented by two skills:
The author writes; the audit audits. They are separate skills that chain together. You must ship both — an author without a matching audit is not a complete release.
1
Pick a name
Skill names use
kebab-case, lowercase, letters and digits only. Follow the <artifact>-author / <artifact>-audit convention.Good examples from the existing catalog:statement-of-work-author/statement-of-work-audittask-author/task-auditproduct-requirements-document-author/product-requirements-document-audit
.cyberos/cuo/skills/ for naming patterns.2
Copy the scaffold
From your Each template directory contains the full set of required files. You will fill in the artifact-specific content in the following steps.
.cyberos/cuo/skills/ directory, copy both template directories:3
Fill in the author SKILL.md
Open
my-artifact-author/SKILL.md and replace every <ARTIFACT> and <artifact> placeholder with your artifact’s name (uppercase and lowercase respectively). Key fields to update:name— set tomy-artifact-authordescription— describe when to invoke this skill and what it producesexpects.required_fields— list the input fields the skill requires (e.g.source_files,output_dir)produces.output_kind— set toartefactdepends_on_contracts— reference your artifact’s contract definition
4
Write the supporting author documents
Fill in the remaining files in
my-artifact-author/:5
Define input and output schemas
Edit the JSON Schema files in The output schema (
my-artifact-author/envelopes/:envelopes/input.json (example)
envelopes/output.json) should include skill_id, batch_outcome, artefacts_written, and next_skill_recommendation.6
Fill in the audit SKILL.md and RUBRIC.md
Open
my-artifact-audit/SKILL.md and replace placeholders — the description should declare which rubric version it implements (e.g. my_artifact_rubric@1.0).Then write my-artifact-audit/RUBRIC.md. This is the most important file in the audit skill — it defines the specific rules the audit applies. Follow the structure from task-audit/RUBRIC.md in the skill catalog:- Use stable
rule_idstrings (e.g.FM-001,SEC-001,QA-001) - Group rules into families:
FM(fabrication),SEC(security),COND(conditional),QA(quality),SAFE(safety),STALE(freshness) - Each rule should be falsifiable — the audit skill must be able to produce a clear pass/fail for it
7
Add acceptance fixtures and iterate
In Iterate until the audit skill scores 10/10 on every sample. Do not ship below 10/10.
my-artifact-author/acceptance/ and my-artifact-audit/acceptance/, add golden fixture files — sample inputs and the expected outputs your skills should produce.Run the audit skill against a sample output from your author skill:8
Wire chaining (optional)
To have the author skill automatically invoke the audit skill after each artifact is written, set the default value of The CUO supervisor reads
chain_to in the author’s envelopes/input.json:produces.next_skill_recommendation from the output envelope and queues the audit skill unless the user opts out. Set chain_to to an empty array to disable automatic chaining.Key SKILL.md fields
What happens when the skill is invoked
When an agent invokes your skill, CyberOS:- Loads
SKILL.mdand emits aCONTRACT_ECHOblock before any file action - Validates the input envelope against
envelopes/input.json - Runs the pipeline defined in
PIPELINE.md - Writes the artifact to
output_dirand computes its hash - Chains to the audit skill if
chain_tois non-empty - Emits a batch summary and halts on any HITL pause
Skill module
Browse the full catalog of 52 built-in author/audit skill pairs.
Ship Tasks Workflow
Understand how skills fit into the end-to-end task lifecycle.