selfdriven Ecosystem Builder
Build production-grade web properties, documents, APIs, and organisational frameworks for the selfdriven Foundation ecosystem.
Overview
The selfdriven Foundation operates a family of interconnected domains spanning sovereign identity, banking, AI, community, and professional services. This skill captures the brand system, architectural patterns, content frameworks, and technical standards needed to build consistently across the entire ecosystem — not just a single domain.
Trigger Contexts
Consult this skill for any mention of:
- Any selfdriven domain: selfdriven.money, .foundation, .pro, .network, .ai, .services, .community, .finance, .bot
- TANA (community actuation platform) or any selfdriven-branded property
- KERI/ACDC identity integration in any vertical (banking, legal, healthcare, insurance, etc.)
- ISO 27001 ISMS, compliance frameworks, or governance documents for selfdriven entities
- The selfdriven brand palette, typography, or visual language
- 8 Areas of Focus framework, Human Conductor models, community self-actuation
- API servers for any selfdriven property (CDR Open Banking, identity, agent protocols)
When to Use This Skill
- Creating or modifying any selfdriven-branded webapp, site, or dashboard
- Writing organisational papers, compliance documents, or governance frameworks
- Building API servers for any selfdriven domain
- Designing team/organisational structures using the 8 Areas of Focus
- Creating presentation or marketing pages for selfdriven properties
- Building any interface that combines sovereign identity (KERI/ACDC/passkeys) with a service vertical
Brand System
Design Tokens
Always use CSS variables. Always support both light and dark modes via prefers-color-scheme.
/* Light mode (default) */
:root {
--bg: #f5f2ed;
--surface: #edeae3;
--surface2: #e5e1d8;
--border: #ddd8ce;
--text: #1a1410;
--muted: #6b5f52;
--muted2: #9e9085;
--accent: #c8442f;
--accent-dim: rgba(200, 68, 47, 0.10);
--accent-strong: rgba(200, 68, 47, 0.18);
--card-radius: 20px;
--shadow: 0 2px 16px rgba(0,0,0,0.07);
}
/* Dark mode */
@media (prefers-color-scheme: dark) {
:root {
--bg: #0a0a0a;
--surface: #161616;
--surface2: #1e1e1e;
--border: #2a2a2a;
--text: #f0ede8;
--muted: #b0a89e;
--muted2: #7a7268;
--accent: #e85d4a;
--accent-dim: rgba(232, 93, 74, 0.12);
--accent-strong: rgba(232, 93, 74, 0.20);
--shadow: 0 2px 16px rgba(0,0,0,0.4);
}
}
CRITICAL: Always test dark mode for text contrast. Common pitfalls: var(--muted) used for text that needs to be readable (use var(--text) or var(--muted) only — never var(--muted2) for body text in dark mode); inverted sections need explicit light text colours rather than var(--bg) which becomes #0a0a0a in dark mode.
Typography
- Primary font:
Poppins (Google Fonts) — weights 300–900
- Monospace:
JetBrains Mono — for identifiers, AIDs, code, technical data
- Never use: Inter, Roboto, Arial, system fonts, DM Sans, Space Grotesk
- Heading style: Poppins 800/900 weight, letter-spacing -0.04em, large sizes
- Body style: Poppins 400/500, colour
var(--muted), line-height 1.6–1.8
- Eyebrow labels: 11px, weight 700, letter-spacing 0.12em, uppercase, colour
var(--accent)
Logo
The selfdriven logo is a square flamingo-coloured mark. When available as an uploaded file, embed as base64 for self-contained HTML:
- 80x80px on cover pages and auth screens
- 30-36px in navigation bars
- 18-20px in footers
- Always with
border-radius: 8-14px and overflow: hidden
Visual Language
- Card style:
var(--card-radius) (20px), 1px solid var(--border), var(--shadow) on hover
- Accent bar: 3px top border on cards/modals using
var(--accent) — signature selfdriven motif
- Buttons: Pill-shaped (
border-radius: 999px) for CTAs, rounded (border-radius: 12px) for in-app actions
- Dark sections: Invert to
var(--text) background with explicit light text. In dark mode, use #141414 to contrast against #0a0a0a page
- Scroll animations:
IntersectionObserver with staggered transitionDelay for card reveals
- Nav: Fixed, blurred backdrop on scroll (
backdrop-filter: blur(16px)), accent-coloured brand text
selfdriven Domain Family
| Domain |
Purpose |
| selfdriven.foundation |
Parent foundation entity |
| selfdriven.money |
Banking platform |
| selfdriven.services |
Professional services marketplace |
| selfdriven.pro |
Human Conductor webapp (9 professional domains) |
| selfdriven.network |
TANA community actuation platform |
| selfdriven.ai |
AI automation and agent services |
| selfdriven.community |
Community hub and governance |
| selfdriven.finance |
Financial services and DeFi |
| selfdriven.bot |
Agent marketplace and A2A protocols |
8 Areas of Focus Framework
The selfdriven Foundation organises all entities using 8 Areas of Focus. This framework applies to every selfdriven property, not just banking. When building any organisational content, always use these consistently:
| # |
Area |
Universal Purpose |
| 01 |
Direction |
Strategy, vision, governance, and regulatory roadmap |
| 02 |
Engagement |
Community, partnerships, ecosystem relationships, and outreach |
| 03 |
Enablement |
Education, onboarding, skills development, and developer tools |
| 04 |
Protocols |
Identity infrastructure, technical standards, and integration |
| 05 |
Sustainability |
Revenue model, resource stewardship, and long-term viability |
| 06 |
Processes |
Operations, workflows, service delivery, and incident management |
| 07 |
Accountability |
Compliance, audit trails, transparency, and stakeholder reporting |
| 08 |
Organisational |
Structure, team design, culture, and decentralised operations |
Applying to Any Domain
When building for a specific selfdriven property, map each area to that domain's context. Examples:
- selfdriven.money (Banking): Direction = APRA ADI licensing; Protocols = KERI + NPP/BPAY/SWIFT/CDR
- selfdriven.pro (Professional Services): Direction = 9-vertical service strategy; Protocols = KERI-anchored professional credentials
- selfdriven.network (TANA): Direction = Community self-governance; Protocols = NuNet compute + KERI event processing
- selfdriven.services: Direction = Service marketplace strategy; Protocols = ACDC service credentials + A2A agent discovery
- selfdriven.ai: Direction = AI agent governance; Protocols = Agent delegation via KERI dip events + SKILL.MD protocol
Human Conductor Model
Each Area of Focus is led by a human conductor who orchestrates AI agents:
- Conductor dedicates ~70% energy to primary area, ~30% across supporting areas
- Each conductor holds a KERI AID with an ACDC role credential
- AI agents operate under KERI-delegated AIDs with scoped, time-limited authority
- Conductors handle: strategy, judgment, relationships, ethics, accountability
- Agents handle: volume, consistency, monitoring, reporting, automation
- Default placeholder conductor: "selfdriven Actuation Team Member" with initials "sd"
KERI/ACDC Identity Architecture
This is the universal trust layer across all selfdriven properties.
Key Concepts
- AID: Autonomous Identifier — self-certifying, no central authority
- KEL: Key Event Log — append-only, witnessed, tamper-evident
- Event types:
icp (inception), rot (rotation), ixn (interaction), dip (delegated inception)
- ACDC: Authentic Chained Data Container — verifiable credential anchored to KERI
- Witness network: Distributed (typically 3 witnesses, 2-of-3 threshold)
- Pre-rotation: Next keys committed before current keys are used — enables instant recovery
- Passkey binding: FIDO2/WebAuthn credentials linked to KERI AID via
ixn event
- vLEI: Verifiable Legal Entity Identifier — GLEIF-issued ACDC for organisational identity
Trust Model (Three Layers)
- Key Events: KERI provides root of trust via append-only key event log
- Credentials: ACDC credentials attest domain-specific claims anchored in KERI
- Operations: Domain actions (transactions, attestations, governance votes) reference the credential layer
KERI Event in API Responses
Every mutating operation across any selfdriven API should include:
{
"keriEvent": {
"type": "ixn",
"aid": "EKE4g_0hDGBOqDLKzNBT3kFOPxoP7wXkqt",
"sn": 1709971200000,
"digest": "sha256-hex-of-request-body"
}
}
Authentication Pattern (Universal)
All selfdriven properties use the same auth model:
- User auth: FIDO2 passkey (biometric/device-bound) linked to KERI AID. No passwords. No SMS OTP.
- Service auth: mTLS + KERI-signed bearer tokens
- Transaction signing: WebAuthn assertion with operation-specific data binding
- Auth UI: Passkey button (primary, accent) + KERI AID button (secondary, outline). Biometric animation (pulsing ring > "Identity verified" > "KERI key event confirmed").
Document Creation
Word Documents (docx)
Use the docx skill. selfdriven conventions:
- Font: Poppins (not Arial) — set in document styles
- Heading colours: H1
#1A1410, H2 #C8442F (accent), H3 #1A1410
- Table headers: Fill
#C8442F, text white, Poppins bold
- Table alternating rows:
#F5E8E5 (accent light)
- Monospace: JetBrains Mono for AIDs, identifiers, hashes, technical data
- Cover page: Logo top-left, title 28pt bold, accent rule, metadata below
- Headers: "selfdriven.[domain] . [Document Title]" left; classification right
- Footers: Page number centred with document reference and version
ISO 27001 / Compliance Documents
- SoA: Landscape A4 for wide tables; all 93 Annex A controls
- Columns: Control ID, Name, Applicable (Yes/N/A), Implemented, Justification, Implementation
- Status colours: Green for "Yes", amber for "N/A"
- KERI enhancements: Note where KERI/ACDC provides architectural enforcement beyond policy
- Regulatory mapping: Adapt to the domain's regulator (APRA CPS 234 for banking, relevant regulator for other verticals)
- Approval table: Domain-appropriate signatories (CISO, CRO, CEO, Board Chair or equivalent)
Markdown Conversion
pandoc input.docx -o output.md --wrap=none
Webapp Patterns
App (Authenticated Dashboard)
- Sidebar: Logo, nav groups by domain context, identity card at bottom showing KERI AID + role
- Topbar: Page title, KERI status pill, notification bell, lock button
- Hero card: Primary metric with accent top-bar, quick action buttons
- Modals: Tabbed interface for multi-step operations; passkey signing animation for mutations
- Toast notifications for feedback; confirmation dialogs for destructive actions
- Search/filter on list views; CSV export for data tables
- Settings: Functional toggle switches with toast feedback
- Auth screen: Passkey + KERI AID dual auth; biometric animation
- Always support dark mode
Presentation / Marketing Site
- Fixed nav with logo, section links, CTA pill button
- Full-viewport hero: Bold headline with accent
<em>, eyebrow label, staggered fade-up
- Stats strip with scroll-triggered reveals
- Feature grid (3-column): Accent-top-bar hover cards with icons
- Step-by-step flow: Numbered cards with connectors
- Dark inverted section: Trust/security/identity messaging
- 8 Areas of Focus grid (4-column): Numbered cards matching the framework
- CTA section: Accent-topped card with primary + outline buttons
- Scroll reveal:
IntersectionObserver with staggered transitionDelay
Team / Organisational Page
- 4-column card grid for 8 Areas of Focus
- Progress bar: Conductors appointed / 8
- Cards: Number badge, status (APPOINTED/OPEN), title, subtitle, conductor slot
- Expandable panel: Description, responsibilities list, AI agents (3 per area), KPIs (3 per area)
- Conductor slot: Dashed border when open (amber status), solid green when filled
- Philosophy section: Human conductor model with 70/30 focus distribution
API Server Patterns
Express.js Structure (Adaptable to Any Domain)
server.js
+-- Identity middleware (keriAuth) — validates bearer token, extracts AID context
+-- Passkey middleware (passkeyVerify) — validates WebAuthn signature for mutations
+-- Domain middleware — e.g., CDR headers for banking, credential scope for services
+-- Public APIs — catalogue, discovery, status
+-- Authenticated APIs — domain resources gated by KERI auth + ACDC scope
+-- KERI Identity APIs — /api/v1/identity/aid, /credentials, /kel, /passkeys
+-- Domain Operations — mutating endpoints with passkey signing + KERI event logging
+-- Health — /health with component status
Pagination
{
"data": { },
"links": { "self": "?page=1", "first": "?page=1", "last": "?page=N", "next": "?page=2" },
"meta": { "totalRecords": 100, "totalPages": 4 }
}
Domain Reference: Banking (selfdriven.money)
Applies only when building for selfdriven.money. For other domains, adapt accordingly.
Regulators
APRA (prudential), ASIC (conduct), AUSTRAC (AML/CTF), OAIC (privacy), ACCC (CDR)
CDR Open Banking API
Base: /cds-au/v1/banking/ | Headers: x-v, x-min-v, x-fapi-interaction-id, x-fapi-customer-ip-address, x-fapi-auth-date
Public: GET /products, /products/:id, /discovery/status, /discovery/outages
Authenticated: GET /accounts, /accounts/:id, /accounts/:id/balance, /accounts/:id/transactions, /payees, /payments/scheduled, /payments/direct-debits, /common/customer
Mock Data
BSB 802-985 | Everyday 4471 8823 $12,847.63 | Bills 4471 8831 $3,240 | Savings 4471 8847 $45,620.18 (5.25%) | Offset 4471 8855 $28,500 | Loan $487,240 (6.19%) | Visa 48237741 | MC 54123309 ($15k) | AID: EKE4g_0hDGBOqDLKzNBT3kFOPxoP7wXkqt | PayID: mark@selfdriven.foundation
Payments
PayID (NPP, real-time, 24/7) | BSB (DE, next day) | BPAY (same/next day) | Internal (immediate) | International (SWIFT, T+1-3, cut-off 2pm AEST)
Checklist
Before delivering any selfdriven output:
1---2name: selfdriven-ecosystem3description: Build selfdriven Foundation ecosystem properties — branded webapps, documents, APIs, and organisational frameworks. Use when the user mentions selfdriven, selfdriven.money, KERI/ACDC identity, Areas of Focus, Human Conductor models, or the selfdriven brand palette (flamingo #C8442F).4---56# selfdriven Ecosystem Builder78Build production-grade web properties, documents, APIs, and organisational frameworks for the selfdriven Foundation ecosystem.910## Overview1112The selfdriven Foundation operates a family of interconnected domains spanning sovereign identity, banking, AI, community, and professional services. This skill captures the brand system, architectural patterns, content frameworks, and technical standards needed to build consistently across the entire ecosystem — not just a single domain.1314### Trigger Contexts1516Consult this skill for any mention of:17- Any selfdriven domain: selfdriven.money, .foundation, .pro, .network, .ai, .services, .community, .finance, .bot18- TANA (community actuation platform) or any selfdriven-branded property19- KERI/ACDC identity integration in any vertical (banking, legal, healthcare, insurance, etc.)20- ISO 27001 ISMS, compliance frameworks, or governance documents for selfdriven entities21- The selfdriven brand palette, typography, or visual language22- 8 Areas of Focus framework, Human Conductor models, community self-actuation23- API servers for any selfdriven property (CDR Open Banking, identity, agent protocols)2425### When to Use This Skill2627- Creating or modifying any selfdriven-branded webapp, site, or dashboard28- Writing organisational papers, compliance documents, or governance frameworks29- Building API servers for any selfdriven domain30- Designing team/organisational structures using the 8 Areas of Focus31- Creating presentation or marketing pages for selfdriven properties32- Building any interface that combines sovereign identity (KERI/ACDC/passkeys) with a service vertical3334## Brand System3536### Design Tokens3738Always use CSS variables. Always support both light and dark modes via `prefers-color-scheme`.3940```css41/* Light mode (default) */42:root {43 --bg: #f5f2ed;44 --surface: #edeae3;45 --surface2: #e5e1d8;46 --border: #ddd8ce;47 --text: #1a1410;48 --muted: #6b5f52;49 --muted2: #9e9085;50 --accent: #c8442f;51 --accent-dim: rgba(200, 68, 47, 0.10);52 --accent-strong: rgba(200, 68, 47, 0.18);53 --card-radius: 20px;54 --shadow: 0 2px 16px rgba(0,0,0,0.07);55}5657/* Dark mode */58@media (prefers-color-scheme: dark) {59 :root {60 --bg: #0a0a0a;61 --surface: #161616;62 --surface2: #1e1e1e;63 --border: #2a2a2a;64 --text: #f0ede8;65 --muted: #b0a89e;66 --muted2: #7a7268;67 --accent: #e85d4a;68 --accent-dim: rgba(232, 93, 74, 0.12);69 --accent-strong: rgba(232, 93, 74, 0.20);70 --shadow: 0 2px 16px rgba(0,0,0,0.4);71 }72}73```7475**CRITICAL**: Always test dark mode for text contrast. Common pitfalls: `var(--muted)` used for text that needs to be readable (use `var(--text)` or `var(--muted)` only — never `var(--muted2)` for body text in dark mode); inverted sections need explicit light text colours rather than `var(--bg)` which becomes `#0a0a0a` in dark mode.7677### Typography7879- **Primary font**: `Poppins` (Google Fonts) — weights 300–90080- **Monospace**: `JetBrains Mono` — for identifiers, AIDs, code, technical data81- **Never use**: Inter, Roboto, Arial, system fonts, DM Sans, Space Grotesk82- **Heading style**: Poppins 800/900 weight, letter-spacing -0.04em, large sizes83- **Body style**: Poppins 400/500, colour `var(--muted)`, line-height 1.6–1.884- **Eyebrow labels**: 11px, weight 700, letter-spacing 0.12em, uppercase, colour `var(--accent)`8586### Logo8788The selfdriven logo is a square flamingo-coloured mark. When available as an uploaded file, embed as base64 for self-contained HTML:89- 80x80px on cover pages and auth screens90- 30-36px in navigation bars91- 18-20px in footers92- Always with `border-radius: 8-14px` and `overflow: hidden`9394### Visual Language9596- **Card style**: `var(--card-radius)` (20px), `1px solid var(--border)`, `var(--shadow)` on hover97- **Accent bar**: 3px top border on cards/modals using `var(--accent)` — signature selfdriven motif98- **Buttons**: Pill-shaped (`border-radius: 999px`) for CTAs, rounded (`border-radius: 12px`) for in-app actions99- **Dark sections**: Invert to `var(--text)` background with explicit light text. In dark mode, use `#141414` to contrast against `#0a0a0a` page100- **Scroll animations**: `IntersectionObserver` with staggered `transitionDelay` for card reveals101- **Nav**: Fixed, blurred backdrop on scroll (`backdrop-filter: blur(16px)`), accent-coloured brand text102103### selfdriven Domain Family104105| Domain | Purpose |106|--------|---------|107| selfdriven.foundation | Parent foundation entity |108| selfdriven.money | Banking platform |109| selfdriven.services | Professional services marketplace |110| selfdriven.pro | Human Conductor webapp (9 professional domains) |111| selfdriven.network | TANA community actuation platform |112| selfdriven.ai | AI automation and agent services |113| selfdriven.community | Community hub and governance |114| selfdriven.finance | Financial services and DeFi |115| selfdriven.bot | Agent marketplace and A2A protocols |116117## 8 Areas of Focus Framework118119The selfdriven Foundation organises **all** entities using 8 Areas of Focus. This framework applies to every selfdriven property, not just banking. When building any organisational content, always use these consistently:120121| # | Area | Universal Purpose |122|---|------|-------------------|123| 01 | Direction | Strategy, vision, governance, and regulatory roadmap |124| 02 | Engagement | Community, partnerships, ecosystem relationships, and outreach |125| 03 | Enablement | Education, onboarding, skills development, and developer tools |126| 04 | Protocols | Identity infrastructure, technical standards, and integration |127| 05 | Sustainability | Revenue model, resource stewardship, and long-term viability |128| 06 | Processes | Operations, workflows, service delivery, and incident management |129| 07 | Accountability | Compliance, audit trails, transparency, and stakeholder reporting |130| 08 | Organisational | Structure, team design, culture, and decentralised operations |131132### Applying to Any Domain133134When building for a specific selfdriven property, map each area to that domain's context. Examples:135136- **selfdriven.money (Banking)**: Direction = APRA ADI licensing; Protocols = KERI + NPP/BPAY/SWIFT/CDR137- **selfdriven.pro (Professional Services)**: Direction = 9-vertical service strategy; Protocols = KERI-anchored professional credentials138- **selfdriven.network (TANA)**: Direction = Community self-governance; Protocols = NuNet compute + KERI event processing139- **selfdriven.services**: Direction = Service marketplace strategy; Protocols = ACDC service credentials + A2A agent discovery140- **selfdriven.ai**: Direction = AI agent governance; Protocols = Agent delegation via KERI dip events + SKILL.MD protocol141142### Human Conductor Model143144Each Area of Focus is led by a **human conductor** who orchestrates AI agents:145- Conductor dedicates ~70% energy to primary area, ~30% across supporting areas146- Each conductor holds a KERI AID with an ACDC role credential147- AI agents operate under KERI-delegated AIDs with scoped, time-limited authority148- Conductors handle: strategy, judgment, relationships, ethics, accountability149- Agents handle: volume, consistency, monitoring, reporting, automation150- Default placeholder conductor: "selfdriven Actuation Team Member" with initials "sd"151152## KERI/ACDC Identity Architecture153154This is the universal trust layer across all selfdriven properties.155156### Key Concepts157158- **AID**: Autonomous Identifier — self-certifying, no central authority159- **KEL**: Key Event Log — append-only, witnessed, tamper-evident160- **Event types**: `icp` (inception), `rot` (rotation), `ixn` (interaction), `dip` (delegated inception)161- **ACDC**: Authentic Chained Data Container — verifiable credential anchored to KERI162- **Witness network**: Distributed (typically 3 witnesses, 2-of-3 threshold)163- **Pre-rotation**: Next keys committed before current keys are used — enables instant recovery164- **Passkey binding**: FIDO2/WebAuthn credentials linked to KERI AID via `ixn` event165- **vLEI**: Verifiable Legal Entity Identifier — GLEIF-issued ACDC for organisational identity166167### Trust Model (Three Layers)1681691. **Key Events**: KERI provides root of trust via append-only key event log1702. **Credentials**: ACDC credentials attest domain-specific claims anchored in KERI1713. **Operations**: Domain actions (transactions, attestations, governance votes) reference the credential layer172173### KERI Event in API Responses174175Every mutating operation across any selfdriven API should include:176```json177{178 "keriEvent": {179 "type": "ixn",180 "aid": "EKE4g_0hDGBOqDLKzNBT3kFOPxoP7wXkqt",181 "sn": 1709971200000,182 "digest": "sha256-hex-of-request-body"183 }184}185```186187### Authentication Pattern (Universal)188189All selfdriven properties use the same auth model:190- **User auth**: FIDO2 passkey (biometric/device-bound) linked to KERI AID. No passwords. No SMS OTP.191- **Service auth**: mTLS + KERI-signed bearer tokens192- **Transaction signing**: WebAuthn assertion with operation-specific data binding193- **Auth UI**: Passkey button (primary, accent) + KERI AID button (secondary, outline). Biometric animation (pulsing ring > "Identity verified" > "KERI key event confirmed").194195## Document Creation196197### Word Documents (docx)198199Use the `docx` skill. selfdriven conventions:200- **Font**: Poppins (not Arial) — set in document styles201- **Heading colours**: H1 `#1A1410`, H2 `#C8442F` (accent), H3 `#1A1410`202- **Table headers**: Fill `#C8442F`, text white, Poppins bold203- **Table alternating rows**: `#F5E8E5` (accent light)204- **Monospace**: JetBrains Mono for AIDs, identifiers, hashes, technical data205- **Cover page**: Logo top-left, title 28pt bold, accent rule, metadata below206- **Headers**: "selfdriven.[domain] . [Document Title]" left; classification right207- **Footers**: Page number centred with document reference and version208209### ISO 27001 / Compliance Documents210211- **SoA**: Landscape A4 for wide tables; all 93 Annex A controls212- **Columns**: Control ID, Name, Applicable (Yes/N/A), Implemented, Justification, Implementation213- **Status colours**: Green for "Yes", amber for "N/A"214- **KERI enhancements**: Note where KERI/ACDC provides architectural enforcement beyond policy215- **Regulatory mapping**: Adapt to the domain's regulator (APRA CPS 234 for banking, relevant regulator for other verticals)216- **Approval table**: Domain-appropriate signatories (CISO, CRO, CEO, Board Chair or equivalent)217218### Markdown Conversion219220`pandoc input.docx -o output.md --wrap=none`221222## Webapp Patterns223224### App (Authenticated Dashboard)225226- Sidebar: Logo, nav groups by domain context, identity card at bottom showing KERI AID + role227- Topbar: Page title, KERI status pill, notification bell, lock button228- Hero card: Primary metric with accent top-bar, quick action buttons229- Modals: Tabbed interface for multi-step operations; passkey signing animation for mutations230- Toast notifications for feedback; confirmation dialogs for destructive actions231- Search/filter on list views; CSV export for data tables232- Settings: Functional toggle switches with toast feedback233- Auth screen: Passkey + KERI AID dual auth; biometric animation234- **Always support dark mode**235236### Presentation / Marketing Site237238- Fixed nav with logo, section links, CTA pill button239- Full-viewport hero: Bold headline with accent `<em>`, eyebrow label, staggered fade-up240- Stats strip with scroll-triggered reveals241- Feature grid (3-column): Accent-top-bar hover cards with icons242- Step-by-step flow: Numbered cards with connectors243- Dark inverted section: Trust/security/identity messaging244- 8 Areas of Focus grid (4-column): Numbered cards matching the framework245- CTA section: Accent-topped card with primary + outline buttons246- Scroll reveal: `IntersectionObserver` with staggered `transitionDelay`247248### Team / Organisational Page249250- 4-column card grid for 8 Areas of Focus251- Progress bar: Conductors appointed / 8252- Cards: Number badge, status (APPOINTED/OPEN), title, subtitle, conductor slot253- Expandable panel: Description, responsibilities list, AI agents (3 per area), KPIs (3 per area)254- Conductor slot: Dashed border when open (amber status), solid green when filled255- Philosophy section: Human conductor model with 70/30 focus distribution256257## API Server Patterns258259### Express.js Structure (Adaptable to Any Domain)260261```262server.js263+-- Identity middleware (keriAuth) — validates bearer token, extracts AID context264+-- Passkey middleware (passkeyVerify) — validates WebAuthn signature for mutations265+-- Domain middleware — e.g., CDR headers for banking, credential scope for services266+-- Public APIs — catalogue, discovery, status267+-- Authenticated APIs — domain resources gated by KERI auth + ACDC scope268+-- KERI Identity APIs — /api/v1/identity/aid, /credentials, /kel, /passkeys269+-- Domain Operations — mutating endpoints with passkey signing + KERI event logging270+-- Health — /health with component status271```272273### Pagination274275```json276{277 "data": { },278 "links": { "self": "?page=1", "first": "?page=1", "last": "?page=N", "next": "?page=2" },279 "meta": { "totalRecords": 100, "totalPages": 4 }280}281```282283## Domain Reference: Banking (selfdriven.money)284285Applies only when building for selfdriven.money. For other domains, adapt accordingly.286287### Regulators288289APRA (prudential), ASIC (conduct), AUSTRAC (AML/CTF), OAIC (privacy), ACCC (CDR)290291### CDR Open Banking API292293Base: `/cds-au/v1/banking/` | Headers: `x-v`, `x-min-v`, `x-fapi-interaction-id`, `x-fapi-customer-ip-address`, `x-fapi-auth-date`294295Public: `GET /products`, `/products/:id`, `/discovery/status`, `/discovery/outages`296297Authenticated: `GET /accounts`, `/accounts/:id`, `/accounts/:id/balance`, `/accounts/:id/transactions`, `/payees`, `/payments/scheduled`, `/payments/direct-debits`, `/common/customer`298299### Mock Data300301BSB 802-985 | Everyday 4471 8823 $12,847.63 | Bills 4471 8831 $3,240 | Savings 4471 8847 $45,620.18 (5.25%) | Offset 4471 8855 $28,500 | Loan $487,240 (6.19%) | Visa 4823****7741 | MC 5412****3309 ($15k) | AID: EKE4g_0hDGBOqDLKzNBT3kFOPxoP7wXkqt | PayID: mark@selfdriven.foundation302303### Payments304305PayID (NPP, real-time, 24/7) | BSB (DE, next day) | BPAY (same/next day) | Internal (immediate) | International (SWIFT, T+1-3, cut-off 2pm AEST)306307## Checklist308309Before delivering any selfdriven output:310311- [ ] Poppins + JetBrains Mono (not generic fonts)312- [ ] Accent `#C8442F` (light) / `#E85D4A` (dark)313- [ ] Dark mode supported and contrast-tested314- [ ] Logo embedded at correct size if available315- [ ] Card radius 20px with accent top-bar hover316- [ ] Pill-shaped CTA buttons (999px radius)317- [ ] KERI/ACDC terminology correct (AID not "address", KEL not "log")318- [ ] 8 Areas of Focus numbered 01-08 in correct order319- [ ] Documents use Poppins in styles (not Arial)320- [ ] Domain-specific regulatory references accurate321- [ ] Human Conductor model for organisational structures