Skip to content

Commit 71a0fa2

Browse files
V44 Gate 5: Add Depositor earning supply intelligence
Add source-safe DepositorEarningSupplyIntelligence for /deposit likely demand, unfit Need opportunities, source criticality, ROI posture, estimate-only BTC compensation ranges, source-to-shares proof boundaries, earning statements, and supply recommendations. Bind the V44 Depositor earnings supply opportunities artifact, generator, checker, protocol exports, tests, workflow hooks, and draft specification documentation updates. Validated with V44 gate checks, focused package and UAPI tests, package/UAPI/protocol typechecks, protocol tests, workflow YAML parsing, diff whitespace, ASCII hygiene, and changed-file secret scanning.
1 parent 0cbebe3 commit 71a0fa2

29 files changed

Lines changed: 1929 additions & 59 deletions
Lines changed: 362 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,362 @@
1+
{
2+
"artifactId": "v44-depositor-earnings-supply-opportunities",
3+
"schemaId": "bitcode.v44.depositorEarningsSupplyOpportunities.v1",
4+
"version": "V44",
5+
"currentTarget": "V43",
6+
"sourceSafetyVerdict": "source-safe-depositor-earnings-supply-opportunity-metadata",
7+
"generatedAt": "deterministic",
8+
"artifactRoot": "v44-depositor-earnings-supply-opportunities:7d08756f3b7ca3d960bcdce1",
9+
"passed": true,
10+
"objectIds": [
11+
"DepositorEarningSupplyIntelligence",
12+
"DepositorEarningStatement",
13+
"DepositSupplyOpportunity",
14+
"UnfitNeedOpportunity",
15+
"SourceCriticalityPosture",
16+
"ExpectedCompensationRange",
17+
"SourceSafeSupplyRecommendation"
18+
],
19+
"earningStateIds": [
20+
"compensation-range-estimated",
21+
"repair-required-before-earning",
22+
"blocked-critical-source"
23+
],
24+
"recommendationIds": [
25+
"approve-for-depository-review",
26+
"repair-policy-before-admission",
27+
"resynthesize-for-demand",
28+
"withhold-critical-source"
29+
],
30+
"demandOpportunityStateIds": [
31+
"strong-demand-opportunity",
32+
"moderate-demand-opportunity",
33+
"weak-demand-opportunity"
34+
],
35+
"forbiddenPayloadIds": [
36+
"protected-source-payloads",
37+
"raw-source-text",
38+
"unpaid-assetpack-source",
39+
"raw-prompts",
40+
"interpolated-prompts",
41+
"raw-provider-responses",
42+
"credentials",
43+
"wallet-private-material",
44+
"private-settlement-payloads",
45+
"value-bearing-mainnet-admission"
46+
],
47+
"rows": [
48+
{
49+
"rowId": "likely-demand-intelligence",
50+
"owner": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
51+
"contract": "DepositorEarningSupplyIntelligence aggregates likely Reading demand from source-safe option policy evaluations.",
52+
"requiredFields": [
53+
"likelyDemand",
54+
"averageConfidence",
55+
"strongDemandOptionCount",
56+
"demandRoot"
57+
],
58+
"rowRoot": "v44-depositor-earning-supply-row:3f21ab5d35fe3fe66b040e54",
59+
"sourceSafeMetadataOnly": true,
60+
"protectedSourceVisible": false,
61+
"unpaidAssetPackSourceVisible": false
62+
},
63+
{
64+
"rowId": "unfit-need-opportunities",
65+
"owner": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
66+
"contract": "Unfit Need opportunities are represented as source-safe weighted demand signals that guide supply creation without exposing Read or source payloads.",
67+
"requiredFields": [
68+
"unfitNeedOpportunities",
69+
"opportunityCount",
70+
"opportunityRoot"
71+
],
72+
"rowRoot": "v44-depositor-earning-supply-row:1657685e3e08e02653f801db",
73+
"sourceSafeMetadataOnly": true,
74+
"protectedSourceVisible": false,
75+
"unpaidAssetPackSourceVisible": false
76+
},
77+
{
78+
"rowId": "earning-statements",
79+
"owner": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
80+
"contract": "Depositor earning statements label all values as estimates and expose BTC compensation ranges, ROI, criticality, blockers, warnings, and statement roots.",
81+
"requiredFields": [
82+
"DepositorEarningStatement",
83+
"valueLabel",
84+
"expectedCompensationRangeSats",
85+
"blocked-critical-source"
86+
],
87+
"rowRoot": "v44-depositor-earning-supply-row:0835a42862b22864611d6f1a",
88+
"sourceSafeMetadataOnly": true,
89+
"protectedSourceVisible": false,
90+
"unpaidAssetPackSourceVisible": false
91+
},
92+
{
93+
"rowId": "source-safe-supply-recommendations",
94+
"owner": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
95+
"contract": "Supply recommendations choose approve, repair, resynthesize, or withhold actions from source-safe demand, criticality, ROI, and compensation posture.",
96+
"requiredFields": [
97+
"approve-for-depository-review",
98+
"repair-policy-before-admission",
99+
"resynthesize-for-demand",
100+
"withhold-critical-source"
101+
],
102+
"rowRoot": "v44-depositor-earning-supply-row:95fc05f465a5dbc377888ddf",
103+
"sourceSafeMetadataOnly": true,
104+
"protectedSourceVisible": false,
105+
"unpaidAssetPackSourceVisible": false
106+
},
107+
{
108+
"rowId": "deposit-route-earning-readback",
109+
"owner": "uapi/app/deposit/DepositPageClient.tsx",
110+
"contract": "/deposit renders earning estimates, unfit Need opportunities, source-safe recommendations, and opportunity roots beside the five-step Depositing path.",
111+
"requiredFields": [
112+
"Supply opportunity",
113+
"Earning estimate",
114+
"Unfit Need opportunities",
115+
"DepositorEarningSupplyIntelligence"
116+
],
117+
"rowRoot": "v44-depositor-earning-supply-row:f701e70f93e3ece09d9e402c",
118+
"sourceSafeMetadataOnly": true,
119+
"protectedSourceVisible": false,
120+
"unpaidAssetPackSourceVisible": false
121+
},
122+
{
123+
"rowId": "source-to-shares-compensation-basis",
124+
"owner": "packages/btd/src/source-to-shares.ts",
125+
"contract": "Depositor earning ranges remain estimate-only until future Need-Fit settlement produces source-to-shares allocation receipts.",
126+
"requiredFields": [
127+
"source-to-shares-largest-remainder",
128+
"settlementAllocations",
129+
"settlementConservation"
130+
],
131+
"rowRoot": "v44-depositor-earning-supply-row:874063553da1f69224274403",
132+
"sourceSafeMetadataOnly": true,
133+
"protectedSourceVisible": false,
134+
"unpaidAssetPackSourceVisible": false
135+
}
136+
],
137+
"sourceRoots": {
138+
"activePointer": "BITCODE_SPEC.txt:4ea77b214c66f69c697bff3d",
139+
"spec": "BITCODE_SPEC_V44.md:f42417c87b28658f95bfc5e2",
140+
"delta": "BITCODE_SPEC_V44_DELTA.md:67047539c440859038b21e0e",
141+
"notes": "BITCODE_SPEC_V44_NOTES.md:65d2a226a68ddc14e10d4f1d",
142+
"parity": "BITCODE_SPEC_V44_PARITY_MATRIX.md:720f3406bcadd2098ba3a509",
143+
"roadmap": "SPECIFICATIONS_ROADMAP.md:2ef8f1bf59c26479728c3153",
144+
"readme": "README.md:a6409b31ee2230d6889bf26f",
145+
"protocolReadme": "packages/protocol/README.md:e33e94fa5584a2a44cd49c1f",
146+
"packageJson": "package.json:8d6cf25f9345ca24f1a6aa3b",
147+
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:11c68267a63ed03d95524e98",
148+
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:dfd0de96bd301ec722e4ea67",
149+
"economicModel": "packages/protocol/src/canonical/v44-economic-domain-model.js:21b8f5c80ad8322dff2909ed",
150+
"portfolioMarketIntelligence": "packages/protocol/src/canonical/v44-packs-portfolio-market-intelligence.js:f5d37e086c9bbbdb6202da53",
151+
"optionPolicy": "packages/pipelines/asset-pack/src/deposit-asset-pack-option-policy.ts:12816b23b2d8e304ab4a1638",
152+
"earningSupplyIntelligence": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts:e0ec2d83cfaf3bfaaa126387",
153+
"earningSupplyIntelligenceTest": "packages/pipelines/asset-pack/src/__tests__/depositor-earning-supply-intelligence.test.ts:3b7a869e6262f6f5ebcc71fe",
154+
"depositModel": "uapi/app/deposit/deposit-route-model.ts:b4a51a495a193eff88f1f103",
155+
"depositClient": "uapi/app/deposit/DepositPageClient.tsx:3aee0372e480aa8212be7fe0",
156+
"depositRouteTest": "uapi/tests/depositRouteModel.test.ts:f60d0f4541bb0dae5d455f13",
157+
"depositPageTest": "uapi/tests/depositPageClient.test.tsx:44960f6c465c87194a689958",
158+
"assetPackPackageIndex": "packages/pipelines/asset-pack/src/index.ts:4d900afeb3eb6ab1202403ee",
159+
"assetPackPackageManifest": "packages/pipelines/asset-pack/package.json:7f4a82493f32385420e2082c",
160+
"sourceToShares": "packages/btd/src/source-to-shares.ts:6e2e84251b29ba2477766708",
161+
"packageIndex": "packages/protocol/src/index.js:806cfbf3ee86977fead7b928",
162+
"packageTypes": "packages/protocol/src/index.d.ts:907bd1de313f4d5503462765",
163+
"packageSource": "packages/protocol/src/canonical/v44-depositor-earnings-supply-opportunities.js:cf9cf5f99f00dbf3201c8c8e",
164+
"packageTest": "packages/protocol/test/v44-depositor-earnings-supply-opportunities.test.js:1b025c1904f94a1069b64ddf",
165+
"generator": "scripts/generate-v44-depositor-earnings-supply-opportunities.mjs:0844124207cbfe8264f12a2f",
166+
"checker": "scripts/check-v44-gate5-depositor-earnings-supply-opportunities.mjs:85467da9804f946a18c764ce"
167+
},
168+
"predicateResults": [
169+
{
170+
"id": "active-canon-pointer-remains-v43",
171+
"sourcePath": "BITCODE_SPEC.txt",
172+
"passed": true
173+
},
174+
{
175+
"id": "spec-defines-gate5",
176+
"sourcePath": "BITCODE_SPEC_V44.md",
177+
"passed": true
178+
},
179+
{
180+
"id": "spec-names-gate5-artifact",
181+
"sourcePath": "BITCODE_SPEC_V44.md",
182+
"passed": true
183+
},
184+
{
185+
"id": "delta-records-gate5",
186+
"sourcePath": "BITCODE_SPEC_V44_DELTA.md",
187+
"passed": true
188+
},
189+
{
190+
"id": "notes-records-gate5",
191+
"sourcePath": "BITCODE_SPEC_V44_NOTES.md",
192+
"passed": true
193+
},
194+
{
195+
"id": "parity-records-gate5",
196+
"sourcePath": "BITCODE_SPEC_V44_PARITY_MATRIX.md",
197+
"passed": true
198+
},
199+
{
200+
"id": "roadmap-records-gate5",
201+
"sourcePath": "SPECIFICATIONS_ROADMAP.md",
202+
"passed": true
203+
},
204+
{
205+
"id": "readme-records-gate5",
206+
"sourcePath": "README.md",
207+
"passed": true
208+
},
209+
{
210+
"id": "protocol-readme-records-gate5",
211+
"sourcePath": "packages/protocol/README.md",
212+
"passed": true
213+
},
214+
{
215+
"id": "economic-model-prerequisite-present",
216+
"sourcePath": "packages/protocol/src/canonical/v44-economic-domain-model.js",
217+
"passed": true
218+
},
219+
{
220+
"id": "portfolio-market-prerequisite-present",
221+
"sourcePath": "packages/protocol/src/canonical/v44-packs-portfolio-market-intelligence.js",
222+
"passed": true
223+
},
224+
{
225+
"id": "option-policy-prerequisite-present",
226+
"sourcePath": "packages/pipelines/asset-pack/src/deposit-asset-pack-option-policy.ts",
227+
"passed": true
228+
},
229+
{
230+
"id": "earning-intelligence-defines-builder",
231+
"sourcePath": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
232+
"passed": true
233+
},
234+
{
235+
"id": "earning-intelligence-defines-demand",
236+
"sourcePath": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
237+
"passed": true
238+
},
239+
{
240+
"id": "earning-intelligence-defines-statements",
241+
"sourcePath": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
242+
"passed": true
243+
},
244+
{
245+
"id": "earning-intelligence-defines-recommendations",
246+
"sourcePath": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
247+
"passed": true
248+
},
249+
{
250+
"id": "earning-intelligence-forbids-source-leakage",
251+
"sourcePath": "packages/pipelines/asset-pack/src/depositor-earning-supply-intelligence.ts",
252+
"passed": true
253+
},
254+
{
255+
"id": "asset-pack-package-exports-intelligence",
256+
"sourcePath": "packages/pipelines/asset-pack/src/index.ts",
257+
"passed": true
258+
},
259+
{
260+
"id": "asset-pack-manifest-exports-intelligence",
261+
"sourcePath": "packages/pipelines/asset-pack/package.json",
262+
"passed": true
263+
},
264+
{
265+
"id": "deposit-model-uses-intelligence",
266+
"sourcePath": "uapi/app/deposit/deposit-route-model.ts",
267+
"passed": true
268+
},
269+
{
270+
"id": "deposit-client-renders-earnings",
271+
"sourcePath": "uapi/app/deposit/DepositPageClient.tsx",
272+
"passed": true
273+
},
274+
{
275+
"id": "earning-test-covers-intelligence",
276+
"sourcePath": "packages/pipelines/asset-pack/src/__tests__/depositor-earning-supply-intelligence.test.ts",
277+
"passed": true
278+
},
279+
{
280+
"id": "route-test-covers-intelligence",
281+
"sourcePath": "uapi/tests/depositRouteModel.test.ts",
282+
"passed": true
283+
},
284+
{
285+
"id": "page-test-covers-intelligence",
286+
"sourcePath": "uapi/tests/depositPageClient.test.tsx",
287+
"passed": true
288+
},
289+
{
290+
"id": "source-to-shares-prerequisite-present",
291+
"sourcePath": "packages/btd/src/source-to-shares.ts",
292+
"passed": true
293+
},
294+
{
295+
"id": "package-test-covers-gate5",
296+
"sourcePath": "packages/protocol/test/v44-depositor-earnings-supply-opportunities.test.js",
297+
"passed": true
298+
},
299+
{
300+
"id": "package-exports-gate5",
301+
"sourcePath": "packages/protocol/src/index.js",
302+
"passed": true
303+
},
304+
{
305+
"id": "package-types-export-gate5",
306+
"sourcePath": "packages/protocol/src/index.d.ts",
307+
"passed": true
308+
},
309+
{
310+
"id": "package-json-exposes-gate5",
311+
"sourcePath": "package.json",
312+
"passed": true
313+
},
314+
{
315+
"id": "gate-workflow-runs-gate5",
316+
"sourcePath": ".github/workflows/bitcode-gate-quality.yml",
317+
"passed": true
318+
},
319+
{
320+
"id": "canon-workflow-runs-gate5",
321+
"sourcePath": ".github/workflows/bitcode-canon-quality.yml",
322+
"passed": true
323+
},
324+
{
325+
"id": "generator-exists",
326+
"sourcePath": "scripts/generate-v44-depositor-earnings-supply-opportunities.mjs",
327+
"passed": true
328+
},
329+
{
330+
"id": "checker-exists",
331+
"sourcePath": "scripts/check-v44-gate5-depositor-earnings-supply-opportunities.mjs",
332+
"passed": true
333+
}
334+
],
335+
"coverage": {
336+
"depositorEarningSupplyIntelligenceImplemented": true,
337+
"likelyDemandImplemented": true,
338+
"unfitNeedOpportunitiesImplemented": true,
339+
"roiPostureImplemented": true,
340+
"sourceCriticalityPostureImplemented": true,
341+
"expectedCompensationRangesImplemented": true,
342+
"earningStatementsImplemented": true,
343+
"sourceSafeSupplyRecommendationsImplemented": true,
344+
"depositRouteUiImplemented": true,
345+
"sourceToSharesEstimateBoundaryImplemented": true,
346+
"sourceSafeMetadataOnly": true,
347+
"protectedSourceVisible": false,
348+
"rawSourceTextVisible": false,
349+
"sourceSnippetVisible": false,
350+
"rawPromptVisible": false,
351+
"interpolatedPromptVisible": false,
352+
"rawProviderResponseVisible": false,
353+
"unpaidAssetPackSourceVisible": false,
354+
"credentialsSerialized": false,
355+
"walletPrivateMaterialVisible": false,
356+
"settlementPrivatePayloadVisible": false,
357+
"valueBearingMainnetAdmitted": false,
358+
"requiredPredicateCount": 33,
359+
"passedPredicateCount": 33,
360+
"failedPredicateIds": []
361+
}
362+
}

0 commit comments

Comments
 (0)