Skip to content

Commit 08ffae0

Browse files
committed
Document complete architecture and judge flow
1 parent cb4f6ce commit 08ffae0

2 files changed

Lines changed: 92 additions & 2 deletions

File tree

README.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,23 @@ PatternProof turns garment inspiration into a tailor-feasibility-checked, custom
44

55
The central product promise is narrow: the shop and customer approve the same frozen visual and construction decisions before an irreversible cut. The AI preview is supporting evidence, never a fit or construction guarantee.
66

7+
## Judge it in 60 seconds
8+
9+
1. Open the [live Create a Cut Card journey](https://patternproof-nu.vercel.app/create). No account, email, or credential is required.
10+
2. Advance the six visible stages: private intent, YouCam evidence, human veto, revision replay, consent to cut, and privacy exit.
11+
3. Use **Create with my photos** at any time to open a separate, tenant-isolated anonymous workspace for a live consent-bound intake.
12+
4. Inspect the [immutable public Cut Card](https://patternproof-nu.vercel.app/s/demo-olive) and [technical evidence ledger](https://patternproof-nu.vercel.app/proof).
13+
14+
The sample is deterministic and read-only; the private-photo path creates a real isolated workspace and uses live provider jobs. The exact longer judge script is in [JUDGING.md](JUDGING.md).
15+
716
## Release status
817

918
The repository contains the complete private intake, normalization, rendering, optional YouCam evidence chain, feasibility, frozen review, approval, post-approval motion proof, and audited body-photo-erasure paths. The production deployment is [patternproof-nu.vercel.app](https://patternproof-nu.vercel.app). The final hosted acceptance evidence is recorded in [RELEASE-ACCEPTANCE.md](RELEASE-ACCEPTANCE.md).
1019

1120
Current evidence: YouCam T0 and T2 passed; T3 passed 3/3; the application-side T4 quality gate rejects poor live input before provider spend; T5 confirms two units per successful Clothes VTO V3 result; live signed-URL T6 passed; controlled repeated-input T7 produced byte-identical output; the exposed credential was rotated; and the zero-account production journey passed from consent-bound intake through private V3 generation, human feasibility, frozen customer review, approval, immutable owner readback, and explicit draft cleanup on August 14, 2026. This is production acceptance evidence, not a claim of measured customer outcomes; prospective impact validation remains governed by [VALIDATION-PROTOCOL.md](VALIDATION-PROTOCOL.md).
1221

22+
Final release verification: 150/150 automated tests, TypeScript, ESLint, the optimized 20-page Next.js build, HTTP health, and a real Chrome navigation audit all passed. The browser audit exercised the landing page, unified creation entry, all six sample stages, evidence ledger, immutable record, and privacy page at 1440 x 1000 and 390 x 844. It recorded zero console errors and zero horizontal overflow; every next/final action remained above the mobile fold.
23+
1324
Formative problem evidence is documented in [RESEARCH.md](RESEARCH.md): 108 manually screened 1.0–2.0 public tailoring complaints across 41 de-identified businesses and three city samples. It is a purposive negative-review study—not a prevalence estimate, user validation, or proof of product impact—and it explicitly reports the failure categories PatternProof does not solve.
1425

1526
## Product flow
@@ -24,6 +35,26 @@ Formative problem evidence is documented in [RESEARCH.md](RESEARCH.md): 108 manu
2435
8. Approval is one atomic database operation. It verifies the token and digest, locks the revision, records approval evidence, and consumes the token.
2536
9. After approval or archival, the shop can trigger audited body-photo erasure. The agreement snapshot and digest remain as integrity evidence.
2637

38+
```mermaid
39+
flowchart LR
40+
A[Open Create a Cut Card] --> B{Choose a path}
41+
B -->|Explore safely| C[Rights-cleared read-only sample]
42+
B -->|Use my photos| D[Isolated anonymous workspace]
43+
D --> E[Consent and private normalized uploads]
44+
E --> F[Optional Background Removal rescue]
45+
F --> G[Clothes VTO V3 visual evidence]
46+
G --> H[Optional Fabric VTO direction]
47+
H --> I{Tailor feasibility}
48+
I -->|Not feasible| J[Cutting and sharing blocked]
49+
I -->|Feasible| K[Frozen snapshot and SHA-256 proof]
50+
K --> L{Customer decision}
51+
L -->|Request change| M[Traceable next revision]
52+
M --> I
53+
L -->|Approve exact proof| N[Immutable approved Cut Card]
54+
N --> O[Optional five-second motion proof]
55+
N --> P[Audited body-photo erasure]
56+
```
57+
2758
## Architecture and trust boundaries
2859

2960
- Next.js 15 App Router and React 19 provide the application and server routes.
@@ -33,6 +64,61 @@ Formative problem evidence is documented in [RESEARCH.md](RESEARCH.md): 108 manu
3364
- Browsers are untrusted. They never receive the YouCam key or Supabase service-role key.
3465
- Customer-review URLs are unguessable, expiring bearer links rather than public galleries; anyone possessing one can review it. Only SHA-256 token hashes are stored.
3566

67+
```mermaid
68+
flowchart TB
69+
subgraph Client[Untrusted browser]
70+
O[Owner or anonymous guest]
71+
C[Customer bearer-link reviewer]
72+
end
73+
74+
subgraph Vercel[Vercel trust boundary]
75+
UI[Next.js App Router UI]
76+
API[Server routes: auth, origin and size gates]
77+
CRON[Authenticated daily maintenance]
78+
end
79+
80+
subgraph Supabase[Supabase trust boundary]
81+
AUTH[Anonymous or optional magic-link Auth]
82+
DB[(PostgreSQL, RLS and fenced RPCs)]
83+
STORE[(Private brief-images bucket)]
84+
end
85+
86+
subgraph PerfectCorp[Perfect Corp server-to-server boundary]
87+
BG[Background Removal]
88+
VTO[Clothes VTO V3]
89+
FAB[Fabric VTO]
90+
VID[Image-to-Video V2]
91+
end
92+
93+
O --> UI
94+
C --> UI
95+
UI --> API
96+
O --> AUTH
97+
API --> DB
98+
API -->|single-purpose signed grants| STORE
99+
API -->|short-lived signed inputs; server-only key| BG
100+
API -->|short-lived signed inputs; server-only key| VTO
101+
API -->|validated template; server-only key| FAB
102+
API -->|approved image only; server-only key| VID
103+
BG -->|bounded result| API
104+
VTO -->|bounded result| API
105+
FAB -->|bounded result| API
106+
VID -->|bounded result| API
107+
API -->|validate, hash and privately re-host| STORE
108+
CRON --> API
109+
```
110+
111+
### YouCam feature lifecycle
112+
113+
| Feature | Product role | Cost | Integrity boundary |
114+
|---|---|---:|---|
115+
| Background Removal | Optional rescue for a noisy garment reference | 1 unit | Runs before core preview; original and rescued hashes retain distinct provenance. |
116+
| Clothes VTO V3 | Required body-specific visual-intent evidence | 2 units | The result is privately re-hosted and becomes the visual key in the frozen agreement. |
117+
| Fabric VTO | Optional provider-defined visual direction | 2 units | Runs before human review; never claims uploaded-swatch fidelity, colorimetry, or drape. |
118+
| Image-to-Video V2 | Optional fixed five-second post-approval presentation proof | 5 units | Runs only after approval and never enters or changes the construction checksum. |
119+
120+
A complete four-feature chain is exactly 10 internally accounted units. Every provider call is server-side, idempotently admitted, bounded by a global circuit breaker, and never automatically retried after an ambiguous vendor POST.
121+
36122
See [SECURITY.md](SECURITY.md) for the integrity model and incident response.
37123

38124
## Local development
@@ -249,3 +335,6 @@ The user-facing notice is at `/privacy` and is linked from every page. It descri
249335
- `D1-RESULTS.md` — live YouCam validation record
250336
- `SECURITY.md` — security invariants and incident response
251337
- `ASSETS.md` — asset provenance record
338+
- `RELEASE-ACCEPTANCE.md` — final production, isolation, sponsor-chain, and browser acceptance matrix
339+
- `RESEARCH.md` — bounded formative problem research and limitations
340+
- `submission/screenshots/` — five final production screenshots with hashes recorded in `ASSETS.md`

RELEASE-ACCEPTANCE.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ This is a public-safe evidence record. It intentionally excludes cookies, user a
1212
| Boundary | Production exercise | Result | Public-safe evidence |
1313
|---|---|---:|---|
1414
| Dependencies | Clean locked install; complete and production-only audits at low threshold | PASS | 0 known vulnerabilities |
15-
| Code quality | TypeScript, 149 Node tests, ESLint | PASS | 149/149 |
16-
| Production build | Next.js optimized build using locked dependencies | PASS | 19/19 static pages generated; all server routes compiled |
15+
| Code quality | TypeScript, 150 Node tests, ESLint | PASS | 150/150 |
16+
| Production build | Next.js optimized build using locked dependencies | PASS | 20/20 static pages generated; all server routes compiled |
1717
| Readiness | GET /api/health after migration 024 and matching deploy | PASS | HTTP 200, {status: ok} |
1818
| Public judge path | Landing, unified /create, evidence ledger, privacy page, immutable sample | PASS | HTTP 200 over HTTPS; no credentials required |
19+
| Browser judge simulation | Desktop 1440 x 1000 and mobile 390 x 844; all six sample stages clicked | PASS | zero console errors; zero horizontal overflow; every next/final action remained above the mobile fold |
1920
| Demo isolation | Exact demo API token, lookalike token, demo approval mutation | PASS | exact token 200; lookalike 404; mutation 403 |
2021
| Guest isolation | Two fresh anonymous workspaces; cross-tenant brief read and requirement write | PASS | both cross-tenant attempts returned 404 |
2122
| Private intake | Consent-bound reservation, signed private uploads, normalization/finalization | PASS | every stage returned 2xx |

0 commit comments

Comments
 (0)