177c7e9ce8
Files changed: - .gitea/workflows/ci.yml - AGENTS.md - CHANGES.md - VERSION - instructions/CONTRACT.md - instructions/link-taxonomy.md - instructions/migrations/4.0.0-link-taxonomy.md - instructions/setup-instance.md - kb/CONTRACT.md - kb/CONVENTIONS.md - kb/CONVENTIONS.md.template - kb/comparisons/COLLECTION.md - kb/concepts/COLLECTION.md - kb/entities/COLLECTION.md - kb/sources/COLLECTION.md - tools/CONTRACT.md - tools/README.md - tools/chemenu/blocks.py - tools/chemenu/cli.py - tools/chemenu/commands/cite_cmd.py - tools/chemenu/commands/dist_cmd.py - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/doctor.py - tools/chemenu/commands/links_cmd.py - tools/chemenu/commands/migrate_cmd.py - tools/chemenu/commands/new_page.py - tools/chemenu/commands/page_ops.py - tools/chemenu/commands/run_budget.py - tools/chemenu/commands/xref.py - tools/chemenu/conventions.py - tools/chemenu/corpus_diff.py - tools/chemenu/frontmatter_io.py - tools/chemenu/kb_collections.py - tools/chemenu/kb_state.py - tools/chemenu/links.py - tools/chemenu/lint_core.py - tools/chemenu/provenance.py - tools/chemenu/sections.py - tools/chemenu/tests/conftest.py - tools/chemenu/tests/test_blocks.py - tools/chemenu/tests/test_cite_cmd.py - tools/chemenu/tests/test_conventions.py - tools/chemenu/tests/test_dist_cmd.py - tools/chemenu/tests/test_doctor.py - tools/chemenu/tests/test_migrate_cmd.py - tools/chemenu/tests/test_new_page.py - tools/chemenu/tests/test_pipeline_l0.py - tools/chemenu/tests/test_types_cmd.py - tools/chemenu/tests/test_xref.py - types/concept.schema.yaml - types/entity.md - types/entity.schema.yaml - types/instruction.schema.yaml - types/type-spec.md - work/link-taxonomy-migration/README.md - work/link-taxonomy-migration/plan.md
66 lines
2.8 KiB
YAML
66 lines
2.8 KiB
YAML
# 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`.
|
|
obligation:
|
|
type: string
|
|
enum: [required, offered]
|
|
default: required
|
|
description: >-
|
|
Whether the migration must run at all - a separate axis from
|
|
`migration_kind`, which says only how the work is done. `required`
|
|
(the default) is the original meaning: the content must reach the new
|
|
shape or it no longer fits the machinery, so `migrate status` counts it
|
|
as outstanding and `migrate done` advances `kb_version` through it.
|
|
`offered` is an upgrade the instance may decline: a file it owns still
|
|
works as it is, and the stack is proposing a better default. An offered
|
|
migration never blocks, never appears in the outstanding chain, and is
|
|
not a link in the version chain - it is listed separately so an operator
|
|
can take it when they want it.
|
|
required:
|
|
- type
|
|
- name
|
|
- description
|
|
additionalProperties: false
|