Skip to content

Commit ef81d87

Browse files
spec: V24, realize external interfacings
Promote V24 as the active canon for realizing external interfacings. Realize ENGI’s external interface model across Bitcoin mainchain, sidechain bridge execution, repeated-read payment execution, auditable compute containers, auditable storage publication/retrieval, and live GitHub App interfacing. Keep ENGI as the system name and NGI as the share and settlement denomination. Close the V23-deferred Bitcoin boundary by carrying real execution classes and receipt families instead of only modeled or demonstration posture. Emit proof-bearing intent, execution, observation, continuity, and reconciliation artifacts across all realized external interfaces, with one unified execution contract and fail-closed drift detection. Require and implement canonical mode isolation across `production`, `staging`, `development`, and `mock` for every external interface. Bind each mode to distinct external identities and resources rather than label-only separation, and expose the active runtime posture so the same demo can operate as mock, stubbed-demonstration, live-configured, or live-misconfigured without changing artifact shape. Add exhaustive external telemetry as canon rather than operational afterthought. Emit and classify external execution policy, environment profile, telemetry policy, telemetry summary, execution ledger, and reconciliation log artifacts, and project sanitized realization summaries by principal through the operator shell and API. Close proof and artifact continuity around realized external execution. Rebind proof-witness, proof-contract, system-proof-bundle, deliverables, and external-boundary surfaces so realized external receipts, continuity ledgers, reconciliation logs, and repeated-read payment artifacts are part of canonical closure rather than side data. Repair the metaspec regression that let later SPEC versions shrink away from full-system canon. Restore V24 as a full-canon rewrite with no-silent-inheritance discipline, tighten the strict specifying profile, and ensure future promoted specs fail if appendix-grade carriers, generated-artifact truth, subsystem totality, proof-family detail, or promotion-state closure drift. Enforce canon quality mechanically. Add host-agnostic local pre-commit basics, commit-msg gating for `spec: VN` work, strict spec-quality execution, and containerized CI/CD canon checks so spec density, promotion truth, and implementation closure remain testable instead of author-memory dependent. Extend promotion tooling and generated evidence for V24. Canon posture, promotion preparation, `_PROVEN_` generation, spec-family checking, canonical-input checking, and canon-posture drift reporting now support V24 as the active canon and V25 as the next draft target. Refresh the active demonstration and operator surfaces so V24 presents actual external realization posture clearly, including environment-mode status, missing-secret blocking state, auth mode, remote auth exchange count, continuity state, and realized external interface summaries. Validated with: - node --test engi-demo/test/core.test.js - node --test engi-demo/test/api.test.js - node --test engi-demo/test/workflow.integration.test.js - node --test engi-demo/test/e2e.test.js - node --test engi-demo/test/proven-generator.test.js - node --test engi-demo/test/v21-specifying.test.js - node --test engi-demo/test/v22-canon-drift.test.js - node --test engi-demo/test/v24-spec-quality.test.js - node scripts/check-engi-spec-family.mjs --version V24 --mode promoted - node scripts/check-engi-canonical-inputs.mjs --current-target V24 - node scripts/check-engi-canon-posture-drift.mjs --active-canon V24 --draft-target V25 - node scripts/generate-engi-proven.mjs --version V24 --commit 00fabcb --allow-dirty --check - node scripts/run-engi-spec-quality.mjs --mode strict-version --version V24 V24 remains honest about deployment-managed boundaries: operator credentialing, third-party provisioning, and concrete live topology are environment-configured rather than repo-hardcoded, but V24 now fully specifies, implements, tests, and promotes the canonical external realization contract those deployments must satisfy.
1 parent 00fabcb commit ef81d87

19 files changed

