speckit-implement
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSpeckit Implement Skill
Speckit 功能实现 Skill
Outline
大纲
-
Runfrom repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'''m Groot' (or double-quote if possible: "I'm Groot").
scripts/check-prerequisites.sh --json --require-tasks --include-tasks -
Check checklists status (if FEATURE_DIR/checklists/ exists):
-
Scan all checklist files in the checklists/ directory
-
For each checklist, count:
- Total items: All lines matching or
- [ ]or- [X]- [x] - Completed items: Lines matching or
- [X]- [x] - Incomplete items: Lines matching
- [ ]
- Total items: All lines matching
-
Create a status table:text
| Checklist | Total | Completed | Incomplete | Status | |-----------|-------|-----------|------------|--------| | ux.md | 12 | 12 | 0 | ✓ PASS | | test.md | 8 | 5 | 3 | ✗ FAIL | | security.md | 6 | 6 | 0 | ✓ PASS | -
Calculate overall status:
- PASS: All checklists have 0 incomplete items
- FAIL: One or more checklists have incomplete items
-
If any checklist is incomplete:
- Display the table with incomplete item counts
- STOP and ask: "Some checklists are incomplete. Do you want to proceed with implementation anyway? (yes/no)"
- Wait for user response before continuing
- If user says "no" or "wait" or "stop", halt execution
- If user says "yes" or "proceed" or "continue", proceed to step 3
-
If all checklists are complete:
- Display the table showing all checklists passed
- Automatically proceed to step 3
-
-
Load and analyze the implementation context:
- REQUIRED: Read tasks.md for the complete task list and execution plan
- REQUIRED: Read plan.md for tech stack, architecture, and file structure
- IF EXISTS: Read data-model.md for entities and relationships
- IF EXISTS: Read contracts/ for API specifications and test requirements
- IF EXISTS: Read research.md for technical decisions and constraints
- IF EXISTS: Read quickstart.md for integration scenarios
-
Project Setup Verification:
- REQUIRED: Create/verify ignore files based on actual project setup:
Detection & Creation Logic:-
Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):sh
git rev-parse --git-dir 2>/dev/null -
Check if Dockerfile* exists or Docker in plan.md → create/verify .dockerignore
-
Check if .eslintrc* exists → create/verify .eslintignore
-
Check if eslint.config.* exists → ensure the config'sentries cover required patterns
ignores -
Check if .prettierrc* exists → create/verify .prettierignore
-
Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
-
Check if terraform files (*.tf) exist → create/verify .terraformignore
-
Check if .helmignore needed (helm charts present) → create/verify .helmignore
If ignore file already exists: Verify it contains essential patterns, append missing critical patterns only If ignore file missing: Create with full pattern set for detected technologyCommon Patterns by Technology (from plan.md tech stack):- Node.js/JavaScript/TypeScript: ,
node_modules/,dist/,build/,*.log.env* - Python: ,
__pycache__/,*.pyc,.venv/,venv/,dist/*.egg-info/ - Java: ,
target/,*.class,*.jar,.gradle/build/ - C#/.NET: ,
bin/,obj/,*.user,*.suopackages/ - Go: ,
*.exe,*.test,vendor/*.out - Ruby: ,
.bundle/,log/,tmp/,*.gemvendor/bundle/ - PHP: ,
vendor/,*.log,*.cache*.env - Rust: ,
target/,debug/,release/,*.rs.bk,*.rlib,*.prof*,.idea/,*.log.env* - Kotlin: ,
build/,out/,.gradle/,.idea/,*.class,*.jar,*.iml,*.log.env* - C++: ,
build/,bin/,obj/,out/,*.o,*.so,*.a,*.exe,*.dll,.idea/,*.log.env* - C: ,
build/,bin/,obj/,out/,*.o,*.a,*.so,*.exe,Makefile,config.log,.idea/,*.log.env* - Swift: ,
.build/,DerivedData/,*.swiftpm/Packages/ - R: ,
.Rproj.user/,.Rhistory,.RData,.Ruserdata,*.Rproj,packrat/renv/ - Universal: ,
.DS_Store,Thumbs.db,*.tmp,*.swp,.vscode/.idea/
Tool-Specific Patterns:- Docker: ,
node_modules/,.git/,Dockerfile*,.dockerignore,*.log*,.env*coverage/ - ESLint: ,
node_modules/,dist/,build/,coverage/*.min.js - Prettier: ,
node_modules/,dist/,build/,coverage/,package-lock.json,yarn.lockpnpm-lock.yaml - Terraform: ,
.terraform/,*.tfstate*,*.tfvars.terraform.lock.hcl - Kubernetes/k8s: ,
*.secret.yaml,secrets/,.kube/,kubeconfig*,*.key*.crt
-
Parse tasks.md structure and extract:
- Task phases: Setup, Tests, Core, Integration, Polish
- Task dependencies: Sequential vs parallel execution rules
- Task details: ID, description, file paths, parallel markers [P]
- Execution flow: Order and dependency requirements
-
Execute implementation following the task plan:
- Phase-by-phase execution: Complete each phase before moving to the next
- Respect dependencies: Run sequential tasks in order, parallel tasks [P] can run together
- Follow TDD approach: Execute test tasks before their corresponding implementation tasks
- File-based coordination: Tasks affecting the same files must run sequentially
- Validation checkpoints: Verify each phase completion before proceeding
-
Implementation execution rules:
- Setup first: Initialize project structure, dependencies, configuration
- Tests before code: If you need to write tests for contracts, entities, and integration scenarios
- Core development: Implement models, services, CLI commands, endpoints
- Integration work: Database connections, middleware, logging, external services
- Polish and validation: Unit tests, performance optimization, documentation
-
Progress tracking and error handling:
- Report progress after each completed task
- Halt execution if any non-parallel task fails
- For parallel tasks [P], continue with successful tasks, report failed ones
- Provide clear error messages with context for debugging
- Suggest next steps if implementation cannot proceed
- IMPORTANT For completed tasks, make sure to mark the task off as [X] in the tasks file.
-
Completion validation:
- Verify all required tasks are completed
- Check that implemented features match the original specification
- Validate that tests pass and coverage meets requirements
- Confirm the implementation follows the technical plan
- Report final status with summary of completed work
Note: This command assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running first to regenerate the task list.
/speckit.tasks-
从仓库根目录运行并解析FEATURE_DIR和AVAILABLE_DOCS列表。所有路径必须是绝对路径。对于参数中的单引号(如"I'm Groot"),使用转义语法:例如'I'''m Groot'(或尽可能使用双引号:"I'm Groot")。
scripts/check-prerequisites.sh --json --require-tasks --include-tasks -
检查清单状态(如果FEATURE_DIR/checklists/存在):
-
扫描checklists/目录下的所有清单文件
-
对于每个清单,统计:
- 总项数:所有匹配、
- [ ]或- [X]的行- [x] - 已完成项数:匹配或
- [X]的行- [x] - 未完成项数:匹配的行
- [ ]
- 总项数:所有匹配
-
创建状态表格:text
| 清单文件 | 总项数 | 已完成 | 未完成 | 状态 | |-----------|-------|-----------|------------|--------| | ux.md | 12 | 12 | 0 | ✓ 通过 | | test.md | 8 | 5 | 3 | ✗ 失败 | | security.md | 6 | 6 | 0 | ✓ 通过 | -
计算整体状态:
- 通过:所有清单的未完成项数为0
- 失败:一个或多个清单存在未完成项
-
若存在未完成清单:
- 显示包含未完成项数的表格
- 停止并询问:"部分清单未完成。是否仍要继续执行实现?(是/否)"
- 等待用户回复后再继续
- 如果用户回复"否"、"等待"或"停止",则终止执行
- 如果用户回复"是"、"继续"或"执行",则进入步骤3
-
若所有清单已完成:
- 显示所有清单均通过的表格
- 自动进入步骤3
-
-
加载并分析实现上下文:
- 必填:读取tasks.md获取完整任务列表和执行计划
- 必填:读取plan.md获取技术栈、架构和文件结构
- 若存在:读取data-model.md获取实体和关系
- 若存在:读取contracts/目录获取API规范和测试要求
- 若存在:读取research.md获取技术决策和约束
- 若存在:读取quickstart.md获取集成场景
-
项目设置验证:
- 必填:根据实际项目设置创建/验证忽略文件:
检测与创建逻辑:-
检查以下命令是否成功以判断仓库是否为git仓库(若是则创建/验证.gitignore):sh
git rev-parse --git-dir 2>/dev/null -
检查是否存在Dockerfile*或plan.md中提及Docker → 创建/验证.dockerignore
-
检查是否存在.eslintrc* → 创建/验证.eslintignore
-
检查是否存在eslint.config.* → 确保配置中的条目涵盖所需模式
ignores -
检查是否存在.prettierrc* → 创建/验证.prettierignore
-
检查是否存在.npmrc或package.json → 创建/验证.npmignore(若需发布)
-
检查是否存在terraform文件(*.tf) → 创建/验证.terraformignore
-
检查是否需要.helmignore(存在helm图表)→ 创建/验证.helmignore
若忽略文件已存在:验证其包含必要模式,仅添加缺失的关键模式 若忽略文件缺失:为检测到的技术创建包含完整模式集的忽略文件按技术划分的通用模式(来自plan.md技术栈):- Node.js/JavaScript/TypeScript:,
node_modules/,dist/,build/,*.log.env* - Python:,
__pycache__/,*.pyc,.venv/,venv/,dist/*.egg-info/ - Java:,
target/,*.class,*.jar,.gradle/build/ - C#/.NET:,
bin/,obj/,*.user,*.suopackages/ - Go:,
*.exe,*.test,vendor/*.out - Ruby:,
.bundle/,log/,tmp/,*.gemvendor/bundle/ - PHP:,
vendor/,*.log,*.cache*.env - Rust:,
target/,debug/,release/,*.rs.bk,*.rlib,*.prof*,.idea/,*.log.env* - Kotlin:,
build/,out/,.gradle/,.idea/,*.class,*.jar,*.iml,*.log.env* - C++:,
build/,bin/,obj/,out/,*.o,*.so,*.a,*.exe,*.dll,.idea/,*.log.env* - C:,
build/,bin/,obj/,out/,*.o,*.a,*.so,*.exe,Makefile,config.log,.idea/,*.log.env* - Swift:,
.build/,DerivedData/,*.swiftpm/Packages/ - R:,
.Rproj.user/,.Rhistory,.RData,.Ruserdata,*.Rproj,packrat/renv/ - 通用:,
.DS_Store,Thumbs.db,*.tmp,*.swp,.vscode/.idea/
工具特定模式:- Docker:,
node_modules/,.git/,Dockerfile*,.dockerignore,*.log*,.env*coverage/ - ESLint:,
node_modules/,dist/,build/,coverage/*.min.js - Prettier:,
node_modules/,dist/,build/,coverage/,package-lock.json,yarn.lockpnpm-lock.yaml - Terraform:,
.terraform/,*.tfstate*,*.tfvars.terraform.lock.hcl - Kubernetes/k8s:,
*.secret.yaml,secrets/,.kube/,kubeconfig*,*.key*.crt
-
解析tasks.md结构并提取:
- 任务阶段:设置、测试、核心开发、集成、优化
- 任务依赖:顺序执行与并行执行规则
- 任务详情:ID、描述、文件路径、并行标记[P]
- 执行流程:顺序和依赖要求
-
按照任务计划执行实现:
- 分阶段执行:完成一个阶段后再进入下一个阶段
- 遵循依赖关系:顺序任务按顺序执行,并行任务[P]可同时执行
- 遵循TDD方法:在对应的实现任务之前执行测试任务
- 基于文件的协调:影响同一文件的任务必须顺序执行
- 验证检查点:进入下一阶段前验证当前阶段是否完成
-
实现执行规则:
- 先完成设置:初始化项目结构、依赖项、配置
- 先测试后编码:如果需要为契约、实体和集成场景编写测试
- 核心开发:实现模型、服务、CLI命令、端点
- 集成工作:数据库连接、中间件、日志、外部服务
- 优化与验证:单元测试、性能优化、文档
-
进度跟踪与错误处理:
- 完成每个任务后报告进度
- 若任何非并行任务失败,终止执行
- 对于并行任务[P],继续执行成功的任务,报告失败的任务
- 提供包含上下文的清晰错误消息以方便调试
- 若无法继续实现,建议下一步操作
- 重要提示:对于已完成的任务,务必在tasks文件中将其标记为[X]
-
完成验证:
- 验证所有必填任务均已完成
- 检查实现的功能是否符合原始规范
- 验证测试通过且覆盖率满足要求
- 确认实现遵循技术规划
- 报告最终状态及已完成工作的摘要
注意:此命令假设tasks.md中存在完整的任务分解。若任务不完整或缺失,建议先运行重新生成任务列表。
/speckit.tasks