# Cadrage Structure Cards

> Reference for step-01-cadrage.md — exact JSON formats for cadrage section fields.

## stakeholders[]

```json
{
  "role": "Fleet Manager",
  "function": "Manages daily fleet operations",
  "involvement": "decision-maker",
  "tasks": ["Monitor vehicles", "Approve repairs", "Export reports"],
  "frequency": "Daily",
  "painPoints": ["Manual tracking in spreadsheets", "No real-time visibility"]
}
```
**MANDATORY fields:** `role`, `function`, `involvement`, `tasks`
**involvement values:** `approver`, `decision-maker`, `consulted`, `informed`, `end-user`
**FORBIDDEN fields:** Do NOT use `expertise`, `systemRole`, `description` (use `function` instead).

## applicationRoles[]

```json
{
  "role": "{App} Admin",
  "description": "Full access to all modules",
  "level": "admin",
  "permissionPattern": "{app}.*"
}
```
**MANDATORY fields:** `role`, `level`, `permissionPattern`
**level values:** `admin`, `manager`, `contributor`, `viewer`
**FORBIDDEN fields:** Do NOT use `permissions` (use `permissionPattern`), `isDefault`.

## risks[]

```json
{
  "id": "RISK-001",
  "type": "business|technical|organizational",
  "description": "CSV data may contain duplicates and errors",
  "probability": "high|medium|low",
  "impact": "high|medium|low",
  "priority": "critical|medium|low",
  "mitigation": "Data cleaning phase before import, detailed error reports"
}
```
**MANDATORY fields:** `id` (pattern: RISK-NNN), `type`, `description`, `mitigation`
**FORBIDDEN fields:** Do NOT use `risk` (name), `severity`. Use `id` + `description` + `priority`.

## acceptanceCriteria[]

```json
{ "id": "AC-001", "criterion": "All must-have features delivered and tested", "validated": false }
```
**MANDATORY:** This section must NOT be omitted.

## coverageMatrix[]

```json
{
  "item": "User management with CRUD",
  "category": "mustHave|shouldHave|couldHave|outOfScope|implicit",
  "module": "Users",
  "ucRef": "UC-UM-001",
  "notes": "Foundation module, must be implemented first",
  "anticipatedSections": ["list", "dashboard"],
  "anticipatedResources": ["user-grid", "user-filters", "user-form"],
  "detailTabs": ["Informations", "Roles", "Historique"]
}
```
**MANDATORY fields:** `item`, `category`, `module`
**OPTIONAL fields:** `ucRef`, `notes`, `anticipatedSections`, `anticipatedResources`, `detailTabs`
**category values:** `mustHave`, `shouldHave`, `couldHave`, `outOfScope`, `implicit` (camelCase)
**anticipatedSections:** Array of section codes (Level 4) — functional zones ONLY: `["list", "dashboard", "approve", "import", "rapport", "planning"]`. NEVER `create`, `edit`, or `detail` (those are actions/pages within `list`).
**anticipatedResources:** Array of resource codes (Level 5) — e.g., `["user-grid", "user-filters", "user-form"]`
**detailTabs:** Array of tab names for the detail page (reached by clicking a row in `list`) — e.g., `["Informations", "Roles", "Historique"]`
**FORBIDDEN fields:** Do NOT use `id`, `feature`, `priority`. Use `item` + `category`.

## codebaseContext

Must be a string, NOT an object:
```json
"codebaseContext": "Greenfield project, no existing entities. SmartStack 2.1.0 with Extensions DbContext."
```
