Findings
Every finding carries a code, a message, a path, and where applicable the feature and requirement it
belongs to. The prefix tells you which artifact owns the problem.
Fix the artifact that owns it. Never suppress a separation finding by moving requirement text to
another production file.
SPEC_ discovery and scope
Code
Meaning
SPEC_SCOPE
The run evaluated one feature rather than the project. Pass --all.
SPEC_NONE
No specifications matched the configured glob.
SPEC_MISSING
A selected feature names a specification that does not exist.
SPEC_UNREADABLE
A specification could not be decoded and was not read.
SPEC_OUTSIDE_PROJECT
--feature resolved outside the project and was refused.
Code
Meaning
EARS_PREFIX
The sentence does not open with a recognised EARS form.
EARS_SHALL
Missing shall, or more than one obligation in a single requirement.
EARS_MODAL
A competing modal verb appears in a normative sentence.
EARS_CLAUSE
A When, While, or Where clause is not closed with a comma.
EARS_UNWANTED
An If form is missing its then.
EARS_INCOMPLETE
The requirement has no response after its trigger.
REQ_DUPLICATE
Two requirements in one feature share an identifier.
REQ_NONE
The specification declares no requirements.
TRACE_ verification mapping
Code
Meaning
TRACE_MISSING
No traceability file beside the specification.
TRACE_MISSING_REQ
A requirement has no entry.
TRACE_UNKNOWN_REQ
An entry names a requirement the specification does not declare.
TRACE_MODE
verification is neither automated nor manual.
TRACE_MANUAL
Manual verification without a concrete rationale.
TRACE_TESTS
Automated verification with no test selectors.
TRACE_TEST_FILE
A named test file does not exist.
TRACE_TEST_NAME
The file exists but does not contain the named test.
TRACE_TEST_ROOT
A selector points outside the configured test roots.
TRACE_INVALID
The file could not be parsed.
TASK_ coverage
Code
Meaning
TASK_UNCOVERED
A requirement is covered by no task.
TASK_LIST_MISSING
No tasks.md for the feature.
TASK_UNKNOWN_REF
A task references a requirement that does not exist.
TASK_SPAN
A task's requirement range could not be read.
VOCAB_, TERM_, INTENT_ grounding
Code
Meaning
TERM_UNDECLARED
A requirement tags a term the vocabulary does not declare.
TERM_UNUSED
A declared term is used by no requirement.
TERM_DEPRECATED
A requirement uses a term marked deprecated. Names the replacement.
VOCAB_INVALID
The vocabulary file could not be parsed, or a term redeclares a domain.
VOCAB_CYCLE
The broader relation contains a cycle.
INTENT_UNDECLARED
A requirement names an intention that does not exist.
INTENT_UNSERVED
A declared intention is served by no requirement.
INTENT_INVALID
The intentions file could not be parsed.
INTENT_PRECEDENCE_CYCLE
The precedence relation contains a cycle and resolves nothing.
INTENT_PRECEDENCE_UNDECLARED
Precedence names an intention that does not exist.
MODEL_ within one specification
Code
Meaning
MODEL_CONFLICT
Two requirements contradict each other.
MODEL_CONFLICT_DEFECT
They contradict and serve the same intention, so no precedence can help.
MODEL_CONFLICT_ADJUDICATED
They contradict and precedence names a winner. Advisory.
MODEL_CONFLICT_UNADJUDICATED
They contradict and nothing says which wins.
MODEL_BUDGET_EXCEEDED
A component is larger than the declared budget and was not searched.
MODEL_DEAD_GUARD
A guard can never be true, so the requirement never applies.
MODEL_SUBSUMED
A requirement's guard is implied by another's, making it redundant.
MODEL_GUARD_INVALID
The guard is outside the accepted language.
MODEL_TYPE_MISMATCH
A term is used in a way its declared domain does not support.
MODEL_EFFECT_UNDECLARED
A requirement asserts an effect the model does not declare.
MODEL_UNKNOWN_REQ
The model names a requirement the specification does not declare.
MODEL_UNMODELLED
A requirement has no model entry and was not checked.
MODEL_INVALID
The model file could not be parsed.
MODEL_INTERNAL
An internal contract failed. Please report it.
MERGE_ across specifications
The same classifications, applied to the merged constraint system. These are the ones no review
catches.
Code
Meaning
MERGE_CONFLICT
Two requirements in different specifications contradict each other.
MERGE_CONFLICT_DEFECT
They contradict and serve the same intention.
MERGE_CONFLICT_ADJUDICATED
Precedence names a winner. Advisory.
MERGE_CONFLICT_UNADJUDICATED
Nothing says which wins.
MERGE_SHADOW
One specification's requirement is subsumed by another's.
MERGE_UNMERGED
A specification declares no model and was excluded from the merge.
Conflict findings carry a witness in their detail: a concrete assignment of terms that satisfies
both guards. See finding contradictions .
CODE_ and SEPARATION_ production code
Code
Meaning
CODE_REQ_ID
A requirement identifier appears in production code.
CODE_REQ_PROSE
Requirement prose was copied into production code.
SEPARATION_EXEMPT
A finding was declared intentional with a reason. Advisory.
SEPARATION_EXEMPT_NO_REASON
An exemption marker carries no usable reason.
SEPARATION_EXEMPT_STALE
An exemption names a pattern that no longer matches.
SEPARATION_EXEMPT_UNUSED
An exemption matches nothing and should be removed.
SEPARATION_INTERNAL
The scan could not complete over a file.
TEST_COMMAND
The project has not declared its real test_command in .specify/ears-sdd.toml. The final gate
checks the command is declared. It never runs it.