---
name: proposal-method
description: Canonical client-proposal methodology for the conversational BA phases — mandatory domain research, internal first draft, self-audit of the draft, then presentation grouped in 3 tiers (Obligatoire / Suggestion / Élargissement).
phase: '*'
kind: companion
section_label: '_WORKFLOW — PROPOSAL METHOD'
---

# Proposal method (cross-phase)

Every client-facing proposal of the conversational BA phases follows the SAME
discipline. A proposal is never a raw brainstorm typed straight into the chat:
it is researched, drafted internally, audited internally, and only THEN
presented — grouped in three tiers so the client always sees what is core,
what is recommended, and what is vision.

This file is the canonical methodology (repo-only — the installer does not
deploy `_workflow/`). Each deployed skill embeds the pieces it needs inline;
the tier table below is drift-locked across all carriers by
`lib/__tests__/proposal-tiers-drift.test.ts`.

## The 3 proposal tiers

<!-- proposal-tiers:v1 — drift-tested against lib/proposal-tiers.ts (edit ALL carriers or the suite fails) -->
| Tier | Meaning | Test question |
|---|---|---|
| **Obligatoire** | Core of the scope — without it the node loses its primary purpose | "If I drop this item, does the scope lose its reason to exist?" — strict yes, rationale anchored in the client context or the existing tree |
| **Suggestion** | Improves real usage at scale, or an industry standard often forgotten | "Bulk, draft, export, exception handling, notification, audit trail, automation, delegation — does one of these apply here?" |
| **Élargissement** | Beyond the initial scope — the vision direction | "Analytics layer, AI-assisted action, predictive feature, collaborative angle — worth showing the client the future?" |
<!-- /proposal-tiers:v1 -->

- A candidate that fits two tiers goes in the **higher** (more speculative) one.
- **Anti-pattern — everything Obligatoire**: if every candidate lands in
  Obligatoire you are not categorising, you are playing safe. Most non-trivial
  scopes legitimately split across the three tiers.
- **Anti-pattern — empty Suggestion**: every domain has standards the client
  forgets (audit trail, notifications, exports) — push for at least one.
- Tier names are client-facing French labels and stay verbatim (never
  "Fundamental/Recommended/Advanced", never "CORE").

## The universal proposal loop

For every proposal turn (a menu level, a section's UC candidates, a scope's
rule candidates, a section's screen plan):

1. **Research (MANDATORY)** — run **at least 2** web searches calibrated to the
   ACTUAL business domain, at least one naming the domain explicitly (generic
   queries like "dashboard best practices" are forbidden — they re-derive what
   you already know). Extract: standard-but-non-obvious items, industry
   terminology, compliance must-haves, innovative directions (these feed
   Élargissement). A finding you RETAIN (it shaped a candidate) is registered
   through the sources registry — `create-sources/cli/ingest` with `kind:web`
   and ≥1 verbatim extract (the CLI refuses a web source with none) — then
   cited `SRC-NNN` in the proposal's rationale AND in the item's
   `- **Sources**` line at Write. A search that shaped nothing enters NOTHING.
   Never announce research and stop — research and propose in the SAME turn. Research
   identifies **candidates for the current phase only** — it never invents
   items owned by another phase (entities, rules, screens stay in their phase).
2. **Draft internally** — build the complete candidate list for the scope,
   each candidate with code + label + tier + one-line rationale (anchored in
   the tree/context for Obligatoire, in the research for the upper tiers).
3. **Self-audit the draft (MANDATORY, before anything is shown)** — pass the
   full draft through the phase's own checklist (bounds, prohibitions,
   semantic rules — each `create-*` skill defines its list). Fix every
   violation by requalifying, merging or demoting candidates. The client never
   sees the unaudited draft.
4. **Present** — prose grouped under the three tier headings, each candidate
   with its short rationale (+ source for researched ones), then ONE
   AskUserQuestion multi-select with the candidates as options, the
   Obligatoire ones pre-selected. Include a one-line self-audit trace when the
   audit changed the draft ("Auto-audit : 2 candidats requalifiés — X → filtre
   d'état, Y → resource").
5. **Validate & Write** — only the retained candidates are persisted, per the
   phase's write protocol.

## Phases that carry the tiers

| Phase | Carrier | Tier reading |
|---|---|---|
| menu (`create-menu`, all 4 levels) | `create-menu/SKILL.md` | Obligatoire = the scope can't function without this app/module/section; Élargissement = vision nodes (analytics module, portal…) |
| use cases (`create-use-case`) | `levels/discovery.md` | Obligatoire = the section's primary purpose; Suggestion = scale + industry standards; Élargissement = vision UCs |
| business rules (`create-business-rules`) | `levels/identify.md` | primary grouping stays by rule Type; the tier is a per-candidate tag |
| screens (`create-screen`) | `SKILL.md` | Obligatoire = screens the decision table derives from menu + UCs; Suggestion = comfort screens (kanban 2nd screen, dashboard, exports); Élargissement = vision (analytics) |

## Phases WITHOUT tiers (deliberate — do not add them)

- **actors** — candidates are tagged by ORIGIN (réutilisé / détecté / inféré);
  inventing roles from research would corrupt RBAC downstream.
- **data model & RBAC** — traceable derivation phases: every entity/permission
  is mandatory-because-traceable to upstream docs; "there is no suggested
  tier" is a deliberate existing rule. Web research never introduces items.
- **completeAuto runs** — `completeAuto-discipline.md` OVERRIDES this file:
  auto-complete is a coverage audit, web research must not introduce items,
  so the Suggestion/Élargissement tiers are disabled there (no user is
  validating speculative candidates).

## Legacy tier mapping (pre-2026-07 docs)

Older docs may still use the retired taxonomies. Map on read, never write them:

| Legacy | Becomes |
|---|---|
| Fundamental (menu modules) / Recommandés (UC 4-tier) | Obligatoire |
| Recommended (menu) / Améliorations + Bonus métier (UC) | Suggestion |
| Advanced (menu) / Élargissement-vision (UC) | Élargissement |
