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
+4 -4
View File
@@ -210,10 +210,10 @@ That cheapness is the point. It means the placement of the line is a reversible
decision rather than a structural one. decision rather than a structural one.
**Where the line falls once it is enforced: export is gated; looking is not.** **Where the line falls once it is enforced: export is gated; looking is not.**
The catalogue and The catalogue and the composer are open to anyone. What requires membership is
the composer are open to anyone. What requires membership is producing an producing an artifact that carries a design record, because the record names an
artifact that carries a design record, because the record names an author and an author, and an author only means something once somebody established who they
author only means something once somebody established who they are. The site is are. The site is
the shopfront; the wall goes where the claim is made. the shopfront; the wall goes where the claim is made.
--- ---
+24 -1
View File
@@ -246,6 +246,24 @@ contributor proposing an assembly layer is proposing a different product.
cross-section swept along a straight axis. Not tapers, not curved axes, not cross-section swept along a straight axis. Not tapers, not curved axes, not
varying sections, not surfaces of revolution, not anything organic. varying sections, not surfaces of revolution, not anything organic.
**This is a limit, not a boundary** — §10's distinction, which this entry failed
to state until 2026-09-13. It may be lifted by work, and the reason it exists is
not that sweeping is the honest bound of what the compiler may claim.
It exists because **the oracle is a two-dimensional oracle with a scalar length
multiplier.** Of the values the 123 cases record, every one 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 the restriction carelessly and that relation stops holding. Nothing
would fail; it would simply stop meaning what it means.
Anything that keeps each station's section two-dimensional preserves it. A member
modelled as an ordered set of prismatic segments, each carrying its own section,
still verifies segment by segment through the existing machinery, and a
one-segment member is byte-identical to today. Tapers and curved axes stay
outside the family and should: they vary continuously rather than piecewise, and
the volume relation would not survive them.
**It performs no engineering analysis whatsoever.** No stress, no load, no **It performs no engineering analysis whatsoever.** No stress, no load, no
deflection, no buckling, no fatigue, no thermal behaviour, no failure deflection, no buckling, no fatigue, no thermal behaviour, no failure
prediction. It reports geometry — area, wall thickness, mass — and nothing about prediction. It reports geometry — area, wall thickness, mass — and nothing about
@@ -275,7 +293,12 @@ slicing.
Geometry interchange is a different thing and is *not* excluded here. An STL or Geometry interchange is a different thing and is *not* excluded here. An STL or
a STEP file describes a shape; a toolpath describes what a machine should do. a STEP file describes a shape; a toolpath describes what a machine should do.
Exporting the former is in scope and planned; producing the latter is not. Exporting the former is in scope; producing the latter is not.
**STL export landed 2026-09-12** and needs no CAD kernel — a member is prismatic
by definition, so the mesh is two triangulated caps and a quad strip down the
boundary. STEP remains unbuilt. An absent export format is a *limit* in §10's
sense; the refusal to emit toolpaths is a *boundary*.
--- ---
+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 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. 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 §§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 §5's production assumptions had both drifted since 18 AUG. The documentation
recorded as open questions in `HANDOFF.md` §11 rather than patched here, because audit of 2026-09-13 corrected what was factually wrong here and in the companion
resolving them needs the whole repository in view at once. 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 | | Updated | 2026-09-13 |
| Companions | `PROCESS.md`, `ENVIRONMENT.md`, `STAGING-STATE.md`, `FAILURES.md` | | 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 - **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. is corrected; the estate question about `wg-pk` client trust remains open.
- **Repository seeded, 2026-08-18.** Reference implementation, frozen oracle, - **Repository seeded, 2026-08-18.** Reference implementation, frozen oracle,
pinned toolchain and test harness at `c7e32d8`. Dependencies installed, oracle pinned toolchain and test harness. Dependencies installed and the oracle
verified in-container, `3 passed, 236 skipped`. 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 - **Container baseline established, 2026-08-18.** All three containers on
`srv-b` conform, asserted by an executable check rather than by inspection. `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 `sb-geom` is ported to Shapely and the suite is green against all 123 cases. A
that accepts the ten rejections is wrong. 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 Why this rather than more OpenSCAD: exceptions can be caught. Roughly half the
defensive complexity in the current library exists because an OpenSCAD assert defensive complexity in the current library exists because an OpenSCAD assert
@@ -189,9 +203,15 @@ getting their own generators.
## 4a. Parallel project ## 4a. Parallel project
**Kane Fabric** — a separate project on the same host, and the platform on **Kane Fabric** — a separate project on the same host. Each project has its own
which SASE, HOA Diagnostics, the Mechanical Compiler and other SASE-consuming FQDN and its own container; they share the service bridge, the WireGuard hub and
projects are implemented. 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. It is recorded here so its existence is known, not because it creates work.
Kane Fabric owns geographic state; the Mechanical Compiler owns member 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 toolchain versions. Hashing parameters plus generator revision keeps a
qualification valid across an upgrade that did not change the geometry. qualification valid across an upgrade that did not change the geometry.
5. **A permanent deviation is not a deviation — it is the specification.** 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 6. **Record the failure before correcting it.** Then apply the smallest
corrective change, not the one that also fixes three things you were corrective change, not the one that also fixes three things you were
worried about. worried about.