@tinkcarlos/skillora 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/.temp-skill-index.md +245 -0
- package/.claude/skills/SKILL.md +264 -0
- package/.claude/skills/api-scaffolding/SKILL.md +431 -0
- package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
- package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
- package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
- package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
- package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
- package/.claude/skills/api-testing-observability/SKILL.md +583 -0
- package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
- package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
- package/.claude/skills/brainstorming/SKILL.md +283 -0
- package/.claude/skills/bug-fixing/SKILL.md +382 -0
- package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
- package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
- package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
- package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
- package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
- package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
- package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
- package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
- package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
- package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
- package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
- package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
- package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
- package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
- package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
- package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
- package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
- package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
- package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
- package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
- package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
- package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
- package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
- package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
- package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
- package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
- package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
- package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
- package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
- package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
- package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
- package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
- package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
- package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
- package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
- package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
- package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
- package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
- package/.claude/skills/code-review/SKILL.md +535 -0
- package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
- package/.claude/skills/code-review/references/automated-analysis.md +456 -0
- package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
- package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
- package/.claude/skills/code-review/references/backend-review.md +868 -0
- package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
- package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
- package/.claude/skills/code-review/references/common-patterns.md +321 -0
- package/.claude/skills/code-review/references/configuration-review.md +425 -0
- package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
- package/.claude/skills/code-review/references/database-review.md +298 -0
- package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
- package/.claude/skills/code-review/references/external-standards.md +51 -0
- package/.claude/skills/code-review/references/feature-review.md +329 -0
- package/.claude/skills/code-review/references/file-review-template.md +326 -0
- package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
- package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
- package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
- package/.claude/skills/code-review/references/frontend-review.md +783 -0
- package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
- package/.claude/skills/code-review/references/fullstack-review.md +477 -0
- package/.claude/skills/code-review/references/functional-completeness.md +386 -0
- package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
- package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
- package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
- package/.claude/skills/code-review/references/iteration-review.md +264 -0
- package/.claude/skills/code-review/references/job-review.md +335 -0
- package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
- package/.claude/skills/code-review/references/logic-completeness.md +535 -0
- package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
- package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
- package/.claude/skills/code-review/references/new-project-review.md +226 -0
- package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
- package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
- package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
- package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
- package/.claude/skills/code-review/references/python-patterns.md +494 -0
- package/.claude/skills/code-review/references/rca-techniques.md +362 -0
- package/.claude/skills/code-review/references/report-template.md +430 -0
- package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
- package/.claude/skills/code-review/references/review-dimensions.md +311 -0
- package/.claude/skills/code-review/references/review-guide.md +202 -0
- package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
- package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
- package/.claude/skills/code-review/references/review-record-template.md +195 -0
- package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
- package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
- package/.claude/skills/containerization/SKILL.md +313 -0
- package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
- package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
- package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
- package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
- package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
- package/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/.claude/skills/frontend-design/SKILL.md +587 -0
- package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
- package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
- package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
- package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
- package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
- package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
- package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
- package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
- package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
- package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
- package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
- package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
- package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
- package/.claude/skills/fullstack-developer/SKILL.md +512 -0
- package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
- package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
- package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
- package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
- package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
- package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
- package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
- package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
- package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
- package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
- package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
- package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
- package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
- package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
- package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
- package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
- package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
- package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
- package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
- package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
- package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
- package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
- package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
- package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
- package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
- package/.claude/skills/performance-optimization/SKILL.md +250 -0
- package/.claude/skills/product-requirements/SKILL.md +357 -0
- package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
- package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
- package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
- package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
- package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
- package/.claude/skills/product-requirements/references/external-standards.md +62 -0
- package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
- package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
- package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
- package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
- package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
- package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
- package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
- package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
- package/.claude/skills/react-best-practices/SKILL.md +198 -0
- package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
- package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
- package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
- package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
- package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
- package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
- package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
- package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
- package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
- package/.claude/skills/security-audit/SKILL.md +226 -0
- package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
- package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
- package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
- package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
- package/.claude/skills/shared-references/skill-call-graph.md +230 -0
- package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
- package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
- package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
- package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
- package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
- package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
- package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
- package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
- package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
- package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
- package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
- package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
- package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
- package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
- package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
- package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
- package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
- package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
- package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
- package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
- package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
- package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
- package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
- package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
- package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
- package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
- package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
- package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
- package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
- package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
- package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
- package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
- package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
- package/.claude/skills/test-driven-development/SKILL.md +246 -0
- package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
- package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
- package/.claude/skills/using-skillstack/SKILL.md +127 -0
- package/.claude/skills/vercel-deploy/SKILL.md +166 -0
- package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
- package/.claude/skills/verification-before-completion/SKILL.md +305 -0
- package/.claude/skills/writing-plans/SKILL.md +259 -0
- package/README.md +69 -0
- package/bin/cli.js +468 -0
- package/lib/init.js +333 -0
- package/package.json +29 -0
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
# Functional Completeness Verification Guide
|
|
2
|
+
|
|
3
|
+
> **CRITICAL LESSON**: Code quality review ≠ Functional completeness verification. You MUST validate complete user flows from the end-user perspective!
|
|
4
|
+
|
|
5
|
+
## 🔴 2024-12 Case Study: Why This Guide is Critical
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Project: Agent Desktop Chat Application
|
|
9
|
+
Bug Report: "401 Not authenticated" on all API calls
|
|
10
|
+
|
|
11
|
+
Investigation Timeline:
|
|
12
|
+
1. Code review started - reviewed chat service, API routes, auth endpoints
|
|
13
|
+
2. Backend auth API was complete and working ✅
|
|
14
|
+
3. Frontend Login route existed at /login ✅
|
|
15
|
+
4. Frontend had token retrieval code: localStorage.getItem('token') ✅
|
|
16
|
+
|
|
17
|
+
MISSED ISSUES (Found only after user report):
|
|
18
|
+
5. Login component was: `const Login = () => <h1>登录页面</h1>` ❌
|
|
19
|
+
- No form, no inputs, no submit handler
|
|
20
|
+
- No API call to POST /auth/login
|
|
21
|
+
- No token storage (localStorage.setItem was never called!)
|
|
22
|
+
6. No route guards - user could access /chat directly without login
|
|
23
|
+
7. Request body mismatch: frontend sent {message}, backend expected {content}
|
|
24
|
+
|
|
25
|
+
Root Cause: Code review focused on "code quality" not "does it work?"
|
|
26
|
+
Impact: Complete application failure - no user could authenticate
|
|
27
|
+
|
|
28
|
+
Lesson: Phase 0 MUST be a BLOCKING gate with ACTUAL APPLICATION TESTING
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Why This Guide Exists
|
|
32
|
+
|
|
33
|
+
| Failure Case | What Was Missed | User Impact |
|
|
34
|
+
|--------------|-----------------|-------------|
|
|
35
|
+
| Login page is placeholder | No actual login form implemented | 401 errors on all protected routes |
|
|
36
|
+
| No route guards | Protected routes accessible without auth | Security vulnerability |
|
|
37
|
+
| API exists but not consumed | Backend ready, frontend not connected | Feature appears broken |
|
|
38
|
+
| Placeholder components | `<div>Coming Soon</div>` in production | Incomplete product |
|
|
39
|
+
| Field name mismatch | `{message}` vs `{content}` | 422 Validation Error |
|
|
40
|
+
| SSE field mismatch | `data.tool` vs `data.tool_name` | Tool calls not displayed |
|
|
41
|
+
| Token only GET, no SET | Token retrieval exists, storage doesn't | Auth always fails |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Phase 0: Functional Completeness Verification (MANDATORY - BLOCKING)
|
|
46
|
+
|
|
47
|
+
> ⛔ **BLOCKING GATE**: You CANNOT proceed to code quality review until Phase 0 passes!
|
|
48
|
+
> This phase requires ACTUAL APPLICATION EXECUTION, not just code reading.
|
|
49
|
+
|
|
50
|
+
**This phase MUST be executed BEFORE any code-level review.**
|
|
51
|
+
|
|
52
|
+
### 0.1 Startup Test (MANDATORY - MUST ACTUALLY RUN)
|
|
53
|
+
|
|
54
|
+
**You MUST actually start the application and test it:**
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Step 1: Start Backend
|
|
58
|
+
cd backend
|
|
59
|
+
pip install -r requirements.txt # or: poetry install
|
|
60
|
+
python -m uvicorn app.main:app --reload --port 8000
|
|
61
|
+
|
|
62
|
+
# Step 2: Verify Backend
|
|
63
|
+
curl http://localhost:8000/health
|
|
64
|
+
curl http://localhost:8000/docs # Should show Swagger UI
|
|
65
|
+
|
|
66
|
+
# Step 3: Start Frontend
|
|
67
|
+
cd frontend
|
|
68
|
+
npm install
|
|
69
|
+
npm run dev
|
|
70
|
+
|
|
71
|
+
# Step 4: Open Browser
|
|
72
|
+
open http://localhost:5173 # or xdg-open on Linux
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
## Startup Test Checklist (MUST PASTE EVIDENCE)
|
|
77
|
+
|
|
78
|
+
### Backend Startup
|
|
79
|
+
- [ ] Backend server starts without errors
|
|
80
|
+
Evidence: [paste terminal output]
|
|
81
|
+
- [ ] Database connection successful
|
|
82
|
+
- [ ] All migrations applied
|
|
83
|
+
- [ ] Health check returns 200: `curl http://localhost:8000/health`
|
|
84
|
+
Evidence: [paste output]
|
|
85
|
+
- [ ] API docs accessible: http://localhost:8000/docs
|
|
86
|
+
|
|
87
|
+
### Frontend Startup
|
|
88
|
+
- [ ] Frontend dev server starts without errors
|
|
89
|
+
Evidence: [paste terminal output]
|
|
90
|
+
- [ ] No console errors on initial load
|
|
91
|
+
Evidence: [screenshot or "No errors"]
|
|
92
|
+
- [ ] Can access root URL (e.g., http://localhost:5173)
|
|
93
|
+
- [ ] Assets load correctly (no 404s in Network tab)
|
|
94
|
+
|
|
95
|
+
### Critical Flow Test (MUST EXECUTE - NOT OPTIONAL)
|
|
96
|
+
|
|
97
|
+
> 🔴 **BLOCKING**: If any of these fail, STOP review and report as P0 blocker!
|
|
98
|
+
|
|
99
|
+
- [ ] **Authentication Flow**:
|
|
100
|
+
- Open DevTools → Network tab
|
|
101
|
+
- Navigate to /login
|
|
102
|
+
- Is there an actual login FORM? (not just text)
|
|
103
|
+
- Does form have username/email and password inputs?
|
|
104
|
+
- Does clicking login trigger POST /auth/login?
|
|
105
|
+
- Does success response contain access_token?
|
|
106
|
+
- Is token stored (check Application → localStorage)?
|
|
107
|
+
|
|
108
|
+
- [ ] **Protected Route Access**:
|
|
109
|
+
- Clear localStorage: `localStorage.clear()`
|
|
110
|
+
- Navigate to protected route (e.g., /chat)
|
|
111
|
+
- Does it redirect to /login? (It SHOULD if auth required)
|
|
112
|
+
- If no redirect → Route guards missing → P0 blocker
|
|
113
|
+
|
|
114
|
+
- [ ] **Core Feature E2E**:
|
|
115
|
+
- Login with valid credentials (or create test user)
|
|
116
|
+
- Navigate to main feature
|
|
117
|
+
- Perform primary action
|
|
118
|
+
- Check Network tab - all API calls succeed?
|
|
119
|
+
- Check response data displayed correctly?
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### 0.2 E2E User Journey Verification
|
|
125
|
+
|
|
126
|
+
**Trace complete user journeys, not just code paths:**
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
## User Journey: [Feature Name]
|
|
130
|
+
|
|
131
|
+
### Journey Steps
|
|
132
|
+
| Step | User Action | Expected Result | Actual Result | Status |
|
|
133
|
+
|------|-------------|-----------------|---------------|--------|
|
|
134
|
+
| 1 | Open app | See login page OR dashboard | | ⬜ |
|
|
135
|
+
| 2 | Login (if required) | Redirected to dashboard | | ⬜ |
|
|
136
|
+
| 3 | Navigate to feature | Feature page loads | | ⬜ |
|
|
137
|
+
| 4 | Perform action | Action succeeds | | ⬜ |
|
|
138
|
+
| 5 | See result | Correct feedback shown | | ⬜ |
|
|
139
|
+
|
|
140
|
+
### Journey Verdict
|
|
141
|
+
- [ ] Journey completes successfully
|
|
142
|
+
- [ ] All steps have implemented UI
|
|
143
|
+
- [ ] All API calls succeed
|
|
144
|
+
- [ ] Error states handled gracefully
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### 0.3 Authentication Flow Completeness
|
|
150
|
+
|
|
151
|
+
**CRITICAL for any app with protected routes:**
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
## Auth Flow Verification
|
|
155
|
+
|
|
156
|
+
### Frontend Auth Components
|
|
157
|
+
| Component | Required | Exists | Functional | Location |
|
|
158
|
+
|-----------|----------|--------|------------|----------|
|
|
159
|
+
| Login Page | ✅ | ⬜ | ⬜ | |
|
|
160
|
+
| Login Form | ✅ | ⬜ | ⬜ | |
|
|
161
|
+
| Register Page | Optional | ⬜ | ⬜ | |
|
|
162
|
+
| Logout Button | ✅ | ⬜ | ⬜ | |
|
|
163
|
+
| Route Guard | ✅ | ⬜ | ⬜ | |
|
|
164
|
+
| Token Storage | ✅ | ⬜ | ⬜ | |
|
|
165
|
+
| Auth Context/Store | ✅ | ⬜ | ⬜ | |
|
|
166
|
+
|
|
167
|
+
### Backend Auth APIs
|
|
168
|
+
| Endpoint | Required | Exists | Tested | Notes |
|
|
169
|
+
|----------|----------|--------|--------|-------|
|
|
170
|
+
| POST /auth/login | ✅ | ⬜ | ⬜ | |
|
|
171
|
+
| POST /auth/register | Optional | ⬜ | ⬜ | |
|
|
172
|
+
| POST /auth/refresh | ✅ | ⬜ | ⬜ | |
|
|
173
|
+
| GET /auth/me | ✅ | ⬜ | ⬜ | |
|
|
174
|
+
|
|
175
|
+
### Auth Integration Check
|
|
176
|
+
| Check | Status | Notes |
|
|
177
|
+
|-------|--------|-------|
|
|
178
|
+
| Frontend calls login API | ⬜ | |
|
|
179
|
+
| Token stored after login | ⬜ | |
|
|
180
|
+
| Token sent in API requests | ⬜ | |
|
|
181
|
+
| 401 response triggers re-login | ⬜ | |
|
|
182
|
+
| Protected routes check auth state | ⬜ | |
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### 0.4 Placeholder & Stub Detection
|
|
188
|
+
|
|
189
|
+
**Find code that looks complete but isn't:**
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Detect placeholder components
|
|
193
|
+
grep -rn "Coming Soon\|TODO\|FIXME\|Not Implemented\|Placeholder" --include="*.tsx" --include="*.vue"
|
|
194
|
+
|
|
195
|
+
# Detect stub functions
|
|
196
|
+
grep -rn "throw new Error.*not implemented\|console.log.*TODO\|pass # TODO" --include="*.py" --include="*.ts"
|
|
197
|
+
|
|
198
|
+
# Detect empty handlers
|
|
199
|
+
grep -rn "onClick={() => {}}\|onChange={() => {}}\|onSubmit={() => {}}" --include="*.tsx"
|
|
200
|
+
|
|
201
|
+
# Detect mock data in production code
|
|
202
|
+
grep -rn "mock\|dummy\|fake\|test.*data" --include="*.ts" --include="*.tsx" | grep -v "__tests__\|\.test\.\|\.spec\."
|
|
203
|
+
|
|
204
|
+
# Detect placeholder pages (single-line components)
|
|
205
|
+
grep -rn "const.*Page.*=.*().*=>.*<div>.*</div>" --include="*.tsx"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Common Placeholder Patterns
|
|
209
|
+
|
|
210
|
+
| Pattern | Example | Risk Level |
|
|
211
|
+
|---------|---------|------------|
|
|
212
|
+
| Single-line component | `const Login = () => <div>Login</div>` | 🔴 Critical |
|
|
213
|
+
| Empty handler | `onClick={() => {}}` | 🔴 Critical |
|
|
214
|
+
| TODO in production | `// TODO: implement` | 🟠 High |
|
|
215
|
+
| Mock data used | `const users = mockUsers` | 🟠 High |
|
|
216
|
+
| Commented code | `// api.post('/login', data)` | 🟡 Medium |
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
### 0.5 Frontend-Backend Contract Verification (FIELD-LEVEL)
|
|
221
|
+
|
|
222
|
+
> 🔴 **2024-12 LESSON**: Frontend sent `{ message: "hello" }`, backend expected `{ content: "hello" }` → 422 Error
|
|
223
|
+
|
|
224
|
+
**Ensure frontend actually consumes backend APIs with CORRECT field names:**
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# Step 1: Extract backend request schemas
|
|
228
|
+
echo "=== Backend Request Models ==="
|
|
229
|
+
grep -rn "class.*Request.*BaseModel" --include="*.py" -A 10
|
|
230
|
+
|
|
231
|
+
# Step 2: Extract frontend request bodies
|
|
232
|
+
echo "=== Frontend Request Bodies ==="
|
|
233
|
+
grep -rn "JSON.stringify\|body:" --include="*.ts" --include="*.tsx" -B 2 -A 5
|
|
234
|
+
|
|
235
|
+
# Step 3: MANUALLY COMPARE field names character by character!
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
## API Contract Status (FIELD-LEVEL VERIFICATION)
|
|
240
|
+
|
|
241
|
+
### Request Body Field Matching (CRITICAL - 2024-12)
|
|
242
|
+
| API Endpoint | Backend Expects | Frontend Sends | Match? | Issue |
|
|
243
|
+
|--------------|-----------------|----------------|--------|-------|
|
|
244
|
+
| POST /auth/login | `{ username, password }` | `{ email, password }` | ❌ | Field name! |
|
|
245
|
+
| POST /api/v1/chat | `{ content, parent_id }` | `{ message }` | ❌ | Field name! |
|
|
246
|
+
| POST /api/v1/sessions | `{ title }` | `{ title }` | ✅ | OK |
|
|
247
|
+
|
|
248
|
+
### SSE/WebSocket Event Matching (CRITICAL)
|
|
249
|
+
| Event Type | Backend Sends | Frontend Expects | Match? |
|
|
250
|
+
|------------|---------------|------------------|--------|
|
|
251
|
+
| tool_start | `{ tool_name, arguments }` | `{ tool, args }` | ❌ |
|
|
252
|
+
| tool_result | `{ tool_name, result, duration_ms }` | `{ tool, result }` | ❌ |
|
|
253
|
+
| token | `{ prompt_tokens, completion_tokens }` | | ⬜ |
|
|
254
|
+
| done | `{ message_id }` | | ⬜ |
|
|
255
|
+
|
|
256
|
+
### How to Verify
|
|
257
|
+
1. List all backend endpoints (from routes/routers)
|
|
258
|
+
2. Search frontend for each endpoint URL
|
|
259
|
+
3. **CRITICAL**: Compare request payload fields CHARACTER BY CHARACTER
|
|
260
|
+
4. **CRITICAL**: Compare SSE event names AND payload fields
|
|
261
|
+
5. Verify response handling exists
|
|
262
|
+
|
|
263
|
+
### Missing Integrations (CRITICAL)
|
|
264
|
+
| Backend API | Purpose | Frontend Status | Action Needed |
|
|
265
|
+
|-------------|---------|-----------------|---------------|
|
|
266
|
+
| | | | |
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Contract Verification Evidence Template
|
|
270
|
+
|
|
271
|
+
```markdown
|
|
272
|
+
## Contract Verification Evidence
|
|
273
|
+
|
|
274
|
+
### Endpoint: POST /api/v1/sessions/{id}/chat
|
|
275
|
+
|
|
276
|
+
**Backend Schema** (app/api/v1/chat.py):
|
|
277
|
+
```python
|
|
278
|
+
class ChatRequest(BaseModel):
|
|
279
|
+
content: str # <-- Backend expects 'content'
|
|
280
|
+
parent_id: str | None
|
|
281
|
+
llm_id: str | None
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Frontend Call** (hooks/useChatStream.ts):
|
|
285
|
+
```typescript
|
|
286
|
+
body: JSON.stringify({
|
|
287
|
+
message: content // <-- Frontend sends 'message' ❌ MISMATCH!
|
|
288
|
+
})
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Verdict**: ❌ Field name mismatch - will cause 422 Validation Error
|
|
292
|
+
**Fix**: Change frontend to `{ content, parent_id, llm_id }`
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Phase 0 Verdict Template
|
|
298
|
+
|
|
299
|
+
```markdown
|
|
300
|
+
## Phase 0 Summary
|
|
301
|
+
|
|
302
|
+
| Check Category | Status | Blockers |
|
|
303
|
+
|----------------|--------|----------|
|
|
304
|
+
| Startup Test | ✅/❌ | |
|
|
305
|
+
| Auth Flow Complete | ✅/❌ | |
|
|
306
|
+
| Core Journey Works | ✅/❌ | |
|
|
307
|
+
| No Placeholders in Critical Path | ✅/❌ | |
|
|
308
|
+
| API Contracts Verified | ✅/❌ | |
|
|
309
|
+
|
|
310
|
+
### Phase 0 Decision
|
|
311
|
+
- [ ] **PASS** - Proceed to code quality review
|
|
312
|
+
- [ ] **FAIL** - Fix functional gaps before code review
|
|
313
|
+
|
|
314
|
+
### Critical Gaps Found
|
|
315
|
+
1. [Gap description + file location]
|
|
316
|
+
2. [Gap description + file location]
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Automated Verification Script
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
#!/bin/bash
|
|
325
|
+
# functional-check.sh - Run before code review
|
|
326
|
+
|
|
327
|
+
echo "=== Phase 0: Functional Completeness Check ==="
|
|
328
|
+
|
|
329
|
+
echo ""
|
|
330
|
+
echo "--- Placeholder Detection ---"
|
|
331
|
+
echo "Placeholder text:"
|
|
332
|
+
grep -rn "Coming Soon\|TODO\|FIXME\|Not Implemented\|Placeholder" --include="*.tsx" --include="*.ts" --include="*.vue" 2>/dev/null | head -20
|
|
333
|
+
|
|
334
|
+
echo ""
|
|
335
|
+
echo "Empty handlers:"
|
|
336
|
+
grep -rn "onClick={() => {}}\|onChange={() => {}}\|onSubmit={() => {}}" --include="*.tsx" 2>/dev/null | head -10
|
|
337
|
+
|
|
338
|
+
echo ""
|
|
339
|
+
echo "Single-line placeholder components:"
|
|
340
|
+
grep -rn "const.*=.*().*=>.*<div>.*</div>;" --include="*.tsx" 2>/dev/null | head -10
|
|
341
|
+
|
|
342
|
+
echo ""
|
|
343
|
+
echo "--- Auth Flow Check ---"
|
|
344
|
+
echo "Login page/component:"
|
|
345
|
+
grep -rn "login\|Login" --include="*.tsx" -l 2>/dev/null
|
|
346
|
+
|
|
347
|
+
echo ""
|
|
348
|
+
echo "Route guard:"
|
|
349
|
+
grep -rn "ProtectedRoute\|AuthGuard\|RequireAuth\|PrivateRoute" --include="*.tsx" -l 2>/dev/null
|
|
350
|
+
|
|
351
|
+
echo ""
|
|
352
|
+
echo "Token storage:"
|
|
353
|
+
grep -rn "localStorage.*token\|sessionStorage.*token" --include="*.ts" --include="*.tsx" 2>/dev/null | head -5
|
|
354
|
+
|
|
355
|
+
echo ""
|
|
356
|
+
echo "--- API Integration Check ---"
|
|
357
|
+
echo "Auth API calls:"
|
|
358
|
+
grep -rn "/auth/login\|/api/v1/auth" --include="*.ts" --include="*.tsx" 2>/dev/null | head -10
|
|
359
|
+
|
|
360
|
+
echo ""
|
|
361
|
+
echo "=== Check Complete ==="
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## Review Completeness Checklist (Phase 0)
|
|
367
|
+
|
|
368
|
+
```markdown
|
|
369
|
+
### 🚨 Phase 0: Functional Completeness (MUST VERIFY FIRST)
|
|
370
|
+
- [ ] **Startup test passed** - App runs without errors
|
|
371
|
+
- [ ] **Auth flow complete** - Login page exists AND works (not placeholder)
|
|
372
|
+
- [ ] **Route guards active** - Protected routes redirect unauthenticated users
|
|
373
|
+
- [ ] **Core user journey works** - Main feature functional end-to-end
|
|
374
|
+
- [ ] **No placeholder code in critical paths** - No "TODO", "Coming Soon" in production
|
|
375
|
+
- [ ] **API contracts verified** - Frontend actually calls backend APIs
|
|
376
|
+
- [ ] **Token flow working** - Stored, sent, refreshed correctly
|
|
377
|
+
|
|
378
|
+
### Quality Metrics (Updated)
|
|
379
|
+
| Metric | Target | Actual |
|
|
380
|
+
|--------|--------|--------|
|
|
381
|
+
| Functional completeness | 100% | __% |
|
|
382
|
+
| Auth flow implemented | 100% | __% |
|
|
383
|
+
| Placeholder count | 0 | __ |
|
|
384
|
+
| API integration coverage | 100% | __% |
|
|
385
|
+
```
|
|
386
|
+
|