Lines changed: 8767 additions & 228 deletions
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
{
2+
"reportId": "v24-canon-posture-drift-report",
3+
"version": "V24",
4+
"checkedActiveCanonVersion": "V24",
5+
"checkedDraftTargetVersion": "V25",
6+
"pointerVersion": "V24",
7+
"proofSourceCommit": "00fabcb625e8c50ac9222596fba3f05ee7ab77f4",
8+
"generatedAt": "2026-04-15T12:21:42-03:00",
9+
"generatorId": "engi-demo.proven-generator.v1",
10+
"worktreeState": "dirty-preview",
11+
"passed": true,
12+
"checkCount": 10,
13+
"blockingFailureCount": 0,
14+
"blockingFailures": [],
15+
"runtimeSpecVersion": "ENGI Spec V24 active canon / V25 system draft",
16+
"publicSpecVersion": "ENGI Spec V24 active canon / V25 system draft",
17+
"activeProvenAppendixPath": "ENGI_SPEC_V24_PROVEN.md",
18+
"policyRef": "policy://engi/spec-v24-active-v25-system-draft/current",
19+
"checkedFiles": [
20+
"engi-demo/README.md",
21+
"engi-demo/public/index.html",
22+
"engi-demo/public/app.js",
23+
"engi-demo/server.js"
24+
],
25+
"checks": [
26+
{
27+
"checkId": "pointer-active-canon-alignment",
28+
"passed": true,
29+
"detail": "ENGI_SPEC.txt points to V24 while runtime expects V24."
30+
},
31+
{
32+
"checkId": "canon-posture-constant-alignment",
33+
"passed": true,
34+
"detail": "canon-posture constants resolve V24/V25 with operator label V24 active canon / V25 system draft."
35+
},
36+
{
37+
"checkId": "proven-appendix-alignment",
38+
"passed": true,
39+
"detail": "active generated appendix path is ENGI_SPEC_V24_PROVEN.md."
40+
},
41+
{
42+
"checkId": "policy-ref-alignment",
43+
"passed": true,
44+
"detail": "policy reference is policy://engi/spec-v24-active-v25-system-draft/current."
45+
},
46+
{
47+
"checkId": "runtime-state-alignment",
48+
"passed": true,
49+
"detail": "buildInitialState() reports ENGI Spec V24 active canon / V25 system draft with canon posture V24/V25."
50+
},
51+
{
52+
"checkId": "public-state-alignment",
53+
"passed": true,
54+
"detail": "publicState() reports ENGI Spec V24 active canon / V25 system draft with canon posture V24/V25."
55+
},
56+
{
57+
"checkId": "server-api-alignment",
58+
"passed": true,
59+
"detail": "server.js keeps API posture sourced from SPEC_VERSION and buildPublicState(...)."
60+
},
61+
{
62+
"checkId": "browser-shell-placeholder-alignment",
63+
"passed": true,
64+
"detail": "public/index.html exposes canon-posture placeholders and no stale hardcoded hero posture."
65+
},
66+
{
67+
"checkId": "browser-shell-render-alignment",
68+
"passed": true,
69+
"detail": "public/app.js renders canon posture from runtime state and omits stale V15 explainer keys."
70+
},
71+
{
72+
"checkId": "readme-alignment",
73+
"passed": true,
74+
"detail": "README states V24 active canon and ENGI_SPEC_V24_PROVEN.md as the current generated appendix."
75+
}
76+
]
77+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"reportId": "v24-canonical-input-report",
3+
"version": "V24",
4+
"proofSourceCommit": "00fabcb625e8c50ac9222596fba3f05ee7ab77f4",
5+
"generatedAt": "2026-04-15T12:21:42-03:00",
6+
"generatorId": "engi-demo.proven-generator.v1",
7+
"worktreeState": "dirty-preview",
8+
"checkedTargetVersion": "V24",
9+
"pointerVersion": "V24",
10+
"passed": true,
11+
"failureCount": 0,
12+
"failures": [],
13+
"specPath": "ENGI_SPEC_V24.md",
14+
"provenPath": "ENGI_SPEC_V24_PROVEN.md",
15+
"parityPath": "ENGI_SPEC_V24_PARITY_MATRIX.md",
16+
"requiredGeneratedArtifactPaths": [
17+
".engi/v24-spec-family-report.json",
18+
".engi/v24-canonical-input-report.json",
19+
".engi/v24-canon-posture-drift-report.json"
20+
],
21+
"requiredGeneratedArtifactCount": 3
22+
}

