product-manager
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseProduct Manager
产品经理
Ensures features are not just implemented but actually user-accessible. Bridges the gap between "code complete" and "user can use it."
Integrates with:
- — Reads tasks.db, features.json, PROJECT.md
prd-analyzer - All implementation skills — Validates their output is user-facing
确保功能不仅完成代码实现,还能真正被用户访问使用。填补“代码完成”与“用户可使用”之间的差距。
集成工具:
- — 读取tasks.db、features.json、PROJECT.md
prd-analyzer - 所有实现类工具 — 验证其输出内容面向用户
The Problem This Solves
解决的问题
PRD says: "User can export analytics to Tableau"
Backend: ✓ analytics-api.ts exists with Tableau endpoints
Frontend: ✗ No /analytics route
Navigation: ✗ No menu item
Result: Feature "done" in tasks.db, but users can't access itPRD要求:"用户可将分析数据导出至Tableau"
后端: ✓ 存在analytics-api.ts,包含Tableau端点
前端: ✗ 无/analytics路由
导航: ✗ 无菜单项
结果: tasks.db中标记该功能“已完成”,但用户无法访问Core Workflow
核心工作流
1. DISCOVER → Find project structure and framework
2. READ → Load PRD features from prd-analyzer output
3. SCAN → Search codebase for implementation evidence
4. AUDIT → Check user-facing accessibility
5. ANALYZE → Compare requirements vs reality
6. REPORT → Generate gap analysis
7. REMEDIATE → Create tasks for missing pieces1. DISCOVER → Find project structure and framework
2. READ → Load PRD features from prd-analyzer output
3. SCAN → Search codebase for implementation evidence
4. AUDIT → Check user-facing accessibility
5. ANALYZE → Compare requirements vs reality
6. REPORT → Generate gap analysis
7. REMEDIATE → Create tasks for missing piecesQuick Start
快速开始
1. Discover Project
1. 识别项目
bash
undefinedbash
undefinedIdentify framework and structure
Identify framework and structure
ls -la
cat package.json
Look for:
- Framework indicators (next.config.js, vite.config.ts, expo.json, etc.)
- Source structure (src/, app/, pages/, etc.)
- Backend location (backend/, server/, api/, etc.)ls -la
cat package.json
检查以下内容:
- 框架标识文件(next.config.js、vite.config.ts、expo.json等)
- 源码结构(src/、app/、pages/等)
- 后端位置(backend/、server/、api/等)2. Load PRD Context
2. 加载PRD上下文
bash
undefinedbash
undefinedFrom prd-analyzer output
From prd-analyzer output
cat .claude/PROJECT.md
cat .claude/features.json
sqlite3 .claude/tasks.db "SELECT id, title, status FROM epics"
undefinedcat .claude/PROJECT.md
cat .claude/features.json
sqlite3 .claude/tasks.db "SELECT id, title, status FROM epics"
undefined3. Run Feature Audit
3. 运行功能审计
For each feature:
- Check backend implementation
- Check frontend implementation
- Check user accessibility
- Record findings
针对每个功能:
- 检查后端实现情况
- 检查前端实现情况
- 检查用户可访问性
- 记录审计结果
4. Generate Report
4. 生成报告
Output:
- — Human-readable gap analysis
audit-report.md - — Programmatic results
audit-results.json - Updated — Remediation tasks added
tasks.db
输出内容:
- — 人类可读的差距分析报告
audit-report.md - — 程序化输出结果
audit-results.json - 更新后的— 新增修复任务
tasks.db
Feature Completeness Model
功能完整性模型
Completeness Levels
完整性等级
| Level | Name | Meaning |
|---|---|---|
| 0 | Not Started | No implementation evidence |
| 1 | Backend Only | Service/API exists, no frontend |
| 2 | Frontend Exists | UI components exist, not accessible |
| 3 | Routable | Has route/screen, not in navigation |
| 4 | Accessible | In navigation, users can reach it |
| 5 | Complete | Accessible + documented + tested |
| 等级 | 名称 | 含义 |
|---|---|---|
| 0 | 未启动 | 无实现痕迹 |
| 1 | 仅后端实现 | 服务/API已存在,无前端 |
| 2 | 前端已存在 | UI组件已实现,但无法访问 |
| 3 | 可路由 | 有路由/页面,但未加入导航 |
| 4 | 可访问 | 已加入导航,用户可到达 |
| 5 | 完全完成 | 可访问 + 已文档化 + 已测试 |
Completeness Checklist
完整性检查清单
markdown
undefinedmarkdown
undefinedFeature: [Name]
Feature: [Name]
Implementation
Implementation
- Backend service/API implemented
- Database schema exists (if needed)
- Frontend components exist
- API integration complete
- Backend service/API implemented
- Database schema exists (if needed)
- Frontend components exist
- API integration complete
Accessibility
Accessibility
- Route/screen exists
- Reachable from navigation
- Mobile responsive (if web)
- Works on target platforms
- Route/screen exists
- Reachable from navigation
- Mobile responsive (if web)
- Works on target platforms
Polish
Polish
- Error states handled
- Loading states present
- Empty states designed
- Documented in help/docs
- Error states handled
- Loading states present
- Empty states designed
- Documented in help/docs
Verdict: Level [0-5]
Verdict: Level [0-5]
---
---Framework Detection
框架检测
Automatic Detection
自动检测
javascript
// Detection order
const frameworkIndicators = {
// Web Frameworks
'next.config.js': 'nextjs',
'next.config.mjs': 'nextjs',
'next.config.ts': 'nextjs',
'vite.config.ts': 'vite',
'vite.config.js': 'vite',
'remix.config.js': 'remix',
'astro.config.mjs': 'astro',
// React Router / TanStack
'src/routes.tsx': 'react-router',
'src/router.tsx': 'tanstack-router',
'app/routes/': 'remix',
// Mobile
'app.json': 'expo',
'expo.json': 'expo',
'react-native.config.js': 'react-native',
'ios/': 'react-native',
'android/': 'react-native',
// Backend
'backend/': 'separate-backend',
'server/': 'separate-backend',
'api/': 'api-routes',
};javascript
// Detection order
const frameworkIndicators = {
// Web Frameworks
'next.config.js': 'nextjs',
'next.config.mjs': 'nextjs',
'next.config.ts': 'nextjs',
'vite.config.ts': 'vite',
'vite.config.js': 'vite',
'remix.config.js': 'remix',
'astro.config.mjs': 'astro',
// React Router / TanStack
'src/routes.tsx': 'react-router',
'src/router.tsx': 'tanstack-router',
'app/routes/': 'remix',
// Mobile
'app.json': 'expo',
'expo.json': 'expo',
'react-native.config.js': 'react-native',
'ios/': 'react-native',
'android/': 'react-native',
// Backend
'backend/': 'separate-backend',
'server/': 'separate-backend',
'api/': 'api-routes',
};Framework-Specific Patterns
框架特定模式
| Framework | Routes Location | Navigation | API Calls |
|---|---|---|---|
| Next.js (pages) | | | |
| Next.js (app) | | | |
| React Router | | | |
| TanStack Router | | | |
| Remix | | | |
| React Native | | | |
| Expo Router | | | |
Detailed patterns: See references/framework-patterns.md
| 框架 | 路由位置 | 导航 | API调用 |
|---|---|---|---|
| Next.js (pages) | | | |
| Next.js (app) | | | |
| React Router | | | |
| TanStack Router | | | |
| Remix | | | |
| React Native | | | |
| Expo Router | | | |
详细模式: 参见 references/framework-patterns.md
Scanning Process
扫描流程
Backend Scan
后端扫描
Find evidence of implementation:
bash
undefined查找实现痕迹:
bash
undefinedServices
Services
find backend/src/services -name "*.ts" | head -20
grep -l "export.*class|export.function" backend/src/services/.ts
find backend/src/services -name "*.ts" | head -20
grep -l "export.*class|export.function" backend/src/services/.ts
API routes/handlers
API routes/handlers
find . -path "/api/" -name ".ts" | head -20
find . -path "/handlers/" -name ".ts" | head -20
find . -path "/api/" -name ".ts" | head -20
find . -path "/handlers/" -name ".ts" | head -20
Database models/schema
Database models/schema
find . -name "schema.ts" -o -name "models.ts" -o -name "*.model.ts"
undefinedfind . -name "schema.ts" -o -name "models.ts" -o -name "*.model.ts"
undefinedFrontend Scan
前端扫描
Find UI implementation:
bash
undefined查找UI实现:
bash
undefinedRoutes/pages (framework-dependent)
Routes/pages (framework-dependent)
find . -path "/pages/" -name ".tsx" 2>/dev/null
find . -path "/app/" -name "page.tsx" 2>/dev/null
find . -path "/screens/" -name ".tsx" 2>/dev/null
find . -path "/routes/" -name "*.tsx" 2>/dev/null
find . -path "/pages/" -name ".tsx" 2>/dev/null
find . -path "/app/" -name "page.tsx" 2>/dev/null
find . -path "/screens/" -name ".tsx" 2>/dev/null
find . -path "/routes/" -name "*.tsx" 2>/dev/null
Components
Components
find . -path "/components/" -name "*.tsx" | grep -i "FEATURE_NAME"
find . -path "/components/" -name "*.tsx" | grep -i "FEATURE_NAME"
Navigation
Navigation
grep -r "href=|to=|navigate|Link" --include="*.tsx" src/components/nav/
undefinedgrep -r "href=|to=|navigate|Link" --include="*.tsx" src/components/nav/
undefinedAPI Integration Scan
API集成扫描
Verify frontend calls backend:
bash
undefined验证前端是否调用后端:
bash
undefinedFind API calls
Find API calls
grep -r "fetch|axios|useMutation|useQuery" --include="*.tsx" src/
grep -r "fetch|axios|useMutation|useQuery" --include="*.tsx" src/
Find service imports
Find service imports
grep -r "import.*from.*services|import.*from.api" --include=".tsx" src/
undefinedgrep -r "import.*from.*services|import.*from.api" --include=".tsx" src/
undefinedNavigation Scan
导航扫描
Check if feature is reachable:
bash
undefined检查功能是否可访问:
bash
undefinedFind navigation components
Find navigation components
find . -name "nav" -o -name "sidebar" -o -name "menu" | grep -E ".(tsx|jsx)$"
find . -name "nav" -o -name "sidebar" -o -name "menu" | grep -E ".(tsx|jsx)$"
Check for links to feature
Check for links to feature
grep -r "/FEATURE_ROUTE" --include="*.tsx" src/
---grep -r "/FEATURE_ROUTE" --include="*.tsx" src/
---Audit Output
审计输出
Audit Report Structure
审计报告结构
markdown
undefinedmarkdown
undefinedFeature Audit Report
Feature Audit Report
Project: VoiceForm AI
Audit Date: 2026-01-12
Framework: Next.js (App Router) + Separate Backend
Project: VoiceForm AI
Audit Date: 2026-01-12
Framework: Next.js (App Router) + Separate Backend
Summary
Summary
| Metric | Count |
|---|---|
| Total Features | 30 |
| Fully Complete (L5) | 12 |
| Accessible (L4) | 5 |
| Routable (L3) | 3 |
| Frontend Exists (L2) | 2 |
| Backend Only (L1) | 8 |
| Not Started (L0) | 0 |
Overall Completion: 40% fully user-accessible
| Metric | Count |
|---|---|
| Total Features | 30 |
| Fully Complete (L5) | 12 |
| Accessible (L4) | 5 |
| Routable (L3) | 3 |
| Frontend Exists (L2) | 2 |
| Backend Only (L1) | 8 |
| Not Started (L0) | 0 |
Overall Completion: 40% fully user-accessible
Critical Gaps (P0 Features)
Critical Gaps (P0 Features)
| Feature | Level | Missing |
|---|---|---|
| F028 Analytics API | L1 | Frontend route, Navigation, UI |
| F029 Tenant Isolation | L1 | Settings UI, BYOK config screen |
| Feature | Level | Missing |
|---|---|---|
| F028 Analytics API | L1 | Frontend route, Navigation, UI |
| F029 Tenant Isolation | L1 | Settings UI, BYOK config screen |
All Features
All Features
F001: Survey Studio
F001: Survey Studio
Level: 5 - Complete ✅
Evidence:
- Backend: ✓
backend/src/services/survey-studio.ts - Route: ✓
app/surveys/new/page.tsx - Navigation: Sidebar "Create Survey" link ✓
- Documentation: Help article exists ✓
Level: 5 - Complete ✅
Evidence:
- Backend: ✓
backend/src/services/survey-studio.ts - Route: ✓
app/surveys/new/page.tsx - Navigation: Sidebar "Create Survey" link ✓
- Documentation: Help article exists ✓
F028: Analytics API
F028: Analytics API
Level: 1 - Backend Only 🔴
Evidence:
- Backend: ✓
backend/src/services/analytics-api.ts - Route: ❌ No route found
/analytics - Navigation: ❌ No analytics link in navigation
- Documentation: ❌ No help article
Remediation Required:
- Create
app/analytics/page.tsx - Add Analytics to main navigation
- Build dashboard components
- Document analytics features
[...continues for all features...]
undefinedLevel: 1 - Backend Only 🔴
Evidence:
- Backend: ✓
backend/src/services/analytics-api.ts - Route: ❌ No route found
/analytics - Navigation: ❌ No analytics link in navigation
- Documentation: ❌ No help article
Remediation Required:
- Create
app/analytics/page.tsx - Add Analytics to main navigation
- Build dashboard components
- Document analytics features
[...continues for all features...]
undefinedJSON Output
JSON输出
json
{
"audit_date": "2026-01-12",
"project": "VoiceForm AI",
"framework": {
"frontend": "nextjs-app",
"backend": "separate",
"mobile": null
},
"summary": {
"total_features": 30,
"by_level": {
"L5_complete": 12,
"L4_accessible": 5,
"L3_routable": 3,
"L2_frontend_exists": 2,
"L1_backend_only": 8,
"L0_not_started": 0
}
},
"features": [
{
"id": "F028",
"title": "Analytics API",
"level": 1,
"level_name": "backend_only",
"evidence": {
"backend": {
"found": true,
"files": ["backend/src/services/analytics-api.ts"]
},
"frontend": {
"found": false,
"files": []
},
"route": {
"found": false,
"path": null
},
"navigation": {
"found": false,
"location": null
}
},
"remediation": [
{
"type": "create_route",
"description": "Create analytics page",
"path": "app/analytics/page.tsx"
},
{
"type": "add_navigation",
"description": "Add Analytics to sidebar"
}
]
}
]
}json
{
"audit_date": "2026-01-12",
"project": "VoiceForm AI",
"framework": {
"frontend": "nextjs-app",
"backend": "separate",
"mobile": null
},
"summary": {
"total_features": 30,
"by_level": {
"L5_complete": 12,
"L4_accessible": 5,
"L3_routable": 3,
"L2_frontend_exists": 2,
"L1_backend_only": 8,
"L0_not_started": 0
}
},
"features": [
{
"id": "F028",
"title": "Analytics API",
"level": 1,
"level_name": "backend_only",
"evidence": {
"backend": {
"found": true,
"files": ["backend/src/services/analytics-api.ts"]
},
"frontend": {
"found": false,
"files": []
},
"route": {
"found": false,
"path": null
},
"navigation": {
"found": false,
"location": null
}
},
"remediation": [
{
"type": "create_route",
"description": "Create analytics page",
"path": "app/analytics/page.tsx"
},
{
"type": "add_navigation",
"description": "Add Analytics to sidebar"
}
]
}
]
}Remediation Task Generation
修复任务生成
Task Creation
任务创建
For each gap, generate tasks in tasks.db:
sql
-- New story for missing frontend
INSERT INTO stories (id, epic_id, title, description, status)
VALUES (
'story-028-frontend',
'epic-028',
'Analytics Frontend Implementation',
'Create user-facing analytics dashboard',
'todo'
);
-- Tasks for the story
INSERT INTO tasks (id, story_id, title, task_type, estimate_hours, status)
VALUES
('task-028-f01', 'story-028-frontend', 'Create /analytics route', 'frontend', 4, 'todo'),
('task-028-f02', 'story-028-frontend', 'Build analytics dashboard components', 'frontend', 8, 'todo'),
('task-028-f03', 'story-028-frontend', 'Add Analytics to navigation', 'frontend', 1, 'todo'),
('task-028-f04', 'story-028-frontend', 'Connect to analytics API', 'frontend', 4, 'todo');针对每个差距,在tasks.db中生成任务:
sql
-- New story for missing frontend
INSERT INTO stories (id, epic_id, title, description, status)
VALUES (
'story-028-frontend',
'epic-028',
'Analytics Frontend Implementation',
'Create user-facing analytics dashboard',
'todo'
);
-- Tasks for the story
INSERT INTO tasks (id, story_id, title, task_type, estimate_hours, status)
VALUES
('task-028-f01', 'story-028-frontend', 'Create /analytics route', 'frontend', 4, 'todo'),
('task-028-f02', 'story-028-frontend', 'Build analytics dashboard components', 'frontend', 8, 'todo'),
('task-028-f03', 'story-028-frontend', 'Add Analytics to navigation', 'frontend', 1, 'todo'),
('task-028-f04', 'story-028-frontend', 'Connect to analytics API', 'frontend', 4, 'todo');Priority Assignment
优先级分配
| Gap Type | Priority | Rationale |
|---|---|---|
| P0 feature backend-only | P0 | Critical feature unusable |
| P1 feature backend-only | P1 | Important feature unusable |
| Missing navigation | P1 | Feature exists but hidden |
| Missing documentation | P2 | Feature works but undiscoverable |
| Missing error states | P2 | Polish issue |
| 差距类型 | 优先级 | 理由 |
|---|---|---|
| P0功能仅后端实现 | P0 | 关键功能无法使用 |
| P1功能仅后端实现 | P1 | 重要功能无法使用 |
| 缺少导航 | P1 | 功能存在但隐藏 |
| 缺少文档 | P2 | 功能可用但用户无法发现 |
| 缺少错误状态处理 | P2 | 体验优化问题 |
Integration with prd-analyzer
与prd-analyzer的集成
Reading PRD Context
读取PRD上下文
python
import sqlite3
import json
def load_prd_context(project_path: str):
"""Load features from prd-analyzer output"""
# Load features.json
with open(f"{project_path}/.claude/features.json") as f:
features = json.load(f)
# Load from tasks.db
conn = sqlite3.connect(f"{project_path}/.claude/tasks.db")
conn.row_factory = sqlite3.Row
epics = conn.execute("""
SELECT e.*,
COUNT(s.id) as story_count,
SUM(CASE WHEN s.status = 'done' THEN 1 ELSE 0 END) as done_count
FROM epics e
LEFT JOIN stories s ON s.epic_id = e.id
GROUP BY e.id
""").fetchall()
return {
"features": features,
"epics": [dict(e) for e in epics]
}python
import sqlite3
import json
def load_prd_context(project_path: str):
"""Load features from prd-analyzer output"""
# Load features.json
with open(f"{project_path}/.claude/features.json") as f:
features = json.load(f)
# Load from tasks.db
conn = sqlite3.connect(f"{project_path}/.claude/tasks.db")
conn.row_factory = sqlite3.Row
epics = conn.execute("""
SELECT e.*,
COUNT(s.id) as story_count,
SUM(CASE WHEN s.status = 'done' THEN 1 ELSE 0 END) as done_count
FROM epics e
LEFT JOIN stories s ON s.epic_id = e.id
GROUP BY e.id
""").fetchall()
return {
"features": features,
"epics": [dict(e) for e in epics]
}Updating Task Status
更新任务状态
When audit finds discrepancies:
sql
-- Mark feature as needing frontend work
UPDATE epics
SET status = 'needs_frontend',
updated_at = datetime('now')
WHERE id = 'epic-028';
-- Add audit metadata
INSERT INTO epic_metadata (epic_id, key, value)
VALUES ('epic-028', 'audit_level', '1'),
('epic-028', 'audit_date', '2026-01-12'),
('epic-028', 'audit_gaps', 'route,navigation,documentation');当审计发现差异时:
sql
-- Mark feature as needing frontend work
UPDATE epics
SET status = 'needs_frontend',
updated_at = datetime('now')
WHERE id = 'epic-028';
-- Add audit metadata
INSERT INTO epic_metadata (epic_id, key, value)
VALUES ('epic-028', 'audit_level', '1'),
('epic-028', 'audit_date', '2026-01-12'),
('epic-028', 'audit_gaps', 'route,navigation,documentation');Running an Audit
运行审计
Full Audit Command
完整审计命令
bash
undefinedbash
undefinedIn Claude Code session:
In Claude Code session:
1. Read project structure
1. Read project structure
cat package.json
ls -la src/ app/ pages/ 2>/dev/null
cat package.json
ls -la src/ app/ pages/ 2>/dev/null
2. Load PRD context
2. Load PRD context
cat .claude/features.json
sqlite3 .claude/tasks.db "SELECT id, title, priority FROM epics ORDER BY id"
cat .claude/features.json
sqlite3 .claude/tasks.db "SELECT id, title, priority FROM epics ORDER BY id"
3. For each feature, scan for evidence
3. For each feature, scan for evidence
(Claude does this systematically)
(Claude does this systematically)
4. Generate report
4. Generate report
Outputs to .claude/audit-report.md and .claude/audit-results.json
Outputs to .claude/audit-report.md and .claude/audit-results.json
undefinedundefinedQuick Audit (Single Feature)
快速审计(单个功能)
bash
undefinedbash
undefinedAudit just F028
Audit just F028
1. Find backend
1. Find backend
find . -name "analytics" -type f
find . -name "analytics" -type f
2. Find frontend
2. Find frontend
find . -path "app" -o -path "pages" | xargs grep -l "analytics" 2>/dev/null
find . -path "app" -o -path "pages" | xargs grep -l "analytics" 2>/dev/null
3. Check navigation
3. Check navigation
grep -r "analytics" --include="*.tsx" src/components/nav/ app/layout.tsx
grep -r "analytics" --include="*.tsx" src/components/nav/ app/layout.tsx
4. Report finding
4. Report finding
echo "F028: Level 1 - Backend only, no frontend route"
---echo "F028: Level 1 - Backend only, no frontend route"
---Anti-Patterns
反模式
Audit Anti-Patterns
审计反模式
| Anti-Pattern | Problem | Fix |
|---|---|---|
| Trusting tasks.db status | "Done" ≠ user-facing | Always verify in codebase |
| Only checking file existence | File may be empty/stub | Check for real implementation |
| Ignoring navigation | Feature unreachable | Verify menu/nav links |
| Skipping mobile | Desktop-only isn't complete | Check responsive/native |
| No documentation check | Users can't discover | Verify help/docs exist |
| 反模式 | 问题 | 修复方案 |
|---|---|---|
| 信任tasks.db状态 | “已完成” ≠ 面向用户 | 始终在代码库中验证 |
| 仅检查文件存在性 | 文件可能为空/是占位符 | 检查真实实现内容 |
| 忽略导航 | 功能无法被用户找到 | 验证菜单/导航链接 |
| 跳过移动端适配 | 仅桌面端实现不算完整 | 检查响应式/原生实现 |
| 跳过文档检查 | 用户无法发现功能 | 验证帮助文档存在性 |
Remediation Anti-Patterns
修复反模式
| Anti-Pattern | Problem | Fix |
|---|---|---|
| Generic tasks | "Add frontend" too vague | Specific: "Create /analytics route" |
| Missing dependencies | Frontend before backend | Check implementation order |
| Overloading | 50 tasks at once | Prioritize by P-level |
| No estimates | Can't plan | Add hour estimates |
| 反模式 | 问题 | 修复方案 |
|---|---|---|
| 通用任务 | “添加前端”过于模糊 | 具体化:“创建/analytics路由” |
| 忽略依赖关系 | 先做前端再做后端 | 检查实现顺序 |
| 任务过载 | 一次性分配50个任务 | 按优先级P等级排序 |
| 无工时估算 | 无法规划 | 添加工时估算 |
Checklist: Running Product Audit
检查清单:运行产品审计
Before Audit
审计前
- prd-analyzer has run (tasks.db exists)
- Project structure understood
- Framework identified
- Backend location known
- Frontend location known
- 已运行prd-analyzer(tasks.db已存在)
- 已理解项目结构
- 已识别框架
- 已明确后端位置
- 已明确前端位置
During Audit
审计中
- Each feature checked systematically
- Backend evidence recorded
- Frontend evidence recorded
- Route existence verified
- Navigation links verified
- Level assigned (0-5)
- 已系统检查每个功能
- 已记录后端实现证据
- 已记录前端实现证据
- 已验证路由存在性
- 已验证导航链接
- 已分配完整性等级(0-5)
After Audit
审计后
- Report generated (markdown)
- Results saved (JSON)
- Remediation tasks created
- tasks.db updated
- Priorities assigned
References:
- references/framework-patterns.md — Scanning patterns for each framework
- references/completeness-criteria.md — Detailed level definitions
- references/gap-analysis.md — Analysis methodology
- references/remediation-templates.md — Task templates for common gaps
- 已生成报告(Markdown格式)
- 已保存结果(JSON格式)
- 已创建修复任务
- 已更新tasks.db
- 已分配任务优先级
参考资料:
- references/framework-patterns.md — 各框架扫描模式
- references/completeness-criteria.md — 详细等级定义
- references/gap-analysis.md — 差距分析方法
- references/remediation-templates.md — 常见差距任务模板