Operation Authoring And Diagnostics
Purpose
This document organizes the authoring rules and diagnostic viewpoints needed to safely change builtin or project-authored operations and facets in this repository.
Refer to it when changing operation YAML, facet files, output contracts, placeholder behavior, or workflow-related tests.
Change Surfaces
- Changes to step ownership, rules, or source objects in operation YAML
- Changes to facet file contents or paths
- Changes to output contracts or placeholder references
- Changes that affect the source-aware catalog, operation selector, or operation-debug filter
- Changes that affect the prompt builder, composer, or report routing
- Changes to workflow-related tests
Runtime-Relevant Authoring Rules
The schema fields you should review most often are:
initial_stepsteps[]steps[].jobsteps[].instructionsteps[].skillssteps[].policiessteps[].delegation.allowed_workerssteps[].delegation.worker_jobsteps[].delegation.worker_instructionsteps[].delegation.worker_skillssteps[].delegation.worker_policiessteps[].output_contracts.report[].formatsteps[].rules[]
The semantic roles of those fields differ as follows:
job: the stable role, responsibility, decision principles, and prohibitions for the stepinstruction: the step-specific execution procedure and referencesskills: background skills or reference material required to execute the current steppolicies: constraints and conventions that the current step must followdelegation.*: the allowed targets and prompt material used when a Noctis-owned step delegates a child task to a workeroutput_contracts.report[].format: the format definition for report artifacts
Canonical source forms are:
job.file/job.inlineinstruction.file/instruction.inlineskills[].filepolicies[].file/policies[].inlineoutput_contracts.report[].format.file/output_contracts.report[].format.inline
Canonical authored locations and identity are:
- builtin workflow:
builtins/<lang>/operations/*.yaml - project workflow:
projects/<project-id>/operations/*.yaml - builtin facets:
builtins/<lang>/facets/** - project facets:
projects/<project-id>/facets/** - canonical identity:
operationRef(builtin:<lang>:<fileName>orproject:<projectId>:<fileName>)
The following constraints often map directly to runtime failure, so check them early in design:
initial_stepshould point to anoctisstep- List-based facets preserve authored order
filesources resolve relative to the operation YAML path- Even when same-name workflows exist across builtin and project sources, selector and debug preview must not collapse them
- Auto activation from a message body succeeds only when the catalog match is unambiguous
- Runtime state, the Noctis Team selector, and operation-debug preview use
operationRefas the canonical key, not plain operation name output_contracts.report[].formatmust stay consistent with the output filename and any downstream referencessteps[].delegation.allowed_workersis the authored upper bound, while the runtime effective set is the intersection with the mission's allowed worker setrulesmay be omitted only for an autonomous delegation step where Noctis remains on the same parent step
Legacy fields such as initial_movement, movements, max_movements, edit, handoff_mode, job_file, and knowledge_files are not canonical.
When changing prompts, always inspect both the operation YAML and the referenced facet files together.