diff --git a/docs/vocabulary-registry.md b/docs/vocabulary-registry.md new file mode 100644 index 0000000..da02988 --- /dev/null +++ b/docs/vocabulary-registry.md @@ -0,0 +1,65 @@ +# EDUT Vocabulary Registry (v1) + +This registry defines canonical naming across user-facing copy, support language, and technical implementation. + +Rule: one concept -> one preferred user phrase. + +## Identity and Access + +1. User-facing: `EDUT ID` + Technical: `membership` (current code key and route family) + Notes: Use `EDUT ID` in all UI/legal/public copy. Keep technical names stable until intentional internal refactor. + +2. User-facing: `EDUT ID activation` + Technical: `membership activation`, `membership mint` + Notes: One-time purchase event, non-recurring. + +3. User-facing: `EDUT ID active` + Technical: `membership_active` + Notes: Binary status text for user surfaces. + +4. User-facing: `designation` + Technical: `designation_code`, `designation_token` + Notes: Keep visible only when needed for evidence/diagnostics. + +## Commerce and Runtime + +1. User-facing: `license` + Technical: `entitlement` + Notes: Keep license language in customer copy; entitlement remains implementation object. + +2. User-facing: `workspace` + Technical: `org_root_id`, `workspace_id` + Notes: Avoid exposing raw boundary identifiers in default UI. + +3. User-facing: `Auto capacity` (or approved SKU title) + Technical: `lane`, `lane24` + Notes: Avoid exposing `lane` as a default UI term outside diagnostics/trust surfaces. + +4. User-facing: `offline continuity` + Technical: `sovereign`, `capsule` + Notes: Reserve `sovereign/capsule` for technical docs unless explicitly required. + +## Terms To Keep Out of Default User Surfaces + +1. `member_only` +2. `workspace_member` +3. `org_root_owner` +4. `connector_surface` +5. `pacing_tier` +6. `membership_*` internals + +These remain valid in API contracts, logs, conformance vectors, and implementation docs. + +## Change Discipline + +1. Copy-only rename pass: user-facing surfaces first. +2. Internal rename pass: only when routes/schemas/contracts are versioned for a clean break. +3. Never mix names in one surface (`Membership` and `EDUT ID` together is prohibited). + +## Inline Glossary Pattern + +1. Keep technically accurate terms in UI when possible. +2. Add a small help icon next to the term. +3. Help text must be one sentence, plain language, no jargon. +4. Use glossary help instead of inventing alternate names that diverge from implementation language. diff --git a/public/downloads/android/index.html b/public/downloads/android/index.html index 8cff867..8dbf852 100644 --- a/public/downloads/android/index.html +++ b/public/downloads/android/index.html @@ -71,13 +71,13 @@

back

EDUT Platform Android

-

membership channel verification

+

EDUT ID channel verification

-

Android delivery is tied to wallet-authenticated membership state.

+

Android delivery is tied to wallet-authenticated EDUT ID state.

-

Membership verified. Android distribution remains staged by designation era.

+

EDUT ID verified. Android distribution remains staged by designation era.

When your channel opens, this endpoint delivers current install instructions for Android onboarding.

Member updates and entitlement notices are delivered inside the EDUT app after wallet sign-in.

@@ -127,18 +127,18 @@ async function handleConnectWallet() { const chainHex = await window.ethereum.request({ method: 'eth_chainId' }); const chainId = Number.parseInt(chainHex, 16); - setStatus('Checking membership status...', false); + setStatus('Checking EDUT ID status...', false); const status = await fetchMembershipStatus(wallet, chainId); if (status.status === 'active') { - setStatus('Membership active. Android channel is authorized.', false); + setStatus('EDUT ID active. Android channel is authorized.', false); instructionsNode.classList.add('visible'); return; } - setStatus('Membership is not active for this wallet (' + status.status + ').', true); + setStatus('EDUT ID is not active for this wallet (' + status.status + ').', true); } catch (err) { - const message = err && err.message ? err.message : 'Membership check failed.'; + const message = err && err.message ? err.message : 'EDUT ID check failed.'; setStatus(message, true); } } diff --git a/public/downloads/desktop/index.html b/public/downloads/desktop/index.html index c39d1cb..9e72fa8 100644 --- a/public/downloads/desktop/index.html +++ b/public/downloads/desktop/index.html @@ -71,13 +71,13 @@

