Personal portfolio showcasing 19 case studies, p5.js generative art, and a live engineering dashboard. The central node of the ORGANVM eight-organ creative-institutional system.
The project is organized around the ORGANVM systemβa polymathic framework spanning 171 repositories and 8 GitHub organizations.
- Live Hub: organvm.github.io/portfolio
- Architecture: The Eight-Organ System
- Frontend: Astro 5 (Static Site Generation)
- Data Viz: D3.js & p5.js
- State: JSON-driven architecture (
src/data/) - Type Safety: TypeScript (Strict Mode)
- Styling: Scoped CSS (No framework)
- Search: Pagefind (Static Indexing)
This repository acts as the Logos (Organ V) node, coordinating data and vitals from across the system.
graph TD
subgraph System [ORGANVM Ecosystem]
I[Organ I: Theory] --> II[Organ II: Art]
II --> III[Organ III: Commerce]
III --> IV[Organ IV: Orchestration]
IV --> V[Organ V: Logos/Portfolio]
V --> VI[Organ VI: Koinonia]
VI --> VII[Organ VII: Kerygma]
VII --> VIII[Organ VIII: Meta]
end
Portfolio[This Repo] -- Consumes --> Data[src/data/*.json]
Data -- Synced From --> External[Sibling Repos]
Portfolio -- Deploys To --> Pages[GitHub Pages]
We enforce a rigorous Quality Ratchet system via custom automation.
| Pillar | Metric | Goal |
|---|---|---|
| Performance | Lighthouse Score | 100 |
| Accessibility | axe-core Coverage | 100% |
| Security | npm audit / Dependabot |
0 Vulnerabilities |
| Integrity | Link Checking | 0 Broken Links |
| Stability | CI Green Runs | 5 Consecutive |
View Detailed Quality Policy
Lighthouse CI enforcement: Perf β₯ 90, A11y β₯ 91, BP β₯ 93, SEO β₯ 92.
Coverage ratchet policy: W2 12/8/8/12, W4 18/12/12/18, W6 25/18/18/25, W8 35/25/25/35, W10 45/32/32/45, W12 55/40/40/55 (Statements/Branches/Functions/Lines). Active phase: W12.
Typecheck hint budget policy: W2 <=20, W4 <=8, W6 =0, W8 =0, W10 =0, W12 =0.
Runtime a11y coverage ratchet: 100% enforcement (reached).
Security ratchet checkpoints: 2026-02-21 moderate<=5, low<=4, 2026-02-28 moderate<=2, low<=2, 2026-03-07 moderate<=1, low<=1, 2026-03-14 moderate<=0, low<=0, 2026-03-18 moderate<=0, low<=0.
- Node.js >= 22
- npm
git clone https://github.com/organvm/portfolio
cd portfolio
npm installnpm run dev # sync:vitals, then astro dev β localhost:4321/portfolio/
npm run lint:fix # Biome autofix (tabs, single quotes, trailing commas, width 100)
npm run preflight # Pre-push gate: lint β typecheck:strict β build β validate β sync:a11y-routes β testnpm run build # generate-badges β sync:vitals β sync:omega β sync:identity β astro build β pagefind
npm run preview # Serve the built dist/npm run test # Vitest unit + integration
npm run test:watch # Vitest in watch mode
npm run test:coverage # Coverage report (V8 provider)
## Require npm run build first:
npm run test:a11y # axe-core audit on built HTML
npm run test:e2e:smoke # Playwright smoke (mobile + desktop viewports)
npm run test:runtime:errors # Runtime error telemetry
## Workspace packages (Node built-in test runner, not Vitest):
npm run test:github-pages-core
npm run test:quality-ratchet-kit
npm run test:shibui-rhetoric
npm run test:sketchesnpm run sync:vitals # .quality/*.json β vitals.json, trust-vitals.json, landing.json
npm run sync:omega # targets.json β omega.json (maturity scorecard)
npm run sync:identity # system-metrics.json β about.json
npm run sync:a11y-routes # Rebuild route manifest after adding/removing pages or personas
npm run generate-data # Regenerate src/data/ from sibling Python repoRequires the gemini CLI. Falls back to [DRAFT] templates when unavailable.
## Create a strike target (defaults to systems-architect persona)
npm run strike:new "Company Name" "Role Title"
## Specify a persona from src/data/personas.json
npm run strike:new "Company Name" "Role Title" "persona-id"
## AI-discover candidates per persona β src/data/scout-candidates.json
npm run strike:scout
## Batch-process intake/job-descriptions/ directory
npm run strike:sweepAfter strike:new, the tailored landing page appears at /portfolio/for/<slug> and npm run build:resume generates the PDF.
npm run quality:local:no-lh # Full CI-parity: security β lint β typecheck:strict β build β all tests β badges β verify
npm run quality:local # Same + Lighthouse (requires Chrome)The /consult page POSTs to a Cloudflare Worker backed by D1. When PUBLIC_CONSULT_API_BASE is unset the page falls back to deterministic capability analysis.
npm run consult:worker:dev # Local dev via wrangler --remote (requires CF auth)
npm run consult:worker:deploy # Deploy worker to Cloudflare
npm run consult:worker:migrate:remote # Apply D1 migrations to productionSet PUBLIC_CONSULT_API_BASE to your worker origin (e.g. https://portfolio-consult-api.<subdomain>.workers.dev) in the Astro deployment environment before building. Full API contract: workers/consult-api/README.md.
npm run build:resume # Render per-persona resume YAML β PDF
npm run build:qr # Generate QR codesEnjoying the work? Support development through:
- GitHub Sponsors β Direct recurring support
- Payrail β One-time or flexible contributions
Your support fuels the ORGANVM ecosystem and keeps these tools free and open.
Have a question or opportunity? Connect on GitHub.
Distributed under the MIT License. See LICENSE for more information.
