cleanup phases 0 done
This commit is contained in:
@@ -0,0 +1,56 @@
|
|||||||
|
# Balinyaar docs
|
||||||
|
|
||||||
|
The entry point. Start here, follow one link, stop reading.
|
||||||
|
|
||||||
|
> **Being built.** This tree is the output of [the clarify chain](_plan/README.md). Sections marked
|
||||||
|
> _not yet written_ are scaffolded but empty — the doc that currently holds that knowledge is named
|
||||||
|
> beside each one so nothing is unreachable in the meantime.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The rule that keeps three trees apart
|
||||||
|
|
||||||
|
| Tree | Answers | Example |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [`product/`](../product/index.md) | **What the business is** | escrow holds funds until check-out is confirmed |
|
||||||
|
| **`docs/`** (here) | **What we built, and how we work** | the escrow ledger is implemented; here is how to test it |
|
||||||
|
| `archive/` | **How we got here** | the phase-10 prompt that built the ledger, and its report |
|
||||||
|
|
||||||
|
**A file belongs in exactly one.** If you are about to write a business rule into `docs/`, it belongs in
|
||||||
|
`product/`. If you are about to obey something in `archive/`, stop — it is a record, not an instruction.
|
||||||
|
|
||||||
|
`archive/` does not exist yet; Phase 6 creates it from today's [`dev/`](../dev/README.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Map
|
||||||
|
|
||||||
|
| Section | What it holds | Status |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [rules/](rules/index.md) | What must never be broken — the tiered rule set behind the `CLAUDE.md` files | not yet written · phase 1 |
|
||||||
|
| [integration/](integration/index.md) | The client↔server seam in one place: contract, config, topology, OpenAPI | OpenAPI snapshot only · phase 2 |
|
||||||
|
| [flows/](flows/index.md) | What is implemented, and how to test it — one file per user journey | not yet written · phase 3 |
|
||||||
|
| [status/](status/index.md) | Where the project actually is: implemented, backlog, decisions | not yet written · phase 4 |
|
||||||
|
| [roadmap/](roadmap/index.md) | Where it goes next, and what gates a launch | not yet written · phase 5 |
|
||||||
|
| [_plan/](_plan/README.md) | The chain that builds this tree. **Temporary** — moves to `archive/` when done | in progress |
|
||||||
|
|
||||||
|
## Still elsewhere
|
||||||
|
|
||||||
|
Two documents stay outside this tree on purpose:
|
||||||
|
|
||||||
|
- [`DEPLOY.md`](../DEPLOY.md) — the deploy *procedure*, at the repo root where an operator will look for
|
||||||
|
it. The runtime *topology* it implies moves to `docs/integration/topology.md`.
|
||||||
|
- [`product/`](../product/index.md) — untouched by this chain. `docs/status/implemented.md` will overlay
|
||||||
|
build state onto its 14 business areas rather than restating them.
|
||||||
|
|
||||||
|
## Conventions
|
||||||
|
|
||||||
|
1. **Every status or flow doc carries `> Last verified: <date> against <commit>`.** A doc without one is
|
||||||
|
a claim, not a fact.
|
||||||
|
2. **Verify, don't copy.** A load-bearing claim is checked against code or run. If it cannot be checked,
|
||||||
|
it is written with an explicit `UNVERIFIED:` prefix.
|
||||||
|
3. **Write short.** A reference doc over ~400 lines should be split.
|
||||||
|
4. **English throughout**, including in files that describe Persian UI copy.
|
||||||
|
|
||||||
|
The full convention lands in `docs/rules/documentation.md` (phase 1), enforced by a pre-commit warning
|
||||||
|
(phase 7).
|
||||||
@@ -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) |
|
| **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 103–421 are a project-structure listing and lines 421–1100 are explanatory reference |
|
| **Loading `client/CLAUDE.md` costs ~40k tokens** on any client edit | 161 KB, of which lines 103–421 are a project-structure listing and lines 421–1100 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/) |
|
| **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 |
|
| **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 |
|
| **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 |
|
| **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 |
|
| 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 | | |
|
| 1 Rules consolidation | not started | | |
|
||||||
| 2 Integration & dependency | not started | | |
|
| 2 Integration & dependency | not started | | |
|
||||||
| 3 Flow atlas | not started | | |
|
| 3 Flow atlas | not started | | |
|
||||||
|
|||||||
@@ -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 |
|
||||||
@@ -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), [:35–48](../../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 §§1–7](../../.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), [:22–23](../../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)_
|
||||||
@@ -144,5 +144,78 @@ without re-reading the file.
|
|||||||
|
|
||||||
## Handoff
|
## Handoff
|
||||||
|
|
||||||
_(filled in by the agent that runs this phase — file counts, surprises, anything that changes a later
|
**Run 2026-07-29 against commit `c99e3f4`. All six outputs delivered; all six verification boxes pass.**
|
||||||
phase's scope)_
|
|
||||||
|
### 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.
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Flows — what is implemented, and how to test it
|
||||||
|
|
||||||
|
> **Populated by phase 3 — not yet written.** It is the biggest phase in the chain (2–4 sessions).
|
||||||
|
> Until then the closest things are [manual-testing-plan.md](../../dev/post-phase/manual-testing-plan.md)
|
||||||
|
> and [RUNBOOK.md](../../dev/post-phase/refinement/RUNBOOK.md) — both partly stale, see below.
|
||||||
|
|
||||||
|
One file per **user-meaningful journey**, not per screen. Each answers three questions and no others:
|
||||||
|
what it does, what is real versus mocked, and the exact steps to walk it against a running stack.
|
||||||
|
|
||||||
|
This page becomes the **status table** — every flow, one row, with its `Last verified` date. It is the
|
||||||
|
page you check before believing anything else in `docs/`.
|
||||||
|
|
||||||
|
## Planned contents
|
||||||
|
|
||||||
|
| File | Covers |
|
||||||
|
| --- | --- |
|
||||||
|
| `testing-setup.md` | Bring-up, demo accounts, the seeded world, OTP retrieval, reset, troubleshooting |
|
||||||
|
| `<flow>.md` × ~23 | One per journey — the candidate list is in [phase 3](../_plan/phase-3-flow-atlas.md) |
|
||||||
|
|
||||||
|
## Before writing testing-setup.md
|
||||||
|
|
||||||
|
Four contradictions land squarely on the bring-up story, and phase 3 has to settle them rather than
|
||||||
|
copy either source. All are logged in [_plan/open-contradictions.md](../_plan/open-contradictions.md):
|
||||||
|
|
||||||
|
- **C-1** — `manual-testing-plan.md` still tells you to set crypto keys via `dotnet user-secrets`, which
|
||||||
|
was removed in `5885280`. **`RUNBOOK.md` is already correct on this**; only the one file is stale.
|
||||||
|
- **C-3** — the API listens on `http://localhost:5002`, not `https://`, in 18 places' worth of prose.
|
||||||
|
- **C-4** — the `dotnet dev-certs https --trust` step therefore has nothing to trust.
|
||||||
|
- **C-5** — `RUNBOOK.md` starts a **local** SQL Server in Docker; the committed dev config points at a
|
||||||
|
**remote** one. These are not the same world: the remote DB is already seeded, a fresh local one is
|
||||||
|
not, and its data is encrypted under keys that must match exactly.
|
||||||
|
|
||||||
|
Pick one bring-up path, verify it end to end, and say plainly what the other one was.
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# Integration — the client↔server seam
|
||||||
|
|
||||||
|
> **Populated by phase 2 — not yet written**, except the OpenAPI snapshot, which phase 0 refreshed.
|
||||||
|
> Until then the contract lives in [dev/contracts/](../../dev/contracts/README.md) (frozen 2026-07-13)
|
||||||
|
> and the deployment shape in [DEPLOY.md](../../DEPLOY.md).
|
||||||
|
|
||||||
|
The two projects have no shared build. Everything that crosses between them — envelope shape, casing,
|
||||||
|
pagination, idempotency, cookies and refresh, CORS, `NEXT_PUBLIC_API_URL`, three containers behind Caddy,
|
||||||
|
a remote SQL Server and the OTP relay — is described **here, as one thing**. Today it is described
|
||||||
|
nowhere as one thing, which is the gap this section closes.
|
||||||
|
|
||||||
|
## Planned contents
|
||||||
|
|
||||||
|
| File | Covers |
|
||||||
|
| --- | --- |
|
||||||
|
| `api-contract.md` | Envelope, casing, pagination, error shape, idempotency, auth headers/cookies |
|
||||||
|
| `domains/` | One file per service domain, refreshed against the live swagger |
|
||||||
|
| [`openapi/`](openapi/README.md) | The machine contract — **snapshot is current as of 2026-07-29** |
|
||||||
|
| `config-matrix.md` | Every env var and appsettings key: client, server, docker, the bot |
|
||||||
|
| `topology.md` | The runtime dependency graph — 3 containers + Caddy + remote SQL + OTP relay |
|
||||||
|
|
||||||
|
## What phase 0 already established
|
||||||
|
|
||||||
|
The machine contract barely drifted. Between the 2026-07-13 snapshot and the live server on 2026-07-29:
|
||||||
|
**one endpoint added** (`POST /api/v1/webhooks/payouts/{provider}`), **one schema changed**
|
||||||
|
(`GeneratePayoutBatchCommand`), nothing removed. Full diff in
|
||||||
|
[_plan/open-contradictions.md § OpenAPI drift](../_plan/open-contradictions.md#openapi-drift).
|
||||||
|
|
||||||
|
So phase 2's real work is the **17 hand-written** `dev/contracts/domains/*.md` files, which were frozen
|
||||||
|
the same day and have never been checked against anything mechanically — not the JSON.
|
||||||
|
|
||||||
|
Also open for this section: **C-2** (`SET_VIA_USER_SECRETS_OR_ENV` names a store that was removed),
|
||||||
|
**C-3** (`https://localhost:5002` in 18 places vs `http://` in `launchSettings.json`), **C-8** (two
|
||||||
|
contract files for messaging), **C-9** (a `v1.1` OpenAPI document that may not exist).
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
# OpenAPI snapshot
|
||||||
|
|
||||||
|
The **machine contract**. The server generates it with NSwag; this folder holds the published snapshot
|
||||||
|
so the client can generate or verify types without booting the backend.
|
||||||
|
|
||||||
|
> Last verified: 2026-07-29 against commit `c99e3f4` (server code last changed in `5885280`, 2026-07-28).
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| File | [`swagger.v1.json`](swagger.v1.json) |
|
||||||
|
| Taken | 2026-07-29 |
|
||||||
|
| Commit | `c99e3f4` |
|
||||||
|
| **Paths** | **178** |
|
||||||
|
| **Operations** | **186** |
|
||||||
|
| Component schemas | 339 |
|
||||||
|
| Generator | NSwag v14.7.1.0 · OpenAPI 3.0.0 |
|
||||||
|
| Size | 612 K |
|
||||||
|
|
||||||
|
## How to regenerate
|
||||||
|
|
||||||
|
The API binds **plain HTTP** on port 5002 (`launchSettings.json`), despite what most prose in this repo
|
||||||
|
says — see contradiction C-3. Use whatever port you bind; the document is the same.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd server
|
||||||
|
ASPNETCORE_ENVIRONMENT=Development dotnet run \
|
||||||
|
--project src/API/Baya.Web.Api/Baya.Web.Api.csproj
|
||||||
|
|
||||||
|
# from another shell, once "Now listening" appears:
|
||||||
|
curl -s --noproxy '*' http://127.0.0.1:5002/swagger/v1/swagger.json \
|
||||||
|
-o docs/integration/openapi/swagger.v1.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Two things that cost time the first run:
|
||||||
|
|
||||||
|
- Booting in `Development` **migrates and seeds** against the DB in `appsettings.Development.json` —
|
||||||
|
currently a *remote* SQL Server. First boot takes ~40 s and logs
|
||||||
|
`Demo world already seeded — no-op.` when the world is present.
|
||||||
|
- `--noproxy '*'` matters. With a proxy configured in the environment, `curl` to `localhost` returns
|
||||||
|
**502** rather than the document.
|
||||||
|
|
||||||
|
Then update the table above — date, commit, and endpoint count — in the same change. A snapshot whose
|
||||||
|
provenance is unrecorded is what this chain exists to stop.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
`v1` only. [The old README](../../../dev/contracts/openapi/README.md) claimed the server publishes
|
||||||
|
documents `v1` **and** `v1.1`, but only `v1` has ever been committed and `v1.1` was not fetched during
|
||||||
|
the phase 0 survey. `UNVERIFIED:` check `/swagger/v1.1/swagger.json` when the server is next up
|
||||||
|
(contradiction C-9).
|
||||||
|
|
||||||
|
## The human contract
|
||||||
|
|
||||||
|
The prose half — one file per domain — lands in [`../domains/`](../index.md) in phase 2. **The two must
|
||||||
|
agree**: this JSON is the wire truth, the markdown explains it. When they disagree, the JSON wins and
|
||||||
|
the markdown is wrong.
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,27 @@
|
|||||||
|
# Roadmap — where it goes next
|
||||||
|
|
||||||
|
> **Populated by phase 5 — not yet written.** Phase 5 depends on phase 4: you cannot sequence work
|
||||||
|
> that has not been reconciled into one backlog.
|
||||||
|
|
||||||
|
A **proposal**, not a commitment. The ordering is reasoned and can be overruled; what is not negotiable
|
||||||
|
is that every item traces to a `BL-###` in [status/backlog.md](../status/index.md), so nothing is
|
||||||
|
scheduled that was not first triaged.
|
||||||
|
|
||||||
|
## Planned contents
|
||||||
|
|
||||||
|
| File | Covers |
|
||||||
|
| --- | --- |
|
||||||
|
| `next-up.md` | The next 3–5 units of work, each spec'd enough to start |
|
||||||
|
| `deferred.md` | Recorded, each with the trigger that pulls it forward |
|
||||||
|
| `tech-debt.md` | What must be paid before scale, and what deferring it costs |
|
||||||
|
| `pre-launch.md` | The hard gate before real users touch this |
|
||||||
|
|
||||||
|
## One item already known for `pre-launch.md`
|
||||||
|
|
||||||
|
The repo **contains live credentials on purpose** — a deliberate pre-launch trade for a demo deployment,
|
||||||
|
documented in [root CLAUDE.md §6](../../CLAUDE.md) and [DEPLOY.md](../../DEPLOY.md). Before onboarding
|
||||||
|
real users those values must be rotated and the secret half moved out of git.
|
||||||
|
|
||||||
|
One value is load-bearing and must **never** change: `Seams:FieldEncryption:Key` and `:HashKey` decrypt
|
||||||
|
every encrypted column and derive the `PhoneHash` that every login looks up. Rotating them locks every
|
||||||
|
account out.
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# Rules
|
||||||
|
|
||||||
|
> **Populated by phase 1 — not yet written.**
|
||||||
|
> Until then the rules live where they always have: [root CLAUDE.md](../../CLAUDE.md),
|
||||||
|
> [client/CLAUDE.md](../../client/CLAUDE.md) (161 K), [server/CLAUDE.md](../../server/CLAUDE.md) (75 K),
|
||||||
|
> [server/CONVENTIONS.md](../../server/CONVENTIONS.md), [client/messages/STYLE.md](../../client/messages/STYLE.md),
|
||||||
|
> and the [frontend-designer skill](../../.claude/skills/frontend-designer/SKILL.md).
|
||||||
|
|
||||||
|
What must never be broken, and nothing else.
|
||||||
|
|
||||||
|
**The tiering rule this section exists to enforce:** a `CLAUDE.md` keeps only non-negotiables and
|
||||||
|
pointers — roughly 200 lines. Everything explanatory becomes a reference file here, read on demand.
|
||||||
|
Loading a rule should not cost 40k tokens.
|
||||||
|
|
||||||
|
## Planned contents
|
||||||
|
|
||||||
|
| File | Covers |
|
||||||
|
| --- | --- |
|
||||||
|
| `documentation.md` | The anti-drift convention — `Last verified:` stamps, where a fact belongs, what a doc may claim |
|
||||||
|
| `shared/naming.md` · `shared/git-and-gates.md` · `shared/code-quality.md` | Cross-project: the `Baya*` / `balinyaar-client` split, branch and commit rules, per-project check gates, no dead code |
|
||||||
|
| `client/` (8 files) | structure · theme · components · forms · i18n · services · auth · testing |
|
||||||
|
| `server/` (5 files) | structure · cqrs · persistence · identity · conventions |
|
||||||
|
|
||||||
|
Subdirectories are created by phase 1 along with their first file.
|
||||||
|
|
||||||
|
## Known conflicts to settle first
|
||||||
|
|
||||||
|
- **C-11** — the frontend-designer skill and `client/CLAUDE.md` both claim the design language, with no
|
||||||
|
stated precedence.
|
||||||
|
- **C-12** — the skill stopped at manual-testing iteration 1; the code went on to iteration 2.
|
||||||
|
|
||||||
|
Both are logged in [_plan/open-contradictions.md](../_plan/open-contradictions.md).
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Status — where the project actually is
|
||||||
|
|
||||||
|
> **Populated by phase 4 — not yet written.** Phase 4 owns **149 of the 275 surveyed markdown files**,
|
||||||
|
> by far the largest extraction job in the chain. Until then, open work is spread across five ledgers
|
||||||
|
> that do not reference each other.
|
||||||
|
|
||||||
|
## Planned contents
|
||||||
|
|
||||||
|
| File | Covers |
|
||||||
|
| --- | --- |
|
||||||
|
| `implemented.md` | The overlay: `product/`'s 14 business areas → build state. `product/` itself stays untouched |
|
||||||
|
| `backlog.md` | Every open item as `BL-###`, triaged, each carrying its origin id |
|
||||||
|
| `backlog-closed.md` | Items confirmed done, with what closed them |
|
||||||
|
| `decisions.md` | The distilled decision log from the whole phase chain |
|
||||||
|
|
||||||
|
## The five ledgers phase 4 reconciles
|
||||||
|
|
||||||
|
| Source | Size | Note |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [frontend/requests/for-backend.md](../../dev/shared-working-context/frontend/requests/for-backend.md) | 67 REQs, 104 K | Append-only; dispositions must be re-checked, not copied |
|
||||||
|
| [hardening/issues.md](../../dev/post-phase/hardening/issues.md) | 18 items | **18 of 18 unticked**, last touched 2026-07-17 — while four later chains shipped. Re-verify each against code (**C-10**) |
|
||||||
|
| `reports/*.md` "Follow-ups for later phases" | 53 reports | Every report has one. Confirmed present in all 53 |
|
||||||
|
| `backend/handoff/*.md` | 22 files | Deferrals with pull-triggers |
|
||||||
|
| [product/notes/open-questions.md](../../product/notes/open-questions.md) + [manual-testing/](../../dev/manual-testing/) ×2 | — | Business questions and two raw human feedback notes |
|
||||||
|
|
||||||
|
Plus [mocks-registry.md](../../dev/shared-working-context/reports/mocks-registry.md) (75 K) — the seam-by-seam
|
||||||
|
mock/real status that `implemented.md` needs, and the only file that tracks it.
|
||||||
|
|
||||||
|
## Where decisions come from
|
||||||
|
|
||||||
|
Every `dev/phases/*` prompt shares a fixed structure, and **§5 "Critical rules you must not get wrong"**
|
||||||
|
is the section that states constraints *not visible in the code*. Verified present in all 32 prompts —
|
||||||
|
that is the raw material for `decisions.md`. See [the inventory](../_plan/inventory.md).
|
||||||
Reference in New Issue
Block a user