Skip to content
EN · PT

Gate: plan-doctrine-exists

The product doctrine the plan seeds exists.

Property Value
Checker plan-doctrine-exists
Confronts plan
Blocking by default — new project yes
Blocking by default — existing project no — informs

Co-location ties a unit to one directory, but a business rule that holds for three screens belongs to none of them. It lives in a product doctrine file, and each spec that concretises it points at the doctrine rule with a @realizes tag. This unit holds the five gates of that vertical axis; each one catches a silence the others cannot see.

  • plan-doctrine-exists — a plan that seeds a doctrine promises it will exist. Without this gate the promise carries no charge, because the specs the plan also seeds pass every gate with nothing to realize.
  • doctrine-realized — a doctrine rule that no spec realizes is a decision that never reached the code, and the doctrine file itself is well-formed, so nothing else looks at that far end.
  • spec-doctrine-exists — the axis’s reference check. A @realizes that does not resolve looks like traceability while the map gains no edge, typically after a doctrine rule was renamed.
  • doctrine-not-duplicated — the defect the axis exists to eliminate: a spec that copies the doctrine text instead of pointing at it. The ruler is similarity, not equality, because whoever copies almost always changes a word.
  • spec-realizes-doctrine — a layer may declare that every rule of its specs must say which product decision it concretises. It is off by default: most rules of a tool like this one are local mechanics, while in a product application the proportion inverts, and only the project knows which case it is.

The axis has one declared way out, @TBD: <reason>, and it means “not yet”, never “never”: on a line it turns a charge into debt, which keeps showing up (as Pending) until somebody pays it. A bare marker, or a marker quoted in backticks by a text that explains it, defers nothing.

An open question of a doctrine (a -Q item) names a decision nobody has taken, so it is never a rule to realize.

gates:
- name: plan-doctrine-exists
on: [plan]
check: plan-doctrine-exists

Source: checker · its spec