Skip to content

Commit 85e4f9e

Browse files
Merge pull request #205 from engineeredsoftware/v45/gate-2-knowledge-commoditization-law
V45 Gate 2: Knowledge Commoditization Law
2 parents 37ea6d7 + 68b0089 commit 85e4f9e

3 files changed

Lines changed: 254 additions & 6 deletions

File tree

BITCODE_SPEC_V45_NOTES.md

Lines changed: 97 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ production-grade:
6464
- `/packs` as the searchable master-detail surface for Bitcode network
6565
activity, proofs, statements, repairs, and economic state.
6666
- BTC as settlement money and source of payment truth.
67-
- BTD as the measured/mined/minted read-right object bound to AssetPack value,
68-
rights transfer, source unlock, and ownership boundaries.
67+
- BTD as the weighted scalar knowledge-volume unit whose settled form carries
68+
rights, source unlock authority, ownership boundaries, and source-to-shares
69+
allocation context.
6970
- Proof roots, ledgerized journaling, telemetry, database/storage
7071
synchronization, and generated canon as auditability rails.
7172
- Website routes, ChatGPT App, Bitcode Chat conversation overlays, API/MCP,
@@ -79,8 +80,9 @@ production-grade:
7980
- V44 needed this promotion addendum because canon posture text is protocol law:
8081
a promoted spec cannot contain stale active/draft hierarchy prose.
8182
- V44 states the BTD/BTC/source-to-shares roles clearly, but V45 must decide
82-
whether BTD measuring, mining, minting, ownership, and lifecycle state are
83-
specified precisely enough for enterprise and public protocol comprehension.
83+
whether BTD measuring, mining, minting, scalar knowledge-volume, ownership,
84+
and lifecycle state are specified precisely enough for enterprise and public
85+
protocol comprehension.
8486
- V44 names BTC settlement, quote, observed payment, final settlement,
8587
reconciliation, and repair states, but V45 should audit whether the exact
8688
payment/finality/source-unlock/delivery state machine is complete enough.
@@ -95,8 +97,9 @@ production-grade:
9597
2. What exact state transitions define an AssetPack from potential deposit
9698
option through admitted supply, Finding Fits, paid Need-Fit pack, delivery,
9799
compensation, and repair?
98-
3. What exact state transitions define BTD measuring, mining, minting,
99-
ownership transfer, source unlock, and post-settlement rights?
100+
3. What exact state transitions define BTD measuring, mining, minting, scalar
101+
knowledge-volume, ownership transfer, source unlock, and post-settlement
102+
rights?
100103
4. What exact state transitions define BTC quote, payment observation,
101104
confirmation/finality, repair, refund/escalation if any, and contributor
102105
compensation?
@@ -109,6 +112,94 @@ production-grade:
109112
7. Which V45 gates should be specification-only, proof-only, interface-only,
110113
implementation, rehearsal, and promotion gates?
111114

