|
| 1 | +# ENGI Spec V12 |
| 2 | + |
| 3 | +Status: draft |
| 4 | +Scope: ENGI v1 / V12 demonstration-purpose canon |
| 5 | +Canonical pointer: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC.txt` remains `V11` until V12 is explicitly promoted |
| 6 | +Baseline: `/Users/garrettmaring/Developer/ENGI/ENGI_SPEC_V11.md` |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +# 1. Executive summary |
| 11 | + |
| 12 | +V12 is the **demonstration-purpose** spec. |
| 13 | + |
| 14 | +V11 made ENGI read as operationally inevitable. |
| 15 | +V12 keeps that thesis and applies it with maximum confidence to the actual demonstration path: |
| 16 | + |
| 17 | +- depositing, |
| 18 | +- needing, |
| 19 | +- selecting, |
| 20 | +- branching, |
| 21 | +- proving, |
| 22 | +- settling. |
| 23 | + |
| 24 | +V12 is not primarily a system-repair version. |
| 25 | +V12 assumes the core ENGI system shape is already substantially correct. |
| 26 | +The main job of V12 is to make the demonstration so strong, legible, and native that the operating model feels like the unavoidable shape of generative enterprise needs. |
| 27 | + |
| 28 | +The central V12 rule is: |
| 29 | + |
| 30 | +> The demo MUST present depositing against need as the natural operating model of ENGI, such that proof, branching, identity/auth, and settlement read as necessary consequences rather than auxiliary explanation layers. |
| 31 | +
|
| 32 | +That means V12 focuses on: |
| 33 | +1. depositing as a first-class operator action, |
| 34 | +2. needing as a first-class measured demand surface, |
| 35 | +3. the depositing-to-needing relationship as the center of the system, |
| 36 | +4. artifact-kind-native interaction quality, |
| 37 | +5. identity/auth as operating spine, |
| 38 | +6. proof and settlement as the inevitable closure path, |
| 39 | +7. demonstration pacing, summaries, and interaction design. |
| 40 | + |
| 41 | +--- |
| 42 | + |
| 43 | +# 2. Why V12 exists |
| 44 | + |
| 45 | +A V11-quality ENGI demo can already explain the system convincingly. |
| 46 | +But there is still a final difference between: |
| 47 | +- a demo that is strong, |
| 48 | +- and a demo that makes the thesis feel complete. |
| 49 | + |
| 50 | +V12 exists to close that difference. |
| 51 | + |
| 52 | +V12 assumes that little if any core system spec should still need large repair. |
| 53 | +If V12 surfaces remaining spec issues, those SHOULD be treated as edge-rounding discovered through demonstration refinement, not as evidence that the system architecture is still unsettled. |
| 54 | + |
| 55 | +The V12 burden is therefore different from V8–V11: |
| 56 | +- less “fix missing surfaces,” |
| 57 | +- more “make the total operator experience feel canonically right.” |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +# 3. Source-of-truth and versioning rule |
| 62 | + |
| 63 | +V12 preserves the ENGI versioning rule: |
| 64 | +- each new spec version is written as a new versioned file, |
| 65 | +- previous versions remain in place, |
| 66 | +- `ENGI_SPEC.txt` is the only canonical pointer, |
| 67 | +- V12 work may proceed while the pointer remains on `V11`. |
| 68 | + |
| 69 | +Therefore: |
| 70 | +- V12 lives in `ENGI_SPEC_V12.md`, |
| 71 | +- V11 remains intact, |
| 72 | +- V11 remains the canonical pointer until explicit promotion. |
| 73 | + |
| 74 | +--- |
| 75 | + |
| 76 | +# 4. Normative language |
| 77 | + |
| 78 | +The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, **SHOULD NOT**, and **MAY** are to be interpreted as normative requirements for V12 conformance. |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +# 5. V12 thesis standard |
| 83 | + |
| 84 | +V12 adopts the highest current ENGI thesis standard: |
| 85 | + |
| 86 | +**operational inevitability for generative enterprise needs**. |
| 87 | + |
| 88 | +A V12-conformant demonstration SHOULD make a serious operator conclude: |
| 89 | +- depositing against measured need is the correct operating model, |
| 90 | +- artifact-bearing supply should enter the system this way, |
| 91 | +- identity/auth should be arranged this way, |
| 92 | +- proof should close this way, |
| 93 | +- settlement should follow this way. |
| 94 | + |
| 95 | +If the demo still feels like one of many plausible product shapes, V12 is not complete. |
| 96 | + |
| 97 | +--- |
| 98 | + |
| 99 | +# 6. Primary V12 surface: depositing-to-needing |
| 100 | + |
| 101 | +V12 introduces a primary surface pair: |
| 102 | +- the **depositing surface**, |
| 103 | +- the **needing surface**, |
| 104 | + |
| 105 | +and a required relation between them. |
| 106 | + |
| 107 | +## 6.1 Depositing surface |
| 108 | + |
| 109 | +```ts |
| 110 | +type DepositingSurface = { |
| 111 | + depositSessionId: string |
| 112 | + depositProfile: string |
| 113 | + repoSupplyRef: string |
| 114 | + selectedInventoryRefs: string[] |
| 115 | + selectedArtifactKindCounts: Record<string, number> |
| 116 | + selectedOriginKindCounts: Record<string, number> |
| 117 | + addressingRoot: string | null |
| 118 | + signingRoot: string | null |
| 119 | + authRoot: string | null |
| 120 | + depositIntentSummary: string |
| 121 | +} |
| 122 | +``` |
| 123 | +
|
| 124 | +A V12 demo MUST make the depositing surface feel like the beginning of the operator story, not a data-entry sidecar. |
| 125 | +
|
| 126 | +## 6.2 Needing surface |
| 127 | +
|
| 128 | +```ts |
| 129 | +type NeedingSurface = { |
| 130 | + needId: string |
| 131 | + demonstrationProfile: DemonstrationProfile |
| 132 | + parserKind: string |
| 133 | + taskSummary: string |
| 134 | + failureModeSummary: string[] |
| 135 | + targetArtifactKinds: string[] |
| 136 | + boundednessSummary: string |
| 137 | + closureCriteria: string[] |
| 138 | +} |
| 139 | +``` |
| 140 | +
|
| 141 | +A V12 demo MUST make the needing surface feel like live demand measurement rather than background metadata. |
| 142 | +
|
| 143 | +## 6.3 Required depositing-to-needing relation |
| 144 | +
|
| 145 | +```ts |
| 146 | +type DepositingToNeedingSurface = { |
| 147 | + relationId: string |
| 148 | + depositSessionId: string |
| 149 | + needId: string |
| 150 | + fitSummary: string |
| 151 | + decisiveKinds: string[] |
| 152 | + overlapKinds: string[] |
| 153 | + normalizationPressure: 'low' | 'medium' | 'high' |
| 154 | + branchIntentSummary: string |
| 155 | + proofIntentSummary: string |
| 156 | + settlementIntentSummary: string |
| 157 | +} |
| 158 | +``` |
| 159 | +
|
| 160 | +V12 requirements: |
| 161 | +1. The demo MUST stage depositing before or alongside needing in a way that makes their fit legible. |
| 162 | +2. The demo MUST explain why the selected deposit is right for the measured need. |
| 163 | +3. The demo MUST make clear whether the current demonstration profile is decisive/targeted or normalization-heavy/composite. |
| 164 | +4. The depositing-to-needing relation MUST be visible before deep proof inspection. |
| 165 | +
|
| 166 | +--- |
| 167 | +
|
| 168 | +# 7. V12 demonstration profiles |
| 169 | +
|
| 170 | +V12 keeps the V11 profile distinction and sharpens its demonstration role. |
| 171 | +
|
| 172 | +## 7.1 Profile A — targeted deposit / bounded need |
| 173 | +
|
| 174 | +Profile A exists to demonstrate: |
| 175 | +- small decisive deposit, |
| 176 | +- sharply bounded need, |
| 177 | +- tight closure, |
| 178 | +- short proof path, |
| 179 | +- concentrated settlement story. |
| 180 | +
|
| 181 | +## 7.2 Profile B — normalization deposit / composite need |
| 182 | +
|
| 183 | +Profile B exists to demonstrate: |
| 184 | +- overlapping multi-kind deposit, |
| 185 | +- broader composite need, |
| 186 | +- normalization-heavy branch reasoning, |
| 187 | +- broader proof burden, |
| 188 | +- source-to-shares-heavy settlement explanation. |
| 189 | +
|
| 190 | +V12 requirement: |
| 191 | +The operator should understand these two profiles first through: |
| 192 | +- deposit mode, |
| 193 | +- need mode, |
| 194 | +- closure shape, |
| 195 | +
|
| 196 | +not first through infrastructure/boundary differences. |
| 197 | +
|
| 198 | +--- |
| 199 | +
|
| 200 | +# 8. Required V12 demonstration ordering |
| 201 | +
|
| 202 | +The default V12 demonstration SHOULD prefer this order: |
| 203 | +
|
| 204 | +1. repo supply, |
| 205 | +2. depositing, |
| 206 | +3. needing, |
| 207 | +4. deposit-to-need fit, |
| 208 | +5. selected asset pack, |
| 209 | +6. branch materialization, |
| 210 | +7. proof closure, |
| 211 | +8. settlement, |
| 212 | +9. deep artifacts and boundary surfaces. |
| 213 | +
|
| 214 | +V12 requirement: |
| 215 | +This order MUST read as one operating chain, not as separate feature panels. |
| 216 | +
|
| 217 | +--- |
| 218 | +
|
| 219 | +# 9. Artifact-kind-native interaction standard |
| 220 | +
|
| 221 | +V12 strengthens artifact-kind-native demonstration quality. |
| 222 | +
|
| 223 | +Requirements: |
| 224 | +1. Different artifact kinds MUST feel natively different in deposit UX. |
| 225 | +2. Proof, patch, config, runbook, incident note, benchmark output, and mixed bundle deposits MUST each carry kind-native summaries. |
| 226 | +3. A mixed bundle MUST still preserve its internal kind composition clearly. |
| 227 | +4. The operator SHOULD be able to understand why a kind matters for the measured need before opening raw content. |
| 228 | +
|
| 229 | +--- |
| 230 | +
|
| 231 | +# 10. Identity/auth as demonstration spine |
| 232 | +
|
| 233 | +V12 keeps the V11 identity/auth spine and raises the operator-quality bar. |
| 234 | +
|
| 235 | +Requirements: |
| 236 | +1. Addressing, signing, GitHub App auth, selection authority, branch authority, proof authority, and settlement authority MUST read as one chain. |
| 237 | +2. The operator SHOULD be able to summarize that chain without opening every low-level manifest. |
| 238 | +3. The identity/auth spine SHOULD feel like the system backbone, not a verification appendix. |
| 239 | +
|
| 240 | +--- |
| 241 | +
|
| 242 | +# 11. Proof and settlement as necessary closure |
| 243 | +
|
| 244 | +V12 does not primarily add new proof families. |
| 245 | +It changes how proof and settlement are demonstrated. |
| 246 | +
|
| 247 | +Requirements: |
| 248 | +1. Proof MUST read as the natural closure of depositing against need. |
| 249 | +2. Settlement MUST read as the natural economic closure of proof-bearing selection. |
| 250 | +3. Source-to-shares SHOULD remain visible where normalization matters, but SHOULD not drown out the main demonstration story when the profile is targeted. |
| 251 | +4. The operator SHOULD understand why a branch was materialized and why a share was earned before reading exact accounting internals. |
| 252 | +
|
| 253 | +--- |
| 254 | +
|
| 255 | +# 12. Boundary realism in V12 |
| 256 | +
|
| 257 | +V12 preserves boundary honesty. |
| 258 | +However, boundary realism becomes a supporting explanatory layer rather than the primary demo headline. |
| 259 | +
|
| 260 | +Requirements: |
| 261 | +1. Boundary surfaces MUST remain explicit. |
| 262 | +2. They MUST explain modeled-local, executed-local, and external-required truth clearly. |
| 263 | +3. They MUST NOT displace depositing and needing as the main operator story. |
| 264 | +
|
| 265 | +--- |
| 266 | +
|
| 267 | +# 13. Demonstration completeness standard |
| 268 | +
|
| 269 | +A V12 demonstration is complete when: |
| 270 | +1. depositing feels native, |
| 271 | +2. needing feels measured and consequential, |
| 272 | +3. the fit between them feels direct, |
| 273 | +4. artifact-kind diversity feels first-class, |
| 274 | +5. identity/auth feels inevitable, |
| 275 | +6. proof and settlement feel necessary, |
| 276 | +7. the whole system reads as one operating model for enterprise generative work. |
| 277 | +
|
| 278 | +--- |
| 279 | +
|
| 280 | +# 14. Non-goals for V12 |
| 281 | +
|
| 282 | +V12 does not primarily require: |
| 283 | +- major new backend architecture, |
| 284 | +- reopening already-stable core system design, |
| 285 | +- speculative infrastructure unrelated to demonstration quality, |
| 286 | +- replacing honest local stand-ins with fake live production behavior. |
| 287 | +
|
| 288 | +If such work becomes necessary, it SHOULD be justified by a concrete demonstration deficit. |
| 289 | +
|
| 290 | +--- |
| 291 | +
|
| 292 | +# 15. Initial V12 implementation target |
| 293 | +
|
| 294 | +The first coherent V12 implementation slice is successful if: |
| 295 | +1. V12 docs exist and clearly state the demonstration-purpose charter, |
| 296 | +2. the demo foregrounds depositing and needing as the primary surfaces, |
| 297 | +3. deposit-to-need fit is explicitly surfaced, |
| 298 | +4. profile A/B demo distinction is legible through deposit/need/closure shape, |
| 299 | +5. tests remain green. |
| 300 | +
|
| 301 | +--- |
| 302 | +
|
| 303 | +# 16. Promotion guidance |
| 304 | +
|
| 305 | +V12 is the first spec version that should be considered a candidate for canonical promotion primarily on demonstration strength rather than on unresolved system completion. |
| 306 | +
|
| 307 | +Promotion SHOULD wait until the operator story feels complete enough that only marginal edges remain. |
0 commit comments