.engi/v24-spec-family-report.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"reportId": "v24-spec-family-report",
3+
"version": "V24",
4+
"proofSourceCommit": "00fabcb625e8c50ac9222596fba3f05ee7ab77f4",
5+
"generatedAt": "2026-04-15T12:21:42-03:00",
6+
"generatorId": "engi-demo.proven-generator.v1",
7+
"worktreeState": "dirty-preview",
8+
"checkedVersion": "V24",
9+
"mode": "promoted",
10+
"currentTarget": "V24",
11+
"pointerVersion": "V24",
12+
"passed": true,
13+
"failureCount": 0,
14+
"failures": [],
15+
"requiredFiles": [
16+
"ENGI_SPEC_V24.md",
17+
"ENGI_SPEC_V24_DELTA.md",
18+
"ENGI_SPEC_V24_PARITY_MATRIX.md"
19+
],
20+
"supportFiles": [
21+
"ENGI_SPECIFYING.md",
22+
"ENGI_SPEC_TEMPLATEGUIDE.md"
23+
],
24+
"requiredStatusLabelCount": 4,
25+
"requiredPromotedStatusLabelCount": 1,
26+
"requiredSpecSectionCount": 40,
27+
"requiredAppendixSectionCount": 14,
28+
"requiredProofFamilyCount": 14,
29+
"requiredGeneratedArtifactCatalogSectionCount": 12,
30+
"requiredGeneratedArtifactPathCount": 3,
31+
"requiredSubsystemCoverageCount": 26
32+
}

ENGI_SPEC.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
V23
1+
V24

ENGI_SPEC_V24.md

Lines changed: 87 additions & 74 deletions
Large diffs are not rendered by default.

ENGI_SPEC_V24_DELTA.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22

33
## Status
44

5-
- Scope: V24 draft delta for realizing external interfacing after V23 deployed-infrastructure canon
6-
- Current canonical/latest target: `V23`
7-
- Current draft target: `V24`
5+
- Scope: V24 canonical delta for realizing external interfacing, exhaustive telemetry, and full-canon conformance after V23 deployed-infrastructure canon
6+
- Current canonical/latest target: `V24`
7+
- Canonical proof-source commit: `00fabcb625e8c50ac9222596fba3f05ee7ab77f4`
88
- Prior canonical anchor: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V23.md`
99
- Prior generated proof appendix: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V23_PROVEN.md`
10-
- Generated structured artifact inventory: active canonical `.engi/v19-*`, `.engi/v20-*`, and `.engi/v23-*` reports remain the current generated baseline; V24 draft-target generation adds `.engi/v24-spec-family-report.json`, `.engi/v24-canonical-input-report.json`, and `ENGI_SPEC_V24_PROVEN.md`
11-
- Source parity state: V24 draft-target source currently exposes environment-mode realization profiling, env-resolved active runtime posture, emitted draft-target execution/container/GitHub receipt families, enriched external-boundary and projection summaries, and spec-quality enforcement; live third-party Bitcoin/sidechain/container/GitHub execution remains open implementation work
12-
- Active canonical anchor: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V23.md`
13-
- Active generated proof appendix: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V23_PROVEN.md`
14-
- Draft companion spec: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24.md`
15-
- Draft companion parity ledger: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24_PARITY_MATRIX.md`
16-
- Draft companion notes file: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24_NOTES.md`
17-
- Pointer state remains: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC.txt` -> `V23`
18-
- V24 state: draft only; this delta records the realization-focused change set and supporting metaspec/build repairs, not promoted truth
10+
- Generated structured artifact inventory: active canonical `.engi/v19-*` reproducible reports, `.engi/v20-*` operator-quality reports, `.engi/v24-spec-family-report.json`, `.engi/v24-canonical-input-report.json`, and `.engi/v24-canon-posture-drift-report.json`; `ENGI_SPEC_V24_PROVEN.md` is the active generated proof appendix for V24
11+
- Source parity state: V24 source-side mode-isolated external realization, live adapter contracts, continuity and reconciliation ledgers, exhaustive telemetry, build-process enforcement, and generated evidence are canonicalized; this delta records the V23-to-V24 closure
12+
- Active canonical anchor: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24.md`
13+
- Active generated proof appendix: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24_PROVEN.md`
14+
- Spec companion: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24.md`
15+
- Parity companion: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24_PARITY_MATRIX.md`
16+
- Notes companion: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24_NOTES.md`
17+
- Current canonical pointer: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC.txt` -> `V24`
18+
- V24 state: canonical promotion complete; V24 external-realization canon is active and this delta records the promoted external-interface, telemetry, and conformance closure set
1919

2020
## Why V24 exists
2121

@@ -34,10 +34,10 @@ That leaves the next delta:
3434
V24 exists to close that realization gap.
3535
The majority focus is realizing actuality of ENGI through configuration and demonstration toggles so the same system can run in `production`, `staging`, `development`, and `mock` with real external dependencies where claimed.
3636

