Skip to content

docs: lifecycle stages, report scope, and status references by name - #9

Open
delchev wants to merge 1 commit into
mainfrom
spec/lifecycle-stages-scope
Open

docs: lifecycle stages, report scope, and status references by name#9
delchev wants to merge 1 commit into
mainfrom
spec/lifecycle-stages-scope

Conversation

@delchev

@delchev delchev commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Renders the specification change proposed in IntentFile/intent-specification#6 (implemented in the reference implementation as eclipse-dirigible/dirigible#6647, for eclipse-dirigible/dirigible#6645).

Why: an aggregation over an entity that carries a lifecycle is wrong by default — drafts nobody has issued, cancelled and voided documents all land in the sum unless the author remembers a predicate over positional status ids, and nothing in the format said so. The addition declares a status's meaning once, where the nomenclature is seeded, and lets reports and guards resolve it.

What changed

  • spec/data — a stage section under seeds: the draft | live | cancelled | void vocabulary as a table, why the meaning belongs with the nomenclature rather than being re-derived in every predicate, and the normative rules (metadata never becomes a column; a classified row carries its primary key; a colliding stage property is reported, not guessed at). Plus Status references — name, not number, covering every site that names a status, with the positional-id argument spelled out.
  • spec/presentation — a Lifecycle scope section under reports: the three shapes (implicit live, scope: all, an explicit stage), and the normative rules for when the implicit default applies, the two conditions that stand it down (a status dimension, an authored status filter), and the diagnostic a conforming generator must report when nothing is resolvable.
  • reference — a scope row; the reports, transitions and seeds snippets updated to show scope:, symbolic statuses and stage:; the cross-model boundary added under Planned.

Left open for maintainer review — the specification PR governs the wording, and this only renders it. vitepress build is clean and the three new anchors resolve (#lifecycle-scope, #stage-what-a-status-means-to-the-lifecycle, #status-references-name-not-number).

Renders the specification change proposed in
IntentFile/intent-specification#6:

- data: a `stage` section on seeds (the draft/live/cancelled/void vocabulary,
  why the meaning belongs with the nomenclature, the metadata-not-a-column and
  collision rules) plus a "Status references — name, not number" section for
  every site that names a status.
- presentation: a "Lifecycle scope" section on reports - the shapes, and the
  normative rules for the implicit `live` default, the two conditions that stand
  it down (a status dimension, an authored status filter), and the diagnostic a
  generator must report when nothing is resolvable.
- reference: a `scope` row, the snippets updated to show `stage:`, `scope:` and
  symbolic statuses, and the cross-model boundary under Planned.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant