diff --git a/evidence/design/native-directions/tauri-renovation.md b/evidence/design/native-directions/tauri-renovation.md new file mode 100644 index 00000000..2a01add3 --- /dev/null +++ b/evidence/design/native-directions/tauri-renovation.md @@ -0,0 +1,7 @@ +# Direction: Tauri and shadcn renovation + +The current Tauri shell could retain all React features while receiving a full +Evidence Bench redesign. It remains the operational fallback during migration, +but was not selected as the destination because the owner prioritized macOS, +performance, native interaction depth, and visual quality over portability or +schedule. diff --git a/evidence/design/native-directions/verification-chamber.md b/evidence/design/native-directions/verification-chamber.md new file mode 100644 index 00000000..14cbef74 --- /dev/null +++ b/evidence/design/native-directions/verification-chamber.md @@ -0,0 +1,12 @@ +# Direction: Verification Chamber + +The setup state uses a near-black, top-navigation composition with one decisive +question, exact repository/change/task inputs, honest pre-run metrics, and a +persistent proof sequence. It removes the generic sidebar and card stack so the +verification decision—not application chrome—owns the screen. + +Selected as the production direction because it has the clearest hierarchy, +the strongest macOS-scale rhythm, and a product-specific signature that cannot +be mistaken for a generic dashboard. + +Rendered evidence: `artifacts/design/native-probes/chamber.png`. diff --git a/evidence/design/native-packaged-performance-dark.png b/evidence/design/native-packaged-performance-dark.png new file mode 100644 index 00000000..3a015580 Binary files /dev/null and b/evidence/design/native-packaged-performance-dark.png differ diff --git a/evidence/design/native-usage-windows-dark.png b/evidence/design/native-usage-windows-dark.png new file mode 100644 index 00000000..2b059e8d Binary files /dev/null and b/evidence/design/native-usage-windows-dark.png differ diff --git a/evidence/design/probes/review-overhaul-directions.html b/evidence/design/probes/review-overhaul-directions.html new file mode 100644 index 00000000..348a3635 --- /dev/null +++ b/evidence/design/probes/review-overhaul-directions.html @@ -0,0 +1,326 @@ + + + + + + CodeVetter review overhaul directions + + + +
+ + +
+
+
+
+ ← Back +
review-warm-app/tmp/review-warm-app
+ +
Change reviewmain...feature · claude
+ +
+
100review score
+
1finding
+
0verified
+
+
+
Review context ready1 file inspectedComplete coverage · CodeVetter MCP 0 calls · internal
+ +
+
+ Hold +
One finding needs verification

The guard accepts an invalid total; confirm the behavior before acting.

+
+
+
+
+
portfolio.tsx typescript · line 12
+
+
1export function resolvePortfolioState(input: PortfolioInput) {
+
2  const account = input.account;
+
3  const holdings = input.holdings ?? [];
+
4
+
5  if (!account) {
+
6    return { kind: 'signed_out' as const };
+
7  }
+
8
+
9  const total = holdings.reduce((sum, item) => sum + item.value, 0);
+
10  const hasPositions = holdings.length > 0;
+
11
+
12  if (total >= 0) {
+
13    return { kind: 'ready' as const, total, hasPositions };
+
14  }
+
+ +
+
+
Findings 1Evidence 0/1HistoryLimitations
+
MediumGuard invalid stateportfolio.tsx:12Unchecked
+
+
+
+ +
+
+
+
Review decision · main...feature
+
Hold

The change is not ready until one invalid-state finding is verified.

+

The model review found a guard that can classify an empty portfolio as ready. CodeVetter has source context, but no executable receipt yet. Treat the finding as a lead—not proof.

+
+

What supports this decision?

+
01
Source-qualified finding

The condition at src/portfolio.tsx:12 accepts zero, while the fallback names an invalid total.

Observed
+
02
Runtime evidence is missing

No test, reproduction, or browser receipt currently establishes the user-visible behavior.

Unverified
+
03
Recommended next action

Run the focused invalid-total scenario, then accept, dismiss, or queue the finding from the result.

Action
+
+
src/portfolio.tsx line 12
const hasPositions = holdings.length > 0;
+
+if (total >= 0) {
+  return { kind: 'ready' as const, total, hasPositions };
+}
+
+return { kind: 'error' as const, reason: 'invalid_total' };
+
+ +
+
+ +
+
+ +
+
MediumModel finding · not proofsrc/portfolio.tsx:12
+

Guard invalid state

+

The condition allows an empty portfolio to become ready. The code should return an error unless the total is positive.

+

Why this matters

A user with no valid portfolio value can enter the ready state, so downstream UI may display an actionable portfolio with no positive holdings.

+

Suggested change

Require total > 0, then keep the existing invalid_total fallback for zero and negative totals.

+

Verification

Reproduce with total = 0Required
Confirm existing positive-total behaviorRequired
Attach command and result receiptRequired
+
+
+ +
+
+
+
+
+ + + diff --git a/evidence/design/probes/review-overhaul-evidence-brief.png b/evidence/design/probes/review-overhaul-evidence-brief.png new file mode 100644 index 00000000..97158e4c Binary files /dev/null and b/evidence/design/probes/review-overhaul-evidence-brief.png differ diff --git a/evidence/design/probes/review-overhaul-inline-review.png b/evidence/design/probes/review-overhaul-inline-review.png new file mode 100644 index 00000000..bf423e90 Binary files /dev/null and b/evidence/design/probes/review-overhaul-inline-review.png differ diff --git a/evidence/design/probes/review-overhaul-triage-desk.png b/evidence/design/probes/review-overhaul-triage-desk.png new file mode 100644 index 00000000..60bb0d93 Binary files /dev/null and b/evidence/design/probes/review-overhaul-triage-desk.png differ diff --git a/evidence/design/product-surfaces-after-1440.jpg b/evidence/design/product-surfaces-after-1440.jpg new file mode 100644 index 00000000..f23a12cc Binary files /dev/null and b/evidence/design/product-surfaces-after-1440.jpg differ diff --git a/evidence/design/product-surfaces-after-390.jpg b/evidence/design/product-surfaces-after-390.jpg new file mode 100644 index 00000000..a21f8063 Binary files /dev/null and b/evidence/design/product-surfaces-after-390.jpg differ diff --git a/evidence/design/product-surfaces-after-768.jpg b/evidence/design/product-surfaces-after-768.jpg new file mode 100644 index 00000000..25d171c5 Binary files /dev/null and b/evidence/design/product-surfaces-after-768.jpg differ diff --git a/evidence/design/product-surfaces-before-1440.jpg b/evidence/design/product-surfaces-before-1440.jpg new file mode 100644 index 00000000..7b8c44b9 Binary files /dev/null and b/evidence/design/product-surfaces-before-1440.jpg differ diff --git a/evidence/design/product-surfaces-scope-1440.png b/evidence/design/product-surfaces-scope-1440.png new file mode 100644 index 00000000..d42a3dd2 Binary files /dev/null and b/evidence/design/product-surfaces-scope-1440.png differ diff --git a/evidence/design/product-surfaces-scope-390.png b/evidence/design/product-surfaces-scope-390.png new file mode 100644 index 00000000..4fe578eb Binary files /dev/null and b/evidence/design/product-surfaces-scope-390.png differ diff --git a/evidence/design/product-surfaces-scope-768.png b/evidence/design/product-surfaces-scope-768.png new file mode 100644 index 00000000..5fd672d1 Binary files /dev/null and b/evidence/design/product-surfaces-scope-768.png differ diff --git a/evidence/design/review-agent-readiness-after-1440.png b/evidence/design/review-agent-readiness-after-1440.png new file mode 100644 index 00000000..faa2e1b0 Binary files /dev/null and b/evidence/design/review-agent-readiness-after-1440.png differ diff --git a/evidence/design/review-agent-readiness-after-390.png b/evidence/design/review-agent-readiness-after-390.png new file mode 100644 index 00000000..c76ec66e Binary files /dev/null and b/evidence/design/review-agent-readiness-after-390.png differ diff --git a/evidence/design/review-agent-readiness-after-768.png b/evidence/design/review-agent-readiness-after-768.png new file mode 100644 index 00000000..b8d4fa4c Binary files /dev/null and b/evidence/design/review-agent-readiness-after-768.png differ diff --git a/evidence/design/review-desktop-after-1440.png b/evidence/design/review-desktop-after-1440.png new file mode 100644 index 00000000..96a16be9 Binary files /dev/null and b/evidence/design/review-desktop-after-1440.png differ diff --git a/evidence/design/review-desktop-final-1440.png b/evidence/design/review-desktop-final-1440.png new file mode 100644 index 00000000..26e437ac Binary files /dev/null and b/evidence/design/review-desktop-final-1440.png differ diff --git a/evidence/design/review-inline-overhaul-after-1280.png b/evidence/design/review-inline-overhaul-after-1280.png new file mode 100644 index 00000000..b7f57fac Binary files /dev/null and b/evidence/design/review-inline-overhaul-after-1280.png differ diff --git a/evidence/design/review-inline-overhaul-after-1440.png b/evidence/design/review-inline-overhaul-after-1440.png new file mode 100644 index 00000000..51b7b815 Binary files /dev/null and b/evidence/design/review-inline-overhaul-after-1440.png differ diff --git a/evidence/design/review-inline-overhaul-after-900.png b/evidence/design/review-inline-overhaul-after-900.png new file mode 100644 index 00000000..382bd9a6 Binary files /dev/null and b/evidence/design/review-inline-overhaul-after-900.png differ diff --git a/evidence/design/review-inline-overhaul-audit-390.png b/evidence/design/review-inline-overhaul-audit-390.png new file mode 100644 index 00000000..08f2ca46 Binary files /dev/null and b/evidence/design/review-inline-overhaul-audit-390.png differ diff --git a/evidence/design/review-inline-overhaul-audit-768.png b/evidence/design/review-inline-overhaul-audit-768.png new file mode 100644 index 00000000..e87beffe Binary files /dev/null and b/evidence/design/review-inline-overhaul-audit-768.png differ diff --git a/evidence/design/review-inspector-readable-after-1440.png b/evidence/design/review-inspector-readable-after-1440.png new file mode 100644 index 00000000..0335b583 Binary files /dev/null and b/evidence/design/review-inspector-readable-after-1440.png differ diff --git a/evidence/design/review-navigation-after-1440.png b/evidence/design/review-navigation-after-1440.png new file mode 100644 index 00000000..6e6659ab Binary files /dev/null and b/evidence/design/review-navigation-after-1440.png differ diff --git a/evidence/design/review-result-polish-after-1440.png b/evidence/design/review-result-polish-after-1440.png new file mode 100644 index 00000000..6e4ecbf2 Binary files /dev/null and b/evidence/design/review-result-polish-after-1440.png differ diff --git a/evidence/design/review-result-polish-after-390.png b/evidence/design/review-result-polish-after-390.png new file mode 100644 index 00000000..aaafc5e8 Binary files /dev/null and b/evidence/design/review-result-polish-after-390.png differ diff --git a/evidence/design/review-result-polish-after-768.png b/evidence/design/review-result-polish-after-768.png new file mode 100644 index 00000000..3707fedb Binary files /dev/null and b/evidence/design/review-result-polish-after-768.png differ diff --git a/evidence/design/reviews/crash-recovery.json b/evidence/design/reviews/crash-recovery.json new file mode 100644 index 00000000..351c88a9 --- /dev/null +++ b/evidence/design/reviews/crash-recovery.json @@ -0,0 +1,59 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "desktop shell crash recovery and evidence workflow", + "mode": "preserve", + "register": "product", + "context": { + "product": "PRODUCT.md", + "design": "DESIGN.md" + }, + "direction": { + "references": [], + "probes": [], + "selected": "existing-design", + "approval": "not-required", + "before": "artifacts/design/crash-recovery-before-1440.png" + }, + "evidence": { + "screenshots": [ + { + "width": 390, + "path": "artifacts/design/crash-recovery-final-390.jpg" + }, + { + "width": 768, + "path": "artifacts/design/crash-recovery-final-768.jpg" + }, + { + "width": 1440, + "path": "artifacts/design/crash-recovery-final-1440.jpg" + } + ], + "projectCheck": { + "command": "cd apps/desktop && pnpm exec tsc --noEmit && node --import tsx --test src/lib/ui-incident.test.ts && playwright test tests/e2e/visual-system.spec.ts --grep 'renders a local-only recovery surface'", + "status": "pass" + }, + "critique": { + "score": 35, + "maximum": 40 + }, + "audit": { + "score": 19, + "maximum": 20 + }, + "unresolved": { + "p0": 0, + "p1": 0 + }, + "detector": { + "posture": "advisory", + "findings": [] + } + }, + "ownerFeedback": { + "decision": "keep", + "note": "Owner approved the final crash-recovery design with 'go for it'." + } +} diff --git a/evidence/design/reviews/desktop-navigation-clarity.json b/evidence/design/reviews/desktop-navigation-clarity.json new file mode 100644 index 00000000..700f6be5 --- /dev/null +++ b/evidence/design/reviews/desktop-navigation-clarity.json @@ -0,0 +1,51 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "desktop tool navigation and command search", + "mode": "preserve", + "register": "product", + "context": { + "product": "PRODUCT.md", + "design": "DESIGN.md" + }, + "direction": { + "references": [], + "probes": [], + "selected": "existing-design-distilled", + "approval": "not-required", + "before": "artifacts/design/review-desktop-final-1440.png" + }, + "evidence": { + "screenshots": [ + { + "width": 1440, + "path": "artifacts/design/review-navigation-after-1440.png" + } + ], + "projectCheck": { + "command": "cd apps/desktop && pnpm exec tsc --noEmit && pnpm exec biome check src/App.tsx src/components/sidebar.tsx tests/e2e/smoke.spec.ts tests/e2e/visual-system.spec.ts tests/e2e/review-warm-evidence.spec.ts && pnpm exec playwright test focused navigation checks and review-warm-evidence.spec.ts", + "status": "pass" + }, + "critique": { + "score": 32, + "maximum": 40 + }, + "audit": { + "score": 18, + "maximum": 20 + }, + "unresolved": { + "p0": 0, + "p1": 0 + }, + "detector": { + "posture": "advisory", + "findings": [] + } + }, + "ownerFeedback": { + "decision": "keep", + "note": "Owner confirmed the left sidebar direction and asked that the next pass focus only on review-inspector readability." + } +} diff --git a/evidence/design/reviews/focus-desktop-product-surfaces.json b/evidence/design/reviews/focus-desktop-product-surfaces.json new file mode 100644 index 00000000..3ca05ad4 --- /dev/null +++ b/evidence/design/reviews/focus-desktop-product-surfaces.json @@ -0,0 +1,59 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "five-surface desktop shell and Performance workbench", + "mode": "preserve", + "register": "product", + "context": { + "product": "PRODUCT.md", + "design": "DESIGN.md" + }, + "direction": { + "references": [], + "probes": [], + "selected": "existing-design", + "approval": "not-required", + "before": "artifacts/design/product-surfaces-before-1440.jpg" + }, + "evidence": { + "screenshots": [ + { + "width": 390, + "path": "artifacts/design/product-surfaces-after-390.jpg" + }, + { + "width": 768, + "path": "artifacts/design/product-surfaces-after-768.jpg" + }, + { + "width": 1440, + "path": "artifacts/design/product-surfaces-after-1440.jpg" + } + ], + "projectCheck": { + "command": "pnpm lint; desktop tsc --noEmit; focused unit/Rust tests; vite build; bundle, complexity, cycles, duplication, dependency, docs, OpenSpec, diff, and in-app browser checks", + "status": "pass" + }, + "critique": { + "score": 35, + "maximum": 40 + }, + "audit": { + "score": 19, + "maximum": 20 + }, + "unresolved": { + "p0": 0, + "p1": 0 + }, + "detector": { + "posture": "advisory", + "findings": [] + } + }, + "ownerFeedback": { + "decision": "pending", + "note": "Owner approved implementation; final rendered-surface feedback remains pending." + } +} diff --git a/evidence/design/reviews/landing-page.json b/evidence/design/reviews/landing-page.json new file mode 100644 index 00000000..e35e8f71 --- /dev/null +++ b/evidence/design/reviews/landing-page.json @@ -0,0 +1,134 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "CodeVetter execution-backed verification landing page", + "surfaceMode": "persuade", + "mode": "overhaul", + "register": "product", + "context": { + "product": "PRODUCT.md", + "design": "DESIGN.md" + }, + "direction": { + "references": [ + "CodeVetter desktop review workbench", + "repository-tracked verification receipts", + "public synthetic benchmark and scorer" + ], + "probes": [ + { + "id": "initial-candidate", + "path": "artifacts/design/landing-audit/candidate-1440.png" + }, + { + "id": "stable-document-render", + "path": "artifacts/design/landing-audit/final-1440.png" + }, + { + "id": "product-proof-revision", + "path": "artifacts/design/landing-audit/final-p1-1440.png" + } + ], + "selected": "product-proof-revision", + "approval": "delegated", + "before": "artifacts/design/landing-audit/candidate-1440.png", + "library": { + "strategy": "upstream-first", + "primary": "existing-project-system", + "sources": [], + "runtime": "existing", + "customReplacement": { + "used": false, + "authorization": "not-required", + "reason": "" + } + }, + "contract": { + "purpose": "CodeVetter verifies whether a coding agent completed the requested task by binding the exact change to executable checks, retained evidence, explicit limitations, and a measurable verdict.", + "purposeSource": "Site Health dossier, PRODUCT.md, current CLI contract, and v1.11.0 release artifacts", + "canonicalPurpose": "Execution-backed verification and evaluation for coding-agent changes.", + "purposeAlignment": "match", + "driftNote": "", + "audience": "Engineers and teams supervising, evaluating, or accepting coding-agent changes.", + "job": "Understand the verification boundary, inspect real product and receipt evidence, run the bundled CLI against an exact repository change, or install the current local desktop workbench.", + "thesis": "A review finding is a hypothesis; only task-relevant execution evidence can produce a pass, fail, or unverified verdict.", + "system": "A dark verification instrument using the established CodeVetter tokens, evidence typography, bounded cyan accents, exact CLI commands, real workbench capture, and responsive document flow.", + "signature": "The task-change-check-evidence-limit-verdict chain connects an illustrative receipt anatomy to an actual bundled CLI invocation, real tracked receipt, and current desktop workbench.", + "risk": "The product could be mistaken for a hosted generic AI reviewer, so the page explicitly distinguishes optional provider analysis from local execution evidence and limits every availability and benchmark claim." + } + }, + "evidence": { + "screenshots": [ + { + "width": 390, + "path": "artifacts/design/landing-audit/final-p1-390.png" + }, + { + "width": 768, + "path": "artifacts/design/landing-audit/final-p1-768.png" + }, + { + "width": 1440, + "path": "artifacts/design/landing-audit/final-p1-1440.png" + } + ], + "projectCheck": { + "command": "cd apps/landing-page-astro && pnpm build && node scripts/verify-agent-surfaces.mjs dist; Chromium responsive/footer/Axe acceptance against local Wrangler worker", + "status": "pass" + }, + "critique": { + "score": 36, + "maximum": 40 + }, + "audit": { + "score": 19, + "maximum": 20 + }, + "unresolved": { + "p0": 0, + "p1": 0 + }, + "detector": { + "posture": "advisory", + "findings": [] + }, + "comprehension": { + "status": "pass", + "reviewer": "independent strict P1 source and responsive screenshot review", + "answers": { + "product": "CodeVetter is an execution-backed verification and evaluation system for coding-agent changes.", + "audience": "Engineers and teams that need reproducible acceptance evidence before trusting or shipping an agent result.", + "value": "It replaces plausible completion claims with an inspectable pass, fail, or unverified verdict.", + "mechanism": "It binds the requested task and exact change to repository-owned checks, evidence, provenance, and explicit limitations.", + "proof": "The page includes a supported v1.11 CLI invocation, a real immutable verification receipt, the current desktop workbench, and a bounded public benchmark.", + "nextAction": "Run the bundled verifier against a repository change or install the current Apple-silicon desktop release." + }, + "purposeScore": { + "product": 25, + "audience": 15, + "value": 15, + "mechanism": 15, + "proof": 13, + "nextAction": 13, + "total": 96 + }, + "mismatches": [] + }, + "performance": { + "report": ".fleet/evidence/landing-audit/performance.html", + "weightedLcpMs": 514, + "cls": 0, + "tbtMs": 0 + }, + "visualQuality": { + "priority": "P1", + "score": 91, + "minimum": 90 + } + }, + "ownerFeedback": { + "decision": "delegated", + "note": "The owner delegated the Fleet landing-page overhaul and explicitly required P1 projects to meet the highest quality tier without repeated feedback loops." + } +} diff --git a/evidence/design/reviews/local-review-test-performance-check.json b/evidence/design/reviews/local-review-test-performance-check.json new file mode 100644 index 00000000..0dc9bb9d --- /dev/null +++ b/evidence/design/reviews/local-review-test-performance-check.json @@ -0,0 +1,32 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "Local review, test, and performance check in Review setup", + "mode": "preserve", + "register": "product", + "context": { "product": "PRODUCT.md", "design": "DESIGN.md" }, + "direction": { + "references": [], + "probes": [], + "selected": "existing-design", + "approval": "not-required", + "before": "artifacts/design/trex-before-1440.png" + }, + "evidence": { + "screenshots": [ + { "width": 390, "path": "artifacts/design/review-agent-readiness-after-390.png" }, + { "width": 768, "path": "artifacts/design/review-agent-readiness-after-768.png" }, + { "width": 1440, "path": "artifacts/design/review-agent-readiness-after-1440.png" } + ], + "projectCheck": { "command": "cd apps/desktop && pnpm exec tsc --noEmit", "status": "pass" }, + "critique": { "score": 38, "maximum": 40 }, + "audit": { "score": 18, "maximum": 20 }, + "unresolved": { "p0": 0, "p1": 0 }, + "detector": { "posture": "advisory", "findings": [] } + }, + "ownerFeedback": { + "decision": "delegated", + "note": "Owner approved the exact bounded flow and asked for no extra feature or optimization work; the preserve-lane implementation follows the existing workbench language." + } +} diff --git a/evidence/design/reviews/review-inspector-readability.json b/evidence/design/reviews/review-inspector-readability.json new file mode 100644 index 00000000..7ad6db1c --- /dev/null +++ b/evidence/design/reviews/review-inspector-readability.json @@ -0,0 +1,51 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "desktop review inspector readability", + "mode": "preserve", + "register": "product", + "context": { + "product": "PRODUCT.md", + "design": "DESIGN.md" + }, + "direction": { + "references": [], + "probes": [], + "selected": "existing-design-typeset", + "approval": "not-required", + "before": "artifacts/design/review-navigation-after-1440.png" + }, + "evidence": { + "screenshots": [ + { + "width": 1440, + "path": "artifacts/design/review-inspector-readable-after-1440.png" + } + ], + "projectCheck": { + "command": "cd apps/desktop && pnpm exec tsc --noEmit && pnpm exec biome check src/pages/QuickReview.tsx src/components/quick-review/VerificationSummaryPanel.tsx src/components/quick-review/FindingsListPanel.tsx tests/e2e/review-warm-evidence.spec.ts && pnpm exec playwright test tests/e2e/review-warm-evidence.spec.ts --workers=1", + "status": "pass" + }, + "critique": { + "score": 35, + "maximum": 40 + }, + "audit": { + "score": 18, + "maximum": 20 + }, + "unresolved": { + "p0": 0, + "p1": 0 + }, + "detector": { + "posture": "advisory", + "findings": [] + } + }, + "ownerFeedback": { + "decision": "delegated", + "note": "Owner delegated closure of the reviewed Fleet work; preserve the verified readability pass and its evidence." + } +} diff --git a/evidence/design/reviews/review-result-polish.json b/evidence/design/reviews/review-result-polish.json new file mode 100644 index 00000000..d0b0f8d5 --- /dev/null +++ b/evidence/design/reviews/review-result-polish.json @@ -0,0 +1,70 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "Review result workbench polish", + "mode": "preserve", + "register": "product", + "context": { + "product": "PRODUCT.md", + "design": "DESIGN.md" + }, + "direction": { + "references": [], + "probes": [], + "selected": "existing-design", + "approval": "not-required", + "before": "artifacts/reviews/pr173-codevetter-review.png" + }, + "evidence": { + "screenshots": [ + { + "width": 390, + "path": "artifacts/design/review-result-polish-after-390.png" + }, + { + "width": 768, + "path": "artifacts/design/review-result-polish-after-768.png" + }, + { + "width": 1440, + "path": "artifacts/design/review-result-polish-after-1440.png" + } + ], + "projectCheck": { + "command": "cd apps/desktop && pnpm exec tsc --noEmit && pnpm exec biome check src/pages/QuickReview.tsx src/components/quick-review/ReviewEditorPanel.tsx src/components/quick-review/VerificationSummaryPanel.tsx", + "status": "pass" + }, + "critique": { + "score": 35, + "maximum": 40 + }, + "audit": { + "score": 16, + "maximum": 20 + }, + "unresolved": { + "p0": 0, + "p1": 0 + }, + "detector": { + "posture": "advisory", + "findings": [ + { + "rule": "gray-on-color", + "status": "false-positive", + "note": "Slate text appears on a ten-percent red tint over the ink canvas and retains high contrast." + }, + { + "rule": "gray-on-color", + "status": "fixed", + "note": "The source-unavailable message now uses AA-passing text and includes recovery guidance." + } + ] + } + }, + "ownerFeedback": { + "decision": "delegated", + "note": "Owner delegated closure of the reviewed Fleet work; preserve the verified review-result polish and its evidence." + } +} diff --git a/evidence/design/reviews/review-workbench-overhaul.json b/evidence/design/reviews/review-workbench-overhaul.json new file mode 100644 index 00000000..d952e8e5 --- /dev/null +++ b/evidence/design/reviews/review-workbench-overhaul.json @@ -0,0 +1,56 @@ +{ + "$schema": "fleet.design-review.v1", + "version": 1, + "project": "codevetter", + "target": "desktop review workbench overhaul", + "mode": "overhaul", + "register": "product", + "context": { "product": "PRODUCT.md", "design": "DESIGN.md" }, + "direction": { + "references": ["GitHub pull request review", "Sentry issue details", "VS Code workbench"], + "probes": [ + { + "id": "inline-review", + "path": "artifacts/design/probes/review-overhaul-inline-review.png" + }, + { + "id": "evidence-brief", + "path": "artifacts/design/probes/review-overhaul-evidence-brief.png" + }, + { + "id": "triage-desk", + "path": "artifacts/design/probes/review-overhaul-triage-desk.png" + } + ], + "selected": "inline-review", + "approval": "approved", + "before": "artifacts/design/review-inspector-readable-after-1440.png" + }, + "evidence": { + "screenshots": [ + { + "width": 390, + "path": "artifacts/design/review-inline-overhaul-audit-390.png" + }, + { + "width": 768, + "path": "artifacts/design/review-inline-overhaul-audit-768.png" + }, + { "width": 900, "path": "artifacts/design/review-inline-overhaul-after-900.png" }, + { "width": 1280, "path": "artifacts/design/review-inline-overhaul-after-1280.png" }, + { "width": 1440, "path": "artifacts/design/review-inline-overhaul-after-1440.png" } + ], + "projectCheck": { + "command": "cd apps/desktop && pnpm exec biome check src/pages/QuickReview.tsx src/components/quick-review/InlineReviewWorkbench.tsx tests/e2e/review-warm-evidence.spec.ts && pnpm exec tsc --noEmit && PLAYWRIGHT_EXECUTABLE_PATH='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' pnpm exec playwright test tests/e2e/review-warm-evidence.spec.ts", + "status": "pass" + }, + "critique": { "score": 32, "maximum": 40 }, + "audit": { "score": 16, "maximum": 20 }, + "unresolved": { "p0": 0, "p1": 0 }, + "detector": { "posture": "advisory", "findings": [] } + }, + "ownerFeedback": { + "decision": "keep", + "note": "Owner accepted the finished Inline Review direction: Okay I can live with this." + } +}