115+
## V45 gate sequencing rule
116+
117+
V45 proceeds in three ordered movements:
118+
119+
1. Specification atom gates. Each small protocol specification atom is its own
120+
gate and pull request. Each atom must be correct alone before the next atom
121+
begins, and every atom must be reconciled into the gestalt of Bitcode as the
122+
knowledge commoditization system.
123+
2. Specification parity matrix gate. After the specification atoms are accepted,
124+
one gate builds the V45 parity matrix comparing every accepted specification
125+
update against implementation, tests, proofs, generated artifacts,
126+
workflows, documentation, and interface surfaces.
127+
3. Grouped implementation gates. Only after the parity matrix is accepted do
128+
implementation gates begin, grouped by coherent protocol/product work rather
129+
than by isolated prose atoms.
130+
131+
This ordering is itself V45 protocol-development law: do not start
132+
implementation work, broad parity claims, or promotion planning while the
133+
specification atoms remain unsettled.
134+
135+
## V45 protocol atom 1: knowledge commoditization system
136+
137+
Audit classification: V42, V43, and V44 clearly state the commercial path for
138+
depositing and reading technical knowledge, and V43/V44 clearly establish
139+
AssetPacks as the object in and out. The remaining gap is precision of the
140+
one-sentence protocol identity. V45 begins by making that identity exact before
141+
it expands any state machine, interface, pricing, or proof surface.
142+
143+
Protocol-law statement:
144+
145+
Bitcode is the knowledge commoditization protocol and commercial system for
146+
turning source-derived technical knowledge into source-safe, measurable
147+
AssetPacks whose measurements can be weighted and summed into BTD scalar
148+
knowledge-volume when evaluated against a reviewed Need. That Need-relative BTD
149+
volume drives deterministic BTC quote/settlement, expresses post-settlement
150+
rights, controls source unlock, routes contributor shares, and is audited
151+
through proof roots, ledgerized journals, telemetry, database/storage
152+
synchronization, and generated canon.
153+
154+
This means:
155+
156+
- The traded commodity is the AssetPack, not raw source, raw prompts, provider
157+
responses, loose files, screenshots, telemetry logs, or private repository
158+
access.
159+
- BTC is settlement money and payment truth.
160+
- BTD is the protocol's weighted scalar knowledge-volume unit. Settled BTD is
161+
also rights-bearing: it expresses paid read/use rights, source unlock
162+
authority, ownership boundaries, and source-to-shares allocation context. It
163+
is not merely a read-right, not a deposit option, and not a replacement for
164+
BTC.
165+
- BTD-relevant measurements may exist before a Need: deposit-time measurements
166+
can preview coverage, source criticality, likely utility, BTD potential, and
167+
search posture for the depositor and the Depository.
168+
- Final BTD size can only be calculated against a reviewed Need because the
169+
knowledge volume depends on Need-relative measurement weights, admitted fit
170+
quality, and the selected Need-Fit AssetPack context.
171+
- All admissible Need-Fit measurements are weighted and summed to determine the
172+
scalar BTD knowledge volume and source-to-shares allocation basis for the
173+
settled AssetPack.
174+
- Depositing forms source-safe AssetPack supply; it does not sell or disclose
175+
protected source before paid settlement and rights transfer.
176+
- Reading forms measured demand, synthesizes Needs, finds fitting Depository
177+
supply, previews only source-safe measurements/metadata, and buys full
178+
source-bearing delivery only after BTC settlement and BTD rights transfer.
179+
- Source-to-shares is contributor allocation after paid Need-Fit selection; it
180+
is not an estimated earning range and not a quote.
181+
- `/packs`, `/read`, `/deposit`, API/MCP, ChatGPT App, Bitcode Chat, public
182+
docs, and landing pages may present the system differently, but none may
183+
change the protocol law or disclose source outside the settlement boundary.
184+
185+
What this atom does not yet decide:
186+
187+
- the exact AssetPack lifecycle state machine;
188+
- the exact BTD measuring, mining, minting, scalar knowledge-volume,
189+
ownership, and transfer state machine;
190+
- the exact BTC quote, observation, confirmation, finality, repair, refund, or
191+
compensation state machine;
192+
- which non-website interfaces are protocol-authoritative in V45; or
193+
- whether later V45 gates should broaden from technical knowledge toward
194+
all knowledge commodities.
195+
196+
Acceptance for this atom: later V45 specification may refine terms, but it must
197+
preserve AssetPack as commodity, BTC as settlement money, BTD as weighted scalar
198+
knowledge-volume unit whose settled form carries rights, final BTD size as
199+
Need-relative, source-safety before settlement, repository delivery after rights
200+
proof, and proof/ledger/journal observability as Bitcode's market-infrastructure
201+
rails.
202+
112203
## Non-goals during V45 opening
113204

