ROADMAP: section 7 is binding. PRECISION: prismatic-only is a limit

ROADMAP opened by saying nothing in it is a promise. Section 7 holds eighteen standing principles cited by number as settled law from commit messages and from other documents - 4 governs what is hashed, 13 defines what a standard is, 17 governs what may write to a record, 18 governs how a contribution is admitted. A reader taking the header at its word would conclude Principle 17 is optional. The disclaimer now says what it always meant: it covers section 4 sequence and section 5 assumptions, not section 7.

Principle 5 gets the same qualification PROCESS section 8 got. A permanent deviation is the specification is right about facts on a host and would be licence to lower a REQ if read without limit.

PRECISION section 10 requires every section 7 entry to say whether it is a limit that work may lift or a boundary that was chosen. The prismatic-only entry said neither, which is the single most consequential ambiguity in the document. It is a limit, and the reason is now recorded: the oracle is a two-dimensional oracle with a scalar length multiplier - every recorded value is a property of the cross-section except LENGTH_MM, VOLUME_MM3 and MASS_G, and volume equals rounded section area times length to within 3.6e-12 across all 113 accepted cases. Lift it carelessly and that relation stops holding; nothing fails, it just stops meaning what it means. Anything keeping each station two-dimensional preserves it.

Also in PRECISION: STL export landed and is no longer planned. An absent export format is a limit; the refusal to emit toolpaths is a boundary.

ROADMAP section 4a corrected to match STAGING-STATE section 3a: nothing here is implemented on Kane Fabric, and SASE was used and never defined. The port is recorded done. The seed commit and test count are removed as derivable.

IDENTITY-CONTRACT: the rewrap owed from a76879f.

Applied by anchored patcher. Suite 643 passed, oracle intact. Documentation only.
This commit is contained in:
2026-09-14 04:45:04 -05:00
parent a76879f4a0
commit 0c220f449b
3 changed files with 66 additions and 19 deletions
+38 -14
View File
@@ -7,15 +7,24 @@ project aims at and why; it does not schedule work and nothing here is a promise
that something will be built. `HANDOFF.md` §4 holds the actual order. Where the
two disagree, §4 wins on sequence and this document wins on purpose.
**§7 is the exception, and it is binding.** The eighteen standing principles are
cited by number as settled law from commit messages and from other documents —
Principle 4 governs what is hashed, 13 defines what a standard is, 17 governs
what may write to a record, 18 governs how a contribution is admitted. A reader
taking the paragraph above at its word would conclude Principle 17 is optional.
It is not. The disclaimer covers §4's sequence and §5's assumptions; it has never
covered §7, and said so nowhere until 2026-09-13.
§§1, 2, 3 and 7 are the durable parts and are still correct. §4's sequence and
§5's production assumptions have both drifted since 18 AUG; the divergences are
recorded as open questions in `HANDOFF.md` §11 rather than patched here, because
resolving them needs the whole repository in view at once.
§5's production assumptions had both drifted since 18 AUG. The documentation
audit of 2026-09-13 corrected what was factually wrong here and in the companion
documents; questions that remain genuinely open are in `HANDOFF.md` §11, and
requirements that stand and are not met are in `DIVERGENCES.md`.
| | |
|---|---|
| Updated | 2026-08-18 |
| Companions | `PROCESS.md`, `ENVIRONMENT.md`, `STAGING-STATE.md`, `FAILURES.md` |
| Updated | 2026-09-13 |
| Companions | `PROCESS.md`, `ENVIRONMENT.md`, `STAGING-STATE.md`, `FAILURES.md`, `DIVERGENCES.md` |
---
@@ -144,15 +153,20 @@ a new call into the same machinery, not a new machine.
- **Container SMTP egress blocked, 2026-08-17.** The project-local half of F-025
is corrected; the estate question about `wg-pk` client trust remains open.
- **Repository seeded, 2026-08-18.** Reference implementation, frozen oracle,
pinned toolchain and test harness at `c7e32d8`. Dependencies installed, oracle
verified in-container, `3 passed, 236 skipped`.
pinned toolchain and test harness. Dependencies installed and the oracle
verified in-container. The commit and the test count are not recorded here —
`git log` and `make test` report them, and the figures that used to sit on
this line described the repository for two days.
- **Container baseline established, 2026-08-18.** All three containers on
`srv-b` conform, asserted by an executable check rather than by inspection.
### Next — the port
### The port — done, 2026-08-20
Port `sb-geom` to Shapely; `pytest -n auto` green against all 123 cases. A port
that accepts the ten rejections is wrong.
`sb-geom` is ported to Shapely and the suite is green against all 123 cases. A
port that accepted the ten rejections would have been wrong; this one does not.
The reasoning below is kept because it explains a choice that is now
load-bearing rather than prospective.
Why this rather than more OpenSCAD: exceptions can be caught. Roughly half the
defensive complexity in the current library exists because an OpenSCAD assert
@@ -189,9 +203,15 @@ getting their own generators.
## 4a. Parallel project
**Kane Fabric** — a separate project on the same host, and the platform on
which SASE, HOA Diagnostics, the Mechanical Compiler and other SASE-consuming
projects are implemented.
**Kane Fabric** — a separate project on the same host. Each project has its own
FQDN and its own container; they share the service bridge, the WireGuard hub and
the proxy.
An earlier version of this paragraph called Kane Fabric the platform on which
SASE, HOA Diagnostics, the Mechanical Compiler and other SASE-consuming projects
are implemented. Nothing here is implemented on Kane Fabric, and `SASE` was used
without being defined anywhere in this repository. Corrected 2026-09-13 on the
operator's statement of the topology.
It is recorded here so its existence is known, not because it creates work.
Kane Fabric owns geographic state; the Mechanical Compiler owns member
@@ -275,7 +295,11 @@ on whether it makes distributed manufacturing capacity legible.
toolchain versions. Hashing parameters plus generator revision keeps a
qualification valid across an upgrade that did not change the geometry.
5. **A permanent deviation is not a deviation — it is the specification.**
Promote it and delete the exception.
Promote it and delete the exception. **This governs facts about a host, not a
requirement the code has not met.** A REQ is never lowered to match what was
built: it stands, the gap is recorded in `DIVERGENCES.md`, and the correction
is owed by the code. A specification that agrees with whatever exists
specifies nothing.
6. **Record the failure before correcting it.** Then apply the smallest
corrective change, not the one that also fixes three things you were
worried about.