Feature: Project Registry and Validation
Purpose
- Feature name: Project registry and validation
- Why this feature exists: Keep project metadata consistent, validated, and safe to render across routes.
Scope
In scope
- registry schema validation
- slug uniqueness and required fields
- featured and full project lists
Out of scope
- evidence rendering UI (covered in evidence visualization)
- route layouts and navigation
- project registry data in the portfolio app
- schema validation helpers available in the app
Procedure / Content
Feature summary
- Feature name: Project registry and validation
- Feature group: Evidence-first content model
- Technical summary: Validates project records at build and in CI to enforce schema constraints and slug uniqueness.
- Low-tech summary: A single, checked source of truth for projects so pages do not break.
Feature in action
- Where to see it working:
/projects and /projects/[slug] render from registry data in the deployed app.
Confirmation Process
Manual
- Steps: Open
/projects, select a project, and confirm the detail page renders expected fields.
- What to look for: No missing title/summary, valid slug routing, and consistent tags/status.
- Artifacts or reports to inspect: CI registry validation output (from
pnpm registry:validate).
Tests
- Projects list renders empty due to invalid registry data.
- Duplicate slugs cause routing collisions or 404s.
Long-term maintenance notes
- Keep schema changes versioned and update validation tests.
- Review featured project criteria as the registry expands.
- Next.js App Router
- React
- Zod
Source code references (GitHub URLs)
ADRs
Runbooks
Additional internal references
External reference links
Validation / Expected outcomes
- Registry validation passes in CI and locally.
- Project pages render without missing required fields.
Failure modes / Troubleshooting
- Validation failures: fix schema violations and re-run checks.
- Slug conflicts: update entries and revalidate.
References