HOCO B2B
Design

Design plan (21 days)

How Akram designs the four HOCO interfaces in 21 working days — design system first, inventory validation on day 5, then every V1 screen — with inputs, outputs, reviews, client checkpoints and the work that follows handoff.

Akram designs every interface of the ecosystem in Claude Design: the reseller app (RA, Flutter), the delegate app (DA, Flutter, offline-first), the back-office (BO, Next.js) and the reseller web (RW, Next.js). The screen inventory lists 155 screens — 146 in V1, 9 in V2. The V1 screens are designed in 21 working days (tasks DES-01 to DES-21, phase 2 "UX/UI" of the cahier §14); the V2 screens follow later in DES-30.

These 21 days are the first third of V1. Design, development and deployment of V1 fit in three months, and production go-live and the two-week pilot close that frame (see the timeline). Nothing downstream can absorb a design slip, so the plan is built to protect the 21 days: see why the 21 days cannot slip.

The plan has three blocks:

BlockDaysOutputMilestone reached
Design system1–4Principles, tokens, mobile components, web components and five back-office page templatesDesign system v1 ready (tokens + components)
Inventory5Screen inventory validated with Imad and Anis, user flows, wireframes of checkout, visit flow and tour closingScreen inventory frozen
Screens6–21Reseller app (days 6–10), delegate app (11–14), back-office (15–19), reseller web (20), prototypes and handoff (21)Reseller app…, Delegate app…, Back-office designs ready for client review, then Design handoff complete

21 days = 21 working days

The plan reads Akram's "21 days" as 21 working days on the Sunday–Thursday week, with the 1 November public holiday excluded. Day N is task DES-NN; the scheduler computes the dates, shown in the Gantt below and on the timeline. If Akram meant three calendar weeks (15 working days), set the effort of DES-01…DES-21 to 0.7 in content/plan/tasks.json and every date recomputes. The day-by-day content below then stays the same; each day just becomes shorter.

Why the design system comes first

  1. Imad starts building it right after Day 3. MOB-04 (Flutter design system: tokens, theme, components and a widget gallery) depends on DES-03 and starts while Akram is still on Days 4–5. The navigation shells and system states (MOB-05) and the authentication flows of both apps (MOB-06) follow before the reseller-app review. Each of these tasks needs components to exist, not screens.
  2. Volume. 146 V1 screens over 15 screen days is almost 10 screens a day. That pace is only possible if Days 6–20 assemble existing components. In the back-office, 45 of the 66 V1 pages are template pages: a page template plus a filled page spec (see Back-office templates).
  3. The client references disagree with each other. The 16 reference screens use two delegate navigation models, four back-button styles, three input styles and three money formats (see Reference screens). The design system settles each of these once.
  4. Statuses are everywhere. enums.json defines over 50 enums. Every status carries a tone (neutral, info, progress, success, warning, danger, brand, muted) that must render the same in four apps. One status-pill component driven by the tone does this; picking colours screen by screen does not.
  5. Accessibility and RTL are cheaper as tokens. Contrast, minimum text sizes, touch targets and logical (start/end) spacing are set on Days 2–3 (NFR-06, NFR-07), so they are never retrofitted screen by screen.
  6. Two stacks, one source. Tokens are exported once as JSON and generated into Flutter ThemeExtensions (hoco_ui) and CSS variables (@hoco/ui). See token delivery.

Why the 21 days cannot slip

The design days sit on the critical path of every build track:

  • Imad builds while Akram designs. The Flutter design system starts after Day 3. The authentication flows of both apps start right after Day 6. The reseller-app screens (MRA-01 to MRA-05) are built while Akram is still on the back-office days. A late reseller day therefore delays Imad directly, not just Akram.
  • Anis builds the back-office, then the reseller web, inside V1. DSH-01 needs Day 15. WEB-01 starts as soon as the back-office foundation exists and needs Day 20. The reseller web is deployed with the rest before the pilot, so Day 20 is real build input, not an early draft.
  • The buffer is small. The only design buffer is DES-22, the client feedback round right after handoff, and it is already filled with HOCO's feedback.

How the plan protects the calendar:

ProtectionHow it worksWhat it prevents
Components before screens (Days 1–4)Screen days assemble library parts; a new component goes into the library firstRe-drawing the same card on five days; inconsistent states that cost rework later
Template strategy for the back-office45 of the 66 V1 back-office pages are a template plus a filled page spec (columns, filters, actions, fields, permissions, empty copy), not a pixel mock (templates)Day 19 (29 pages) fitting in one day; Anis building from a spec without waiting for mocks
Daily 15-minute feasibility checkImad (mobile days) or Anis (web days) reviews each day's frames the same afternoon or before 10:00 the next day: data available in the API, states complete, cost of custom widgetsA design that cannot be built being discovered in the build phase, when the fix costs days instead of minutes
Scope frozen on Day 5After Screen inventory frozen, additions are change requests weighed by Anis against the frameScreens appearing mid-plan
Incremental handoffEach app's frames move to Ready for dev at its client checkpoint, not at Day 21 (statuses)Imad waiting for M08 while the reseller app is already approved
Time-boxed daysA day ends on time. Bespoke frames and critical states come first; template specs last. If a day overruns by more than an hour, Anis is told the same day and decides which secondary states become annotations instead of framesOne late day cascading into the next
One feedback channel, 3-day answerClient feedback goes to one list per checkpoint; small fixes are applied the next morning, the rest go to DES-22Feedback churn reopening approved screens

Deliverables

DeliverableWhereConsumed byDone when
Claude Design project structure, naming and status conventionsClaude Design, page CoverEveryoneShared by link with Anis and Imad, status legend on the cover (handoff)
Foundations and tokens v0.9 → v1.0Claude Design tokens + hoco.tokens.jsonMOB-04, DSH-01Every token of the design system exists as a token; JSON exported
Mobile component libraryClaude Design, Components-MobileMOB-04, MOB-05Every row of the mobile components table with all its states
Web components and five page templatesClaude Design, Components-WebDSH-01, WEB-01Every row of the web components table; List, Detail, Form, Settings and Dashboard templates annotated
Validated inventory, user flows, wireframesThis site + Claude DesignAll screen daysDay-5 checklist ticked
Screen designs with statesClaude Design, one page per appMRA-, MDA-, DSH-, WEB-Frames named ID · Name · state, annotated, status Ready for review or later
Clickable prototypesClaude Design, PrototypesHOCO, training (DQA-06)Reseller ordering path and delegate visit day work end to end
Handoff packageClaude Design + this siteImad, AnisTokens v1.0 tagged, assets exported, changelog started (handoff checklist)

Plan at a glance

TaskNamePhaseDatesEffortDepends on
DES-01Day 1 — Kickoff, reference audit & Claude Design setupP0Sun 18 Oct1 d—
DES-02Day 2 — Foundations & design tokensP0Mon 19 Oct1 dDES-01
DES-03Day 3 — Mobile component libraryP0Tue 20 Oct1 dDES-02
DES-04Day 4 — Web & back-office components and page templatesP0Wed 21 Oct1 dDES-02
DES-05Day 5 — Screen inventory validation, user flows & wireframesP0Thu 22 Oct1 dDES-01
DES-06Day 6 — Reseller app: onboarding & accountP0Sun 25 Oct1 dDES-05
DES-07Day 7 — Reseller app: home, search & catalogP0Mon 26 Oct1 dDES-06
DES-08Day 8 — Reseller app: product, cart & checkoutP0Tue 27 Oct1 dDES-07
DES-09Day 9 — Reseller app: orders & financeP0Wed 28 Oct1 dDES-08
DES-10Day 10 — Reseller app: promotions, notifications, account, supportP0Thu 29 Oct1 dDES-09
DES-11Day 11 — Delegate app: access, home, profileP0Mon 02 Nov1 dDES-10
DES-12Day 12 — Delegate app: tour programme, map & POS sheetP0Tue 03 Nov1 dDES-11
DES-13Day 13 — Delegate app: visit, report, prospects, follow-upsP0Wed 04 Nov1 dDES-12
DES-14Day 14 — Delegate app: sign-up, invitation, first order, closingP0Thu 05 Nov1 dDES-13
DES-15Day 15 — Back-office: shell, access & dashboardsP0Sun 08 Nov1 dDES-14
DES-16Day 16 — Back-office: CRMP0Mon 09 Nov1 dDES-15
DES-17Day 17 — Back-office: catalog, pricing & stockP0Tue 10 Nov1 dDES-16
DES-18Day 18 — Back-office: orders, delivery & financeP0Wed 11 Nov1 dDES-17
DES-19Day 19 — Back-office: field ops, promotions, support, reports, adminP0Thu 12 Nov1 dDES-18
DES-20Day 20 — Reseller web: responsive layoutsP0Sun 15 Nov1 dDES-19
DES-21Day 21 — Prototypes, design QA & handoffP0Mon 16 Nov1 dDES-20

21 tasks · 21 d of open effort. Dates are computed — Sunday–Thursday weeks, holidays excluded.

