with one click
git
规范 git 工作流实践。任何代码改动都适用。在提交、开分支、解决冲突,或需要把多条并行工作线组织起来时使用。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
规范 git 工作流实践。任何代码改动都适用。在提交、开分支、解决冲突,或需要把多条并行工作线组织起来时使用。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
FDD 主流程 step 1(规划与拆解)。覆盖两段——plan(与用户弄清需求、经 investigator 调查代码库、定出 milestone、写出 plan.md 并呈现)与 features(把 milestone 拆成 features.json 并过 coverage 闸)。中间的 contract 段交给 harness-stack:fdd-validation-contract。由 harness-stack:fdd 调用。
构建新特性的主流程编排器。契约优先的多 agent 架构——捕获一个 plan,定义可测试的断言,拆解为多个 feature,再用全新上下文的 implementer/reviewer/validator subagent 驱动一个里程碑设闸的执行循环。当一处改动触及多个文件、有多条验收标准、或跨越多个 feature 时使用。主流程分三步,分发给 fdd-planning(含 fdd-validation-contract)/ fdd-execution / fdd-validate。
为一个 plan 撰写 validation contract——把 definition of done 落成一组可测试、用户可观测的 assertion(VAL-<AREA>-NNN),带 persona 与声明的 Evidence。它是 fdd step 1(规划)里的 contract 阶段。契约通过逐 area 的 investigation subagent 与若干轮 adversarial review 构建,而非一人独写。产出 .harness-runtime/plans/<slug>/validation-contract.md,并经由 fdd init-state 播种 validation-state.json。在项目内首次使用时,还会 bootstrap 项目级约定文档 docs/user-test-patterns.md。
harness-stack 框架的引导纲要(bootstrap doctrine)。在会话开始时自动加载,用以介绍 lifecycle map、golden rules,以及如何挑选正确的 harness-stack:* skill。在一次会话中首次调用任何 harness-stack:* skill 之前,先读它。
复盘一次 harness-stack 使用,把值得上报的摩擦、缺陷或建议提成 GitHub Issue 反馈给上游。在完成一项任务、用完某个 skill 后有意见或改进想法,或想为框架本身留下改进线索时使用。
FDD 主流程 step 2——执行循环。串行驱动 feature 构建:next-feature → 派 implementer → handoff 决策树 → complete。每个 feature 由交接决策树把关(核验 implementer 自验留下的证据)。静态验证 → 代码审查 → user-test 这条验证流水线在里程碑收口(fdd-validate scope=milestone)与循环跑空(scope=final)批量跑。由 harness-stack:fdd 在 features.json 通过 coverage 后调用。
| name | git |
| description | 规范 git 工作流实践。任何代码改动都适用。在提交、开分支、解决冲突,或需要把多条并行工作线组织起来时使用。 |
Git 是安全网。commit 是存档点,branch 是沙盒,history 是文档。当 agent 飞快地产出代码时,正是这套有纪律的版本控制让改动始终可审、可回退。
本技能讲的是心法——原则、约定、反模式。各项的完整规范见 references/。
始终适用。每一次代码改动都流经 git。
让 main 始终可部署。在短命的 feature branch 上干活,1–3 天内 merge 回去。长命分支会累积 merge 风险;与其把未完成的工作在分支上搁好几周,不如用 feature flag。
main ──●──●──●──●──●──●──●──●──●── (always deployable)
╲ ╱ ╲ ╱
●──●─╱ ●──╱ (short-lived feature branches)
release branch 在 main 继续前进、同时需要稳定某个发布时是可以接受的;其余一切都应尽快落地。
消息格式、拆分策略、提交前自检都在 references/commit.md。
| Diff 规模 | 处理 |
|---|---|
| ≤ ~100 行 | 好。一坐下就能审完。 |
| ~100–300 行 | 单个带测试的逻辑改动可以接受。 |
| > ~1000 行 | 太大了。拆开。 |
例外:完整删除、自动化 codemod、lockfile 更新——这些情况下审阅者核对的是意图,不是逐行。
implement slice → test → verify → commit → next slice
某个切片做坏了,git reset --hard HEAD 就能退回上一个已知良好的状态。永远不会损失超过一个增量。
git worktree add ../project-feature-a feature/task-creation
git worktree add ../project-feature-b feature/user-settings
git worktree remove ../project-feature-a # when done
每个 worktree 是一个隔离的 checkout——agent 可以并行干活,无需来回切分支。某次试验失败了,删掉 worktree,什么都不丢。每个 worktree 的运行时隔离见 harness-stack:env-init。
让某条 worktree 分支追上 trunk 时,不必切回主 worktree——直接对最新的 origin/main rebase(或 merge)即可,见 references/update-from-main.md(命令 /harness-stack:sync-main)。
feature/<short-description>
fix/<short-description>
chore/<short-description>
refactor/<short-description>
merge 之后删掉分支。有些仓库在 PR merge 时会自动删除 head 分支——别跟它对着干。
| 主题 | 参考 |
|---|---|
| Commit 规范 | references/commit.md |
| 同步(rebase + push) | references/sync.md |
| Pull / merge 更新分支 | references/pull.md |
| 用 main 更新 worktree 分支 | references/update-from-main.md |
| Push 语义 | references/push.md |
| 借口 | 现实 |
|---|---|
| 「等 feature 做完我再 commit。」 | 一个巨型 commit 没法 review、没法 debug、没法 revert。每个切片都提交。 |
| 「消息无所谓。」 | 消息就是文档。未来的 agent 需要它们。 |
| 「我之后会全 squash 掉。」 | squash 会摧毁开发叙事。从一开始就写干净的 commit。 |
| 「分支增加开销。」 | 短命分支是免费的;长命分支才是代价。 |
| 「这个改动我之后再拆。」 | 大改动风险更高、更难 revert。提交前先拆。 |
「直接 --force,更快。」 | --force 会无条件覆盖队友的工作。只有在 history 是被有意重写时才用 --force-with-lease。 |
| 「认证失败——我改一下 remote URL 吧。」 | 这是遮掩,不是修复。把认证错误暴露出来,别糊弄过去。 |
fix、update、wip、misc 这样Co-Authored-By / 模型 / 工具的署名 trailergit rebase --skip 来躲 conflict(会悄悄丢掉一个 commit)