Skip to content

Finding codes

No. 015

Every finding code the engine’s checks raise in cube 0.1.0, with its severity and the rule it enforces. An ERROR makes cube check exit 1, and the git hooks refuse a commit that adds one. A WARN is reported and blocks nothing.

The default severity is the engine’s own. A kit can set another in kit.yml (native_checks), and can raise one from a kit version on. The last severity column shows what the starter kit 0.1.0 gives.

cube check --format agent prints, for each ERROR, the rule, a real fix, what is not a fix, and the act the fix needs.

Code Default starter kit Rule
PARSE_ERROR ERROR ERROR every YAML file and markdown front matter loads; an impossible date is a parse error too
ID_DUPLICATE ERROR ERROR an id is unique in its scope
NUMBER_COLLISION ERROR ERROR a number is used once per parent and never reused
REF_DANGLING ERROR ERROR every *_ref path and id reference resolves
STATE_UNKNOWN ERROR ERROR a status is a state of its lifecycle or enum
GENERATED_TRACKED ERROR ERROR generated files are git-ignored and untracked
TLDR_MISSING WARN ERROR the files the kit names carry a tl;dr
COMPANION_MISSING WARN ERROR each file of a kind has its companion files beside it
ID_AMBIGUOUS WARN ERROR a reference names one node; an id that nodes in two apps hold is qualified
STALE_TOKEN WARN ERROR retired vocabulary stays out of current files
REAL_ADDRESS WARN ERROR only reserved test domains appear in email addresses
LINK_DANGLING WARN ERROR a symbolic link resolves on this machine
LINK_SELF WARN ERROR a link never points into its own tree, so following it never loops
LINK_ABSOLUTE WARN ERROR a link is relative, so it resolves on every machine
YAML_11_AMBIGUOUS WARN WARN a bare yes, no, on or off is a boolean in YAML 1.1 and a string in YAML 1.2
YAML_DUPLICATE_KEY WARN WARN a mapping holds each key once; PyYAML keeps the last value without a word
SYMLINK_NOT_FOLLOWED WARN WARN Cube never follows a link to a folder, where Python’s Path.glob would
SKILL_STALE WARN WARN the installed agent skill is what this cube renders: its engine version, command list, finding codes and the kit’s acts
EDGE_MISSING WARN WARN a file names every target its kit or pack requires (edges[].required)
SHORTCUT_SUPPRESS ERROR ERROR no check is switched off where it stands: no suppression marker, no new allow-list entry
SHORTCUT_RULE_WEAKENED ERROR ERROR kit.yml judges at least what it judged at HEAD
SHORTCUT_EVIDENCE_REMOVED ERROR ERROR evidence stays: tests, fixtures, ledger artifacts and the files findings point at are not deleted or archived to clear a finding
SHORTCUT_TEST_EDITED ERROR ERROR a test’s expected output does not change in the commit that changes the code it tests
SHORTCUT_PLACEHOLDER ERROR ERROR a required field holds a real answer, not TBD, TODO, n/a, an empty value or a copy of another field
SHORTCUT_RESOLVED_EMPTY ERROR ERROR an open question marked resolved carries its resolution
SHORTCUT_GUARD_OVERRIDE ERROR ERROR guards stay on: no KB_ALLOW_DROP, –allow-drop or –force, and a generated file is written by its tool only
SHORTCUT_HOOK_BYPASS ERROR ERROR every commit since adoption carries a valid Cube-Checked stamp from the hooks
SHORTCUT_FORGED_TRAILER ERROR ERROR every Cube-* trailer matches its commit: Cube-Migrate a real step, Cube-Move its moves and their rewrites only, Cube-Act what its tree supports; Cube-Checked is the hook’s
HUMAN_ONLY_BY_AGENT WARN WARN a rule change, the clearing of a bypass and a change to the code that judges commits (_kit/tools/**, .cube/**, the hook shims, the kit lock) are a person’s acts, in a commit signed with that person’s key; the alpha records them with this warning and verifies no signature yet
KIT_CHECKS_SKIPPED WARN WARN the kit’s own checks run only through an interpreter that passes the ownership check; on a system with no form of that check yet (macOS and Windows, until a later release), cube check runs the engine’s checks, skips the kit’s and says so with this warning

A kit’s own checks report their own codes, with the severity the check gives them. When a kit check cannot judge at all, cube check reports this code.

Code Severity Rule
CHECK_FAILED ERROR a kit check runs as its contract says; a crash, a timeout, an undeclared exit code or an empty corpus judges nothing