Files
atomic-design-poc/.claude/skills/new-ssp/SKILL.md
Edwin van den Houdt cf44bda0ce
Some checks failed
CI / frontend (push) Successful in 2m16s
CI / storybook-a11y (push) Successful in 4m6s
CI / backend (push) Failing after 48s
CI / api-client-drift (push) Successful in 1m32s
docs(skills): extract house recipes as Claude Code skills for SSP templating
8 template-generic skills in .claude/skills/ (new-feature, new-context,
value-object, form-machine, bff-endpoint, mutation-command, ui-component,
new-ssp), condensed from CLAUDE.md/ARCHITECTURE/fp-tea/ADRs and pointing at
this repo's worked examples. CLAUDE.md gains a pointer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 10:10:38 +02:00

3.0 KiB
Raw Blame History

name, description
name description
new-ssp Bootstrap a new self-service portal from this repo as a template — what to keep, strip, rename, and re-seed. Use when starting a new SSP for a different domain/register.

New SSP from this template

The template's value is the enforced architecture (layer fences, token gate, a11y gate, API-drift gate) and the shared building blocks — not the BIG-register business content. Keep the machinery, replace the domain.

Keep as-is

  • src/app/shared/ — kernel (fp.ts), application (remote-data, store, submit), ui atoms/molecules, layout templates, upload subtree.
  • Tooling: eslint.config.mjs, scripts/check-tokens.sh, .github/workflows/ci.yml, nswag.json, .storybook/, proxy.conf.json, .npmrc (legacy-peer-deps — and never npm audit fix --force, it downgrades Angular).
  • src/app/auth/ (fake auth shell) and src/app/shared/infrastructure/scenario.interceptor.ts (dev-only).
  • docs/architecture/ ADRs 00010003 — the decisions still apply; amend, don't delete.
  • CLAUDE.md, docs/ARCHITECTURE.md, docs/fp-tea-atomic-design.md — update names/examples as contexts change.
  • .claude/skills/ — these recipes are the point of the template.

Strip / replace

  • Business contexts registratie/, herregistratie/, brief/, and showcase/: delete or keep one slice temporarily as the worked example while building the first real context (new-context + new-feature skills). If deleted, update the worked-example paths in these skills to the new flagship context.
  • app.routes.ts routes and tsconfig.json aliases for removed contexts, plus their eslint blocks in eslint.config.mjs.
  • Backend: keep the skeleton (Program.cs minimal-API style, ProblemDetails 422, X-Correlation-Id audit line, /api/v1 versioning, Contracts//Domain//Data/ split, test project) — replace Data/SeedData.cs, Domain/* rules, and Contracts/* DTOs with the new domain's. Rename the solution/projects from BigRegister.* (also update package.json gen:api and ci.yml paths).
  • Regenerate the seam: npm run gen:api (commits backend/swagger.json + src/app/shared/infrastructure/api-client.ts).
  • Branding: public/cibg-huisstijl/ + the token bridge in src/styles.scss — for a different house style, swap the vendored CSS and re-point the --rhc-* bridge (ADR-0003 pattern: bridge, don't rewrite tokens).
  • docs/backlog/ WPs, PRDs, and memory-specific docs — new portal, new backlog (keep docs/backlog/README.md's WP process/template if you like the workflow).

Verify — the GREEN gate must pass at every step

npm run lint && npm run check:tokens && npm test && npm run build
npm run build-storybook && npm run test-storybook:ci
cd backend && dotnet test && cd ..
npm run gen:api && git diff --exit-code backend/swagger.json src/app/shared/infrastructure/api-client.ts

Strip incrementally and keep this green — the fences are only worth having if they never go red.