← scenarios

Skills

Skills are how stage 02 stays rigorous. Each one is a closed contract — what it consumes, what it produces, what it needs — checked before dispatch, so the agent routes work instead of improvising it. And because the registry is data, not code, a lab extends the system by adding a row — its own in-house analysis is dispatched, checked and refused by exactly the same machinery as the built-ins.

Write your own — in-house analysis, dispatched like the built-ins

The map above is not a menu, it is a registry. A lab drops one directory — a SKILL.md and one script — onto $GARS_WRAPPERS, adds a row to the map, and the router dispatches it exactly like the nf-core wrappers: preconditions checked before dispatch, outputs declared in the closed vocabulary, refusals when a consumed type is not yet available. No fork, no plugin API, no redeploy.

This is not hypothetical — it happened on tape. In the recorded scenario, the lab's sulfur-panel scoring method becomes a first-class skill: scaffolded by _system/authoring, held to the same conform standard all nine shipped wrappers pass, registered with one map row, then dispatched through the same doors — resolve by type, check, prepare, the executor door, the content-checking exit gate. The result is one checkable statistic: 7 of 12 significant genes on the lab's 26-gene panel, hypergeometric p = 1.95e-10.

# the REAL SKILL.md the take produced (frontmatter, verbatim)
---
name: sulfur-panel
description: >
  GARS-authored wrapper around inhouse/sulfur-panel 1.0.0: preflight, audited
  params translation, submission script with requeue guard, content-checking
  exit gate and artifact registry rows.
metadata:
  openclaw:
    source: gars                    # versioned in this repo (decision 0012)
    pipeline: inhouse/sulfur-panel
    pipeline_version: "1.0.0"
---

# the map row it registered:
# | Bulk RNA-seq | rnaseq_bulk | 02_bioinformatics | 03_sulfur-panel
# |   sulfur-panel | gars | de_results, gene_id_map | table, report |

The router refuses to dispatch any skill until its consumed types exist; a second road — a skill kept entirely outside the GARS tree on $GARS_WRAPPERS — ships as working code in the demo repo's examples-inhouse/.

Generated from GARS's own references at commit 63e1e4cbfd96 — the same commit the live lane runs. Not hand-maintained: a page that could drift from the system it describes would eventually lie about it.