37-
An initial source slice now exists for the draft target:
37+
The realized source slice now exists in the active canon:
3838
- `engi-demo/src/canonical/v24-external-realization.js` emits a unified environment-mode descriptor,
3939
- `engi-demo/src/canonical/v24-external-realization.js` now also resolves an env-driven active runtime posture for the currently selected mode,
40-
- `engi-demo/src/canonical/v24-external-execution.js` emits draft-target execution, observation, container, storage, and GitHub receipt families,
40+
- `engi-demo/src/canonical/v24-external-execution.js` emits execution, observation, container, storage, GitHub, and repeated-read receipt families,
4141
- `engi-demo/server.js` exposes both the descriptor and the active runtime posture at `/api/v24/external-realization`,
4242
- `engi-demo/src/engi-demo.js` and `engi-demo/src/demo-shell-state.js` project those receipt families into branch artifacts, boundary manifests, and operator-facing realization summaries,
4343
- and tests already close over four-mode isolation, telemetry-policy posture, emitted receipt families, and projection-safe realization summaries.
@@ -84,10 +84,10 @@ V24 therefore needs:
8484

8585
## Accepted V24 drafting decisions
8686

87-
The current accepted V24 drafting decisions are:
87+
The accepted V24 decisions are:
8888

8989
1. V24 is realization-facing.
90-
2. V24 keeps V23 active while drafting proceeds.
90+
2. V24 promoted only after source, tests, generated evidence, and conformance closure were present.
9191
3. Real BTC-backed execution is in scope, including mainchain and sidechain-connected bridge posture.
9292
4. Auditable compute and storage containers are in scope for all real ENGI usages and specification expectations.
9393
5. End-to-end real GitHub App interfacings are in scope.
@@ -97,7 +97,7 @@ The current accepted V24 drafting decisions are:
9797
9. Exhaustive telemetry and environment-matrix coverage are part of realization, not post-hoc hardening.
9898
10. Demonstration toggles must be able to switch between actual and mock external operation without changing artifact shapes or weakening proof-bearing surfaces.
9999
11. Reliable build enforcement on canonical `spec: VN` commits is part of the version contract because external-interface promises are too brittle to rely on author memory.
100-
12. V24 opens three draft proof families:
100+
12. V24 opens three external-realization proof families:
101101
- `external-realization-execution`
102102
- `containerized-reality`
103103
- `github-live-interface`
@@ -108,17 +108,17 @@ The current accepted V24 drafting decisions are:
108108

109109
## Explicitly deferred
110110

111-
Still explicitly deferred beyond first-gate V24 drafting:
112-
- any claim that V24 is already promoted,
113-
- any claim that source already executes these real network and container paths,
114-
- any claim that bulk private proof storage belongs on Bitcoin mainchain,
115-
- and any claim that GitHub mutation side effects are acceptable without ENGI-side receipts.
111+
Still explicitly deferred beyond promoted V24:
112+
- moving bulk private proof storage to Bitcoin mainchain,
113+
- moving bulk proof computation to Bitcoin mainchain,
114+
- fixing one signer, treasury, federation, or operator topology as canonical where source intentionally keeps it policy-bound,
115+
- and accepting any network, container, or GitHub side effect without ENGI-side receipts and proof closure.
116116

117117
## Draft implementation sequence
118118

119-
The intended V24 sequencing is:
119+
The realized V24 sequencing is:
120120

121-
1. draft the V24 file family while V23 remains the active canon,
121+
1. draft the V24 file family while V23 remained the active canon,
122122
2. define the four-mode environment matrix and isolation requirements for all external interfaces,
123123
3. define the realized external-execution artifact family,
124124
4. define container execution and storage publication artifacts,
@@ -131,7 +131,7 @@ The intended V24 sequencing is:
131131
11. restore full-canon coverage carriers and strict spec-family conformance,
132132
12. add host-agnostic pre-commit and containerized CI or CD enforcement for spec-quality gates,
133133
13. generate V24 evidence,
134-
14. and promote only after those closure conditions are satisfied.
134+
14. and promote only after those closure conditions were satisfied.
135135

136136
## Commit-body direction
137137

ENGI_SPEC_V24_NOTES.md

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
## Status
44

