cleanup phases 0 done

This commit is contained in:
hamid
2026-07-29 23:20:46 +03:30
parent c99e3f4a6e
commit d3ec723119
13 changed files with 24889 additions and 4 deletions
+2 -2
View File
@@ -21,7 +21,7 @@ Measured against the working tree at `96b57eb`:
| **Rules live in ~10 places** | root [CLAUDE.md](../../CLAUDE.md) · [client/CLAUDE.md](../../client/CLAUDE.md) **161 KB** · [server/CLAUDE.md](../../server/CLAUDE.md) 75 KB · [server/CONVENTIONS.md](../../server/CONVENTIONS.md) · [client/messages/STYLE.md](../../client/messages/STYLE.md) · [.claude/skills/frontend-designer/SKILL.md](../../.claude/skills/frontend-designer/SKILL.md) · [dev/phases/_shared/](../../dev/phases/_shared/) ×4 · [dev/contracts/conventions/](../../dev/contracts/conventions/) ×2 · 3× `AGENTS.md` · [.githooks/README.md](../../.githooks/README.md) |
| **Loading `client/CLAUDE.md` costs ~40k tokens** on any client edit | 161 KB, of which lines 103421 are a project-structure listing and lines 4211100 are explanatory reference |
| **Remaining work is split across 5 ledgers** | 67 REQs in a 1,115-line append-only file · **18 hardening items, none ticked** · per-phase "Follow-ups" buried in 50+ reports · backend deferrals-with-pull-triggers · [product/notes/open-questions.md](../../product/notes/open-questions.md) · two raw feedback notes in [dev/manual-testing/](../../dev/manual-testing/) |
| **Contracts drifted from code** | [`dev/contracts/`](../../dev/contracts/) frozen 2026-07-13; `server/src` moved through 2026-07-28. OpenAPI snapshot is from 07-13; a second stale copy sits at [temp/swagger.json](../../temp/swagger.json) (07-06). |
| **Contracts drifted from code** | [`dev/contracts/`](../../dev/contracts/) frozen 2026-07-13; `server/src` moved through 2026-07-28. OpenAPI snapshot is from 07-13; a second stale copy sat at `temp/swagger.json` (07-06). **Phase 0 correction:** that copy was **untracked** (`.gitignore:1`), and the measured OpenAPI drift turned out to be one endpoint — see [open-contradictions.md](open-contradictions.md#openapi-drift). |
| **18 files still instruct you to use `dotnet user-secrets`** — removed in `5885280` | includes [manual-testing-plan.md](../../dev/post-phase/manual-testing-plan.md), the closest thing to a test guide |
| **No single "what's implemented + how to test it"** | knowledge split across manual-testing-plan, [RUNBOOK.md](../../dev/post-phase/refinement/RUNBOOK.md), `product/business/`, and 18 contract files |
| **The client↔server dependency is implicit** | envelope shape, casing, idempotency, cookies/refresh, CORS, `NEXT_PUBLIC_API_URL`, 3 containers + Caddy + remote SQL + the OTP bot — described nowhere as one thing |
@@ -152,7 +152,7 @@ stays small.
| Phase | Status | Finished | Notes |
| --- | --- | --- | --- |
| 0 Inventory & scaffold | not started | | |
| 0 Inventory & scaffold | **done** | 2026-07-29 | 275 files surveyed (not ~260). OpenAPI refreshed — drift is **1 endpoint**, not a rewrite. 3 of 5 seeded contradictions were narrower than stated; see [open-contradictions.md](open-contradictions.md#corrections-to-the-seeded-list). Phase 4 owns 149 files |
| 1 Rules consolidation | not started | | |
| 2 Integration & dependency | not started | | |
| 3 Flow atlas | not started | | |
+421
View File
@@ -0,0 +1,421 @@
# Inventory — a disposition for every markdown file
> Survey run 2026-07-29 against commit `c99e3f4`. Produced by
> [phase 0](phase-0-inventory-and-scaffold.md). **This is a survey, not documentation** — it moves to
> `archive/` with the rest of `_plan/` when the chain finishes.
**275 markdown files**, 3.58 MB total. 209 carry
**live facts** — content not yet captured anywhere else, which must be extracted before the file is archived.
## How to read this
| Column | Meaning |
| --- | --- |
| `kind` | `rule` (must-obey) · `reference` · `contract` · `plan` (an instruction to an agent) · `report` · `history` · `business` · `ops` · `feedback` |
| `disposition` | `keep-as-is` · `move` · `distill` · `merge-into` · `archive` · `delete` |
| `target` | where the *content* ends up — a `docs/…` path, or `archive/…` |
| `owner phase` | the phase that extracts the content. `none` = no phase touches the file |
| `live facts?` | does it hold anything not already captured elsewhere? |
Two conventions keep the `target` column short:
1. **Every `dev/**` row is additionally moved to `archive/` by Phase 6.** The `owner phase` column names
the phase that extracts its content *first*; Phase 6 is implied everywhere and is not repeated.
2. `§5` / `§7` refer to the fixed section numbering every `dev/phases/*` prompt shares —
**§5 "Critical rules you must not get wrong"** (the decisions that are *not* visible in the code) and
**§7 "How to test"** (the input Phase 3 turns into flow docs). Verified present in all 32 prompt files.
## Summary
| disposition | files |
| --- | --- |
| `archive` | 172 |
| `keep-as-is` | 59 |
| `distill` | 24 |
| `move` | 17 |
| `merge-into` | 2 |
| `delete` | 1 |
| owner phase | files |
| --- | --- |
| 0 | 1 |
| 1 | 17 |
| 2 | 23 |
| 3 | 2 |
| 4 | 149 |
| 6 | 17 |
| 7 | 31 |
| none | 35 |
| kind | files |
| --- | --- |
| plan | 86 |
| report | 70 |
| business | 48 |
| history | 25 |
| contract | 19 |
| rule | 15 |
| ops | 5 |
| reference | 5 |
| feedback | 2 |
### What this says
- **172 files are `archive`** — nearly all of `dev/`. They are
executed prompts and their reports: a record of how the code got here, phrased as instructions. That
phrasing is the single biggest hazard in the repo, and Phase 6's do-not-obey banner is the fix.
- **Only 1 file is deleted outright** (`Prompt.md`, 0 bytes). Nothing else is lost —
everything either moves, is distilled, or is archived intact.
- **Phase 4 owns 149 files**, by far the largest share. The backlog
reconciliation is the heaviest extraction job in the chain, not the flow atlas.
---
## The table
### Root & repo-level — 6 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `.claude/skills/frontend-designer/SKILL.md` | 21 K | 2026-07-27 | rule | `distill` | docs/rules/client/theme.md; skill rewritten | 1 | yes |
| `.githooks/README.md` | 1.6 K | 2026-07-28 | ops | `keep-as-is` | .githooks/README.md + docs/rules/documentation.md | 7 | yes |
| `AGENTS.md` | 478 B | 2026-06-21 | rule | `keep-as-is` | AGENTS.md — links repointed at docs/ | 1 | no |
| `CLAUDE.md` | 8.4 K | 2026-07-28 | rule | `distill` | CLAUDE.md (slim) + docs/rules/ | 1 | yes |
| `DEPLOY.md` | 8.3 K | 2026-07-28 | ops | `keep-as-is` | DEPLOY.md — stale user-secrets ref fixed | 2 | yes |
| `Prompt.md` | 0 B | 2026-06-28 | plan | `delete` | — (0 bytes, empty) | 0 | no |
### `client/` — 5 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `client/AGENTS.md` | 594 B | 2026-06-21 | rule | `keep-as-is` | client/AGENTS.md — links repointed | 1 | no |
| `client/CLAUDE.md` | 158 K | 2026-07-27 | rule | `distill` | client/CLAUDE.md (slim) + docs/rules/client/* | 1 | yes |
| `client/README.md` | 4.5 K | 2026-06-23 | reference | `keep-as-is` | client/README.md | 1 | no |
| `client/graphify-out/GRAPH_REPORT.md` | 18 K | untracked | report | `keep-as-is` | — (gitignored tool output, not repo content) | none | no |
| `client/messages/STYLE.md` | 7.6 K | 2026-07-19 | rule | `distill` | docs/rules/client/i18n.md | 1 | yes |
### `server/` — 6 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `server/AGENTS.md` | 573 B | 2026-06-21 | rule | `keep-as-is` | server/AGENTS.md — links repointed | 1 | no |
| `server/CLAUDE.md` | 73 K | 2026-07-28 | rule | `distill` | server/CLAUDE.md (slim) + docs/rules/server/* | 1 | yes |
| `server/CONVENTIONS.md` | 26 K | 2026-07-28 | rule | `distill` | docs/rules/server/conventions.md | 1 | yes |
| `server/LICENSE.md` | 1.1 K | 2026-06-16 | reference | `keep-as-is` | server/LICENSE.md | none | no |
| `server/README.md` | 5.3 K | 2026-06-21 | reference | `keep-as-is` | server/README.md | 1 | no |
| `server/graphify-out/GRAPH_REPORT.md` | 76 K | untracked | report | `keep-as-is` | — (gitignored tool output, not repo content) | none | no |
### `telegram-otp-bot/` — 2 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `telegram-otp-bot/INTEGRATION-PROMPT.md` | 8.1 K | 2026-07-27 | plan | `archive` | archive/post-phase/; config facts → docs/integration/config-matrix.md | 2 | yes |
| `telegram-otp-bot/README.md` | 7.5 K | 2026-07-28 | ops | `keep-as-is` | telegram-otp-bot/README.md; cited by docs/integration/topology.md | 2 | yes |
### `docs/_plan/` — this chain — 9 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `docs/_plan/README.md` | 10 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-0-inventory-and-scaffold.md` | 7.6 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-1-rules-consolidation.md` | 9.3 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-2-integration.md` | 7.8 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-3-flow-atlas.md` | 9.6 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-4-backlog.md` | 8.5 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-5-roadmap.md` | 5.8 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-6-archive.md` | 4.8 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
| `docs/_plan/phase-7-skills-and-guardrails.md` | 5.9 K | 2026-07-29 | plan | `archive` | archive/_plan/ (when the chain finishes) | 6 | yes |
### `dev/contracts/` — the API contract layer — 21 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `dev/contracts/README.md` | 2.7 K | 2026-06-28 | contract | `move` | docs/integration/index.md | 2 | yes |
| `dev/contracts/conventions/api-conventions.md` | 2.9 K | 2026-07-13 | rule | `distill` | docs/rules/shared/api-conventions.md + docs/integration/api-contract.md | 1 | yes |
| `dev/contracts/conventions/money-and-types.md` | 2.6 K | 2026-06-28 | rule | `distill` | docs/rules/shared/money-and-types.md | 1 | yes |
| `dev/contracts/domains/_TEMPLATE.md` | 1.2 K | 2026-07-13 | contract | `move` | docs/integration/domains/_TEMPLATE.md | 2 | no |
| `dev/contracts/domains/bnpl.md` | 9.5 K | 2026-07-13 | contract | `move` | docs/integration/domains/bnpl.md | 2 | yes |
| `dev/contracts/domains/booking-requests.md` | 11 K | 2026-07-13 | contract | `move` | docs/integration/domains/booking-requests.md | 2 | yes |
| `dev/contracts/domains/bookings-evv.md` | 9.1 K | 2026-07-13 | contract | `move` | docs/integration/domains/bookings-evv.md | 2 | yes |
| `dev/contracts/domains/catalog.md` | 9.3 K | 2026-07-13 | contract | `move` | docs/integration/domains/catalog.md | 2 | yes |
| `dev/contracts/domains/config-reference.md` | 7.4 K | 2026-07-13 | contract | `move` | docs/integration/domains/config-reference.md | 2 | yes |
| `dev/contracts/domains/geography-addresses.md` | 8.1 K | 2026-07-13 | contract | `move` | docs/integration/domains/geography-addresses.md | 2 | yes |
| `dev/contracts/domains/identity-auth.md` | 7.3 K | 2026-07-13 | contract | `move` | docs/integration/domains/identity-auth.md | 2 | yes |
| `dev/contracts/domains/identity-profiles.md` | 7.1 K | 2026-07-13 | contract | `move` | docs/integration/domains/identity-profiles.md | 2 | yes |
| `dev/contracts/domains/messaging-notifications-admin.md` | 11 K | 2026-07-13 | contract | `merge-into` | docs/integration/domains/messaging.md (absorbs messaging.md) | 2 | yes |
| `dev/contracts/domains/messaging.md` | 851 B | 2026-07-13 | contract | `merge-into` | docs/integration/domains/messaging.md (with messaging-notifications-admin.md) | 2 | yes |
| `dev/contracts/domains/payments.md` | 5.2 K | 2026-07-13 | contract | `move` | docs/integration/domains/payments.md | 2 | yes |
| `dev/contracts/domains/payouts.md` | 9.8 K | 2026-07-13 | contract | `move` | docs/integration/domains/payouts.md | 2 | yes |
| `dev/contracts/domains/refunds-invoices.md` | 11 K | 2026-07-13 | contract | `move` | docs/integration/domains/refunds-invoices.md | 2 | yes |
| `dev/contracts/domains/reviews-records.md` | 9.5 K | 2026-07-13 | contract | `move` | docs/integration/domains/reviews-records.md | 2 | yes |
| `dev/contracts/domains/search.md` | 6.6 K | 2026-07-13 | contract | `move` | docs/integration/domains/search.md | 2 | yes |
| `dev/contracts/domains/verification.md` | 18 K | 2026-07-13 | contract | `move` | docs/integration/domains/verification.md | 2 | yes |
| `dev/contracts/openapi/README.md` | 1.2 K | 2026-06-28 | contract | `move` | docs/integration/openapi/README.md | 2 | yes |
### `dev/phases/` — executed build prompts — 38 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `dev/phases/README.md` | 11 K | 2026-06-28 | plan | `archive` | archive/build-chain/ | 6 | no |
| `dev/phases/_shared/agent-operating-rules.md` | 13 K | 2026-06-28 | rule | `distill` | docs/rules/shared/* | 1 | yes |
| `dev/phases/_shared/backend-conventions-checklist.md` | 4.1 K | 2026-06-28 | rule | `distill` | docs/rules/server/* | 1 | yes |
| `dev/phases/_shared/definition-of-done.md` | 2.8 K | 2026-06-28 | rule | `distill` | docs/rules/documentation.md + docs/rules/shared/git.md | 1 | yes |
| `dev/phases/_shared/frontend-conventions-checklist.md` | 3.3 K | 2026-06-28 | rule | `distill` | docs/rules/client/* | 1 | yes |
| `dev/phases/_shared/phase-template.md` | 3.1 K | 2026-06-28 | plan | `archive` | archive/build-chain/ (template — nothing to extract) | 6 | no |
| `dev/phases/backend/backend-phase-0.md` | 12 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-1.md` | 32 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-10.md` | 38 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-11.md` | 38 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-12.md` | 33 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-13.md` | 28 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-14.md` | 27 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-15.md` | 42 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-2.md` | 26 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-3.md` | 31 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-4.md` | 30 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-5.md` | 35 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-6.md` | 35 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-7.md` | 31 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-8.md` | 38 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/backend/backend-phase-9.md` | 43 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-0.md` | 11 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-1-b2.md` | 26 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-10-b11.md` | 23 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-11-b12.md` | 26 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-12-b13.md` | 27 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-13-b14.md` | 26 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-14-b15.md` | 26 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-15-b15.md` | 56 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-2-b3.md` | 26 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-3-b4.md` | 23 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-4-b5.md` | 27 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-5-b6.md` | 28 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-6-b7.md` | 25 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-7-b8.md` | 27 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-8-b9.md` | 29 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
| `dev/phases/frontend/frontend-phase-9-b10.md` | 27 K | 2026-06-28 | plan | `archive` | archive/build-chain/phases/ · §5 → docs/status/decisions.md + docs/rules/ · §7 → docs/flows/ | 4 | yes |
### `dev/post-phase/` — follow-up chains — 56 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `dev/post-phase/hardening/LOOP-PROMPT.md` | 3.0 K | 2026-07-17 | plan | `archive` | archive/post-phase/ | 6 | no |
| `dev/post-phase/hardening/README.md` | 9.4 K | 2026-07-17 | plan | `archive` | archive/post-phase/; scope → docs/status/backlog.md | 4 | yes |
| `dev/post-phase/hardening/hardening-phase-0-auth-gate.md` | 6.9 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · scope → docs/status/backlog.md | 4 | yes |
| `dev/post-phase/hardening/hardening-phase-1-admin-rbac.md` | 7.3 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · scope → docs/status/backlog.md | 4 | yes |
| `dev/post-phase/hardening/hardening-phase-2-mock-integrity.md` | 7.7 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · scope → docs/status/backlog.md | 4 | yes |
| `dev/post-phase/hardening/hardening-phase-3-session-error-ux.md` | 6.2 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · scope → docs/status/backlog.md | 4 | yes |
| `dev/post-phase/hardening/hardening-phase-4-contract-completion.md` | 7.1 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · scope → docs/status/backlog.md | 4 | yes |
| `dev/post-phase/hardening/hardening-phase-5-final-demock.md` | 6.2 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · scope → docs/status/backlog.md | 4 | yes |
| `dev/post-phase/hardening/issues.md` | 12 K | 2026-07-17 | plan | `distill` | docs/status/backlog.md (18 items, re-verified) | 4 | yes |
| `dev/post-phase/manual-testing-plan.md` | 24 K | 2026-07-27 | ops | `distill` | docs/flows/testing-setup.md + docs/flows/<flow>.md | 3 | yes |
| `dev/post-phase/refinement/README.md` | 10 K | 2026-07-10 | plan | `archive` | archive/post-phase/ | 6 | no |
| `dev/post-phase/refinement/RUNBOOK.md` | 15 K | 2026-07-28 | ops | `distill` | docs/flows/testing-setup.md | 3 | yes |
| `dev/post-phase/refinement/refinement-phase-0-bring-up.md` | 12 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-1-database-and-seed.md` | 10 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-2-auth-and-role-nav.md` | 9.8 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-3-contract-batch.md` | 13 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-4-frontend-de-mock.md` | 10 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-5-security-hygiene.md` | 5.5 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-6-money-correctness.md` | 5.9 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-7-unattended-ops.md` | 6.5 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-8-external-rails.md` | 7.7 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/refinement/refinement-phase-9-observability-and-scale.md` | 6.3 K | 2026-07-10 | plan | `archive` | archive/post-phase/ · decisions → docs/status/decisions.md | 4 | yes |
| `dev/post-phase/server/README.md` | 2.5 K | 2026-07-10 | plan | `archive` | archive/post-phase/ | 6 | no |
| `dev/post-phase/server/frontend-backend-gaps.md` | 18 K | 2026-07-10 | plan | `distill` | docs/status/backlog.md | 4 | yes |
| `dev/post-phase/server/post-phase-backend-plan.md` | 42 K | 2026-07-10 | plan | `distill` | docs/status/decisions.md + backlog.md | 4 | yes |
| `dev/post-phase/server/runtime-services.md` | 21 K | 2026-07-13 | reference | `distill` | docs/integration/topology.md + docs/rules/server/* | 2 | yes |
| `dev/post-phase/ui/README.md` | 16 K | 2026-07-17 | plan | `archive` | archive/post-phase/; design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/admin-partner.md` | 21 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/auth-first-run.md` | 18 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/booking-lifecycle.md` | 20 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/checkout-money.md` | 19 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/component-primitives.md` | 20 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/cross-cutting-ux.md` | 19 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/customer-account.md` | 18 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/customer-storefront.md` | 20 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/feature-components.md` | 20 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/messaging-notifications.md` | 19 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/microcopy.md` | 17 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/nurse-trust-ops.md` | 21 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/nurse-workspace.md` | 19 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/shell-and-navigation.md` | 20 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/audit/theme-and-brand.md` | 19 K | 2026-07-17 | report | `archive` | archive/post-phase/ · design reality → frontend-designer skill | 7 | yes |
| `dev/post-phase/ui/ui-phase-0-design-language.md` | 24 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-1-primitives-and-states.md` | 23 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-10-messaging-and-notifications.md` | 22 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-11-admin-and-partner-console.md` | 22 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-12-copy-motion-and-polish.md` | 23 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-13-public-front-door.md` | 21 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-2-shells-and-navigation.md` | 23 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-3-auth-and-first-run.md` | 21 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-4-customer-storefront.md` | 24 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-5-booking-lifecycle.md` | 21 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-6-checkout-and-money.md` | 23 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-7-nurse-daily-ops.md` | 22 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-8-nurse-business-and-verification.md` | 22 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
| `dev/post-phase/ui/ui-phase-9-customer-account-and-care-circle.md` | 23 K | 2026-07-17 | plan | `archive` | archive/post-phase/ · design rules → docs/rules/client/theme.md | 7 | yes |
### `dev/shared-working-context/` — handoffs, status, reports — 81 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `dev/shared-working-context/README.md` | 3.0 K | 2026-06-28 | plan | `archive` | archive/build-chain/ | 6 | no |
| `dev/shared-working-context/backend/STATUS.md` | 39 K | 2026-07-13 | history | `distill` | docs/status/decisions.md + docs/status/implemented.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-0.md` | 3.1 K | 2026-06-30 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-1.md` | 4.3 K | 2026-07-02 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-10.md` | 4.2 K | 2026-07-06 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-11.md` | 3.5 K | 2026-07-09 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-12.md` | 4.2 K | 2026-07-09 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-13.md` | 4.2 K | 2026-07-09 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-14.md` | 4.5 K | 2026-07-09 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-15.md` | 4.5 K | 2026-07-10 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-2.md` | 3.5 K | 2026-07-02 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-3.md` | 4.1 K | 2026-07-02 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-4.md` | 4.4 K | 2026-07-02 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-5.md` | 6.4 K | 2026-07-02 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-6.md` | 7.3 K | 2026-07-05 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-7.md` | 3.3 K | 2026-07-05 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-8.md` | 4.9 K | 2026-07-06 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-backend-phase-9.md` | 3.5 K | 2026-07-06 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-refinement-phase-0.md` | 2.5 K | 2026-07-12 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-refinement-phase-1.md` | 3.4 K | 2026-07-13 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-refinement-phase-6.md` | 2.2 K | 2026-07-13 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-refinement-phase-7.md` | 2.4 K | 2026-07-13 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-refinement-phase-8.md` | 4.0 K | 2026-07-13 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/backend/handoff/after-refinement-phase-9.md` | 3.0 K | 2026-07-13 | history | `archive` | archive/build-chain/ · deferrals → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/frontend/STATUS.md` | 45 K | 2026-07-13 | history | `distill` | docs/status/decisions.md + docs/status/implemented.md | 4 | yes |
| `dev/shared-working-context/frontend/requests/for-backend.md` | 104 K | 2026-07-20 | history | `distill` | docs/status/backlog.md (67 REQs → BL-###) | 4 | yes |
| `dev/shared-working-context/reports/README.md` | 1.4 K | 2026-06-28 | plan | `archive` | archive/build-chain/ | 6 | no |
| `dev/shared-working-context/reports/backend-phase-0-report.md` | 6.8 K | 2026-06-30 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-1-report.md` | 5.9 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-10-report.md` | 5.4 K | 2026-07-06 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-11-report.md` | 6.7 K | 2026-07-09 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-12-report.md` | 7.6 K | 2026-07-09 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-13-report.md` | 6.2 K | 2026-07-09 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-14-report.md` | 7.0 K | 2026-07-09 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-15-report.md` | 6.5 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-2-report.md` | 7.8 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-3-report.md` | 5.2 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-4-report.md` | 5.7 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-5-report.md` | 7.8 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-6-report.md` | 10 K | 2026-07-05 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-7-report.md` | 6.3 K | 2026-07-05 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-8-report.md` | 6.6 K | 2026-07-06 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/backend-phase-9-report.md` | 6.4 K | 2026-07-06 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-0-report.md` | 6.8 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-1-report.md` | 7.4 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-10-report.md` | 8.4 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-11-report.md` | 8.4 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-12-report.md` | 8.3 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-13-report.md` | 11 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-14-report.md` | 13 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-15-report.md` | 10 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-2-report.md` | 6.6 K | 2026-07-02 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-3-report.md` | 8.4 K | 2026-07-05 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-4-report.md` | 9.3 K | 2026-07-05 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-5-report.md` | 8.9 K | 2026-07-09 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-6-report.md` | 6.5 K | 2026-07-09 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-7-report.md` | 9.5 K | 2026-07-09 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-8-report.md` | 9.5 K | 2026-07-10 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/frontend-phase-9-report.md` | 14 K | 2026-07-13 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/mocks-registry.md` | 73 K | 2026-07-19 | reference | `distill` | docs/status/implemented.md + docs/integration/index.md | 4 | yes |
| `dev/shared-working-context/reports/refinement-phase-0-report.md` | 6.1 K | 2026-07-12 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/refinement-phase-1-report.md` | 7.3 K | 2026-07-13 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/refinement-phase-2-report.md` | 6.6 K | 2026-07-13 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/refinement-phase-6-report.md` | 6.8 K | 2026-07-13 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/refinement-phase-7-report.md` | 6.6 K | 2026-07-13 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/refinement-phase-8-report.md` | 12 K | 2026-07-13 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/refinement-phase-9-report.md` | 10 K | 2026-07-13 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-0-report.md` | 14 K | 2026-07-17 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-1-report.md` | 18 K | 2026-07-17 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-10-report.md` | 18 K | 2026-07-19 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-11-report.md` | 22 K | 2026-07-19 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-12-report.md` | 21 K | 2026-07-19 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-13-report.md` | 11 K | 2026-07-20 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-2-report.md` | 14 K | 2026-07-17 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-3-report.md` | 14 K | 2026-07-18 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-4-report.md` | 12 K | 2026-07-18 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-5-report.md` | 15 K | 2026-07-18 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-6-report.md` | 17 K | 2026-07-19 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-7-report.md` | 15 K | 2026-07-19 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-8-report.md` | 18 K | 2026-07-19 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
| `dev/shared-working-context/reports/ui-phase-9-report.md` | 14 K | 2026-07-19 | report | `archive` | archive/build-chain/reports/ · "Follow-ups" → docs/status/backlog.md | 4 | yes |
### `dev/manual-testing/` — human feedback — 2 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `dev/manual-testing/iteration-1/improvement-and-fix-1.md` | 3.4 K | 2026-07-27 | feedback | `distill` | docs/status/backlog.md (unfinished items); PNGs kept | 4 | yes |
| `dev/manual-testing/iteration-2/improvement-2.md` | 1.2 K | 2026-07-27 | feedback | `distill` | docs/status/backlog.md (unfinished items); PNGs kept | 4 | yes |
### `dev/` root — 1 file
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `dev/README.md` | 2.3 K | 2026-07-17 | plan | `archive` | archive/README.md context | 6 | no |
### `product/` — business docs (untouched) — 48 files
| path | bytes | last commit | kind | disposition | target | owner phase | live facts? |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `product/README.md` | 2.9 K | 2026-06-24 | business | `keep-as-is` | product/README.md | none | no |
| `product/business/01-actors-and-onboarding.md` | 3.9 K | 2026-07-02 | business | `keep-as-is` | product/business/01-actors-and-onboarding.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/02-nurse-verification.md` | 6.8 K | 2026-07-05 | business | `keep-as-is` | product/business/02-nurse-verification.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/03-service-catalog-and-pricing.md` | 2.6 K | 2026-06-24 | business | `keep-as-is` | product/business/03-service-catalog-and-pricing.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/04-search-and-matching.md` | 2.8 K | 2026-06-24 | business | `keep-as-is` | product/business/04-search-and-matching.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/05-booking-and-scheduling.md` | 3.6 K | 2026-06-24 | business | `keep-as-is` | product/business/05-booking-and-scheduling.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/06-evv-and-service-delivery.md` | 2.3 K | 2026-06-24 | business | `keep-as-is` | product/business/06-evv-and-service-delivery.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/07-cancellation-and-refunds.md` | 4.1 K | 2026-07-09 | business | `keep-as-is` | product/business/07-cancellation-and-refunds.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/08-payments-and-escrow.md` | 4.8 K | 2026-06-24 | business | `keep-as-is` | product/business/08-payments-and-escrow.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/09-installments-bnpl.md` | 4.6 K | 2026-06-24 | business | `keep-as-is` | product/business/09-installments-bnpl.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/10-payouts.md` | 5.0 K | 2026-07-09 | business | `keep-as-is` | product/business/10-payouts.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/11-reviews-trust-and-safety.md` | 2.2 K | 2026-06-24 | business | `keep-as-is` | product/business/11-reviews-trust-and-safety.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/12-messaging-and-emergencies.md` | 2.3 K | 2026-06-24 | business | `keep-as-is` | product/business/12-messaging-and-emergencies.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/13-tax-invoicing-and-legal.md` | 4.0 K | 2026-06-24 | business | `keep-as-is` | product/business/13-tax-invoicing-and-legal.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/14-notifications-and-admin.md` | 2.8 K | 2026-06-24 | business | `keep-as-is` | product/business/14-notifications-and-admin.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/business/index.md` | 5.3 K | 2026-06-24 | business | `keep-as-is` | product/business/index.md · read-only source for docs/status/implemented.md | 4 | no |
| `product/data-model/01-identity-and-access.md` | 8.9 K | 2026-07-02 | business | `keep-as-is` | product/data-model/01-identity-and-access.md | none | no |
| `product/data-model/02-geography.md` | 1.9 K | 2026-07-02 | business | `keep-as-is` | product/data-model/02-geography.md | none | no |
| `product/data-model/03-services-and-pricing.md` | 4.2 K | 2026-06-24 | business | `keep-as-is` | product/data-model/03-services-and-pricing.md | none | no |
| `product/data-model/04-verification-and-credentials.md` | 3.8 K | 2026-06-24 | business | `keep-as-is` | product/data-model/04-verification-and-credentials.md | none | no |
| `product/data-model/05-booking-and-scheduling.md` | 8.3 K | 2026-06-24 | business | `keep-as-is` | product/data-model/05-booking-and-scheduling.md | none | no |
| `product/data-model/06-payments-ledger-and-refunds.md` | 11 K | 2026-07-09 | business | `keep-as-is` | product/data-model/06-payments-ledger-and-refunds.md | none | no |
| `product/data-model/07-payouts.md` | 2.1 K | 2026-06-24 | business | `keep-as-is` | product/data-model/07-payouts.md | none | no |
| `product/data-model/08-bnpl.md` | 2.8 K | 2026-06-24 | business | `keep-as-is` | product/data-model/08-bnpl.md | none | no |
| `product/data-model/09-messaging.md` | 958 B | 2026-06-24 | business | `keep-as-is` | product/data-model/09-messaging.md | none | no |
| `product/data-model/10-reviews-and-records.md` | 1.6 K | 2026-06-24 | business | `keep-as-is` | product/data-model/10-reviews-and-records.md | none | no |
| `product/data-model/11-notifications.md` | 868 B | 2026-06-24 | business | `keep-as-is` | product/data-model/11-notifications.md | none | no |
| `product/data-model/12-audit-config-and-reference.md` | 3.7 K | 2026-07-02 | business | `keep-as-is` | product/data-model/12-audit-config-and-reference.md | none | no |
| `product/data-model/13-partner-centers-and-future.md` | 2.6 K | 2026-06-24 | business | `keep-as-is` | product/data-model/13-partner-centers-and-future.md | none | no |
| `product/data-model/diagrams.md` | 5.4 K | 2026-06-24 | business | `keep-as-is` | product/data-model/diagrams.md | none | no |
| `product/data-model/index.md` | 20 K | 2026-06-24 | business | `keep-as-is` | product/data-model/index.md | none | no |
| `product/index.md` | 3.2 K | 2026-06-24 | business | `keep-as-is` | product/index.md | none | no |
| `product/notes/future-ideas.md` | 2.5 K | 2026-06-24 | business | `keep-as-is` | product/notes/future-ideas.md | none | no |
| `product/notes/open-questions.md` | 4.6 K | 2026-07-20 | business | `keep-as-is` | product/notes/open-questions.md · read-only source for docs/status/backlog.md | 4 | no |
| `product/overview/platform-summary.md` | 5.2 K | 2026-06-24 | business | `keep-as-is` | product/overview/platform-summary.md | none | no |
| `product/payments/bnpl-landscape.md` | 6.4 K | 2026-06-24 | business | `keep-as-is` | product/payments/bnpl-landscape.md | none | no |
| `product/payments/cancellation-and-payout.md` | 5.8 K | 2026-06-24 | business | `keep-as-is` | product/payments/cancellation-and-payout.md | none | no |
| `product/payments/escrow-ledger.md` | 5.5 K | 2026-07-06 | business | `keep-as-is` | product/payments/escrow-ledger.md | none | no |
| `product/payments/index.md` | 6.1 K | 2026-06-24 | business | `keep-as-is` | product/payments/index.md | none | no |
| `product/payments/integration-notes.md` | 6.5 K | 2026-06-24 | business | `keep-as-is` | product/payments/integration-notes.md | none | no |
| `product/payments/iranian-payment-reality.md` | 5.1 K | 2026-06-24 | business | `keep-as-is` | product/payments/iranian-payment-reality.md | none | no |
| `product/payments/sources.md` | 6.5 K | 2026-06-24 | business | `keep-as-is` | product/payments/sources.md | none | no |
| `product/research/go-to-market.md` | 5.0 K | 2026-06-24 | business | `keep-as-is` | product/research/go-to-market.md | none | no |
| `product/research/index.md` | 4.5 K | 2026-06-24 | business | `keep-as-is` | product/research/index.md | none | no |
| `product/research/legal-landscape.md` | 5.0 K | 2026-06-24 | business | `keep-as-is` | product/research/legal-landscape.md | none | no |
| `product/research/market-and-competitors.md` | 10 K | 2026-06-24 | business | `keep-as-is` | product/research/market-and-competitors.md | none | no |
| `product/research/problems-and-risks.md` | 9.7 K | 2026-06-24 | business | `keep-as-is` | product/research/problems-and-risks.md | none | no |
| `product/research/verification.md` | 7.5 K | 2026-06-24 | business | `keep-as-is` | product/research/verification.md | none | no |
---
## Non-markdown files this chain also moves
The survey covers `.md` files. Three non-markdown files are load-bearing for the same phases:
| path | bytes | disposition | target | owner phase |
| --- | --- | --- | --- | --- |
| `dev/contracts/openapi/swagger.v1.json` | 610 K | `archive` | superseded by `docs/integration/openapi/swagger.v1.json` | 2 |
| `temp/swagger.json` | 364 K | `delete` | — (stale duplicate, 2026-07-06; **untracked**`.gitignore:1` ignores `temp`) | 0 |
| `dev/manual-testing/iteration-{1,2}/*.png` (7 files) | — | `archive` | `archive/manual-testing/` — the only visual record of the pre-overhaul UI | 6 |
+103
View File
@@ -0,0 +1,103 @@
# Open contradictions
> Opened 2026-07-29 by [phase 0](phase-0-inventory-and-scaffold.md), against commit `c99e3f4`.
> **Phase 0 only finds these. It resolves none of them.**
Each row is *claim A* vs *claim B* with a location for both, and the phase that owns the resolution.
When a phase resolves one, it moves the row to **Resolved** at the bottom with the decision, and — per
the chain's non-negotiable #5 — records the decision in `docs/status/decisions.md`.
Three of the five contradictions the plan seeded turned out to be **narrower than stated**. Those are
written up as they actually are, with the evidence, in [§ Corrections to the seeded list](#corrections-to-the-seeded-list).
---
## Open
| # | Claim A | Claim B | Owner | Status |
| --- | --- | --- | --- | --- |
| C-1 | **Set the crypto keys with `dotnet user-secrets`** — [manual-testing-plan.md:22](../../dev/post-phase/manual-testing-plan.md), [:233](../../dev/post-phase/manual-testing-plan.md) | **`user-secrets` is not used; `<UserSecretsId>` was removed so the store is not read** — [CLAUDE.md:90](../../CLAUDE.md), [DEPLOY.md:20](../../DEPLOY.md), [server/CLAUDE.md:70](../../server/CLAUDE.md), and `Baya.Web.Api.csproj` (no `UserSecretsId` element) | 3 | open |
| C-2 | **Placeholder value is literally `SET_VIA_USER_SECRETS_OR_ENV`**`server/src/API/Baya.Web.Api/appsettings.json` (6 occurrences), enforced by `StartupSecretsGuard` and by the pre-commit hook | **That store does not exist any more** (C-1's B side). The name instructs a reader to use a removed mechanism | 2 | open — naming only, behaviour is correct |
| C-3 | **The server listens on `https://localhost:5002`** — [CLAUDE.md:62](../../CLAUDE.md), [:135](../../CLAUDE.md), [api-conventions.md:6](../../dev/contracts/conventions/api-conventions.md), [RUNBOOK.md:7](../../dev/post-phase/refinement/RUNBOOK.md), [:84](../../dev/post-phase/refinement/RUNBOOK.md), [:112](../../dev/post-phase/refinement/RUNBOOK.md), + 12 more | **It listens on `http://localhost:5002`**`launchSettings.json:25` (`"applicationUrl": "http://localhost:5002"`), and `client/.env.development:20` (`NEXT_PUBLIC_API_URL = http://localhost:5002`) | 2 + 3 | open |
| C-4 | **RUNBOOK's `dotnet dev-certs https --trust` step is required**, because the browser would otherwise reject the API — [RUNBOOK.md:26](../../dev/post-phase/refinement/RUNBOOK.md) | **The API is plain HTTP locally** (C-3's B side), so there is no certificate to trust | 3 | open — likely a dead step |
| C-5 | **Bring-up starts a local SQL Server in Docker on `localhost:1433`** — [RUNBOOK.md:18](../../dev/post-phase/refinement/RUNBOOK.md), [:3548](../../dev/post-phase/refinement/RUNBOOK.md), [:63](../../dev/post-phase/refinement/RUNBOOK.md) | **The committed dev config points at a remote SQL Server**`appsettings.Development.json` (`Server=87.107.152.16,1433`), and [manual-testing-plan.md:20](../../dev/post-phase/manual-testing-plan.md) calls the remote one "currently" the target | 3 | open — the two bring-up paths give *different worlds*: the remote DB is already seeded, a fresh local one is not |
| C-6 | **`GET /api/v1/webhooks/payouts/{provider}` does not exist** — absent from `dev/contracts/openapi/swagger.v1.json` (frozen 2026-07-13) and from every `dev/contracts/domains/*.md` | **It exists** — present in the fresh snapshot `docs/integration/openapi/swagger.v1.json` (2026-07-29). See [§ OpenAPI drift](#openapi-drift) | 2 | open |
| C-7 | **`GeneratePayoutBatchCommand`'s shape** per the 07-13 snapshot | **A different shape** in the 07-29 snapshot — the only schema of 339 whose definition changed | 2 | open |
| C-8 | **Two contract files describe the same domain** — [`dev/contracts/domains/messaging.md`](../../dev/contracts/domains/messaging.md) is a headerless 851-byte fragment ("Refinement phase 3 additions (REQ-028)") sitting beside the 10.8 K [`messaging-notifications-admin.md`](../../dev/contracts/domains/messaging-notifications-admin.md), which it silently amends | — | 2 | open — merge, don't move both |
| C-9 | **The OpenAPI folder publishes documents `v1` *and* `v1.1`** — [openapi/README.md:3](../../dev/contracts/openapi/README.md) | **Only `swagger.v1.json` has ever been committed**; `v1.1` was not fetched during this survey | 2 | open — `UNVERIFIED`, check `/swagger/v1.1/swagger.json` when the server is next up |
| C-10 | **18 hardening items are open** — [issues.md](../../dev/post-phase/hardening/issues.md), 18 of 18 checkboxes unticked, last touched 2026-07-17 | **Fourteen UI phases, two manual-testing iterations, a Telegram integration and a deploy commit ran afterwards** (`12ce7fa``96b57eb`, 07-20 → 07-28) without ticking any box | 4 | open — Phase 4 must re-verify each item against code, not trust the checkbox |
| C-11 | **The frontend-designer skill is the design-language authority** — [SKILL.md §§17](../../.claude/skills/frontend-designer/SKILL.md) | **`client/CLAUDE.md` also states theme, tokens, typography, icons and anti-patterns** — [§Theme System:646](../../client/CLAUDE.md), [§Forms:590](../../client/CLAUDE.md), [:2223](../../client/CLAUDE.md) (icons). Overlapping scope, two files, no stated precedence | 1 + 7 | open |
| C-12 | **The skill is current** | **It is exactly one iteration behind the code.** SKILL.md's last commit is `baa3cc6` ("manual improvement 1"); `client/CLAUDE.md`'s is `e6a8f93` ("manual improvement 2"), which changed **44 files, +3419/2449** under `client/src`. Anything iteration 2 changed is absent from the skill | 7 | open |
| C-13 | **`dev/` is "the plan for building Balinyaar"**, written in the imperative — [dev/README.md:3](../../dev/README.md) | **It is a record of work already done.** `dev/phases/` last touched 2026-06-28; the code it describes shipped weeks ago | 6 | open — resolved by the archive banner, not by editing 199 files |
| C-14 | **`temp/swagger.json` is a stale committed duplicate** — [_plan/README.md](README.md) diagnosis table | **It is not committed at all**`.gitignore:1` ignores `temp`, and `git ls-files temp/` is empty. It is local clutter, not repo content | 0 | see [§ Corrections](#corrections-to-the-seeded-list) |
---
## OpenAPI drift
The fresh snapshot is at [`docs/integration/openapi/swagger.v1.json`](../integration/openapi/swagger.v1.json).
See its [README](../integration/openapi/README.md) for provenance. Measured against the 2026-07-13 snapshot
at `dev/contracts/openapi/swagger.v1.json`:
| | 2026-07-13 | 2026-07-29 |
| --- | --- | --- |
| paths | 177 | **178** |
| operations | 185 | **186** |
| component schemas | 339 | **339** |
**Added (1)**
- `POST /api/v1/webhooks/payouts/{provider}`
**Removed (0)** · **Methods changed on an existing path (0)** · **Schemas added/removed (0)**
**Schema definitions changed (1)**
- `GeneratePayoutBatchCommand`
> **This is Phase 2's worklist for the machine contract, and it is two lines long.** The 16-day gap
> between the snapshot and the code produced almost no wire-level drift. Phase 2 should therefore spend
> its budget on the **hand-written** `dev/contracts/domains/*.md` — 17 files, frozen the same day, never
> mechanically checked against anything — rather than on the JSON. See
> [§ Corrections](#corrections-to-the-seeded-list) C-14b.
---
## Corrections to the seeded list
The plan seeded five contradictions. Two hold as written; three are narrower than stated. Recording
this here so later phases do not budget for work that is already done.
**Holds — `user-secrets`.** The plan says 18 files still instruct you to use it. 32 mentions across 18
files is right, but the split matters: **6 files document the removal correctly** (root `CLAUDE.md`,
`DEPLOY.md`, `server/CLAUDE.md`, `server/CONVENTIONS.md`, and `RUNBOOK.md` twice — including a
troubleshooting row that names the error you now get). **12 are historical** — refinement prompts,
handoffs and reports written before the removal, all headed for `archive/`. Only **one live document
still gives the wrong instruction**: [manual-testing-plan.md](../../dev/post-phase/manual-testing-plan.md)
(last commit `bd06ef0`, the day *before* the removal in `5885280`), plus the archived
[telegram-otp-bot/INTEGRATION-PROMPT.md](../../telegram-otp-bot/INTEGRATION-PROMPT.md).
→ **The plan's statement that "both `manual-testing-plan.md` and `RUNBOOK.md` are stale on secrets
handling" is half wrong. `RUNBOOK.md` is current.** Phase 3 fixes one file, not two.
**Holds — hardening.** C-10 above. 18 of 18 unticked, four later chains, nothing reconciled.
**Narrower — contract drift (C-14b).** "`dev/contracts/` frozen 07-13 vs `server/src` through 07-28"
is true by date but nearly empty in substance at the OpenAPI layer: 1 endpoint, 1 schema. The drift
that matters, if any, is in the 17 hand-written domain markdown files. Phase 2 should re-scope
accordingly.
**Narrower — the design-language skill.** The plan says the skill "predates that overhaul" (mobile-scoped
shell, bottom nav, react-hook-form, new icon set). It does not: SKILL.md was rewritten at `baa3cc6`
during iteration 1 and already covers `AppFrame` (4×), `BottomBar`, `APP_FRAME_MAX_WIDTH` (2×) and the
Lucide-only icon registry with `@mui/icons-material` removed. `react-hook-form` is absent from the skill,
but it is an engineering rule that `client/CLAUDE.md` §Forms owns — not a design-language gap. The real
gap is C-12: the skill stopped at iteration 1 while the code went on to iteration 2.
**Wrong — `temp/swagger.json`.** C-14 above. It is `.gitignore`d and untracked, so it was never part of
the repo's documentation surface. Phase 0's brief says to delete it; that deletes a local file only.
---
## Resolved
_(none yet — phases move rows here with the decision and the commit that made it)_
+75 -2
View File
@@ -144,5 +144,78 @@ without re-reading the file.
## Handoff
_(filled in by the agent that runs this phase — file counts, surprises, anything that changes a later
phase's scope)_
**Run 2026-07-29 against commit `c99e3f4`. All six outputs delivered; all six verification boxes pass.**
### Counts
| | Planned | Actual |
| --- | --- | --- |
| Markdown files surveyed | ~260 | **275** (273 tracked + 2 gitignored `graphify-out/GRAPH_REPORT.md`) |
| `dev/` | 199 | 199 ✓ |
| `dev/shared-working-context/reports/` | 50 | **53** reports + `README.md` + `mocks-registry.md` |
| `dev/phases/backend|frontend` prompts | 32 | 32 ✓ |
| REQs in `for-backend.md` | 67 | 67 ✓ |
| Hardening items | 18 open | 18 of 18 unticked ✓ |
| `product/` | 48 | 48 ✓ |
The extra 15 over "~260" are the 9 files of `docs/_plan/` itself, the 2 gitignored graph reports, and 3
more reports than the plan counted.
Disposition split: **172 archive · 59 keep-as-is · 24 distill · 17 move · 2 merge-into · 1 delete**.
**209 of 275 carry live facts.** Owner phases: **4 → 149 files**, 7 → 31, 2 → 23, 1 → 17, 6 → 17, 3 → 2,
0 → 1, none → 35.
### Four things that change a later phase's scope
1. **Phase 2 is smaller than budgeted at the OpenAPI layer.** The 16-day-stale snapshot differs from the
live server by **one endpoint** (`POST /api/v1/webhooks/payouts/{provider}`) and **one schema**
(`GeneratePayoutBatchCommand`). Zero removals, zero method changes, identical schema count (339).
Spend the budget on the 17 hand-written `domains/*.md` instead — that is where drift can hide, and
nothing has ever checked them mechanically.
2. **Phase 3 fixes one stale bring-up doc, not two.** The plan says `manual-testing-plan.md` *and*
`RUNBOOK.md` are both stale on secrets. `RUNBOOK.md` was updated in `5885280` and is correct — it even
has a troubleshooting row for the error you now get. Only `manual-testing-plan.md` (last commit
`bd06ef0`, the day before) still instructs `dotnet user-secrets`. But Phase 3 inherits a **bigger**
bring-up problem the plan did not list: contradictions **C-3/C-4/C-5** — the API is `http://`, not
`https://`, in ~18 places; the `dev-certs` step is therefore dead; and `RUNBOOK.md` builds a *local*
Docker SQL Server while the committed dev config uses a *remote, already-seeded* one. Those are two
different worlds and Phase 3 must pick one and walk it.
3. **Phase 7's premise is wrong in one direction and right in another.** The frontend-designer skill does
**not** predate the UI overhaul — it was rewritten at `baa3cc6` (manual improvement 1) and already
covers `AppFrame`, `BottomBar`, `APP_FRAME_MAX_WIDTH` and the Lucide-only registry. It is stale by
exactly **one iteration**: `client/CLAUDE.md` was updated at `e6a8f93` (manual improvement 2), which
changed **44 files, +3419/2449** under `client/src`. Diff against iteration 2, not against the whole
overhaul.
4. **Phase 4 is the heavy phase, not Phase 3.** 149 of 275 files land on it. Two structural findings make
it tractable: every `dev/phases/*` prompt shares a fixed layout where **§5 "Critical rules you must not
get wrong"** is exactly the not-in-the-code decision set (verified in all 32), and **all 53 reports**
carry a "Follow-ups for later phases" section (verified). Both are mechanically extractable.
### Smaller notes
- **`temp/swagger.json` was never committed** — `.gitignore:1` ignores `temp`. Deleting it removed local
clutter, not repo content. The `_plan/README.md` diagnosis calls it a "second stale copy" in the repo;
it is not in the repo.
- **`dev/contracts/domains/messaging.md`** (851 B) is a headerless fragment that silently amends
`messaging-notifications-admin.md`. Phase 2 should **merge**, not move both (C-8).
- **`SET_VIA_USER_SECRETS_OR_ENV`** is still the placeholder string in `appsettings.json` and is enforced
by `StartupSecretsGuard` and the pre-commit hook. Behaviour is correct; the *name* instructs a reader to
use a store that no longer exists (C-2).
- **The `graphify-out/` reports are gitignored generated output**, so the plan's "decide keep or delete"
is moot — they are not repo content and were left alone.
- **Leaf directories are not pre-created.** `docs/rules/{shared,client,server}/` and
`docs/integration/domains/` are named in their index stubs but not made on disk: git does not track
empty directories, so an empty scaffold would silently vanish. Each phase creates its own with its
first file.
- **Server boot gotchas worth reusing** (recorded in `docs/integration/openapi/README.md`): it binds
**HTTP**, first boot takes ~40 s because Development migrates and seeds against the *remote* DB, and
`curl` to localhost returns **502** unless you pass `--noproxy '*'`.
### Contradictions
14 logged in [open-contradictions.md](open-contradictions.md), including a
[corrections section](open-contradictions.md#corrections-to-the-seeded-list) covering the three seeded
claims that did not reproduce as stated. Phase 0 resolved none, by design.