Atlas

Resource

Atlas validation contract

Validation profiles, output states, CLI behavior, and registered diagnostics.

Resource validation-contract

Status: Released

Requirement language

The key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, and MAY are normative only when uppercase and follow BCP 14.

Scope and ownership

This document owns validator profiles, result states, diagnostic codes, fixture expectations, and reference CLI behavior. Atlas Format owns the validated constraints, and Atlas Processing owns the algorithms that inspect and resolve them. A diagnostic description identifies the failed condition without becoming a second definition of that condition.

Results and profiles

A result contains profile, complete, valid, specificationRevision, implementation, ordered diagnostics, and optional normalized output. It MUST contain normalized output only for a complete valid resolved result and MUST omit normalized output in every other state. Invalid input can still be complete; unsupported profiles and implementation failures are incomplete.

neutral.atlas-validator.structural reports failures available after bounded discovery, parsing, schema validation, structural-location checks, body inspection, Check-shape inspection, identifier checks, and within-file duplicate checks.

neutral.atlas-validator.resolved additionally reports failures available after navigation, Point-group, Area, Resource, relation, supersession, publication-selection, and local-target resolution. It produces derived overlap and normalized output only when processing is complete and valid.

General Check evaluation is separate from validator profiles. Publication profiles use the same structural and resolved validation stages as the rest of the authored Atlas.

Output contracts

Publication profile front matter conforms to urn:atlas:schema:publication:1. The normalized Atlas conforms to urn:atlas:schema:normalized:1. A validator result conforms to urn:atlas:schema:validation-result:1. The executable fixture manifest conforms to urn:atlas:schema:fixture-manifest:1. Project Check evaluation can use urn:atlas:schema:check-evaluation:1 without becoming a generic validator profile.

The reference CLI MUST exit with 0 for a complete valid result or matching fixture matrix, 1 for a complete invalid result or fixture mismatch, and 2 for invalid usage or an incomplete result.

The reference implementation identifies itself as version 0.8.0 with status stable. Its default specification revision is 0.8.0; callers MAY supply a more specific immutable revision identifier. A version label alone does not identify an exact pre-1.0 contract; reproducible claims identify the immutable specification revision and processor revision.

Standard diagnostics

Discovery and locations

Code Severity Condition
atlas.discovery.root-not-found error No regular Atlas root exists.
atlas.discovery.nested-atlas-boundary information Discovery stops at a nested Atlas.
atlas.discovery.symbolic-link error A structural or reserved structural location is a symlink.
atlas.processing.io error Required inspection could not complete.
atlas.map.invalid-location error Map structural file is outside its location.
atlas.map.duplicate-id error Map id repeats.
atlas.map.unlisted information Discovered Map is absent from navigation.
atlas.point.invalid-location error Point record or points entry is invalid.
atlas.point.filename-mismatch error Point id and filename differ.
atlas.check.invalid-location error Check entry or location is invalid.
atlas.check.filename-mismatch error Check id and filename differ.
atlas.check.duplicate-id error Check id repeats.
atlas.publication.invalid-location error Publication directory or entry is outside its permitted direct root location or shape.
atlas.publication.filename-mismatch error Publication profile id and filename differ.
atlas.publication.duplicate-id error Publication profile id repeats.
atlas.validation.unknown-profile error Requested profile is unsupported.

Text, JSON, and schema

Code Severity Condition
atlas.text.invalid-utf8 error Text is not valid UTF-8.
atlas.text.bom error Structural text begins with BOM.
atlas.text.nul error Structural text contains NUL.
atlas.frontmatter.missing error Front matter is absent.
atlas.frontmatter.unclosed error Front matter is unclosed.
atlas.frontmatter.invalid-json error JSON front matter violates the parsing profile.
atlas.frontmatter.schema error Object fails schema.
atlas.format.unsupported error Root format is not 1.

Point records

Code Severity Condition
atlas.point.anchor-body-empty error Authored anchor body has no substantive block.
atlas.point.context-body-empty error Authored context body has no substantive block.
atlas.point.context-empty error Context contributes nothing.
atlas.point.missing-anchor error Context group has no anchor.
atlas.point.multiple-anchors error Point has several anchors.
atlas.point.context-in-primary-map error Context occurs in primary Map.
atlas.point.duplicate-map-record error Point has several records in one Map.
atlas.point.invalid-review-window error Review window is invalid.

Navigation and Areas

Code Severity Condition
atlas.navigation.unknown-map error Navigation names unknown Map.
atlas.navigation.duplicate-map error Map repeats across navigation.
atlas.map.duplicate-question error Two Maps use the same exact question.
atlas.area.duplicate-id error Area id repeats in one Map.
atlas.area.duplicate-question error Two Areas in one Map use the same exact question.
atlas.area.duplicate-membership error A Point record names one Area more than once.
atlas.area.unknown error Record names unknown containing-Map Area.

Relations and lifecycle

Code Severity Condition
atlas.relation.unknown-point error Relation target is unknown.
atlas.relation.self error Point relates to itself.
atlas.relation.duplicate error Relation pair repeats.
atlas.relation.supersedes-cycle error Supersession cycle exists.
atlas.lifecycle.superseded-without-replacement error Superseded Point has no replacement.
atlas.lifecycle.supersedes-target-not-superseded error Supersedes target is not superseded.

Resources

Code Severity Condition
atlas.resource.duplicate-id error Resource id repeats.
atlas.reference.duplicate error Target repeats in one list.
atlas.reference.invalid-uri error URI is invalid or prohibited.
atlas.reference.unknown-resource error Resource id is unknown.
atlas.reference.missing-local-target error Local target is missing.
atlas.reference.path-case-mismatch error Path differs by case/normalization.
atlas.reference.symlink error Target path traverses a symlink.
atlas.reference.prohibited-target error Core target is structural/policy/reserved.
atlas.reference.external-local information A direct target or one registered Resource target leaves Atlas and is not read.

Checks

Code Severity Condition
atlas.check.required-section error Required Check heading absent/repeated.
atlas.check.section-order error Check headings are out of order or unsupported.
atlas.check.section-empty error Required section is empty.

Publication profiles

Code Severity Condition
atlas.publication.unknown-map error Profile selects an unknown Map.
atlas.publication.unknown-point error Profile selects an unknown Point.
atlas.publication.unknown-point-record error Profile selects no record for the Point in the named Map.
atlas.publication.unknown-resource error Profile selects an unknown Resource.
atlas.publication.unknown-check error Profile selects an unknown Check.

Diagnostics MUST sort by Unicode code-point order over path, line, column, code, and message. The fixture manifest pins complete, valid, exact ordered codes, and optional normalized output. Omission of an expected normalized snapshot disables only that comparison; it does not require normalized output to be absent from a complete valid resolved result.

Where this Resource is used

8 uses

Original Atlas material: CC0 1.0 Universal or 0BSD. Referenced material retains its own terms.

Reading this Atlas

Atlas connects project documents to the claims, decisions, and perspectives they inform. It helps readers find relevant material and understand why it matters.

Explore the portal

  1. Start with a Map, then narrow the view through its Areas.
  2. Search for a phrase, title, or Point identity. Filter results by type.
  3. Open a Point for its explanations, related Points, and sources. Follow source links for the underlying material.

Quick reference

Map
A durable project perspective organized around one central question.
Area
A concern within a Map. Areas can overlap; memberships explain why a Point belongs.
Point
One claim, decision, constraint, question, or other coherent item with its own identity.
Context
An explanation of how the same Point matters in another Map.
Relation
A directed link between Points with an explanation, such as support, dependency, or replacement.
Resource
An addressable document or other material.
Content
The primary material for an Atlas item.
Reference
Material linked as evidence, background, implementation, history, or an example.

Missing links do not mean that no relationship exists.

Read the state

Posture describes the author's stance: asserted means presented as applicable or believed; open, unresolved; proposed, a candidate; intended, a desired or selected future state.

Lifecycle describes standing: active means current context; historical, retained prior context; superseded, replaced by another Point; withdrawn, retracted.

Asserted does not mean verified. Intended does not mean implemented. Source links provide material to assess these claims.