You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Own the organization/team/role/policy authority projection in @bitcode/btd, map it through Auxillaries contracts, and share it with Auxillaries Profile and Terminal detail surfaces.
Add fail-closed BTD tests, API contract coverage, UI projection tests, Gate 6 spec/docs updates, and the Gate 6 checker/workflow hook.
- Multi-sig posture may be represented as readiness and required-action state; it is not value-bearing mainnet approval.
263
263
- Protected-source actions fail closed unless account, organization, role, grant, wallet, policy, settlement, and interface admission state all admit them.
264
+
-`@bitcode/btd` owns `BtdOrganizationPolicyAuthority`. It wraps the existing `BtdOrganizationInterfaceAuthorityDecision` with account admission, team/member identity, explicit grant set, policy id/hash, wallet binding state, multi-sig posture, policy-level decision, denial reasons, recovery route, source-visibility state, and aggregate authority root.
265
+
-`packages/api` maps `BtdOrganizationPolicyAuthority` into `OrganizationPolicyAuthority` for `/api/auxillaries/data`; Auxillaries panes and Terminal detail projections consume that object and may not rederive organization policy law locally.
264
266
265
267
Gate 7 Interfaces precision:
266
268
@@ -588,6 +590,11 @@ Organization permission authority is a BTD primitive, not a per-interface conven
588
590
The canonical decision is `BtdOrganizationInterfaceAuthorityDecision`.
V31 Gate 6 adds the package-owned `BtdOrganizationPolicyAuthority` projection as the user and support-plane carrier around that decision.
594
+
The projection binds actor/account admission, organization id, team id, member id, role, raw permission grants, explicit grant set for the action, wallet-binding requirement/state, policy id/hash, interface surface, action, multi-sig readiness, policy decision, denial reason(s), recovery route, source visibility, and authority root.
595
+
Settlement-adjacent and protected-source actions fail closed when any of account admission, organization, role, explicit grant, wallet binding, policy identity/hash, multi-sig readiness, settlement/read-license state, confirmation, repair approval, or interface admission is missing or denied.
596
+
Auxillaries Profile/organization support and Terminal selected-activity authority must read the same object so support UI, transaction cockpit, telemetry, and proof hooks explain one shared policy state.
-`packages/api/src/routes/auxillaries-contract.ts` maps the BTD authority projection into `OrganizationPolicyAuthority` for `/api/auxillaries/data` so route handlers serialize one JSON-safe authority object instead of route-local role heuristics;
168
+
-`uapi/app/auxillaries/components/AuxillariesProfilePane.tsx` renders organization authority, team/member, wallet binding, policy action/hash, multi-sig posture, explicit grants, denial reasons, recovery route, and authority root from the package object;
169
+
-`uapi/app/terminal/terminal-organization-authority.ts` projects both the policy wrapper and underlying interface decision so selected-activity detail, blockers, proof roots, and raw payload inspection agree with Auxillaries;
Copy file name to clipboardExpand all lines: BITCODE_SPEC_V31_NOTES.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -102,3 +102,11 @@ Gate 5 is closed only when Wallet/BTD support is package-owned and source-safe.
102
102
`@bitcode/btd` must derive no-custody wallet capability, signer posture, network readiness, BTD range/read-right counts, account treasury posture, settlement blockers, and support roots.
103
103
`packages/api` may map that projection into `AuxillariesWalletBtdPaneState`, but UI and routes must not rederive BTD read-access, settlement, rights-transfer, or no-custody law locally.
104
104
The Wallet pane must consume `walletBtdPaneState` from `/api/auxillaries/data`, render signer/network/range/read-right/settlement/treasury readiness, keep protected source invisible before paid unlock, and state that account treasury support is not Exchange market state.
105
+
106
+
## Gate 6 closure note
107
+
108
+
Gate 6 is closed only when organization policy authority is package-owned, source-safe, and shared by Auxillaries and Terminal.
109
+
`@bitcode/btd` must own `BtdOrganizationPolicyAuthority` and derive it from account admission, organization/team/member identity, role, explicit grants, wallet binding, policy id/hash, multi-sig readiness, interface surface, action, settlement/read-license/confirmation posture, denial reasons, recovery route, source visibility, and proof root.
110
+
Protected-source and settlement-adjacent actions must fail closed unless every required authority input admits the action.
111
+
`packages/api` may map the BTD object into `OrganizationPolicyAuthority`, but routes, Profile panes, Terminal detail cards, telemetry, and proof hooks must not rederive the authority decision from local heuristics.
112
+
The support UI may show policy measurements, blockers, recovery routes, and roots; it must not reveal protected source or treat multi-sig readiness as value-bearing mainnet approval.
@@ -129,9 +129,10 @@ No `_legacy/` source is active source truth.
129
129
130
130
| Requirement | Source evidence | Current V31 judgment |
131
131
| --- | --- | --- |
132
-
| Organization authority is package-owned | organization/policy packages and route tests | pending |
133
-
| Role, grants, policy, wallet binding, and denial reasons are typed | package tests and Auxillaries organization pane tests | pending |
134
-
| Protected actions fail closed unless all authority inputs admit them | policy/authorization tests | pending |
132
+
| Organization authority is package-owned |`BtdOrganizationPolicyAuthority` and `buildBtdOrganizationPolicyAuthority` in `packages/btd/src/authority.ts`; `OrganizationPolicyAuthority` aliases that object in `packages/api/src/routes/auxillaries-contract.ts`| drafted |
133
+
| Role, grants, policy, wallet binding, and denial reasons are typed | BTD tests cover allowed settlement-adjacent policy authority and protected-source denial; API tests assert organization/team/member/grant/policy/multi-sig route emission; Profile pane tests render the shared authority object | drafted |
134
+
| Protected actions fail closed unless all authority inputs admit them |`packages/btd/__tests__/btd.test.ts` covers missing grant, wallet, policy, interface admission, multi-sig, settlement, read access, and confirmation denial reasons with blocked source visibility | drafted |
135
+
| Terminal and Auxillaries consume one authority object |`uapi/hooks/useUserData.ts`, `uapi/app/auxillaries/components/AuxillariesSurface.tsx`, `uapi/app/auxillaries/components/AuxillariesProfilePane.tsx`, and `uapi/app/terminal/terminal-organization-authority.ts` consume/project `organizationAuthority` without route-local policy rederivation | drafted |
Copy file name to clipboardExpand all lines: SPECIFICATIONS_ROADMAP.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@
5
5
- Current active canonical pointer: `BITCODE_SPEC.txt` -> `V30`
6
6
- Current active canon: `BITCODE_SPEC_V30.md`
7
7
- Current draft target: `BITCODE_SPEC_V31.md`
8
-
- Current working gate: V31 Gate 5 Wallet and BTD pane readiness, which connects Auxillaries Wallet/BTD UI to package-owned V30 wallet, signer, network, BTD range, read-right, treasury, no-custody, and settlement-readiness projections without protected source leakage or Exchange market inference.
8
+
- Current working gate: V31 Gate 6 Organization Team Role Policy Authority, which binds account, organization, team, member, role, explicit grants, wallet binding, policy id/hash, multi-sig readiness, policy decision, denial reason, and recovery route into one package-owned authority object consumed by Auxillaries and Terminal.
9
9
- Purpose: concise running index of Bitcode/ENGI specification history, current work, and planned work.
10
10
11
11
This roadmap is not an active system specification.
0 commit comments