back

EDUT Platform Desktop

-

membership channel verification

+

EDUT ID channel verification

-

Desktop delivery is tied to wallet-authenticated membership state.

+

Desktop delivery is tied to wallet-authenticated EDUT ID state.

-

Membership verified. Desktop distribution remains staged by designation era.

+

EDUT ID verified. Desktop distribution remains staged by designation era.

When your channel opens, this endpoint delivers the current installer package and checksum manifest.

Member updates and entitlement notices are delivered inside the EDUT app after wallet sign-in.

@@ -127,18 +127,18 @@ async function handleConnectWallet() { const chainHex = await window.ethereum.request({ method: 'eth_chainId' }); const chainId = Number.parseInt(chainHex, 16); - setStatus('Checking membership status...', false); + setStatus('Checking EDUT ID status...', false); const status = await fetchMembershipStatus(wallet, chainId); if (status.status === 'active') { - setStatus('Membership active. Desktop channel is authorized.', false); + setStatus('EDUT ID active. Desktop channel is authorized.', false); instructionsNode.classList.add('visible'); return; } - setStatus('Membership is not active for this wallet (' + status.status + ').', true); + setStatus('EDUT ID is not active for this wallet (' + status.status + ').', true); } catch (err) { - const message = err && err.message ? err.message : 'Membership check failed.'; + const message = err && err.message ? err.message : 'EDUT ID check failed.'; setStatus(message, true); } } diff --git a/public/downloads/ios/index.html b/public/downloads/ios/index.html index ab5c16c..2937afa 100644 --- a/public/downloads/ios/index.html +++ b/public/downloads/ios/index.html @@ -71,13 +71,13 @@

back

EDUT Platform iOS

-

membership channel verification

+

EDUT ID channel verification

-

iOS delivery is tied to wallet-authenticated membership state.

+

iOS delivery is tied to wallet-authenticated EDUT ID state.

-

Membership verified. iOS distribution remains staged by designation era.

+

EDUT ID verified. iOS distribution remains staged by designation era.

When your channel opens, this endpoint delivers current install instructions for iOS onboarding.

Member updates and entitlement notices are delivered inside the EDUT app after wallet sign-in.

@@ -127,18 +127,18 @@ async function handleConnectWallet() { const chainHex = await window.ethereum.request({ method: 'eth_chainId' }); const chainId = Number.parseInt(chainHex, 16); - setStatus('Checking membership status...', false); + setStatus('Checking EDUT ID status...', false); const status = await fetchMembershipStatus(wallet, chainId); if (status.status === 'active') { - setStatus('Membership active. iOS channel is authorized.', false); + setStatus('EDUT ID active. iOS channel is authorized.', false); instructionsNode.classList.add('visible'); return; } - setStatus('Membership is not active for this wallet (' + status.status + ').', true); + setStatus('EDUT ID is not active for this wallet (' + status.status + ').', true); } catch (err) { - const message = err && err.message ? err.message : 'Membership check failed.'; + const message = err && err.message ? err.message : 'EDUT ID check failed.'; setStatus(message, true); } } diff --git a/public/index.html b/public/index.html index f9d9884..f834289 100644 --- a/public/index.html +++ b/public/index.html @@ -402,7 +402,7 @@
-

mint your membership

+

activate your EDUT ID

No transaction. Signature only.

Never share your seed phrase.

@@ -422,7 +422,7 @@ iOS android
-

member updates are delivered inside the app after wallet sign-in.

+

EDUT ID updates are delivered inside the app after wallet sign-in.