114205
- Do not implement V45 gate behavior before the V45 intent discussion is

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@
387387
"generate:v44-promotion-readiness": "node scripts/generate-v44-promotion-readiness-report.mjs",
388388
"check:v44-promotion-readiness": "node scripts/generate-v44-promotion-readiness-report.mjs --check",
389389
"check:v44-gate10": "node scripts/check-v44-gate10-promotion-readiness.mjs",
390+
"check:v45-gate2": "node scripts/check-v45-gate2-knowledge-commoditization-law.mjs",
390391
"generate:v38-inference-surface-inventory": "node scripts/generate-v38-inference-surface-inventory.mjs",
391392
"check:v38-inference-surface-inventory": "node scripts/generate-v38-inference-surface-inventory.mjs --check",
392393
"check:v38-gate2": "node scripts/check-v38-gate2-inference-surface-inventory.mjs",
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
#!/usr/bin/env node
2+
3+
import { execFileSync } from 'node:child_process';
4+
import { existsSync, readFileSync } from 'node:fs';
5+
import path from 'node:path';
6+
import { fileURLToPath } from 'node:url';
7+
8+
const __filename = fileURLToPath(import.meta.url);
9+
const __dirname = path.dirname(__filename);
10+
const defaultRepoRoot = path.resolve(__dirname, '..');
11+
12+
function read(root, relativePath) {
13+
return readFileSync(path.join(root, relativePath), 'utf8');
14+
}
15+
16+
function exists(root, relativePath) {
17+
return existsSync(path.join(root, relativePath));
18+
}
19+
20+
function git(root, args) {
21+
return execFileSync('git', args, { cwd: root, encoding: 'utf8' }).trim();
22+
}
23+
24+
function assertCheck(failures, condition, message) {
25+
if (!condition) failures.push(message);
26+
}
27+
28+
function normalize(content) {
29+
return content.replace(/\s+/gu, ' ').trim();
30+
}
31+
32+
function parseArgs(argv) {
33+
const args = { repoRoot: defaultRepoRoot, skipBranchCheck: false };
34+
for (let index = 0; index < argv.length; index += 1) {
35+
const arg = argv[index];
36+
if (arg === '--repo-root') args.repoRoot = path.resolve(argv[++index]);
37+
else if (arg === '--skip-branch-check') args.skipBranchCheck = true;
38+
else if (arg === '--help' || arg === '-h') args.help = true;
39+
else throw new Error(`Unknown argument ${arg}`);
40+
}
41+
return args;
42+
}
43+
44+
function printHelp() {
45+
process.stdout.write(
46+
[
47+
'Usage: node scripts/check-v45-gate2-knowledge-commoditization-law.mjs [--skip-branch-check] [--repo-root <path>]',
48+
'',
49+
'Checks the V45 opening protocol-law atom for Bitcode as a knowledge commoditization system.',
50+
].join('\n'),
51+
);
52+
process.stdout.write('\n');
53+
}
54+
55+
function main() {
56+
const args = parseArgs(process.argv.slice(2));
57+
if (args.help) {
58+
printHelp();
59+
return;
60+
}
61+
62+
const root = args.repoRoot;
63+
const failures = [];
64+
const pointer = read(root, 'BITCODE_SPEC.txt').trim();
65+
66+
assertCheck(failures, pointer === 'V44', `BITCODE_SPEC.txt must remain V44 during V45 opening work. Observed ${pointer || 'empty'}.`);
67+
68+
if (!args.skipBranchCheck) {
69+
const branch = git(root, ['branch', '--show-current']);
70+
assertCheck(
71+
failures,
72+
branch === 'version/v45' || /^v45\/gate-\d+-[a-z0-9][a-z0-9-]*$/u.test(branch),
73+
`V45 work must occur on version/v45 or v45/gate-N-* branches. Observed ${branch || 'detached HEAD'}.`,
74+
);
75+
}
76+
77+
for (const relativePath of [
78+
'BITCODE_SPEC_V45_NOTES.md',
79+
'BITCODE_SPEC_V44.md',
80+
'BITCODE_SPEC_V44_PROVEN.md',
81+
'package.json',
82+
]) {
83+
assertCheck(failures, exists(root, relativePath), `Missing required V45 Gate 2 file: ${relativePath}`);
84+
}
85+
86+
const notes = read(root, 'BITCODE_SPEC_V45_NOTES.md');
87+
const normalizedNotes = normalize(notes);
88+
const packageJson = read(root, 'package.json');
89+
90+
for (const phrase of [
91+
'V45 gate sequencing rule',
92+
'Specification atom gates',
93+
'Each small protocol specification atom is its own gate and pull request',
94+
'Specification parity matrix gate',
95+
'comparing every accepted specification update against implementation, tests, proofs, generated artifacts, workflows, documentation, and interface surfaces',
96+
'Grouped implementation gates',
97+
'Only after the parity matrix is accepted do implementation gates begin',
98+
'do not start implementation work, broad parity claims, or promotion planning while the specification atoms remain unsettled',
99+
'V45 protocol atom 1: knowledge commoditization system',
100+
'Bitcode is the knowledge commoditization protocol and commercial system',
101+
'source-safe, measurable AssetPacks whose measurements can be weighted and summed into BTD scalar knowledge-volume',
102+
'That Need-relative BTD volume drives deterministic BTC quote/settlement',
103+
'expresses post-settlement rights',
104+
'controls source unlock',
105+
'routes contributor shares',
106+
'proof roots, ledgerized journals, telemetry',
107+
'The traded commodity is the AssetPack',
108+
'BTC is settlement money and payment truth',
109+
'BTD is the protocol\'s weighted scalar knowledge-volume unit',
110+
'Settled BTD is also rights-bearing',
111+
'paid read/use rights',
112+
'source unlock authority',
113+
'It is not merely a read-right',
114+
'BTD-relevant measurements may exist before a Need',
115+
'Final BTD size can only be calculated against a reviewed Need',
116+
'Need-relative measurement weights',
117+
'All admissible Need-Fit measurements are weighted and summed',
118+
'scalar BTD knowledge volume and source-to-shares allocation basis',
119+
'Depositing forms source-safe AssetPack supply',
120+
'Reading forms measured demand',
121+
'Source-to-shares is contributor allocation after paid Need-Fit selection',
122+
'none may change the protocol law or disclose source outside the settlement boundary',
123+
'What this atom does not yet decide',
124+
'exact AssetPack lifecycle state machine',
125+
'exact BTD measuring, mining, minting, scalar knowledge-volume, ownership, and transfer state machine',
126+
'exact BTC quote, observation, confirmation, finality, repair, refund, or compensation state machine',
127+
'Acceptance for this atom',
128+
'AssetPack as commodity, BTC as settlement money, BTD as weighted scalar knowledge-volume unit whose settled form carries rights',
129+
'final BTD size as Need-relative',
130+
]) {
131+
assertCheck(failures, normalizedNotes.includes(phrase), `V45 Gate 2 notes must include phrase: ${phrase}`);
132+
}
133+
134+
assertCheck(
135+
failures,
136+
packageJson.includes('"check:v45-gate2": "node scripts/check-v45-gate2-knowledge-commoditization-law.mjs"'),
137+
'package.json must expose check:v45-gate2.',
138+
);
139+
140+
if (failures.length > 0) {
141+
process.stderr.write('V45 Gate 2 knowledge commoditization law check failed:\n');
142+
for (const failure of failures) process.stderr.write(`- ${failure}\n`);
143+
process.exitCode = 1;
144+
return;
145+
}
146+
147+
process.stdout.write('V45 Gate 2 knowledge commoditization law check passed.\n');
148+
}
149+
150+
try {
151+
main();
152+
} catch (error) {
153+
const detail = error instanceof Error ? error.message : String(error);
154+
process.stderr.write(`${detail}\n`);
155+
process.exitCode = 1;
156+
}

0 commit comments

Comments
 (0)