5-
- Scope: non-canonical V24 working notes for realizing external interfacing after V23 deployed-infrastructure canon
6-
- Canonical pointer: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC.txt` -> `V23`
7-
- Active canonical anchor: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V23.md`
8-
- Active generated proof appendix: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V23_PROVEN.md`
9-
- Draft specification target: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24.md`
10-
- V24 state: drafting only; notes track open shaping questions and implementation follow-ups
5+
- Scope: non-canonical V24 working notes after promotion of the external-realization canon
6+
- Canonical pointer: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC.txt` -> `V24`
7+
- Active canonical anchor: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24.md`
8+
- Active generated proof appendix: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V24_PROVEN.md`
9+
- V24 state: canonical promotion complete; notes now track residual V25-facing follow-ups only
1110

1211
## Non-Canonical Notes Rule
1312

@@ -28,7 +27,7 @@ Any note that survives as system truth must be promoted into:
2827
- a future `ENGI_SPEC_V24_PROVEN.md`,
2928
- or required generated `.engi/v24-*` artifacts once those exist.
3029

31-
## Starting draft input from V23
30+
## Starting input from V23
3231

3332
V23 closed:
3433
- Bitcoin-facing artifact contracts,
@@ -37,7 +36,7 @@ V23 closed:
3736
- prototype compute and storage reality manifests,
3837
- and generated proof and parity closure.
3938

40-
The V24 draft-input baseline is therefore:
39+
The V24 baseline from V23 is:
4140
- keep Bitcoin as audit and spend substrate,
4241
- keep ENGI compute and private storage off-chain,
4342
- preserve NGI denomination rules,
@@ -46,7 +45,7 @@ The V24 draft-input baseline is therefore:
4645

4746
## Current V24 center
4847

49-
The strongest V24 center from the current draft is:
48+
The strongest V24 center carried into promotion is:
5049
- realize external interfacing rather than extend modeled boundaries,
5150
- add real network-capable Bitcoin and sidechain execution paths,
5251
- add real auditable compute and storage containers,
@@ -57,7 +56,7 @@ The strongest V24 center from the current draft is:
5756
- require exhaustive telemetry and strong environment-matrix coverage,
5857
- and preserve fail-closed auditability across every realized interface.
5958

60-
The V24 draft now also carries one supporting metaspec repair:
59+
V24 also carries one supporting metaspec repair:
6160
- restore full-canon, no-silent-inheritance promotion discipline,
6261
- restore strict spec-family carrier enforcement,
6362
- and push those checks down into pre-commit and containerized CI or CD gates.
@@ -125,21 +124,18 @@ Candidate requirement:
125124
Candidate implication:
126125
- future spec shrink or checker-profile weakening should fail before promotion.
127126

128-
## Open drafting questions
127+
## Residual V25-facing questions
129128

130-
Current questions worth resolving before implementation starts:
131-
- whether V24 should keep separate proof families for network, containers, and GitHub or collapse some of them into a smaller execution family set,
132-
- whether storage publication and retrieval should live in one container family or two linked families,
133-
- what minimum real-network scope is required for V24 first-gate implementation,
134-
- whether GitHub live interfacing should require both read and write paths in the same promotion gate,
135-
- how much telemetry should live in emitted `.engi/` artifacts versus referenced remote logs or traces,
136-
- whether `mock` mode should be deterministic-only or may include emulator-backed execution classes where the receipt shapes remain identical,
137-
- and how strict the `spec: VN` commit-title matcher should be for triggering full spec-conformance gates.
129+
Current follow-up questions after V24 promotion:
130+
- how much operator-facing deployment guidance should move into a V25 appendix versus remaining in README and environment contracts,
131+
- whether future realized interfaces should extend the existing proof families or open a new cross-interface continuity family,
132+
- whether emulator-backed execution classes beyond current mock and local-executor posture are worth canonizing,
133+
- and which future external surfaces, if any, should join the active mode-isolated execution matrix.
138134

139-
## Initial V24 non-goals
135+
## V24 non-goals preserved after promotion
140136

141-
Based on the current draft, V24 should not begin by:
142-
- changing `ENGI_SPEC.txt`,
143-
- weakening V23 disclosure or settlement posture,
144-
- claiming mainchain or GitHub realization before receipts exist,
145-
- or treating containerization as non-audited operational detail.
137+
Promoted V24 still does not:
138+
- move bulk proof computation to Bitcoin mainchain,
139+
- move private artifact payloads to public-chain storage,
140+
- weaken V23 disclosure or settlement posture,
141+
- or treat containerization as non-audited operational detail.

0 commit comments

Comments
 (0)