Adds anchor-based image album generation across docs, skeleton, and rendered
full-monorepo. One subject description + one anchor image + N directed shots,
covering personas, products, characters, and brand assets out of the box.
## What ships
**Skeleton packages:**
- pkg/album/types.go — Album, Shot, ShotStatus, ShotTemplate, AlbumUpdater
- pkg/album/templates.go — PortraitSession, ProductShoot, CharacterSheet built-ins
- pkg/album/handler.go — AnchorHandler + ShotHandler queue job handlers
- packages/realtime/src/useAlbumGeneration.ts — SSE hook owning all album state
- packages/ui/src/components/AlbumGrid.tsx — responsive shot grid with shimmer
- packages/ui/src/components/ShotCard.tsx — pending/generating/complete/failed states
- packages/ui/src/components/AnchorPreview.tsx — anchor CTA + image with controls
**Component service template:**
- internal/port/album.go — AlbumRepository interface
- internal/adapter/memory/album.go — in-memory repo for standalone dev
- internal/service/album.go — create, list, get, generateAnchor, generateAllShots
- internal/api/handlers/album.go — HTTP handlers (CRUD + 202 generation endpoints)
- Routes: GET/POST /albums, GET/DELETE /albums/{id}, POST /albums/{id}/anchor,
POST/DELETE /albums/{id}/shots, POST /albums/{id}/shots/{index}
**Documentation:**
- .claude/guides/album.md — full guide with API, SSE events, frontend usage
**Key architecture decisions:**
- Anchor bytes never stored in queue payload — workers fetch AnchorURL at runtime
- Generation order enforced: POST /shots returns 422 if no anchor exists
- All album SSE events on existing user:<userId> channel (no new channel)
- AlbumUpdater interface lets job handlers update repo from inside queue workers
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
53 lines
777 B
Plaintext
53 lines
777 B
Plaintext
# Credentials - never commit (root .claude/ only, not templates)
|
|
/.claude/
|
|
*.credentials*
|
|
*.key
|
|
*.pem
|
|
.secrets
|
|
|
|
# Kubernetes secrets with real values (use *.example as template)
|
|
deployments/k8s/base/secrets.yaml
|
|
deployments/k8s/base/credentials.yaml
|
|
|
|
# Local development
|
|
.env.local
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Build artifacts
|
|
*.tar
|
|
*.gz
|
|
/rdev-api
|
|
/sdlc
|
|
coverage.out
|
|
|
|
# Temporary files
|
|
tmp/
|
|
|
|
# Deploy keys (generated, never commit)
|
|
*-deploy-key
|
|
*-deploy-key.pub
|
|
*-deploy-key.b64
|
|
.agentive-remediation/
|
|
|
|
# Compiled binaries
|
|
/rdev-worker
|
|
/rdev-api
|
|
/claudebox-sidecar
|
|
/sdlc
|
|
/render-skeleton
|
|
|
|
# Rendered example monorepo (regenerated from templates)
|
|
examples/full-monorepo/
|
|
|
|
# SDK: spec is generated at build time, not committed
|
|
sdk/openapi.json
|