From 499d3366f91fe509513755053c1ad87a14e8319b Mon Sep 17 00:00:00 2001 From: Garrett Maring Date: Fri, 12 Jun 2026 14:13:56 -0300 Subject: [PATCH] V47 promotion: open V48 notes posture Add the V48 notes-only draft opening after promoted V47, mirroring the V46 promotion precedent: refresh the roadmap posture (V47 active canon, V48 notes-only draft target, V48 interactive local experiential QA named as the next queued work), align the canonical-input artifact inventory (add the missing V47 branch to buildRequiredCanonicalArtifacts so the active V47 canon reports its 11 required generated artifacts), and add the V47 expectation to the protocol-demonstration canonical-input count map. The V48 notes record the QA-first opening charter: staging Supabase preparation, wallet-fauceted testnet BTC, local telemetry expectations, step-by-step debugging, and hands-on validation of identity/authentication, depositing, reading, and ledgerized journaling. Refresh the V47 gate and readiness artifacts against the advanced roadmap posture. Validated with: - pnpm --filter @bitcode/protocol test (237 pass) - npm --prefix protocol-demonstration test (191 pass) - npm --prefix protocol-demonstration run test:v28-mvp-qa - node scripts/run-bitcode-spec-quality.mjs --mode strict-version --version V48 - node scripts/run-bitcode-spec-quality.mjs --mode basic - node scripts/check-bitcode-canonical-inputs.mjs --current-target V47 (artifacts=11) - node scripts/check-v47-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests - node scripts/check-import-casing.mjs - git diff --check Co-Authored-By: Claude Fable 5 --- .../v47-depositor-website-completion.json | 4 +- .bitcode/v47-e2e-ip-selling-buying-tests.json | 4 +- .../v47-feature-excess-alignment-audit.json | 4 +- .../v47-landing-public-launch-messaging.json | 4 +- ...acks-auxillaries-commercial-dashboard.json | 4 +- .bitcode/v47-promotion-readiness-report.json | 20 +++--- .bitcode/v47-reader-website-completion.json | 4 +- .../v47-seller-buyer-state-machine-law.json | 4 +- ...-staging-testnet-deployment-rehearsal.json | 4 +- BITCODE_SPEC_V48_NOTES.md | 65 +++++++++++++++++++ SPECIFICATIONS_ROADMAP.md | 23 +++---- .../protocol/src/canonical/v21-specifying.js | 3 + .../test/v21-specifying.test.js | 1 + 13 files changed, 107 insertions(+), 37 deletions(-) create mode 100644 BITCODE_SPEC_V48_NOTES.md diff --git a/.bitcode/v47-depositor-website-completion.json b/.bitcode/v47-depositor-website-completion.json index f1fe86068..db9d008fc 100644 --- a/.bitcode/v47-depositor-website-completion.json +++ b/.bitcode/v47-depositor-website-completion.json @@ -367,7 +367,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "depositRouteModel": "uapi/app/deposit/deposit-route-model.ts:6485e388dd745c79907f992c", "depositClient": "uapi/app/deposit/DepositPageClient.tsx:f01b600f9ef64cd3739460ef", "depositPage": "uapi/app/deposit/page.tsx:6bab6a9debab3f4350d0ddca", @@ -389,7 +389,7 @@ "gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:406e0b5c647ecf5d1f1b3097", "canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:ab37403273c35c918071e3cd" }, - "artifactRoot": "v47-depositor-website-completion:2f255b29b5377c600235d0c3", + "artifactRoot": "v47-depositor-website-completion:69db1bf36ab6b8ed5a6a8e07", "coverage": { "requiredPredicateCount": 21, "passedPredicateCount": 21, diff --git a/.bitcode/v47-e2e-ip-selling-buying-tests.json b/.bitcode/v47-e2e-ip-selling-buying-tests.json index 742bdcf97..5c06a26ee 100644 --- a/.bitcode/v47-e2e-ip-selling-buying-tests.json +++ b/.bitcode/v47-e2e-ip-selling-buying-tests.json @@ -267,7 +267,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "ipExchangeSpec": "uapi/tests/e2e/commercial-mvp.ip-exchange.spec.ts:86af66133e5ede25935ffd9d", "e2eHelpers": "uapi/tests/e2e/commercial-mvp.helpers.ts:5bb8c28f36170b877e8a467a", "playwrightConfig": "uapi/playwright.config.ts:0aea6b01fa17b8c0614b2074", @@ -285,7 +285,7 @@ "gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:406e0b5c647ecf5d1f1b3097", "canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:ab37403273c35c918071e3cd" }, - "artifactRoot": "v47-e2e-ip-selling-buying-tests:41410d8306013276c481f356", + "artifactRoot": "v47-e2e-ip-selling-buying-tests:4ff062c8b668f3b560d68660", "coverage": { "requiredPredicateCount": 17, "passedPredicateCount": 17, diff --git a/.bitcode/v47-feature-excess-alignment-audit.json b/.bitcode/v47-feature-excess-alignment-audit.json index 06a201f72..fdea39834 100644 --- a/.bitcode/v47-feature-excess-alignment-audit.json +++ b/.bitcode/v47-feature-excess-alignment-audit.json @@ -5,7 +5,7 @@ "currentTarget": "V46", "sourceSafetyVerdict": "source-safe-launch-scope-metadata", "generatedAt": "deterministic", - "artifactRoot": "v47-feature-excess-alignment-audit:76351ff10deb6505730951c4", + "artifactRoot": "v47-feature-excess-alignment-audit:dab72941b86dd32b989699fa", "passed": true, "launchRouteIds": [ "/deposit", @@ -170,7 +170,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "publicCopy": "uapi/components/base/bitcode/layout/bitcode-public-copy.ts:c5be84e7b72e6930dd78f91d", "nav": "uapi/components/base/bitcode/layout/nav.tsx:2b2eaaf65982969883af8d1e", "features": "uapi/config/features.ts:6ff2da113ab17dfc468d7461", diff --git a/.bitcode/v47-landing-public-launch-messaging.json b/.bitcode/v47-landing-public-launch-messaging.json index 271dd8856..8a7ee80bd 100644 --- a/.bitcode/v47-landing-public-launch-messaging.json +++ b/.bitcode/v47-landing-public-launch-messaging.json @@ -292,7 +292,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "publicCopy": "uapi/components/base/bitcode/layout/bitcode-public-copy.ts:c5be84e7b72e6930dd78f91d", "landingPage": "uapi/app/(root)/components/MarketingLandingPage.tsx:5a7bbc85fa67525dd83127b2", "testnetSection": "uapi/app/(root)/components/landing/MarketingLandingTestnetSection.tsx:04e5895c15559d4f262335dc", @@ -309,7 +309,7 @@ "gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:406e0b5c647ecf5d1f1b3097", "canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:ab37403273c35c918071e3cd" }, - "artifactRoot": "v47-landing-public-launch-messaging:57accb8f0e8c1f4a4849e668", + "artifactRoot": "v47-landing-public-launch-messaging:73fe7d4d1b7fd9823bb4039a", "coverage": { "requiredPredicateCount": 17, "passedPredicateCount": 17, diff --git a/.bitcode/v47-packs-auxillaries-commercial-dashboard.json b/.bitcode/v47-packs-auxillaries-commercial-dashboard.json index 09980a0e7..e36223ded 100644 --- a/.bitcode/v47-packs-auxillaries-commercial-dashboard.json +++ b/.bitcode/v47-packs-auxillaries-commercial-dashboard.json @@ -352,7 +352,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "packsClient": "uapi/app/packs/PacksPageClient.tsx:6314e03df5bf7c598e5b7802", "packsPage": "uapi/app/packs/page.tsx:1b3d7a1cc00500a13042e8dd", "packActivityModel": "uapi/components/base/bitcode/activity/pack-activity-model.ts:5505d016bb0af42b461d98bb", @@ -378,7 +378,7 @@ "gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:406e0b5c647ecf5d1f1b3097", "canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:ab37403273c35c918071e3cd" }, - "artifactRoot": "v47-packs-auxillaries-commercial-dashboard:04b0c33edfcbaa5a04c4c79f", + "artifactRoot": "v47-packs-auxillaries-commercial-dashboard:592076dd0d00b8b3ca10582f", "coverage": { "requiredPredicateCount": 19, "passedPredicateCount": 19, diff --git a/.bitcode/v47-promotion-readiness-report.json b/.bitcode/v47-promotion-readiness-report.json index c37ae2291..846cbadd2 100644 --- a/.bitcode/v47-promotion-readiness-report.json +++ b/.bitcode/v47-promotion-readiness-report.json @@ -41,7 +41,7 @@ "relativePath": ".bitcode/v47-feature-excess-alignment-audit.json", "present": true, "parseable": true, - "digest": "sha256:ec88096fd3a5b362283f3ced4402dde5b36ffd6c8f17b439cab3cdad684d24c2", + "digest": "sha256:da12bec499f25df271e4023287ac4d4486e5a38c4a047e72c9c00122c5096bf5", "byteLength": 12908, "sourceSafe": true, "artifactId": "v47-feature-excess-alignment-audit", @@ -52,7 +52,7 @@ "relativePath": ".bitcode/v47-seller-buyer-state-machine-law.json", "present": true, "parseable": true, - "digest": "sha256:e83504078f8b9339d5791531235dd9a86899e5f2b7e379433c6d0a6466978847", + "digest": "sha256:96700b1ffed189105cbea860dae739d94854074d884674192d92b5501d44f552", "byteLength": 17843, "sourceSafe": true, "artifactId": "v47-seller-buyer-state-machine-law", @@ -63,7 +63,7 @@ "relativePath": ".bitcode/v47-depositor-website-completion.json", "present": true, "parseable": true, - "digest": "sha256:d7388b0964dd1290ff6ade6c4e489e6316f75df0e0047210acecfb4c6434bd01", + "digest": "sha256:f438a1dddfb52bfbc59d5b0c8447ecb5df8b235f5646c25dac675f43ff04029a", "byteLength": 16010, "sourceSafe": true, "artifactId": "v47-depositor-website-completion", @@ -74,7 +74,7 @@ "relativePath": ".bitcode/v47-reader-website-completion.json", "present": true, "parseable": true, - "digest": "sha256:aeab52810017f5318a110fe908a7171e016c4eee5cd1439b5435e69bf89abfcd", + "digest": "sha256:fdcf94dcb3deecb1b9916e92ecf698fca9398ae54d470eebc2483dfe79cb5f43", "byteLength": 15762, "sourceSafe": true, "artifactId": "v47-reader-website-completion", @@ -85,7 +85,7 @@ "relativePath": ".bitcode/v47-packs-auxillaries-commercial-dashboard.json", "present": true, "parseable": true, - "digest": "sha256:af71c0b0048fd00584984c387ecc6b19bfbb6b3400fb7824c066d23e8b9d3f54", + "digest": "sha256:8850b967e3542ac3609235a09e94d63a055471fd3b2a941f9a7c995b2840dfc0", "byteLength": 15726, "sourceSafe": true, "artifactId": "v47-packs-auxillaries-commercial-dashboard", @@ -96,7 +96,7 @@ "relativePath": ".bitcode/v47-e2e-ip-selling-buying-tests.json", "present": true, "parseable": true, - "digest": "sha256:0bef67ac6eb962f0cfbc828b941f3e7e43640ea76203d5de2760efd06614dbea", + "digest": "sha256:9d2abd92b70e9c21e81ab116ede7cd571c24bca682dd65193aad83ae90fdd8fa", "byteLength": 11931, "sourceSafe": true, "artifactId": "v47-e2e-ip-selling-buying-tests", @@ -107,7 +107,7 @@ "relativePath": ".bitcode/v47-landing-public-launch-messaging.json", "present": true, "parseable": true, - "digest": "sha256:60d12bff0913cf10c5ce853747bf28b61555d989f91ea9cb6ab67229165c4e24", + "digest": "sha256:ba2191a79a4310ce34a1081d8bd7abc2cb934ba8a3cbb7fd54e883b79491d198", "byteLength": 13005, "sourceSafe": true, "artifactId": "v47-landing-public-launch-messaging", @@ -118,7 +118,7 @@ "relativePath": ".bitcode/v47-staging-testnet-deployment-rehearsal.json", "present": true, "parseable": true, - "digest": "sha256:141bc3abe7e28c9d2861c17b1c46223677918a979f70f54b33f5fa2459c230d4", + "digest": "sha256:85954ec866c07b3594a495cf55420ca73e2f99d68fe33e43852376b767d54c0c", "byteLength": 17320, "sourceSafe": true, "artifactId": "v47-staging-testnet-deployment-rehearsal", @@ -348,7 +348,7 @@ { "relativePath": "packages/protocol/src/canonical/v21-specifying.js", "present": true, - "digest": "sha256:fcf80c461c17d0dcc4aa60f97a4c0e59fc665016ead08c4478dd870fde870b0b", + "digest": "sha256:c003b3545b9a6b2818bf797017e69ac8442cb157c4142c31d2d6e377bb6e56e1", "requiredTokens": [ { "token": ".bitcode/v47-promotion-readiness-report.json", @@ -456,7 +456,7 @@ { "relativePath": "SPECIFICATIONS_ROADMAP.md", "present": true, - "digest": "sha256:dd65b4f247f3f62a2b2ed54720b7169f9fac0be272aca381376497b58bbf2380", + "digest": "sha256:2400ea79d304ff28b7fd8e7a80306290f88d25b729c4bcac635df8e321453b40", "requiredTokens": [ { "token": "V47 Gate 10 closure anchor", diff --git a/.bitcode/v47-reader-website-completion.json b/.bitcode/v47-reader-website-completion.json index 10c57ab84..6f7e503ca 100644 --- a/.bitcode/v47-reader-website-completion.json +++ b/.bitcode/v47-reader-website-completion.json @@ -368,7 +368,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "readRouteModel": "uapi/app/read/read-route-model.ts:d033da8b41b8116c65cbcc7f", "readClient": "uapi/app/read/ReadPageClient.tsx:71e7c03e77104e9ab995dafb", "readPage": "uapi/app/read/page.tsx:37a723ed87feac05c0504249", @@ -390,7 +390,7 @@ "gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:406e0b5c647ecf5d1f1b3097", "canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:ab37403273c35c918071e3cd" }, - "artifactRoot": "v47-reader-website-completion:485bb67fa24ac23eafcf06c3", + "artifactRoot": "v47-reader-website-completion:0e4e896f3a81c72af308c7ca", "coverage": { "requiredPredicateCount": 20, "passedPredicateCount": 20, diff --git a/.bitcode/v47-seller-buyer-state-machine-law.json b/.bitcode/v47-seller-buyer-state-machine-law.json index 9aa8df9f4..d2d7aaeb5 100644 --- a/.bitcode/v47-seller-buyer-state-machine-law.json +++ b/.bitcode/v47-seller-buyer-state-machine-law.json @@ -453,7 +453,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "depositRouteModel": "uapi/app/deposit/deposit-route-model.ts:6485e388dd745c79907f992c", "readRouteModel": "uapi/app/read/read-route-model.ts:d033da8b41b8116c65cbcc7f", "packActivityModel": "uapi/components/base/bitcode/activity/pack-activity-model.ts:5505d016bb0af42b461d98bb", @@ -471,7 +471,7 @@ "gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:406e0b5c647ecf5d1f1b3097", "canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:ab37403273c35c918071e3cd" }, - "artifactRoot": "v47-seller-buyer-state-machine-law:40121031f1834158f610c7ce", + "artifactRoot": "v47-seller-buyer-state-machine-law:aa2e39a8535a5227507c7cba", "coverage": { "requiredPredicateCount": 18, "passedPredicateCount": 18, diff --git a/.bitcode/v47-staging-testnet-deployment-rehearsal.json b/.bitcode/v47-staging-testnet-deployment-rehearsal.json index 69f1374ea..07ff30c63 100644 --- a/.bitcode/v47-staging-testnet-deployment-rehearsal.json +++ b/.bitcode/v47-staging-testnet-deployment-rehearsal.json @@ -414,7 +414,7 @@ "delta": "BITCODE_SPEC_V47_DELTA.md:40c3a78f1d2502d7b3cdca93", "notes": "BITCODE_SPEC_V47_NOTES.md:171306fae397cc25ca8de67f", "parity": "BITCODE_SPEC_V47_PARITY_MATRIX.md:f2ec234455412a4f64c4e743", - "roadmap": "SPECIFICATIONS_ROADMAP.md:dd65b4f247f3f62a2b2ed547", + "roadmap": "SPECIFICATIONS_ROADMAP.md:2400ea79d304ff28b7fd8e7a", "vercelConfig": "vercel.json:dc37bcc712ffebde92df8ee3", "supabaseConfig": "supabase/config.toml:326a24c75a5e01be200cbc43", "baseMigration": "supabase/migrations/001_v26_production.sql:a5a5b7a51d989ebe7fb77d04", @@ -434,7 +434,7 @@ "gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:406e0b5c647ecf5d1f1b3097", "canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:ab37403273c35c918071e3cd" }, - "artifactRoot": "v47-staging-testnet-deployment-rehearsal:13185422b9bf8daca32a4582", + "artifactRoot": "v47-staging-testnet-deployment-rehearsal:099b055a9530034afffe20d2", "coverage": { "requiredPredicateCount": 18, "passedPredicateCount": 18, diff --git a/BITCODE_SPEC_V48_NOTES.md b/BITCODE_SPEC_V48_NOTES.md new file mode 100644 index 000000000..3f7c87312 --- /dev/null +++ b/BITCODE_SPEC_V48_NOTES.md @@ -0,0 +1,65 @@ +# Bitcode Spec V48 Notes + +## Status + +- Version: `V48` +- Canonical pointer: `BITCODE_SPEC.txt` -> `V47` +- Active canonical anchor: `BITCODE_SPEC_V47.md` +- Active generated proof appendix: `BITCODE_SPEC_V47_PROVEN.md` +- Current canonical/latest target: `V47` +- Prior canonical anchor: `BITCODE_SPEC_V46.md` +- Prior generated proof appendix: `BITCODE_SPEC_V46_PROVEN.md` +- V48 state: notes-only draft opening +- Scope: V48 starts as the interactive local experiential QA target over promoted V47 commercial website testnet launch canon. + +## Notes-only draft rule + +These notes make the V48 draft target visible to strict spec-quality checks +after V47 promotion. They are not first-gate implementation authority, not a +full V48 specification family, and not permission to bypass the V47 canon. V48 +work must continue by exercising the live commercial testnet experience +interactively, recording accepted findings, creating an explicit parity +matrix, and then opening scoped gate branches only after the QA-driven +specification intent is clear. + +## Deferred from V47 + +V47 promoted commercial website testnet launch readiness. It launch-froze +`/deposit`, `/read`, `/packs`, and Auxillaries, made measurement law and the +IP seller/buyer state machines exact, completed the depositor and reader +websites, the packs/Auxillaries commercial dashboard, browser-proven E2E IP +selling and buying, landing/public launch messaging, the staging-testnet +deployment rehearsal, and promotion readiness — all over the preserved +Bitcoin/BTC settlement language, BTD scalar-volume and rights language, +GitHub delivery boundaries, compute constraints, storage boundaries, and +build/process validation carried from the promoted V46 comprehension canon. + +V48 begins from the remaining question: what does the first live commercial +(testnet) experience still need before real users can walk every core step +without friction. The opening posture is intentionally experiential: run the +deployed staging-testnet system end to end, step by step, and fix what breaks. + +## Candidate V48 workstreams + +- Environment preparation: staging Supabase database readiness, wallet-fauceted + testnet BTC, local telemetry expectations, and a step-by-step debugging + experience that validates each core user step. +- Identity and authentication: sign up/in, and Auxillaries readiness for + connecting GitHub, wallet(s), and other external surfaces. +- Depositing: connecting knowledge, requesting AssetPack syntheses to review, + reviewing, and depositing. +- Reading: connecting knowledge, requesting a Read, reviewing the synthesized + Need, reviewing potential Fits, and buying Fit(s). +- Ledgerized journaling: replayability, auditability, `/packs` page UX/UI, and + the personal (Auxillaries) history of work. + +## Non-goals during V48 opening + +- Do not implement V48 product behavior from this notes-only opening. +- Do not rewrite V47 promoted canon except through an explicit addendum. +- Do not expose raw source, unpaid AssetPack source, secrets, wallet private + material, private settlement payloads, raw prompts, or raw provider responses. +- Do not collapse estimate, quote, observed payment, final settlement, + contributor allocation, delivery, compensation, and repair states. +- Do not launch value-bearing mainnet settlement in V48 opening work. +- Do not treat notes-only V48 material as stronger than active V47 protocol law. diff --git a/SPECIFICATIONS_ROADMAP.md b/SPECIFICATIONS_ROADMAP.md index a2a8e413a..6a9584084 100644 --- a/SPECIFICATIONS_ROADMAP.md +++ b/SPECIFICATIONS_ROADMAP.md @@ -2,12 +2,12 @@ ## Status -- Current active canonical pointer: `BITCODE_SPEC.txt` -> `V46` -- Current active canon: `BITCODE_SPEC_V46.md` -- Current draft target: `BITCODE_SPEC_V47.md` -- Current working gate: V47 Gate 10 Promotion Readiness. -- Next queued work after V47 Gate 10: V47 canonical promotion of `version/v47` into `main`. -- Latest closed gate: V47 Gate 9 Staging-Testnet Deployment Rehearsal, which added `V47StagingTestnetDeploymentRehearsal`, `.bitcode/v47-staging-testnet-deployment-rehearsal.json`, dry-run lane receipts for the staging-testnet full stack, the realistic-data contract minimums, the settlement observation ordering law, the blocked value-bearing mainnet lane, deployment truth source bindings, the rehearsal validation command catalog, workflow wiring, and `check:v47-gate9`. +- Current active canonical pointer: `BITCODE_SPEC.txt` -> `V47` +- Current active canon: `BITCODE_SPEC_V47.md` +- Current draft target: `BITCODE_SPEC_V48_NOTES.md` notes-only opening +- Current working gate: V48 opening preparation after V47 canonical promotion. +- Next queued work after V47 promotion: V48 interactive local experiential QA of the first live commercial testnet experience — environment preparation (staging Supabase, wallet-fauceted testnet BTC, local telemetry expectations, step-by-step debugging), then identity/authentication, depositing, reading, and ledgerized journaling — followed by the V48 parity matrix and scoped gate branches. +- Latest closed gate: V47 Gate 10 Promotion Readiness, which added `V47PromotionReadinessReport`, `.bitcode/v47-promotion-readiness-report.json`, `BITCODE_SPEC_V47_PROVEN.md`, V47 promotion workflow support, promotion-script support, promoted V47 / draft V48 runtime posture, source-safe promotion metadata, package exports, focused tests, workflow wiring, `check:v47-gate10`, and the standalone `BITCODE_SPEC.txt` pointer promotion to V47. - V47 Gate 1 closure target: open the full V47 draft family over active V46, freeze V47 as commercial website testnet launch readiness for `/deposit`, `/read`, `/packs`, and Auxillaries, specify that testnet means BTC amounts are testnet/free while production-intended protocol behavior remains real, make measurement law explicit, name IP seller and IP buyer launch flows, list scoped V47 gates, expose `check:v47-gate1`, and wire CI to validate active V46 plus draft V47 without claiming V47 promotion. - V47 Gate 1 closure anchor: Gate 1 is closed when V47 SPEC, DELTA, NOTES, and PARITY files validate in draft mode; this roadmap lists V47 as the active draft target; V46 remains the active pointer; CI runs draft V47 checks when V47 files exist; `check:v47-gate1` passes; and the gate branch is committed, pushed, and pull-requested into `version/v47`. - V47 Gate 2 closure target: audit website feature excess and gate alignment, preserve `/deposit`, `/read`, and `/packs` as launch routes, keep `/exchange` compatibility redirect-only, rewrite launch-facing `/terminal` and `/exchange` CTAs into current routes, retain `/terminal` and `/conversations` as flaggable direct workspaces, defer API/MCP, ChatGPT App, Bitcode Chat, value-bearing mainnet, source-bearing previews, and advanced market mechanics, expose `buildV47FeatureExcessAlignmentAudit`, generate `.bitcode/v47-feature-excess-alignment-audit.json`, and wire `check:v47-gate2` into package and workflow validation. @@ -176,9 +176,9 @@ They are referenced here for specification history only; active implementation w ## Source Families - Legacy ENGI specifications: `_legacy/ENGI_SPEC_V1.md` through `_legacy/ENGI_SPEC_V25.md`, with companion `NOTES`, `DELTA`, `PARITY_MATRIX`, `SYSTEM_PARITY_MATRIX`, `PROVEN`, and audit files where present. -- Active Bitcode specifications: `BITCODE_SPEC_V46.md`, with companion `DELTA`, `NOTES`, `PARITY_MATRIX`, and `PROVEN` files. -- Promoted Bitcode history: `BITCODE_SPEC_V26.md` through `BITCODE_SPEC_V45.md`, with companion `DELTA`, `NOTES`, `PARITY_MATRIX`, and `PROVEN` files. -- Draft and future Bitcode specifications: V47 opens over promoted V46 as `BITCODE_SPEC_V47.md`, with companion `DELTA`, `NOTES`, and `PARITY_MATRIX` files. Planned V47+ work follows the active roadmap, the V47 draft family, and any accepted notes created after V46 promotion. +- Active Bitcode specifications: `BITCODE_SPEC_V47.md`, with companion `DELTA`, `NOTES`, `PARITY_MATRIX`, and `PROVEN` files. +- Promoted Bitcode history: `BITCODE_SPEC_V26.md` through `BITCODE_SPEC_V46.md`, with companion `DELTA`, `NOTES`, `PARITY_MATRIX`, and `PROVEN` files. +- Draft and future Bitcode specifications: V48 opens next over promoted V47 as `BITCODE_SPEC_V48_NOTES.md` until a full V48 specification family is intentionally drafted. Planned V48+ work follows the active roadmap and any accepted notes created after V47 promotion. - Specification discipline references: `BITCODE_SPECIFYING.md` and `BITCODE_SPEC_TEMPLATEGUIDE.md`. ## Roadmap @@ -230,8 +230,9 @@ They are referenced here for specification history only; active implementation w | V43 | `BITCODE_SPEC_V43.md` | promoted historical Bitcode canon | Agentic enterprise deposit-side AssetPack option synthesis and broad UX cleanup after V42 reliable MVP paths: repository-installed Bitcode Agents compare a connected enterprise codebase, the Bitcode Depository, and Reading activity to propose deposit AssetPack options for review; filter out critical IP; estimate positive ROI against development cost and likely demand; let enterprises approve/reject options for Depository admission; split `/terminal` into `/read` and `/deposit`; and rename `/exchange` to `/packs` throughout product routes, code naming, docs, component prefixes, tests, and operator vocabulary. `/packs` becomes the searchable master-detail activity surface for all pack activity, with column sorting/filtering/search over measurements, synthesized AssetPack titles and descriptions, values, activity/transaction type, settlement posture, compensation, proof roots, and repair state. `/deposit` and `/read` become the short core paths into and out of the Depository. Outside public docs, product UX should be self-explanatory through route structure, concise labels, progressive detail, and rich reusable themed components rather than self-referential instructional copy. | | V44 | `BITCODE_SPEC_V44.md` | promoted historical Bitcode canon | Scaled engineering economy and tokenized AssetPack network operation after V43 route cleanup: enterprise AssetPack portfolios, Pack market signals, Reading demand signals, deposit supply opportunities, Reading budget policy, AssetPack quote policy, BTD/BTC/source-to-shares accounting, contributor compensation statements, organization policy, wallet/spend authority, scaled local/staging-testnet rehearsal, and polished economic operation across `/packs`, `/read`, and `/deposit` while keeping value-bearing mainnet blocked until later launch authority. | | V45 | `BITCODE_SPEC_V45.md` | promoted historical Bitcode canon | Knowledge commoditization protocol precision after V44 scaled economics: AssetPack commodity lifecycle, BTD Need-relative scalar knowledge-volume and rights, BTC settlement finality, source-safe interface disclosure, proof-backed readback, operational repair, generated proof-family artifacts, source-safe end-to-end rehearsal, and canonical promotion. | -| V46 | `BITCODE_SPEC_V46.md` | active canon | Commercial protocol comprehension and launch-facing interface claim readiness after V45 knowledge commoditization law: source-safe public/operator explanation, product route comprehension for `/packs`, `/read`, and `/deposit`, API/MCP/ChatGPT App/Bitcode Chat claim contracts, proof-readable market activity, local interface rehearsal without value-bearing mainnet authority, and canonical promotion. | -| V47 | `BITCODE_SPEC_V47.md` | active draft target | Commercial website testnet launch readiness after V46 protocol comprehension: launch-freeze `/deposit`, `/read`, `/packs`, and Auxillaries; define testnet as BTC amounts only; make measurement law, weighted BTD scalar visualization, IP seller and IP buyer state machines, feature-excess audit, E2E IP selling/buying proof, landing/public messaging, staging-testnet rehearsal, and promotion readiness exact before V47 canon. | +| V46 | `BITCODE_SPEC_V46.md` | promoted historical Bitcode canon | Commercial protocol comprehension and launch-facing interface claim readiness after V45 knowledge commoditization law: source-safe public/operator explanation, product route comprehension for `/packs`, `/read`, and `/deposit`, API/MCP/ChatGPT App/Bitcode Chat claim contracts, proof-readable market activity, local interface rehearsal without value-bearing mainnet authority, and canonical promotion. | +| V47 | `BITCODE_SPEC_V47.md` | active canon | Commercial website testnet launch readiness after V46 protocol comprehension: launch-frozen `/deposit`, `/read`, `/packs`, and Auxillaries; testnet defined as BTC amounts only; exact measurement law, weighted BTD scalar visualization, IP seller and IP buyer state machines, feature-excess audit, E2E IP selling/buying browser proof, landing/public launch messaging, staging-testnet rehearsal, promotion readiness, and canonical promotion. | +| V48 | `BITCODE_SPEC_V48_NOTES.md` | notes-only draft target | Interactive local experiential QA target after promoted V47: prepare the staging-testnet environment (Supabase, wallet-fauceted testnet BTC, telemetry expectations, step-by-step debugging) and validate identity/authentication, depositing, reading, and ledgerized journaling hands-on before the V48 parity matrix and scoped gates open. | ## Current Planning Spine diff --git a/packages/protocol/src/canonical/v21-specifying.js b/packages/protocol/src/canonical/v21-specifying.js index ba0a22878..4bb3e8624 100644 --- a/packages/protocol/src/canonical/v21-specifying.js +++ b/packages/protocol/src/canonical/v21-specifying.js @@ -1820,6 +1820,9 @@ function buildRequiredCanonicalArtifacts(repoRoot, currentTarget) { if (currentTarget === 'V46') { artifacts.push(...buildV21LikeProfile('V46').requiredGeneratedArtifactPaths); } + if (currentTarget === 'V47') { + artifacts.push(...buildV21LikeProfile('V47').requiredGeneratedArtifactPaths); + } return artifacts.map((relativePath) => path.join(repoRoot, relativePath)); } diff --git a/protocol-demonstration/test/v21-specifying.test.js b/protocol-demonstration/test/v21-specifying.test.js index df38bcc76..d33370776 100644 --- a/protocol-demonstration/test/v21-specifying.test.js +++ b/protocol-demonstration/test/v21-specifying.test.js @@ -34,6 +34,7 @@ function expectedActiveCanonicalInputArtifactCount(version) { V44: 11, V45: 13, V46: 9, + V47: 11, }; if (Object.hasOwn(expectedCountsByVersion, version)) { return expectedCountsByVersion[version];