Skip to content

Commit e59b5fe

Browse files
Merge pull request #13 from engineeredsoftware/v28/gate-8-promotion-proof
Gate 8 harden V28 metadevelopment
2 parents 44cedbb + a3d7392 commit e59b5fe

20 files changed

Lines changed: 604 additions & 203 deletions

.github/workflows/bitcode-gate-quality.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ jobs:
4444
node scripts/check-bitcode-spec-family.mjs --version V28 --mode draft --current-target V27
4545
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V27 --draft-target V28
4646
node scripts/check-bitcode-canonical-inputs.mjs --current-target V27
47+
node scripts/check-v28-metadevelopment-readiness.mjs --skip-branch-check
48+
node scripts/promote-bitcode-canon.mjs --version V28 --commit HEAD --dry-run
4749
4850
- name: Validate source casing and imports
4951
run: |

.github/workflows/v28-canon-promotion.yml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,17 @@ jobs:
6060
node scripts/check-bitcode-spec-family.mjs --version V28 --mode draft --current-target V27
6161
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V27 --draft-target V28
6262
node scripts/check-bitcode-canonical-inputs.mjs --current-target V27
63-
node scripts/check-bitcode-spec-family.mjs --version V28 --mode promoted --current-target V28 --skip-pointer-check
64-
node scripts/check-bitcode-canonical-inputs.mjs --current-target V28 --skip-pointer-check
63+
node scripts/check-v28-metadevelopment-readiness.mjs --promotion-mode --skip-branch-check
64+
node scripts/promote-bitcode-canon.mjs --version V28 --commit HEAD --dry-run
6565
elif [ "$POINTER" = "V28" ]; then
6666
node scripts/check-bitcode-spec-family.mjs --version V28 --mode promoted --current-target V28
6767
node scripts/check-bitcode-canonical-inputs.mjs --current-target V28
68+
node scripts/check-v28-metadevelopment-readiness.mjs --promotion-mode --skip-branch-check
6869
else
6970
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
7071
exit 1
7172
fi
72-
npm --prefix protocol-demonstration run test
73+
npm --prefix protocol-demonstration run test:v28-mvp-qa
7374
pnpm --filter @bitcode/pipeline-asset-pack typecheck
7475
pnpm --filter @bitcode/pipeline-hosts typecheck
7576
pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit
@@ -83,7 +84,7 @@ jobs:
8384
--runInBand
8485
git diff --check
8586
86-
- name: Promote BITCODE_SPEC pointer
87+
- name: Promote V28 canon files
8788
if: >-
8889
${{
8990
github.event_name == 'pull_request' &&
@@ -96,9 +97,19 @@ jobs:
9697
echo "BITCODE_SPEC.txt already points to V28."
9798
exit 0
9899
fi
99-
printf "V28\n" > BITCODE_SPEC.txt
100+
PROOF_SOURCE_COMMIT="$(git rev-parse HEAD)"
101+
npm run promote:canon -- --version V28 --commit "$PROOF_SOURCE_COMMIT"
100102
git config user.name "github-actions[bot]"
101103
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
102-
git add BITCODE_SPEC.txt
104+
git add \
105+
BITCODE_SPEC.txt \
106+
BITCODE_SPEC_V28.md \
107+
BITCODE_SPEC_V28_DELTA.md \
108+
BITCODE_SPEC_V28_NOTES.md \
109+
BITCODE_SPEC_V28_PARITY_MATRIX.md \
110+
BITCODE_SPEC_V28_PROVEN.md \
111+
protocol-demonstration/src/canon-posture.js \
112+
protocol-demonstration/README.md \
113+
.bitcode
103114
git commit -m "Promote Bitcode canon to V28"
104115
git push origin "HEAD:$HEAD_BRANCH"

BITCODE_SPEC_V28.md

Lines changed: 55 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -759,21 +759,66 @@ Implementation evidence:
759759
`uapi/tests/terminalOperationalHealthPanel.test.tsx`; package-level BTD tests
760760
are runnable through `pnpm -C packages/btd test`.
761761

762-
### Gate 8: V28 Promotion Proof
762+
### Gate 8: V28 Metadevelopment And Promotion Proof
763763

764764
Purpose:
765-
Promote V28 only after commercial Protocol/Terminal MVP QA, Terminal readiness productization, MCP/ChatGPT App MVP readiness, tests, proof, and documentation are closed.
765+
Close the repository metadevelopment standard that V28 introduced: version branches, gate-prefixed branches, quality commit messages, maintained gate workflows, promotion workflows, and a carryforward audit that prevents remaining commercial-product work from being hidden inside promotion prose.
766766

767767
Acceptance criteria:
768768

769-
- V28 SPEC, DELTA, NOTES, PARITY, and PROVEN are synchronized.
770-
- package/API, ORM, protocol-demonstration, UAPI route, Terminal UI, and build checks pass.
771-
- unversioned-route scan passes.
772-
- V29 Terminal depth, V30 Protocol/BTD hardening, V31 Auxillaries depth, V32 provation/testing depth, V33 interface depth beyond the V28 MVP, V34 deployment depth, V35 telemetry/documenting depth, and V36+ Exchange/Conversations depth are explicitly staged.
773-
- a V28 version-branch pull request into `main` runs promotion-grade
774-
automation; only after those validations pass does automation commit the
775-
standalone `BITCODE_SPEC.txt` pointer change.
776-
- `BITCODE_SPEC.txt` remains V27 until the final automated promotion step.
769+
- branch policy is source-documented: V28 work integrates through
770+
`version/v28`; gate work occurs on `v28/gate-N-*` branches; gate branches
771+
merge into the version branch; only the complete version branch requests
772+
promotion into `main`.
773+
- contribution policy is source-documented: commits are quality-grouped and
774+
titled descriptively enough for promotion proof and future operators.
775+
- the gate workflow checks draft canon posture, import/casing hygiene, package
776+
typechecks/tests, focused UAPI route/Terminal tests, demonstration tests,
777+
diff hygiene, metadevelopment readiness, and a dry-run V28 promotion plan.
778+
- the V28 promotion workflow triggers only for `version/v28` pull requests into
779+
`main`, runs promotion-grade checks, executes the canonical promotion script,
780+
generates/commits `BITCODE_SPEC_V28_PROVEN.md`, and advances
781+
`BITCODE_SPEC.txt` only in the automated promotion commit.
782+
- the V28 parity matrix includes a rich carryforward audit for the commercial
783+
product gates that follow Gate 8: Depositing, Read Request, Read-Need
784+
synthesis/review/resynthesis, Finding Fits, AssetPack preview, BTC
785+
settlement/read-license, PR delivery, Terminal UX, public/internal
786+
documentation, proof coverage, and local/live validation.
787+
- unversioned-route scan passes and `BITCODE_SPEC.txt` remains V27 until the
788+
final automated promotion step.
789+
790+
### Gate 9: Commercial Depositing And Depository Evidence
791+
792+
Gate 9 owns source deposit productization after the metadevelopment gate:
793+
repository inventory, deposit admission, depository evidence storage,
794+
measurement vectors, wallet/depositor boundaries, search-index population, and
795+
Terminal visibility for deposited source materials.
796+
797+
### Gate 10: Read Request To Read-Need Comprehension
798+
799+
Gate 10 owns the enterprise Reading start: request Read, synthesize a
800+
reviewable Need through `ReadNeedComprehensionSynthesis`, allow feedback and
801+
resynthesis, persist accepted Need truth, and block Finding Fits until the Need
802+
is reviewed.
803+
804+
### Gate 11: Finding Fits And Source-Safe AssetPack Preview
805+
806+
Gate 11 owns `ReadFindingFitsSynthesis`: depository search, candidate fit
807+
ranking, fitting deposits as synthesis context, AssetPack measurement, source-
808+
safe preview, Share-to-Fee quote, and proof-rich Terminal stream visibility.
809+
810+
### Gate 12: Settlement, Rights, Delivery, And Reconciliation
811+
812+
Gate 12 owns BTC settlement, depositor/reader ownership boundaries, read-license
813+
rows, ledger/database synchronization, protected-source unlock, and PR delivery
814+
of the purchased AssetPack into the Reading repository.
815+
816+
### Gate 13: Commercial Product Closure And Promotion Readiness
817+
818+
Gate 13 owns final commercial-product closure: website application UX, package
819+
abstractions, tests, local live validation, staging-testnet readback evidence,
820+
public/internal documentation, generated proof coverage, and the final
821+
`version/v28` promotion pull request.
777822

778823
## Draft Boundary
779824

BITCODE_SPEC_V28_DELTA.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,19 @@ Adds registry-derived organization, MCP API, ChatGPT App access decisions, and p
176176

177177
Adds Terminal-operated deployment lane, telemetry, upgrade, migration, and provider readiness state.
178178

179-
### Gate 8: V28 Promotion Proof
179+
### Gate 8: V28 Metadevelopment And Promotion Proof
180180

181-
Adds final proof, build/test, unversioned route, and scope-staging closure.
181+
Adds branch policy, quality commit discipline, gate workflow hardening,
182+
canonical promotion automation, V28 promotion-script support, unversioned-route
183+
checking, deterministic ledgerized model posture checks, and a carryforward
184+
audit for the product gates that follow.
185+
186+
### Gate 9+: Commercial Product Closure Gates
187+
188+
Gate 9 and later gates close the remaining commercial product flow: Depositing,
189+
Read Request, Read-Need synthesis/review/resynthesis, Finding Fits, AssetPack
190+
preview, BTC settlement, read-license/right transfer, protected-source unlock,
191+
PR delivery, Terminal UX, documentation, proof coverage, and live validation.
182192

183193
## Later Version Handoff
184194

BITCODE_SPEC_V28_NOTES.md

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -525,11 +525,34 @@ The minimum useful V28 gate plan is Protocol/Terminal-MVP-first:
525525
live Reading pipeline telemetry. Placeholder mocks are not acceptance
526526
evidence.
527527

528-
8. **Gate 8: V28 Promotion Proof**
529-
- SPEC, DELTA, NOTES, PARITY, and PROVEN exist.
530-
- Terminal tests, MCP/ChatGPT App tests, package/API tests, route tests, UAPI build, and demonstration tests pass.
528+
8. **Gate 8: V28 Metadevelopment And Promotion Proof**
529+
- Branching policy, gate branch naming, quality commit-message discipline,
530+
gate workflow checks, and V28 promotion workflow checks are documented and
531+
source-validated.
532+
- The V28 promotion workflow is maintained as the only path that advances
533+
`BITCODE_SPEC.txt`; it runs promotion-grade validation, executes the
534+
canonical promotion script, generates `BITCODE_SPEC_V28_PROVEN.md`, and
535+
commits promotion artifacts back to `version/v28`.
536+
- The parity matrix carries an explicit product-gate carryforward audit so
537+
Depositing, Read Request, Read-Need, Finding Fits, AssetPack preview,
538+
settlement, delivery, Terminal UX, documentation, proof coverage, and live
539+
validation work cannot be hidden as vague future cleanup.
531540
- V29 Terminal depth, V30 Protocol/BTD hardening, V31 Auxillaries depth, V32 provation/testing depth, V33 interface depth beyond the V28 MVP, V34 deployment depth, V35 telemetry/documenting depth, and V36+ Exchange/Conversations depth are explicitly staged rather than mixed into V28.
532541

542+
## Gate 8 metadevelopment closure notes
543+
544+
Gate 8 is not a commercial-product feature gate. It standardizes how the
545+
remaining V28 gates close: gate-prefixed branches merge into `version/v28`,
546+
the version branch is the only branch that can request promotion into `main`,
547+
and promotion automation must either generate and commit the canonical proof
548+
appendix or fail closed.
549+
550+
Gate 8 also separates promotion mechanics from product closure. Subsequent V28
551+
gates still own the commercial product flow: source Depositing, Read Request,
552+
Need synthesis/review/resynthesis, Finding Fits over the depository, source-safe
553+
AssetPack preview, BTC settlement, read-license/right transfer, pull-request
554+
delivery, Terminal usability, proof coverage, and local/live validation.
555+
533556
## Non-Goals For V28
534557

535558
- V28 does not implement or QA Exchange product behavior, broad order-book depth, external market routing, wrapper liquidity, or third-party marketplace integration.
@@ -543,8 +566,10 @@ The minimum useful V28 gate plan is Protocol/Terminal-MVP-first:
543566
Before V28 implementation closes, rerun at minimum:
544567

545568
- `cat BITCODE_SPEC.txt`
569+
- `pnpm run check:v28-metadevelopment`
546570
- `find uapi/app/api -path '*v[0-9]*' -print | sort`
547571
- `rg -n 'gap blocking|partial blocking|not started|not promoted|not generated yet' BITCODE_SPEC_V28*`
572+
- `node scripts/promote-bitcode-canon.mjs --version V28 --commit HEAD --dry-run`
548573
- `pnpm -C packages/api build`
549574
- `pnpm -C packages/orm build`
550575
- `npm --prefix protocol-demonstration run test:v27-crypto`

0 commit comments

Comments
 (0)