ワンクリックで
table-page
Creates a full-stack paginated table page with filters, sorting, and detail view — from SQL to React — using MasaProvider.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Creates a full-stack paginated table page with filters, sorting, and detail view — from SQL to React — using MasaProvider.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Extracts methods from the monolithic RoseauGateway/RoseauRepository into a dedicated gateway/repository pair within the same folder. Use this when moving domain-specific methods out of roseau.gateway into their own gateway.
Creates new functionalities that fetch reference data via MasaProvider instead of directly using LanceleauGateway or RoseauGateway.
Creates unit and e2e tests for NestJS applications using Jest and Supertest. Includes patterns for testing services, controllers, guards, and e2e tests with testcontainers.
Creates a typed API endpoint across shared route definition, NestJS controller, frontend service, and Query hook.
Creates unit tests for React frontend components using Vitest and React Testing Library, following accessibility-first best practices.
Develops, styles, and tests DSFR-compliant React 19 components.
SOC 職業分類に基づく
| name | table-page |
| description | Creates a full-stack paginated table page with filters, sorting, and detail view — from SQL to React — using MasaProvider. |
Full-stack paginated table page: DTO -> route -> repository -> gateway -> masa.provider -> service -> mapper -> controller -> API service -> hook -> filters hook -> table data helper -> page component.
Reference implementation: conformite feature (commit d457346a).
packages/dossier/)| Step | File | What to do | Reference |
|---|---|---|---|
| 1 | src/<domain>/<domain>.dto.ts | Zod schemas for list item + detail + createPaginatedResponseSchema | src/conformite/conformite.dto.ts |
| 2 | src/routes/<domain>.routes.ts | Route definitions: list (with createPaginationQuerySchema(SortByEnum)) + detail | src/routes/conformite.routes.ts |
| 3 | src/index.ts | Re-export both new files | — |
| 4 | Build: npm run build --workspace=packages/dossier |
apps/back/)| Step | File | What to do | Reference |
|---|---|---|---|
| 5 | src/masa/masa.dto.ts | Internal Filters (extends PaginationQuery), Row (may extend shared DTO with extra fields), DetailRow types | src/masa/masa.dto.ts |
| 6 | src/referentiel/roseau/roseau.gateway.ts | Add find<Domain> + find<Domain>Detail method signatures | src/referentiel/roseau/roseau.gateway.ts |
| 7 | src/referentiel/roseau/roseau.repository.ts | SQL implementation: parameterized queries, sort column mapping (camelCase->snake_case), WHERE clauses, COUNT + LIMIT/OFFSET | findConformiteSteu |
| 8 | src/masa/masa.provider.ts | Pass-through methods with TODO: Remplacer par appel ... API MASA comment | src/masa/masa.provider.ts |
| 9 | src/<domain>/<domain>.service.ts | Auth resolution (CDAs->CDNs), filter construction with conditional spread, delegate to masaProvider | src/conformite/conformite.service.ts |
| 10 | src/<domain>/<domain>.mapper.ts | Transform internal Row -> public Dto (strip internal-only fields) | src/conformite/conformite.mapper.ts |
| 11 | src/<domain>/<domain>.controller.ts | @UseGuards(MeGuard, HasUserAccessToOuvragesGuard), ZodValidationPipe, RouteResponse<typeof route> | src/conformite/conformite.controller.ts |
| 12 | src/<domain>/<domain>.module.ts | Imports MasaModule, declares controller + service | src/conformite/conformite.module.ts |
| 13 | src/api/api.module.ts | Add new module to imports array | — |
apps/front/)| Step | File | What to do | Reference |
|---|---|---|---|
| 14 | src/api/<domain>.ts | apiCall(route, { query }) wrapper functions | src/api/conformite.ts |
| 15 | src/hooks/use<Domain>.ts | TanStack Query hooks with keepPreviousData for list, standard for detail | src/hooks/useConformite.ts |
| 16 | src/hooks/use<Domain>Filters.ts | FilterState, query builder with conditional spread, pagination/sort state, reset page on filter change | src/hooks/useConformiteFilters.ts |
| 17 | src/helper/<domain>TableData.tsx | buildHeaders() + buildRows() returning ReactNode[][], use Badge for statuses, formatDate from @lib/shared | src/helper/conformiteTableData.tsx |
| 18 | src/pages/<domain>/<Domain>Dashboard.tsx | DSFR Table, Select, Pagination, Alert; sortable headers; loading/error/empty states | src/pages/conformite/ConformiteDashboard.tsx |
| 19 | src/routes.ts | Add route constant | — |
| 20 | src/App.tsx | Add <ProtectedRoute> entry | — |
| 21 | src/components/Header.tsx | Add navigation entry | — |
| 22 | src/components/Breadcrumb.tsx | Add breadcrumb segment + currentPageLabel | — |
npm run lint --workspace=apps/back && npm run lint --workspace=apps/front
createPaginationQuerySchema(SortByEnum) in routes, PaginationQuery in service options...(value ? { value } : {}) when building filter objectsmasaProvider.findSteuBatchBySandreCdas() before queryingz.enum for sortable columns in routes, camelCase->snake_case map in repositorymasa-provider skill)Badge from DSFR for statuses, formatDate from @lib/shared for datescreateModal() pattern (see ConformiteDetailModal)fullstack-route — Typed API stack (route definition -> controller -> API service -> Query hook). Covers steps 2, 11, 14, 15 in detail.masa-provider — MasaProvider facade pattern. Covers steps 5–8 (gateway, repository, provider, DTOs).nestjs-testing — Unit and e2e tests for NestJS services and controllers. Use after steps 9–12 to test the backend.dsfr-component — DSFR-compliant React components. Use for steps 17–18 (table data helpers, page component).@lib/dossierapiCall directly in components — wrap in hooks