Change requests and decisions
The cahier's scope clause turned into a process: what counts as a change, how a request becomes a written decision, how the plan is updated, how the decision register works, and when HOCO signs.
The scope clause
The validation sheet of the cahier (p. 2) ends with this clause:
« Toute fonctionnalité non décrite ou non validée dans le présent cahier des charges fera l’objet d’une analyse complémentaire, d’un chiffrage séparé ou d’une planification dans une version ultérieure. »
Any feature that is not described or not validated in the cahier is analysed separately, priced separately, or planned for a later version. The team applies it literally, and to both sides: nothing is added silently, and nothing described is dropped silently.
What is in scope is the cahier as signed on the validation sheet, plus what HOCO validates afterwards: the PRD and SRS baseline at the cadrage workshop (PRJ-03), each surface's designs after its feedback round, and the decisions in the register. The V1/V2 split follows cahier §14.1/§14.2 and the scope page. Team decisions already in the plan — the reseller web (RWA-01) and the product decisions of the team (for example after-sales and returns in V1) — are part of the baseline presented to HOCO at the cadrage workshop, not change requests.
What is a change request
| Situation | Change request? | Handled by |
|---|---|---|
| A new feature, screen, field, report, business rule or integration not in the cahier or the validated baseline | Yes | This process |
| Changing a validated design after its feedback round | Yes | This process |
| Changing a decided item of the register | Yes — a new decision supersedes it | This process |
| Moving a V2 item into V1, or a V1 item out of it | Yes | This process |
| A new external service, account, subscription or cost (cahier §11, INT-07) | Yes | This process |
| Behaviour that contradicts the SRS or the contract | No — a bug | Bugs |
| A detail left open inside described scope (wording, field order, a default value) | No — a clarification | Anis decides and logs it in the register |
| Internal technical choices (libraries, structure, hosting recipe) | No | An ADR on the architecture page |
Grey-zone rule: a "clarification" whose answer adds more than half a day to a task's estimate is a change request.
How a request becomes a decision
Capture. Whoever hears the request — in a review, a call, a WhatsApp message — answers « C'est noté — nous revenons vers vous avec l'impact » and tells Anis. Never "yes", never "it's small". Within 1 working day Anis opens a GitHub issue in hoco, label change-request, titled CR-007 — <short title>.
Analyse — within 3 working days. Imad and Akram estimate their parts. The analysis lists the requirement ids, screens, operations and tasks affected; the effort per person (classic and optimized, as in the planning method); the plan impact computed by the scheduler on a branch copy of tasks.json — which milestones move and by how much; the cost impact, priced separately as the scope clause says; the risks.
Present the options at the next client review, or by e-mail when a task is waiting: A. add it now — the plan moves and the cost is quoted; B. swap it for V1 scope of equal effort — the plan holds; C. plan it in V2 or a later version; D. decline.
Decide. HOCO's sponsor decides in writing (e-mail). A priced option needs the signed quote or amendment before work starts.
Apply. Specs first (requirements.json with a new id and its release, screens.json, endpoints.json), then tasks.json and the pages, in a PR docs(plan): apply CR-007 — <title>. The register records the decision. The new milestone dates — read from the scheduler — go to HOCO in the next client review and the recap e-mail.
Close. The CR issue links the decision e-mail, the register entry and the PRs.
Change-request template
# CR-007 — <short title>
Requested by: <name, role at HOCO> · Received: YYYY-MM-DD via <review | call | WhatsApp | e-mail>
Status: Open | Analysed | Decided | Applied | Declined · Owner: Anis
## Request
What HOCO asks for, in their words (French quote).
## Reason
The business need behind it.
## Impact on scope
Requirements added or changed (ids, V1/V2), screens, operations, apps (BO, RA, RW, DA, API).
## Impact on plan
Tasks added or changed, effort per person (optimized days), milestones moved — computed by the scheduler.
## Impact on cost
Priced separately: <amount or "to quote">.
## Risks
## Options
A. Add now · B. Swap with <V1 item> · C. Plan in V2 · D. Decline
## Recommendation
## Decision
Option <X>, decided by <name> on YYYY-MM-DD — reference: e-mail "<subject>". Register: D-xx.Updating the plan
The plan is changed like code, and only through tasks.json:
git switch -c docs/cr-007-plan
# edit apps/docs/content/plan/tasks.json: optimized/effort, deps, release, team, or a new task
pnpm --filter @hoco/docs schedule # prints the new calendar, warns on unknown dependencies
pnpm docs:generate # regenerates the team-task pages
pnpm --filter @hoco/docs check-mdx # every page still compiles
git add apps/docs/content/plan/tasks.json apps/docs/content/docs/team-tasks
git commit -m "docs(plan): apply CR-007 — export invoices to Excel"- The plan change is its own commit, so the plan's history reads cleanly (planning method).
- A new task takes the next free id of its prefix (
SRV,DSH,MRA…); ids of removed tasks are never reused. - Dates are never edited, and an estimate is never shrunk to keep a date. The levers are real ones: scope, sequence, owner, capacity (If dates slip).
- Imad and Akram review a plan PR that touches their lanes. Once merged, the docs deploy publishes the new timeline, and Anis notes the change on the Progress page.
The decision register
The register is the open decisions page. A decision not written there did not happen.
| Field | Content |
|---|---|
| Id | D-xx, never reused (iOS, for example, is D-10) |
| Question | One sentence, with the requirement ids it affects |
| Options | What was considered |
| Default | What the team does if no decision arrives in time |
| Needed by | A task id — the plan gives the date |
| Owner | Who decides: a named person at HOCO, or the team |
| Status | Open · Decided · Superseded |
| Decision | The text, the date, who decided, the source (e-mail, meeting notes) |
| Impact | Requirements, screens, operations and tasks changed |
Rules:
- Anyone opens an entry (through Anis) as soon as a question blocks or will block a task.
- Every open decision has a default. When its needed-by task starts without an answer, the default applies, HOCO is told in writing, and changing it later is a change request.
- Decisions are taken in writing only; the entry quotes its source.
- Nothing is deleted. A new entry supersedes an old one and links back.
- The register is read at the Sunday planning (what is due this week) and at each client review (what HOCO must decide).
- Technical decisions of the team are ADRs on the architecture page; they are not HOCO's to sign.
Sign-off moments
| Moment | Document | Signed or validated by | Task → milestone | Unblocks |
|---|---|---|---|---|
| Cadrage validated | The cahier's validation sheet (p. 2): client and provider approvals | HOCO's authorised representative; Anis for the provider | PRJ-03 → Cadrage validated — validation sheet signed | The database schema (SRV-02) |
| Screen inventory | The screen inventory | The team; shared with HOCO | DES-05 → Screen inventory frozen | Screen design |
| Designs, per surface | Validation e-mail per surface (v1.0, then v1.1 after the feedback round) | HOCO's project lead | Validation sessions, then DES-22 | Later design changes become CRs |
| API contract v1 | — internal | Anis and Imad | SRV-03 → API contract v1 published (OpenAPI + mock server) | The mobile track |
| Acceptance | The PV de recette | HOCO's authorised representative | QA-02 → Acceptance report (PV de recette) signed | Production go-live |
| Pilot go / no-go | A written decision based on the pilot KPIs | HOCO's sponsor and Anis | LCH-03, LCH-03B → Pilot go / no-go | Generalisation |
| Generalisation complete | Handover of the support and maintenance procedures | HOCO and Anis | LCH-05 → Generalisation complete | The maintenance contract and the warranty period (cahier §13.4) |
| V2 scope | CR decisions and the V2 version plan | HOCO's sponsor | Before SRV-29 | The V2 build |
The PV is signed when the priority scenarios of cahier §12 pass, the blocking defects are fixed, and the open Majors are listed as reserves with their fix versions (acceptance rule, acceptance scenarios). Signed documents are kept as PDFs in the project's shared folder and referenced from the register entry of the moment they close.
3-month frame: design → development → deployment — deadline 17 Jan 2027.
| Date | Milestone | Target | Reached when these tasks end |
|---|---|---|---|
| 18 Oct 2026 | Cadrage validated — validation sheet signed | — | PRJ-03 |
| 18 Oct 2026 | API contract v1 published (OpenAPI + mock server) | — | SRV-03 |
| 19 Oct 2026 | Server V1 feature-complete | — | SRV-26, SRV-40 |
| 21 Oct 2026 | Design system v1 ready (tokens + components) | — | DES-04 |
| 22 Oct 2026 | Screen inventory frozen | — | DES-05 |
| 29 Oct 2026 | Reseller app designs ready for client review | — | DES-10 |
| 05 Nov 2026 | Delegate app designs ready for client review | — | DES-14 |
| 08 Nov 2026 | Mobile foundations ready | — | MOB-11 |
| 12 Nov 2026 | Back-office designs ready for client review | — | DES-19 |
| 16 Nov 2026 | Design handoff complete | — | DES-21 |
| 03 Dec 2026 | Back-office and reseller web V1 feature-complete | — | DSH-12, WEB-05, WEB-06 |
| 15 Dec 2026 | Mobile apps V1 feature-complete | — | MDA-12 |
| 22 Dec 2026 | Staging integration complete | — | MOB-14, SRV-28 |
| 28 Dec 2026 | Acceptance report (PV de recette) signed | — | QA-02 |
| 29 Dec 2026 | Production go-live | on time — 17 Jan 2027 | LCH-01 |
| 30 Dec 2026 | Pilot starts | on time — 17 Jan 2027 | LCH-02 |
| 14 Jan 2027 | Pilot go / no-go | — | LCH-03, LCH-03B |
| 21 Jan 2027 | Generalisation complete | — | LCH-05 |
| 22 Feb 2027 | V2 delivered | — | SRV-38, DSH-21, MDA-20, WEB-20, DQA-12 |
Bugs and incidents
How bugs are reported, rated and triaged, where they live, the response targets from build to production, the incident and hotfix process, and the on-call duty during the pilot.
Tools
The toolchain of both repositories with versions and purpose, the services the team uses, and the commands everyone runs every day.