speccoding-template
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 27 GitHub stars
Code Pass
- Code scan — Scanned 1 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
This is a full-stack AI development project template designed to orchestrate coding workflows. It provides a standardized directory structure and a rule set to guide AI assistants (like Claude Code) through structured, non-destructive software development phases.
Security Assessment
The overall risk is rated as Low. This tool functions purely as a scaffolding template rather than an executable application. Because the programming language is unlisted and it primarily consists of project directories and instructional Markdown files, it does not actively execute shell commands, make network requests, or access sensitive data on its own. The automated rule-based scan checked successfully for dangerous code patterns and hardcoded secrets, finding zero threats. Users should remain aware that while the template itself is inert, the third-party dependencies it recommends installing via npm (such as Claude Code) carry their own security implications.
Quality Assessment
The project demonstrates strong quality and maintenance signals. It carries the highly permissive and standard MIT license, ensuring clear legal usability. Activity is excellent, with the last code push occurring today, indicating rapid, active development. With 27 GitHub stars, the project has a small but growing community footprint. It provides comprehensive documentation outlining a clear, step-by-step workflow for developers.
Verdict
Safe to use.
基于 Claude Code + OpenSpec + Superpowers 的全栈 AI 开发模板
SpecCoding Template
基于 Claude Code + OpenSpec + Superpowers 三件套的全栈 AI 开发模板。
让 AI 稳定交付全栈项目——告别"AI 改崩代码 / 失忆 / 跑偏"。
📣 扫码关注公众号 TangoAI实验室,每周更新 AI 开发实战干货
这是什么
一套可直接 Clone 即用的项目骨架,实现文章《让 AI 稳定交付全栈项目》里讲的完整工作流:
- ✅ 两级 Spec 体系:
spec/管项目全局,openspec/管单次变更 - ✅ 两级分支模型:
version/v*承载一批需求,feature/*隔离单次变更 - ✅ 七阶段工作流:
git branch → scaffold → brainstorm → plan → execute → archive → merge - ✅ 协作姿态明确:方案制定多问 / 列 tradeoff,执行落地尽量自主推进
- ✅ 三工具协同:Claude Code 执行、OpenSpec 规格、Superpowers 流程
- ✅ 全栈骨架:预留 backend / frontend / prototype 目录
- ✅ 示例变更:
openspec/changes/archive/里附一个完整示例,可直接照抄
协作模式:设计靠人决策,执行尽量自主
| 阶段 | 对应工具 | AI 姿态 |
|---|---|---|
| 方案制定 | brainstorming、writing-plans、需求澄清、架构决策 | 多问、列 tradeoff、设 checkpoint——关键判断交给人类 |
| 执行落地 | executing-plans、写代码、跑测试、走 git/openspec 流程 | 尽量自主推进,方案确认后不要每一步都请示 |
执行阶段只在四种情况下停下来请示:方案与实际冲突、不可逆操作(如 git push --force / 改 main)、反复尝试同一思路失败、CLAUDE.md 明确要求人工确认的节点(如归档时的 design 提升)。详见 CLAUDE.md。
一句话:设计前多问,执行中少问。
快速开始
1. 使用本模板
方式 A:GitHub「Use this template」 — 推荐,创建一个干净的新仓库
方式 B:Clone 后去掉历史
git clone https://github.com/beautifulSoup/speccoding-template.git my-project
cd my-project
rm -rf .git
git init && git add -A && git commit -m "chore: bootstrap from SpecCoding template"
2. 安装前置工具
# OpenSpec 中文版(核心规格管理工具)
npm install -g @openspec-cn/cli
# Claude Code
npm install -g @anthropic-ai/claude-code
# Superpowers skills(让 /superpowers:brainstorming 等命令可用)
# 安装方式详见 Superpowers 项目文档
3. 版本 kickoff(Phase 0)
每个版本启动一次。先开版本分支,再让 AI 进入讨论阶段——不要让 AI 一上来就动 spec 文件。
# 从 main 拉版本分支(命名必须为 version/v<semver>)
git checkout main && git pull
git checkout -b version/v0.1
然后在 Claude Code 中触发 kickoff:
"开始做 v0.1 版本的 kickoff"
AI 会按 CLAUDE.md 里的「维护节奏」执行:
- 前置检查:读分支版本号、读
git config --get user.initials拿你的缩写、提醒先git pull - 多轮讨论澄清:把本次要写入的需求边界一条条聊清楚(可配合
/superpowers:brainstorming),未确认前不动任何 spec 文档 - 本地化 confirm:AI 汇总"新增 X 条 / 修订 Y 条 / 架构是否动",等你说"确认"
- 批量写入
requirements.md/tasks.md/(必要时)design.md/devlog.md,每条需求带版本标签[v0.1 新增]与唯一 IDR-v0.1-<缩写>-<序号>,修订老需求时旧条目保留并标"已由 X 取代"
💡 在
main等非版本分支上触发 kickoff 时,AI 会降级为"无版本"模式(用日期作标签)。完整规则见CLAUDE.md的「维护节奏 → ① 版本 kickoff」。
4. 单任务开发循环(Phase 1~N)
版本分支下每个 task 走一次完整七阶段工作流。feature 分支从当前所在分支拉出(通常是版本分支),合并时回到它被拉出时的那条分支——所以创建时必须显式记下父分支:
# 1. 创建特性分支 + 显式记录父分支
parent=$(git rev-parse --abbrev-ref HEAD)
git checkout -b feature/add-user-auth
git config branch.feature/add-user-auth.parent "$parent"
# 2. 脚手架
openspec-cn new change "add-user-auth"
# 3. 设计 —— Claude Code 中运行
/superpowers:brainstorming
# → 产出 proposal.md / design.md / specs/ 写入 openspec/changes/add-user-auth/
# 4. 计划
/superpowers:writing-plans
# → 产出的 plan.md 必须落到 openspec/changes/add-user-auth/plan.md
# ⚠️ 不要让它散落到仓库根或其他位置
# 5. 执行
/superpowers:executing-plans
# → 严格按 openspec/changes/add-user-auth/plan.md 执行
# 6. 归档(在合并回父分支前完成)
/opsx:archive
# → 整个 add-user-auth/ 目录移入 openspec/changes/archive/
# → AI 会扫 design.md,若含跨模块影响 / 新依赖 / 数据模型变更,
# 会请你确认是否提升到 spec/design.md(点头才写)
# 7. 合并回父分支(不一定是 main)
parent=$(git config --get branch.$(git rev-parse --abbrev-ref HEAD).parent)
git checkout "$parent"
git merge feature/add-user-auth
git branch -d feature/add-user-auth
完成后 spec/tasks.md 对应 task 由 AI 自动勾选 ✅,spec/devlog.md 自动追加一条记录(注明父分支名)。
⚠️ 手工创建过、没记父分支的 feature 分支:AI 在第 7 步读不到
branch.*.parent配置时会向你确认目标分支,不会靠 reflog / merge-base 自行猜。⚠️ 版本分支 →
main的合并由人工处理;AI 默认不碰main,除非你显式要求。
⚠️ 产出物归属铁律:单次变更的所有产出物(proposal / design / specs / plan / tasks)必须统一放在
openspec/changes/<name>/下,不可散落。这是"一键归档、可审计、可回滚"的前提。
目录结构
.
├── CLAUDE.md # Claude Code 工作指引(重要,勿删)
├── README.md # 本文件
├── .gitignore # 全栈通用 ignore
│
├── spec/ # 【项目级】spec 文档(人工主导)
│ ├── requirements.md # 整体需求
│ ├── design.md # 整体架构与设计
│ ├── tasks.md # 里程碑级任务清单
│ ├── devlog.md # 开发日志(AI 自动维护)
│ └── structure.md # 目录结构说明
│
├── openspec/ # 【需求级】单次变更 spec
│ ├── config.yaml # OpenSpec 配置
│ ├── changes/
│ │ └── archive/ # 已完成的变更归档(附示例)
│ └── specs/ # 单独提炼的长期规格
│
├── .claude/ # Claude Code 配置、命令与技能
│ ├── commands/opsx/ # /opsx:apply /opsx:archive 等斜杠命令
│ └── skills/ # OpenSpec 相关技能
│
├── .codebuddy/ # CodeBuddy 配置(若使用 CodeBuddy 国际版)
│
├── backend/ # 后端代码(待填)
├── frontend/ # 前端代码(待填)
└── prototype/ # 原型设计(待填)
核心原则
1. Spec 必须分两级
| 层级 | 位置 | 回答的问题 | 变更频率 |
|---|---|---|---|
| 项目级 | spec/ |
"我们做什么产品、为什么做" | 低频,人工主导 |
| 需求级 | openspec/changes/<name>/ |
"这次变更做什么、怎么做" | 高频,AI 产出 |
混在一起是灾难的开始——单次变更细节会污染全局设计,全局决策会被埋在 PR 里。
2. 谁写谁改 / 何时写
项目级 spec 仅在 版本 kickoff 与 openspec 归档 两个边界上同步。变更开发过程中不动;openspec 变更内部的产出物可自由书写,不污染项目级文档。
| 文档 | AI 何时可动 |
|---|---|
spec/requirements.md |
✅ 仅版本 kickoff 时由人工触发后批量写入(带版本标签 + R-ID) |
spec/design.md |
✅ kickoff 涉及新架构决策时;归档时检测到跨模块影响 / 新依赖 / 数据模型变更,人工点头后才提升 |
spec/tasks.md 内容 |
✅ 仅 kickoff 时按版本块追加(不得改他人已写的 tasks) |
spec/tasks.md 状态 |
✅ openspec 归档后自动勾选 ✅ |
spec/devlog.md |
✅ kickoff 写入摘要 + feature 合回父分支时追加 |
spec/structure.md |
✅ 添加或删除顶层目录时即时更新 |
openspec/changes/* |
✅ 工作流中由 brainstorming / writing-plans / executing-plans 自动生成 |
3. 物理上分开"思考 / 规划 / 执行"
- brainstorming 只产出设计文档(proposal / design / specs),不碰代码
- writing-plans 只产出
plan.md,不碰代码 - executing-plans 才动代码,而且必须严格按
plan.md执行
这是对抗 AI 失忆的物理防线——即使某一步 AI 上下文全丢,下一步也能从磁盘上的 spec 文档重新加载继续。
4. 单次变更产出物归一
所有单次变更产出物必须统一放在 openspec/changes/<name>/ 下:
openspec/changes/add-user-auth/
├── proposal.md ← brainstorming 产出
├── design.md ← brainstorming 产出
├── specs/auth/spec.md ← brainstorming 产出
├── plan.md ← writing-plans 产出(⚠️ 必须落这里)
└── tasks.md ← 贯穿全流程的任务清单
不要让 plan.md 散落到仓库根、docs/、.claude/ 或任何其他位置——归档 / 审计 / 回滚都依赖这个归一原则。
示例变更:照着抄就行
openspec/changes/archive/example-add-user-auth/ 里存了一个完整的示例变更,包含:
proposal.md— 变更提案design.md— 技术方案specs/auth/spec.md— 场景式规格plan.md— writing-plans 生成的详细实现计划tasks.md— 实现任务清单
新手第一次用,直接照着这个结构填就行。
配套文章
本模板是以下文章的配套资源:
《让 AI 稳定交付全栈项目:我的 Claude Code + OpenSpec + Superpowers 三件套实战》
完整方法论、踩坑细节、更多案例请见文章原文。
持续更新跟进
|
📣 公众号:TangoAI实验室
• 每周更新一篇 AI 开发实战硬核干货 |
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found