18 Oct 2026 → 22 Feb 2027
Oct 2026Nov 2026Dec 2026Jan 2027Feb 202718/1025/101/118/1115/1122/1129/116/1213/1220/1227/123/110/117/124/131/17/214/221/2
Milestones
P0 — Foundations (cadrage, UX/UI, architecture & contract)
P2 — Acceptance, go-live & pilot
P4 — V2 evolutions
AkramV2 scopePublic holiday◆ Milestone (hover for name)
DayTaskFocusV1 screensBespoke / template (BO)Milestone at the end of the day
1DES-01Kickoff, reference audit, Claude Design setup———
2DES-02Foundations and tokens———
3DES-03Mobile component library———
4DES-04Web components and page templates——Design system v1 ready (tokens + components)
5DES-05Inventory validation, flows, wireframes——Screen inventory frozen
6DES-06RA onboarding, account and guest mode9——
7DES-07RA home, search, catalog and advanced filters5——
8DES-08RA product, cart and checkout7——
9DES-09RA orders, returns and finance7——
10DES-10RA promotions, notifications, account, support, system10—Reseller app designs ready for client review
11DES-11DA access, home, profile9——
12DES-12DA tour programme, map, point-of-sale sheet4——
13DES-13DA visit, report, prospects, follow-ups5——
14DES-14DA sign-up, invitation, first order, closing, sync10—Delegate app designs ready for client review
15DES-15BO shell, access, dashboards84 / 4—
16DES-16BO CRM74 / 3—
17DES-17BO catalog, prices, attributes, stock122 / 10—
18DES-18BO orders, confirmation queue, delivery, returns, finance103 / 7—
19DES-19BO field operations, promotions, support, reports, administration298 / 21Back-office designs ready for client review
20DES-20Reseller web, desktop and tablet14——
21DES-21Prototypes, consistency pass, handoff——Design handoff complete

Day 12 has only four screens, but they are the hardest of the delegate app (map, tour programme). Day 19 has 29 pages, but 21 of them are template instances. See risks.

How every screen day works

