{"id":"9f681cc9-c0cb-46b6-8a42-cb8702f9f79d","entityType":"agent","slug":"clawhub-ai-acheng-harness-dev-standards","name":"Harness Dev Standards","canonicalUrl":"https://www.xpersona.co/agent/clawhub-ai-acheng-harness-dev-standards","canonicalPath":"/agent/clawhub-ai-acheng-harness-dev-standards","generatedAt":"2026-10-11T11:24:02.221Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T08:54:10.753Z","emptyReason":null},"description":"Provides a full-cycle, automated quality gate and governance framework to ensure standardized, error-free code delivery in Harness Engineering projects. Skill: Harness Dev Standards Owner: ai-acheng Summary: Provides a full-cycle, automated quality gate and governance framework to ensure standardized, error-free code delivery in Harness Engineering projects. Tags: latest:1.0.3 Version history: v1.0.3 | 2026-08-17T08:56:38.446Z | auto - Added new directories/files: marketing, references, and scripts to enhance documentation and automation. - Removed skill-card.md to s","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17e1hdx8tza0g6m8aaym7p9ex84vv0m:harness-dev-standards","sourceUrl":"https://clawhub.ai/ai-acheng/harness-dev-standards","homepage":"https://clawhub.ai/ai-acheng/skills/harness-dev-standards","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/ai-acheng/harness-dev-standards","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/ai-acheng/skills/harness-dev-standards","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Provides a full-cycle, automated quality gate and governance framework to ensure standardized, error-free code delivery in Harness Engineering projects. Skill: "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:54:10.753Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:54:10.753Z","emptyReason":null},"stars":null,"forks":null,"downloads":1107,"packageName":null,"latestVersion":"1.0.3","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:54:10.674Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T08:54:10.753Z","lastCrawledAt":"2026-10-11T08:54:10.674Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T08:54:10.675Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.3","createdAt":"2026-08-17T08:56:38.446Z","changelog":"- Added new directories/files: marketing, references, and scripts to enhance documentation and automation. - Removed skill-card.md to streamline project documentation. - Expanded reference content for standards, checklists, and auto-remediation. - Improved project structure and tools organization for better maintainability.","fileCount":15,"zipByteSize":28342},{"version":"1.0.2","createdAt":"2026-05-13T12:13:43.936Z","changelog":"- Updated marketing materials in 00-intro-short.md, 01-vs-superpowers.md, and 02-vs-qcsd-quality-gates.md for improved clarity and positioning. - Made minor refinements to skill.json. - No changes to main development standards or workflow descriptions.","fileCount":12,"zipByteSize":28087},{"version":"1.0.1","createdAt":"2026-05-13T11:58:57.330Z","changelog":"- 更新了开发规范体系的描述，将“基于腾讯全AI研发实践改进”调整为“基于企业级全AI研发实践改进” - 规范文档相关表述从“腾讯全AI研发实践”升级为“企业级全AI研发实践” - 未涉及核心标准及质控流程变更，主体结构与内容保持一致 - 文档表述更中性，适应更广泛企业场景","fileCount":11,"zipByteSize":26793},{"version":"1.0.0","createdAt":"2026-05-13T11:54:20.623Z","changelog":"Initial release of Harness Engineering 开发规范体系. - 提供完整全流程代码交付质量保障和自动治理标准，结合腾讯全AI研发实践 - 明确六大质量门禁（需求、架构、编码、依赖、环境、交付）并给出详细检查项 - 支持项目自动治理：包括依赖、语法、类型等常见问题的自动检测与修复策略和流程 - 定义 Next.js 等前端项目标准文件结构与 README 写作要求 - 提供依赖/质量扫描等内置工具脚本 - 配套交付前检查清单和参考文档，便于项目自查和标准推广","fileCount":11,"zipByteSize":26785}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17e1hdx8tza0g6m8aaym7p9ex84vv0m:harness-dev-standards","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T11:24:02.217Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ai-acheng-harness-dev-standards/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T08:54:10.753Z","emptyReason":null},"readme":"Skill: Harness Dev Standards\n\nOwner: ai-acheng\n\nSummary: Provides a full-cycle, automated quality gate and governance framework to ensure standardized, error-free code delivery in Harness Engineering projects.\n\nTags: latest:1.0.3\n\nVersion history:\n\nv1.0.3 | 2026-08-17T08:56:38.446Z | auto\n\n- Added new directories/files: marketing, references, and scripts to enhance documentation and automation.\n- Removed skill-card.md to streamline project documentation.\n- Expanded reference content for standards, checklists, and auto-remediation.\n- Improved project structure and tools organization for better maintainability.\n\nv1.0.2 | 2026-05-13T12:13:43.936Z | auto\n\n- Updated marketing materials in 00-intro-short.md, 01-vs-superpowers.md, and 02-vs-qcsd-quality-gates.md for improved clarity and positioning.\n- Made minor refinements to skill.json.\n- No changes to main development standards or workflow descriptions.\n\nv1.0.1 | 2026-05-13T11:58:57.330Z | auto\n\n- 更新了开发规范体系的描述，将“基于腾讯全AI研发实践改进”调整为“基于企业级全AI研发实践改进”\n- 规范文档相关表述从“腾讯全AI研发实践”升级为“企业级全AI研发实践”\n- 未涉及核心标准及质控流程变更，主体结构与内容保持一致\n- 文档表述更中性，适应更广泛企业场景\n\nv1.0.0 | 2026-05-13T11:54:20.623Z | auto\n\nInitial release of Harness Engineering 开发规范体系.\n\n- 提供完整全流程代码交付质量保障和自动治理标准，结合腾讯全AI研发实践\n- 明确六大质量门禁（需求、架构、编码、依赖、环境、交付）并给出详细检查项\n- 支持项目自动治理：包括依赖、语法、类型等常见问题的自动检测与修复策略和流程\n- 定义 Next.js 等前端项目标准文件结构与 README 写作要求\n- 提供依赖/质量扫描等内置工具脚本\n- 配套交付前检查清单和参考文档，便于项目自查和标准推广\n\nArchive index:\n\nArchive v1.0.3: 15 files, 28342 bytes\n\nFiles: marketing (0b), marketing/00-intro-short.md (3427b), marketing/01-vs-superpowers.md (5897b), marketing/02-vs-qcsd-quality-gates.md (7931b), references (0b), references/checklist.md (6090b), references/remediation.md (10537b), references/standards.md (9391b), scripts (0b), scripts/depcheck.sh (3417b), scripts/quality-scan.sh (3393b), skill-card.md (2241b), skill.json (653b), SKILL.md (6284b), _meta.json (140b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: harness-dev-standards\ndescription: Harness Engineering 开发规范体系 - 全流程质量门禁与自动治理标准。基于企业级全AI研发实践改进，提供完整的代码交付质量保障框架。Use when: (1) 启动新项目开发前, (2) 代码交付前做质量检查, (3) 需要标准化开发流程, (4) 执行架构评审、代码评审, (5) 排查依赖/环境问题\n---\n\n# Harness Engineering 开发规范体系\n\n## 核心哲学\n\n> **\"质量不是检查出来的，是构建出来的\"**\n\n基于 Harness Engineering 理念 + 企业级全AI研发实践，构建从需求到交付的全链路质量保障体系。\n\n---\n\n## 🚀 快速启动\n\n### 新项目初始化检查清单\n\n**每次启动新项目必须执行：**\n\n```bash\n# 1. 检查目录结构是否符合标准\n# 2. 检查 package.json 依赖完整性\n# 3. 检查 .env.example 配置完整性\n# 4. 检查 README 文档完整性\n```\n\n---\n\n## 🔐 质量门禁 (Quality Gates)\n\n**每次交付必须通过以下 6 道门禁：**\n\n### 1. 需求门禁 (Requirement Gate)\n- ✅ 需求完整清晰，无模糊点\n- ✅ 所有需求点已记录到任务追踪\n- ✅ 技术可行性已验证\n- ✅ 依赖边界已明确\n\n### 2. 架构门禁 (Architecture Gate)\n- ✅ 技术选型适合单人开发\n- ✅ 文件结构清晰，符合标准化规范\n- ✅ 依赖最小化，无冗余包\n- ✅ 扩展性设计合理\n\n**参考：** 查看 [references/standards.md](references/standards.md) 标准化文件结构\n\n### 3. 编码门禁 (Coding Gate)\n- ✅ 语法正确，无 TypeScript/JavaScript 错误\n- ✅ import 路径全部正确\n- ✅ 命名规范清晰（camelCase 变量、PascalCase 组件）\n- ✅ 不遗漏任何功能点\n- ✅ 类型定义完整，无 `any` 滥用\n\n### 4. 依赖门禁 (Dependency Gate)\n- ✅ package.json 包含所有需要的依赖\n- ✅ 无多余依赖（`depcheck` 验证）\n- ✅ 依赖版本稳定（非 alpha/beta）\n- ✅ lockfile 已提交（pnpm-lock.yaml / package-lock.json）\n\n**工具：** 运行 `scripts/depcheck.sh` 自动检查\n\n### 5. 环境门禁 (Environment Gate)\n- ✅ .env.example 包含所有需要的配置\n- ✅ 每个配置项有说明注释\n- ✅ 敏感信息不提交到 git\n- ✅ .gitignore 配置正确\n\n### 6. 交付门禁 (Delivery Gate)\n- ✅ 所有需求点都已实现\n- ✅ 项目能正常启动\n- ✅ README 写清楚使用方法\n- ✅ 构建无错误（`npm run build` 验证）\n\n---\n\n## 🤖 自动治理 (Auto Remediation)\n\n出现以下问题时，**自动修复，无需人工干预：**\n\n| 问题类型 | 自动修复策略 |\n|---------|------------|\n| 依赖安装报错 | 分析错误 → 修改版本号或移除多余依赖 |\n| import 路径错误 | 自动查找正确路径修复 |\n| 语法错误 | 自动修正 TypeScript/JavaScript 语法 |\n| 启动失败 | 读取错误日志 → 修复后重新检查 |\n| 类型错误 | 补全类型定义或修正类型不匹配 |\n\n**修复流程：**\n1. 识别错误信息\n2. 定位问题代码位置\n3. 应用修复策略\n4. 验证修复结果\n5. 重复直到问题解决\n\n---\n\n## 📁 标准化文件结构\n\n### Next.js 项目标准结构\n\n```\nproject-name/\n├── app/                    # Next.js App Router\n│   ├── page.tsx            # 首页\n│   ├── layout.tsx          # 全局布局\n│   └── globals.css         # 全局样式\n├── lib/                   # 工具库、第三方客户端\n├── public/                 # 静态资源\n├── .env.example            # 环境变量示例\n├── .gitignore              # git忽略规则\n├── package.json\n├── tsconfig.json\n├── README.md               # 必须写清楚\n└── *-init.sql              # 数据库初始化SQL\n```\n\n**README 必须包含：**\n- 项目介绍\n- 配置步骤\n- 启动命令\n- 环境变量说明\n\n**详细规范：** 查看 [references/standards.md](references/standards.md)\n\n---\n\n## ✅ 代码质量标准\n\n### TypeScript 规范\n\n- ✅ 类型正确，无隐式 `any`\n- ✅ 命名清晰，变量名表达用途\n- ✅ 注释够用，不冗余\n- ✅ 函数单一职责\n- ✅ 避免深层嵌套（超过 3 层考虑重构）\n\n### 项目规范\n\n- ✅ README 完整，新人能按文档启动\n- ✅ 环境配置说明清晰\n- ✅ 依赖干净，无未使用包\n- ✅ gitignore 正确，不提交敏感文件\n\n---\n\n## 🛠️ 内置工具脚本\n\n### 依赖检查脚本\n```bash\n# 运行依赖检查\n./scripts/depcheck.sh\n```\n\n功能：\n- 检测未使用的依赖\n- 检测缺失的依赖\n- 检测版本冲突\n- 生成修复建议\n\n### 代码质量扫描脚本\n```bash\n# 运行代码质量扫描\n./scripts/quality-scan.sh\n```\n\n功能：\n- TypeScript 类型检查\n- ESLint 规则检查\n- 命名规范检查\n- import 路径验证\n\n---\n\n## 📋 交付前检查清单\n\n**交付前逐项确认：**\n\n- [ ] 需求门禁：所有需求点实现完毕\n- [ ] 架构门禁：文件结构符合标准\n- [ ] 编码门禁：无语法/类型错误\n- [ ] 依赖门禁：依赖干净无冗余\n- [ ] 环境门禁：.env.example 完整\n- [ ] 交付门禁：项目能正常启动构建\n- [ ] README：包含完整使用说明\n\n---\n\n## 📚 参考文档\n\n| 文档 | 内容 |\n|-----|------|\n| [references/standards.md](references/standards.md) | 详细文件结构规范 + 命名规范 |\n| [references/checklist.md](references/checklist.md) | 完整交付检查清单模板 |\n| [references/remediation.md](references/remediation.md) | 常见问题自动修复策略库 |\n\n---\n\n## 💡 设计理念\n\n### 为什么这样设计？\n\n1. **前置质量** - 把质量检查左移到开发过程每个环节，不是最后才检查\n2. **自动修复** - 能自动修的绝不麻烦人，解放生产力\n3. **标准化** - 降低认知负担，所有项目看起来都一样\n4. **渐进式** - 不追求完美，每次交付比上一次更好\n\n### 和传统开发流程的区别\n\n| 传统流程 | Harness Engineering |\n|---------|-------------------|\n| 最后统一测试 | 每一步都有质量门禁 |\n| 人找问题 | 问题自动暴露并修复 |\n| 每个项目结构都不一样 | 标准化结构，上手成本为0 |\n| 依赖问题靠经验解决 | 自动检测并给出修复方案 |\n\n---\n\n*\"The best code is the code you don't have to think about.\"* - Harness Engineering Philosophy\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7ffzw77tj6c8yw14p92w963984vgsq\",\n  \"slug\": \"harness-dev-standards\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1786956998446\n}\n\nFile v1.0.3:references/checklist.md\n\n# 完整交付检查清单\n\n## 目录\n\n- [项目交付前检查清单](#项目交付前检查清单)\n- [代码评审检查清单](#代码评审检查清单)\n- [发布前检查清单](#发布前检查清单)\n- [安全检查清单](#安全检查清单)\n\n---\n\n## 项目交付前检查清单\n\n### 📋 需求检查\n\n- [ ] 所有需求点已实现\n- [ ] 需求变更已记录\n- [ ] 边缘情况已处理\n- [ ] 用户验收标准已满足\n\n### 🏗️ 架构检查\n\n- [ ] 文件结构符合标准化规范\n- [ ] 无冗余目录或文件\n- [ ] 依赖关系清晰\n- [ ] 模块划分合理\n\n### 💻 代码质量检查\n\n- [ ] TypeScript 类型检查通过 (`tsc --noEmit`)\n- [ ] ESLint 检查通过无错误\n- [ ] 无未使用的变量或导入\n- [ ] 无 `any` 类型滥用\n- [ ] 命名清晰符合规范\n- [ ] 注释充分且有意义\n- [ ] 无重复代码块\n- [ ] 函数单一职责（不超过 50 行）\n- [ ] 嵌套层级不超过 3 层\n\n### 📦 依赖检查\n\n- [ ] package.json 包含所有依赖\n- [ ] 无未使用的依赖 (`depcheck` 验证)\n- [ ] 依赖版本稳定（非 alpha/beta/rc）\n- [ ] lockfile 已提交\n- [ ] 无已知安全漏洞 (`npm audit` 验证)\n\n### 🌍 环境检查\n\n- [ ] .env.example 包含所有配置项\n- [ ] 每个配置项有说明注释\n- [ ] .env.local 已加入 .gitignore\n- [ ] 敏感信息未提交到 git\n- [ ] .gitignore 配置正确\n\n### 📖 文档检查\n\n- [ ] README.md 完整\n- [ ] README 包含项目介绍\n- [ ] README 包含快速开始指南\n- [ ] README 包含环境变量说明\n- [ ] README 包含部署说明\n- [ ] 代码注释清晰易懂\n- [ ] API 文档（如有）已更新\n\n### ✅ 功能验证\n\n- [ ] 项目能正常启动\n- [ ] 项目能正常构建 (`npm run build`)\n- [ ] 主要功能流程可正常执行\n- [ ] 错误边界已处理\n- [ ] 加载状态有反馈\n\n---\n\n## 代码评审检查清单\n\n### 代码正确性\n\n- [ ] 逻辑正确，无明显 bug\n- [ ] 边界条件已处理\n- [ ] 错误处理完善\n- [ ] 异步操作正确处理\n- [ ] 并发问题已考虑\n\n### 代码质量\n\n- [ ] 代码简洁，无冗余\n- [ ] 命名清晰，表达准确\n- [ ] 函数/类职责单一\n- [ ] 无重复代码\n- [ ] 无魔法数字/字符串\n\n### 性能考虑\n\n- [ ] 无不必要的重渲染\n- [ ] 大数据量场景已优化\n- [ ] 内存泄漏风险已检查\n- [ ] 网络请求有缓存策略\n\n### 安全性\n\n- [ ] XSS 风险已处理\n- [ ] SQL 注入风险已处理\n- [ ] 用户输入已验证\n- [ ] 敏感信息未日志输出\n- [ ] 认证授权逻辑正确\n\n### 可维护性\n\n- [ ] 代码结构清晰\n- [ ] 注释充分\n- [ ] 符合团队规范\n- [ ] 测试用例充分\n\n---\n\n## 发布前检查清单\n\n### 构建检查\n\n- [ ] 生产构建无错误\n- [ ] 构建产物大小合理\n- [ ] Tree shaking 生效\n- [ ] 无用代码已移除\n\n### 配置检查\n\n- [ ] 生产环境配置正确\n- [ ] API 端点指向生产\n- [ ] Debug 模式已关闭\n- [ ] Log 级别配置正确\n\n### 功能检查\n\n- [ ] 冒烟测试通过\n- [ ] 核心功能验证通过\n- [ ] 回归测试通过\n- [ ] 性能指标达标\n\n### 监控检查\n\n- [ ] 错误监控已配置\n- [ ] 性能监控已配置\n- [ ] 日志收集已配置\n- [ ] 告警规则已设置\n\n### 回滚准备\n\n- [ ] 上一版本备份存在\n- [ ] 回滚流程已明确\n- [ ] 数据库迁移可回滚\n- [ ] 配置回滚方案已准备\n\n---\n\n## 安全检查清单\n\n### 认证与授权\n\n- [ ] JWT secret 足够复杂\n- [ ] Token 过期时间合理\n- [ ] 权限边界清晰\n- [ ] 越权访问已防护\n- [ ] 登录失败有锁定机制\n\n### 输入验证\n\n- [ ] 所有用户输入已验证\n- [ ] 验证在服务端执行\n- [ ] 输入长度有限制\n- [ ] 特殊字符已处理\n- [ ] 文件上传有类型/大小限制\n\n### 输出编码\n\n- [ ] XSS 防护已启用\n- [ ] HTML 输出已编码\n- [ ] JSON 输出正确\n- [ ] 响应头安全配置\n\n### 数据保护\n\n- [ ] 密码已加密存储（bcrypt/argon2）\n- [ ] 敏感数据传输使用 HTTPS\n- [ ] 数据库连接信息加密\n- [ ] 日志不含敏感信息\n- [ ] PII 数据有保护措施\n\n### 依赖安全\n\n- [ ] 定期运行 `npm audit`\n- [ ] 高危漏洞已修复\n- [ ] 不使用已废弃的包\n- [ ] 依赖来源可信\n- [ ] 有依赖更新机制\n\n---\n\n## 自动检查脚本使用说明\n\n### 运行全部检查\n\n```bash\n# 进入项目目录\ncd your-project\n\n# 运行质量扫描\nbash scripts/quality-scan.sh\n```\n\n### 单独运行检查\n\n```bash\n# TypeScript 类型检查\nnpx tsc --noEmit\n\n# ESLint 检查\nnpx eslint . --ext .ts,.tsx\n\n# 依赖检查\nnpx depcheck\n\n# 安全漏洞检查\nnpm audit\n\n# 构建检查\nnpm run build\n```\n\n### 检查结果判定\n\n| 检查项 | 通过标准 |\n|--------|---------|\n| TypeScript | 0 errors |\n| ESLint | 0 errors, warnings 可接受但尽量少 |\n| depcheck | 0 unused dependencies |\n| npm audit | 0 critical, 0 high |\n| build | 成功完成无错误 |\n\n---\n\n## 常见问题排查\n\n### 依赖安装失败\n\n1. 检查 Node.js 版本是否符合要求\n2. 删除 lockfile 和 node_modules 重新安装\n3. 检查网络连接和 npm 源配置\n4. 尝试降级有问题的依赖版本\n\n### 类型检查失败\n\n1. 检查类型定义是否完整\n2. 检查 import 路径是否正确\n3. 检查 tsconfig.json 配置\n4. 必要时使用 `// @ts-ignore` 但要加注释说明\n\n### 构建失败\n\n1. 检查环境变量是否配置完整\n2. 检查是否有未使用的导入\n3. 检查路径别名配置是否正确\n4. 查看详细错误日志定位问题\n\n---\n\n## 检查清单使用指南\n\n### 如何高效使用\n\n1. **提前使用** - 不要等到交付前才检查，开发过程中逐项确认\n2. **自动化优先** - 能自动化的检查项全部做成脚本自动运行\n3. **结对验证** - 重要项目让另一个人过一遍清单\n4. **持续改进** - 根据实际情况更新清单内容\n\n### 不同项目的裁剪\n\n- **小型工具项目** - 可跳过部分架构和性能检查\n- **核心业务项目** - 必须通过全部检查项\n- **开源项目** - 额外增加文档和示例代码检查\n- **安全敏感项目** - 重点关注安全检查清单\n\n---\n\n*本清单基于 Harness Engineering 质量门禁理念制定*\n\nFile v1.0.3:references/remediation.md\n\n# 常见问题自动修复策略库\n\n## 目录\n\n- [依赖问题修复](#依赖问题修复)\n- [TypeScript 类型错误修复](#typescript-类型错误修复)\n- [Import 路径错误修复](#import-路径错误修复)\n- [语法错误修复](#语法错误修复)\n- [启动失败修复](#启动失败修复)\n- [构建错误修复](#构建错误修复)\n\n---\n\n## 依赖问题修复\n\n### 问题 1: 依赖版本冲突\n\n**错误信息：**\n```\nnpm ERR! code ERESOLVE\nnpm ERR! ERESOLVE could not resolve dependency\n```\n\n**自动修复策略：**\n\n1. **识别冲突包** - 从错误信息中提取冲突的包名和版本范围\n2. **查看 peerDependencies** - 检查冲突包的对等依赖要求\n3. **应用以下修复方案：**\n\n   **方案 A: 使用 --legacy-peer-deps（临时方案）**\n   ```bash\n   npm install --legacy-peer-deps\n   # 或\n   pnpm install --no-strict-peer-dependencies\n   ```\n\n   **方案 B: 升级/降级冲突包**\n   - 查找兼容的版本组合\n   - 更新 package.json 中的版本号\n   - 重新安装\n\n   **方案 C: 使用 overrides（npm）或 resolutions（pnpm）**\n   ```json\n   // package.json\n   {\n     \"overrides\": {\n       \"react\": \"^18.0.0\"\n     }\n   }\n   ```\n\n4. **验证修复** - 重新运行 install 确认问题解决\n\n---\n\n### 问题 2: 未使用的依赖\n\n**错误信息：**\n```\nUnused dependencies found:\n- package-a\n- package-b\n```\n\n**自动修复策略：**\n\n1. **二次确认** - 检查代码中是否真的没有使用这些包\n   - 搜索 import 语句\n   - 搜索 require 调用\n   - 检查配置文件中的引用\n\n2. **安全移除** - 如果确认未使用：\n   ```bash\n   npm uninstall package-a package-b\n   # 或\n   pnpm remove package-a package-b\n   ```\n\n3. **注意事项**\n   - 不要移除仅在配置文件中引用的包\n   - 不要移除 peerDependencies 中声明的包\n   - 某些包可能通过字符串动态导入，需要特殊处理\n\n---\n\n### 问题 3: 缺失的依赖\n\n**错误信息：**\n```\nCannot find module 'missing-package'\n```\n\n**自动修复策略：**\n\n1. **识别缺失包名** - 从错误信息提取\n2. **检查是否为 devDependency** - 有些包可能只在开发环境需要\n3. **安装依赖**：\n   ```bash\n   npm install missing-package\n   # 或开发依赖\n   npm install -D missing-package\n   ```\n\n4. **特殊情况处理**\n   - 如果是类型定义缺失：`npm install -D @types/missing-package`\n   - 如果是 monorepo 内部包：检查 workspace 配置\n   - 如果是私有包：检查 npm registry 配置\n\n---\n\n### 问题 4: 安全漏洞\n\n**错误信息：**\n```\nnpm audit found 3 high severity vulnerabilities\n```\n\n**自动修复策略：**\n\n1. **运行自动修复**：\n   ```bash\n   npm audit fix\n   ```\n\n2. 如果自动修复无法解决：\n   - 查看漏洞详情：`npm audit`\n   - 检查受影响包的最新版本是否修复\n   - 如果有修复版本，手动升级：`npm update vulnerable-package`\n   - 如果无法升级，考虑使用替代包或添加忽略说明\n\n3. **记录说明** - 如果必须保留有漏洞的版本，在代码中添加注释说明原因\n\n---\n\n## TypeScript 类型错误修复\n\n### 问题 1: 隐式 any 类型\n\n**错误信息：**\n```\nParameter 'x' implicitly has an 'any' type.\n```\n\n**自动修复策略：**\n\n1. **推断类型** - 根据参数使用方式推断合理的类型\n2. **添加类型注解**：\n   ```typescript\n   // 修复前\n   function process(x) { ... }\n   \n   // 修复后\n   function process(x: string) { ... }\n   ```\n\n3. **如果类型确实不确定**：\n   - 使用 `unknown` 而不是 `any`\n   - 添加类型守卫\n   ```typescript\n   function process(x: unknown) {\n     if (typeof x === 'string') {\n       // x 在这里是 string 类型\n     }\n   }\n   ```\n\n---\n\n### 问题 2: 类型不匹配\n\n**错误信息：**\n```\nType 'string' is not assignable to type 'number'.\n```\n\n**自动修复策略：**\n\n1. **分析上下文** - 确定期望的类型和实际的类型\n2. **应用类型转换**：\n   ```typescript\n   // 修复前\n   const count: number = params.count;\n   \n   // 修复后\n   const count: number = Number(params.count);\n   ```\n\n3. **常见转换模式**：\n   - 字符串转数字：`Number(x)` 或 `parseInt(x, 10)`\n   - 任意转布尔：`Boolean(x)` 或 `!!x`\n   - 联合类型收窄：使用类型守卫\n\n---\n\n### 问题 3: 可能为 null/undefined\n\n**错误信息：**\n```\nObject is possibly 'null'.\nObject is possibly 'undefined'.\n```\n\n**自动修复策略：**\n\n1. **添加空值检查**（推荐）：\n   ```typescript\n   // 修复前\n   const name = user.name;\n   \n   // 修复后\n   const name = user?.name;\n   ```\n\n2. **如果确定不会为空**，使用非空断言：\n   ```typescript\n   const name = user!.name;\n   ```\n\n3. **提供默认值**：\n   ```typescript\n   const name = user?.name ?? 'default';\n   ```\n\n---\n\n### 问题 4: 缺少属性定义\n\n**错误信息：**\n```\nProperty 'email' does not exist on type 'User'.\n```\n\n**自动修复策略：**\n\n1. **找到类型定义位置**\n2. **添加缺失的属性**：\n   ```typescript\n   // 修复前\n   interface User {\n     id: number;\n     name: string;\n   }\n   \n   // 修复后\n   interface User {\n     id: number;\n     name: string;\n     email: string;\n   }\n   ```\n\n3. **如果是外部类型**，使用类型扩展：\n   ```typescript\n   declare module 'external-lib' {\n     interface User {\n       email: string;\n     }\n   }\n   ```\n\n---\n\n## Import 路径错误修复\n\n### 问题 1: 模块未找到\n\n**错误信息：**\n```\nCannot find module '@/components/Button' or its corresponding type declarations.\n```\n\n**自动修复策略：**\n\n1. **检查路径别名配置** - 查看 tsconfig.json 中的 paths 配置\n2. **验证文件是否存在** - 检查目标文件的实际位置\n3. **修正路径**：\n\n   **相对路径问题**：\n   ```typescript\n   // 修复前\n   import Button from '../../components/Button';\n   \n   // 修复后（层数不对）\n   import Button from '../../../components/Button';\n   ```\n\n   **路径别名问题**：\n   - 确认 tsconfig.json 配置正确\n   - 确认构建工具（webpack/vite）也配置了别名\n   - 如果使用 Next.js，检查是否配置了 baseUrl\n\n4. **扩展名问题** - 某些环境需要明确加 `.ts` / `.tsx` 扩展名\n\n---\n\n### 问题 2: 命名导出不存在\n\n**错误信息：**\n```\nModule '\"../utils\"' has no exported member 'formatDate'.\n```\n\n**自动修复策略：**\n\n1. **检查目标模块的导出**\n2. **修正导入名称** - 可能是拼写错误\n3. **如果是默认导出**，改为默认导入：\n   ```typescript\n   // 修复前\n   import { formatDate } from '../utils';\n   \n   // 修复后\n   import formatDate from '../utils';\n   ```\n\n4. **如果确实需要命名导出**，在目标模块添加导出：\n   ```typescript\n   // 在 ../utils 中添加\n   export { formatDate };\n   ```\n\n---\n\n## 语法错误修复\n\n### 常见 JavaScript/TypeScript 语法错误\n\n| 错误模式 | 修复方案 |\n|---------|---------|\n| 缺少分号 | 添加分号（或配置无分号风格） |\n| 括号不匹配 | 找出缺失的括号并补全 |\n| 引号不匹配 | 统一引号类型（单/双/模板字符串） |\n| `const` 变量重新赋值 | 改为 `let` 或避免重新赋值 |\n| 解构时使用保留字 | 重命名变量：`{ default: defaultVal }` |\n| 异步函数中没有 await | 添加 await 或移除 async |\n\n### 示例修复\n\n**问题：缺少闭括号**\n```typescript\n// 修复前\nfunction add(a, b {\n  return a + b;\n}\n\n// 修复后\nfunction add(a, b) {\n  return a + b;\n}\n```\n\n**问题：const 重新赋值**\n```typescript\n// 修复前\nconst count = 0;\ncount = 1;\n\n// 修复后\nlet count = 0;\ncount = 1;\n```\n\n---\n\n## 启动失败修复\n\n### 问题 1: 端口被占用\n\n**错误信息：**\n```\nPort 3000 is already in use.\n```\n\n**自动修复策略：**\n\n1. **查找占用进程**：\n   ```bash\n   lsof -i :3000\n   # 或\n   netstat -ano | findstr :3000\n   ```\n\n2. **杀掉进程**：\n   ```bash\n   kill -9 <PID>\n   ```\n\n3. **或使用其他端口**：\n   - 修改 package.json 中的启动命令\n   - 或设置环境变量 `PORT=3001`\n\n---\n\n### 问题 2: 环境变量缺失\n\n**错误信息：**\n```\nError: DATABASE_URL is not defined\n```\n\n**自动修复策略：**\n\n1. **检查 .env 文件是否存在**\n2. **检查 .env.example 中的配置项**\n3. **创建/更新 .env 文件**，添加缺失的环境变量\n4. **确认环境变量加载工具已正确配置**（dotenv 等）\n\n---\n\n### 问题 3: Node.js 版本不兼容\n\n**错误信息：**\n```\nError: Cannot find module 'node:fs'\n```\n\n**自动修复策略：**\n\n1. **检查 package.json 中的 engines 配置**\n2. **建议升级 Node.js 版本**\n3. **或降级相关依赖包到兼容版本**\n\n---\n\n## 构建错误修复\n\n### 问题 1: Next.js 构建时页面报错\n\n**错误信息：**\n```\nError occurred prerendering page \"/xxx\".\n```\n\n**自动修复策略：**\n\n1. **检查是否有服务端不支持的 API**（window, document 等）\n2. **添加动态导入或客户端标记**：\n   ```typescript\n   'use client'; // 客户端组件\n   \n   // 或动态导入\n   const Component = dynamic(() => import('./Component'), {\n     ssr: false\n   });\n   ```\n\n3. **检查 getStaticProps/getServerSideProps 中的错误**\n4. **检查数据获取是否有异常未捕获**\n\n---\n\n### 问题 2: 构建产物过大\n\n**警告信息：**\n```\nWarning: asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).\n```\n\n**自动修复策略：**\n\n1. **分析 bundle 组成**：\n   ```bash\n   npx webpack-bundle-analyzer\n   # 或 Next.js 内置分析\n   ANALYZE=true npm run build\n   ```\n\n2. **应用优化手段**：\n   - 代码分割（动态 import）\n   - 移除未使用的依赖\n   - 使用更轻量的替代库\n   - 启用 Tree Shaking\n   - 配置 externals\n\n---\n\n## 修复验证流程\n\n每次自动修复后，必须执行以下验证：\n\n1. **重新运行出错的命令** - 确认错误已解决\n2. **运行类型检查** - `npx tsc --noEmit`\n3. **运行 lint 检查** - `npx eslint .`\n4. **尝试启动项目** - `npm run dev`\n5. **尝试构建项目** - `npm run build`\n\n**如果还有错误，重复诊断-修复-验证流程，直到全部通过。**\n\n---\n\n## 修复优先级原则\n\n1. **正确性优先** - 保证修复后的代码逻辑正确\n2. **最小改动** - 只修改必要的部分，不引入无关变更\n3. **保留语义** - 修复后代码的行为应和原意图一致\n4. **可维护性** - 修复方案应清晰易懂，不是黑魔法\n\n---\n\n*本策略库基于 100+ 实际项目问题总结而成，持续更新中...*\n\nFile v1.0.3:references/standards.md\n\n# 详细文件结构与命名规范\n\n## 目录\n\n- [Next.js 项目标准结构](#nextjs-项目标准结构)\n- [Node.js 后端项目结构](#nodejs-后端项目结构)\n- [React 组件库项目结构](#react-组件库项目结构)\n- [命名规范](#命名规范)\n- [Git 提交规范](#git-提交规范)\n\n---\n\n## Next.js 项目标准结构\n\n### 完整目录树\n\n```\nproject-name/\n├── app/                              # App Router 目录\n│   ├── (auth)/                       # 路由组 - 认证相关\n│   │   ├── login/\n│   │   │   └── page.tsx\n│   │   └── register/\n│   │       └── page.tsx\n│   ├── (dashboard)/                  # 路由组 - 仪表板\n│   │   ├── layout.tsx\n│   │   └── page.tsx\n│   ├── api/                          # API 路由\n│   │   └── hello/\n│   │       └── route.ts\n│   ├── layout.tsx                    # 根布局\n│   ├── page.tsx                      # 首页\n│   └── globals.css                   # 全局样式\n├── components/                       # 可复用组件\n│   ├── ui/                           # 基础 UI 组件 (Button, Input, etc.)\n│   │   ├── button.tsx\n│   │   └── input.tsx\n│   ├── layout/                       # 布局组件\n│   │   ├── header.tsx\n│   │   └── sidebar.tsx\n│   └── features/                     # 业务组件\n│       └── user-profile.tsx\n├── lib/                             # 工具库\n│   ├── utils/                        # 通用工具函数\n│   │   └── format.ts\n│   ├── hooks/                        # 自定义 Hooks\n│   │   └── use-local-storage.ts\n│   ├── types/                        # TypeScript 类型定义\n│   │   └── index.ts\n│   └── clients/                      # 第三方客户端\n│       ├── supabase.ts\n│       └── openai.ts\n├── public/                           # 静态资源\n│   ├── images/\n│   ├── icons/\n│   └── favicon.ico\n├── styles/                           # 样式文件\n│   └── theme.css\n├── .env.example                      # 环境变量示例\n├── .env.local                        # 本地环境变量 (gitignore)\n├── .gitignore\n├── package.json\n├── pnpm-lock.yaml / package-lock.json\n├── tsconfig.json\n├── next.config.js\n├── tailwind.config.js (可选)\n├── README.md\n└── *-init.sql                        # 数据库初始化SQL\n```\n\n### 文件命名规则\n\n| 类型 | 命名规范 | 示例 |\n|------|---------|------|\n| 页面组件 | kebab-case + page.tsx | `user-profile/page.tsx` |\n| UI 组件 | PascalCase | `Button.tsx`, `UserCard.tsx` |\n| Hook 函数 | camelCase, use- 前缀 | `use-local-storage.ts` |\n| 工具函数 | camelCase | `format-date.ts` |\n| 类型定义 | PascalCase | `User.ts`, `ApiResponse.ts` |\n| 配置文件 | dot notation | `.eslintrc.js`, `tailwind.config.js` |\n\n---\n\n## Node.js 后端项目结构\n\n```\nbackend-project/\n├── src/\n│   ├── controllers/                  # 控制器层\n│   │   └── user.controller.ts\n│   ├── services/                     # 业务逻辑层\n│   │   └── user.service.ts\n│   ├── repositories/                 # 数据访问层\n│   │   └── user.repository.ts\n│   ├── routes/                       # 路由定义\n│   │   └── user.routes.ts\n│   ├── middleware/                   # 中间件\n│   │   └── auth.middleware.ts\n│   ├── models/                       # 数据模型\n│   │   └── user.model.ts\n│   ├── types/                        # 类型定义\n│   │   └── index.ts\n│   ├── utils/                        # 工具函数\n│   │   └── validator.ts\n│   ├── config/                       # 配置文件\n│   │   └── database.ts\n│   └── app.ts                        # 应用入口\n├── tests/                            # 测试文件\n│   └── user.test.ts\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n---\n\n## React 组件库项目结构\n\n```\ncomponent-library/\n├── src/\n│   ├── components/\n│   │   ├── Button/\n│   │   │   ├── Button.tsx\n│   │   │   ├── Button.test.tsx\n│   │   │   ├── Button.stories.tsx\n│   │   │   └── index.ts\n│   │   └── Input/\n│   │       ├── Input.tsx\n│   │       ├── Input.test.tsx\n│   │       ├── Input.stories.tsx\n│   │       └── index.ts\n│   ├── hooks/\n│   ├── utils/\n│   ├── styles/\n│   └── index.ts                      # 库入口\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n├── vite.config.ts (可选)\n└── README.md\n```\n\n---\n\n## 命名规范\n\n### 通用原则\n\n1. **语义化** - 名称要能准确表达用途\n2. **一致性** - 同一类事物用相同命名模式\n3. **简洁性** - 不使用冗余词汇，不缩写到难以理解\n\n### 文件命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| React 组件 | PascalCase | `UserProfile.tsx` | `userProfile.tsx`, `user_profile.tsx` |\n| 普通模块 | kebab-case | `auth-utils.ts` | `authUtils.ts`, `AuthUtils.ts` |\n| Hook 文件 | kebab-case, use- 前缀 | `use-click-outside.ts` | `UseClickOutside.ts` |\n| 类型定义 | PascalCase | `UserProfile.ts` | `user-profile.ts` |\n| 配置文件 | dot notation | `.eslintrc.js` | `eslintrc.js` |\n| 图片资源 | kebab-case | `hero-banner.png` | `HeroBanner.png` |\n\n### 代码命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| 类/组件 | PascalCase | `class UserService {}` | `class userService {}` |\n| 函数/方法 | camelCase | `function getUser() {}` | `function GetUser() {}` |\n| 变量 | camelCase | `const userName = 'xxx'` | `const UserName = 'xxx'` |\n| 常量 | UPPER_SNAKE_CASE | `const MAX_RETRY = 3` | `const maxRetry = 3` |\n| 接口/类型 | PascalCase | `interface User {}` | `interface user {}` |\n| 枚举 | PascalCase | `enum Status {}` | `enum STATUS {}` |\n\n### React 特有命名\n\n| 类型 | 规范 | 示例 |\n|------|------|------|\n| 组件名 | PascalCase | `UserProfile`, `Button` |\n| Props 接口 | `ComponentNameProps` | `UserProfileProps`, `ButtonProps` |\n| Hook 函数 | camelCase, use 前缀 | `useLocalStorage`, `useDebounce` |\n| 事件处理 | `handle` + 名词 + 动词 | `handleSubmitClick`, `handleInputChange` |\n\n---\n\n## Git 提交规范\n\n### 提交信息格式\n\n```\n<type>(<scope>): <subject>\n\n<body>\n\n<footer>\n```\n\n### Type 类型\n\n| 类型 | 说明 |\n|------|------|\n| feat | 新功能 |\n| fix | 修复 bug |\n| docs | 文档更新 |\n| style | 代码格式调整（不影响代码运行） |\n| refactor | 重构（既不是新增功能，也不是修复 bug） |\n| perf | 性能优化 |\n| test | 增加测试 |\n| chore | 构建过程或辅助工具的变动 |\n| ci | CI/CD 相关变更 |\n\n### 示例\n\n```\nfeat(auth): add user registration flow\n\n- Add registration form validation\n- Add email verification\n- Add password strength checker\n\nCloses #123\n```\n\n```\nfix(api): correct user profile response type\n\nThe profile endpoint was returning incorrect field names.\nThis fix aligns the response with the API specification.\n```\n\n---\n\n## README 必须包含的内容\n\n每个项目的 README.md 必须包含以下部分：\n\n1. **项目介绍** - 一句话说明项目是做什么的\n2. **功能特性** - 主要功能列表\n3. **技术栈** - 使用的主要技术\n4. **快速开始**\n   - 环境要求\n   - 安装步骤\n   - 启动命令\n5. **环境变量** - 所有需要配置的环境变量及说明\n6. **项目结构** - 简要目录结构说明\n7. **开发指南** - 如何添加新功能/组件\n8. **部署说明** - 如何部署到生产环境\n9. **License** - 开源协议\n\n### README 模板\n\n```markdown\n# 项目名称\n\n一句话项目介绍。\n\n## ✨ 功能特性\n\n- 功能 1\n- 功能 2\n- 功能 3\n\n## 🛠️ 技术栈\n\n- **前端框架**: Next.js 14\n- **样式**: Tailwind CSS\n- **数据库**: Supabase\n- **语言**: TypeScript\n\n## 🚀 快速开始\n\n### 环境要求\n\n- Node.js >= 18\n- pnpm >= 8\n\n### 安装\n\n```bash\n# 克隆项目\ngit clone https://github.com/username/repo.git\n\n# 进入项目目录\ncd repo\n\n# 安装依赖\npnpm install\n```\n\n### 配置环境变量\n\n```bash\ncp .env.example .env.local\n```\n\n编辑 `.env.local` 填入以下配置：\n\n| 变量名 | 说明 | 示例 |\n|--------|------|------|\n| DATABASE_URL | 数据库连接地址 | `postgresql://...` |\n| API_KEY | API 密钥 | `sk-xxx` |\n\n### 启动开发环境\n\n```bash\npnpm dev\n```\n\n访问 http://localhost:3000\n\n## 📁 项目结构\n\n```\n简要目录结构说明\n```\n\n## 📝 开发指南\n\n### 添加新组件\n\n1. 在 `components/features/` 创建组件\n2. 遵循组件命名规范\n3. 添加类型定义\n\n### 提交代码\n\n参考 [Git 提交规范](#git-提交规范)\n\n## 🚢 部署\n\n```bash\npnpm build\npnpm start\n```\n\n## 📄 License\n\nMIT\n```\n\n---\n\n*本规范基于 Harness Engineering 理念 + 企业级全AI研发实践制定*\n\nFile v1.0.3:marketing/00-intro-short.md\n\n# Harness Dev Standards — 你的 AI 代码交付质检官\n\n> ai-acheng 出品 | 每个 AI 开发者必备的质量标准工具\n\n---\n\n## 🦆 一句话介绍\n\nAI 写代码的时代，效率已经不是问题。\n问题是 —— 你敢把 AI 写的代码直接交付吗？\n\n**Harness Dev Standards — 给你的代码做一次全面体检，只需要 30 秒。**\n\n---\n\n## ✨ 核心特性\n\n### 🛡️ 6 道质量门禁，一道都不能少\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| 📋 需求门禁 | 需求完整清晰，无模糊点 |\n| 🏗️ 架构门禁 | 文件结构标准化，依赖最小化 |\n| 💻 编码门禁 | 语法类型正确，命名规范 |\n| 📦 依赖门禁 | 依赖完整无冗余，无安全漏洞 |\n| 🌍 环境门禁 | .env.example 完整，敏感信息保护 |\n| ✅ 交付门禁 | 项目可构建，README 完整 |\n\n---\n\n### 🤖 10+ 常见问题自动修复\n\n遇到问题不用慌，策略库告诉你怎么修：\n\n- ✅ 依赖版本冲突 → 3 种解决方案\n- ✅ TypeScript 类型错误 → 标准修复模板\n- ✅ Import 路径错误 → 自动排查流程\n- ✅ 启动/构建失败 → 根因定位指南\n\n**超过 100+ 实际项目踩坑总结的修复策略。\n\n---\n\n### 🛠️ 2 个一键运行脚本\n\n```bash\n# 依赖检查 — 发现未使用依赖 + 安全漏洞\n./scripts/depcheck.sh\n\n# 完整质量扫描 — 5 大项一键跑完\n./scripts/quality-scan.sh\n```\n\n**30 秒出结果，零配置，谁都会用。**\n\n---\n\n### 📚 3 份配套参考手册\n\n| 手册 | 内容 |\n|-----|------|\n| standards.md | 3 种项目标准结构 + 完整命名规范 |\n| checklist.md | 交付前逐项检查清单 |\n| remediation.md | 常见问题自动修复策略库 |\n\n---\n\n## 🚀 谁适合用？\n\n✅ **个人开发者** — 不想交付的代码让别人吐槽\n✅ **小型团队** — 想要统一的开发规范\n✅ **AI 辅助开发** — AI 写的代码需要质量把关\n✅ **开源项目** — 想要标准化交付质量\n\n---\n\n## ❌ 谁不适合用？\n\n❌ **大型企业核心系统** — 请用 QCSD Development Swarm\n❌ **需要合规审计报告** — 请用 QCSD Development Swarm\n❌ **需要缺陷预测/突变测试** — 请用 QCSD Development Swarm\n\n---\n\n## 🎯 和其他工具的关系\n\n| 工具 | 定位 | 配合方式 |\n|-----|------|---------|\n| Superpowers | 开发工作流框架 | 开发前 + 开发中用 |\n| Harness Dev Standards | 质量标准体系 | 开发后 + 交付前用 |\n| QCSD Swarm | 企业级深度审计 | 上线前最终检查用 |\n\n**三个工具串联，就是完整的 AI 时代开发流水线。\n\n---\n\n## 💡 设计哲学\n\n> \"质量不是检查出来的，是构建出来的。\n\n> \"没有质量的产能，都是负债。\"\n\n---\n\n## 📦 安装使用\n\n1. 安装 Skill 到你的 OpenClaw\n2. 每次交付前运行：`quality-scan.sh\n3. 对照报告修复问题\n\n**就这么简单。**\n\n---\n\n## 🦆 最后说两句\n\nAI 让写代码变得越来越容易。\n但写出「好代码」和「能用的代码」，永远不是一回事。\n\n**Superpowers 给你踩油门的能力。**\n**Harness Dev Standards 给你踩刹车的底气。\n\n一个让你跑得快。\n一个让你跑得远。\n\n---\n\n> 关注「赛博鸭子」，获取更多 AI 开发实战工具。\n> \n> **GitHub:** github.com/AI-aCheng/harness-dev-standards\n> **ClawHub:** clawhub.ai/ai-acheng/harness-dev-standards\n\n---\n\n*\"The best code is the code you don't have to think about.*\n\nFile v1.0.3:marketing/01-vs-superpowers.md\n\n# 用了 100 次 Superpowers 后，我发现大多数人都用错了\n\n> 本文作者：ai-acheng | 首发：赛博鸭子技术周刊\n\n---\n\n## 🔍 一个扎心的发现\n\n这段时间用 Superpowers 做了十几个项目，从简单的工具脚本到复杂的 Next.js 应用。\n\n发现一个很有趣的现象：\n\n**90% 的人用 Superpowers，最后都卡在同一个地方 —— 代码\"写完了\"，但不敢交付。**\n\n子 agent 拍胸脯说\"功能全部实现了\"，你跑一下发现：\n- TypeScript 飙红 20 几个类型错误\n- package.json 里躺着 5 个根本没用的依赖\n- .env.example 只有三行配置，连个注释都没有\n- README 写得像天书，新人根本跑不起来\n\nSuperpowers 很擅长\"把代码写出来\"，但它不负责\"把代码写好\"。\n\n这就是为什么我做了 **Harness Dev Standards**。\n\n---\n\n## 🎯 一个负责\"过程\"，一个负责\"结果\"\n\n很多人问我：这俩不都是开发工具吗？有啥区别？\n\n我举个最简单的例子：\n\n### 场景 1：你说\"帮我做个用户登录系统\"\n\n**Superpowers 是这样干活的：**\n\n1. 🤔 先问你 5 个澄清问题：要不要验证码？要不要记住登录？密码强度要求？\n2. 📋 给你 3 个技术方案：NextAuth / Lucia / 自研，附优缺点对比\n3. 🔨 拆成 8 个小任务，每个任务 2-5 分钟\n4. 🤖 派 8 个子 agent 逐个实现，每个写完都有双重评审\n5. ✅ 最后交付：\"功能全部完成，你测一下\"\n\n**这个过程中，它根本不关心：**\n- 代码风格好不好\n- 依赖干不干净\n- README 写没写清楚\n- .env 配置有没有注释\n\n**它只保证「过程正确」，不保证「结果合格」。**\n\n---\n\n### 场景 2：你说\"这个登录系统写完了，帮我检查一下\"\n\n**Harness Dev Standards 是这样干活的：**\n\n1. 🔍 运行 `quality-scan.sh`\n2. ❌ TypeScript：发现 3 个类型错误，附修复方案\n3. ⚠️  依赖：发现 2 个未使用的包，可以安全移除\n4. ❌ 配置：.env.example 缺少 2 个配置项的注释\n5. ✅ 构建：通过\n6. 📋 对照 6 道门禁逐项确认，给出最终交付评分\n\n**这个过程中，它根本不关心：**\n- 你是花 1 天还是 1 周写的\n- 你是用 TDD 还是想到哪写到哪\n- 你拆了多少个任务，用了多少个子 agent\n\n**它只保证「结果合格」，不关心「过程怎么来的」。**\n\n---\n\n## 📊 一张表看懂本质区别\n\n| 对比项 | Superpowers | Harness Dev Standards |\n|-------|------------|----------------------|\n| **核心定位** | 🎯 开发工作流框架 | 🛡️ 质量标准体系 |\n| **回答的问题** | 怎么开发？ | 什么叫做好？ |\n| **关注点** | 过程正确 | 结果正确 |\n| **执行者** | 子 agent 分工协作 | 当前 agent 一键检查 |\n| **强制程度** | 流程强制，不能跳步 | 标准强制，必须通过 |\n| **输出物** | 可运行的功能代码 | 质量检查报告 + 修复建议 |\n| **使用阶段** | 开发前 + 开发中 | 开发后 + 交付前 |\n| **运行时间** | 5~30 分钟 | < 1 分钟 |\n\n---\n\n## 💡 它们是最佳拍档，不是竞争对手\n\n我知道很多人会问：那我应该用哪个？\n\n**成年人不做选择，两个都要。**\n\n这是我现在的标准开发流程：\n\n```\n用户需求 → Superpowers（组织开发过程） → 代码写好了 → Harness Dev Standards（质量检查） → 交付\n```\n\n### Step 1: Superpowers 管\"做对的事\"\n- 确保需求是清晰的，不会做着做着跑偏\n- 确保技术方案是经过论证的，不会上来就硬写\n- 确保代码是按 spec 实现的，不会漏功能\n\n### Step 2: Harness 管\"把事做对\"\n- 确保代码质量是达标的，类型全对\n- 确保依赖是干净的，没有多余的包\n- 确保交付是标准化的，README 能看懂\n\n**Superpowers 让你\"不会做错事\"，Harness 让你\"不会把事做坏\"。**\n\n---\n\n## 🚀 为什么每个开发者都需要一套质量标准\n\n我见过太多项目：\n- 功能都能用，但没人敢改代码\n- 依赖一大堆，根本不知道哪个在用\n- 新人上手要折腾三天才能跑起来\n- 上线前才发现配置漏了，手忙脚乱\n\n这些问题，都不是\"功能问题\"，而是\"质量问题\"。\n\nSuperpowers 解决的是\"产能问题\" —— 让你更快地写出更多代码。\n\nHarness 解决的是\"质量问题\" —— 让你写的代码敢交付、敢维护、敢给别人用。\n\n**没有质量的产能，都是负债。**\n\n---\n\n## 📦 开箱即用的 6 道质量门禁\n\nHarness Dev Standards 把我踩过的坑，总结成了 6 道硬性门禁：\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| **需求门禁** | 需求完整清晰，无模糊点 |\n| **架构门禁** | 文件结构标准化，依赖最小化 |\n| **编码门禁** | 语法类型正确，命名规范 |\n| **依赖门禁** | 依赖完整无冗余，无安全漏洞 |\n| **环境门禁** | .env.example 完整，敏感信息保护 |\n| **交付门禁** | 项目可构建，README 完整 |\n\n每一道门禁都有对应的自动检查脚本和自动修复策略库。\n\n不用你记，运行 `./quality-scan.sh`，一分钟出结果。\n\n---\n\n## 🎉 最后说两句\n\nAI 写代码的时代，效率已经不是问题了。\n\n真正的问题是：\n- 你敢把 AI 写的代码直接上生产吗？\n- 三个月后，你还敢改这段代码吗？\n- 新人接手，能在 30 分钟内跑起来吗？\n\nSuperpowers 给了你踩油门的能力。\nHarness Dev Standards 给了你踩刹车的底气。\n\n**一个让你跑得快，一个让你跑得远。**\n\n---\n\n### 🦆 配套工具\n\n- **Harness Dev Standards Skill**: 本文主角，你的个人交付质检官\n- **Superpowers Skill**: 子 agent 驱动的 TDD 开发工作流\n- **QCSD Development Swarm**: 企业级深度质量审计（下篇讲）\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n\nFile v1.0.3:marketing/02-vs-qcsd-quality-gates.md\n\n# 你的项目，真的需要跑 QCSD 质量门禁吗？\n\n> 本文作者：ai-acheng | 首发：赛博鸭子技术周刊\n\n---\n\n## 🤔 一个灵魂拷问\n\n前段时间发了 QCSD Development Swarm 的介绍，很多同学问：\n\n\"这个看起来好厉害，我能不能用在我的个人项目上？\"\n\n我一般会反问三个问题：\n1. 你的项目上线后如果出 bug，会有人赔钱吗？\n2. 你的团队超过 10 个人了吗？\n3. 你需要向合规部门提交审计报告吗？\n\n如果答案都是 NO，相信我 —— 你不需要 QCSD。\n\n**杀鸡不用牛刀，但很多人总想着用 CT 扫描仪治感冒。**\n\n---\n\n## 🏥 两个工具的本质区别\n\n我打个最直白的比方：\n\n### QCSD Development Swarm = 医院的 CT 扫描仪\n\n- ✅ 极其精准，能看到毫米级的问题\n- ✅ 输出 12 份专业报告，附医生诊断\n- ✅ 可以检测出早期癌变（缺陷预测）\n- ❌ 很贵，做一次几千块\n- ❌ 很慢，排队 + 扫描 + 等报告 = 大半天\n- ❌ 要专业医生才能看懂报告\n\n**你不会因为有点头疼就去做 CT。**\n\n---\n\n### Harness Dev Standards = 家里的体温计\n\n- ✅ 简单，拿起来就用，谁都会\n- ✅ 快速，量一下几秒钟出结果\n- ✅ 便宜，几块钱一个，家家都有\n- ✅ 告诉你\"发烧了，该去医院了\"\n- ❌ 不能告诉你具体是什么病\n- ❌ 不能给你开处方\n\n**你也不会拿着体温计去做手术。**\n\n---\n\n## 📊 一张表看懂适用场景\n\n| 对比项 | QCSD Development Swarm | Harness Dev Standards |\n|-------|-----------------------|----------------------|\n| **定位** | 🏭 企业级质量工厂 | 🛡️ 个人质量标准 |\n| **目标用户** | 大型企业开发团队 | 单人/小型团队 |\n| **核心问题** | 能不能上生产？ | 能不能交付？ |\n| **Agent 数量** | 10 个 specialist 并行 | 0 个（自己检查） |\n| **运行时间** | 30 分钟 ~ 几小时 | < 1 分钟 |\n| **Token 消耗** | 💰 极高（几万 token） | 💸 极低（几百 token） |\n| **输出物** | 12 份专业报告 + 高管摘要 | 1 页检查报告 + 修复建议 |\n| **裁决机制** | SHIP / CONDITIONAL / HOLD | 通过 / 需要修复 |\n\n---\n\n## 🔬 QCSD 到底有多重型？\n\n很多人对 QCSD 的复杂度没有概念。\n\n我给你列一下它的配置：\n\n### 10 个专业 Agent，各司其职\n\n| Agent | 职责 |\n|-------|------|\n| qe-tdd-specialist | TDD 合规性审计 |\n| qe-code-complexity | 圈复杂度分析 |\n| qe-coverage-specialist | 测试覆盖率深度分析 |\n| qe-security-scanner | 安全漏洞扫描（OWASP Top 10） |\n| qe-performance-tester | 性能基准测试 |\n| qe-mutation-tester | 突变测试（测试用例质量） |\n| qe-message-broker-tester | 消息中间件健康检查 |\n| qe-sap-idoc-tester | SAP IDoc 接口审计 |\n| qe-sod-analyzer | 职责分离合规审计 |\n| qe-defect-predictor | AI 缺陷预测 |\n\n### 9 条强制执行规则\n\n| 规则 | 内容 |\n|-----|------|\n| E1 | 必须同时启动全部 3 个核心 agent，不能例外 |\n| E2 | 所有并行任务必须在同一个消息中发起 |\n| E3 | 每批任务完成后必须等全部结束才能下一步 |\n| E4 | 条件满足时必须启动所有条件 agent，不能跳过 |\n| E5 | 必须严格按阈值给出 SHIP/CONDITIONAL/HOLD 裁决 |\n| E6 | 必须生成完整报告结构，不能缩写 |\n| E7 | 每个 agent 必须先读参考文件才能开始分析 |\n| E8 | 必须对所有代码变更运行缺陷预测，永远 |\n| E9 | 必须执行学习持久化，不能跳过 |\n\n**违反任何一条，整个 Swarm 直接终止。**\n\n这哪是工具啊，这分明是一套军事化管理体系。\n\n---\n\n## 🪶 Harness 到底有多轻量？\n\n相比之下，Harness 简单到不好意思叫\"系统\"。\n\n### 6 道门禁，一键跑完\n\n```bash\n./quality-scan.sh\n```\n\n然后你就看到：\n\n```\n=====================================\n  Harness Engineering - 质量扫描\n=====================================\n\n🔍 1/5 - TypeScript 类型检查...\n✅ TypeScript 类型检查通过\n\n🔍 2/5 - ESLint 代码规范检查...\n✅ ESLint 检查通过\n\n🔍 3/5 - 依赖检查...\n✅ 未发现未使用的 dependencies\n✅ 未发现高危安全漏洞\n\n🔍 4/5 - 环境配置检查...\n✅ .env.example 包含配置说明\n\n🔍 5/5 - 构建检查...\n✅ 构建检查通过\n\n=====================================\n  质量扫描结果\n=====================================\n\n✅ 通过: 5\n❌ 失败: 0\n\n🎉 所有检查通过！代码质量优秀！\n```\n\n**整个过程 30 秒，消耗几百 token。**\n\n---\n\n## 🎯 什么时候用哪个？一张决策图\n\n```\n你要做质量检查吗？\n    │\n    ├─ 是个人项目/小型工具？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 30 秒出结果\n    │      · 自动修复建议\n    │      · 几乎零成本\n    │\n    ├─ 是团队项目但不上生产？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 统一团队规范\n    │      · 避免低级错误\n    │      · 保证交付标准\n    │\n    └─ 是企业核心系统？\n        │\n        ├─ 上线前最终审计？\n        │   └─ ✅ 用 QCSD Development Swarm\n        │      · 10 个专家深度分析\n        │      · 缺陷预测防患未然\n        │      · 合规审计报告\n        │\n        └─ 开发过程中日常检查？\n            └─ ✅ 先用 Harness，合并前再跑 QCSD\n```\n\n---\n\n## 💡 我的真实使用建议\n\n这两个工具我天天用，我的标准流程是：\n\n### 日常开发：Harness 全程护航\n\n- 每次提交 PR 前，跑一遍 `quality-scan.sh`\n- 30 秒，把能自动修复的问题都修了\n- 保证基础质量不滑坡\n\n### Sprint 结束：QCSD 深度审计\n\n- 上线前，跑一遍完整的 QCSD Swarm\n- 30 分钟，做深度质量分析\n- 拿到 SHIP 裁决才敢上线\n\n**就像你在家自己量体温，觉得不对再去医院做 CT。**\n\n---\n\n## ❌ 这些场景千万别用 QCSD\n\n我见过太多人滥用重型工具，最后反而影响效率：\n\n1. **个人 side project** —— 等 QCSD 跑完，你都能重写三遍了\n2. **内部工具/脚本** —— 出 bug 修一下就行，犯不上花几千块做审计\n3. **快速迭代的 MVP** —— 产品方向都没确定，要啥质量门禁\n4. **少于 5 人的小团队** —— 流程成本大于质量收益\n\n**记住：工具是为了解决问题的，不是为了制造仪式感。**\n\n---\n\n## ✅ 这些场景必须用 QCSD\n\n同样，有些场景省不了：\n\n1. **涉及资金交易的核心系统** —— 出一个 bug 可能损失几百万\n2. **监管严格的行业（金融/医疗）** —— 合规比什么都重要\n3. **超过 20 人的开发团队** —— 人多了，必须有统一的质量门槛\n4. **SaaS 产品生产环境** —— 宕机一小时就是几十万的损失\n\n**这些场景，QCSD 跑出来的 HOLD 裁决，能帮你省七位数的损失。**\n\n---\n\n## 🎉 最后总结\n\nAI 时代，我们不缺工具。\n\n**缺的是知道什么时候用什么工具的判断力。**\n\n- 想要\"快\"，用 Superpowers\n- 想要\"好\"，用 Harness Dev Standards\n- 想要\"稳\"，用 QCSD Development Swarm\n\n**没有最好的工具，只有最适合场景的工具。**\n\n不要拿着锤子看什么都是钉子。\n\n也不要因为 CT 扫描仪厉害，感冒了就去做 CT。\n\n---\n\n### 🦆 三个工具的定位回顾\n\n| 工具 | 一句话定位 | 一句话场景 |\n|-----|-----------|-----------|\n| Superpowers | 子 agent 驱动的 TDD 工作流 | 从零开发新功能时 |\n| Harness Dev Standards | 个人交付质量标准体系 | 日常开发提交前 |\n| QCSD Development Swarm | 企业级深度质量审计工厂 | 生产上线前最终检查 |\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n> \n> **下期预告：** 《三个工具串联使用的完整开发流水线实战》\n\nFile v1.0.3:skill-card.md\n\n## Description:\n\nHarness Dev Standards provides a quality-gate framework, delivery checklists, remediation guidance, and shell scripts for reviewing JavaScript and TypeScript project readiness before delivery.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[ai-acheng](https://clawhub.ai/user/ai-acheng)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and small teams use this skill before code delivery to check requirements, architecture, TypeScript or JavaScript quality, dependencies, environment configuration, build readiness, and README completeness. The skill also guides remediation for common dependency, import, type, startup, and build failures.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can guide automated code and dependency changes that may alter project behavior.\n\nMitigation: Review generated diffs, rerun the affected quality checks, and confirm behavior before accepting fixes.\n\nRisk: Bundled scripts may install or run npm tooling with global or unpinned behavior.\n\nMitigation: Prefer locally pinned devDependencies, avoid sensitive or production workspaces, and review the scripts before running them.\n\n## Reference(s):\n\n- [Source repository](https://github.com/AI-aCheng/harness-dev-standards)\n- [ClawHub skill page](https://clawhub.ai/ai-acheng/skills/harness-dev-standards)\n- [Detailed file structure and naming standards](references/standards.md)\n- [Delivery checklist](references/checklist.md)\n- [Remediation strategy library](references/remediation.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with checklist text and inline bash commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May recommend project file or dependency changes; inspect diffs before accepting fixes.]\n\n## Skill Version(s):\n\n1.0.3 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.3:skill.json\n\n{\n  \"name\": \"harness-dev-standards\",\n  \"displayName\": \"Harness Engineering 开发规范体系\",\n  \"description\": \"基于 Harness Engineering 理念 + 企业级全AI研发实践的完整开发质量保障体系。包含 6 道质量门禁、自动修复策略库、标准化文件结构、内置检查脚本，确保每次交付的代码质量。\",\n  \"version\": \"1.0.2\",\n  \"author\": \"ai-acheng\",\n  \"license\": \"MIT\",\n  \"homepage\": \"https://github.com/AI-aCheng/harness-dev-standards\",\n  \"keywords\": [\n    \"harness\",\n    \"engineering\",\n    \"standards\",\n    \"quality-gates\",\n    \"code-review\",\n    \"devops\",\n    \"ci-cd\",\n    \"typescript\",\n    \"nextjs\"\n  ]\n}\n\nArchive v1.0.2: 12 files, 28087 bytes\n\nFiles: marketing/00-intro-short.md (3427b), marketing/01-vs-superpowers.md (5897b), marketing/02-vs-qcsd-quality-gates.md (7931b), references/checklist.md (6090b), references/remediation.md (10537b), references/standards.md (9391b), scripts/depcheck.sh (3417b), scripts/quality-scan.sh (3393b), skill-card.md (2559b), skill.json (653b), SKILL.md (6284b), _meta.json (140b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: harness-dev-standards\ndescription: Harness Engineering 开发规范体系 - 全流程质量门禁与自动治理标准。基于企业级全AI研发实践改进，提供完整的代码交付质量保障框架。Use when: (1) 启动新项目开发前, (2) 代码交付前做质量检查, (3) 需要标准化开发流程, (4) 执行架构评审、代码评审, (5) 排查依赖/环境问题\n---\n\n# Harness Engineering 开发规范体系\n\n## 核心哲学\n\n> **\"质量不是检查出来的，是构建出来的\"**\n\n基于 Harness Engineering 理念 + 企业级全AI研发实践，构建从需求到交付的全链路质量保障体系。\n\n---\n\n## 🚀 快速启动\n\n### 新项目初始化检查清单\n\n**每次启动新项目必须执行：**\n\n```bash\n# 1. 检查目录结构是否符合标准\n# 2. 检查 package.json 依赖完整性\n# 3. 检查 .env.example 配置完整性\n# 4. 检查 README 文档完整性\n```\n\n---\n\n## 🔐 质量门禁 (Quality Gates)\n\n**每次交付必须通过以下 6 道门禁：**\n\n### 1. 需求门禁 (Requirement Gate)\n- ✅ 需求完整清晰，无模糊点\n- ✅ 所有需求点已记录到任务追踪\n- ✅ 技术可行性已验证\n- ✅ 依赖边界已明确\n\n### 2. 架构门禁 (Architecture Gate)\n- ✅ 技术选型适合单人开发\n- ✅ 文件结构清晰，符合标准化规范\n- ✅ 依赖最小化，无冗余包\n- ✅ 扩展性设计合理\n\n**参考：** 查看 [references/standards.md](references/standards.md) 标准化文件结构\n\n### 3. 编码门禁 (Coding Gate)\n- ✅ 语法正确，无 TypeScript/JavaScript 错误\n- ✅ import 路径全部正确\n- ✅ 命名规范清晰（camelCase 变量、PascalCase 组件）\n- ✅ 不遗漏任何功能点\n- ✅ 类型定义完整，无 `any` 滥用\n\n### 4. 依赖门禁 (Dependency Gate)\n- ✅ package.json 包含所有需要的依赖\n- ✅ 无多余依赖（`depcheck` 验证）\n- ✅ 依赖版本稳定（非 alpha/beta）\n- ✅ lockfile 已提交（pnpm-lock.yaml / package-lock.json）\n\n**工具：** 运行 `scripts/depcheck.sh` 自动检查\n\n### 5. 环境门禁 (Environment Gate)\n- ✅ .env.example 包含所有需要的配置\n- ✅ 每个配置项有说明注释\n- ✅ 敏感信息不提交到 git\n- ✅ .gitignore 配置正确\n\n### 6. 交付门禁 (Delivery Gate)\n- ✅ 所有需求点都已实现\n- ✅ 项目能正常启动\n- ✅ README 写清楚使用方法\n- ✅ 构建无错误（`npm run build` 验证）\n\n---\n\n## 🤖 自动治理 (Auto Remediation)\n\n出现以下问题时，**自动修复，无需人工干预：**\n\n| 问题类型 | 自动修复策略 |\n|---------|------------|\n| 依赖安装报错 | 分析错误 → 修改版本号或移除多余依赖 |\n| import 路径错误 | 自动查找正确路径修复 |\n| 语法错误 | 自动修正 TypeScript/JavaScript 语法 |\n| 启动失败 | 读取错误日志 → 修复后重新检查 |\n| 类型错误 | 补全类型定义或修正类型不匹配 |\n\n**修复流程：**\n1. 识别错误信息\n2. 定位问题代码位置\n3. 应用修复策略\n4. 验证修复结果\n5. 重复直到问题解决\n\n---\n\n## 📁 标准化文件结构\n\n### Next.js 项目标准结构\n\n```\nproject-name/\n├── app/                    # Next.js App Router\n│   ├── page.tsx            # 首页\n│   ├── layout.tsx          # 全局布局\n│   └── globals.css         # 全局样式\n├── lib/                   # 工具库、第三方客户端\n├── public/                 # 静态资源\n├── .env.example            # 环境变量示例\n├── .gitignore              # git忽略规则\n├── package.json\n├── tsconfig.json\n├── README.md               # 必须写清楚\n└── *-init.sql              # 数据库初始化SQL\n```\n\n**README 必须包含：**\n- 项目介绍\n- 配置步骤\n- 启动命令\n- 环境变量说明\n\n**详细规范：** 查看 [references/standards.md](references/standards.md)\n\n---\n\n## ✅ 代码质量标准\n\n### TypeScript 规范\n\n- ✅ 类型正确，无隐式 `any`\n- ✅ 命名清晰，变量名表达用途\n- ✅ 注释够用，不冗余\n- ✅ 函数单一职责\n- ✅ 避免深层嵌套（超过 3 层考虑重构）\n\n### 项目规范\n\n- ✅ README 完整，新人能按文档启动\n- ✅ 环境配置说明清晰\n- ✅ 依赖干净，无未使用包\n- ✅ gitignore 正确，不提交敏感文件\n\n---\n\n## 🛠️ 内置工具脚本\n\n### 依赖检查脚本\n```bash\n# 运行依赖检查\n./scripts/depcheck.sh\n```\n\n功能：\n- 检测未使用的依赖\n- 检测缺失的依赖\n- 检测版本冲突\n- 生成修复建议\n\n### 代码质量扫描脚本\n```bash\n# 运行代码质量扫描\n./scripts/quality-scan.sh\n```\n\n功能：\n- TypeScript 类型检查\n- ESLint 规则检查\n- 命名规范检查\n- import 路径验证\n\n---\n\n## 📋 交付前检查清单\n\n**交付前逐项确认：**\n\n- [ ] 需求门禁：所有需求点实现完毕\n- [ ] 架构门禁：文件结构符合标准\n- [ ] 编码门禁：无语法/类型错误\n- [ ] 依赖门禁：依赖干净无冗余\n- [ ] 环境门禁：.env.example 完整\n- [ ] 交付门禁：项目能正常启动构建\n- [ ] README：包含完整使用说明\n\n---\n\n## 📚 参考文档\n\n| 文档 | 内容 |\n|-----|------|\n| [references/standards.md](references/standards.md) | 详细文件结构规范 + 命名规范 |\n| [references/checklist.md](references/checklist.md) | 完整交付检查清单模板 |\n| [references/remediation.md](references/remediation.md) | 常见问题自动修复策略库 |\n\n---\n\n## 💡 设计理念\n\n### 为什么这样设计？\n\n1. **前置质量** - 把质量检查左移到开发过程每个环节，不是最后才检查\n2. **自动修复** - 能自动修的绝不麻烦人，解放生产力\n3. **标准化** - 降低认知负担，所有项目看起来都一样\n4. **渐进式** - 不追求完美，每次交付比上一次更好\n\n### 和传统开发流程的区别\n\n| 传统流程 | Harness Engineering |\n|---------|-------------------|\n| 最后统一测试 | 每一步都有质量门禁 |\n| 人找问题 | 问题自动暴露并修复 |\n| 每个项目结构都不一样 | 标准化结构，上手成本为0 |\n| 依赖问题靠经验解决 | 自动检测并给出修复方案 |\n\n---\n\n*\"The best code is the code you don't have to think about.\"* - Harness Engineering Philosophy\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ffzw77tj6c8yw14p92w963984vgsq\",\n  \"slug\": \"harness-dev-standards\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1778674423936\n}\n\nFile v1.0.2:references/checklist.md\n\n# 完整交付检查清单\n\n## 目录\n\n- [项目交付前检查清单](#项目交付前检查清单)\n- [代码评审检查清单](#代码评审检查清单)\n- [发布前检查清单](#发布前检查清单)\n- [安全检查清单](#安全检查清单)\n\n---\n\n## 项目交付前检查清单\n\n### 📋 需求检查\n\n- [ ] 所有需求点已实现\n- [ ] 需求变更已记录\n- [ ] 边缘情况已处理\n- [ ] 用户验收标准已满足\n\n### 🏗️ 架构检查\n\n- [ ] 文件结构符合标准化规范\n- [ ] 无冗余目录或文件\n- [ ] 依赖关系清晰\n- [ ] 模块划分合理\n\n### 💻 代码质量检查\n\n- [ ] TypeScript 类型检查通过 (`tsc --noEmit`)\n- [ ] ESLint 检查通过无错误\n- [ ] 无未使用的变量或导入\n- [ ] 无 `any` 类型滥用\n- [ ] 命名清晰符合规范\n- [ ] 注释充分且有意义\n- [ ] 无重复代码块\n- [ ] 函数单一职责（不超过 50 行）\n- [ ] 嵌套层级不超过 3 层\n\n### 📦 依赖检查\n\n- [ ] package.json 包含所有依赖\n- [ ] 无未使用的依赖 (`depcheck` 验证)\n- [ ] 依赖版本稳定（非 alpha/beta/rc）\n- [ ] lockfile 已提交\n- [ ] 无已知安全漏洞 (`npm audit` 验证)\n\n### 🌍 环境检查\n\n- [ ] .env.example 包含所有配置项\n- [ ] 每个配置项有说明注释\n- [ ] .env.local 已加入 .gitignore\n- [ ] 敏感信息未提交到 git\n- [ ] .gitignore 配置正确\n\n### 📖 文档检查\n\n- [ ] README.md 完整\n- [ ] README 包含项目介绍\n- [ ] README 包含快速开始指南\n- [ ] README 包含环境变量说明\n- [ ] README 包含部署说明\n- [ ] 代码注释清晰易懂\n- [ ] API 文档（如有）已更新\n\n### ✅ 功能验证\n\n- [ ] 项目能正常启动\n- [ ] 项目能正常构建 (`npm run build`)\n- [ ] 主要功能流程可正常执行\n- [ ] 错误边界已处理\n- [ ] 加载状态有反馈\n\n---\n\n## 代码评审检查清单\n\n### 代码正确性\n\n- [ ] 逻辑正确，无明显 bug\n- [ ] 边界条件已处理\n- [ ] 错误处理完善\n- [ ] 异步操作正确处理\n- [ ] 并发问题已考虑\n\n### 代码质量\n\n- [ ] 代码简洁，无冗余\n- [ ] 命名清晰，表达准确\n- [ ] 函数/类职责单一\n- [ ] 无重复代码\n- [ ] 无魔法数字/字符串\n\n### 性能考虑\n\n- [ ] 无不必要的重渲染\n- [ ] 大数据量场景已优化\n- [ ] 内存泄漏风险已检查\n- [ ] 网络请求有缓存策略\n\n### 安全性\n\n- [ ] XSS 风险已处理\n- [ ] SQL 注入风险已处理\n- [ ] 用户输入已验证\n- [ ] 敏感信息未日志输出\n- [ ] 认证授权逻辑正确\n\n### 可维护性\n\n- [ ] 代码结构清晰\n- [ ] 注释充分\n- [ ] 符合团队规范\n- [ ] 测试用例充分\n\n---\n\n## 发布前检查清单\n\n### 构建检查\n\n- [ ] 生产构建无错误\n- [ ] 构建产物大小合理\n- [ ] Tree shaking 生效\n- [ ] 无用代码已移除\n\n### 配置检查\n\n- [ ] 生产环境配置正确\n- [ ] API 端点指向生产\n- [ ] Debug 模式已关闭\n- [ ] Log 级别配置正确\n\n### 功能检查\n\n- [ ] 冒烟测试通过\n- [ ] 核心功能验证通过\n- [ ] 回归测试通过\n- [ ] 性能指标达标\n\n### 监控检查\n\n- [ ] 错误监控已配置\n- [ ] 性能监控已配置\n- [ ] 日志收集已配置\n- [ ] 告警规则已设置\n\n### 回滚准备\n\n- [ ] 上一版本备份存在\n- [ ] 回滚流程已明确\n- [ ] 数据库迁移可回滚\n- [ ] 配置回滚方案已准备\n\n---\n\n## 安全检查清单\n\n### 认证与授权\n\n- [ ] JWT secret 足够复杂\n- [ ] Token 过期时间合理\n- [ ] 权限边界清晰\n- [ ] 越权访问已防护\n- [ ] 登录失败有锁定机制\n\n### 输入验证\n\n- [ ] 所有用户输入已验证\n- [ ] 验证在服务端执行\n- [ ] 输入长度有限制\n- [ ] 特殊字符已处理\n- [ ] 文件上传有类型/大小限制\n\n### 输出编码\n\n- [ ] XSS 防护已启用\n- [ ] HTML 输出已编码\n- [ ] JSON 输出正确\n- [ ] 响应头安全配置\n\n### 数据保护\n\n- [ ] 密码已加密存储（bcrypt/argon2）\n- [ ] 敏感数据传输使用 HTTPS\n- [ ] 数据库连接信息加密\n- [ ] 日志不含敏感信息\n- [ ] PII 数据有保护措施\n\n### 依赖安全\n\n- [ ] 定期运行 `npm audit`\n- [ ] 高危漏洞已修复\n- [ ] 不使用已废弃的包\n- [ ] 依赖来源可信\n- [ ] 有依赖更新机制\n\n---\n\n## 自动检查脚本使用说明\n\n### 运行全部检查\n\n```bash\n# 进入项目目录\ncd your-project\n\n# 运行质量扫描\nbash scripts/quality-scan.sh\n```\n\n### 单独运行检查\n\n```bash\n# TypeScript 类型检查\nnpx tsc --noEmit\n\n# ESLint 检查\nnpx eslint . --ext .ts,.tsx\n\n# 依赖检查\nnpx depcheck\n\n# 安全漏洞检查\nnpm audit\n\n# 构建检查\nnpm run build\n```\n\n### 检查结果判定\n\n| 检查项 | 通过标准 |\n|--------|---------|\n| TypeScript | 0 errors |\n| ESLint | 0 errors, warnings 可接受但尽量少 |\n| depcheck | 0 unused dependencies |\n| npm audit | 0 critical, 0 high |\n| build | 成功完成无错误 |\n\n---\n\n## 常见问题排查\n\n### 依赖安装失败\n\n1. 检查 Node.js 版本是否符合要求\n2. 删除 lockfile 和 node_modules 重新安装\n3. 检查网络连接和 npm 源配置\n4. 尝试降级有问题的依赖版本\n\n### 类型检查失败\n\n1. 检查类型定义是否完整\n2. 检查 import 路径是否正确\n3. 检查 tsconfig.json 配置\n4. 必要时使用 `// @ts-ignore` 但要加注释说明\n\n### 构建失败\n\n1. 检查环境变量是否配置完整\n2. 检查是否有未使用的导入\n3. 检查路径别名配置是否正确\n4. 查看详细错误日志定位问题\n\n---\n\n## 检查清单使用指南\n\n### 如何高效使用\n\n1. **提前使用** - 不要等到交付前才检查，开发过程中逐项确认\n2. **自动化优先** - 能自动化的检查项全部做成脚本自动运行\n3. **结对验证** - 重要项目让另一个人过一遍清单\n4. **持续改进** - 根据实际情况更新清单内容\n\n### 不同项目的裁剪\n\n- **小型工具项目** - 可跳过部分架构和性能检查\n- **核心业务项目** - 必须通过全部检查项\n- **开源项目** - 额外增加文档和示例代码检查\n- **安全敏感项目** - 重点关注安全检查清单\n\n---\n\n*本清单基于 Harness Engineering 质量门禁理念制定*\n\nFile v1.0.2:references/remediation.md\n\n# 常见问题自动修复策略库\n\n## 目录\n\n- [依赖问题修复](#依赖问题修复)\n- [TypeScript 类型错误修复](#typescript-类型错误修复)\n- [Import 路径错误修复](#import-路径错误修复)\n- [语法错误修复](#语法错误修复)\n- [启动失败修复](#启动失败修复)\n- [构建错误修复](#构建错误修复)\n\n---\n\n## 依赖问题修复\n\n### 问题 1: 依赖版本冲突\n\n**错误信息：**\n```\nnpm ERR! code ERESOLVE\nnpm ERR! ERESOLVE could not resolve dependency\n```\n\n**自动修复策略：**\n\n1. **识别冲突包** - 从错误信息中提取冲突的包名和版本范围\n2. **查看 peerDependencies** - 检查冲突包的对等依赖要求\n3. **应用以下修复方案：**\n\n   **方案 A: 使用 --legacy-peer-deps（临时方案）**\n   ```bash\n   npm install --legacy-peer-deps\n   # 或\n   pnpm install --no-strict-peer-dependencies\n   ```\n\n   **方案 B: 升级/降级冲突包**\n   - 查找兼容的版本组合\n   - 更新 package.json 中的版本号\n   - 重新安装\n\n   **方案 C: 使用 overrides（npm）或 resolutions（pnpm）**\n   ```json\n   // package.json\n   {\n     \"overrides\": {\n       \"react\": \"^18.0.0\"\n     }\n   }\n   ```\n\n4. **验证修复** - 重新运行 install 确认问题解决\n\n---\n\n### 问题 2: 未使用的依赖\n\n**错误信息：**\n```\nUnused dependencies found:\n- package-a\n- package-b\n```\n\n**自动修复策略：**\n\n1. **二次确认** - 检查代码中是否真的没有使用这些包\n   - 搜索 import 语句\n   - 搜索 require 调用\n   - 检查配置文件中的引用\n\n2. **安全移除** - 如果确认未使用：\n   ```bash\n   npm uninstall package-a package-b\n   # 或\n   pnpm remove package-a package-b\n   ```\n\n3. **注意事项**\n   - 不要移除仅在配置文件中引用的包\n   - 不要移除 peerDependencies 中声明的包\n   - 某些包可能通过字符串动态导入，需要特殊处理\n\n---\n\n### 问题 3: 缺失的依赖\n\n**错误信息：**\n```\nCannot find module 'missing-package'\n```\n\n**自动修复策略：**\n\n1. **识别缺失包名** - 从错误信息提取\n2. **检查是否为 devDependency** - 有些包可能只在开发环境需要\n3. **安装依赖**：\n   ```bash\n   npm install missing-package\n   # 或开发依赖\n   npm install -D missing-package\n   ```\n\n4. **特殊情况处理**\n   - 如果是类型定义缺失：`npm install -D @types/missing-package`\n   - 如果是 monorepo 内部包：检查 workspace 配置\n   - 如果是私有包：检查 npm registry 配置\n\n---\n\n### 问题 4: 安全漏洞\n\n**错误信息：**\n```\nnpm audit found 3 high severity vulnerabilities\n```\n\n**自动修复策略：**\n\n1. **运行自动修复**：\n   ```bash\n   npm audit fix\n   ```\n\n2. 如果自动修复无法解决：\n   - 查看漏洞详情：`npm audit`\n   - 检查受影响包的最新版本是否修复\n   - 如果有修复版本，手动升级：`npm update vulnerable-package`\n   - 如果无法升级，考虑使用替代包或添加忽略说明\n\n3. **记录说明** - 如果必须保留有漏洞的版本，在代码中添加注释说明原因\n\n---\n\n## TypeScript 类型错误修复\n\n### 问题 1: 隐式 any 类型\n\n**错误信息：**\n```\nParameter 'x' implicitly has an 'any' type.\n```\n\n**自动修复策略：**\n\n1. **推断类型** - 根据参数使用方式推断合理的类型\n2. **添加类型注解**：\n   ```typescript\n   // 修复前\n   function process(x) { ... }\n   \n   // 修复后\n   function process(x: string) { ... }\n   ```\n\n3. **如果类型确实不确定**：\n   - 使用 `unknown` 而不是 `any`\n   - 添加类型守卫\n   ```typescript\n   function process(x: unknown) {\n     if (typeof x === 'string') {\n       // x 在这里是 string 类型\n     }\n   }\n   ```\n\n---\n\n### 问题 2: 类型不匹配\n\n**错误信息：**\n```\nType 'string' is not assignable to type 'number'.\n```\n\n**自动修复策略：**\n\n1. **分析上下文** - 确定期望的类型和实际的类型\n2. **应用类型转换**：\n   ```typescript\n   // 修复前\n   const count: number = params.count;\n   \n   // 修复后\n   const count: number = Number(params.count);\n   ```\n\n3. **常见转换模式**：\n   - 字符串转数字：`Number(x)` 或 `parseInt(x, 10)`\n   - 任意转布尔：`Boolean(x)` 或 `!!x`\n   - 联合类型收窄：使用类型守卫\n\n---\n\n### 问题 3: 可能为 null/undefined\n\n**错误信息：**\n```\nObject is possibly 'null'.\nObject is possibly 'undefined'.\n```\n\n**自动修复策略：**\n\n1. **添加空值检查**（推荐）：\n   ```typescript\n   // 修复前\n   const name = user.name;\n   \n   // 修复后\n   const name = user?.name;\n   ```\n\n2. **如果确定不会为空**，使用非空断言：\n   ```typescript\n   const name = user!.name;\n   ```\n\n3. **提供默认值**：\n   ```typescript\n   const name = user?.name ?? 'default';\n   ```\n\n---\n\n### 问题 4: 缺少属性定义\n\n**错误信息：**\n```\nProperty 'email' does not exist on type 'User'.\n```\n\n**自动修复策略：**\n\n1. **找到类型定义位置**\n2. **添加缺失的属性**：\n   ```typescript\n   // 修复前\n   interface User {\n     id: number;\n     name: string;\n   }\n   \n   // 修复后\n   interface User {\n     id: number;\n     name: string;\n     email: string;\n   }\n   ```\n\n3. **如果是外部类型**，使用类型扩展：\n   ```typescript\n   declare module 'external-lib' {\n     interface User {\n       email: string;\n     }\n   }\n   ```\n\n---\n\n## Import 路径错误修复\n\n### 问题 1: 模块未找到\n\n**错误信息：**\n```\nCannot find module '@/components/Button' or its corresponding type declarations.\n```\n\n**自动修复策略：**\n\n1. **检查路径别名配置** - 查看 tsconfig.json 中的 paths 配置\n2. **验证文件是否存在** - 检查目标文件的实际位置\n3. **修正路径**：\n\n   **相对路径问题**：\n   ```typescript\n   // 修复前\n   import Button from '../../components/Button';\n   \n   // 修复后（层数不对）\n   import Button from '../../../components/Button';\n   ```\n\n   **路径别名问题**：\n   - 确认 tsconfig.json 配置正确\n   - 确认构建工具（webpack/vite）也配置了别名\n   - 如果使用 Next.js，检查是否配置了 baseUrl\n\n4. **扩展名问题** - 某些环境需要明确加 `.ts` / `.tsx` 扩展名\n\n---\n\n### 问题 2: 命名导出不存在\n\n**错误信息：**\n```\nModule '\"../utils\"' has no exported member 'formatDate'.\n```\n\n**自动修复策略：**\n\n1. **检查目标模块的导出**\n2. **修正导入名称** - 可能是拼写错误\n3. **如果是默认导出**，改为默认导入：\n   ```typescript\n   // 修复前\n   import { formatDate } from '../utils';\n   \n   // 修复后\n   import formatDate from '../utils';\n   ```\n\n4. **如果确实需要命名导出**，在目标模块添加导出：\n   ```typescript\n   // 在 ../utils 中添加\n   export { formatDate };\n   ```\n\n---\n\n## 语法错误修复\n\n### 常见 JavaScript/TypeScript 语法错误\n\n| 错误模式 | 修复方案 |\n|---------|---------|\n| 缺少分号 | 添加分号（或配置无分号风格） |\n| 括号不匹配 | 找出缺失的括号并补全 |\n| 引号不匹配 | 统一引号类型（单/双/模板字符串） |\n| `const` 变量重新赋值 | 改为 `let` 或避免重新赋值 |\n| 解构时使用保留字 | 重命名变量：`{ default: defaultVal }` |\n| 异步函数中没有 await | 添加 await 或移除 async |\n\n### 示例修复\n\n**问题：缺少闭括号**\n```typescript\n// 修复前\nfunction add(a, b {\n  return a + b;\n}\n\n// 修复后\nfunction add(a, b) {\n  return a + b;\n}\n```\n\n**问题：const 重新赋值**\n```typescript\n// 修复前\nconst count = 0;\ncount = 1;\n\n// 修复后\nlet count = 0;\ncount = 1;\n```\n\n---\n\n## 启动失败修复\n\n### 问题 1: 端口被占用\n\n**错误信息：**\n```\nPort 3000 is already in use.\n```\n\n**自动修复策略：**\n\n1. **查找占用进程**：\n   ```bash\n   lsof -i :3000\n   # 或\n   netstat -ano | findstr :3000\n   ```\n\n2. **杀掉进程**：\n   ```bash\n   kill -9 <PID>\n   ```\n\n3. **或使用其他端口**：\n   - 修改 package.json 中的启动命令\n   - 或设置环境变量 `PORT=3001`\n\n---\n\n### 问题 2: 环境变量缺失\n\n**错误信息：**\n```\nError: DATABASE_URL is not defined\n```\n\n**自动修复策略：**\n\n1. **检查 .env 文件是否存在**\n2. **检查 .env.example 中的配置项**\n3. **创建/更新 .env 文件**，添加缺失的环境变量\n4. **确认环境变量加载工具已正确配置**（dotenv 等）\n\n---\n\n### 问题 3: Node.js 版本不兼容\n\n**错误信息：**\n```\nError: Cannot find module 'node:fs'\n```\n\n**自动修复策略：**\n\n1. **检查 package.json 中的 engines 配置**\n2. **建议升级 Node.js 版本**\n3. **或降级相关依赖包到兼容版本**\n\n---\n\n## 构建错误修复\n\n### 问题 1: Next.js 构建时页面报错\n\n**错误信息：**\n```\nError occurred prerendering page \"/xxx\".\n```\n\n**自动修复策略：**\n\n1. **检查是否有服务端不支持的 API**（window, document 等）\n2. **添加动态导入或客户端标记**：\n   ```typescript\n   'use client'; // 客户端组件\n   \n   // 或动态导入\n   const Component = dynamic(() => import('./Component'), {\n     ssr: false\n   });\n   ```\n\n3. **检查 getStaticProps/getServerSideProps 中的错误**\n4. **检查数据获取是否有异常未捕获**\n\n---\n\n### 问题 2: 构建产物过大\n\n**警告信息：**\n```\nWarning: asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).\n```\n\n**自动修复策略：**\n\n1. **分析 bundle 组成**：\n   ```bash\n   npx webpack-bundle-analyzer\n   # 或 Next.js 内置分析\n   ANALYZE=true npm run build\n   ```\n\n2. **应用优化手段**：\n   - 代码分割（动态 import）\n   - 移除未使用的依赖\n   - 使用更轻量的替代库\n   - 启用 Tree Shaking\n   - 配置 externals\n\n---\n\n## 修复验证流程\n\n每次自动修复后，必须执行以下验证：\n\n1. **重新运行出错的命令** - 确认错误已解决\n2. **运行类型检查** - `npx tsc --noEmit`\n3. **运行 lint 检查** - `npx eslint .`\n4. **尝试启动项目** - `npm run dev`\n5. **尝试构建项目** - `npm run build`\n\n**如果还有错误，重复诊断-修复-验证流程，直到全部通过。**\n\n---\n\n## 修复优先级原则\n\n1. **正确性优先** - 保证修复后的代码逻辑正确\n2. **最小改动** - 只修改必要的部分，不引入无关变更\n3. **保留语义** - 修复后代码的行为应和原意图一致\n4. **可维护性** - 修复方案应清晰易懂，不是黑魔法\n\n---\n\n*本策略库基于 100+ 实际项目问题总结而成，持续更新中...*\n\nFile v1.0.2:references/standards.md\n\n# 详细文件结构与命名规范\n\n## 目录\n\n- [Next.js 项目标准结构](#nextjs-项目标准结构)\n- [Node.js 后端项目结构](#nodejs-后端项目结构)\n- [React 组件库项目结构](#react-组件库项目结构)\n- [命名规范](#命名规范)\n- [Git 提交规范](#git-提交规范)\n\n---\n\n## Next.js 项目标准结构\n\n### 完整目录树\n\n```\nproject-name/\n├── app/                              # App Router 目录\n│   ├── (auth)/                       # 路由组 - 认证相关\n│   │   ├── login/\n│   │   │   └── page.tsx\n│   │   └── register/\n│   │       └── page.tsx\n│   ├── (dashboard)/                  # 路由组 - 仪表板\n│   │   ├── layout.tsx\n│   │   └── page.tsx\n│   ├── api/                          # API 路由\n│   │   └── hello/\n│   │       └── route.ts\n│   ├── layout.tsx                    # 根布局\n│   ├── page.tsx                      # 首页\n│   └── globals.css                   # 全局样式\n├── components/                       # 可复用组件\n│   ├── ui/                           # 基础 UI 组件 (Button, Input, etc.)\n│   │   ├── button.tsx\n│   │   └── input.tsx\n│   ├── layout/                       # 布局组件\n│   │   ├── header.tsx\n│   │   └── sidebar.tsx\n│   └── features/                     # 业务组件\n│       └── user-profile.tsx\n├── lib/                             # 工具库\n│   ├── utils/                        # 通用工具函数\n│   │   └── format.ts\n│   ├── hooks/                        # 自定义 Hooks\n│   │   └── use-local-storage.ts\n│   ├── types/                        # TypeScript 类型定义\n│   │   └── index.ts\n│   └── clients/                      # 第三方客户端\n│       ├── supabase.ts\n│       └── openai.ts\n├── public/                           # 静态资源\n│   ├── images/\n│   ├── icons/\n│   └── favicon.ico\n├── styles/                           # 样式文件\n│   └── theme.css\n├── .env.example                      # 环境变量示例\n├── .env.local                        # 本地环境变量 (gitignore)\n├── .gitignore\n├── package.json\n├── pnpm-lock.yaml / package-lock.json\n├── tsconfig.json\n├── next.config.js\n├── tailwind.config.js (可选)\n├── README.md\n└── *-init.sql                        # 数据库初始化SQL\n```\n\n### 文件命名规则\n\n| 类型 | 命名规范 | 示例 |\n|------|---------|------|\n| 页面组件 | kebab-case + page.tsx | `user-profile/page.tsx` |\n| UI 组件 | PascalCase | `Button.tsx`, `UserCard.tsx` |\n| Hook 函数 | camelCase, use- 前缀 | `use-local-storage.ts` |\n| 工具函数 | camelCase | `format-date.ts` |\n| 类型定义 | PascalCase | `User.ts`, `ApiResponse.ts` |\n| 配置文件 | dot notation | `.eslintrc.js`, `tailwind.config.js` |\n\n---\n\n## Node.js 后端项目结构\n\n```\nbackend-project/\n├── src/\n│   ├── controllers/                  # 控制器层\n│   │   └── user.controller.ts\n│   ├── services/                     # 业务逻辑层\n│   │   └── user.service.ts\n│   ├── repositories/                 # 数据访问层\n│   │   └── user.repository.ts\n│   ├── routes/                       # 路由定义\n│   │   └── user.routes.ts\n│   ├── middleware/                   # 中间件\n│   │   └── auth.middleware.ts\n│   ├── models/                       # 数据模型\n│   │   └── user.model.ts\n│   ├── types/                        # 类型定义\n│   │   └── index.ts\n│   ├── utils/                        # 工具函数\n│   │   └── validator.ts\n│   ├── config/                       # 配置文件\n│   │   └── database.ts\n│   └── app.ts                        # 应用入口\n├── tests/                            # 测试文件\n│   └── user.test.ts\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n---\n\n## React 组件库项目结构\n\n```\ncomponent-library/\n├── src/\n│   ├── components/\n│   │   ├── Button/\n│   │   │   ├── Button.tsx\n│   │   │   ├── Button.test.tsx\n│   │   │   ├── Button.stories.tsx\n│   │   │   └── index.ts\n│   │   └── Input/\n│   │       ├── Input.tsx\n│   │       ├── Input.test.tsx\n│   │       ├── Input.stories.tsx\n│   │       └── index.ts\n│   ├── hooks/\n│   ├── utils/\n│   ├── styles/\n│   └── index.ts                      # 库入口\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n├── vite.config.ts (可选)\n└── README.md\n```\n\n---\n\n## 命名规范\n\n### 通用原则\n\n1. **语义化** - 名称要能准确表达用途\n2. **一致性** - 同一类事物用相同命名模式\n3. **简洁性** - 不使用冗余词汇，不缩写到难以理解\n\n### 文件命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| React 组件 | PascalCase | `UserProfile.tsx` | `userProfile.tsx`, `user_profile.tsx` |\n| 普通模块 | kebab-case | `auth-utils.ts` | `authUtils.ts`, `AuthUtils.ts` |\n| Hook 文件 | kebab-case, use- 前缀 | `use-click-outside.ts` | `UseClickOutside.ts` |\n| 类型定义 | PascalCase | `UserProfile.ts` | `user-profile.ts` |\n| 配置文件 | dot notation | `.eslintrc.js` | `eslintrc.js` |\n| 图片资源 | kebab-case | `hero-banner.png` | `HeroBanner.png` |\n\n### 代码命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| 类/组件 | PascalCase | `class UserService {}` | `class userService {}` |\n| 函数/方法 | camelCase | `function getUser() {}` | `function GetUser() {}` |\n| 变量 | camelCase | `const userName = 'xxx'` | `const UserName = 'xxx'` |\n| 常量 | UPPER_SNAKE_CASE | `const MAX_RETRY = 3` | `const maxRetry = 3` |\n| 接口/类型 | PascalCase | `interface User {}` | `interface user {}` |\n| 枚举 | PascalCase | `enum Status {}` | `enum STATUS {}` |\n\n### React 特有命名\n\n| 类型 | 规范 | 示例 |\n|------|------|------|\n| 组件名 | PascalCase | `UserProfile`, `Button` |\n| Props 接口 | `ComponentNameProps` | `UserProfileProps`, `ButtonProps` |\n| Hook 函数 | camelCase, use 前缀 | `useLocalStorage`, `useDebounce` |\n| 事件处理 | `handle` + 名词 + 动词 | `handleSubmitClick`, `handleInputChange` |\n\n---\n\n## Git 提交规范\n\n### 提交信息格式\n\n```\n<type>(<scope>): <subject>\n\n<body>\n\n<footer>\n```\n\n### Type 类型\n\n| 类型 | 说明 |\n|------|------|\n| feat | 新功能 |\n| fix | 修复 bug |\n| docs | 文档更新 |\n| style | 代码格式调整（不影响代码运行） |\n| refactor | 重构（既不是新增功能，也不是修复 bug） |\n| perf | 性能优化 |\n| test | 增加测试 |\n| chore | 构建过程或辅助工具的变动 |\n| ci | CI/CD 相关变更 |\n\n### 示例\n\n```\nfeat(auth): add user registration flow\n\n- Add registration form validation\n- Add email verification\n- Add password strength checker\n\nCloses #123\n```\n\n```\nfix(api): correct user profile response type\n\nThe profile endpoint was returning incorrect field names.\nThis fix aligns the response with the API specification.\n```\n\n---\n\n## README 必须包含的内容\n\n每个项目的 README.md 必须包含以下部分：\n\n1. **项目介绍** - 一句话说明项目是做什么的\n2. **功能特性** - 主要功能列表\n3. **技术栈** - 使用的主要技术\n4. **快速开始**\n   - 环境要求\n   - 安装步骤\n   - 启动命令\n5. **环境变量** - 所有需要配置的环境变量及说明\n6. **项目结构** - 简要目录结构说明\n7. **开发指南** - 如何添加新功能/组件\n8. **部署说明** - 如何部署到生产环境\n9. **License** - 开源协议\n\n### README 模板\n\n```markdown\n# 项目名称\n\n一句话项目介绍。\n\n## ✨ 功能特性\n\n- 功能 1\n- 功能 2\n- 功能 3\n\n## 🛠️ 技术栈\n\n- **前端框架**: Next.js 14\n- **样式**: Tailwind CSS\n- **数据库**: Supabase\n- **语言**: TypeScript\n\n## 🚀 快速开始\n\n### 环境要求\n\n- Node.js >= 18\n- pnpm >= 8\n\n### 安装\n\n```bash\n# 克隆项目\ngit clone https://github.com/username/repo.git\n\n# 进入项目目录\ncd repo\n\n# 安装依赖\npnpm install\n```\n\n### 配置环境变量\n\n```bash\ncp .env.example .env.local\n```\n\n编辑 `.env.local` 填入以下配置：\n\n| 变量名 | 说明 | 示例 |\n|--------|------|------|\n| DATABASE_URL | 数据库连接地址 | `postgresql://...` |\n| API_KEY | API 密钥 | `sk-xxx` |\n\n### 启动开发环境\n\n```bash\npnpm dev\n```\n\n访问 http://localhost:3000\n\n## 📁 项目结构\n\n```\n简要目录结构说明\n```\n\n## 📝 开发指南\n\n### 添加新组件\n\n1. 在 `components/features/` 创建组件\n2. 遵循组件命名规范\n3. 添加类型定义\n\n### 提交代码\n\n参考 [Git 提交规范](#git-提交规范)\n\n## 🚢 部署\n\n```bash\npnpm build\npnpm start\n```\n\n## 📄 License\n\nMIT\n```\n\n---\n\n*本规范基于 Harness Engineering 理念 + 企业级全AI研发实践制定*\n\nFile v1.0.2:marketing/00-intro-short.md\n\n# Harness Dev Standards — 你的 AI 代码交付质检官\n\n> ai-acheng 出品 | 每个 AI 开发者必备的质量标准工具\n\n---\n\n## 🦆 一句话介绍\n\nAI 写代码的时代，效率已经不是问题。\n问题是 —— 你敢把 AI 写的代码直接交付吗？\n\n**Harness Dev Standards — 给你的代码做一次全面体检，只需要 30 秒。**\n\n---\n\n## ✨ 核心特性\n\n### 🛡️ 6 道质量门禁，一道都不能少\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| 📋 需求门禁 | 需求完整清晰，无模糊点 |\n| 🏗️ 架构门禁 | 文件结构标准化，依赖最小化 |\n| 💻 编码门禁 | 语法类型正确，命名规范 |\n| 📦 依赖门禁 | 依赖完整无冗余，无安全漏洞 |\n| 🌍 环境门禁 | .env.example 完整，敏感信息保护 |\n| ✅ 交付门禁 | 项目可构建，README 完整 |\n\n---\n\n### 🤖 10+ 常见问题自动修复\n\n遇到问题不用慌，策略库告诉你怎么修：\n\n- ✅ 依赖版本冲突 → 3 种解决方案\n- ✅ TypeScript 类型错误 → 标准修复模板\n- ✅ Import 路径错误 → 自动排查流程\n- ✅ 启动/构建失败 → 根因定位指南\n\n**超过 100+ 实际项目踩坑总结的修复策略。\n\n---\n\n### 🛠️ 2 个一键运行脚本\n\n```bash\n# 依赖检查 — 发现未使用依赖 + 安全漏洞\n./scripts/depcheck.sh\n\n# 完整质量扫描 — 5 大项一键跑完\n./scripts/quality-scan.sh\n```\n\n**30 秒出结果，零配置，谁都会用。**\n\n---\n\n### 📚 3 份配套参考手册\n\n| 手册 | 内容 |\n|-----|------|\n| standards.md | 3 种项目标准结构 + 完整命名规范 |\n| checklist.md | 交付前逐项检查清单 |\n| remediation.md | 常见问题自动修复策略库 |\n\n---\n\n## 🚀 谁适合用？\n\n✅ **个人开发者** — 不想交付的代码让别人吐槽\n✅ **小型团队** — 想要统一的开发规范\n✅ **AI 辅助开发** — AI 写的代码需要质量把关\n✅ **开源项目** — 想要标准化交付质量\n\n---\n\n## ❌ 谁不适合用？\n\n❌ **大型企业核心系统** — 请用 QCSD Development Swarm\n❌ **需要合规审计报告** — 请用 QCSD Development Swarm\n❌ **需要缺陷预测/突变测试** — 请用 QCSD Development Swarm\n\n---\n\n## 🎯 和其他工具的关系\n\n| 工具 | 定位 | 配合方式 |\n|-----|------|---------|\n| Superpowers | 开发工作流框架 | 开发前 + 开发中用 |\n| Harness Dev Standards | 质量标准体系 | 开发后 + 交付前用 |\n| QCSD Swarm | 企业级深度审计 | 上线前最终检查用 |\n\n**三个工具串联，就是完整的 AI 时代开发流水线。\n\n---\n\n## 💡 设计哲学\n\n> \"质量不是检查出来的，是构建出来的。\n\n> \"没有质量的产能，都是负债。\"\n\n---\n\n## 📦 安装使用\n\n1. 安装 Skill 到你的 OpenClaw\n2. 每次交付前运行：`quality-scan.sh\n3. 对照报告修复问题\n\n**就这么简单。**\n\n---\n\n## 🦆 最后说两句\n\nAI 让写代码变得越来越容易。\n但写出「好代码」和「能用的代码」，永远不是一回事。\n\n**Superpowers 给你踩油门的能力。**\n**Harness Dev Standards 给你踩刹车的底气。\n\n一个让你跑得快。\n一个让你跑得远。\n\n---\n\n> 关注「赛博鸭子」，获取更多 AI 开发实战工具。\n> \n> **GitHub:** github.com/AI-aCheng/harness-dev-standards\n> **ClawHub:** clawhub.ai/ai-acheng/harness-dev-standards\n\n---\n\n*\"The best code is the code you don't have to think about.*\n\nFile v1.0.2:marketing/01-vs-superpowers.md\n\n# 用了 100 次 Superpowers 后，我发现大多数人都用错了\n\n> 本文作者：ai-acheng | 首发：赛博鸭子技术周刊\n\n---\n\n## 🔍 一个扎心的发现\n\n这段时间用 Superpowers 做了十几个项目，从简单的工具脚本到复杂的 Next.js 应用。\n\n发现一个很有趣的现象：\n\n**90% 的人用 Superpowers，最后都卡在同一个地方 —— 代码\"写完了\"，但不敢交付。**\n\n子 agent 拍胸脯说\"功能全部实现了\"，你跑一下发现：\n- TypeScript 飙红 20 几个类型错误\n- package.json 里躺着 5 个根本没用的依赖\n- .env.example 只有三行配置，连个注释都没有\n- README 写得像天书，新人根本跑不起来\n\nSuperpowers 很擅长\"把代码写出来\"，但它不负责\"把代码写好\"。\n\n这就是为什么我做了 **Harness Dev Standards**。\n\n---\n\n## 🎯 一个负责\"过程\"，一个负责\"结果\"\n\n很多人问我：这俩不都是开发工具吗？有啥区别？\n\n我举个最简单的例子：\n\n### 场景 1：你说\"帮我做个用户登录系统\"\n\n**Superpowers 是这样干活的：**\n\n1. 🤔 先问你 5 个澄清问题：要不要验证码？要不要记住登录？密码强度要求？\n2. 📋 给你 3 个技术方案：NextAuth / Lucia / 自研，附优缺点对比\n3. 🔨 拆成 8 个小任务，每个任务 2-5 分钟\n4. 🤖 派 8 个子 agent 逐个实现，每个写完都有双重评审\n5. ✅ 最后交付：\"功能全部完成，你测一下\"\n\n**这个过程中，它根本不关心：**\n- 代码风格好不好\n- 依赖干不干净\n- README 写没写清楚\n- .env 配置有没有注释\n\n**它只保证「过程正确」，不保证「结果合格」。**\n\n---\n\n### 场景 2：你说\"这个登录系统写完了，帮我检查一下\"\n\n**Harness Dev Standards 是这样干活的：**\n\n1. 🔍 运行 `quality-scan.sh`\n2. ❌ TypeScript：发现 3 个类型错误，附修复方案\n3. ⚠️  依赖：发现 2 个未使用的包，可以安全移除\n4. ❌ 配置：.env.example 缺少 2 个配置项的注释\n5. ✅ 构建：通过\n6. 📋 对照 6 道门禁逐项确认，给出最终交付评分\n\n**这个过程中，它根本不关心：**\n- 你是花 1 天还是 1 周写的\n- 你是用 TDD 还是想到哪写到哪\n- 你拆了多少个任务，用了多少个子 agent\n\n**它只保证「结果合格」，不关心「过程怎么来的」。**\n\n---\n\n## 📊 一张表看懂本质区别\n\n| 对比项 | Superpowers | Harness Dev Standards |\n|-------|------------|----------------------|\n| **核心定位** | 🎯 开发工作流框架 | 🛡️ 质量标准体系 |\n| **回答的问题** | 怎么开发？ | 什么叫做好？ |\n| **关注点** | 过程正确 | 结果正确 |\n| **执行者** | 子 agent 分工协作 | 当前 agent 一键检查 |\n| **强制程度** | 流程强制，不能跳步 | 标准强制，必须通过 |\n| **输出物** | 可运行的功能代码 | 质量检查报告 + 修复建议 |\n| **使用阶段** | 开发前 + 开发中 | 开发后 + 交付前 |\n| **运行时间** | 5~30 分钟 | < 1 分钟 |\n\n---\n\n## 💡 它们是最佳拍档，不是竞争对手\n\n我知道很多人会问：那我应该用哪个？\n\n**成年人不做选择，两个都要。**\n\n这是我现在的标准开发流程：\n\n```\n用户需求 → Superpowers（组织开发过程） → 代码写好了 → Harness Dev Standards（质量检查） → 交付\n```\n\n### Step 1: Superpowers 管\"做对的事\"\n- 确保需求是清晰的，不会做着做着跑偏\n- 确保技术方案是经过论证的，不会上来就硬写\n- 确保代码是按 spec 实现的，不会漏功能\n\n### Step 2: Harness 管\"把事做对\"\n- 确保代码质量是达标的，类型全对\n- 确保依赖是干净的，没有多余的包\n- 确保交付是标准化的，README 能看懂\n\n**Superpowers 让你\"不会做错事\"，Harness 让你\"不会把事做坏\"。**\n\n---\n\n## 🚀 为什么每个开发者都需要一套质量标准\n\n我见过太多项目：\n- 功能都能用，但没人敢改代码\n- 依赖一大堆，根本不知道哪个在用\n- 新人上手要折腾三天才能跑起来\n- 上线前才发现配置漏了，手忙脚乱\n\n这些问题，都不是\"功能问题\"，而是\"质量问题\"。\n\nSuperpowers 解决的是\"产能问题\" —— 让你更快地写出更多代码。\n\nHarness 解决的是\"质量问题\" —— 让你写的代码敢交付、敢维护、敢给别人用。\n\n**没有质量的产能，都是负债。**\n\n---\n\n## 📦 开箱即用的 6 道质量门禁\n\nHarness Dev Standards 把我踩过的坑，总结成了 6 道硬性门禁：\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| **需求门禁** | 需求完整清晰，无模糊点 |\n| **架构门禁** | 文件结构标准化，依赖最小化 |\n| **编码门禁** | 语法类型正确，命名规范 |\n| **依赖门禁** | 依赖完整无冗余，无安全漏洞 |\n| **环境门禁** | .env.example 完整，敏感信息保护 |\n| **交付门禁** | 项目可构建，README 完整 |\n\n每一道门禁都有对应的自动检查脚本和自动修复策略库。\n\n不用你记，运行 `./quality-scan.sh`，一分钟出结果。\n\n---\n\n## 🎉 最后说两句\n\nAI 写代码的时代，效率已经不是问题了。\n\n真正的问题是：\n- 你敢把 AI 写的代码直接上生产吗？\n- 三个月后，你还敢改这段代码吗？\n- 新人接手，能在 30 分钟内跑起来吗？\n\nSuperpowers 给了你踩油门的能力。\nHarness Dev Standards 给了你踩刹车的底气。\n\n**一个让你跑得快，一个让你跑得远。**\n\n---\n\n### 🦆 配套工具\n\n- **Harness Dev Standards Skill**: 本文主角，你的个人交付质检官\n- **Superpowers Skill**: 子 agent 驱动的 TDD 开发工作流\n- **QCSD Development Swarm**: 企业级深度质量审计（下篇讲）\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n\nFile v1.0.2:marketing/02-vs-qcsd-quality-gates.md\n\n# 你的项目，真的需要跑 QCSD 质量门禁吗？\n\n> 本文作者：ai-acheng | 首发：赛博鸭子技术周刊\n\n---\n\n## 🤔 一个灵魂拷问\n\n前段时间发了 QCSD Development Swarm 的介绍，很多同学问：\n\n\"这个看起来好厉害，我能不能用在我的个人项目上？\"\n\n我一般会反问三个问题：\n1. 你的项目上线后如果出 bug，会有人赔钱吗？\n2. 你的团队超过 10 个人了吗？\n3. 你需要向合规部门提交审计报告吗？\n\n如果答案都是 NO，相信我 —— 你不需要 QCSD。\n\n**杀鸡不用牛刀，但很多人总想着用 CT 扫描仪治感冒。**\n\n---\n\n## 🏥 两个工具的本质区别\n\n我打个最直白的比方：\n\n### QCSD Development Swarm = 医院的 CT 扫描仪\n\n- ✅ 极其精准，能看到毫米级的问题\n- ✅ 输出 12 份专业报告，附医生诊断\n- ✅ 可以检测出早期癌变（缺陷预测）\n- ❌ 很贵，做一次几千块\n- ❌ 很慢，排队 + 扫描 + 等报告 = 大半天\n- ❌ 要专业医生才能看懂报告\n\n**你不会因为有点头疼就去做 CT。**\n\n---\n\n### Harness Dev Standards = 家里的体温计\n\n- ✅ 简单，拿起来就用，谁都会\n- ✅ 快速，量一下几秒钟出结果\n- ✅ 便宜，几块钱一个，家家都有\n- ✅ 告诉你\"发烧了，该去医院了\"\n- ❌ 不能告诉你具体是什么病\n- ❌ 不能给你开处方\n\n**你也不会拿着体温计去做手术。**\n\n---\n\n## 📊 一张表看懂适用场景\n\n| 对比项 | QCSD Development Swarm | Harness Dev Standards |\n|-------|-----------------------|----------------------|\n| **定位** | 🏭 企业级质量工厂 | 🛡️ 个人质量标准 |\n| **目标用户** | 大型企业开发团队 | 单人/小型团队 |\n| **核心问题** | 能不能上生产？ | 能不能交付？ |\n| **Agent 数量** | 10 个 specialist 并行 | 0 个（自己检查） |\n| **运行时间** | 30 分钟 ~ 几小时 | < 1 分钟 |\n| **Token 消耗** | 💰 极高（几万 token） | 💸 极低（几百 token） |\n| **输出物** | 12 份专业报告 + 高管摘要 | 1 页检查报告 + 修复建议 |\n| **裁决机制** | SHIP / CONDITIONAL / HOLD | 通过 / 需要修复 |\n\n---\n\n## 🔬 QCSD 到底有多重型？\n\n很多人对 QCSD 的复杂度没有概念。\n\n我给你列一下它的配置：\n\n### 10 个专业 Agent，各司其职\n\n| Agent | 职责 |\n|-------|------|\n| qe-tdd-specialist | TDD 合规性审计 |\n| qe-code-complexity | 圈复杂度分析 |\n| qe-coverage-specialist | 测试覆盖率深度分析 |\n| qe-security-scanner | 安全漏洞扫描（OWASP Top 10） |\n| qe-performance-tester | 性能基准测试 |\n| qe-mutation-tester | 突变测试（测试用例质量） |\n| qe-message-broker-tester | 消息中间件健康检查 |\n| qe-sap-idoc-tester | SAP IDoc 接口审计 |\n| qe-sod-analyzer | 职责分离合规审计 |\n| qe-defect-predictor | AI 缺陷预测 |\n\n### 9 条强制执行规则\n\n| 规则 | 内容 |\n|-----|------|\n| E1 | 必须同时启动全部 3 个核心 agent，不能例外 |\n| E2 | 所有并行任务必须在同一个消息中发起 |\n| E3 | 每批任务完成后必须等全部结束才能下一步 |\n| E4 | 条件满足时必须启动所有条件 agent，不能跳过 |\n| E5 | 必须严格按阈值给出 SHIP/CONDITIONAL/HOLD 裁决 |\n| E6 | 必须生成完整报告结构，不能缩写 |\n| E7 | 每个 agent 必须先读参考文件才能开始分析 |\n| E8 | 必须对所有代码变更运行缺陷预测，永远 |\n| E9 | 必须执行学习持久化，不能跳过 |\n\n**违反任何一条，整个 Swarm 直接终止。**\n\n这哪是工具啊，这分明是一套军事化管理体系。\n\n---\n\n## 🪶 Harness 到底有多轻量？\n\n相比之下，Harness 简单到不好意思叫\"系统\"。\n\n### 6 道门禁，一键跑完\n\n```bash\n./quality-scan.sh\n```\n\n然后你就看到：\n\n```\n=====================================\n  Harness Engineering - 质量扫描\n=====================================\n\n🔍 1/5 - TypeScript 类型检查...\n✅ TypeScript 类型检查通过\n\n🔍 2/5 - ESLint 代码规范检查...\n✅ ESLint 检查通过\n\n🔍 3/5 - 依赖检查...\n✅ 未发现未使用的 dependencies\n✅ 未发现高危安全漏洞\n\n🔍 4/5 - 环境配置检查...\n✅ .env.example 包含配置说明\n\n🔍 5/5 - 构建检查...\n✅ 构建检查通过\n\n=====================================\n  质量扫描结果\n=====================================\n\n✅ 通过: 5\n❌ 失败: 0\n\n🎉 所有检查通过！代码质量优秀！\n```\n\n**整个过程 30 秒，消耗几百 token。**\n\n---\n\n## 🎯 什么时候用哪个？一张决策图\n\n```\n你要做质量检查吗？\n    │\n    ├─ 是个人项目/小型工具？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 30 秒出结果\n    │      · 自动修复建议\n    │      · 几乎零成本\n    │\n    ├─ 是团队项目但不上生产？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 统一团队规范\n    │      · 避免低级错误\n    │      · 保证交付标准\n    │\n    └─ 是企业核心系统？\n        │\n        ├─ 上线前最终审计？\n        │   └─ ✅ 用 QCSD Development Swarm\n        │      · 10 个专家深度分析\n        │      · 缺陷预测防患未然\n        │      · 合规审计报告\n        │\n        └─ 开发过程中日常检查？\n            └─ ✅ 先用 Harness，合并前再跑 QCSD\n```\n\n---\n\n## 💡 我的真实使用建议\n\n这两个工具我天天用，我的标准流程是：\n\n### 日常开发：Harness 全程护航\n\n- 每次提交 PR 前，跑一遍 `quality-scan.sh`\n- 30 秒，把能自动修复的问题都修了\n- 保证基础质量不滑坡\n\n### Sprint 结束：QCSD 深度审计\n\n- 上线前，跑一遍完整的 QCSD Swarm\n- 30 分钟，做深度质量分析\n- 拿到 SHIP 裁决才敢上线\n\n**就像你在家自己量体温，觉得不对再去医院做 CT。**\n\n---\n\n## ❌ 这些场景千万别用 QCSD\n\n我见过太多人滥用重型工具，最后反而影响效率：\n\n1. **个人 side project** —— 等 QCSD 跑完，你都能重写三遍了\n2. **内部工具/脚本** —— 出 bug 修一下就行，犯不上花几千块做审计\n3. **快速迭代的 MVP** —— 产品方向都没确定，要啥质量门禁\n4. **少于 5 人的小团队** —— 流程成本大于质量收益\n\n**记住：工具是为了解决问题的，不是为了制造仪式感。**\n\n---\n\n## ✅ 这些场景必须用 QCSD\n\n同样，有些场景省不了：\n\n1. **涉及资金交易的核心系统** —— 出一个 bug 可能损失几百万\n2. **监管严格的行业（金融/医疗）** —— 合规比什么都重要\n3. **超过 20 人的开发团队** —— 人多了，必须有统一的质量门槛\n4. **SaaS 产品生产环境** —— 宕机一小时就是几十万的损失\n\n**这些场景，QCSD 跑出来的 HOLD 裁决，能帮你省七位数的损失。**\n\n---\n\n## 🎉 最后总结\n\nAI 时代，我们不缺工具。\n\n**缺的是知道什么时候用什么工具的判断力。**\n\n- 想要\"快\"，用 Superpowers\n- 想要\"好\"，用 Harness Dev Standards\n- 想要\"稳\"，用 QCSD Development Swarm\n\n**没有最好的工具，只有最适合场景的工具。**\n\n不要拿着锤子看什么都是钉子。\n\n也不要因为 CT 扫描仪厉害，感冒了就去做 CT。\n\n---\n\n### 🦆 三个工具的定位回顾\n\n| 工具 | 一句话定位 | 一句话场景 |\n|-----|-----------|-----------|\n| Superpowers | 子 agent 驱动的 TDD 工作流 | 从零开发新功能时 |\n| Harness Dev Standards | 个人交付质量标准体系 | 日常开发提交前 |\n| QCSD Development Swarm | 企业级深度质量审计工厂 | 生产上线前最终检查 |\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n> \n> **下期预告：** 《三个工具串联使用的完整开发流水线实战》\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nProvides a development quality standards framework for checking requirements, architecture, code, dependencies, environment configuration, and delivery readiness. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[ai-acheng](https://clawhub.ai/user/ai-acheng) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and engineering teams use this skill before delivery to apply quality gates, run dependency and quality checks, and follow remediation guidance for common project issues. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill gives agents broad automatic remediation authority over dependencies, code, and local project state. <br>\nMitigation: Use it in trusted repositories and require approval before editing files, changing dependencies, installing tools, creating environment files, running dev or build commands, or stopping processes. <br>\nRisk: Bundled scripts can invoke npm, npx, npm audit, project build scripts, and a global depcheck installation. <br>\nMitigation: Review package scripts first and run checks in an isolated working tree or disposable environment before applying fixes. <br>\nRisk: The server security verdict is suspicious because approval and rollback controls are not clearly defined. <br>\nMitigation: Keep source control checkpoints, review proposed diffs, and rerun checks after each approved change. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/ai-acheng/harness-dev-standards) <br>\n- [Detailed file structure and naming standards](references/standards.md) <br>\n- [Delivery checklist](references/checklist.md) <br>\n- [Remediation strategies](references/remediation.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown, Shell commands, Configuration] <br>\n**Output Format:** [Markdown guidance with inline shell commands and checklist items] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May run local quality checks and propose remediation steps for dependencies, code, environment configuration, and build readiness.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release evidence and artifact/skill.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.2:skill.json\n\n{\n  \"name\": \"harness-dev-standards\",\n  \"displayName\": \"Harness Engineering 开发规范体系\",\n  \"description\": \"基于 Harness Engineering 理念 + 企业级全AI研发实践的完整开发质量保障体系。包含 6 道质量门禁、自动修复策略库、标准化文件结构、内置检查脚本，确保每次交付的代码质量。\",\n  \"version\": \"1.0.2\",\n  \"author\": \"ai-acheng\",\n  \"license\": \"MIT\",\n  \"homepage\": \"https://github.com/AI-aCheng/harness-dev-standards\",\n  \"keywords\": [\n    \"harness\",\n    \"engineering\",\n    \"standards\",\n    \"quality-gates\",\n    \"code-review\",\n    \"devops\",\n    \"ci-cd\",\n    \"typescript\",\n    \"nextjs\"\n  ]\n}\n\nArchive v1.0.1: 11 files, 26793 bytes\n\nFiles: marketing/00-intro-short.md (3423b), marketing/01-vs-superpowers.md (5893b), marketing/02-vs-qcsd-quality-gates.md (7927b), references/checklist.md (6090b), references/remediation.md (10537b), references/standards.md (9391b), scripts/depcheck.sh (3417b), scripts/quality-scan.sh (3393b), skill.json (652b), SKILL.md (6284b), _meta.json (140b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: harness-dev-standards\ndescription: Harness Engineering 开发规范体系 - 全流程质量门禁与自动治理标准。基于企业级全AI研发实践改进，提供完整的代码交付质量保障框架。Use when: (1) 启动新项目开发前, (2) 代码交付前做质量检查, (3) 需要标准化开发流程, (4) 执行架构评审、代码评审, (5) 排查依赖/环境问题\n---\n\n# Harness Engineering 开发规范体系\n\n## 核心哲学\n\n> **\"质量不是检查出来的，是构建出来的\"**\n\n基于 Harness Engineering 理念 + 企业级全AI研发实践，构建从需求到交付的全链路质量保障体系。\n\n---\n\n## 🚀 快速启动\n\n### 新项目初始化检查清单\n\n**每次启动新项目必须执行：**\n\n```bash\n# 1. 检查目录结构是否符合标准\n# 2. 检查 package.json 依赖完整性\n# 3. 检查 .env.example 配置完整性\n# 4. 检查 README 文档完整性\n```\n\n---\n\n## 🔐 质量门禁 (Quality Gates)\n\n**每次交付必须通过以下 6 道门禁：**\n\n### 1. 需求门禁 (Requirement Gate)\n- ✅ 需求完整清晰，无模糊点\n- ✅ 所有需求点已记录到任务追踪\n- ✅ 技术可行性已验证\n- ✅ 依赖边界已明确\n\n### 2. 架构门禁 (Architecture Gate)\n- ✅ 技术选型适合单人开发\n- ✅ 文件结构清晰，符合标准化规范\n- ✅ 依赖最小化，无冗余包\n- ✅ 扩展性设计合理\n\n**参考：** 查看 [references/standards.md](references/standards.md) 标准化文件结构\n\n### 3. 编码门禁 (Coding Gate)\n- ✅ 语法正确，无 TypeScript/JavaScript 错误\n- ✅ import 路径全部正确\n- ✅ 命名规范清晰（camelCase 变量、PascalCase 组件）\n- ✅ 不遗漏任何功能点\n- ✅ 类型定义完整，无 `any` 滥用\n\n### 4. 依赖门禁 (Dependency Gate)\n- ✅ package.json 包含所有需要的依赖\n- ✅ 无多余依赖（`depcheck` 验证）\n- ✅ 依赖版本稳定（非 alpha/beta）\n- ✅ lockfile 已提交（pnpm-lock.yaml / package-lock.json）\n\n**工具：** 运行 `scripts/depcheck.sh` 自动检查\n\n### 5. 环境门禁 (Environment Gate)\n- ✅ .env.example 包含所有需要的配置\n- ✅ 每个配置项有说明注释\n- ✅ 敏感信息不提交到 git\n- ✅ .gitignore 配置正确\n\n### 6. 交付门禁 (Delivery Gate)\n- ✅ 所有需求点都已实现\n- ✅ 项目能正常启动\n- ✅ README 写清楚使用方法\n- ✅ 构建无错误（`npm run build` 验证）\n\n---\n\n## 🤖 自动治理 (Auto Remediation)\n\n出现以下问题时，**自动修复，无需人工干预：**\n\n| 问题类型 | 自动修复策略 |\n|---------|------------|\n| 依赖安装报错 | 分析错误 → 修改版本号或移除多余依赖 |\n| import 路径错误 | 自动查找正确路径修复 |\n| 语法错误 | 自动修正 TypeScript/JavaScript 语法 |\n| 启动失败 | 读取错误日志 → 修复后重新检查 |\n| 类型错误 | 补全类型定义或修正类型不匹配 |\n\n**修复流程：**\n1. 识别错误信息\n2. 定位问题代码位置\n3. 应用修复策略\n4. 验证修复结果\n5. 重复直到问题解决\n\n---\n\n## 📁 标准化文件结构\n\n### Next.js 项目标准结构\n\n```\nproject-name/\n├── app/                    # Next.js App Router\n│   ├── page.tsx            # 首页\n│   ├── layout.tsx          # 全局布局\n│   └── globals.css         # 全局样式\n├── lib/                   # 工具库、第三方客户端\n├── public/                 # 静态资源\n├── .env.example            # 环境变量示例\n├── .gitignore              # git忽略规则\n├── package.json\n├── tsconfig.json\n├── README.md               # 必须写清楚\n└── *-init.sql              # 数据库初始化SQL\n```\n\n**README 必须包含：**\n- 项目介绍\n- 配置步骤\n- 启动命令\n- 环境变量说明\n\n**详细规范：** 查看 [references/standards.md](references/standards.md)\n\n---\n\n## ✅ 代码质量标准\n\n### TypeScript 规范\n\n- ✅ 类型正确，无隐式 `any`\n- ✅ 命名清晰，变量名表达用途\n- ✅ 注释够用，不冗余\n- ✅ 函数单一职责\n- ✅ 避免深层嵌套（超过 3 层考虑重构）\n\n### 项目规范\n\n- ✅ README 完整，新人能按文档启动\n- ✅ 环境配置说明清晰\n- ✅ 依赖干净，无未使用包\n- ✅ gitignore 正确，不提交敏感文件\n\n---\n\n## 🛠️ 内置工具脚本\n\n### 依赖检查脚本\n```bash\n# 运行依赖检查\n./scripts/depcheck.sh\n```\n\n功能：\n- 检测未使用的依赖\n- 检测缺失的依赖\n- 检测版本冲突\n- 生成修复建议\n\n### 代码质量扫描脚本\n```bash\n# 运行代码质量扫描\n./scripts/quality-scan.sh\n```\n\n功能：\n- TypeScript 类型检查\n- ESLint 规则检查\n- 命名规范检查\n- import 路径验证\n\n---\n\n## 📋 交付前检查清单\n\n**交付前逐项确认：**\n\n- [ ] 需求门禁：所有需求点实现完毕\n- [ ] 架构门禁：文件结构符合标准\n- [ ] 编码门禁：无语法/类型错误\n- [ ] 依赖门禁：依赖干净无冗余\n- [ ] 环境门禁：.env.example 完整\n- [ ] 交付门禁：项目能正常启动构建\n- [ ] README：包含完整使用说明\n\n---\n\n## 📚 参考文档\n\n| 文档 | 内容 |\n|-----|------|\n| [references/standards.md](references/standards.md) | 详细文件结构规范 + 命名规范 |\n| [references/checklist.md](references/checklist.md) | 完整交付检查清单模板 |\n| [references/remediation.md](references/remediation.md) | 常见问题自动修复策略库 |\n\n---\n\n## 💡 设计理念\n\n### 为什么这样设计？\n\n1. **前置质量** - 把质量检查左移到开发过程每个环节，不是最后才检查\n2. **自动修复** - 能自动修的绝不麻烦人，解放生产力\n3. **标准化** - 降低认知负担，所有项目看起来都一样\n4. **渐进式** - 不追求完美，每次交付比上一次更好\n\n### 和传统开发流程的区别\n\n| 传统流程 | Harness Engineering |\n|---------|-------------------|\n| 最后统一测试 | 每一步都有质量门禁 |\n| 人找问题 | 问题自动暴露并修复 |\n| 每个项目结构都不一样 | 标准化结构，上手成本为0 |\n| 依赖问题靠经验解决 | 自动检测并给出修复方案 |\n\n---\n\n*\"The best code is the code you don't have to think about.\"* - Harness Engineering Philosophy\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7ffzw77tj6c8yw14p92w963984vgsq\",\n  \"slug\": \"harness-dev-standards\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1778673537330\n}\n\nFile v1.0.1:references/checklist.md\n\n# 完整交付检查清单\n\n## 目录\n\n- [项目交付前检查清单](#项目交付前检查清单)\n- [代码评审检查清单](#代码评审检查清单)\n- [发布前检查清单](#发布前检查清单)\n- [安全检查清单](#安全检查清单)\n\n---\n\n## 项目交付前检查清单\n\n### 📋 需求检查\n\n- [ ] 所有需求点已实现\n- [ ] 需求变更已记录\n- [ ] 边缘情况已处理\n- [ ] 用户验收标准已满足\n\n### 🏗️ 架构检查\n\n- [ ] 文件结构符合标准化规范\n- [ ] 无冗余目录或文件\n- [ ] 依赖关系清晰\n- [ ] 模块划分合理\n\n### 💻 代码质量检查\n\n- [ ] TypeScript 类型检查通过 (`tsc --noEmit`)\n- [ ] ESLint 检查通过无错误\n- [ ] 无未使用的变量或导入\n- [ ] 无 `any` 类型滥用\n- [ ] 命名清晰符合规范\n- [ ] 注释充分且有意义\n- [ ] 无重复代码块\n- [ ] 函数单一职责（不超过 50 行）\n- [ ] 嵌套层级不超过 3 层\n\n### 📦 依赖检查\n\n- [ ] package.json 包含所有依赖\n- [ ] 无未使用的依赖 (`depcheck` 验证)\n- [ ] 依赖版本稳定（非 alpha/beta/rc）\n- [ ] lockfile 已提交\n- [ ] 无已知安全漏洞 (`npm audit` 验证)\n\n### 🌍 环境检查\n\n- [ ] .env.example 包含所有配置项\n- [ ] 每个配置项有说明注释\n- [ ] .env.local 已加入 .gitignore\n- [ ] 敏感信息未提交到 git\n- [ ] .gitignore 配置正确\n\n### 📖 文档检查\n\n- [ ] README.md 完整\n- [ ] README 包含项目介绍\n- [ ] README 包含快速开始指南\n- [ ] README 包含环境变量说明\n- [ ] README 包含部署说明\n- [ ] 代码注释清晰易懂\n- [ ] API 文档（如有）已更新\n\n### ✅ 功能验证\n\n- [ ] 项目能正常启动\n- [ ] 项目能正常构建 (`npm run build`)\n- [ ] 主要功能流程可正常执行\n- [ ] 错误边界已处理\n- [ ] 加载状态有反馈\n\n---\n\n## 代码评审检查清单\n\n### 代码正确性\n\n- [ ] 逻辑正确，无明显 bug\n- [ ] 边界条件已处理\n- [ ] 错误处理完善\n- [ ] 异步操作正确处理\n- [ ] 并发问题已考虑\n\n### 代码质量\n\n- [ ] 代码简洁，无冗余\n- [ ] 命名清晰，表达准确\n- [ ] 函数/类职责单一\n- [ ] 无重复代码\n- [ ] 无魔法数字/字符串\n\n### 性能考虑\n\n- [ ] 无不必要的重渲染\n- [ ] 大数据量场景已优化\n- [ ] 内存泄漏风险已检查\n- [ ] 网络请求有缓存策略\n\n### 安全性\n\n- [ ] XSS 风险已处理\n- [ ] SQL 注入风险已处理\n- [ ] 用户输入已验证\n- [ ] 敏感信息未日志输出\n- [ ] 认证授权逻辑正确\n\n### 可维护性\n\n- [ ] 代码结构清晰\n- [ ] 注释充分\n- [ ] 符合团队规范\n- [ ] 测试用例充分\n\n---\n\n## 发布前检查清单\n\n### 构建检查\n\n- [ ] 生产构建无错误\n- [ ] 构建产物大小合理\n- [ ] Tree shaking 生效\n- [ ] 无用代码已移除\n\n### 配置检查\n\n- [ ] 生产环境配置正确\n- [ ] API 端点指向生产\n- [ ] Debug 模式已关闭\n- [ ] Log 级别配置正确\n\n### 功能检查\n\n- [ ] 冒烟测试通过\n- [ ] 核心功能验证通过\n- [ ] 回归测试通过\n- [ ] 性能指标达标\n\n### 监控检查\n\n- [ ] 错误监控已配置\n- [ ] 性能监控已配置\n- [ ] 日志收集已配置\n- [ ] 告警规则已设置\n\n### 回滚准备\n\n- [ ] 上一版本备份存在\n- [ ] 回滚流程已明确\n- [ ] 数据库迁移可回滚\n- [ ] 配置回滚方案已准备\n\n---\n\n## 安全检查清单\n\n### 认证与授权\n\n- [ ] JWT secret 足够复杂\n- [ ] Token 过期时间合理\n- [ ] 权限边界清晰\n- [ ] 越权访问已防护\n- [ ] 登录失败有锁定机制\n\n### 输入验证\n\n- [ ] 所有用户输入已验证\n- [ ] 验证在服务端执行\n- [ ] 输入长度有限制\n- [ ] 特殊字符已处理\n- [ ] 文件上传有类型/大小限制\n\n### 输出编码\n\n- [ ] XSS 防护已启用\n- [ ] HTML 输出已编码\n- [ ] JSON 输出正确\n- [ ] 响应头安全配置\n\n### 数据保护\n\n- [ ] 密码已加密存储（bcrypt/argon2）\n- [ ] 敏感数据传输使用 HTTPS\n- [ ] 数据库连接信息加密\n- [ ] 日志不含敏感信息\n- [ ] PII 数据有保护措施\n\n### 依赖安全\n\n- [ ] 定期运行 `npm audit`\n- [ ] 高危漏洞已修复\n- [ ] 不使用已废弃的包\n- [ ] 依赖来源可信\n- [ ] 有依赖更新机制\n\n---\n\n## 自动检查脚本使用说明\n\n### 运行全部检查\n\n```bash\n# 进入项目目录\ncd your-project\n\n# 运行质量扫描\nbash scripts/quality-scan.sh\n```\n\n### 单独运行检查\n\n```bash\n# TypeScript 类型检查\nnpx tsc --noEmit\n\n# ESLint 检查\nnpx eslint . --ext .ts,.tsx\n\n# 依赖检查\nnpx depcheck\n\n# 安全漏洞检查\nnpm audit\n\n# 构建检查\nnpm run build\n```\n\n### 检查结果判定\n\n| 检查项 | 通过标准 |\n|--------|---------|\n| TypeScript | 0 errors |\n| ESLint | 0 errors, warnings 可接受但尽量少 |\n| depcheck | 0 unused dependencies |\n| npm audit | 0 critical, 0 high |\n| build | 成功完成无错误 |\n\n---\n\n## 常见问题排查\n\n### 依赖安装失败\n\n1. 检查 Node.js 版本是否符合要求\n2. 删除 lockfile 和 node_modules 重新安装\n3. 检查网络连接和 npm 源配置\n4. 尝试降级有问题的依赖版本\n\n### 类型检查失败\n\n1. 检查类型定义是否完整\n2. 检查 import 路径是否正确\n3. 检查 tsconfig.json 配置\n4. 必要时使用 `// @ts-ignore` 但要加注释说明\n\n### 构建失败\n\n1. 检查环境变量是否配置完整\n2. 检查是否有未使用的导入\n3. 检查路径别名配置是否正确\n4. 查看详细错误日志定位问题\n\n---\n\n## 检查清单使用指南\n\n### 如何高效使用\n\n1. **提前使用** - 不要等到交付前才检查，开发过程中逐项确认\n2. **自动化优先** - 能自动化的检查项全部做成脚本自动运行\n3. **结对验证** - 重要项目让另一个人过一遍清单\n4. **持续改进** - 根据实际情况更新清单内容\n\n### 不同项目的裁剪\n\n- **小型工具项目** - 可跳过部分架构和性能检查\n- **核心业务项目** - 必须通过全部检查项\n- **开源项目** - 额外增加文档和示例代码检查\n- **安全敏感项目** - 重点关注安全检查清单\n\n---\n\n*本清单基于 Harness Engineering 质量门禁理念制定*\n\nFile v1.0.1:references/remediation.md\n\n# 常见问题自动修复策略库\n\n## 目录\n\n- [依赖问题修复](#依赖问题修复)\n- [TypeScript 类型错误修复](#typescript-类型错误修复)\n- [Import 路径错误修复](#import-路径错误修复)\n- [语法错误修复](#语法错误修复)\n- [启动失败修复](#启动失败修复)\n- [构建错误修复](#构建错误修复)\n\n---\n\n## 依赖问题修复\n\n### 问题 1: 依赖版本冲突\n\n**错误信息：**\n```\nnpm ERR! code ERESOLVE\nnpm ERR! ERESOLVE could not resolve dependency\n```\n\n**自动修复策略：**\n\n1. **识别冲突包** - 从错误信息中提取冲突的包名和版本范围\n2. **查看 peerDependencies** - 检查冲突包的对等依赖要求\n3. **应用以下修复方案：**\n\n   **方案 A: 使用 --legacy-peer-deps（临时方案）**\n   ```bash\n   npm install --legacy-peer-deps\n   # 或\n   pnpm install --no-strict-peer-dependencies\n   ```\n\n   **方案 B: 升级/降级冲突包**\n   - 查找兼容的版本组合\n   - 更新 package.json 中的版本号\n   - 重新安装\n\n   **方案 C: 使用 overrides（npm）或 resolutions（pnpm）**\n   ```json\n   // package.json\n   {\n     \"overrides\": {\n       \"react\": \"^18.0.0\"\n     }\n   }\n   ```\n\n4. **验证修复** - 重新运行 install 确认问题解决\n\n---\n\n### 问题 2: 未使用的依赖\n\n**错误信息：**\n```\nUnused dependencies found:\n- package-a\n- package-b\n```\n\n**自动修复策略：**\n\n1. **二次确认** - 检查代码中是否真的没有使用这些包\n   - 搜索 import 语句\n   - 搜索 require 调用\n   - 检查配置文件中的引用\n\n2. **安全移除** - 如果确认未使用：\n   ```bash\n   npm uninstall package-a package-b\n   # 或\n   pnpm remove package-a package-b\n   ```\n\n3. **注意事项**\n   - 不要移除仅在配置文件中引用的包\n   - 不要移除 peerDependencies 中声明的包\n   - 某些包可能通过字符串动态导入，需要特殊处理\n\n---\n\n### 问题 3: 缺失的依赖\n\n**错误信息：**\n```\nCannot find module 'missing-package'\n```\n\n**自动修复策略：**\n\n1. **识别缺失包名** - 从错误信息提取\n2. **检查是否为 devDependency** - 有些包可能只在开发环境需要\n3. **安装依赖**：\n   ```bash\n   npm install missing-package\n   # 或开发依赖\n   npm install -D missing-package\n   ```\n\n4. **特殊情况处理**\n   - 如果是类型定义缺失：`npm install -D @types/missing-package`\n   - 如果是 monorepo 内部包：检查 workspace 配置\n   - 如果是私有包：检查 npm registry 配置\n\n---\n\n### 问题 4: 安全漏洞\n\n**错误信息：**\n```\nnpm audit found 3 high severity vulnerabilities\n```\n\n**自动修复策略：**\n\n1. **运行自动修复**：\n   ```bash\n   npm audit fix\n   ```\n\n2. 如果自动修复无法解决：\n   - 查看漏洞详情：`npm audit`\n   - 检查受影响包的最新版本是否修复\n   - 如果有修复版本，手动升级：`npm update vulnerable-package`\n   - 如果无法升级，考虑使用替代包或添加忽略说明\n\n3. **记录说明** - 如果必须保留有漏洞的版本，在代码中添加注释说明原因\n\n---\n\n## TypeScript 类型错误修复\n\n### 问题 1: 隐式 any 类型\n\n**错误信息：**\n```\nParameter 'x' implicitly has an 'any' type.\n```\n\n**自动修复策略：**\n\n1. **推断类型** - 根据参数使用方式推断合理的类型\n2. **添加类型注解**：\n   ```typescript\n   // 修复前\n   function process(x) { ... }\n   \n   // 修复后\n   function process(x: string) { ... }\n   ```\n\n3. **如果类型确实不确定**：\n   - 使用 `unknown` 而不是 `any`\n   - 添加类型守卫\n   ```typescript\n   function process(x: unknown) {\n     if (typeof x === 'string') {\n       // x 在这里是 string 类型\n     }\n   }\n   ```\n\n---\n\n### 问题 2: 类型不匹配\n\n**错误信息：**\n```\nType 'string' is not assignable to type 'number'.\n```\n\n**自动修复策略：**\n\n1. **分析上下文** - 确定期望的类型和实际的类型\n2. **应用类型转换**：\n   ```typescript\n   // 修复前\n   const count: number = params.count;\n   \n   // 修复后\n   const count: number = Number(params.count);\n   ```\n\n3. **常见转换模式**：\n   - 字符串转数字：`Number(x)` 或 `parseInt(x, 10)`\n   - 任意转布尔：`Boolean(x)` 或 `!!x`\n   - 联合类型收窄：使用类型守卫\n\n---\n\n### 问题 3: 可能为 null/undefined\n\n**错误信息：**\n```\nObject is possibly 'null'.\nObject is possibly 'undefined'.\n```\n\n**自动修复策略：**\n\n1. **添加空值检查**（推荐）：\n   ```typescript\n   // 修复前\n   const name = user.name;\n   \n   // 修复后\n   const name = user?.name;\n   ```\n\n2. **如果确定不会为空**，使用非空断言：\n   ```typescript\n   const name = user!.name;\n   ```\n\n3. **提供默认值**：\n   ```typescript\n   const name = user?.name ?? 'default';\n   ```\n\n---\n\n### 问题 4: 缺少属性定义\n\n**错误信息：**\n```\nProperty 'email' does not exist on type 'User'.\n```\n\n**自动修复策略：**\n\n1. **找到类型定义位置**\n2. **添加缺失的属性**：\n   ```typescript\n   // 修复前\n   interface User {\n     id: number;\n     name: string;\n   }\n   \n   // 修复后\n   interface User {\n     id: number;\n     name: string;\n     email: string;\n   }\n   ```\n\n3. **如果是外部类型**，使用类型扩展：\n   ```typescript\n   declare module 'external-lib' {\n     interface User {\n       email: string;\n     }\n   }\n   ```\n\n---\n\n## Import 路径错误修复\n\n### 问题 1: 模块未找到\n\n**错误信息：**\n```\nCannot find module '@/components/Button' or its corresponding type declarations.\n```\n\n**自动修复策略：**\n\n1. **检查路径别名配置** - 查看 tsconfig.json 中的 paths 配置\n2. **验证文件是否存在** - 检查目标文件的实际位置\n3. **修正路径**：\n\n   **相对路径问题**：\n   ```typescript\n   // 修复前\n   import Button from '../../components/Button';\n   \n   // 修复后（层数不对）\n   import Button from '../../../components/Button';\n   ```\n\n   **路径别名问题**：\n   - 确认 tsconfig.json 配置正确\n   - 确认构建工具（webpack/vite）也配置了别名\n   - 如果使用 Next.js，检查是否配置了 baseUrl\n\n4. **扩展名问题** - 某些环境需要明确加 `.ts` / `.tsx` 扩展名\n\n---\n\n### 问题 2: 命名导出不存在\n\n**错误信息：**\n```\nModule '\"../utils\"' has no exported member 'formatDate'.\n```\n\n**自动修复策略：**\n\n1. **检查目标模块的导出**\n2. **修正导入名称** - 可能是拼写错误\n3. **如果是默认导出**，改为默认导入：\n   ```typescript\n   // 修复前\n   import { formatDate } from '../utils';\n   \n   // 修复后\n   import formatDate from '../utils';\n   ```\n\n4. **如果确实需要命名导出**，在目标模块添加导出：\n   ```typescript\n   // 在 ../utils 中添加\n   export { formatDate };\n   ```\n\n---\n\n## 语法错误修复\n\n### 常见 JavaScript/TypeScript 语法错误\n\n| 错误模式 | 修复方案 |\n|---------|---------|\n| 缺少分号 | 添加分号（或配置无分号风格） |\n| 括号不匹配 | 找出缺失的括号并补全 |\n| 引号不匹配 | 统一引号类型（单/双/模板字符串） |\n| `const` 变量重新赋值 | 改为 `let` 或避免重新赋值 |\n| 解构时使用保留字 | 重命名变量：`{ default: defaultVal }` |\n| 异步函数中没有 await | 添加 await 或移除 async |\n\n### 示例修复\n\n**问题：缺少闭括号**\n```typescript\n// 修复前\nfunction add(a, b {\n  return a + b;\n}\n\n// 修复后\nfunction add(a, b) {\n  return a + b;\n}\n```\n\n**问题：const 重新赋值**\n```typescript\n// 修复前\nconst count = 0;\ncount = 1;\n\n// 修复后\nlet count = 0;\ncount = 1;\n```\n\n---\n\n## 启动失败修复\n\n### 问题 1: 端口被占用\n\n**错误信息：**\n```\nPort 3000 is already in use.\n```\n\n**自动修复策略：**\n\n1. **查找占用进程**：\n   ```bash\n   lsof -i :3000\n   # 或\n   netstat -ano | findstr :3000\n   ```\n\n2. **杀掉进程**：\n   ```bash\n   kill -9 <PID>\n   ```\n\n3. **或使用其他端口**：\n   - 修改 package.json 中的启动命令\n   - 或设置环境变量 `PORT=3001`\n\n---\n\n### 问题 2: 环境变量缺失\n\n**错误信息：**\n```\nError: DATABASE_URL is not defined\n```\n\n**自动修复策略：**\n\n1. **检查 .env 文件是否存在**\n2. **检查 .env.example 中的配置项**\n3. **创建/更新 .env 文件**，添加缺失的环境变量\n4. **确认环境变量加载工具已正确配置**（dotenv 等）\n\n---\n\n### 问题 3: Node.js 版本不兼容\n\n**错误信息：**\n```\nError: Cannot find module 'node:fs'\n```\n\n**自动修复策略：**\n\n1. **检查 package.json 中的 engines 配置**\n2. **建议升级 Node.js 版本**\n3. **或降级相关依赖包到兼容版本**\n\n---\n\n## 构建错误修复\n\n### 问题 1: Next.js 构建时页面报错\n\n**错误信息：**\n```\nError occurred prerendering page \"/xxx\".\n```\n\n**自动修复策略：**\n\n1. **检查是否有服务端不支持的 API**（window, document 等）\n2. **添加动态导入或客户端标记**：\n   ```typescript\n   'use client'; // 客户端组件\n   \n   // 或动态导入\n   const Component = dynamic(() => import('./Component'), {\n     ssr: false\n   });\n   ```\n\n3. **检查 getStaticProps/getServerSideProps 中的错误**\n4. **检查数据获取是否有异常未捕获**\n\n---\n\n### 问题 2: 构建产物过大\n\n**警告信息：**\n```\nWarning: asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).\n```\n\n**自动修复策略：**\n\n1. **分析 bundle 组成**：\n   ```bash\n   npx webpack-bundle-analyzer\n   # 或 Next.js 内置分析\n   ANALYZE=true npm run build\n   ```\n\n2. **应用优化手段**：\n   - 代码分割（动态 import）\n   - 移除未使用的依赖\n   - 使用更轻量的替代库\n   - 启用 Tree Shaking\n   - 配置 externals\n\n---\n\n## 修复验证流程\n\n每次自动修复后，必须执行以下验证：\n\n1. **重新运行出错的命令** - 确认错误已解决\n2. **运行类型检查** - `npx tsc --noEmit`\n3. **运行 lint 检查** - `npx eslint .`\n4. **尝试启动项目** - `npm run dev`\n5. **尝试构建项目** - `npm run build`\n\n**如果还有错误，重复诊断-修复-验证流程，直到全部通过。**\n\n---\n\n## 修复优先级原则\n\n1. **正确性优先** - 保证修复后的代码逻辑正确\n2. **最小改动** - 只修改必要的部分，不引入无关变更\n3. **保留语义** - 修复后代码的行为应和原意图一致\n4. **可维护性** - 修复方案应清晰易懂，不是黑魔法\n\n---\n\n*本策略库基于 100+ 实际项目问题总结而成，持续更新中...*\n\nFile v1.0.1:references/standards.md\n\n# 详细文件结构与命名规范\n\n## 目录\n\n- [Next.js 项目标准结构](#nextjs-项目标准结构)\n- [Node.js 后端项目结构](#nodejs-后端项目结构)\n- [React 组件库项目结构](#react-组件库项目结构)\n- [命名规范](#命名规范)\n- [Git 提交规范](#git-提交规范)\n\n---\n\n## Next.js 项目标准结构\n\n### 完整目录树\n\n```\nproject-name/\n├── app/                              # App Router 目录\n│   ├── (auth)/                       # 路由组 - 认证相关\n│   │   ├── login/\n│   │   │   └── page.tsx\n│   │   └── register/\n│   │       └── page.tsx\n│   ├── (dashboard)/                  # 路由组 - 仪表板\n│   │   ├── layout.tsx\n│   │   └── page.tsx\n│   ├── api/                          # API 路由\n│   │   └── hello/\n│   │       └── route.ts\n│   ├── layout.tsx                    # 根布局\n│   ├── page.tsx                      # 首页\n│   └── globals.css                   # 全局样式\n├── components/                       # 可复用组件\n│   ├── ui/                           # 基础 UI 组件 (Button, Input, etc.)\n│   │   ├── button.tsx\n│   │   └── input.tsx\n│   ├── layout/                       # 布局组件\n│   │   ├── header.tsx\n│   │   └── sidebar.tsx\n│   └── features/                     # 业务组件\n│       └── user-profile.tsx\n├── lib/                             # 工具库\n│   ├── utils/                        # 通用工具函数\n│   │   └── format.ts\n│   ├── hooks/                        # 自定义 Hooks\n│   │   └── use-local-storage.ts\n│   ├── types/                        # TypeScript 类型定义\n│   │   └── index.ts\n│   └── clients/                      # 第三方客户端\n│       ├── supabase.ts\n│       └── openai.ts\n├── public/                           # 静态资源\n│   ├── images/\n│   ├── icons/\n│   └── favicon.ico\n├── styles/                           # 样式文件\n│   └── theme.css\n├── .env.example                      # 环境变量示例\n├── .env.local                        # 本地环境变量 (gitignore)\n├── .gitignore\n├── package.json\n├── pnpm-lock.yaml / package-lock.json\n├── tsconfig.json\n├── next.config.js\n├── tailwind.config.js (可选)\n├── README.md\n└── *-init.sql                        # 数据库初始化SQL\n```\n\n### 文件命名规则\n\n| 类型 | 命名规范 | 示例 |\n|------|---------|------|\n| 页面组件 | kebab-case + page.tsx | `user-profile/page.tsx` |\n| UI 组件 | PascalCase | `Button.tsx`, `UserCard.tsx` |\n| Hook 函数 | camelCase, use- 前缀 | `use-local-storage.ts` |\n| 工具函数 | camelCase | `format-date.ts` |\n| 类型定义 | PascalCase | `User.ts`, `ApiResponse.ts` |\n| 配置文件 | dot notation | `.eslintrc.js`, `tailwind.config.js` |\n\n---\n\n## Node.js 后端项目结构\n\n```\nbackend-project/\n├── src/\n│   ├── controllers/                  # 控制器层\n│   │   └── user.controller.ts\n│   ├── services/                     # 业务逻辑层\n│   │   └── user.service.ts\n│   ├── repositories/                 # 数据访问层\n│   │   └── user.repository.ts\n│   ├── routes/                       # 路由定义\n│   │   └── user.routes.ts\n│   ├── middleware/                   # 中间件\n│   │   └── auth.middleware.ts\n│   ├── models/                       # 数据模型\n│   │   └── user.model.ts\n│   ├── types/                        # 类型定义\n│   │   └── index.ts\n│   ├── utils/                        # 工具函数\n│   │   └── validator.ts\n│   ├── config/                       # 配置文件\n│   │   └── database.ts\n│   └── app.ts                        # 应用入口\n├── tests/                            # 测试文件\n│   └── user.test.ts\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n---\n\n## React 组件库项目结构\n\n```\ncomponent-library/\n├── src/\n│   ├── components/\n│   │   ├── Button/\n│   │   │   ├── Button.tsx\n│   │   │   ├── Button.test.tsx\n│   │   │   ├── Button.stories.tsx\n│   │   │   └── index.ts\n│   │   └── Input/\n│   │       ├── Input.tsx\n│   │       ├── Input.test.tsx\n│   │       ├── Input.stories.tsx\n│   │       └── index.ts\n│   ├── hooks/\n│   ├── utils/\n│   ├── styles/\n│   └── index.ts                      # 库入口\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n├── vite.config.ts (可选)\n└── README.md\n```\n\n---\n\n## 命名规范\n\n### 通用原则\n\n1. **语义化** - 名称要能准确表达用途\n2. **一致性** - 同一类事物用相同命名模式\n3. **简洁性** - 不使用冗余词汇，不缩写到难以理解\n\n### 文件命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| React 组件 | PascalCase | `UserProfile.tsx` | `userProfile.tsx`, `user_profile.tsx` |\n| 普通模块 | kebab-case | `auth-utils.ts` | `authUtils.ts`, `AuthUtils.ts` |\n| Hook 文件 | kebab-case, use- 前缀 | `use-click-outside.ts` | `UseClickOutside.ts` |\n| 类型定义 | PascalCase | `UserProfile.ts` | `user-profile.ts` |\n| 配置文件 | dot notation | `.eslintrc.js` | `eslintrc.js` |\n| 图片资源 | kebab-case | `hero-banner.png` | `HeroBanner.png` |\n\n### 代码命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| 类/组件 | PascalCase | `class UserService {}` | `class userService {}` |\n| 函数/方法 | camelCase | `function getUser() {}` | `function GetUser() {}` |\n| 变量 | camelCase | `const userName = 'xxx'` | `const UserName = 'xxx'` |\n| 常量 | UPPER_SNAKE_CASE | `const MAX_RETRY = 3` | `const maxRetry = 3` |\n| 接口/类型 | PascalCase | `interface User {}` | `interface user {}` |\n| 枚举 | PascalCase | `enum Status {}` | `enum STATUS {}` |\n\n### React 特有命名\n\n| 类型 | 规范 | 示例 |\n|------|------|------|\n| 组件名 | PascalCase | `UserProfile`, `Button` |\n| Props 接口 | `ComponentNameProps` | `UserProfileProps`, `ButtonProps` |\n| Hook 函数 | camelCase, use 前缀 | `useLocalStorage`, `useDebounce` |\n| 事件处理 | `handle` + 名词 + 动词 | `handleSubmitClick`, `handleInputChange` |\n\n---\n\n## Git 提交规范\n\n### 提交信息格式\n\n```\n<type>(<scope>): <subject>\n\n<body>\n\n<footer>\n```\n\n### Type 类型\n\n| 类型 | 说明 |\n|------|------|\n| feat | 新功能 |\n| fix | 修复 bug |\n| docs | 文档更新 |\n| style | 代码格式调整（不影响代码运行） |\n| refactor | 重构（既不是新增功能，也不是修复 bug） |\n| perf | 性能优化 |\n| test | 增加测试 |\n| chore | 构建过程或辅助工具的变动 |\n| ci | CI/CD 相关变更 |\n\n### 示例\n\n```\nfeat(auth): add user registration flow\n\n- Add registration form validation\n- Add email verification\n- Add password strength checker\n\nCloses #123\n```\n\n```\nfix(api): correct user profile response type\n\nThe profile endpoint was returning incorrect field names.\nThis fix aligns the response with the API specification.\n```\n\n---\n\n## README 必须包含的内容\n\n每个项目的 README.md 必须包含以下部分：\n\n1. **项目介绍** - 一句话说明项目是做什么的\n2. **功能特性** - 主要功能列表\n3. **技术栈** - 使用的主要技术\n4. **快速开始**\n   - 环境要求\n   - 安装步骤\n   - 启动命令\n5. **环境变量** - 所有需要配置的环境变量及说明\n6. **项目结构** - 简要目录结构说明\n7. **开发指南** - 如何添加新功能/组件\n8. **部署说明** - 如何部署到生产环境\n9. **License** - 开源协议\n\n### README 模板\n\n```markdown\n# 项目名称\n\n一句话项目介绍。\n\n## ✨ 功能特性\n\n- 功能 1\n- 功能 2\n- 功能 3\n\n## 🛠️ 技术栈\n\n- **前端框架**: Next.js 14\n- **样式**: Tailwind CSS\n- **数据库**: Supabase\n- **语言**: TypeScript\n\n## 🚀 快速开始\n\n### 环境要求\n\n- Node.js >= 18\n- pnpm >= 8\n\n### 安装\n\n```bash\n# 克隆项目\ngit clone https://github.com/username/repo.git\n\n# 进入项目目录\ncd repo\n\n# 安装依赖\npnpm install\n```\n\n### 配置环境变量\n\n```bash\ncp .env.example .env.local\n```\n\n编辑 `.env.local` 填入以下配置：\n\n| 变量名 | 说明 | 示例 |\n|--------|------|------|\n| DATABASE_URL | 数据库连接地址 | `postgresql://...` |\n| API_KEY | API 密钥 | `sk-xxx` |\n\n### 启动开发环境\n\n```bash\npnpm dev\n```\n\n访问 http://localhost:3000\n\n## 📁 项目结构\n\n```\n简要目录结构说明\n```\n\n## 📝 开发指南\n\n### 添加新组件\n\n1. 在 `components/features/` 创建组件\n2. 遵循组件命名规范\n3. 添加类型定义\n\n### 提交代码\n\n参考 [Git 提交规范](#git-提交规范)\n\n## 🚢 部署\n\n```bash\npnpm build\npnpm start\n```\n\n## 📄 License\n\nMIT\n```\n\n---\n\n*本规范基于 Harness Engineering 理念 + 企业级全AI研发实践制定*\n\nFile v1.0.1:marketing/00-intro-short.md\n\n# Harness Dev Standards — 你的 AI 代码交付质检官\n\n> pejic 出品 | 每个 AI 开发者必备的质量标准工具\n\n---\n\n## 🦆 一句话介绍\n\nAI 写代码的时代，效率已经不是问题。\n问题是 —— 你敢把 AI 写的代码直接交付吗？\n\n**Harness Dev Standards — 给你的代码做一次全面体检，只需要 30 秒。**\n\n---\n\n## ✨ 核心特性\n\n### 🛡️ 6 道质量门禁，一道都不能少\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| 📋 需求门禁 | 需求完整清晰，无模糊点 |\n| 🏗️ 架构门禁 | 文件结构标准化，依赖最小化 |\n| 💻 编码门禁 | 语法类型正确，命名规范 |\n| 📦 依赖门禁 | 依赖完整无冗余，无安全漏洞 |\n| 🌍 环境门禁 | .env.example 完整，敏感信息保护 |\n| ✅ 交付门禁 | 项目可构建，README 完整 |\n\n---\n\n### 🤖 10+ 常见问题自动修复\n\n遇到问题不用慌，策略库告诉你怎么修：\n\n- ✅ 依赖版本冲突 → 3 种解决方案\n- ✅ TypeScript 类型错误 → 标准修复模板\n- ✅ Import 路径错误 → 自动排查流程\n- ✅ 启动/构建失败 → 根因定位指南\n\n**超过 100+ 实际项目踩坑总结的修复策略。\n\n---\n\n### 🛠️ 2 个一键运行脚本\n\n```bash\n# 依赖检查 — 发现未使用依赖 + 安全漏洞\n./scripts/depcheck.sh\n\n# 完整质量扫描 — 5 大项一键跑完\n./scripts/quality-scan.sh\n```\n\n**30 秒出结果，零配置，谁都会用。**\n\n---\n\n### 📚 3 份配套参考手册\n\n| 手册 | 内容 |\n|-----|------|\n| standards.md | 3 种项目标准结构 + 完整命名规范 |\n| checklist.md | 交付前逐项检查清单 |\n| remediation.md | 常见问题自动修复策略库 |\n\n---\n\n## 🚀 谁适合用？\n\n✅ **个人开发者** — 不想交付的代码让别人吐槽\n✅ **小型团队** — 想要统一的开发规范\n✅ **AI 辅助开发** — AI 写的代码需要质量把关\n✅ **开源项目** — 想要标准化交付质量\n\n---\n\n## ❌ 谁不适合用？\n\n❌ **大型企业核心系统** — 请用 QCSD Development Swarm\n❌ **需要合规审计报告** — 请用 QCSD Development Swarm\n❌ **需要缺陷预测/突变测试** — 请用 QCSD Development Swarm\n\n---\n\n## 🎯 和其他工具的关系\n\n| 工具 | 定位 | 配合方式 |\n|-----|------|---------|\n| Superpowers | 开发工作流框架 | 开发前 + 开发中用 |\n| Harness Dev Standards | 质量标准体系 | 开发后 + 交付前用 |\n| QCSD Swarm | 企业级深度审计 | 上线前最终检查用 |\n\n**三个工具串联，就是完整的 AI 时代开发流水线。\n\n---\n\n## 💡 设计哲学\n\n> \"质量不是检查出来的，是构建出来的。\n\n> \"没有质量的产能，都是负债。\"\n\n---\n\n## 📦 安装使用\n\n1. 安装 Skill 到你的 OpenClaw\n2. 每次交付前运行：`quality-scan.sh\n3. 对照报告修复问题\n\n**就这么简单。**\n\n---\n\n## 🦆 最后说两句\n\nAI 让写代码变得越来越容易。\n但写出「好代码」和「能用的代码」，永远不是一回事。\n\n**Superpowers 给你踩油门的能力。**\n**Harness Dev Standards 给你踩刹车的底气。\n\n一个让你跑得快。\n一个让你跑得远。\n\n---\n\n> 关注「赛博鸭子」，获取更多 AI 开发实战工具。\n> \n> **GitHub:** github.com/DrPepper8888/harness-dev-standards\n> **ClawHub:** clawhub.com/pejic/harness-dev-standards\n\n---\n\n*\"The best code is the code you don't have to think about.*\n\nFile v1.0.1:marketing/01-vs-superpowers.md\n\n# 用了 100 次 Superpowers 后，我发现大多数人都用错了\n\n> 本文作者：pejic | 首发：赛博鸭子技术周刊\n\n---\n\n## 🔍 一个扎心的发现\n\n这段时间用 Superpowers 做了十几个项目，从简单的工具脚本到复杂的 Next.js 应用。\n\n发现一个很有趣的现象：\n\n**90% 的人用 Superpowers，最后都卡在同一个地方 —— 代码\"写完了\"，但不敢交付。**\n\n子 agent 拍胸脯说\"功能全部实现了\"，你跑一下发现：\n- TypeScript 飙红 20 几个类型错误\n- package.json 里躺着 5 个根本没用的依赖\n- .env.example 只有三行配置，连个注释都没有\n- README 写得像天书，新人根本跑不起来\n\nSuperpowers 很擅长\"把代码写出来\"，但它不负责\"把代码写好\"。\n\n这就是为什么我做了 **Harness Dev Standards**。\n\n---\n\n## 🎯 一个负责\"过程\"，一个负责\"结果\"\n\n很多人问我：这俩不都是开发工具吗？有啥区别？\n\n我举个最简单的例子：\n\n### 场景 1：你说\"帮我做个用户登录系统\"\n\n**Superpowers 是这样干活的：**\n\n1. 🤔 先问你 5 个澄清问题：要不要验证码？要不要记住登录？密码强度要求？\n2. 📋 给你 3 个技术方案：NextAuth / Lucia / 自研，附优缺点对比\n3. 🔨 拆成 8 个小任务，每个任务 2-5 分钟\n4. 🤖 派 8 个子 agent 逐个实现，每个写完都有双重评审\n5. ✅ 最后交付：\"功能全部完成，你测一下\"\n\n**这个过程中，它根本不关心：**\n- 代码风格好不好\n- 依赖干不干净\n- README 写没写清楚\n- .env 配置有没有注释\n\n**它只保证「过程正确」，不保证「结果合格」。**\n\n---\n\n### 场景 2：你说\"这个登录系统写完了，帮我检查一下\"\n\n**Harness Dev Standards 是这样干活的：**\n\n1. 🔍 运行 `quality-scan.sh`\n2. ❌ TypeScript：发现 3 个类型错误，附修复方案\n3. ⚠️  依赖：发现 2 个未使用的包，可以安全移除\n4. ❌ 配置：.env.example 缺少 2 个配置项的注释\n5. ✅ 构建：通过\n6. 📋 对照 6 道门禁逐项确认，给出最终交付评分\n\n**这个过程中，它根本不关心：**\n- 你是花 1 天还是 1 周写的\n- 你是用 TDD 还是想到哪写到哪\n- 你拆了多少个任务，用了多少个子 agent\n\n**它只保证「结果合格」，不关心「过程怎么来的」。**\n\n---\n\n## 📊 一张表看懂本质区别\n\n| 对比项 | Superpowers | Harness Dev Standards |\n|-------|------------|----------------------|\n| **核心定位** | 🎯 开发工作流框架 | 🛡️ 质量标准体系 |\n| **回答的问题** | 怎么开发？ | 什么叫做好？ |\n| **关注点** | 过程正确 | 结果正确 |\n| **执行者** | 子 agent 分工协作 | 当前 agent 一键检查 |\n| **强制程度** | 流程强制，不能跳步 | 标准强制，必须通过 |\n| **输出物** | 可运行的功能代码 | 质量检查报告 + 修复建议 |\n| **使用阶段** | 开发前 + 开发中 | 开发后 + 交付前 |\n| **运行时间** | 5~30 分钟 | < 1 分钟 |\n\n---\n\n## 💡 它们是最佳拍档，不是竞争对手\n\n我知道很多人会问：那我应该用哪个？\n\n**成年人不做选择，两个都要。**\n\n这是我现在的标准开发流程：\n\n```\n用户需求 → Superpowers（组织开发过程） → 代码写好了 → Harness Dev Standards（质量检查） → 交付\n```\n\n### Step 1: Superpowers 管\"做对的事\"\n- 确保需求是清晰的，不会做着做着跑偏\n- 确保技术方案是经过论证的，不会上来就硬写\n- 确保代码是按 spec 实现的，不会漏功能\n\n### Step 2: Harness 管\"把事做对\"\n- 确保代码质量是达标的，类型全对\n- 确保依赖是干净的，没有多余的包\n- 确保交付是标准化的，README 能看懂\n\n**Superpowers 让你\"不会做错事\"，Harness 让你\"不会把事做坏\"。**\n\n---\n\n## 🚀 为什么每个开发者都需要一套质量标准\n\n我见过太多项目：\n- 功能都能用，但没人敢改代码\n- 依赖一大堆，根本不知道哪个在用\n- 新人上手要折腾三天才能跑起来\n- 上线前才发现配置漏了，手忙脚乱\n\n这些问题，都不是\"功能问题\"，而是\"质量问题\"。\n\nSuperpowers 解决的是\"产能问题\" —— 让你更快地写出更多代码。\n\nHarness 解决的是\"质量问题\" —— 让你写的代码敢交付、敢维护、敢给别人用。\n\n**没有质量的产能，都是负债。**\n\n---\n\n## 📦 开箱即用的 6 道质量门禁\n\nHarness Dev Standards 把我踩过的坑，总结成了 6 道硬性门禁：\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| **需求门禁** | 需求完整清晰，无模糊点 |\n| **架构门禁** | 文件结构标准化，依赖最小化 |\n| **编码门禁** | 语法类型正确，命名规范 |\n| **依赖门禁** | 依赖完整无冗余，无安全漏洞 |\n| **环境门禁** | .env.example 完整，敏感信息保护 |\n| **交付门禁** | 项目可构建，README 完整 |\n\n每一道门禁都有对应的自动检查脚本和自动修复策略库。\n\n不用你记，运行 `./quality-scan.sh`，一分钟出结果。\n\n---\n\n## 🎉 最后说两句\n\nAI 写代码的时代，效率已经不是问题了。\n\n真正的问题是：\n- 你敢把 AI 写的代码直接上生产吗？\n- 三个月后，你还敢改这段代码吗？\n- 新人接手，能在 30 分钟内跑起来吗？\n\nSuperpowers 给了你踩油门的能力。\nHarness Dev Standards 给了你踩刹车的底气。\n\n**一个让你跑得快，一个让你跑得远。**\n\n---\n\n### 🦆 配套工具\n\n- **Harness Dev Standards Skill**: 本文主角，你的个人交付质检官\n- **Superpowers Skill**: 子 agent 驱动的 TDD 开发工作流\n- **QCSD Development Swarm**: 企业级深度质量审计（下篇讲）\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n\nFile v1.0.1:marketing/02-vs-qcsd-quality-gates.md\n\n# 你的项目，真的需要跑 QCSD 质量门禁吗？\n\n> 本文作者：pejic | 首发：赛博鸭子技术周刊\n\n---\n\n## 🤔 一个灵魂拷问\n\n前段时间发了 QCSD Development Swarm 的介绍，很多同学问：\n\n\"这个看起来好厉害，我能不能用在我的个人项目上？\"\n\n我一般会反问三个问题：\n1. 你的项目上线后如果出 bug，会有人赔钱吗？\n2. 你的团队超过 10 个人了吗？\n3. 你需要向合规部门提交审计报告吗？\n\n如果答案都是 NO，相信我 —— 你不需要 QCSD。\n\n**杀鸡不用牛刀，但很多人总想着用 CT 扫描仪治感冒。**\n\n---\n\n## 🏥 两个工具的本质区别\n\n我打个最直白的比方：\n\n### QCSD Development Swarm = 医院的 CT 扫描仪\n\n- ✅ 极其精准，能看到毫米级的问题\n- ✅ 输出 12 份专业报告，附医生诊断\n- ✅ 可以检测出早期癌变（缺陷预测）\n- ❌ 很贵，做一次几千块\n- ❌ 很慢，排队 + 扫描 + 等报告 = 大半天\n- ❌ 要专业医生才能看懂报告\n\n**你不会因为有点头疼就去做 CT。**\n\n---\n\n### Harness Dev Standards = 家里的体温计\n\n- ✅ 简单，拿起来就用，谁都会\n- ✅ 快速，量一下几秒钟出结果\n- ✅ 便宜，几块钱一个，家家都有\n- ✅ 告诉你\"发烧了，该去医院了\"\n- ❌ 不能告诉你具体是什么病\n- ❌ 不能给你开处方\n\n**你也不会拿着体温计去做手术。**\n\n---\n\n## 📊 一张表看懂适用场景\n\n| 对比项 | QCSD Development Swarm | Harness Dev Standards |\n|-------|-----------------------|----------------------|\n| **定位** | 🏭 企业级质量工厂 | 🛡️ 个人质量标准 |\n| **目标用户** | 大型企业开发团队 | 单人/小型团队 |\n| **核心问题** | 能不能上生产？ | 能不能交付？ |\n| **Agent 数量** | 10 个 specialist 并行 | 0 个（自己检查） |\n| **运行时间** | 30 分钟 ~ 几小时 | < 1 分钟 |\n| **Token 消耗** | 💰 极高（几万 token） | 💸 极低（几百 token） |\n| **输出物** | 12 份专业报告 + 高管摘要 | 1 页检查报告 + 修复建议 |\n| **裁决机制** | SHIP / CONDITIONAL / HOLD | 通过 / 需要修复 |\n\n---\n\n## 🔬 QCSD 到底有多重型？\n\n很多人对 QCSD 的复杂度没有概念。\n\n我给你列一下它的配置：\n\n### 10 个专业 Agent，各司其职\n\n| Agent | 职责 |\n|-------|------|\n| qe-tdd-specialist | TDD 合规性审计 |\n| qe-code-complexity | 圈复杂度分析 |\n| qe-coverage-specialist | 测试覆盖率深度分析 |\n| qe-security-scanner | 安全漏洞扫描（OWASP Top 10） |\n| qe-performance-tester | 性能基准测试 |\n| qe-mutation-tester | 突变测试（测试用例质量） |\n| qe-message-broker-tester | 消息中间件健康检查 |\n| qe-sap-idoc-tester | SAP IDoc 接口审计 |\n| qe-sod-analyzer | 职责分离合规审计 |\n| qe-defect-predictor | AI 缺陷预测 |\n\n### 9 条强制执行规则\n\n| 规则 | 内容 |\n|-----|------|\n| E1 | 必须同时启动全部 3 个核心 agent，不能例外 |\n| E2 | 所有并行任务必须在同一个消息中发起 |\n| E3 | 每批任务完成后必须等全部结束才能下一步 |\n| E4 | 条件满足时必须启动所有条件 agent，不能跳过 |\n| E5 | 必须严格按阈值给出 SHIP/CONDITIONAL/HOLD 裁决 |\n| E6 | 必须生成完整报告结构，不能缩写 |\n| E7 | 每个 agent 必须先读参考文件才能开始分析 |\n| E8 | 必须对所有代码变更运行缺陷预测，永远 |\n| E9 | 必须执行学习持久化，不能跳过 |\n\n**违反任何一条，整个 Swarm 直接终止。**\n\n这哪是工具啊，这分明是一套军事化管理体系。\n\n---\n\n## 🪶 Harness 到底有多轻量？\n\n相比之下，Harness 简单到不好意思叫\"系统\"。\n\n### 6 道门禁，一键跑完\n\n```bash\n./quality-scan.sh\n```\n\n然后你就看到：\n\n```\n=====================================\n  Harness Engineering - 质量扫描\n=====================================\n\n🔍 1/5 - TypeScript 类型检查...\n✅ TypeScript 类型检查通过\n\n🔍 2/5 - ESLint 代码规范检查...\n✅ ESLint 检查通过\n\n🔍 3/5 - 依赖检查...\n✅ 未发现未使用的 dependencies\n✅ 未发现高危安全漏洞\n\n🔍 4/5 - 环境配置检查...\n✅ .env.example 包含配置说明\n\n🔍 5/5 - 构建检查...\n✅ 构建检查通过\n\n=====================================\n  质量扫描结果\n=====================================\n\n✅ 通过: 5\n❌ 失败: 0\n\n🎉 所有检查通过！代码质量优秀！\n```\n\n**整个过程 30 秒，消耗几百 token。**\n\n---\n\n## 🎯 什么时候用哪个？一张决策图\n\n```\n你要做质量检查吗？\n    │\n    ├─ 是个人项目/小型工具？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 30 秒出结果\n    │      · 自动修复建议\n    │      · 几乎零成本\n    │\n    ├─ 是团队项目但不上生产？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 统一团队规范\n    │      · 避免低级错误\n    │      · 保证交付标准\n    │\n    └─ 是企业核心系统？\n        │\n        ├─ 上线前最终审计？\n        │   └─ ✅ 用 QCSD Development Swarm\n        │      · 10 个专家深度分析\n        │      · 缺陷预测防患未然\n        │      · 合规审计报告\n        │\n        └─ 开发过程中日常检查？\n            └─ ✅ 先用 Harness，合并前再跑 QCSD\n```\n\n---\n\n## 💡 我的真实使用建议\n\n这两个工具我天天用，我的标准流程是：\n\n### 日常开发：Harness 全程护航\n\n- 每次提交 PR 前，跑一遍 `quality-scan.sh`\n- 30 秒，把能自动修复的问题都修了\n- 保证基础质量不滑坡\n\n### Sprint 结束：QCSD 深度审计\n\n- 上线前，跑一遍完整的 QCSD Swarm\n- 30 分钟，做深度质量分析\n- 拿到 SHIP 裁决才敢上线\n\n**就像你在家自己量体温，觉得不对再去医院做 CT。**\n\n---\n\n## ❌ 这些场景千万别用 QCSD\n\n我见过太多人滥用重型工具，最后反而影响效率：\n\n1. **个人 side project** —— 等 QCSD 跑完，你都能重写三遍了\n2. **内部工具/脚本** —— 出 bug 修一下就行，犯不上花几千块做审计\n3. **快速迭代的 MVP** —— 产品方向都没确定，要啥质量门禁\n4. **少于 5 人的小团队** —— 流程成本大于质量收益\n\n**记住：工具是为了解决问题的，不是为了制造仪式感。**\n\n---\n\n## ✅ 这些场景必须用 QCSD\n\n同样，有些场景省不了：\n\n1. **涉及资金交易的核心系统** —— 出一个 bug 可能损失几百万\n2. **监管严格的行业（金融/医疗）** —— 合规比什么都重要\n3. **超过 20 人的开发团队** —— 人多了，必须有统一的质量门槛\n4. **SaaS 产品生产环境** —— 宕机一小时就是几十万的损失\n\n**这些场景，QCSD 跑出来的 HOLD 裁决，能帮你省七位数的损失。**\n\n---\n\n## 🎉 最后总结\n\nAI 时代，我们不缺工具。\n\n**缺的是知道什么时候用什么工具的判断力。**\n\n- 想要\"快\"，用 Superpowers\n- 想要\"好\"，用 Harness Dev Standards\n- 想要\"稳\"，用 QCSD Development Swarm\n\n**没有最好的工具，只有最适合场景的工具。**\n\n不要拿着锤子看什么都是钉子。\n\n也不要因为 CT 扫描仪厉害，感冒了就去做 CT。\n\n---\n\n### 🦆 三个工具的定位回顾\n\n| 工具 | 一句话定位 | 一句话场景 |\n|-----|-----------|-----------|\n| Superpowers | 子 agent 驱动的 TDD 工作流 | 从零开发新功能时 |\n| Harness Dev Standards | 个人交付质量标准体系 | 日常开发提交前 |\n| QCSD Development Swarm | 企业级深度质量审计工厂 | 生产上线前最终检查 |\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n> \n> **下期预告：** 《三个工具串联使用的完整开发流水线实战》\n\nFile v1.0.1:skill.json\n\n{\n  \"name\": \"harness-dev-standards\",\n  \"displayName\": \"Harness Engineering 开发规范体系\",\n  \"description\": \"基于 Harness Engineering 理念 + 企业级全AI研发实践的完整开发质量保障体系。包含 6 道质量门禁、自动修复策略库、标准化文件结构、内置检查脚本，确保每次交付的代码质量。\",\n  \"version\": \"1.0.1\",\n  \"author\": \"pejic\",\n  \"license\": \"MIT\",\n  \"homepage\": \"https://github.com/DrPepper8888/harness-dev-standards\",\n  \"keywords\": [\n    \"harness\",\n    \"engineering\",\n    \"standards\",\n    \"quality-gates\",\n    \"code-review\",\n    \"devops\",\n    \"ci-cd\",\n    \"typescript\",\n    \"nextjs\"\n  ]\n}\n\nArchive v1.0.0: 11 files, 26785 bytes\n\nFiles: marketing/00-intro-short.md (3423b), marketing/01-vs-superpowers.md (5893b), marketing/02-vs-qcsd-quality-gates.md (7927b), references/checklist.md (6090b), references/remediation.md (10537b), references/standards.md (9388b), scripts/depcheck.sh (3417b), scripts/quality-scan.sh (3393b), skill.json (649b), SKILL.md (6278b), _meta.json (140b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: harness-dev-standards\ndescription: Harness Engineering 开发规范体系 - 全流程质量门禁与自动治理标准。基于腾讯全AI研发实践改进，提供完整的代码交付质量保障框架。Use when: (1) 启动新项目开发前, (2) 代码交付前做质量检查, (3) 需要标准化开发流程, (4) 执行架构评审、代码评审, (5) 排查依赖/环境问题\n---\n\n# Harness Engineering 开发规范体系\n\n## 核心哲学\n\n> **\"质量不是检查出来的，是构建出来的\"**\n\n基于 Harness Engineering 理念 + 腾讯全AI研发实践，构建从需求到交付的全链路质量保障体系。\n\n---\n\n## 🚀 快速启动\n\n### 新项目初始化检查清单\n\n**每次启动新项目必须执行：**\n\n```bash\n# 1. 检查目录结构是否符合标准\n# 2. 检查 package.json 依赖完整性\n# 3. 检查 .env.example 配置完整性\n# 4. 检查 README 文档完整性\n```\n\n---\n\n## 🔐 质量门禁 (Quality Gates)\n\n**每次交付必须通过以下 6 道门禁：**\n\n### 1. 需求门禁 (Requirement Gate)\n- ✅ 需求完整清晰，无模糊点\n- ✅ 所有需求点已记录到任务追踪\n- ✅ 技术可行性已验证\n- ✅ 依赖边界已明确\n\n### 2. 架构门禁 (Architecture Gate)\n- ✅ 技术选型适合单人开发\n- ✅ 文件结构清晰，符合标准化规范\n- ✅ 依赖最小化，无冗余包\n- ✅ 扩展性设计合理\n\n**参考：** 查看 [references/standards.md](references/standards.md) 标准化文件结构\n\n### 3. 编码门禁 (Coding Gate)\n- ✅ 语法正确，无 TypeScript/JavaScript 错误\n- ✅ import 路径全部正确\n- ✅ 命名规范清晰（camelCase 变量、PascalCase 组件）\n- ✅ 不遗漏任何功能点\n- ✅ 类型定义完整，无 `any` 滥用\n\n### 4. 依赖门禁 (Dependency Gate)\n- ✅ package.json 包含所有需要的依赖\n- ✅ 无多余依赖（`depcheck` 验证）\n- ✅ 依赖版本稳定（非 alpha/beta）\n- ✅ lockfile 已提交（pnpm-lock.yaml / package-lock.json）\n\n**工具：** 运行 `scripts/depcheck.sh` 自动检查\n\n### 5. 环境门禁 (Environment Gate)\n- ✅ .env.example 包含所有需要的配置\n- ✅ 每个配置项有说明注释\n- ✅ 敏感信息不提交到 git\n- ✅ .gitignore 配置正确\n\n### 6. 交付门禁 (Delivery Gate)\n- ✅ 所有需求点都已实现\n- ✅ 项目能正常启动\n- ✅ README 写清楚使用方法\n- ✅ 构建无错误（`npm run build` 验证）\n\n---\n\n## 🤖 自动治理 (Auto Remediation)\n\n出现以下问题时，**自动修复，无需人工干预：**\n\n| 问题类型 | 自动修复策略 |\n|---------|------------|\n| 依赖安装报错 | 分析错误 → 修改版本号或移除多余依赖 |\n| import 路径错误 | 自动查找正确路径修复 |\n| 语法错误 | 自动修正 TypeScript/JavaScript 语法 |\n| 启动失败 | 读取错误日志 → 修复后重新检查 |\n| 类型错误 | 补全类型定义或修正类型不匹配 |\n\n**修复流程：**\n1. 识别错误信息\n2. 定位问题代码位置\n3. 应用修复策略\n4. 验证修复结果\n5. 重复直到问题解决\n\n---\n\n## 📁 标准化文件结构\n\n### Next.js 项目标准结构\n\n```\nproject-name/\n├── app/                    # Next.js App Router\n│   ├── page.tsx            # 首页\n│   ├── layout.tsx          # 全局布局\n│   └── globals.css         # 全局样式\n├── lib/                   # 工具库、第三方客户端\n├── public/                 # 静态资源\n├── .env.example            # 环境变量示例\n├── .gitignore              # git忽略规则\n├── package.json\n├── tsconfig.json\n├── README.md               # 必须写清楚\n└── *-init.sql              # 数据库初始化SQL\n```\n\n**README 必须包含：**\n- 项目介绍\n- 配置步骤\n- 启动命令\n- 环境变量说明\n\n**详细规范：** 查看 [references/standards.md](references/standards.md)\n\n---\n\n## ✅ 代码质量标准\n\n### TypeScript 规范\n\n- ✅ 类型正确，无隐式 `any`\n- ✅ 命名清晰，变量名表达用途\n- ✅ 注释够用，不冗余\n- ✅ 函数单一职责\n- ✅ 避免深层嵌套（超过 3 层考虑重构）\n\n### 项目规范\n\n- ✅ README 完整，新人能按文档启动\n- ✅ 环境配置说明清晰\n- ✅ 依赖干净，无未使用包\n- ✅ gitignore 正确，不提交敏感文件\n\n---\n\n## 🛠️ 内置工具脚本\n\n### 依赖检查脚本\n```bash\n# 运行依赖检查\n./scripts/depcheck.sh\n```\n\n功能：\n- 检测未使用的依赖\n- 检测缺失的依赖\n- 检测版本冲突\n- 生成修复建议\n\n### 代码质量扫描脚本\n```bash\n# 运行代码质量扫描\n./scripts/quality-scan.sh\n```\n\n功能：\n- TypeScript 类型检查\n- ESLint 规则检查\n- 命名规范检查\n- import 路径验证\n\n---\n\n## 📋 交付前检查清单\n\n**交付前逐项确认：**\n\n- [ ] 需求门禁：所有需求点实现完毕\n- [ ] 架构门禁：文件结构符合标准\n- [ ] 编码门禁：无语法/类型错误\n- [ ] 依赖门禁：依赖干净无冗余\n- [ ] 环境门禁：.env.example 完整\n- [ ] 交付门禁：项目能正常启动构建\n- [ ] README：包含完整使用说明\n\n---\n\n## 📚 参考文档\n\n| 文档 | 内容 |\n|-----|------|\n| [references/standards.md](references/standards.md) | 详细文件结构规范 + 命名规范 |\n| [references/checklist.md](references/checklist.md) | 完整交付检查清单模板 |\n| [references/remediation.md](references/remediation.md) | 常见问题自动修复策略库 |\n\n---\n\n## 💡 设计理念\n\n### 为什么这样设计？\n\n1. **前置质量** - 把质量检查左移到开发过程每个环节，不是最后才检查\n2. **自动修复** - 能自动修的绝不麻烦人，解放生产力\n3. **标准化** - 降低认知负担，所有项目看起来都一样\n4. **渐进式** - 不追求完美，每次交付比上一次更好\n\n### 和传统开发流程的区别\n\n| 传统流程 | Harness Engineering |\n|---------|-------------------|\n| 最后统一测试 | 每一步都有质量门禁 |\n| 人找问题 | 问题自动暴露并修复 |\n| 每个项目结构都不一样 | 标准化结构，上手成本为0 |\n| 依赖问题靠经验解决 | 自动检测并给出修复方案 |\n\n---\n\n*\"The best code is the code you don't have to think about.\"* - Harness Engineering Philosophy\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ffzw77tj6c8yw14p92w963984vgsq\",\n  \"slug\": \"harness-dev-standards\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1778673260623\n}\n\nFile v1.0.0:references/checklist.md\n\n# 完整交付检查清单\n\n## 目录\n\n- [项目交付前检查清单](#项目交付前检查清单)\n- [代码评审检查清单](#代码评审检查清单)\n- [发布前检查清单](#发布前检查清单)\n- [安全检查清单](#安全检查清单)\n\n---\n\n## 项目交付前检查清单\n\n### 📋 需求检查\n\n- [ ] 所有需求点已实现\n- [ ] 需求变更已记录\n- [ ] 边缘情况已处理\n- [ ] 用户验收标准已满足\n\n### 🏗️ 架构检查\n\n- [ ] 文件结构符合标准化规范\n- [ ] 无冗余目录或文件\n- [ ] 依赖关系清晰\n- [ ] 模块划分合理\n\n### 💻 代码质量检查\n\n- [ ] TypeScript 类型检查通过 (`tsc --noEmit`)\n- [ ] ESLint 检查通过无错误\n- [ ] 无未使用的变量或导入\n- [ ] 无 `any` 类型滥用\n- [ ] 命名清晰符合规范\n- [ ] 注释充分且有意义\n- [ ] 无重复代码块\n- [ ] 函数单一职责（不超过 50 行）\n- [ ] 嵌套层级不超过 3 层\n\n### 📦 依赖检查\n\n- [ ] package.json 包含所有依赖\n- [ ] 无未使用的依赖 (`depcheck` 验证)\n- [ ] 依赖版本稳定（非 alpha/beta/rc）\n- [ ] lockfile 已提交\n- [ ] 无已知安全漏洞 (`npm audit` 验证)\n\n### 🌍 环境检查\n\n- [ ] .env.example 包含所有配置项\n- [ ] 每个配置项有说明注释\n- [ ] .env.local 已加入 .gitignore\n- [ ] 敏感信息未提交到 git\n- [ ] .gitignore 配置正确\n\n### 📖 文档检查\n\n- [ ] README.md 完整\n- [ ] README 包含项目介绍\n- [ ] README 包含快速开始指南\n- [ ] README 包含环境变量说明\n- [ ] README 包含部署说明\n- [ ] 代码注释清晰易懂\n- [ ] API 文档（如有）已更新\n\n### ✅ 功能验证\n\n- [ ] 项目能正常启动\n- [ ] 项目能正常构建 (`npm run build`)\n- [ ] 主要功能流程可正常执行\n- [ ] 错误边界已处理\n- [ ] 加载状态有反馈\n\n---\n\n## 代码评审检查清单\n\n### 代码正确性\n\n- [ ] 逻辑正确，无明显 bug\n- [ ] 边界条件已处理\n- [ ] 错误处理完善\n- [ ] 异步操作正确处理\n- [ ] 并发问题已考虑\n\n### 代码质量\n\n- [ ] 代码简洁，无冗余\n- [ ] 命名清晰，表达准确\n- [ ] 函数/类职责单一\n- [ ] 无重复代码\n- [ ] 无魔法数字/字符串\n\n### 性能考虑\n\n- [ ] 无不必要的重渲染\n- [ ] 大数据量场景已优化\n- [ ] 内存泄漏风险已检查\n- [ ] 网络请求有缓存策略\n\n### 安全性\n\n- [ ] XSS 风险已处理\n- [ ] SQL 注入风险已处理\n- [ ] 用户输入已验证\n- [ ] 敏感信息未日志输出\n- [ ] 认证授权逻辑正确\n\n### 可维护性\n\n- [ ] 代码结构清晰\n- [ ] 注释充分\n- [ ] 符合团队规范\n- [ ] 测试用例充分\n\n---\n\n## 发布前检查清单\n\n### 构建检查\n\n- [ ] 生产构建无错误\n- [ ] 构建产物大小合理\n- [ ] Tree shaking 生效\n- [ ] 无用代码已移除\n\n### 配置检查\n\n- [ ] 生产环境配置正确\n- [ ] API 端点指向生产\n- [ ] Debug 模式已关闭\n- [ ] Log 级别配置正确\n\n### 功能检查\n\n- [ ] 冒烟测试通过\n- [ ] 核心功能验证通过\n- [ ] 回归测试通过\n- [ ] 性能指标达标\n\n### 监控检查\n\n- [ ] 错误监控已配置\n- [ ] 性能监控已配置\n- [ ] 日志收集已配置\n- [ ] 告警规则已设置\n\n### 回滚准备\n\n- [ ] 上一版本备份存在\n- [ ] 回滚流程已明确\n- [ ] 数据库迁移可回滚\n- [ ] 配置回滚方案已准备\n\n---\n\n## 安全检查清单\n\n### 认证与授权\n\n- [ ] JWT secret 足够复杂\n- [ ] Token 过期时间合理\n- [ ] 权限边界清晰\n- [ ] 越权访问已防护\n- [ ] 登录失败有锁定机制\n\n### 输入验证\n\n- [ ] 所有用户输入已验证\n- [ ] 验证在服务端执行\n- [ ] 输入长度有限制\n- [ ] 特殊字符已处理\n- [ ] 文件上传有类型/大小限制\n\n### 输出编码\n\n- [ ] XSS 防护已启用\n- [ ] HTML 输出已编码\n- [ ] JSON 输出正确\n- [ ] 响应头安全配置\n\n### 数据保护\n\n- [ ] 密码已加密存储（bcrypt/argon2）\n- [ ] 敏感数据传输使用 HTTPS\n- [ ] 数据库连接信息加密\n- [ ] 日志不含敏感信息\n- [ ] PII 数据有保护措施\n\n### 依赖安全\n\n- [ ] 定期运行 `npm audit`\n- [ ] 高危漏洞已修复\n- [ ] 不使用已废弃的包\n- [ ] 依赖来源可信\n- [ ] 有依赖更新机制\n\n---\n\n## 自动检查脚本使用说明\n\n### 运行全部检查\n\n```bash\n# 进入项目目录\ncd your-project\n\n# 运行质量扫描\nbash scripts/quality-scan.sh\n```\n\n### 单独运行检查\n\n```bash\n# TypeScript 类型检查\nnpx tsc --noEmit\n\n# ESLint 检查\nnpx eslint . --ext .ts,.tsx\n\n# 依赖检查\nnpx depcheck\n\n# 安全漏洞检查\nnpm audit\n\n# 构建检查\nnpm run build\n```\n\n### 检查结果判定\n\n| 检查项 | 通过标准 |\n|--------|---------|\n| TypeScript | 0 errors |\n| ESLint | 0 errors, warnings 可接受但尽量少 |\n| depcheck | 0 unused dependencies |\n| npm audit | 0 critical, 0 high |\n| build | 成功完成无错误 |\n\n---\n\n## 常见问题排查\n\n### 依赖安装失败\n\n1. 检查 Node.js 版本是否符合要求\n2. 删除 lockfile 和 node_modules 重新安装\n3. 检查网络连接和 npm 源配置\n4. 尝试降级有问题的依赖版本\n\n### 类型检查失败\n\n1. 检查类型定义是否完整\n2. 检查 import 路径是否正确\n3. 检查 tsconfig.json 配置\n4. 必要时使用 `// @ts-ignore` 但要加注释说明\n\n### 构建失败\n\n1. 检查环境变量是否配置完整\n2. 检查是否有未使用的导入\n3. 检查路径别名配置是否正确\n4. 查看详细错误日志定位问题\n\n---\n\n## 检查清单使用指南\n\n### 如何高效使用\n\n1. **提前使用** - 不要等到交付前才检查，开发过程中逐项确认\n2. **自动化优先** - 能自动化的检查项全部做成脚本自动运行\n3. **结对验证** - 重要项目让另一个人过一遍清单\n4. **持续改进** - 根据实际情况更新清单内容\n\n### 不同项目的裁剪\n\n- **小型工具项目** - 可跳过部分架构和性能检查\n- **核心业务项目** - 必须通过全部检查项\n- **开源项目** - 额外增加文档和示例代码检查\n- **安全敏感项目** - 重点关注安全检查清单\n\n---\n\n*本清单基于 Harness Engineering 质量门禁理念制定*\n\nFile v1.0.0:references/remediation.md\n\n# 常见问题自动修复策略库\n\n## 目录\n\n- [依赖问题修复](#依赖问题修复)\n- [TypeScript 类型错误修复](#typescript-类型错误修复)\n- [Import 路径错误修复](#import-路径错误修复)\n- [语法错误修复](#语法错误修复)\n- [启动失败修复](#启动失败修复)\n- [构建错误修复](#构建错误修复)\n\n---\n\n## 依赖问题修复\n\n### 问题 1: 依赖版本冲突\n\n**错误信息：**\n```\nnpm ERR! code ERESOLVE\nnpm ERR! ERESOLVE could not resolve dependency\n```\n\n**自动修复策略：**\n\n1. **识别冲突包** - 从错误信息中提取冲突的包名和版本范围\n2. **查看 peerDependencies** - 检查冲突包的对等依赖要求\n3. **应用以下修复方案：**\n\n   **方案 A: 使用 --legacy-peer-deps（临时方案）**\n   ```bash\n   npm install --legacy-peer-deps\n   # 或\n   pnpm install --no-strict-peer-dependencies\n   ```\n\n   **方案 B: 升级/降级冲突包**\n   - 查找兼容的版本组合\n   - 更新 package.json 中的版本号\n   - 重新安装\n\n   **方案 C: 使用 overrides（npm）或 resolutions（pnpm）**\n   ```json\n   // package.json\n   {\n     \"overrides\": {\n       \"react\": \"^18.0.0\"\n     }\n   }\n   ```\n\n4. **验证修复** - 重新运行 install 确认问题解决\n\n---\n\n### 问题 2: 未使用的依赖\n\n**错误信息：**\n```\nUnused dependencies found:\n- package-a\n- package-b\n```\n\n**自动修复策略：**\n\n1. **二次确认** - 检查代码中是否真的没有使用这些包\n   - 搜索 import 语句\n   - 搜索 require 调用\n   - 检查配置文件中的引用\n\n2. **安全移除** - 如果确认未使用：\n   ```bash\n   npm uninstall package-a package-b\n   # 或\n   pnpm remove package-a package-b\n   ```\n\n3. **注意事项**\n   - 不要移除仅在配置文件中引用的包\n   - 不要移除 peerDependencies 中声明的包\n   - 某些包可能通过字符串动态导入，需要特殊处理\n\n---\n\n### 问题 3: 缺失的依赖\n\n**错误信息：**\n```\nCannot find module 'missing-package'\n```\n\n**自动修复策略：**\n\n1. **识别缺失包名** - 从错误信息提取\n2. **检查是否为 devDependency** - 有些包可能只在开发环境需要\n3. **安装依赖**：\n   ```bash\n   npm install missing-package\n   # 或开发依赖\n   npm install -D missing-package\n   ```\n\n4. **特殊情况处理**\n   - 如果是类型定义缺失：`npm install -D @types/missing-package`\n   - 如果是 monorepo 内部包：检查 workspace 配置\n   - 如果是私有包：检查 npm registry 配置\n\n---\n\n### 问题 4: 安全漏洞\n\n**错误信息：**\n```\nnpm audit found 3 high severity vulnerabilities\n```\n\n**自动修复策略：**\n\n1. **运行自动修复**：\n   ```bash\n   npm audit fix\n   ```\n\n2. 如果自动修复无法解决：\n   - 查看漏洞详情：`npm audit`\n   - 检查受影响包的最新版本是否修复\n   - 如果有修复版本，手动升级：`npm update vulnerable-package`\n   - 如果无法升级，考虑使用替代包或添加忽略说明\n\n3. **记录说明** - 如果必须保留有漏洞的版本，在代码中添加注释说明原因\n\n---\n\n## TypeScript 类型错误修复\n\n### 问题 1: 隐式 any 类型\n\n**错误信息：**\n```\nParameter 'x' implicitly has an 'any' type.\n```\n\n**自动修复策略：**\n\n1. **推断类型** - 根据参数使用方式推断合理的类型\n2. **添加类型注解**：\n   ```typescript\n   // 修复前\n   function process(x) { ... }\n   \n   // 修复后\n   function process(x: string) { ... }\n   ```\n\n3. **如果类型确实不确定**：\n   - 使用 `unknown` 而不是 `any`\n   - 添加类型守卫\n   ```typescript\n   function process(x: unknown) {\n     if (typeof x === 'string') {\n       // x 在这里是 string 类型\n     }\n   }\n   ```\n\n---\n\n### 问题 2: 类型不匹配\n\n**错误信息：**\n```\nType 'string' is not assignable to type 'number'.\n```\n\n**自动修复策略：**\n\n1. **分析上下文** - 确定期望的类型和实际的类型\n2. **应用类型转换**：\n   ```typescript\n   // 修复前\n   const count: number = params.count;\n   \n   // 修复后\n   const count: number = Number(params.count);\n   ```\n\n3. **常见转换模式**：\n   - 字符串转数字：`Number(x)` 或 `parseInt(x, 10)`\n   - 任意转布尔：`Boolean(x)` 或 `!!x`\n   - 联合类型收窄：使用类型守卫\n\n---\n\n### 问题 3: 可能为 null/undefined\n\n**错误信息：**\n```\nObject is possibly 'null'.\nObject is possibly 'undefined'.\n```\n\n**自动修复策略：**\n\n1. **添加空值检查**（推荐）：\n   ```typescript\n   // 修复前\n   const name = user.name;\n   \n   // 修复后\n   const name = user?.name;\n   ```\n\n2. **如果确定不会为空**，使用非空断言：\n   ```typescript\n   const name = user!.name;\n   ```\n\n3. **提供默认值**：\n   ```typescript\n   const name = user?.name ?? 'default';\n   ```\n\n---\n\n### 问题 4: 缺少属性定义\n\n**错误信息：**\n```\nProperty 'email' does not exist on type 'User'.\n```\n\n**自动修复策略：**\n\n1. **找到类型定义位置**\n2. **添加缺失的属性**：\n   ```typescript\n   // 修复前\n   interface User {\n     id: number;\n     name: string;\n   }\n   \n   // 修复后\n   interface User {\n     id: number;\n     name: string;\n     email: string;\n   }\n   ```\n\n3. **如果是外部类型**，使用类型扩展：\n   ```typescript\n   declare module 'external-lib' {\n     interface User {\n       email: string;\n     }\n   }\n   ```\n\n---\n\n## Import 路径错误修复\n\n### 问题 1: 模块未找到\n\n**错误信息：**\n```\nCannot find module '@/components/Button' or its corresponding type declarations.\n```\n\n**自动修复策略：**\n\n1. **检查路径别名配置** - 查看 tsconfig.json 中的 paths 配置\n2. **验证文件是否存在** - 检查目标文件的实际位置\n3. **修正路径**：\n\n   **相对路径问题**：\n   ```typescript\n   // 修复前\n   import Button from '../../components/Button';\n   \n   // 修复后（层数不对）\n   import Button from '../../../components/Button';\n   ```\n\n   **路径别名问题**：\n   - 确认 tsconfig.json 配置正确\n   - 确认构建工具（webpack/vite）也配置了别名\n   - 如果使用 Next.js，检查是否配置了 baseUrl\n\n4. **扩展名问题** - 某些环境需要明确加 `.ts` / `.tsx` 扩展名\n\n---\n\n### 问题 2: 命名导出不存在\n\n**错误信息：**\n```\nModule '\"../utils\"' has no exported member 'formatDate'.\n```\n\n**自动修复策略：**\n\n1. **检查目标模块的导出**\n2. **修正导入名称** - 可能是拼写错误\n3. **如果是默认导出**，改为默认导入：\n   ```typescript\n   // 修复前\n   import { formatDate } from '../utils';\n   \n   // 修复后\n   import formatDate from '../utils';\n   ```\n\n4. **如果确实需要命名导出**，在目标模块添加导出：\n   ```typescript\n   // 在 ../utils 中添加\n   export { formatDate };\n   ```\n\n---\n\n## 语法错误修复\n\n### 常见 JavaScript/TypeScript 语法错误\n\n| 错误模式 | 修复方案 |\n|---------|---------|\n| 缺少分号 | 添加分号（或配置无分号风格） |\n| 括号不匹配 | 找出缺失的括号并补全 |\n| 引号不匹配 | 统一引号类型（单/双/模板字符串） |\n| `const` 变量重新赋值 | 改为 `let` 或避免重新赋值 |\n| 解构时使用保留字 | 重命名变量：`{ default: defaultVal }` |\n| 异步函数中没有 await | 添加 await 或移除 async |\n\n### 示例修复\n\n**问题：缺少闭括号**\n```typescript\n// 修复前\nfunction add(a, b {\n  return a + b;\n}\n\n// 修复后\nfunction add(a, b) {\n  return a + b;\n}\n```\n\n**问题：const 重新赋值**\n```typescript\n// 修复前\nconst count = 0;\ncount = 1;\n\n// 修复后\nlet count = 0;\ncount = 1;\n```\n\n---\n\n## 启动失败修复\n\n### 问题 1: 端口被占用\n\n**错误信息：**\n```\nPort 3000 is already in use.\n```\n\n**自动修复策略：**\n\n1. **查找占用进程**：\n   ```bash\n   lsof -i :3000\n   # 或\n   netstat -ano | findstr :3000\n   ```\n\n2. **杀掉进程**：\n   ```bash\n   kill -9 <PID>\n   ```\n\n3. **或使用其他端口**：\n   - 修改 package.json 中的启动命令\n   - 或设置环境变量 `PORT=3001`\n\n---\n\n### 问题 2: 环境变量缺失\n\n**错误信息：**\n```\nError: DATABASE_URL is not defined\n```\n\n**自动修复策略：**\n\n1. **检查 .env 文件是否存在**\n2. **检查 .env.example 中的配置项**\n3. **创建/更新 .env 文件**，添加缺失的环境变量\n4. **确认环境变量加载工具已正确配置**（dotenv 等）\n\n---\n\n### 问题 3: Node.js 版本不兼容\n\n**错误信息：**\n```\nError: Cannot find module 'node:fs'\n```\n\n**自动修复策略：**\n\n1. **检查 package.json 中的 engines 配置**\n2. **建议升级 Node.js 版本**\n3. **或降级相关依赖包到兼容版本**\n\n---\n\n## 构建错误修复\n\n### 问题 1: Next.js 构建时页面报错\n\n**错误信息：**\n```\nError occurred prerendering page \"/xxx\".\n```\n\n**自动修复策略：**\n\n1. **检查是否有服务端不支持的 API**（window, document 等）\n2. **添加动态导入或客户端标记**：\n   ```typescript\n   'use client'; // 客户端组件\n   \n   // 或动态导入\n   const Component = dynamic(() => import('./Component'), {\n     ssr: false\n   });\n   ```\n\n3. **检查 getStaticProps/getServerSideProps 中的错误**\n4. **检查数据获取是否有异常未捕获**\n\n---\n\n### 问题 2: 构建产物过大\n\n**警告信息：**\n```\nWarning: asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).\n```\n\n**自动修复策略：**\n\n1. **分析 bundle 组成**：\n   ```bash\n   npx webpack-bundle-analyzer\n   # 或 Next.js 内置分析\n   ANALYZE=true npm run build\n   ```\n\n2. **应用优化手段**：\n   - 代码分割（动态 import）\n   - 移除未使用的依赖\n   - 使用更轻量的替代库\n   - 启用 Tree Shaking\n   - 配置 externals\n\n---\n\n## 修复验证流程\n\n每次自动修复后，必须执行以下验证：\n\n1. **重新运行出错的命令** - 确认错误已解决\n2. **运行类型检查** - `npx tsc --noEmit`\n3. **运行 lint 检查** - `npx eslint .`\n4. **尝试启动项目** - `npm run dev`\n5. **尝试构建项目** - `npm run build`\n\n**如果还有错误，重复诊断-修复-验证流程，直到全部通过。**\n\n---\n\n## 修复优先级原则\n\n1. **正确性优先** - 保证修复后的代码逻辑正确\n2. **最小改动** - 只修改必要的部分，不引入无关变更\n3. **保留语义** - 修复后代码的行为应和原意图一致\n4. **可维护性** - 修复方案应清晰易懂，不是黑魔法\n\n---\n\n*本策略库基于 100+ 实际项目问题总结而成，持续更新中...*\n\nFile v1.0.0:references/standards.md\n\n# 详细文件结构与命名规范\n\n## 目录\n\n- [Next.js 项目标准结构](#nextjs-项目标准结构)\n- [Node.js 后端项目结构](#nodejs-后端项目结构)\n- [React 组件库项目结构](#react-组件库项目结构)\n- [命名规范](#命名规范)\n- [Git 提交规范](#git-提交规范)\n\n---\n\n## Next.js 项目标准结构\n\n### 完整目录树\n\n```\nproject-name/\n├── app/                              # App Router 目录\n│   ├── (auth)/                       # 路由组 - 认证相关\n│   │   ├── login/\n│   │   │   └── page.tsx\n│   │   └── register/\n│   │       └── page.tsx\n│   ├── (dashboard)/                  # 路由组 - 仪表板\n│   │   ├── layout.tsx\n│   │   └── page.tsx\n│   ├── api/                          # API 路由\n│   │   └── hello/\n│   │       └── route.ts\n│   ├── layout.tsx                    # 根布局\n│   ├── page.tsx                      # 首页\n│   └── globals.css                   # 全局样式\n├── components/                       # 可复用组件\n│   ├── ui/                           # 基础 UI 组件 (Button, Input, etc.)\n│   │   ├── button.tsx\n│   │   └── input.tsx\n│   ├── layout/                       # 布局组件\n│   │   ├── header.tsx\n│   │   └── sidebar.tsx\n│   └── features/                     # 业务组件\n│       └── user-profile.tsx\n├── lib/                             # 工具库\n│   ├── utils/                        # 通用工具函数\n│   │   └── format.ts\n│   ├── hooks/                        # 自定义 Hooks\n│   │   └── use-local-storage.ts\n│   ├── types/                        # TypeScript 类型定义\n│   │   └── index.ts\n│   └── clients/                      # 第三方客户端\n│       ├── supabase.ts\n│       └── openai.ts\n├── public/                           # 静态资源\n│   ├── images/\n│   ├── icons/\n│   └── favicon.ico\n├── styles/                           # 样式文件\n│   └── theme.css\n├── .env.example                      # 环境变量示例\n├── .env.local                        # 本地环境变量 (gitignore)\n├── .gitignore\n├── package.json\n├── pnpm-lock.yaml / package-lock.json\n├── tsconfig.json\n├── next.config.js\n├── tailwind.config.js (可选)\n├── README.md\n└── *-init.sql                        # 数据库初始化SQL\n```\n\n### 文件命名规则\n\n| 类型 | 命名规范 | 示例 |\n|------|---------|------|\n| 页面组件 | kebab-case + page.tsx | `user-profile/page.tsx` |\n| UI 组件 | PascalCase | `Button.tsx`, `UserCard.tsx` |\n| Hook 函数 | camelCase, use- 前缀 | `use-local-storage.ts` |\n| 工具函数 | camelCase | `format-date.ts` |\n| 类型定义 | PascalCase | `User.ts`, `ApiResponse.ts` |\n| 配置文件 | dot notation | `.eslintrc.js`, `tailwind.config.js` |\n\n---\n\n## Node.js 后端项目结构\n\n```\nbackend-project/\n├── src/\n│   ├── controllers/                  # 控制器层\n│   │   └── user.controller.ts\n│   ├── services/                     # 业务逻辑层\n│   │   └── user.service.ts\n│   ├── repositories/                 # 数据访问层\n│   │   └── user.repository.ts\n│   ├── routes/                       # 路由定义\n│   │   └── user.routes.ts\n│   ├── middleware/                   # 中间件\n│   │   └── auth.middleware.ts\n│   ├── models/                       # 数据模型\n│   │   └── user.model.ts\n│   ├── types/                        # 类型定义\n│   │   └── index.ts\n│   ├── utils/                        # 工具函数\n│   │   └── validator.ts\n│   ├── config/                       # 配置文件\n│   │   └── database.ts\n│   └── app.ts                        # 应用入口\n├── tests/                            # 测试文件\n│   └── user.test.ts\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n---\n\n## React 组件库项目结构\n\n```\ncomponent-library/\n├── src/\n│   ├── components/\n│   │   ├── Button/\n│   │   │   ├── Button.tsx\n│   │   │   ├── Button.test.tsx\n│   │   │   ├── Button.stories.tsx\n│   │   │   └── index.ts\n│   │   └── Input/\n│   │       ├── Input.tsx\n│   │       ├── Input.test.tsx\n│   │       ├── Input.stories.tsx\n│   │       └── index.ts\n│   ├── hooks/\n│   ├── utils/\n│   ├── styles/\n│   └── index.ts                      # 库入口\n├── .env.example\n├── .gitignore\n├── package.json\n├── tsconfig.json\n├── vite.config.ts (可选)\n└── README.md\n```\n\n---\n\n## 命名规范\n\n### 通用原则\n\n1. **语义化** - 名称要能准确表达用途\n2. **一致性** - 同一类事物用相同命名模式\n3. **简洁性** - 不使用冗余词汇，不缩写到难以理解\n\n### 文件命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| React 组件 | PascalCase | `UserProfile.tsx` | `userProfile.tsx`, `user_profile.tsx` |\n| 普通模块 | kebab-case | `auth-utils.ts` | `authUtils.ts`, `AuthUtils.ts` |\n| Hook 文件 | kebab-case, use- 前缀 | `use-click-outside.ts` | `UseClickOutside.ts` |\n| 类型定义 | PascalCase | `UserProfile.ts` | `user-profile.ts` |\n| 配置文件 | dot notation | `.eslintrc.js` | `eslintrc.js` |\n| 图片资源 | kebab-case | `hero-banner.png` | `HeroBanner.png` |\n\n### 代码命名\n\n| 类型 | 规范 | 正确示例 | 错误示例 |\n|------|------|---------|---------|\n| 类/组件 | PascalCase | `class UserService {}` | `class userService {}` |\n| 函数/方法 | camelCase | `function getUser() {}` | `function GetUser() {}` |\n| 变量 | camelCase | `const userName = 'xxx'` | `const UserName = 'xxx'` |\n| 常量 | UPPER_SNAKE_CASE | `const MAX_RETRY = 3` | `const maxRetry = 3` |\n| 接口/类型 | PascalCase | `interface User {}` | `interface user {}` |\n| 枚举 | PascalCase | `enum Status {}` | `enum STATUS {}` |\n\n### React 特有命名\n\n| 类型 | 规范 | 示例 |\n|------|------|------|\n| 组件名 | PascalCase | `UserProfile`, `Button` |\n| Props 接口 | `ComponentNameProps` | `UserProfileProps`, `ButtonProps` |\n| Hook 函数 | camelCase, use 前缀 | `useLocalStorage`, `useDebounce` |\n| 事件处理 | `handle` + 名词 + 动词 | `handleSubmitClick`, `handleInputChange` |\n\n---\n\n## Git 提交规范\n\n### 提交信息格式\n\n```\n<type>(<scope>): <subject>\n\n<body>\n\n<footer>\n```\n\n### Type 类型\n\n| 类型 | 说明 |\n|------|------|\n| feat | 新功能 |\n| fix | 修复 bug |\n| docs | 文档更新 |\n| style | 代码格式调整（不影响代码运行） |\n| refactor | 重构（既不是新增功能，也不是修复 bug） |\n| perf | 性能优化 |\n| test | 增加测试 |\n| chore | 构建过程或辅助工具的变动 |\n| ci | CI/CD 相关变更 |\n\n### 示例\n\n```\nfeat(auth): add user registration flow\n\n- Add registration form validation\n- Add email verification\n- Add password strength checker\n\nCloses #123\n```\n\n```\nfix(api): correct user profile response type\n\nThe profile endpoint was returning incorrect field names.\nThis fix aligns the response with the API specification.\n```\n\n---\n\n## README 必须包含的内容\n\n每个项目的 README.md 必须包含以下部分：\n\n1. **项目介绍** - 一句话说明项目是做什么的\n2. **功能特性** - 主要功能列表\n3. **技术栈** - 使用的主要技术\n4. **快速开始**\n   - 环境要求\n   - 安装步骤\n   - 启动命令\n5. **环境变量** - 所有需要配置的环境变量及说明\n6. **项目结构** - 简要目录结构说明\n7. **开发指南** - 如何添加新功能/组件\n8. **部署说明** - 如何部署到生产环境\n9. **License** - 开源协议\n\n### README 模板\n\n```markdown\n# 项目名称\n\n一句话项目介绍。\n\n## ✨ 功能特性\n\n- 功能 1\n- 功能 2\n- 功能 3\n\n## 🛠️ 技术栈\n\n- **前端框架**: Next.js 14\n- **样式**: Tailwind CSS\n- **数据库**: Supabase\n- **语言**: TypeScript\n\n## 🚀 快速开始\n\n### 环境要求\n\n- Node.js >= 18\n- pnpm >= 8\n\n### 安装\n\n```bash\n# 克隆项目\ngit clone https://github.com/username/repo.git\n\n# 进入项目目录\ncd repo\n\n# 安装依赖\npnpm install\n```\n\n### 配置环境变量\n\n```bash\ncp .env.example .env.local\n```\n\n编辑 `.env.local` 填入以下配置：\n\n| 变量名 | 说明 | 示例 |\n|--------|------|------|\n| DATABASE_URL | 数据库连接地址 | `postgresql://...` |\n| API_KEY | API 密钥 | `sk-xxx` |\n\n### 启动开发环境\n\n```bash\npnpm dev\n```\n\n访问 http://localhost:3000\n\n## 📁 项目结构\n\n```\n简要目录结构说明\n```\n\n## 📝 开发指南\n\n### 添加新组件\n\n1. 在 `components/features/` 创建组件\n2. 遵循组件命名规范\n3. 添加类型定义\n\n### 提交代码\n\n参考 [Git 提交规范](#git-提交规范)\n\n## 🚢 部署\n\n```bash\npnpm build\npnpm start\n```\n\n## 📄 License\n\nMIT\n```\n\n---\n\n*本规范基于 Harness Engineering 理念 + 腾讯全AI研发实践制定*\n\nFile v1.0.0:marketing/00-intro-short.md\n\n# Harness Dev Standards — 你的 AI 代码交付质检官\n\n> pejic 出品 | 每个 AI 开发者必备的质量标准工具\n\n---\n\n## 🦆 一句话介绍\n\nAI 写代码的时代，效率已经不是问题。\n问题是 —— 你敢把 AI 写的代码直接交付吗？\n\n**Harness Dev Standards — 给你的代码做一次全面体检，只需要 30 秒。**\n\n---\n\n## ✨ 核心特性\n\n### 🛡️ 6 道质量门禁，一道都不能少\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| 📋 需求门禁 | 需求完整清晰，无模糊点 |\n| 🏗️ 架构门禁 | 文件结构标准化，依赖最小化 |\n| 💻 编码门禁 | 语法类型正确，命名规范 |\n| 📦 依赖门禁 | 依赖完整无冗余，无安全漏洞 |\n| 🌍 环境门禁 | .env.example 完整，敏感信息保护 |\n| ✅ 交付门禁 | 项目可构建，README 完整 |\n\n---\n\n### 🤖 10+ 常见问题自动修复\n\n遇到问题不用慌，策略库告诉你怎么修：\n\n- ✅ 依赖版本冲突 → 3 种解决方案\n- ✅ TypeScript 类型错误 → 标准修复模板\n- ✅ Import 路径错误 → 自动排查流程\n- ✅ 启动/构建失败 → 根因定位指南\n\n**超过 100+ 实际项目踩坑总结的修复策略。\n\n---\n\n### 🛠️ 2 个一键运行脚本\n\n```bash\n# 依赖检查 — 发现未使用依赖 + 安全漏洞\n./scripts/depcheck.sh\n\n# 完整质量扫描 — 5 大项一键跑完\n./scripts/quality-scan.sh\n```\n\n**30 秒出结果，零配置，谁都会用。**\n\n---\n\n### 📚 3 份配套参考手册\n\n| 手册 | 内容 |\n|-----|------|\n| standards.md | 3 种项目标准结构 + 完整命名规范 |\n| checklist.md | 交付前逐项检查清单 |\n| remediation.md | 常见问题自动修复策略库 |\n\n---\n\n## 🚀 谁适合用？\n\n✅ **个人开发者** — 不想交付的代码让别人吐槽\n✅ **小型团队** — 想要统一的开发规范\n✅ **AI 辅助开发** — AI 写的代码需要质量把关\n✅ **开源项目** — 想要标准化交付质量\n\n---\n\n## ❌ 谁不适合用？\n\n❌ **大型企业核心系统** — 请用 QCSD Development Swarm\n❌ **需要合规审计报告** — 请用 QCSD Development Swarm\n❌ **需要缺陷预测/突变测试** — 请用 QCSD Development Swarm\n\n---\n\n## 🎯 和其他工具的关系\n\n| 工具 | 定位 | 配合方式 |\n|-----|------|---------|\n| Superpowers | 开发工作流框架 | 开发前 + 开发中用 |\n| Harness Dev Standards | 质量标准体系 | 开发后 + 交付前用 |\n| QCSD Swarm | 企业级深度审计 | 上线前最终检查用 |\n\n**三个工具串联，就是完整的 AI 时代开发流水线。\n\n---\n\n## 💡 设计哲学\n\n> \"质量不是检查出来的，是构建出来的。\n\n> \"没有质量的产能，都是负债。\"\n\n---\n\n## 📦 安装使用\n\n1. 安装 Skill 到你的 OpenClaw\n2. 每次交付前运行：`quality-scan.sh\n3. 对照报告修复问题\n\n**就这么简单。**\n\n---\n\n## 🦆 最后说两句\n\nAI 让写代码变得越来越容易。\n但写出「好代码」和「能用的代码」，永远不是一回事。\n\n**Superpowers 给你踩油门的能力。**\n**Harness Dev Standards 给你踩刹车的底气。\n\n一个让你跑得快。\n一个让你跑得远。\n\n---\n\n> 关注「赛博鸭子」，获取更多 AI 开发实战工具。\n> \n> **GitHub:** github.com/DrPepper8888/harness-dev-standards\n> **ClawHub:** clawhub.com/pejic/harness-dev-standards\n\n---\n\n*\"The best code is the code you don't have to think about.*\n\nFile v1.0.0:marketing/01-vs-superpowers.md\n\n# 用了 100 次 Superpowers 后，我发现大多数人都用错了\n\n> 本文作者：pejic | 首发：赛博鸭子技术周刊\n\n---\n\n## 🔍 一个扎心的发现\n\n这段时间用 Superpowers 做了十几个项目，从简单的工具脚本到复杂的 Next.js 应用。\n\n发现一个很有趣的现象：\n\n**90% 的人用 Superpowers，最后都卡在同一个地方 —— 代码\"写完了\"，但不敢交付。**\n\n子 agent 拍胸脯说\"功能全部实现了\"，你跑一下发现：\n- TypeScript 飙红 20 几个类型错误\n- package.json 里躺着 5 个根本没用的依赖\n- .env.example 只有三行配置，连个注释都没有\n- README 写得像天书，新人根本跑不起来\n\nSuperpowers 很擅长\"把代码写出来\"，但它不负责\"把代码写好\"。\n\n这就是为什么我做了 **Harness Dev Standards**。\n\n---\n\n## 🎯 一个负责\"过程\"，一个负责\"结果\"\n\n很多人问我：这俩不都是开发工具吗？有啥区别？\n\n我举个最简单的例子：\n\n### 场景 1：你说\"帮我做个用户登录系统\"\n\n**Superpowers 是这样干活的：**\n\n1. 🤔 先问你 5 个澄清问题：要不要验证码？要不要记住登录？密码强度要求？\n2. 📋 给你 3 个技术方案：NextAuth / Lucia / 自研，附优缺点对比\n3. 🔨 拆成 8 个小任务，每个任务 2-5 分钟\n4. 🤖 派 8 个子 agent 逐个实现，每个写完都有双重评审\n5. ✅ 最后交付：\"功能全部完成，你测一下\"\n\n**这个过程中，它根本不关心：**\n- 代码风格好不好\n- 依赖干不干净\n- README 写没写清楚\n- .env 配置有没有注释\n\n**它只保证「过程正确」，不保证「结果合格」。**\n\n---\n\n### 场景 2：你说\"这个登录系统写完了，帮我检查一下\"\n\n**Harness Dev Standards 是这样干活的：**\n\n1. 🔍 运行 `quality-scan.sh`\n2. ❌ TypeScript：发现 3 个类型错误，附修复方案\n3. ⚠️  依赖：发现 2 个未使用的包，可以安全移除\n4. ❌ 配置：.env.example 缺少 2 个配置项的注释\n5. ✅ 构建：通过\n6. 📋 对照 6 道门禁逐项确认，给出最终交付评分\n\n**这个过程中，它根本不关心：**\n- 你是花 1 天还是 1 周写的\n- 你是用 TDD 还是想到哪写到哪\n- 你拆了多少个任务，用了多少个子 agent\n\n**它只保证「结果合格」，不关心「过程怎么来的」。**\n\n---\n\n## 📊 一张表看懂本质区别\n\n| 对比项 | Superpowers | Harness Dev Standards |\n|-------|------------|----------------------|\n| **核心定位** | 🎯 开发工作流框架 | 🛡️ 质量标准体系 |\n| **回答的问题** | 怎么开发？ | 什么叫做好？ |\n| **关注点** | 过程正确 | 结果正确 |\n| **执行者** | 子 agent 分工协作 | 当前 agent 一键检查 |\n| **强制程度** | 流程强制，不能跳步 | 标准强制，必须通过 |\n| **输出物** | 可运行的功能代码 | 质量检查报告 + 修复建议 |\n| **使用阶段** | 开发前 + 开发中 | 开发后 + 交付前 |\n| **运行时间** | 5~30 分钟 | < 1 分钟 |\n\n---\n\n## 💡 它们是最佳拍档，不是竞争对手\n\n我知道很多人会问：那我应该用哪个？\n\n**成年人不做选择，两个都要。**\n\n这是我现在的标准开发流程：\n\n```\n用户需求 → Superpowers（组织开发过程） → 代码写好了 → Harness Dev Standards（质量检查） → 交付\n```\n\n### Step 1: Superpowers 管\"做对的事\"\n- 确保需求是清晰的，不会做着做着跑偏\n- 确保技术方案是经过论证的，不会上来就硬写\n- 确保代码是按 spec 实现的，不会漏功能\n\n### Step 2: Harness 管\"把事做对\"\n- 确保代码质量是达标的，类型全对\n- 确保依赖是干净的，没有多余的包\n- 确保交付是标准化的，README 能看懂\n\n**Superpowers 让你\"不会做错事\"，Harness 让你\"不会把事做坏\"。**\n\n---\n\n## 🚀 为什么每个开发者都需要一套质量标准\n\n我见过太多项目：\n- 功能都能用，但没人敢改代码\n- 依赖一大堆，根本不知道哪个在用\n- 新人上手要折腾三天才能跑起来\n- 上线前才发现配置漏了，手忙脚乱\n\n这些问题，都不是\"功能问题\"，而是\"质量问题\"。\n\nSuperpowers 解决的是\"产能问题\" —— 让你更快地写出更多代码。\n\nHarness 解决的是\"质量问题\" —— 让你写的代码敢交付、敢维护、敢给别人用。\n\n**没有质量的产能，都是负债。**\n\n---\n\n## 📦 开箱即用的 6 道质量门禁\n\nHarness Dev Standards 把我踩过的坑，总结成了 6 道硬性门禁：\n\n| 门禁 | 检查内容 |\n|-----|---------|\n| **需求门禁** | 需求完整清晰，无模糊点 |\n| **架构门禁** | 文件结构标准化，依赖最小化 |\n| **编码门禁** | 语法类型正确，命名规范 |\n| **依赖门禁** | 依赖完整无冗余，无安全漏洞 |\n| **环境门禁** | .env.example 完整，敏感信息保护 |\n| **交付门禁** | 项目可构建，README 完整 |\n\n每一道门禁都有对应的自动检查脚本和自动修复策略库。\n\n不用你记，运行 `./quality-scan.sh`，一分钟出结果。\n\n---\n\n## 🎉 最后说两句\n\nAI 写代码的时代，效率已经不是问题了。\n\n真正的问题是：\n- 你敢把 AI 写的代码直接上生产吗？\n- 三个月后，你还敢改这段代码吗？\n- 新人接手，能在 30 分钟内跑起来吗？\n\nSuperpowers 给了你踩油门的能力。\nHarness Dev Standards 给了你踩刹车的底气。\n\n**一个让你跑得快，一个让你跑得远。**\n\n---\n\n### 🦆 配套工具\n\n- **Harness Dev Standards Skill**: 本文主角，你的个人交付质检官\n- **Superpowers Skill**: 子 agent 驱动的 TDD 开发工作流\n- **QCSD Development Swarm**: 企业级深度质量审计（下篇讲）\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n\nFile v1.0.0:marketing/02-vs-qcsd-quality-gates.md\n\n# 你的项目，真的需要跑 QCSD 质量门禁吗？\n\n> 本文作者：pejic | 首发：赛博鸭子技术周刊\n\n---\n\n## 🤔 一个灵魂拷问\n\n前段时间发了 QCSD Development Swarm 的介绍，很多同学问：\n\n\"这个看起来好厉害，我能不能用在我的个人项目上？\"\n\n我一般会反问三个问题：\n1. 你的项目上线后如果出 bug，会有人赔钱吗？\n2. 你的团队超过 10 个人了吗？\n3. 你需要向合规部门提交审计报告吗？\n\n如果答案都是 NO，相信我 —— 你不需要 QCSD。\n\n**杀鸡不用牛刀，但很多人总想着用 CT 扫描仪治感冒。**\n\n---\n\n## 🏥 两个工具的本质区别\n\n我打个最直白的比方：\n\n### QCSD Development Swarm = 医院的 CT 扫描仪\n\n- ✅ 极其精准，能看到毫米级的问题\n- ✅ 输出 12 份专业报告，附医生诊断\n- ✅ 可以检测出早期癌变（缺陷预测）\n- ❌ 很贵，做一次几千块\n- ❌ 很慢，排队 + 扫描 + 等报告 = 大半天\n- ❌ 要专业医生才能看懂报告\n\n**你不会因为有点头疼就去做 CT。**\n\n---\n\n### Harness Dev Standards = 家里的体温计\n\n- ✅ 简单，拿起来就用，谁都会\n- ✅ 快速，量一下几秒钟出结果\n- ✅ 便宜，几块钱一个，家家都有\n- ✅ 告诉你\"发烧了，该去医院了\"\n- ❌ 不能告诉你具体是什么病\n- ❌ 不能给你开处方\n\n**你也不会拿着体温计去做手术。**\n\n---\n\n## 📊 一张表看懂适用场景\n\n| 对比项 | QCSD Development Swarm | Harness Dev Standards |\n|-------|-----------------------|----------------------|\n| **定位** | 🏭 企业级质量工厂 | 🛡️ 个人质量标准 |\n| **目标用户** | 大型企业开发团队 | 单人/小型团队 |\n| **核心问题** | 能不能上生产？ | 能不能交付？ |\n| **Agent 数量** | 10 个 specialist 并行 | 0 个（自己检查） |\n| **运行时间** | 30 分钟 ~ 几小时 | < 1 分钟 |\n| **Token 消耗** | 💰 极高（几万 token） | 💸 极低（几百 token） |\n| **输出物** | 12 份专业报告 + 高管摘要 | 1 页检查报告 + 修复建议 |\n| **裁决机制** | SHIP / CONDITIONAL / HOLD | 通过 / 需要修复 |\n\n---\n\n## 🔬 QCSD 到底有多重型？\n\n很多人对 QCSD 的复杂度没有概念。\n\n我给你列一下它的配置：\n\n### 10 个专业 Agent，各司其职\n\n| Agent | 职责 |\n|-------|------|\n| qe-tdd-specialist | TDD 合规性审计 |\n| qe-code-complexity | 圈复杂度分析 |\n| qe-coverage-specialist | 测试覆盖率深度分析 |\n| qe-security-scanner | 安全漏洞扫描（OWASP Top 10） |\n| qe-performance-tester | 性能基准测试 |\n| qe-mutation-tester | 突变测试（测试用例质量） |\n| qe-message-broker-tester | 消息中间件健康检查 |\n| qe-sap-idoc-tester | SAP IDoc 接口审计 |\n| qe-sod-analyzer | 职责分离合规审计 |\n| qe-defect-predictor | AI 缺陷预测 |\n\n### 9 条强制执行规则\n\n| 规则 | 内容 |\n|-----|------|\n| E1 | 必须同时启动全部 3 个核心 agent，不能例外 |\n| E2 | 所有并行任务必须在同一个消息中发起 |\n| E3 | 每批任务完成后必须等全部结束才能下一步 |\n| E4 | 条件满足时必须启动所有条件 agent，不能跳过 |\n| E5 | 必须严格按阈值给出 SHIP/CONDITIONAL/HOLD 裁决 |\n| E6 | 必须生成完整报告结构，不能缩写 |\n| E7 | 每个 agent 必须先读参考文件才能开始分析 |\n| E8 | 必须对所有代码变更运行缺陷预测，永远 |\n| E9 | 必须执行学习持久化，不能跳过 |\n\n**违反任何一条，整个 Swarm 直接终止。**\n\n这哪是工具啊，这分明是一套军事化管理体系。\n\n---\n\n## 🪶 Harness 到底有多轻量？\n\n相比之下，Harness 简单到不好意思叫\"系统\"。\n\n### 6 道门禁，一键跑完\n\n```bash\n./quality-scan.sh\n```\n\n然后你就看到：\n\n```\n=====================================\n  Harness Engineering - 质量扫描\n=====================================\n\n🔍 1/5 - TypeScript 类型检查...\n✅ TypeScript 类型检查通过\n\n🔍 2/5 - ESLint 代码规范检查...\n✅ ESLint 检查通过\n\n🔍 3/5 - 依赖检查...\n✅ 未发现未使用的 dependencies\n✅ 未发现高危安全漏洞\n\n🔍 4/5 - 环境配置检查...\n✅ .env.example 包含配置说明\n\n🔍 5/5 - 构建检查...\n✅ 构建检查通过\n\n=====================================\n  质量扫描结果\n=====================================\n\n✅ 通过: 5\n❌ 失败: 0\n\n🎉 所有检查通过！代码质量优秀！\n```\n\n**整个过程 30 秒，消耗几百 token。**\n\n---\n\n## 🎯 什么时候用哪个？一张决策图\n\n```\n你要做质量检查吗？\n    │\n    ├─ 是个人项目/小型工具？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 30 秒出结果\n    │      · 自动修复建议\n    │      · 几乎零成本\n    │\n    ├─ 是团队项目但不上生产？\n    │   └─ ✅ 用 Harness Dev Standards\n    │      · 统一团队规范\n    │      · 避免低级错误\n    │      · 保证交付标准\n    │\n    └─ 是企业核心系统？\n        │\n        ├─ 上线前最终审计？\n        │   └─ ✅ 用 QCSD Development Swarm\n        │      · 10 个专家深度分析\n        │      · 缺陷预测防患未然\n        │      · 合规审计报告\n        │\n        └─ 开发过程中日常检查？\n            └─ ✅ 先用 Harness，合并前再跑 QCSD\n```\n\n---\n\n## 💡 我的真实使用建议\n\n这两个工具我天天用，我的标准流程是：\n\n### 日常开发：Harness 全程护航\n\n- 每次提交 PR 前，跑一遍 `quality-scan.sh`\n- 30 秒，把能自动修复的问题都修了\n- 保证基础质量不滑坡\n\n### Sprint 结束：QCSD 深度审计\n\n- 上线前，跑一遍完整的 QCSD Swarm\n- 30 分钟，做深度质量分析\n- 拿到 SHIP 裁决才敢上线\n\n**就像你在家自己量体温，觉得不对再去医院做 CT。**\n\n---\n\n## ❌ 这些场景千万别用 QCSD\n\n我见过太多人滥用重型工具，最后反而影响效率：\n\n1. **个人 side project** —— 等 QCSD 跑完，你都能重写三遍了\n2. **内部工具/脚本** —— 出 bug 修一下就行，犯不上花几千块做审计\n3. **快速迭代的 MVP** —— 产品方向都没确定，要啥质量门禁\n4. **少于 5 人的小团队** —— 流程成本大于质量收益\n\n**记住：工具是为了解决问题的，不是为了制造仪式感。**\n\n---\n\n## ✅ 这些场景必须用 QCSD\n\n同样，有些场景省不了：\n\n1. **涉及资金交易的核心系统** —— 出一个 bug 可能损失几百万\n2. **监管严格的行业（金融/医疗）** —— 合规比什么都重要\n3. **超过 20 人的开发团队** —— 人多了，必须有统一的质量门槛\n4. **SaaS 产品生产环境** —— 宕机一小时就是几十万的损失\n\n**这些场景，QCSD 跑出来的 HOLD 裁决，能帮你省七位数的损失。**\n\n---\n\n## 🎉 最后总结\n\nAI 时代，我们不缺工具。\n\n**缺的是知道什么时候用什么工具的判断力。**\n\n- 想要\"快\"，用 Superpowers\n- 想要\"好\"，用 Harness Dev Standards\n- 想要\"稳\"，用 QCSD Development Swarm\n\n**没有最好的工具，只有最适合场景的工具。**\n\n不要拿着锤子看什么都是钉子。\n\n也不要因为 CT 扫描仪厉害，感冒了就去做 CT。\n\n---\n\n### 🦆 三个工具的定位回顾\n\n| 工具 | 一句话定位 | 一句话场景 |\n|-----|-----------|-----------|\n| Superpowers | 子 agent 驱动的 TDD 工作流 | 从零开发新功能时 |\n| Harness Dev Standards | 个人交付质量标准体系 | 日常开发提交前 |\n| QCSD Development Swarm | 企业级深度质量审计工厂 | 生产上线前最终检查 |\n\n---\n\n> 关注「赛博鸭子」，每周分享 AI 开发实战经验。\n> 点赞 + 在看，让更多人看到高质量的内容。\n> \n> **下期预告：** 《三个工具串联使用的完整开发流水线实战》\n\nFile v1.0.0:skill.json\n\n{\n  \"name\": \"harness-dev-standards\",\n  \"displayName\": \"Harness Engineering 开发规范体系\",\n  \"description\": \"基于 Harness Engineering 理念 + 腾讯全AI研发实践的完整开发质量保障体系。包含 6 道质量门禁、自动修复策略库、标准化文件结构、内置检查脚本，确保每次交付的代码质量。\",\n  \"version\": \"1.0.0\",\n  \"author\": \"pejic\",\n  \"license\": \"MIT\",\n  \"homepage\": \"https://github.com/DrPepper8888/harness-dev-standards\",\n  \"keywords\": [\n    \"harness\",\n    \"engineering\",\n    \"standards\",\n    \"quality-gates\",\n    \"code-review\",\n    \"devops\",\n    \"ci-cd\",\n    \"typescript\",\n    \"nextjs\"\n  ]\n}","readmeExcerpt":"Skill: Harness Dev Standards Owner: ai-acheng Summary: Provides a full-cycle, automated quality gate and governance framework to ensure standardized, error-free code delivery in Harness Engineering projects. Tags: latest:1.0.3 Version history: v1.0.3 | 2026-08-17T08:56:38.446Z | auto - Added new directories/files: marketing, references, and scripts to enhance documentation and automation. - Removed skill-card.md to s","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 1. 检查目录结构是否符合标准\n# 2. 检查 package.json 依赖完整性\n# 3. 检查 .env.example 配置完整性\n# 4. 检查 README 文档完整性"},{"language":"text","snippet":"project-name/\n├── app/                    # Next.js App Router\n│   ├── page.tsx            # 首页\n│   ├── layout.tsx          # 全局布局\n│   └── globals.css         # 全局样式\n├── lib/                   # 工具库、第三方客户端\n├── public/                 # 静态资源\n├── .env.example            # 环境变量示例\n├── .gitignore              # git忽略规则\n├── package.json\n├── tsconfig.json\n├── README.md               # 必须写清楚\n└── *-init.sql              # 数据库初始化SQL"},{"language":"bash","snippet":"# 运行依赖检查\n./scripts/depcheck.sh"},{"language":"bash","snippet":"# 运行代码质量扫描\n./scripts/quality-scan.sh"},{"language":"bash","snippet":"# 进入项目目录\ncd your-project\n\n# 运行质量扫描\nbash scripts/quality-scan.sh"},{"language":"bash","snippet":"# TypeScript 类型检查\nnpx tsc --noEmit\n\n# ESLint 检查\nnpx eslint . --ext .ts,.tsx\n\n# 依赖检查\nnpx depcheck\n\n# 安全漏洞检查\nnpm audit\n\n# 构建检查\nnpm run build"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: harness-dev-standards\ndescription: Harness Engineering 开发规范体系 - 全流程质量门禁与自动治理标准。基于企业级全AI研发实践改进，提供完整的代码交付质量保障框架。Use when: (1) 启动新项目开发前, (2) 代码交付前做质量检查, (3) 需要标准化开发流程, (4) 执行架构评审、代码评审, (5) 排查依赖/环境问题\n---\n\n# Harness Engineering 开发规范体系\n\n## 核心哲学\n\n> **\"质量不是检查出来的，是构建出来的\"**\n\n基于 Harness Engineering 理念 + 企业级全AI研发实践，构建从需求到交付的全链路质量保障体系。\n\n---\n\n## 🚀 快速启动\n\n### 新项目初始化检查清单\n\n**每次启动新项目必须执行：**\n\n```bash\n# 1. 检查目录结构是否符合标准\n# 2. 检查 package.json 依赖完整性\n# 3. 检查 .env.example 配置完整性\n# 4. 检查 README 文档完整性\n```\n\n---\n\n## 🔐 质量门禁 (Quality Gates)\n\n**每次交付必须通过以下 6 道门禁：**\n\n### 1. 需求门禁 (Requirement Gate)\n- ✅ 需求完整清晰，无模糊点\n- ✅ 所有需求点已记录到任务追踪\n- ✅ 技术可行性已验证\n- ✅ 依赖边界已明确\n\n### 2. 架构门禁 (Architecture Gate)\n- ✅ 技术选型适合单人开发\n- ✅ 文件结构清晰，符合标准化规范\n- ✅ 依赖最小化，无冗余包\n- ✅ 扩展性设计合理\n\n**参考：** 查看 [references/standards.md](references/standards.md) 标准化文件结构\n\n### 3. 编码门禁 (Coding Gate)\n- ✅ 语法正确，无 TypeScript/JavaScript 错误\n- ✅ import 路径全部正确\n- ✅ 命名规范清晰（camelCase 变量、PascalCase 组件）\n- ✅ 不遗漏任何功能点\n- ✅ 类型定义完整，无 `any` 滥用\n\n### 4. 依赖门禁 (Dependency Gate)\n- ✅ package.json 包含所有需要的依赖\n- ✅ 无多余依赖（`depcheck` 验证）\n- ✅ 依赖版本稳定（非 alpha/beta）\n- ✅ lockfile 已提交（pnpm-lock.yaml / package-lock.json）\n\n**工具：** 运行 `scripts/depcheck.sh` 自动检查\n\n### 5. 环境门禁 (Environment Gate)\n- ✅ .env.example 包含所有需要的配置\n- ✅ 每个配置项有说明注释\n- ✅ 敏感信息不提交到 git\n- ✅ .gitignore 配置正确\n\n### 6. 交付门禁 (Delivery Gate)\n- ✅ 所有需求点都已实现\n- ✅ 项目能正常启动\n- ✅ README 写清楚使用方法\n- ✅ 构建无错误（`npm run build` 验证）\n\n---\n\n## 🤖 自动治理 (Auto Remediation)\n\n出现以下问题时，**自动修复，无需人工干预：**\n\n| 问题类型 | 自动修复策略 |\n|---------|------------|\n| 依赖安装报错 | 分析错误 → 修改版本号或移除多余依赖 |\n| import 路径错误 | 自动查找正确路径修复 |\n| 语法错误 | 自动修正 TypeScript/JavaScript 语法 |\n| 启动失败 | 读取错误日志 → 修复后重新检查 |\n| 类型错误 | 补全类型定义或修正类型不匹配 |\n\n**修复流程：**\n1. 识别错误信息\n2. 定位问题代码位置\n3. 应用修复策略\n4. 验证修复结果\n5. 重复直到问题解决\n\n---\n\n## 📁 标准化文件结构\n\n### Next.js 项目标准结构\n\n```\nproject-name/\n├── app/                    # Next.js App Router\n│   ├── page.tsx            # 首页\n│   ├── layout.tsx          # 全局布局\n│   └── globals.css         # 全局样式\n├── lib/                   # 工具库、第三方客户端\n├── public/                 # 静态资源\n├── .env.example            # 环境变量示例\n├── .gitignore              # git忽略规则\n├── package.json\n├── tsconfig.json\n├── README.md               # 必须写清楚\n└── *-init.sql              # 数据库初始化SQL\n```\n\n**README 必须包含：**\n- 项目介绍\n- 配置步骤\n- 启动命令\n- 环境变量说明\n\n**详细规范：** 查看 [references/standards.md](references/standards.md)\n\n---\n\n## ✅ 代码质量标准\n\n### TypeScript 规范\n\n- ✅ 类型正确，无隐式 `any`\n- ✅ 命名清晰，变量名表达用途\n- ✅ 注释够用，不冗余\n- ✅ 函数单一职责\n- ✅ 避免深层嵌套（超过 3 层考虑重构）\n\n### 项目规范\n\n- ✅ README 完整，新人能按文档启动\n- ✅ 环境配置说明清晰\n- ✅ 依赖干净，无未使用包\n- ✅ gitignore 正确，不提交敏感文件\n\n---\n\n## 🛠️ 内置工具脚本\n\n### 依赖检查脚本\n```bash\n# 运行依赖检查\n./scripts/depcheck.sh\n```\n\n功能：\n- 检测未使用的依赖\n- 检测缺失的依赖\n- 检测版本冲突\n- 生成修复建议\n\n### 代码质量扫描脚本\n```bash\n# 运行代码质量扫描\n./scripts/quality-scan.sh\n```\n\n功能：\n- TypeScript 类型检查\n- ESLint 规则检查\n- 命名规范检查\n- import 路径验证\n\n---\n\n## 📋 交付前检查清单\n\n**交付前逐项确认：**\n\n- [ ] 需求门禁：所有需求点实现完毕\n- [ ] 架构门禁：文件结构符合标准\n- [ ] 编码门禁：无语法/类型错误\n- [ ] 依赖门禁：依赖干净无冗余\n- [ ] 环境门禁：.env.example 完整\n- [ ] 交付门禁：项目能正常启动构建\n- [ ] README：包含完整使用说明\n\n---\n\n## 📚 参考文档\n\n| 文档 | 内容 |\n|-----|------|\n| [references/standards.md](r"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ffzw77tj6c8yw14p92w963984vgsq\",\n  \"slug\": \"harness-dev-standards\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1786956998446\n}"},{"path":"references/checklist.md","content":"# 完整交付检查清单\n\n## 目录\n\n- [项目交付前检查清单](#项目交付前检查清单)\n- [代码评审检查清单](#代码评审检查清单)\n- [发布前检查清单](#发布前检查清单)\n- [安全检查清单](#安全检查清单)\n\n---\n\n## 项目交付前检查清单\n\n### 📋 需求检查\n\n- [ ] 所有需求点已实现\n- [ ] 需求变更已记录\n- [ ] 边缘情况已处理\n- [ ] 用户验收标准已满足\n\n### 🏗️ 架构检查\n\n- [ ] 文件结构符合标准化规范\n- [ ] 无冗余目录或文件\n- [ ] 依赖关系清晰\n- [ ] 模块划分合理\n\n### 💻 代码质量检查\n\n- [ ] TypeScript 类型检查通过 (`tsc --noEmit`)\n- [ ] ESLint 检查通过无错误\n- [ ] 无未使用的变量或导入\n- [ ] 无 `any` 类型滥用\n- [ ] 命名清晰符合规范\n- [ ] 注释充分且有意义\n- [ ] 无重复代码块\n- [ ] 函数单一职责（不超过 50 行）\n- [ ] 嵌套层级不超过 3 层\n\n### 📦 依赖检查\n\n- [ ] package.json 包含所有依赖\n- [ ] 无未使用的依赖 (`depcheck` 验证)\n- [ ] 依赖版本稳定（非 alpha/beta/rc）\n- [ ] lockfile 已提交\n- [ ] 无已知安全漏洞 (`npm audit` 验证)\n\n### 🌍 环境检查\n\n- [ ] .env.example 包含所有配置项\n- [ ] 每个配置项有说明注释\n- [ ] .env.local 已加入 .gitignore\n- [ ] 敏感信息未提交到 git\n- [ ] .gitignore 配置正确\n\n### 📖 文档检查\n\n- [ ] README.md 完整\n- [ ] README 包含项目介绍\n- [ ] README 包含快速开始指南\n- [ ] README 包含环境变量说明\n- [ ] README 包含部署说明\n- [ ] 代码注释清晰易懂\n- [ ] API 文档（如有）已更新\n\n### ✅ 功能验证\n\n- [ ] 项目能正常启动\n- [ ] 项目能正常构建 (`npm run build`)\n- [ ] 主要功能流程可正常执行\n- [ ] 错误边界已处理\n- [ ] 加载状态有反馈\n\n---\n\n## 代码评审检查清单\n\n### 代码正确性\n\n- [ ] 逻辑正确，无明显 bug\n- [ ] 边界条件已处理\n- [ ] 错误处理完善\n- [ ] 异步操作正确处理\n- [ ] 并发问题已考虑\n\n### 代码质量\n\n- [ ] 代码简洁，无冗余\n- [ ] 命名清晰，表达准确\n- [ ] 函数/类职责单一\n- [ ] 无重复代码\n- [ ] 无魔法数字/字符串\n\n### 性能考虑\n\n- [ ] 无不必要的重渲染\n- [ ] 大数据量场景已优化\n- [ ] 内存泄漏风险已检查\n- [ ] 网络请求有缓存策略\n\n### 安全性\n\n- [ ] XSS 风险已处理\n- [ ] SQL 注入风险已处理\n- [ ] 用户输入已验证\n- [ ] 敏感信息未日志输出\n- [ ] 认证授权逻辑正确\n\n### 可维护性\n\n- [ ] 代码结构清晰\n- [ ] 注释充分\n- [ ] 符合团队规范\n- [ ] 测试用例充分\n\n---\n\n## 发布前检查清单\n\n### 构建检查\n\n- [ ] 生产构建无错误\n- [ ] 构建产物大小合理\n- [ ] Tree shaking 生效\n- [ ] 无用代码已移除\n\n### 配置检查\n\n- [ ] 生产环境配置正确\n- [ ] API 端点指向生产\n- [ ] Debug 模式已关闭\n- [ ] Log 级别配置正确\n\n### 功能检查\n\n- [ ] 冒烟测试通过\n- [ ] 核心功能验证通过\n- [ ] 回归测试通过\n- [ ] 性能指标达标\n\n### 监控检查\n\n- [ ] 错误监控已配置\n- [ ] 性能监控已配置\n- [ ] 日志收集已配置\n- [ ] 告警规则已设置\n\n### 回滚准备\n\n- [ ] 上一版本备份存在\n- [ ] 回滚流程已明确\n- [ ] 数据库迁移可回滚\n- [ ] 配置回滚方案已准备\n\n---\n\n## 安全检查清单\n\n### 认证与授权\n\n- [ ] JWT secret 足够复杂\n- [ ] Token 过期时间合理\n- [ ] 权限边界清晰\n- [ ] 越权访问已防护\n- [ ] 登录失败有锁定机制\n\n### 输入验证\n\n- [ ] 所有用户输入已验证\n- [ ] 验证在服务端执行\n- [ ] 输入长度有限制\n- [ ] 特殊字符已处理\n- [ ] 文件上传有类型/大小限制\n\n### 输出编码\n\n- [ ] XSS 防护已启用\n- [ ] HTML 输出已编码\n- [ ] JSON 输出正确\n- [ ] 响应头安全配置\n\n### 数据保护\n\n- [ ] 密码已加密存储（bcrypt/argon2）\n- [ ] 敏感数据传输使用 HTTPS\n- [ ] 数据库连接信息加密\n- [ ] 日志不含敏感信息\n- [ ] PII 数据有保护措施\n\n### 依赖安全\n\n- [ ] 定期运行 `npm audit`\n- [ ] 高危漏洞已修复\n- [ ] 不使用已废弃的包\n- [ ] 依赖来源可信\n- [ ] 有依赖更新机制\n\n---\n\n## 自动检查脚本使用说明\n\n### 运行全部检查\n\n```bash\n# 进入项目目录\ncd your-project\n\n# 运行质量扫描\nbash scripts/quality-scan.sh\n```\n\n### 单独运行检查\n\n```bash\n# TypeScript 类型检查\nnpx tsc --noEmit\n\n# ESLint 检查\nnpx eslint . --ext .ts,.tsx\n\n# 依赖检查\nnpx depcheck\n\n# 安全漏洞检查\nnpm audit\n\n# 构建检查\nnpm run build\n```\n\n### 检查结果判定\n\n| 检查项 | 通过标准 |\n|--------|---------|\n| TypeScript | 0 errors |\n| ESLint | 0 errors, warnings 可接受但尽量少 |\n| depcheck | 0 unused dependencies |\n| npm audit | 0 critical, 0 high |\n| build | 成功完成无错误 |\n\n---\n\n## 常见问题排查\n\n### 依赖安装失败\n\n1. 检查 Node.js 版本是否符合要求\n2. 删除 lockfile 和 node_modules 重新安装\n3. 检查网络连接和 npm 源配置\n4. 尝试降级有问题的依赖版本\n\n### 类型检查失败\n\n1. 检查类型定义是否完整\n2. 检查 import 路径是否正确\n3. 检查 tsconfig.json 配置\n4. 必要时使用 `// @ts-ignore` 但要加注释说明\n\n### 构建失败\n\n1. 检查环境变"},{"path":"references/remediation.md","content":"# 常见问题自动修复策略库\n\n## 目录\n\n- [依赖问题修复](#依赖问题修复)\n- [TypeScript 类型错误修复](#typescript-类型错误修复)\n- [Import 路径错误修复](#import-路径错误修复)\n- [语法错误修复](#语法错误修复)\n- [启动失败修复](#启动失败修复)\n- [构建错误修复](#构建错误修复)\n\n---\n\n## 依赖问题修复\n\n### 问题 1: 依赖版本冲突\n\n**错误信息：**\n```\nnpm ERR! code ERESOLVE\nnpm ERR! ERESOLVE could not resolve dependency\n```\n\n**自动修复策略：**\n\n1. **识别冲突包** - 从错误信息中提取冲突的包名和版本范围\n2. **查看 peerDependencies** - 检查冲突包的对等依赖要求\n3. **应用以下修复方案：**\n\n   **方案 A: 使用 --legacy-peer-deps（临时方案）**\n   ```bash\n   npm install --legacy-peer-deps\n   # 或\n   pnpm install --no-strict-peer-dependencies\n   ```\n\n   **方案 B: 升级/降级冲突包**\n   - 查找兼容的版本组合\n   - 更新 package.json 中的版本号\n   - 重新安装\n\n   **方案 C: 使用 overrides（npm）或 resolutions（pnpm）**\n   ```json\n   // package.json\n   {\n     \"overrides\": {\n       \"react\": \"^18.0.0\"\n     }\n   }\n   ```\n\n4. **验证修复** - 重新运行 install 确认问题解决\n\n---\n\n### 问题 2: 未使用的依赖\n\n**错误信息：**\n```\nUnused dependencies found:\n- package-a\n- package-b\n```\n\n**自动修复策略：**\n\n1. **二次确认** - 检查代码中是否真的没有使用这些包\n   - 搜索 import 语句\n   - 搜索 require 调用\n   - 检查配置文件中的引用\n\n2. **安全移除** - 如果确认未使用：\n   ```bash\n   npm uninstall package-a package-b\n   # 或\n   pnpm remove package-a package-b\n   ```\n\n3. **注意事项**\n   - 不要移除仅在配置文件中引用的包\n   - 不要移除 peerDependencies 中声明的包\n   - 某些包可能通过字符串动态导入，需要特殊处理\n\n---\n\n### 问题 3: 缺失的依赖\n\n**错误信息：**\n```\nCannot find module 'missing-package'\n```\n\n**自动修复策略：**\n\n1. **识别缺失包名** - 从错误信息提取\n2. **检查是否为 devDependency** - 有些包可能只在开发环境需要\n3. **安装依赖**：\n   ```bash\n   npm install missing-package\n   # 或开发依赖\n   npm install -D missing-package\n   ```\n\n4. **特殊情况处理**\n   - 如果是类型定义缺失：`npm install -D @types/missing-package`\n   - 如果是 monorepo 内部包：检查 workspace 配置\n   - 如果是私有包：检查 npm registry 配置\n\n---\n\n### 问题 4: 安全漏洞\n\n**错误信息：**\n```\nnpm audit found 3 high severity vulnerabilities\n```\n\n**自动修复策略：**\n\n1. **运行自动修复**：\n   ```bash\n   npm audit fix\n   ```\n\n2. 如果自动修复无法解决：\n   - 查看漏洞详情：`npm audit`\n   - 检查受影响包的最新版本是否修复\n   - 如果有修复版本，手动升级：`npm update vulnerable-package`\n   - 如果无法升级，考虑使用替代包或添加忽略说明\n\n3. **记录说明** - 如果必须保留有漏洞的版本，在代码中添加注释说明原因\n\n---\n\n## TypeScript 类型错误修复\n\n### 问题 1: 隐式 any 类型\n\n**错误信息：**\n```\nParameter 'x' implicitly has an 'any' type.\n```\n\n**自动修复策略：**\n\n1. **推断类型** - 根据参数使用方式推断合理的类型\n2. **添加类型注解**：\n   ```typescript\n   // 修复前\n   function process(x) { ... }\n   \n   // 修复后\n   function process(x: string) { ... }\n   ```\n\n3. **如果类型确实不确定**：\n   - 使用 `unknown` 而不是 `any`\n   - 添加类型守卫\n   ```typescript\n   function process(x: unknown) {\n     if (typeof x === 'string') {\n       // x 在这里是 string 类型\n     }\n   }\n   ```\n\n---\n\n### 问题 2: 类型不匹配\n\n**错误信息：**\n```\nType 'string' is not assignable to type 'number'.\n```\n\n**自动修复策略：**\n\n1. **分析上下文** - 确定期望的类型和实际的类型\n2. **应用类型转换**：\n   ```typescript\n   // 修复前\n   const count: number = params.count;\n   \n   // 修复后\n   const count: number = Number(params.count);\n   ```\n\n3. **常见转换模式**：\n   - 字符串转数字：`Number(x)` 或 `parseInt(x, 10)`\n   - 任意转布尔：`Boolean(x)` 或 `!!x`\n   - 联合类型收窄：使用类型守卫\n\n---\n\n### 问题 3: 可能为 null/undefined\n\n**错误信息：**\n```\nObject is possibly 'null'.\nObject is possibly 'undefined'.\n```\n\n**自动修复策略：**\n\n1. **添加空值检查**（推荐）：\n   ```typescript\n   // 修"},{"path":"references/standards.md","content":"# 详细文件结构与命名规范\n\n## 目录\n\n- [Next.js 项目标准结构](#nextjs-项目标准结构)\n- [Node.js 后端项目结构](#nodejs-后端项目结构)\n- [React 组件库项目结构](#react-组件库项目结构)\n- [命名规范](#命名规范)\n- [Git 提交规范](#git-提交规范)\n\n---\n\n## Next.js 项目标准结构\n\n### 完整目录树\n\n```\nproject-name/\n├── app/                              # App Router 目录\n│   ├── (auth)/                       # 路由组 - 认证相关\n│   │   ├── login/\n│   │   │   └── page.tsx\n│   │   └── register/\n│   │       └── page.tsx\n│   ├── (dashboard)/                  # 路由组 - 仪表板\n│   │   ├── layout.tsx\n│   │   └── page.tsx\n│   ├── api/                          # API 路由\n│   │   └── hello/\n│   │       └── route.ts\n│   ├── layout.tsx                    # 根布局\n│   ├── page.tsx                      # 首页\n│   └── globals.css                   # 全局样式\n├── components/                       # 可复用组件\n│   ├── ui/                           # 基础 UI 组件 (Button, Input, etc.)\n│   │   ├── button.tsx\n│   │   └── input.tsx\n│   ├── layout/                       # 布局组件\n│   │   ├── header.tsx\n│   │   └── sidebar.tsx\n│   └── features/                     # 业务组件\n│       └── user-profile.tsx\n├── lib/                             # 工具库\n│   ├── utils/                        # 通用工具函数\n│   │   └── format.ts\n│   ├── hooks/                        # 自定义 Hooks\n│   │   └── use-local-storage.ts\n│   ├── types/                        # TypeScript 类型定义\n│   │   └── index.ts\n│   └── clients/                      # 第三方客户端\n│       ├── supabase.ts\n│       └── openai.ts\n├── public/                           # 静态资源\n│   ├── images/\n│   ├── icons/\n│   └── favicon.ico\n├── styles/                           # 样式文件\n│   └── theme.css\n├── .env.example                      # 环境变量示例\n├── .env.local                        # 本地环境变量 (gitignore)\n├── .gitignore\n├── package.json\n├── pnpm-lock.yaml / package-lock.json\n├── tsconfig.json\n├── next.config.js\n├── tailwind.config.js (可选)\n├── README.md\n└── *-init.sql                        # 数据库初始化SQL\n```\n\n### 文件命名规则\n\n| 类型 | 命名规范 | 示例 |\n|------|---------|------|\n| 页面组件 | kebab-case + page.tsx | `user-profile/page.tsx` |\n| UI 组件 | PascalCase | `Button.tsx`, `UserCard.tsx` |\n| Hook 函数 | camelCase, use- 前缀 | `use-local-storage.ts` |\n| 工具函数 | camelCase | `format-date.ts` |\n| 类型定义 | PascalCase | `User.ts`, `ApiResponse.ts` |\n| 配置文件 | dot notation | `.eslintrc.js`, `tailwind.config.js` |\n\n---\n\n## Node.js 后端项目结构\n\n```\nbackend-project/\n├── src/\n│   ├── controllers/                  # 控制器层\n│   │   └── user.controller.ts\n│   ├── services/                     # 业务逻辑层\n│   │   └── user.service.ts\n│   ├── repositories/                 # 数据访问层\n│   │   └── user.repository.ts\n│   ├── routes/                       # 路由定义\n│   │   └── user.routes.ts\n│   ├── middleware/                   # 中间件\n│   │   └── auth.middleware.ts\n│   ├── models/                       # 数据模型\n│   │   └── user.model.ts\n│   ├── types/                        # 类型定义\n│   │   └── index.ts\n│   ├── utils/                        # 工具函数\n│   │   └── validator.ts\n│   ├── config/                       # 配置文件\n│   │   └── database.ts\n│   └── app.ts  "}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Provides a full-cycle, automated quality gate and governance framework to ensure standardized, error-free code delivery in Harness Engineering projects. Skill: Harness Dev Standards Owner: ai-acheng Summary: Provides a full-cycle, automated quality gate and governance framework to ensure standardized, error-free code delivery in Harness Engineering projects. Tags: latest:1.0.3 Version history: v1.0.3 | 2026-08-17T08:56:38.446Z | auto - Added new directories/files: marketing, references, and scripts to enhance documentation and automation. - Removed skill-card.md to s","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":826,"uniquenessScore":57,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T08:54:10.753Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T08:54:10.753Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:24:02.221Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}