# YAML Schema for instruction type type: object properties: type: type: string const: "types/instruction.md" description: Must reference the instruction type-spec name: type: string minLength: 1 description: Short identifier, matching the filename stem description: type: string minLength: 1 description: >- The retrieval wire - the question an agent would ask when it needs this procedure, written to match that query rather than to label the file manual: type: boolean description: >- True for a rare, deliberate procedure that must never run implicitly. Exempts it from `instructions verify`'s reference requirement - and, symmetrically, `verify` then requires it NOT be linked from AGENTS.md or a skill (the paths an agent loads automatically), since a link there is exactly how it would stop being deliberate. A mention in a CONTRACT.md, a COLLECTION.md, or another instruction's prose is fine - that is documentation a reader opts into, not automatic pickup. Invoked only by explicit name on request. migrates_to: type: string pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$" description: >- Present on a migration document under `instructions/migrations/`: the stack version whose content shape this migration produces. `wikitool migrate status` builds the outstanding chain from these, so the value is the migration's identity as much as its label. Plain `x.y.z` - no pre-release suffixes anywhere in this stack. migration_kind: type: string enum: [mechanical, assisted] description: >- How the migration is carried out. `mechanical` is deterministic and scriptable; `assisted` needs a judgment call per page and is therefore an agent procedure. Today this is a description rather than an execution promise - there is no `migrate run`. required: - type - name - description additionalProperties: false