Additional
Skills Quality Spec
Synced from github.com/CoWork-OS/CoWork-OS/docs
This document defines mandatory quality standards for bundled CoWork OS skills.
Scope
- Applies to bundled skills in
resources/skills/*.json. - Applies to hybrid skill packages under
resources/skills/<skill-id>/. - Applies to model invocation across Anthropic, OpenAI, Gemini, and other providers.
Core Principles
- Keep prompts concise and operational.
- Define explicit trigger boundaries.
- Define explicit outputs and success criteria.
- Use progressive disclosure for long or variant-heavy guidance.
- Prefer deterministic scripts for fragile or repetitive operations.
Required Metadata
Each skill must include:
metadata.routing.useWhenmetadata.routing.dontUseWhenmetadata.routing.outputsmetadata.routing.successCriteriametadata.routing.examples.positive(minimum 3 examples)metadata.routing.examples.negative(minimum 3 examples)metadata.authoring.complexity(low,medium, orhigh)
Prompt Budgets
Prompt size budgets are based on metadata.authoring.complexity:
low:<= 2000charactersmedium:<= 5000charactershigh:<= 8000characters
If a skill exceeds budget, move deep detail into references/ files and keep the runtime prompt focused on workflow and outputs.
Hybrid Skill Layout
Each bundled skill should follow:
resources/skills/<id>.jsonruntime manifestresources/skills/<id>/SKILL.mdauthoring guideresources/skills/<id>/references/*.mdoptional deep referencesresources/skills/<id>/scripts/*optional deterministic scripts
Placeholder and Parameter Rules
- Allowed runtime placeholders in prompts are:
{baseDir}{artifactDir}{{paramName}}(declared skill parameter only)
- Any
{baseDir}/...reference must resolve to an existing path inresources/skills/<id>/.- If a prompt references
{baseDir}/scriptsor{baseDir}/scripts/<file>, the directory/file must exist.
- If a prompt references
- Avoid single-brace pseudo-placeholders like
{page_id}or{cardId}in prompt examples.- Use literal angle-bracket examples instead (for example,
<page_id>,<cardId>), or use a declared{{paramName}}.
- Use literal angle-bracket examples instead (for example,
{artifactDir}paths must be deterministic when artifacts are expected.{{param}}placeholders must match declared parameters.- For
selectparameters,optionsmust be strings.
Validation and Audit Commands
npm run skills:validate-routingnpm run skills:validate-contentnpm run skills:auditnpm run skills:eval-routingnpm run skills:check
Enforcement Phases
- Phase 1 (advisory)
skills:checkreports warnings and writes an audit scorecard.- Hard failure for structural errors (invalid schema, missing required files/placeholders).
- Phase 2 (partial block)
- Continue hard-failing structural errors.
- Keep budget/example quality issues as warnings.
- Phase 3 (full block)
- Enable strict warning mode (
SKILLS_CHECK_PHASE=3). - Fail on quality warnings and routing eval threshold failures.
- Routing eval thresholds:
- expected-hit rate
>= 95% - forbidden misfire rate
<= 2%
- expected-hit rate
Temporary Bypass for Hotfixes
skills:check supports temporary bypass for hotfix branches only:
- branch must match
hotfix/* - set
SKILLS_CHECK_BYPASS=1
This bypass is intended for release emergencies only.
Was this page helpful?Edit this page on GitHub