ark/
├── web/ # Next.js 16 frontend (React 19, TailwindCSS 4)
├── infrastructure/ # AWS CDK stacks (TypeScript)
├── core/ # Python backend modules (uv workspace)
│ ├── lambda/ # Lambda handlers
│ ├── agent/ # Pydantic AI agents
│ ├── database/ # DynamoDB clients
│ └── shared/ # Shared utilities
└── conductor/ # Documentation
Use Bun instead of Node.js:
bun installinstead of npm/yarn/pnpmbun run <script>instead of npm runbunx <pkg>instead of npx
Use uv package manager:
uv sync --all-packagesto install all workspace packagesuv add <pkg>to add dependencies- Workspace imports via
[tool.uv.sources]in pyproject.toml
- Next.js 16 with App Router
- React 19 with TypeScript strict mode
- TailwindCSS 4 for styling
- Run:
cd web && bun dev
- AWS CDK v2 with TypeScript
- Stacks: Amplify, Auth, Storage, Api
- Deploy:
cd infrastructure && bunx cdk deploy --all - Stack dependencies defined in
bin/app.ts
- AWS Lambda Powertools for logging/tracing
- APIGatewayRestResolver for routing
- ARM64 architecture, Python 3.12
- Single-table design with composite keys (PK/SK)
- GSI on email for lookups
- Pydantic models with
to_dynamodb_item()/from_dynamodb_item() - Extend
DynamoDBClientbase class for new tables (provides put/get/delete/query/update)
- Pydantic AI with BedrockConverseModel
- Claude Sonnet 4.5 via AWS Bedrock
- Type-safe RunContext with dependencies
When working on Three.js threat visuals, 3D components, or the R3F scene, always invoke these skills:
React Three Fiber (built-in):
r3f-shaders— Custom GLSL, shaderMaterial, uniformsr3f-geometry— BufferGeometry, instancing, procedural meshesr3f-materials— PBR materials, shader materials, material propertiesr3f-postprocessing— Bloom, DOF, screen effectsr3f-animation— useFrame, spring physics, keyframesr3f-fundamentals— Canvas, hooks, JSX elements, eventsr3f-lighting— Light types, shadows, environment lightingr3f-textures— Texture loading, environment maps, PBR setsr3f-interaction— Pointer events, controls, gesturesthreejs-scene-builder— Procedural generation, scene composition
Installed specializations:
particles-gpu— GPU-instanced particle systemsshader-effects— Advanced shader techniques (volumetric, lensing, energy)three-best-practices— Three.js performance, memory management, disposalvfx-realtime— Real-time VFX patterns for cinematic effects
When implementing features from detailed plans:
Prefer granular commits:
- Follow the task structure specified in implementation plans
- One commit per logical task (e.g., "Task 5: Bridge Layout Component")
- Commit messages reference task numbers from the plan
- Benefits: easier code review, clearer git history, better bisection
When consolidation is acceptable:
- Tightly coupled changes that don't make sense separately
- Rapid prototyping or spike work
- Bug fixes touching multiple related areas
Example - Good:
feat: add boot sequence state machine (Task 1)
feat: add loading bar with boot text (Task 2)
feat: add eyelid reveal transition (Task 3)
Example - Avoid:
feat: add entire boot sequence system
(consolidates Tasks 1-4 into single commit)
For multi-task implementations:
- Request code review after every 3-5 tasks
- Use
/requesting-code-reviewskill with proper git SHAs - Address feedback before continuing to next batch
- Prevents compounding issues
Frontend (via SSM → Amplify):
NEXT_PUBLIC_USER_POOL_IDNEXT_PUBLIC_USER_POOL_CLIENT_IDNEXT_PUBLIC_API_BASE_URL
Lambda:
ENVIRONMENT,LOG_LEVELUSERS_TABLE_NAME,USERS_TABLE_EMAIL_INDEX