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:
@@ -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
@@ -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
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user