Click anywhere on the page to begin your access request. @@ -884,7 +884,7 @@ async function startWalletFlow() { flowState.sessionExpiresAt = verification.session_expires_at || ''; flowState.sessionWallet = address; - setFlowStatus('membership_quoting', 'Preparing membership mint...', false); + setFlowStatus('membership_quoting', 'Preparing EDUT ID activation...', false); const quote = await postJSON('/secret/membership/quote', { designation_code: verification.designation_code || intent.designation_code || null, address, @@ -900,22 +900,22 @@ async function startWalletFlow() { if (!txParams.from) txParams.from = address; if (!txParams.to) { - throw new Error('Membership quote is missing destination contract.'); + throw new Error('EDUT ID quote is missing destination contract.'); } const quoteDisplay = formatQuoteDisplay(quote); - const mintPrompt = t('membership_minting', 'Confirm membership mint in your wallet...'); + const mintPrompt = t('membership_minting', 'Confirm EDUT ID activation in your wallet...'); if (quoteDisplay) { setFlowStatusMessage(mintPrompt + ' (' + quoteDisplay + ')', false); } else { - setFlowStatus('membership_minting', 'Confirm membership mint in your wallet...', false); + setFlowStatus('membership_minting', 'Confirm EDUT ID activation in your wallet...', false); } const txHash = await window.ethereum.request({ method: 'eth_sendTransaction', params: [txParams], }); - setFlowStatus('membership_confirming', 'Confirming membership on-chain...', false); + setFlowStatus('membership_confirming', 'Confirming EDUT ID on-chain...', false); const confirmation = await postJSON('/secret/membership/confirm', { designation_code: verification.designation_code || intent.designation_code || null, quote_id: quote.quote_id || null, @@ -925,7 +925,7 @@ async function startWalletFlow() { }, { wallet: address }); if (confirmation.status !== 'membership_active') { - throw new Error('Membership transaction did not activate.'); + throw new Error('EDUT ID transaction did not activate.'); } const ackState = { @@ -940,7 +940,7 @@ async function startWalletFlow() { saveAcknowledgement(ackState); renderAcknowledged(ackState); showPostMintPanel(); - setFlowStatus('membership_active', 'Membership active. Designation acknowledged.', false); + setFlowStatus('membership_active', 'EDUT ID active. Designation acknowledged.', false); } catch (err) { const message = err && err.message ? err.message : 'Wallet flow failed.'; setFlowStatus('wallet_failed', message, true); diff --git a/public/privacy/index.html b/public/privacy/index.html index 605cca6..b66d77e 100644 --- a/public/privacy/index.html +++ b/public/privacy/index.html @@ -169,7 +169,7 @@

We may use information we collect to operate, maintain, and improve our websites, products, and services; process transactions and send related confirmations, invoices, and receipts; communicate with you regarding security, operations, product updates, and support; analyze reliability and usage trends; detect and prevent fraud, abuse, and unauthorized access; comply with legal obligations; and enforce our agreements.

-

Verified-channel purpose. Where designation workflows are used, we process cryptographic signature data to confirm wallet control, prevent automated abuse, bind protocol records to a stable identity anchor, and maintain auditable activation continuity. Member operational notices are delivered through platform software after wallet sign-in.

+

Verified-channel purpose. Where designation workflows are used, we process cryptographic signature data to confirm wallet control, prevent automated abuse, bind protocol records to a stable identity anchor, and maintain auditable activation continuity. EDUT ID operational notices are delivered through platform software after wallet sign-in.

Blockchain and Wallet Data

Wallet addresses and related signature metadata may be processed to verify cryptographic intent and establish designation records. Public blockchain networks are independently operated systems; if designation or licensing records are written on-chain, related transaction data may be publicly visible and immutable by design. We do not control third-party blockchain explorers or wallet software.

diff --git a/public/store/index.html b/public/store/index.html index 389906f..8fbc4f9 100644 --- a/public/store/index.html +++ b/public/store/index.html @@ -4,7 +4,7 @@ EDUT Store Preview - +