docs(6207): migrations 0079, 0082, 0087, 0104, 0111, 0112, 0116-0118 drop milestone and record citations

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-21 20:47:43 -04:00
co-authored by Claude Opus 5.5
parent 8c9bb000fa
commit 79059ca1e7
9 changed files with 23 additions and 26 deletions
+3 -3
View File
@@ -1,13 +1,13 @@
"""The shape ledger: code_shapes (#2787, milestone 294) """The shape ledger: code_shapes
Revision ID: 0079 Revision ID: 0079
Revises: 0078 Revises: 0078
Create Date: 2026-08-19 Create Date: 2026-08-19
The accounting half of the pattern system (governing note 2786): the snippet The accounting half of the pattern system: the snippet
library records canon (small); this table accounts for EVERY shape the library records canon (small); this table accounts for EVERY shape the
coverage extractor finds in a bound repo (total). Rows arrive `unclassified` coverage extractor finds in a bound repo (total). Rows arrive `unclassified`
from the coverage sync (step 2) and gain judgments — canonical / instance / from the coverage sync and gain judgments — canonical / instance /
variant / exempt — from audits, hooks, and the mechanical proposer. variant / exempt — from audits, hooks, and the mechanical proposer.
Unclassified IS the todo list. Unclassified IS the todo list.
""" """
+5 -5
View File
@@ -1,13 +1,13 @@
"""Per-binding ref — the branch a project's ledger follows (#2873, milestone 294) """Per-binding ref — the branch a project's ledger follows
Revision ID: 0082 Revision ID: 0082
Revises: 0081 Revises: 0081
Create Date: 2026-08-21 Create Date: 2026-08-21
A repo binding used to imply the repo's default branch; the shape ledger Without a ref, a repo binding implies the repo's default branch, so the shape
therefore only saw work after a merge to main, while the operator's work ledger only sees work after a merge — while a project may do its work on a
lands on dev (rule 1). `ref` names the branch the coverage refresh reads — dev branch. `ref` names the branch the coverage refresh reads; NULL means the
NULL keeps today's behaviour (the forge's default branch). forge's default branch.
""" """
import sqlalchemy as sa import sqlalchemy as sa
from alembic import op from alembic import op
+3 -3
View File
@@ -1,12 +1,12 @@
"""canonical_systems — the global area vocabulary, promoted from a constant """canonical_systems — the global area vocabulary, promoted from a constant
to a table (milestone 307 step 1, decision note 3026) to a table
Revision ID: 0087 Revision ID: 0087
Revises: 0086 Revises: 0086
Create Date: 2026-08-26 Create Date: 2026-08-26
The eight standard area names already existed as `STANDARD_SYSTEMS`, a tuple in The eight standard area names already existed as `STANDARD_SYSTEMS`, a tuple in
services/systems.py that milestone 297 seeds into a project at inception. A services/systems.py that is seeded into a project at inception. A
constant cannot be referenced: a rule that applies across projects has nothing constant cannot be referenced: a rule that applies across projects has nothing
to point at, because `systems.project_id` is NOT NULL and a family rule cannot to point at, because `systems.project_id` is NOT NULL and a family rule cannot
be chained to one project's row. This makes the vocabulary a table so it can be be chained to one project's row. This makes the vocabulary a table so it can be
@@ -35,7 +35,7 @@ depends_on = None
# service computes (canonical_slug: lowercase, "&" -> "and", non-alphanumerics # service computes (canonical_slug: lowercase, "&" -> "and", non-alphanumerics
# collapsed to "-"). Charters stay generic on purpose: a project refines its # collapsed to "-"). Charters stay generic on purpose: a project refines its
# own System's description, never this one. Nothing here names an app, a repo, # own System's description, never this one. Nothing here names an app, a repo,
# a vendor or a house convention — the catalog ships to every install (rule 115). # a vendor or a house convention — the catalog ships to every install.
_SEED = ( _SEED = (
("CI & Release", "ci-and-release", ("CI & Release", "ci-and-release",
"How the project is verified and shipped: pipelines, runners, image/artifact builds, release tagging and rollback."), "How the project is verified and shipped: pipelines, runners, image/artifact builds, release tagging and rollback."),
@@ -1,10 +1,10 @@
"""retrieval_tuning_events carries the space each number was measured in (#4104) """retrieval_tuning_events carries the space each number was measured in
Revision ID: 0104 Revision ID: 0104
Revises: 0103 Revises: 0103
Create Date: 2026-09-17 Create Date: 2026-09-17
Milestone 416 step 6. A retrieval floor is a cosine distance in ONE embedding A retrieval floor is a cosine distance in ONE embedding
model's geometry, computed over documents cut one particular way. Change the model's geometry, computed over documents cut one particular way. Change the
model and every score moves at once; change the chunker and the same record model and every score moves at once; change the chunker and the same record
embeds different text. Either way a number chosen before the change is a embeds different text. Either way a number chosen before the change is a
@@ -16,7 +16,7 @@ merely unknown.
the startup backfill re-embeds precisely what is stale instead of wiping the the startup backfill re-embeds precisely what is stale instead of wiping the
table. These two columns are that idea applied to the tuned numbers. table. These two columns are that idea applied to the tuned numbers.
TWO COLUMNS, NOT ONE (rule 149). A reader has to be able to say WHICH half TWO COLUMNS, NOT ONE. A reader has to be able to say WHICH half
moved: a new embedding model and a re-cut document shape invalidate the same moved: a new embedding model and a re-cut document shape invalidate the same
numbers for different reasons, and a fused `"<model>@<n>"` could only report numbers for different reasons, and a fused `"<model>@<n>"` could only report
that something changed. that something changed.
+2 -3
View File
@@ -1,5 +1,4 @@
"""lesson_rule_links — a lesson points at the rule it is an instance of """lesson_rule_links — a lesson points at the rule it is an instance of
(milestone 440 step 1, #4196)
Revision ID: 0111 Revision ID: 0111
Revises: 0110 Revises: 0110
@@ -21,8 +20,8 @@ down_revision = "0110"
branch_labels = None branch_labels = None
depends_on = None depends_on = None
# One place, so the CHECK and the model's LINK_STATES cannot drift (rule 36: # One place, so the CHECK and the model's LINK_STATES cannot drift (a new
# a new value later means DROP + ADD CONSTRAINT in the same migration). # value later means DROP + ADD CONSTRAINT in the same migration).
_STATES = ("suggested", "confirmed", "rejected") _STATES = ("suggested", "confirmed", "rejected")
+1 -2
View File
@@ -1,5 +1,4 @@
"""lesson_no_rule — "no rule fits" is a recorded answer (milestone 440 step 2, """lesson_no_rule — "no rule fits" is a recorded answer
#4631)
Revision ID: 0112 Revision ID: 0112
Revises: 0111 Revises: 0111
+2 -2
View File
@@ -1,5 +1,5 @@
"""moment_mappings — an install's own corrections to which actions reach which """moment_mappings — an install's own corrections to which actions reach which
moment (milestone 458 step 2) moment
Revision ID: 0116 Revision ID: 0116
Revises: 0115 Revises: 0115
@@ -8,7 +8,7 @@ Create Date: 2026-10-05
The moments and their default actions are code; this table holds what an The moments and their default actions are code; this table holds what an
install adds ("make ship" is a deliver here) and the defaults it switches off. install adds ("make ship" is a deliver here) and the defaults it switches off.
User-owned configuration, so it cascades with the user. No CHECK on `effect`, User-owned configuration, so it cascades with the user. No CHECK on `effect`,
which the service validates (rule 36). which the service validates.
""" """
import sqlalchemy as sa import sqlalchemy as sa
from alembic import op from alembic import op
+2 -2
View File
@@ -1,4 +1,4 @@
"""rule_moments — the moments of work a rule arrives at (milestone 458 step 3) """rule_moments — the moments of work a rule arrives at
Revision ID: 0117 Revision ID: 0117
Revises: 0116 Revises: 0116
@@ -28,7 +28,7 @@ def upgrade() -> None:
sa.Column("moment", sa.Text(), primary_key=True), sa.Column("moment", sa.Text(), primary_key=True),
sa.Column("created_at", sa.DateTime(timezone=True), nullable=True), sa.Column("created_at", sa.DateTime(timezone=True), nullable=True),
) )
# The delivery read (step 4) asks "which rules are on this moment?", the # The delivery read asks "which rules are on this moment?", the
# opposite direction from the primary key. # opposite direction from the primary key.
op.create_index("ix_rule_moments_moment", "rule_moments", ["moment"]) op.create_index("ix_rule_moments_moment", "rule_moments", ["moment"])
@@ -1,5 +1,4 @@
"""rule_moment_judgments — whether a rule belongs on a moment, and who said so """rule_moment_judgments — whether a rule belongs on a moment, and who said so
(milestone 458 step 7, #4925)
Revision ID: 0118 Revision ID: 0118
Revises: 0117 Revises: 0117
@@ -23,8 +22,8 @@ branch_labels = None
depends_on = None depends_on = None
# One place each, so the CHECKs and the model's JUDGMENT_STATES / SOURCES # One place each, so the CHECKs and the model's JUDGMENT_STATES / SOURCES
# cannot drift (rule 36: a new value later means DROP + ADD CONSTRAINT in the # cannot drift (a new value later means DROP + ADD CONSTRAINT in the same
# same migration). # migration).
_STATES = ("suggested", "confirmed", "rejected") _STATES = ("suggested", "confirmed", "rejected")
_SOURCES = ("pass", "signal", "edit") _SOURCES = ("pass", "signal", "edit")