Every day from 6 to 20 follows the same routine, so reviews never pile up:

  1. Morning. Open the day's inventory rows, their requirements and the reference screens. Agree the list of states with the developer who builds them next (5 minutes, in chat).
  2. Design. Assemble from the library. A new component is allowed only when no existing one fits; it goes to Components-Mobile or Components-Web first, never as a one-off frame.
  3. Annotate. States, interactions, French copy, data sources (API operation ids), accessibility. Use the annotation conventions.
  4. End of day. Move the section to Ready for review. Post the link in the team channel.
  5. 15-minute feasibility check. Imad reviews mobile days and Anis reviews back-office and web days, the same afternoon or before 10:00 the next day. The answer is OK, OK with notes (left as comments on the shared design) or Needs change (fixed before the next day's work starts).

Day-by-day plan

Day 1 — Kickoff, reference audit & Claude Design setup

Goal. Understand the product, the users and the client's visual intent. Make the Claude Design project ready for 21 days of work.

Inputs. The cahier (in full; screen pages §5–§6.9, non-functional §9, security §10). The 16 client reference screens. The PRD and user flows. The binding product decisions of 17 October: guest mode, three customer-type prices, availability-only stock, advanced filters, regional WhatsApp support, after-sales and returns in V1, live order status, explicit back-office confirmation of every order. The cadrage workshop with HOCO (PRJ-03) runs the same day, and Akram attends.

Work.

  • Review the reference audit on Reference screens. Confirm or amend each keep and fix item.
  • Send the brand-asset request to HOCO, due by Day 2. It covers: vector logos of HOCO, ACEFAST and BOROFONE (SVG or AI) and any usage rules; 20–30 product photos on a white background, at least 1 000 px square; any existing HOCO brand guide; the legal mentions printed on today's invoices (NIF, NIS, RC, AI), needed later for DQA-09.
  • Create the Claude Design project and its pages (Cover, Foundations, Components-Mobile, Components-Web, Reseller App, Delegate App, Back-office, Reseller Web, Prototypes, Archive). Create the status badge component and the annotation kit, and the empty token groups Primitives, Semantic, Status, Spacing, Radius. See project structure.
  • Confirm the five principles.

Done when. The Claude Design project is shared with Anis and Imad by link. The cover shows the status legend and naming rules. The asset request has been sent. Open questions from the workshop are logged in the decision register.

Review. Anis (15 minutes, file structure and naming). Feeds. DES-02 and DES-05.

Day 2 — Foundations & design tokens

Goal. Every foundation token exists as a token in Claude Design and is exported as tokens v0.9. Imad starts the Flutter theme right after Day 3, so names must be stable today.

Inputs. The proposed tokens (colour, status tones, typography, spacing, grid, radii, elevation, motion). The provisional values in packages/ui/src/styles/globals.css (@hoco/ui). The tone values in enums.json. NFR-06 (French V1, Arabic RTL prepared) and NFR-07 (accessibility).

Work. Palette (blue, teal, orange, neutral 0–900, semantic colours, one tone per status), the Latin and Arabic type scales for mobile and web, a 4-point spacing scale, grids and breakpoints, radii, shadows, borders and focus ring, the icon set (Lucide, plus custom icons on the same grid), motion durations. Check contrast on every text and background pair.

Claude Design. Page Foundations, frames Colour, Status tones, Typography — Latin, Typography — Arabic, Spacing & grid, Radii & elevation, Icons, Motion.

Done when. Variable names match the naming convention. The contrast table is filled: every text pair is at least 4.5:1 and every UI boundary at least 3:1. hoco.tokens.json v0.9 is exported and sent to Anis, who commits it, and to Imad.

Review. Imad and Anis (15 minutes): do the token names map cleanly to ThemeExtension fields and CSS variables? Feeds. DES-03 and DES-04. The tokens reach MOB-04 and DSH-01.

Day 3 — Mobile component library

Goal. Every mobile component exists with its variants and states. This is the input of Imad's Flutter design system.

Inputs. Tokens v0.9. The mobile components table. Reference screens for the product card, order card, visit row, KPI tile and bottom navigation.

Work.

  • Build the components. Variant property names follow the Flutter parameter names (variant, size, state, tone).
  • Include the components that the new product decisions require: price lock (guest), customer-type cards, availability indicator, the advanced filter sheet parts (range slider, category tree, attribute chips, active-filter chips, result-count button), the WhatsApp support button and the live-update indicator.
  • Also build the system-state components now: offline banner, full-page error, maintenance, forced update, empty state and skeletons. MOB-05 builds the app shells and system states before Day 10, when the RA-36 frames are assembled.

Claude Design. Page Components-Mobile, one section per family: Actions, Inputs, Selection, Commerce, Orders, Field, Feedback, Navigation, System.

Done when.

  • Every component has the default, pressed, focused, disabled, loading and error states that apply.
  • Components resize with their content (no fixed sizes) everywhere.
  • Five components pass a mirror test in RTL (layout direction flipped, icons checked).
  • One sample screen (catalog grid with the filter sheet) is composed only from library parts.

Review. Imad (mobile feasibility) marks each component themed Material widget or custom widget, and estimates the custom ones. Feeds. MOB-04, Flutter design system and widget gallery.

Day 4 — Web & back-office components and page templates

Goal. Web components and the five back-office page templates (List, Detail with tabs, Form, Settings, Dashboard), plus the reseller-web layout shell.

Inputs. Tokens v0.9. The existing @hoco/ui components (button, badge, card, input, label, separator, skeleton; Base UI and Tailwind 4). The web components table. The template strategy. NFR-05: desktop, tablet and large screens.

Work.

  • Navy sidebar with collapsed rail and tablet drawer, top bar, data table (sorting, selection, bulk actions, density, pagination), filter bar with saved views, forms, KPI card, chart card, drawer, modal, toast, timeline, kanban column, calendar, map panel, uploader, wizard stepper, permission matrix.
  • The reseller-web header and the catalog filter sidebar (category tree, brand multi-select, price range, attribute filters, counts).
  • Show each template at 1280, 1440 and 1920 px, and at tablet width.

Claude Design. Page Components-Web, sections Primitives, Data, Navigation, Overlays, Maps & planning, Templates, Reseller web shell.

Done when. The five templates are annotated with their slots (see the screen inventory). Every component is mapped to an existing @hoco/ui component or marked to build.

Milestone. Design system v1 ready (tokens + components), the first client checkpoint (see below).

Review. Anis (web feasibility). Feeds. No task depends on DES-04 directly in the plan. Its output is consumed by DSH-01 (HOCO tokens in the UI kit, DataTable, filter, form and detail patterns), which the plan gates on Day 15.

Day 5 — Screen inventory validation, user flows & wireframes

Goal. Freeze the list of screens. Anis and Imad co-own this day.

Inputs. The screen inventory (155 screens), its coverage check, the requirements, the API catalogue and the acceptance scenarios (cahier §12).

Work.

  • Walk the Day-5 checklist: counts, requirement coverage, data per screen, states, French names, navigation, the BO-31 price-list question.
  • Draw four flows: reseller ordering (guest → sign-up → first order → live tracking), the delegate day, back-office order confirmation and delivery, and after-sales and returns.
  • Wireframe the checkout (RA-17/RA-18), the visit flow (DA-08 → DA-10 → DA-12) and tour closing (DA-20) in low fidelity.

Claude Design. Section 00 · Flows & wireframes at the top of the Reseller App, Delegate App and Back-office pages.

Done when. The checklist is ticked. Anis has applied the agreed additions, merges and renames to screens.json. The inventory is frozen; later changes go through change requests.

Milestone. Screen inventory frozen, the second client checkpoint.

Review. Anis (BO, RW) and Imad (RA, DA) in the session itself. Feeds. DES-06 and every screen day.

Day 6 — Reseller app: onboarding, account & guest mode

Goal. A visitor can browse as a guest, sign up (phone, OTP, store, customer type, password), wait for validation, sign in and recover a password.

Inputs. There is no client reference for the reseller onboarding: the reseller set skips number 2. Use the delegate sign-in reference (delegate-01) for the form pattern. Cahier §5 and §6.6. API: auth.otp.send, auth.otp.verify, auth.signup.reseller, auth.login, auth.password.reset, invitations.resolve, reference.wilayas, reference.communes, appConfig.get.

Requirements. ADM-07, AUTH-03, AUTH-04, AUTH-05, AUTH-07, AUTH-08, AUTH-09, AUTH-10, AUTH-11, CRM-01, CRM-09, GEO-01, IVT-04, PRC-02.

Screens.

  • RA-01 Splash & version check — Démarrage
  • RA-02 Welcome (sign in, sign up, browse as guest) — Bienvenue
  • RA-03 Sign-up — phone & invitation code — Inscription — téléphone
  • RA-04 OTP verification — Vérification du code
  • RA-05 Sign-up — store details, customer type & password — Inscription — magasin
  • RA-06 Account pending validation / rejected — Compte en attente
  • RA-07 Sign in — Connexion
  • RA-08 Forgot password — Mot de passe oublié
  • RA-41 Guest mode — price lock and sign-up prompts — Mode invité

States to cover.

  • RA-01: loading; forced update (426 UPGRADE_REQUIRED, store link); maintenance (503 MAINTENANCE with end time); offline at launch, with a cached session (home and offline banner) or without one.
  • RA-02: first launch; opened from an invitation link, with the code pre-filled as AB12-CD34; the three exits « Créer un compte », « Se connecter » and « Découvrir le catalogue » (guest).
  • RA-03:
    • The phone field shows 0555 12 34 56 and stores E.164.
    • Invalid number.
    • Number already registered (PHONE_ALREADY_EXISTS): offer sign-in, or the account claim of a prospect created in the field (AUTH-05). The OTP proves ownership and links the existing record, so no duplicate is created.
    • The optional invitation code is invalid or expired.
  • RA-04: six digit boxes with SMS autofill; the code is valid for 5 minutes (countdown); resend unlocks after 60 s (OTP_RESEND_TOO_SOON); at most 5 sends per hour (RATE_LIMITED); 5 wrong attempts (TOO_MANY_ATTEMPTS); expired code.
  • RA-05:
    • Store name, owner, wilaya then commune (cascading pickers), address and business type.
    • Customer type: required, three cards Super-gros, Demi-gros and Détail, each with a one-line description and the note « Vérifié par HOCO lors de la validation de votre compte ». It cannot be edited after submission (AUTH-11).
    • Password and confirmation with the rules shown, inline errors, submit loading.
  • RA-06:
    • Pending: the reseller already sees the prices of their declared type (default, decision to confirm), but « Commander » is locked with an explanation (ACCOUNT_PENDING_VALIDATION).
    • Rejected: the reason, plus « Contacter l'assistance » with the WhatsApp button.
    • Suspended (ACCOUNT_SUSPENDED): an explicit message.
  • RA-07: invalid credentials; 15-minute lockout after 5 failures; routing for pending and suspended accounts.
  • RA-08: phone → OTP (reuses RA-04) → new password → success → sign-in.
  • RA-41, guest mode: the price lock « Créez un compte pour voir les prix » on cards and product detail; the sign-up prompt sheet triggered by « Ajouter au panier », favourites, the Panier and Commandes tabs and the Compte tab; the guest banner on home; no price facet in filters; the WhatsApp button still available.

Claude Design. Page Reseller App, section RA · Onboarding & account. Example frames: RA-03 · Sign-up — phone & invitation code · error-phone-already-exists, RA-05 · Sign-up — store details, customer type & password · default, RA-41 · Guest mode — price lock and sign-up prompts · sign-up-sheet.

Also on Day 6. Draft the delegate sign-in and reset (DA-02, DA-03) and the delegate splash (DA-01) as variants of RA-07, RA-08 and RA-01: same components, delegate header, no sign-up link. MOB-06 builds the authentication of both apps right after Day 6, before the delegate days. Day 11 finalises these frames (suspended state, consent).

Done when. Every state above has a frame. Every error has its French message (see form patterns). The guest variant of each tab exists.

Review. Imad. The onboarding is built before the reseller-app client review, so HOCO also gets an asynchronous look on Day 7 (a link with 5 questions). Feeds. MOB-06 (RA-02…RA-08, RA-41, DA-02, DA-03) and MOB-05 (RA-01).

Day 7 — Reseller app: home, search, catalog & advanced filters

Goal. Find a product in under three taps or three seconds (NFR-01), as a guest or signed in.

Inputs. References reseller-01-home and reseller-02-catalog. Cahier §5 and §5.1. API: catalog.home, catalog.products.list, catalog.products.suggest, catalog.products.byBarcode, catalog.facets, catalog.categories, catalog.brands, banners.list, finance.summary, notifications.unreadCount, support.whatsapp.

Requirements. AUTH-10, CAT-07, CAT-10, CAT-11, CAT-12, CAT-13, FIN-10, NOT-01, PRC-05, PRM-05, STK-07, SUP-05.

Screens.

  • RA-09 Home — Accueil
  • RA-10 Search — Recherche
  • RA-11 Barcode scanner — Scanner
  • RA-12 Catalog — Catalogue
  • RA-13 Advanced filters & sort (price range, category/sub-category, brand, attributes…) — Filtres avancés et tri

States to cover.

  • RA-09:
    • Skeleton, then content.
    • Banner carousel with countdown chip (PRM-05).
    • Quick access: Catalogue, Commandes, Promotions, Assistance. The Points tile is removed (loyalty is V2).
    • Popular categories and recommended products.
    • Finance tiles Solde and Crédit disponible (signed-in only).
    • Pending-validation banner, guest banner, unread badge, offline (cached content).
    • The fixed WhatsApp button showing the resolved region.
  • RA-10: recent searches, suggestions as you type, results count, no result (offer the scanner and the WhatsApp button), slow network (skeleton after 300 ms).
  • RA-11: camera permission prompt, denied and permanently denied; scanning with torch; product found (opens RA-14); unknown barcode with manual entry.
  • RA-12:
    • Tabs Nouveautés / Populaires / Promotions, category chips, 2-column grid with cursor pagination.
    • Availability only: En stock or En rupture, never a quantity.
    • Price, or the guest price lock; promo badge; add button that turns into a stepper; favourite toggle.
    • Out-of-stock card (add disabled).
    • Active-filter chips row with « Tout effacer »; empty result after filtering, with « Réinitialiser les filtres ».
  • RA-13, a full-height sheet with these sections:
    • Category tree (category, then sub-category, with counts).
    • Brand multi-select with logos and counts.
    • Price range slider with min/max inputs (signed-in only).
    • Attribute filters by type: chips for lists (connector USB-C, Lightning, Micro-USB; colour), range sliders with units (power in W, capacity in mAh, cable length in m), toggles for booleans.
    • Toggles En stock uniquement, En promotion, Nouveautés.
    • Sort options (pertinence, prix croissant, prix décroissant, nouveauté, popularité; cahier §5.1).
    • Sticky footer « Réinitialiser » and « Voir 128 produits », with the live count from catalog.facets. Options with zero results show (0) and are disabled.

Claude Design. Section RA · Shopping. Example frames: RA-12 · Catalog · guest, RA-13 · Advanced filters & sort · attribute-range.

Done when. The guest and signed-in variants of RA-09 and RA-12 exist. The filter sheet is shown for at least two categories with different attribute sets (chargers, cables). The WhatsApp button placement is agreed (see the component).

Review. Imad: facet counts, slider widget, scanner. Feeds. MRA-01 (RA-09) and MRA-02 (RA-10…RA-13).

Day 8 — Reseller app: product, cart & checkout

Goal. From product to submitted order, with every validation message.

Inputs. References reseller-03-product-detail and reseller-04-cart-checkout. Cahier §5.2 and §5.3. Wireframe of Day 5. API: catalog.products.get, catalog.products.similar, favorites.*, cart.get, cart.items.add, cart.items.update, cart.items.remove, cart.checkoutOptions, cart.checkout, addresses.*.

Requirements. AUTH-10, CAT-08, CAT-09, DLV-06, FIN-02, FIN-05, GEO-01, ORD-01, ORD-02, ORD-03, PRC-05, PRM-04, STK-07.

Screens.

  • RA-14 Product detail — Détail produit
  • RA-15 Full specifications — Caractéristiques
  • RA-16 Favorites — Favoris
  • RA-17 Cart — Panier
  • RA-18 Checkout — Validation de commande
  • RA-19 Address book & address form — Adresses de livraison
  • RA-20 Order confirmation — Commande envoyée

States to cover.

  • RA-14:
    • Gallery (counter, thumbnails, zoom) and variant selector.
    • Price block: « Votre prix » with the customer type (e.g. Demi-gros), « Prix de vente conseillé », and the promo state (struck original price, discount badge). Guests see the lock instead.
    • Availability En stock or En rupture.
    • Quantity stepper with the minimum, step and maximum per order (« Max : 20 pièces par commande »). There are no quantity tiers in V1.
    • « Ajouter au panier » (primary) and « Commander maintenant ». The second one adds the item and opens the cart; it never checks out a partial cart.
    • Favourite, share, similar and complementary products, unavailable product (404).
  • RA-15: specification groups in 14 sp text, never smaller.
  • RA-16: list, empty state, an item that went out of stock.
  • RA-17:
    • Lines show unit price × quantity = line total.
    • Remove with undo.
    • Price changed since added (PRC-05): a banner naming the lines.
    • Requested quantity no longer available (STOCK_INSUFFICIENT): a line error that never shows the stock figure.
    • Minimum amount not met (ORDER_MIN_AMOUNT_NOT_MET): progress « Plus que 1 250,00 DA pour atteindre le minimum ».
    • Promotions applied, empty cart, cart changed from another device (ORD-01), account pending (checkout locked).
  • RA-18:
    • Default address (changes go to RA-19).
    • Delivery mode and fee, with the free-delivery threshold (DLV-06).
    • Payment method among the methods enabled in settings (FIN-02). When Crédit is chosen, the available credit is shown, and CREDIT_LIMIT_EXCEEDED keeps the button disabled with an explanation.
    • Optional note; totals with VAT included; submitting (no double submit, Idempotency-Key); re-validation errors on submit; offline (cannot submit).
  • RA-19: list, default address, add and edit form (wilaya, commune, address line, phone), delete with confirmation.
  • RA-20: number CMD-2026-000158, status Envoyée, and the explicit next step « HOCO va confirmer votre commande — vous serez notifié ». No order is confirmed automatically (ORD-14). Actions « Suivre ma commande » and « Continuer mes achats ».

Claude Design. Sections RA · Shopping (RA-14…16) and RA · Ordering (RA-17…20). Example frames: RA-17 · Cart · error-min-amount, RA-18 · Checkout · error-credit-limit-exceeded.

Done when. The amounts on every frame add up. Every API error a screen can receive has its message. The reseller-ordering prototype path (RA-12 → RA-14 → RA-17 → RA-18 → RA-20) is linked.

Review. Imad (also checks reuse in the delegate's assisted order, hoco_catalog). Feeds. MRA-03 (RA-14…16), MRA-04 (RA-17…20), and later MDA-09, which reuses the catalog and cart widgets.

Day 9 — Reseller app: orders, returns & finance

Goal. Live order tracking, assisted-order confirmation, return requests, and the reseller's money: balance, credit, invoices, payments.

Inputs. Reference reseller-05-orders-tracking and the finance tiles of reseller-01. Cahier §5.4 and §4.7. API: orders.list, orders.summary, orders.get, orders.cancel, orders.confirmAssisted, orders.rejectAssisted, orders.reorder, orders.document, returns.create, returns.list, returns.get, events.stream, finance.summary, invoices.list, invoices.get, payments.list, payments.declare, files.createUpload.

Requirements. FIN-01, FIN-02, FIN-03, FIN-05, FIN-10, ORD-06, ORD-07, ORD-08, ORD-10, ORD-12, ORD-13, ORD-15, SUP-04.

Screens.

  • RA-21 Orders — Commandes
  • RA-22 Order detail & tracking — Suivi de commande
  • RA-23 Assisted order confirmation — Commande assistée à confirmer
  • RA-29 Balance & credit — Solde et crédit
  • RA-30 Invoices — Factures
  • RA-31 Payments & payment declaration — Paiements
  • RA-40 Return request — Demande de retour

States to cover.

  • RA-21:
    • Status counters that act as filters (Envoyée, Validée, En préparation, Expédiée, Livrée, plus Toutes). Refusée, Annulée and Retournée are in the filter sheet.
    • Order cards with a mini progress bar; search by number or product; empty; loading.
    • The live-update affordance (ORD-15): a « En direct » dot while the events.stream connection is open. A card whose status changes animates its pill and moves in the list. When the connection is lost: « Mise à jour en pause — tirez pour actualiser ».
  • RA-22:
    • A full tracker mapping all 11 order statuses, with branches for Refusée, Annulée and Retournée, and En attente shown as a hold.
    • A dated history; lines changed by the back-office shown as « Quantité ajustée : 10 → 8 ».
    • Invoice and delivery-note PDFs.
    • Cancel with a reason (only while Envoyée or En attente).
    • Reorder, reporting unavailable items.
    • « Signaler un problème », which opens the after-sales claim (RA-33), and « Demander un retour », which opens RA-40 (delivered orders only).
    • Live status change while the screen is open: toast « Commande CMD-2026-000158 : Validée ».
  • RA-23: the delegate's name, lines, total and address; expiry countdown (72 h by default), then the Expirée state; confirm, or reject with a reason; already validated by the back-office.
  • RA-40:
    • Pick lines and quantities (at most the delivered quantity), a reason, photos.
    • Submit, then show number RET-2026-000012.
    • Tracker Demandé → Accepté → En retour → Reçu → Remboursé / avoir émis, or Refusé with a reason.
    • The credit note link once refunded.
  • RA-29: balance, credit ceiling, used and available (bar); overdue warning.
  • RA-30: invoice list with status pills; PDF opening (signed URL, loading).
  • RA-31: payment list with À vérifier, Confirmé, Rejeté (with reason); declaration form (method, amount, date, reference, proof up to 10 MB), success.

Claude Design. Sections RA · Orders (RA-21…23, RA-40) and RA · Finance. Example frames: RA-22 · Order detail & tracking · live-status-changed, RA-40 · Return request · status-in-transit.

Done when. The tracker mapping table (status → step → tone) is annotated on RA-22. The returns tracker and the after-sales entry points are linked. Live, paused and reconnected states exist.

Review. Imad. Feeds. MRA-05 (RA-21…23), MRA-07 (RA-29…31) and MRA-10 (RA-40 and the live updates of RA-21 and RA-22).

Day 10 — Reseller app: promotions, notifications, account, support & system states

Goal. Close the reseller app, including the after-sales claim and the regional WhatsApp support.

Inputs. Reference reseller-06-promotions-loyalty, V1 parts only. Cahier §5, §5.5 (V1 part) and §2.1. API: promotions.list, promotions.get, banners.list, notifications.*, announcements.*, profile.*, tickets.*, support.contacts, support.whatsapp, auth.sessions.list, auth.sessions.revoke, auth.password.change.

Requirements. ADM-07, AUTH-06, CRM-01, CRM-10, FIN-10, NFR-06, NFR-07, NOT-01, NOT-02, NOT-06, NOT-07, PRM-01, PRM-04, PRM-05, SUP-01, SUP-03, SUP-04, SUP-05.

Screens.

  • RA-24 Promotions & daily offers — Promotions
  • RA-25 Promotion detail — Détail de l'offre
  • RA-26 Notifications — Notifications
  • RA-27 Account hub — Compte
  • RA-28 Store profile & documents — Mon magasin
  • RA-32 Support: tickets, after-sales claims & WhatsApp — Assistance
  • RA-33 New ticket / after-sales claim — Nouvelle demande
  • RA-34 Ticket conversation — Conversation
  • RA-35 Settings — Paramètres
  • RA-36 System states (offline, maintenance, forced update, errors, empty) — États système

States to cover.

  • RA-24: banners with countdown; active promotions; « Aucune offre en ce moment »; an offer that ends while it is being viewed.
  • RA-25: mechanics (PERCENT_OFF, AMOUNT_OFF, FIXED_PRICE, FREE_DELIVERY), dates, eligible products with add-to-cart, ended state.
  • RA-26: unread and read; mark all as read; deep link to the target; empty; the push permission prompt (Android 13 and later).
  • RA-27: store name, REV-000123, account status, menu, sign-out.
  • RA-28:
    • Store data; fields that are locked after validation; documents (RC, NIF, NIS, AI, ID) with their upload states.
    • Customer type shown read-only, with « Pour le modifier, contactez HOCO » (AUTH-11).
  • RA-32:
    • Ticket list with status pills.
    • Assistance WhatsApp card: region name, number, hours, open or closed now.
    • FAQ and phone contact.
  • RA-33, two modes:
    • Question / problème: type, related order (optional), message, attachments.
    • After-sales claim (SUP-04): pick a delivered order, then the lines and quantities, the issue (Produit défectueux, Produit endommagé, Mauvais article, Article manquant, Non conforme, Autre), a description and photos. At least one photo is required for a defective, damaged or wrong item.
    • Submit, then show TKT-2026-000045.
  • RA-34: messages, attachments; En attente de votre réponse; resolution card (Remplacement, Retour, Avoir, Réparation, Refusée) with a link to the replacement order, return or credit note; closed.
  • RA-35: notification preferences (Commandes et compte and Sécurité locked on), sessions and devices with revoke, password change, language (French; Arabic and English shown as coming later), app version, privacy policy.
  • RA-36: offline banner; maintenance; forced update; generic error with retry and request id; session expired; permission denied; the empty-state catalogue.

Claude Design. Sections RA · Promotions, RA · Account & support, RA · System. Example frames: RA-33 · New ticket / after-sales claim · after-sales, RA-32 · Support · whatsapp-closed-hours.

Milestone. Reseller app designs ready for client review (third checkpoint): the prototype from guest browsing to live tracking.

Done when. RA-36 is assembled from the Day-3 system components. Every V1 RA frame is at least Ready for review.

Review. Imad. Feeds. MRA-06 (RA-24, RA-25), MRA-07 (RA-27, RA-28, RA-35), MRA-08 (RA-26, RA-32…34), MOB-05 (RA-36).

Day 11 — Delegate app: access, home & profile

Goal. A delegate signs in, gives informed location consent and sees their day at a glance.

Inputs. References delegate-01-login-profile and delegate-02-home. Cahier §6, §6.1 and §10 (geolocation consent). API: auth.login, auth.password.reset, delegate.home, delegate.profile, delegate.zone, delegate.objectives, delegate.tours.today, notifications.unreadCount.

Requirements. ADM-07, AUTH-02, AUTH-07, AUTH-08, AUTH-09, FLD-01, FLD-02, FLD-05, FLD-15, GEO-02, NOT-06, SEC-07.

Screens.

  • DA-01 Splash & version check — Démarrage
  • DA-02 Sign in — Connexion
  • DA-03 Forgot password — Mot de passe oublié
  • DA-04 Permissions & location consent — Autorisations et consentement
  • DA-05 Home — Accueil délégué
  • DA-22 Objectives — Mes objectifs
  • DA-24 Profile hub — Compte
  • DA-25 My zone — Ma zone
  • DA-26 Settings — Paramètres

States to cover.

  • DA-01 to DA-03: finalise the Day-6 variants. Add the suspended account with an explicit message (cahier §6 acceptance criterion) and the disabled account.
  • DA-04: a rationale screen before the OS prompt. It states what is collected (position at check-in; while a tour is En cours, every 5 minutes or 200 m), how long it is kept (90 days, default) and who sees it. Then: granted, approximate-only (check-in impossible, explain), denied, permanently denied (link to settings); notification and camera permissions just in time.
  • DA-05:
    • Greeting, zone, notification and sync badges; KPI tiles (visites prévues / réalisées / nouveaux prospects).
    • Today's tour card driven by TourStatus: Planifiée (no action), À démarrer (« Démarrer la tournée », cahier §6.1), En cours (« Continuer » and the next stop), Suspendue (« Reprendre »), Terminée (summary).
    • No tour today; objective and conversion bars; offline.
  • DA-22: metrics (Visites, Inscriptions, Installations, Premières commandes, Commandes, Chiffre d'affaires) by period (Jour / Semaine / Mois): achieved, behind, no objective.
  • DA-24: status pill, zone, menu.
  • DA-25: wilayas and communes on a map and as a list; number of assigned resellers.
  • DA-26: notification preferences, location status and the consent text again, sessions, language. Sign-out is blocked while items wait to sync: « 3 éléments non synchronisés ».

Claude Design. Page Delegate App, sections DA · Access, DA · Day, DA · Profile.

Done when. The consent copy is reviewed by Anis against the privacy policy (SEC-08). The home shows every TourStatus.

Review. Imad: permissions flow, foreground location. Feeds. MDA-01 (DA-05, DA-22, DA-24, DA-25), MOB-10 (DA-04), MDA-11 (DA-26). DA-01…DA-03 were built from the Day-6 variants (MOB-05, MOB-06).

Day 12 — Delegate app: tour programme, map & point-of-sale sheet

Goal. The delegate sees the ordered stops, gets to them and checks in only within the GPS tolerance.

Inputs. References delegate-03-tour-program and delegate-04-map-navigation. Cahier §6.2 and §6.3. API: delegate.tours.list, delegate.tours.get, delegate.tours.start, delegate.tours.suspend, delegate.tours.resume, delegate.tours.reorder, delegate.tours.addVisit, delegate.visits.arrive, delegate.resellers.get.

Requirements. CRM-01, CRM-07, CRM-08, FLD-03, FLD-04, FLD-06, FLD-07, FLD-17, FLD-19, GEO-03.

Screens.

  • DA-06 Tour programme — Programme de tournée
  • DA-07 Tours calendar & history — Mes tournées
  • DA-08 Map & navigation — Carte et navigation
  • DA-09 Point-of-sale sheet — Fiche point de vente

States to cover.

  • DA-06:
    • Header with date and tour status; counters (prévues, réalisées, en retard).
    • Tabs À visiter / Terminées.
    • List and mini-map show the same stops in the same order (FLD-06).
    • Ordering mode: Ordre imposé (no drag) or Ordre recommandé (drag to reorder, with a pending-sync badge).
    • Prioritaire flag; late stop (En retard, derived) with icon and label.
    • Add an unplanned visit; suspend with a reason and resume; start the tour (time and position recorded); offline with the cached tour.
  • DA-07: month and week views with tour status dots; past tours with results.
  • DA-08:
    • Current position, next destination card (ETA, distance as the crow flies), « Itinéraire » (opens the external navigation app).
    • « Je suis arrivé » gated by the GPS validation banner. It is valid within 150 m with an accuracy of 100 m or better. Out of tolerance (GPS_OUT_OF_TOLERANCE): « Vous êtes à 420 m du point de vente ». Weak accuracy: « Signal GPS faible — patientez ».
    • GPS off; permission denied; map tiles not loaded (list fallback).
  • DA-09: store header (photo, ResellerStatus pill, potential), call and WhatsApp buttons, address and route, interaction history, open follow-ups, last visit reports, this reseller's orders (delegate scope), actions (start visit, invite, assisted order, edit).

Claude Design. Section DA · Tour. Example frames: DA-08 · Map & navigation · out-of-tolerance, DA-06 · Tour programme · recommended-order-dragging.

Done when. The map pin set is used everywhere. Pins never differ by colour alone. The GPS banner has all six states.

Review. Imad: maps package, drag and reorder offline, battery. Feeds. MDA-02 (DA-06, DA-07), MDA-03 (DA-08); DA-09 is built in MDA-04.

Day 13 — Delegate app: visit, report, prospects & follow-ups

Goal. Run a visit end to end, offline, and leave a structured report that creates the follow-up.

Inputs. References delegate-05-visit-checkin and delegate-09-visit-report. Cahier §6.4 and §6.8. Visit-flow wireframe of Day 5. API: delegate.visits.*, delegate.resellers.list, delegate.tasks.*, reference.lists.

Requirements. ACL-03, CRM-04, CRM-08, FLD-08, FLD-09, FLD-10, GEO-03.

Screens.

  • DA-10 Visit & check-in — Détail de la visite
  • DA-11 Visit not done — reason — Visite non réalisée
  • DA-12 Visit report — Rapport de visite
  • DA-13 Prospects & resellers (list / map) — Prospects
  • DA-19 Follow-ups & tasks — Relances

States to cover.

  • DA-10, one primary action per VisitStatus:
    • À visiter: arrive.
    • Arrivé: start; arrival time shown.
    • En cours: timer, checklist, note, photos, end.
    • Visité: read-only (VISIT_LOCKED).
    • Non réalisée: the reason is shown.
    • Annulée.
    • Required photos per visit type (FLD-08): « Terminer » is disabled with « 1 photo de façade requise ». Each photo shows its upload state (queued, sending, sent, failed).
    • When a report is required, « Terminer la visite » leads to DA-12.
  • DA-11: reason from the list (required), comment, optional photo.
  • DA-12: person met (name, role), interest level (Faible / Moyen / Élevé), products and promotions presented (multi-select chips), issues (tags), next action and follow-up date (required unless Aucune), comment, attachments; draft autosaved; « Relance planifiée le 29 mai » confirmation.
  • DA-13: list and map; filters (status, potential, commune, follow-up due); clusters; create; delegate scope only; offline cache.
  • DA-19: groups En retard (derived), Aujourd'hui, À venir; complete; reschedule.

Claude Design. Section DA · Visit and DA · Prospects.

Done when. The visit prototype (DA-08 → DA-10 → DA-12) works. Every field of the report is annotated with its reference list (VISIT_NOT_DONE_REASON, VISIT_ISSUE_TAG, PERSON_ROLE).

Review. Imad: offline outbox, photo queue. Feeds. MDA-04 (DA-13), MDA-05 (DA-10, DA-11), MDA-06 (DA-12, DA-19).

Day 14 — Delegate app: sign-up, invitation, first order, closing & sync

Goal. Conversion in the field (new reseller, invitation, assisted first order) and a clean end of day.

Inputs. References delegate-06-reseller-signup, delegate-07-invitation, delegate-08-first-order and delegate-10-tour-closing. Cahier §6.5–§6.7, §6.9 and §7.3. Tour-closing wireframe of Day 5. API: delegate.resellers.checkPhone, delegate.resellers.create, delegate.resellers.update, delegate.invitations.*, delegate.assisted.*, delegate.orders.*, delegate.tours.closingPreview, delegate.tours.close, delegate.reports, sync.batch, sync.delta.

Requirements. ACL-03, ADM-07, CRM-01, CRM-03, CRM-04, CRM-10, FLD-07, FLD-11, FLD-12, FLD-19, IVT-01, IVT-02, IVT-03, NOT-01, NOT-07, ORD-02, ORD-08, ORD-09, SYN-04, SYN-05, SYN-06.

Screens.

  • DA-14 New reseller — Nouveau revendeur
  • DA-15 Edit reseller / prospect — Modifier la fiche
  • DA-16 Invite a reseller — Inviter un revendeur
  • DA-17 First-order assistance — Aide à la 1ère commande
  • DA-18 Assisted orders & orders of my resellers — Commandes
  • DA-20 Tour closing & results — Clôture de tournée
  • DA-21 Reports & performance — Rapports
  • DA-23 Messages & notifications — Messages
  • DA-27 Sync centre — Synchronisation
  • DA-28 System states (offline, GPS off, out of tolerance, permission denied, forced update) — États système

States to cover.

  • DA-14:
    • Labels above the fields (not beside them).
    • Duplicate phone found online: « Ce numéro existe déjà : Bazar du Centre (REV-000123) » with « Ouvrir la fiche ». When offline, the check is deferred and a conflict surfaces in DA-27.
    • GPS capture with accuracy (« ± 12 m ») and recapture; façade photo required.
    • Initial status limited to Nouveau prospect, À contacter, Intéressé, Non intéressé. The automatic statuses cannot be picked (CRM-04).
    • Saved offline (« Enregistré sur le téléphone — synchronisation en attente »); pending validation.
  • DA-15: same form; locked fields; manual status changes allowed.
  • DA-16:
    • QR code of https://app.hoco.dz/i/AB12CD34, code AB12-CD34 with copy.
    • Share via WhatsApp (primary), SMS or copied link.
    • Funnel Invitation envoyée → Application téléchargée → Compte créé → Téléphone vérifié → Catalogue consulté → Première commande, with timestamps.
    • Offline: the invitation needs the network to be created, so explain this.
  • DA-17:
    • Reseller name and number in the header.
    • Steps Produits → Adresse → Envoi pour confirmation.
    • Shared catalog widgets with search and filters (CAT-07); the reseller's price is shown according to their customer type; availability only.
    • Cart rules (ORD-02).
    • « Envoyer au revendeur pour confirmation », then En attente du revendeur (expires after 72 h). The back-office can validate instead.
  • DA-18: AssistedConfirmation and OrderStatus pills; discard a draft.
  • DA-20:
    • Before closing, blockers are listed: visits with no reason, items not synced (« Synchroniser maintenant »).
    • Day summary: visits, sign-ups, installs, first orders, revenue, estimated km. Objectives and conversion (formulas annotated). End-of-day comment.
    • « Clôturer la tournée » with a confirmation: definitive unless the back-office reopens it.
    • After closing: read-only summary.
  • DA-21: periods, history of closed tours, conversion funnel.
  • DA-23: announcements and notifications, unread, deep links.
  • DA-27: global state (Synchronisé / En attente (n) / En erreur (n)), last sync time, each item with its SyncItemResult (Synchronisé, Déjà synchronisé, Conflit, Rejeté, À réessayer), conflict resolution, photo queue, « Synchroniser maintenant ».
  • DA-28: offline, GPS off, out of tolerance, permission denied, forced update. The update must keep unsynced items: « Vos 3 éléments en attente seront conservés ».

Claude Design. Sections DA · Prospects & conversion, DA · Day, DA · System.

Milestone. Delegate app designs ready for client review (fourth checkpoint): the visit-day prototype. Ideally a HOCO delegate supervisor attends.

Done when. The closing blockers and the sync centre states match SYN-05 and SYN-06.

Review. Imad. Feeds. MDA-07 (DA-14, DA-15), MDA-08 (DA-16), MDA-09 (DA-17, DA-18), MDA-10 (DA-20, DA-21), MDA-11 (DA-23, DA-27), MOB-10 (DA-28).

Day 15 — Back-office: shell, access & dashboards

Goal. The information architecture by role, plus the five dashboards.

Inputs. No client reference exists for the back-office: work from the tokens and templates. Cahier §3, §4 and §4.1. API: auth.login, me.get, admin.search, admin.dashboard.kpis, admin.dashboard.charts, admin.dashboard.layout.get, admin.dashboard.layout.update, admin.live.delegates, admin.events.stream.

Requirements. ACL-05, ANA-01, ANA-02, ANA-03, AUTH-01, AUTH-07, FIN-05, FLD-13, NFR-05, NOT-01, STK-05, SYN-07.

Screens.

  • BO-01 Sign in · bespoke
  • BO-02 Forgot / reset password · template
  • BO-03 App shell: navigation by role, global search, notifications · bespoke
  • BO-04 General dashboard · bespoke
  • BO-05 Sales dashboard · template
  • BO-06 Field dashboard & live map · bespoke
  • BO-07 Stock dashboard · template
  • BO-08 Finance dashboard · template

States to cover.

  • BO-01: email or phone with password; errors; lockout; suspended or disabled account.
  • BO-03:
    • Sidebar groups filtered by permission. Hidden means absent, not greyed out (ACL-05).
    • Counters on Commandes à confirmer, Validation des comptes, Retours et SAV.
    • Global search (Ctrl K) grouped by resellers, orders, products and invoices.
    • Live notification panel; « Connexion temps réel interrompue » indicator; environment badge (STAGING); collapsed rail; tablet drawer.
  • BO-04: KPI cards and charts of ANA-01; filters (date, wilaya, commune, délégué, marque, catégorie); role-based card layout; no-permission card (absent); loading; live refresh after events.
  • BO-06: delegates on tour on a live map, last position time and a stale state, tour progress, link to BO-23.
  • BO-07: alerts en rupture and below threshold. Quantities are visible here (back-office only).
  • BO-08: expected payments, credit used, unpaid. Permission-gated (ACL-04).

Claude Design. Page Back-office, sections BO · Shell, BO · Dashboards; frames at 1440, plus the shell at 1280 and at tablet width.

Done when. The sidebar map (inventory) is drawn and each role's navigation is shown: super admin, commercial admin, stock, finance, delivery, direction.

Review. Anis. Feeds. DSH-01 (BO-01…03), DSH-02 (BO-04, BO-05), DSH-08 (BO-06), DSH-05 (BO-07), DSH-07 (BO-08).

Day 16 — Back-office: CRM

Goal. One place for every reseller and prospect, from first contact to active account, including validation of the declared customer type.

Inputs. Cahier §4.2 and §15.5. API: admin.resellers.*, admin.tasks.*, admin.segments.crud, admin.invitations.list.

Requirements. AUTH-11, CRM-01, CRM-02, CRM-03, CRM-04, CRM-06, CRM-07, CRM-08, CRM-09, CRM-11, CRM-12, FLD-14. Also carry CRM-05, CRM-10 and IVT-03: see the coverage check.

Screens.

  • BO-09 Resellers & prospects list · bespoke
  • BO-10 Resellers map · bespoke
  • BO-11 Reseller 360° · bespoke
  • BO-12 Reseller create / edit · template
  • BO-13 Account validation queue · bespoke
  • BO-14 Follow-ups & tasks · template
  • BO-15 Segments · template

States to cover.

  • BO-09: filters (status, zone, wilaya, commune, délégué, segment, potential, customer type, activity); saved views; bulk assign, status change and export; list and map toggle.
  • BO-11:
    • Header: name, REV-000123, ResellerStatus and CustomerType pills, delegate, zone.
    • Tabs Aperçu, Commandes, Factures et paiements, Visites et rapports, Relances, SAV et retours, Historique, Documents et photos, Invitation.
    • The customer-type change action, with a reason, recorded in the history (AUTH-11).
  • BO-12: duplicate phone check; wilaya and commune; GPS on a map picker; documents; customer type.
  • BO-13: side-by-side review with photos, GPS on a map, declared customer type (confirm or correct), documents and a duplicate suspicion. Approve, or reject with a reason.
  • BO-14: overdue, due and done tasks.
  • BO-15: segment rules.

Claude Design. Section BO · CRM.

Done when. The 360° tabs list their data sources. The validation queue shows the customer-type review.

Review. Anis. Feeds. DSH-03 (BO-09…15).

Day 17 — Back-office: catalog, prices, attributes & stock

Goal. Products with their three prices and their filterable attributes, and a stock ledger that only the back-office sees.

Inputs. Cahier §4.3 and §15.4. API: admin.products.*, admin.variants.*, admin.brands.crud, admin.categories.*, admin.attributes.crud, admin.products.import, admin.stock.*, admin.inventory.*, admin.warehouses.crud.

Requirements. CAT-01, CAT-02, CAT-03, CAT-04, CAT-05, CAT-06, CAT-12, CAT-13, PRC-01, PRC-02, STK-01, STK-02, STK-04, STK-05, STK-06.

Screens.

  • BO-27 Products list · template
  • BO-28 Product editor · bespoke
  • BO-29 Brands · template
  • BO-30 Categories · template
  • BO-31 Price lists & agreements · template
  • BO-32 Product import wizard · bespoke
  • BO-33 Stock overview · template
  • BO-34 Stock movements journal · template
  • BO-35 Stock receipt / adjustment · template
  • BO-36 Inventory sessions · template
  • BO-37 Warehouses · template
  • BO-71 Product attributes (filters) per category · template

States to cover.

  • BO-28, with tabs Général, Variantes, Prix, Attributs, Images, Visibilité, Stock:
    • Prices per variant: Super-gros, Demi-gros, Détail (HT), VAT rate, recommended price, and the purchase price, which is masked without permission (ACL-04). Price history.
    • Attributes rendered from the category's definitions: number with unit, list, yes/no.
    • Images up to 5 MB, 1:1, ordered.
    • Visibility per reseller or segment.
  • BO-30: a tree with sub-categories and reordering.
  • BO-71: definitions per category with key, French label, type (list, number, yes/no), unit, allowed values, filter widget (chips, range, toggle) and display order. Changing a definition that is already used shows a warning.
  • BO-32: upload → column mapping (including the three prices and the attributes) → validation report with row errors → confirm → result.
  • BO-33 to BO-37: physical, reserved and available quantities with thresholds; ledger by movement type (including RETURN); receipt and adjustment with a reason; inventory variance; warehouses.
  • BO-31: see the open question below.

Open question for Day 5. BO-31 Price lists & agreements is still V1 in screens.json. The 17 October decisions move price lists and per-reseller agreements to V2 (PRC-03). Either rename it to a bulk editor of the three prices (with change history), or move it to V2. Anis decides and updates screens.json.

Claude Design. Section BO · Catalog & stock.

Done when. The attribute definitions of BO-71 drive both the editor (BO-28) and the reseller filters (RA-13, RW-03), shown with one shared example category.

Review. Anis. Feeds. DSH-04 (BO-27…32, BO-71), DSH-05 (BO-33…37).

Day 18 — Back-office: orders, confirmation queue, delivery, returns & finance

Goal. No order moves without an explicit confirmation. Delivery, returns, after-sales and payments are traceable.

Inputs. Cahier §4.4 and §4.7. API: admin.orders.toConfirm, admin.orders.validate, admin.orders.refuse, admin.orders.modify, admin.orders.transition, admin.orders.cancel, admin.orders.confirmAssisted, admin.orders.history, admin.deliveries.*, admin.carriers.crud, admin.returns.*, admin.invoices.*, admin.payments.*, admin.credit.*.

Requirements. DLV-01, DLV-02, DLV-03, DLV-04, FIN-01, FIN-03, FIN-04, FIN-05, ORD-04, ORD-05, ORD-06, ORD-08, ORD-11, ORD-12, ORD-13, ORD-14, STK-03, STK-08, SUP-04.

Screens.

  • BO-38 Orders list · bespoke
  • BO-39 Order detail (controls, actions, history) · bespoke
  • BO-40 New order on behalf of a reseller · template
  • BO-41 Orders to confirm (new, on hold, assisted) · template
  • BO-42 Delivery board · bespoke
  • BO-43 Carriers · template
  • BO-44 Invoices · template
  • BO-45 Payments & declarations · template
  • BO-46 Credit accounts · template
  • BO-69 Returns & after-sales claims · template

States to cover.

  • BO-41, the queue of Envoyée and En attente orders, oldest first (ORD-14):
    • Control results as icons with text: stock, credit, price, minimum amount, address.
    • Age (« depuis 3 h »), channel (app, web, assisted, phone), first-order badge.
    • Row actions Confirmer, Mettre en attente, Refuser (with reason); bulk confirm only for orders whose controls all pass.
    • New orders arrive live (row highlight); empty queue « Aucune commande à confirmer ».
  • BO-38: status tabs with counts, filters, first-order and assisted badges.
  • BO-39: control panel; actions allowed by status; controlled modification with history; stock override with a recorded reason (STK-08); cancel with a reason (stock released automatically); documents; delivery block; links to SAV and returns.
  • BO-42: kanban À préparer → En préparation → Prête → Expédiée → Livrée, plus Échec de livraison. Drops are allowed only on legal transitions. Picking list; proof of delivery (photo, recipient name).
  • BO-69, returns and after-sales queue:
    • Returns: approve or reject with a reason, then En retour, then reception. Accepted quantities re-enter stock automatically, and the credit note is issued.
    • Claims: diagnosis, then the resolution Remplacement (creates a free order), Retour, Avoir, Réparation or Refusée with a reason.
  • BO-45: verify declared payments with the proof viewer; confirm or reject with a reason; partial allocation.
  • BO-46: ceiling changes with history.

Claude Design. Section BO · Orders & delivery, BO · Finance. Example frame: BO-41 · Orders to confirm · live-new-order.

Done when. The order state machine (see lifecycles) is annotated on BO-39: each action is shown with the statuses where it is available.

Review. Anis. Feeds. DSH-06 (BO-38…43), DSH-07 (BO-44…46), DSH-13 (BO-69 and the claim side of BO-56).

Day 19 — Back-office: field operations, promotions, support, reports & administration

Goal. The longest day: 29 pages, of which 8 are bespoke. Template pages are produced as filled page specs, not pixel mocks.

Inputs. Cahier §4.5, §4.6, §3.1, §10. API: admin.delegates.*, admin.zones.crud, admin.objectives.crud, admin.tours.*, admin.visits.*, admin.visitTypes.crud, admin.checklists.crud, admin.promotions.*, admin.banners.crud, admin.tickets.*, admin.announcements.*, admin.notifications.*, admin.reports.*, admin.exports.*, admin.users.*, admin.roles.*, admin.audit.list, admin.settings.*, admin.referenceLists.crud, admin.appVersions.crud, admin.imports.*, admin.supportRegions.crud.

Requirements. ACL-02, ADM-01, ADM-02, ADM-03, ADM-05, ADM-06, ADM-07, ADM-08, ANA-03, ANA-04, ANA-05, AUD-01, AUD-03, AUTH-06, FLD-01, FLD-02, FLD-03, FLD-04, FLD-08, FLD-09, FLD-10, FLD-12, FLD-13, FLD-14, FLD-16, FLD-17, GEO-02, NOT-04, NOT-07, PRM-01, PRM-02, PRM-03, PRM-04, PRM-05, SEC-06, SUP-02, SUP-04, SUP-05.

Screens.

  • Field: BO-16 Delegates list · template, BO-17 Delegate detail & performance · bespoke, BO-18 Delegate create / edit · template, BO-19 Zones (list + map editor) · bespoke, BO-20 Objectives · template, BO-21 Tour planner (calendar) · bespoke, BO-22 Tour editor (stops, order, recommendation) · bespoke, BO-23 Tour live detail · bespoke, BO-24 Visits list · template, BO-25 Visit detail · template, BO-26 Visit types & checklist templates · template
  • Promotions: BO-49 Promotions list · template, BO-50 Promotion editor · bespoke, BO-51 Banners & daily offers · template
  • Support and communication: BO-55 Tickets list · template, BO-56 Ticket detail · template, BO-57 Announcements · template, BO-58 Notification templates & rules · template
  • Reports: BO-59 Reports library · bespoke, BO-60 Export centre · template
  • Administration: BO-61 Users · template, BO-62 Roles & permissions matrix · bespoke, BO-63 Activity log · template, BO-64 Business settings · template, BO-65 Reference lists · template, BO-66 Mobile app versions · template, BO-67 Data imports · template, BO-68 My profile & sessions · template, BO-70 Support regions & WhatsApp numbers · template

States to cover (bespoke pages first).

  • BO-21 and BO-22 share one layout: a calendar or stop list on the left and the map on the right. Ordre imposé or recommandé; the « Recommander l'ordre » result is previewed before it is applied (FLD-17).
  • BO-23 reuses the BO-06 live map: the track, visits progress, the closing report, « Rouvrir la tournée ».
  • BO-19: assign wilayas and communes on a map; a commune already in another zone shows a warning.
  • BO-50: type, value, dates, scope, audience (wilaya, segment, customer type, brand, volume), stacking and priority, stock cap, preview of the resulting price.
  • BO-62: 18 modules × 7 actions; highlights changes; confirmation before saving.
  • BO-56: the conversation and internal notes; for claims, a diagnosis panel and the resolution actions (admin.tickets.resolve).
  • BO-64, settings sections: order minimums, reservation status, GPS tolerance, frequency and retention, credit policy, stacking, payment methods, delivery fees.
  • BO-70, support regions: name, wilayas (each wilaya belongs to exactly one region, and a conflict shows a warning), WhatsApp number (E.164, displayed 0555 12 34 56), opening hours per day, default region for visitors whose location cannot be resolved.

Claude Design. Sections BO · Field, BO · Promotions, BO · Support & communication, BO · Reports, BO · Administration.

Milestone. Back-office designs ready for client review (fifth checkpoint).

Done when. The bespoke pages are fully designed. Each template page has a filled page spec: title, columns, filters, bulk and row actions, form fields, tabs, permission, empty-state copy.

Review. Anis. Feeds. DSH-08 (BO-16…26), DSH-09 (BO-49…51), DSH-10 (BO-55…58), DSH-11 (BO-59, BO-60), DSH-12 (BO-61…68, BO-70).

Day 20 — Reseller web: responsive layouts

Goal. Desktop and tablet layouts of the reseller experience. Phone widths reuse the mobile designs (RWA-01, same rules as the app per RWA-02).

Inputs. The RA frames of Days 6–10. The reseller-web shell and filter sidebar of Day 4. API: same operations as the app; the web uses the session cookie.

Requirements. AUTH-03, AUTH-04, AUTH-05, AUTH-10, AUTH-11, CAT-07, CAT-08, CAT-09, CAT-11, CAT-12, CAT-13, CRM-01, FIN-01, FIN-02, FIN-03, FIN-05, FIN-10, NOT-01, NOT-06, ORD-01, ORD-02, ORD-03, ORD-06, ORD-07, ORD-08, ORD-13, ORD-15, PRM-01, PRM-05, RWA-01, SUP-01, SUP-04, SUP-05.

Screens. RW-01 Sign in, sign-up (with customer type), OTP, password reset — and guest browsing · RW-02 Home · RW-03 Catalog with advanced sidebar filters & search · RW-04 Product detail · RW-05 Favorites · RW-06 Cart · RW-07 Checkout & confirmation · RW-08 Orders list · RW-09 Order detail, tracking & assisted-order confirmation · RW-10 Promotions & daily offers · RW-11 Notifications · RW-12 Profile, store, addresses & settings · RW-13 Invoices, payments & credit · RW-14 Support: tickets, after-sales claims, returns & WhatsApp.

States to cover.

  • Web-specific behaviour:
    • Hover and visible focus; full keyboard navigation.
    • Filters synced to the URL; the filter sidebar applies instantly at 1024 px and wider, and becomes a drawer below.
    • Guest browsing with the price lock; the invitation landing https://app.hoco.dz/i/AB12CD34 opening sign-up with the code (IVT-04).
    • Session expired: sign-in with a return URL.
    • Live order updates while the page is open, as on mobile.
    • The fixed WhatsApp button at the bottom right.
  • Everything else as in RA.

Claude Design. Page Reseller Web, frames at 1440 and 1024 (tablet landscape) and 768.

Done when. Every RW frame exists at 1440 and 768 at least. The breakpoint behaviour is annotated.

Review. Anis. Feeds. WEB-01 (RW-01), WEB-02 (RW-02…05), WEB-03 (RW-06, RW-07), WEB-04 (RW-08, RW-09, RW-13), WEB-05 (RW-10…12, RW-14). The reseller web is part of V1 (phase P1, not generalisation) and is deployed before the pilot. WEB-01 starts as soon as the back-office foundation (DSH-01) is in place, so Day 20 frames need the same Ready for dev rigour as the back-office: every breakpoint behaviour annotated, nothing left for later. Then DQA-05 reviews the build before the functional test campaign (QA-03).

Day 21 — Prototypes, design QA & handoff

Goal. Close V1 design. Everything Imad and Anis need is findable without asking.

Work.

  • Prototypes. Reseller ordering: RA-02 (guest) → RA-12 → RA-13 → RA-14 → RA-05 (sign-up) → RA-17 → RA-18 → RA-20 → RA-22 (live update). Delegate visit day: DA-05 → DA-06 → DA-08 → DA-10 → DA-12 → DA-14 → DA-16 → DA-20.
  • Consistency pass, the design QA checklist run against the Claude Design project itself: detached components, raw hex values, missing states, copy.
  • Exports. Icons and assets (assets).
  • Tokens v1.0 tagged with a changelog (token releases).
  • Client presentation: about 90 minutes, all three solutions.

Done when. The handoff checklist is ticked. Every V1 frame is Approved or Client review with its open items listed.

Milestone. Design handoff complete.

Review. Anis and Imad, in a 1-hour handoff walkthrough. Feeds. DES-22.

Client validation checkpoints

#AfterMilestoneWhat HOCO seesFormatExpected output
1Day 4Design system v1 ready (tokens + components)Colours, type, status pills, product card, order card, visit row, price lock, WhatsApp button30 min, screen shareDirection approved: colours, density, tone
2Day 5Screen inventory frozenInventory, V1/V2 split, the four flows45 minScope confirmed; additions become change requests
3Day 10Reseller app designs ready for client reviewReseller prototype, guest to live tracking45 minFeedback list, reseller app
4Day 14Delegate app designs ready for client reviewDelegate visit-day prototype45 min, with a delegate supervisor if possibleFeedback list, delegate app
5Day 19Back-office designs ready for client reviewShell, dashboards, CRM, orders to confirm, delivery board, tours60 minFeedback list, back-office
6Day 21Design handoff completeAll three solutions plus the reseller web90 minConsolidated feedback for DES-22

Rules for every checkpoint:

  • Anis records decisions in the decision register.
  • Feedback is collected in one place, as comments on the shared design (on the frame) or one consolidated list per checkpoint, never scattered across WhatsApp threads.
  • Assumption: HOCO answers within 3 working days.
  • Feedback that fixes a screen in less than an hour is applied the next morning. Everything else is queued for DES-22.
  • Silence is not approval. Frames stay Client review until HOCO answers.

3-month frame: design → development → deployment — deadline 17 Jan 2027.

DateMilestoneTargetReached when these tasks end
18 Oct 2026Cadrage validated — validation sheet signed—PRJ-03
18 Oct 2026API contract v1 published (OpenAPI + mock server)—SRV-03
19 Oct 2026Server V1 feature-complete—SRV-26, SRV-40
21 Oct 2026Design system v1 ready (tokens + components)—DES-04
22 Oct 2026Screen inventory frozen—DES-05
29 Oct 2026Reseller app designs ready for client review—DES-10
05 Nov 2026Delegate app designs ready for client review—DES-14
08 Nov 2026Mobile foundations ready—MOB-11
12 Nov 2026Back-office designs ready for client review—DES-19
16 Nov 2026Design handoff complete—DES-21
03 Dec 2026Back-office and reseller web V1 feature-complete—DSH-12, WEB-05, WEB-06
15 Dec 2026Mobile apps V1 feature-complete—MDA-12
22 Dec 2026Staging integration complete—MOB-14, SRV-28
28 Dec 2026Acceptance report (PV de recette) signed—QA-02
29 Dec 2026Production go-liveon time — 17 Jan 2027LCH-01
30 Dec 2026Pilot startson time — 17 Jan 2027LCH-02
14 Jan 2027Pilot go / no-go—LCH-03, LCH-03B
21 Jan 2027Generalisation complete—LCH-05
22 Feb 2027V2 delivered—SRV-38, DSH-21, MDA-20, WEB-20, DQA-12

The design milestones are the six listed above. The table shows every milestone of the plan with its computed date.

After handoff

TaskNamePhaseDatesEffortDepends on
DES-22Client feedback round & design revisionsP1Tue 17 Nov → Wed 18 Nov1.5 dDES-21
DES-23Smart notifications design — Notification Centre, action buttons, promotion tabs, flash-sale countdownP1Wed 18 Nov → Thu 19 Nov1 dDES-22
DQA-09Document templates — invoice, delivery note, picking list, receiptP1Thu 19 Nov → Sun 22 Nov1 dDES-22
DQA-10Notification & message copy — push, SMS, email, WhatsApp textsP1Sun 22 Nov → Mon 23 Nov0.75 dDES-22
DQA-01Store assets — icons, splash, screenshots, feature graphicsP1Mon 23 Nov → Tue 24 Nov1 dDES-22
DQA-06Training materials — reseller guide, delegate field guide, admin referenceP1Tue 24 Nov → Wed 25 Nov1.5 dDES-22
DQA-07Field kit — invitation QR flyer & stickerP1Wed 25 Nov → Thu 26 Nov0.5 dDES-22
DES-30V2 designs — loyalty, packs, returns, credit, analytics V2P1Thu 26 Nov → Sun 06 Dec6 dDES-22
DQA-02Design QA — reseller app buildP1Sun 06 Dec → Mon 07 Dec1 dMRA-09
DQA-03Design QA — delegate app buildP1Tue 15 Dec1 dMDA-11
DQA-04Design QA — back-officeP1Wed 16 Dec1 dDSH-12
DQA-05Design QA — reseller webP1Thu 17 Dec0.5 dWEB-05, WEB-06
QA-03Functional test campaign — scripted scenarios on stagingP1Sun 20 Dec → Mon 21 Dec2 dDQA-04, MOB-12, DQA-05

13 tasks · 18.75 d of open effort. Dates are computed — Sunday–Thursday weeks, holidays excluded.

TaskWhat Akram deliversWho consumes it
DES-22 Client feedback roundConsolidated feedback from checkpoints 3–6, revisions, re-validation, design v1.1 (tokens v1.1 if they change) with a changelogImad and Anis through change requests
DES-23 Smart notifications design (client document 03, change request)Components NotificationGroupChip, NotificationRow with an action button and FlashSaleCard with its countdown. Frames for the home Centre de notifications (RA-09, RW-02), the grouped inbox (RA-26, RW-11), per-group push switches (RA-35, RW-12) and the Promotions / Ventes flash tabs (RA-24, RW-10). Spec: smart notificationsMRA-11, WEB-06
DQA-09 Document templatesA4 layouts for the invoice (FAC-…), delivery note (BL-…), picking list and payment receipt, plus the credit note (now V1). They carry HOCO branding, the legal mentions (NIF, NIS, RC, AI, VAT) and HT / TVA / TTC totals. French now, with a mirrored Arabic variant. Delivered as an HTML/CSS-friendly specSRV-18 (billing)
DQA-10 Notification and message copyFrench copy for every event of the notifications matrix, including the smart notifications and every action-button label: push title 40 characters or less and body 120 or less; SMS kept to one segment. The share texts (invitation, product, WhatsApp support greeting) and the live-status toasts. Arabic placeholdersAnis (templates, BO-58), Imad
DQA-01 Store assetsAdaptive icons (foreground, background and monochrome layers) and splash for both apps and the three flavors; Play Store icon 512 × 512, feature graphic 1024 × 500, phone screenshotsMOB-14 (store readiness)
DQA-06 Training materials (with Anis)Illustrated reseller quick guide (guest → account → first order → WhatsApp support), delegate full tour guide, back-office reference cards per roleLCH-02 (training)
DQA-07 Field kitA5 QR flyer and square sticker templates with the delegate's link https://app.hoco.dz/i/…, the code and the store badgesDelegates at the point of sale
DES-30 V2 designsPacks (RA-37, BO-52), loyalty and rewards (RA-38, RA-39, BO-53, BO-54, RW-15), detailed credit and accounting exports (BO-47, BO-48), advanced analytics (ANA-06, no screen yet)MRA-20, then DSH-20, DSH-21, WEB-20
DQA-02 Design QA, reseller appScreen-by-screen review once MRA-09 is doneImad
DQA-03 Design QA, delegate appReview, including outdoor readability on a real mid-range phone in direct sunlightMOB-17 (fixes and accessibility pass)
DQA-04 Design QA, back-officeReview at desktop, tablet and large widths once DSH-12 is doneAnis; unblocks QA-03
DQA-05 Design QA, reseller webReview at desktop, tablet and phone widths once WEB-05 is doneAnis; unblocks QA-03
QA-03 Functional test campaignAkram runs the scripted scenarios (SRS acceptance criteria) on staging, across the four interfaces, and files defects. Starts once the back-office and reseller-web design QA are doneQA-01 (end-to-end tests)
DQA-08 Pilot UX observation (P2)Ride-alongs with pilot delegates, interviews with pilot resellers, prioritised findingsLCH-04, MOB-18 (pilot improvements, after the three months)
DQA-12 Design QA, V2 (P4)Review of the V2 surfacesImad, Anis

Risks to the 21-day plan

RiskEarly signalHow it is absorbed
Volume: about 10 screens a day, 29 pages on Day 19Day 15 or 16 ends with frames still WIPTemplate-based back-office pages: 45 of the 66 V1 pages are a template plus a page spec, not a mock. BO-21 and BO-22 share one layout; BO-23 reuses BO-06. Template specs are table-shaped and filled last in the day. Nothing is deferred past Day 21: in the three-month frame the back-office and reseller web are built right after handoff (Gantt)
Imad builds before the client has seen the screens: MOB-04 after Day 3, MOB-05 and MOB-06 before the reseller-app reviewToken renames after Day 3; onboarding feedback at checkpoint 3Tokens frozen at v0.9 after Day 2. After that, only additive changes until v1.0. System-state components on Day 3. Delegate sign-in variants on Day 6. An asynchronous HOCO look at onboarding on Day 7
The 17 October decisions add surfaces: guest mode, customer type, advanced filters, WhatsApp, after-sales, returns, live status, confirmation queueDays 6–10 and 17–18 overflowComponents for all of them on Day 3, so screen days only assemble. RA-41 and RA-40 are mostly states of existing screens. BO-69, BO-70 and BO-71 are template pages
The client references pull the design back towards V2 features or their own inconsistenciesHOCO asks "where are the points?" at checkpoint 3Show Reference screens at checkpoint 1: what is kept, fixed or postponed, and why
Brand assets or product photos arrive lateNothing received by Day 3Placeholders cut from the reference screens; logos traced as temporary vectors and replaced later
Open business decisions: prices visible before validation, payment methods, credit policy, GPS tolerance, delivery fees, return windowAnnotations that say "TBD"Design the configurable variant (for example prix visibles dès l'inscription or après validation). Put a Decision pending sticker that links the decision register
Arabic and RTL scope creepRequests for Arabic screensV1 is French only. RTL is checked on components (mirror test), and Arabic typography is in the tokens. Arabic screens are not designed in V1 (NFR-06)
Feasibility surprises (maps, offline, scanner, live updates, range sliders)Needs change answers in the daily checkThe 15-minute daily check. Prefer platform widgets; any custom widget is estimated by Imad on Day 3
No slack inside the 21 days (public holiday, sickness), and none downstream: V1 must reach production within three monthsOne lost dayTell Anis the same day. The lost day is recovered by turning secondary states of template pages into annotations, never by moving a whole day. DES-22 is the only buffer, and it is already planned for HOCO's feedback. Day 20 cannot move: WEB-01 starts right after the back-office foundation
Developers build from frames that client feedback later changes (reseller screens are built before handoff; DES-22 revises after it)Change requests on frames already In devFrames go Ready for dev only after their checkpoint. Feedback on built screens goes through change requests, sized and scheduled by Anis, not edited silently

On this page