Files
decision/crates/ld-server/migrations/0007_modules.sql
T
YvvandClaude Opus 5.5 3831ddb1bf v3 : modules d'ordre et de titre — moteur, données, serveur (L11)
L'ordre des articles de chaque section (cran 2) et le titre du document
(cran 4) deviennent des modules : des unités à part, dont les versions
sont des propositions votées comme les articles (dépliées, panier, chaîne).

- moteur : ld-engine/src/order.rs (qui est dans l'ordre, ordre proposé,
  complété à la fin quand un article entre ou sort, places redistribuées,
  nouvel article en fin de section) ; pending : un ordre de moins de deux
  articles n'est jamais à voter ;
- données : migration 0007 (units.kind, module_amendments) ; le seed
  déclare ses modules ; module_amend.rs les ajoute une fois, gardé et
  journalisé, aux documents nés sans eux, sans toucher articles ni votes ;
- serveur : modules.rs, order.rs, doc_title.rs (portes pour proposer,
  entrée en vigueur : les articles changent de place, le document change
  de titre, en et es passent « à revoir ») ; publication des modules ;
- reste mineur : la médiane compte les statuts open, in_force, applied,
  et eux seuls.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:08:44 +01:00

27 lines
1.4 KiB
SQL

-- Modules (2026-10-31, ADR 0009): the title of a document and the order of the
-- articles of each of its sections, voted like its articles. Additive only:
-- every unit of before is an article, nothing else changes.
--
-- A module is a unit of its own kind. Its versions are proposals, voted,
-- counted, signed on the chain and brought into force like those of an
-- article; their kind says what they hold:
-- title — `title` is the title of the document in its source language;
-- order — `body` is the order of the section, one article (unit id) per line.
ALTER TABLE units ADD COLUMN kind TEXT NOT NULL DEFAULT 'article'; -- article | title | order
-- The modules added to an existing document (src/module_amend.rs): decided
-- once per document, from what it holds then (its title, the order of each
-- section), never touching an article or a vote. Each decision is kept here:
-- applied (and what was created), refused (and why), or present (the document
-- was born with its modules).
CREATE TABLE module_amendments (
amendment_id TEXT NOT NULL,
doc_id TEXT NOT NULL REFERENCES documents(id),
outcome TEXT NOT NULL, -- applied | refused | present
reason TEXT, -- why it was refused
created TEXT, -- JSON array of the codes of the modules created
at TEXT NOT NULL,
PRIMARY KEY (amendment_id, doc_id)
);