SHARED OFFLINE REFERENCE TOOLS

Use only your assigned input folder, this common folder, and your own run folder.
Every tool below uses the same complete 6,257-entry checked dictionary and the
same external grammar. No selected vocabulary subset is imposed.

INSPECT YOUR ASSIGNED PRESENTATION
From the trial root, use the command for your assigned format:
  node common/inspect.cjs C inputs/C --out runs/YOUR-RUN/recovery
  node common/inspect.cjs G inputs/G --out runs/YOUR-RUN/recovery
  node common/inspect.cjs P inputs/P --out runs/YOUR-RUN/recovery
Use only the command and input assigned to you. The output directory must not
already exist. A direct input file is also accepted. C automatically reads a
sibling layout.json when present; --layout FILE overrides that location.

All three adapters produce the same neutral semantic files for equivalent
facts. normalized.json contains the numeric selections, nine column roles,
accents, and typed links. resolved.json contains all 63 cells, full selected
dictionary records, link meanings and directions, and the complete grammar.
reading.txt renders the recovered facts, definitions, and grammar warnings.
provenance.json records input-specific file hashes and transport checks.
This is a tool-assisted reading workflow. Recovery does not determine your
interpretation, and no English author interpretation is contained in the score.

DICTIONARY LOOKUP
  node common/dictionary-query.cjs --id NUMBER
  node common/dictionary-query.cjs --name "EXACT CONCEPT NAME"
  node common/dictionary-query.cjs --search "WORDS"
  node common/dictionary-query.cjs --color "#RRGGBB"
  node common/dictionary-query.cjs --spoken "SPOKEN-COLOR-NAME"
Lookup returns full matching checked records. Search matches names and
definitions. dictionary.json is also available for direct local inspection.
Use grammar.json for exact role meanings, relation meanings, blanks, accents,
reading rules, truth boundaries, interpretation limits, and reply permissions.

COMMON NUMERIC REPLY FORMAT
Every reply uses a JSON object with exactly these six keys:
  format: "carrier-chromatic-score/1"
  scoreId: your own 1-80-character ASCII identifier using letters, digits, . _ -
  grammar: "chromatic-field/1"
  rows: seven arrays of nine checked numeric IDs or null selections
  accents: seven arrays of nine integers; 1-3 for selected cells, 0 for blanks
  links: an array of at most 512 objects with exactly from, op, and to
Link from and to are coordinate strings A1 through G9. Link op is one of
meets, tension, bounds, invites, transpose, echo. The spelling and from/to
syntax are checked. The grammar defines bounds, invites, and transpose as
directed from FROM toward TO; meets, tension, and echo are symmetric.

  node common/check-reply.cjs runs/YOUR-RUN/reply.json
The reply checker checks JSON structure, ID membership, array dimensions,
accents, and link type/coordinate syntax. It does not judge whether you used
a direction semantically well, whether your reply agrees with the source,
whether an interpretation is correct, or whether the artwork is good.
No image encoding is needed for the initial reply unless your instructions
explicitly request it. The same optional encoder is available to everyone:
  node common/encode-score.cjs runs/YOUR-RUN/reply.json --out runs/YOUR-RUN/reply-encoded
Output prefixes must be fresh. The unchanged low-level decoder is also present:
  node common/decode-score.cjs --image FILE --layout FILE --out FRESH-DIRECTORY
Omit --layout for a standalone CVP2 image.

RESOURCE SCOPE
resources.cjs validates the frozen dictionary, state, vendor tools, and grammar.
All retained warnings in the reference files apply. The offline process guard
blocks common Node network APIs; it is not an operating-system sandbox.
Full shared dictionary relations provide vocabulary context; they do not add
assertions to the particular score. Definitions retain their original scope.
