2026世界杯
你的位置:Z6尊龙凯时2026世界杯推荐官网 > 2026世界杯 > Z6尊龙凯时世界杯推荐官网 用 Spec Kit 进行圭表驱动开采
Z6尊龙凯时世界杯推荐官网 用 Spec Kit 进行圭表驱动开采
发布日期:2026-05-22 08:34    点击次数:129

Z6尊龙凯时世界杯推荐官网 用 Spec Kit 进行圭表驱动开采

作为软件开采者,咱们在姿色中见过太屡次这么的场景:规格解析书在姿色启动时写好,争论了几周,然后被暗暗埋在 sprint 看板、Jira 工单和"咱们代码评审时再看"的借口之下。

最终,代码成了独一的真相开首,而规格解析书则沦为过期的成列。

咫尺,AI 编程智能体正在转换这一模式,一个新术语也应时而生:圭表驱动开采(Spec-Driven Development,简称 SDD)。其背后的理念很简便,关于那些风俗以文献和 Pull Request 为单元念念考的东说念主来说,致使有点令东说念主不安:

圭表,而非代码,才是咱们应该艳羡的紧要产品。代码只是从圭表中生成的产品。

代码作为真相开首 vs 圭表作为真相开首

在这篇著作中,我将先容圭表驱动开采是什么,它怎样重塑软件开采人命周期,以及在咱们使用 Spec Kit 和 Claude Code 构建一个微型 REST API 时,它在施行中是什么样貌。

1、什么是圭表驱动开采?

圭表驱动开采是一种构建软件的情势,其中结构化、可扩充的圭表处于使命过程的中心。

与其获胜从 Jira 工单跳到代码,咱们领先精准姿色系统应该作念什么、必须遵命哪些敛迹、以及变更的鸿沟在那里。然后,AI 智能体使用这些圭表来诡计、组织和实施使命,更进犯的是,圭表在代码生成后仍然保捏活力。

这与好多团队在当年几年中使用 AI 助手的情势造成了有意思意思的调理。标签补全式编码(就怕被亲切地称为"氛围编程")关于小段的胶水代码来说成果可以,但在团队鸿沟上它有一个人所共知的失败模式:

智能体对系统的意图莫得共同的清楚,每个开采者用略有不同的指示来影响它。落幕是快速、不一致且难以演进的。

2、传统开采 vs 圭表驱动开采

SDD 获胜措置了这个问题。圭表不再是藏在 Confluence 页面里的 Word 文档,

它是仓库中一个版块化、可审查的文献,AI 智能体阅读它的情势与新团队成员阅读它的情势疏通。

一个直不雅的对比:

传统开采:需求 → 代码(代码是真相开首)

圭表驱动开采:需求(圭表) → AI 智能体 → 代码(圭表是真相开首)

GitHub 的开源姿色 Spec Kit 是这一理念最显眼的达成之一,而 Kiro 和 Tessl 等器具也在探索访佛的领域。它们并非饱和疏通,但分享一个共同的骨架:一小套结构化文档和一小套由 AI 驱动的阶段,将这些文档挪动为可使命的软件。

3、SDD 怎样转换软件开采人命周期

传统的软件开采人命周期(SDLC)包括分析、联想、达成、测试、部署和艳羡。每个阶段都会产坐褥品(需求文档、联想文档、源代码、测试叙述),而这些产品中的大大都会逐步脱节。

SDD 并莫得撤销 SDLC,而是再行组织了每个阶段的核焦急点:

分析不再只是是为了将来阅读而创建文档,它咫尺产生获胜指令达成的圭表。咱们的问题变得愈加精准,因为恶浊的恢复会在几小时而不是几个月内裸露为 bug。

联想挪动为智能体或开采者可以衔命的明晰谋略。它明确纪录架构方案、技巧选型和非功能性敛迹,频繁以**"宪法"立场**的文档步地出现,抽象项指标强制性司法。

达成是智能体完成大部分打字使命的所在,但开采者仍然对落幕负责。脚色从"写每一溜代码"调理为"审查意图、考据活动,并在代码暴涌现缺失细节时完善圭表"。

测试与圭表愈加细致地对王人。圭表中抽象的验收尺度作为智能体创建的驱动测试,让东说念主类和智能体都能在归来测试时期参考圭表。

艳羡可能是永恒收益最大的所在。当圭表保捏最新时,引入新工程师或启动新的智能体会话不需要反向工程代码库。你提供圭表,其他一切就会各就列位。

阶段保捏不变,但咫尺圭表在总共这个词过程中充任主要指南,而不是在达成起初时被丢弃。

4、圭表驱动开采的器具链

圭表驱动开采主若是一种纪律,但照旧出现了一批器具包来缩小施行它的摩擦。磋商最多的三个是 GitHub 的 Spec Kit、AWS 的 Kiro 和 Tessl。

Spec Kit 是开源的、由 CLI 驱动的选项,它与大大都团队照旧在使用的智能体集成得最为顺畅:Claude Code、Cursor、Copilot、Gemini 和 Codex,因此我将在本文的其余部分重心先容它。

5.1 装配 Spec Kit

Spec Kit 作为一个名为 specify 的微型 Python CLI 发布。在你的机器上通过 uv 装配一次:

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

specify --version

然后,在你想要使用 SDD 的姿色里面驱动化它:

specify init . --ai claude

--ai claude 标记将 Spec Kit 的指示模板接入 Claude Code,通常的标记也遴选其他智能体(cursor、copilot、gemini、codex)。在 specify init 之后,Claude Code 的斜杠菜单中会出现五个斜杠大喊:

/speckit.constitution:界说姿色范围内不可协商的事项。

/speckit.specify:从当然言语姿色生见遵守圭表。

/speckit.plan:从圭表和技巧敛迹生成达成谋略。

/speckit.tasks:将谋略明白为有序的任务列表。

/speckit.implement:扩充一个或多个任务。

三个特地的提拔剧本用于审查和完善:

/speckit.clarify:在需求到达谋略阶段之前象征恶浊之处。

/speckit.analyze:交叉查验圭表、谋略和任务之间的不一致性。

/speckit.checklist:生成可以交给东说念主类审查者的审查清单。

specify init 大喊实质上会创建这些文献:

运行 "specify init" 大喊青年景的文献

5.2 Spec Kit 大喊与原生 Claude Code 大喊的对比

咱们实质上并不需要 Spec Kit 来进行圭表驱动开采。它是一个便利层,访佛于其他智能体(如 Claude Code)中的使命流运行,通过通例指示让智能体在疏通的文献夹中生成疏通的文献。

宪法层致使内置了 Claude Code /init 大喊的部分访佛物,它在姿色根目次下搭建一个 CLAUDE.md,Claude 在每个会话中都会读取它。这两个文献位于项指标并吞层,但恢复的问题略有不同:

"CLAUDE.md" 主若是姿色性的("姿色是这么布局的,用这个大喊运行测试"),而 "constitution.md" 主若是规则性的("这些是每个功能必须遵命的不可协商司法")。

其他 Spec Kit 大喊,如 /speckit.specify、.plan、.tasks 和 .implement,饱和莫得原生的 Claude Code 等价物,你必须么装配 Spec Kit,要么我方编写指示。

如果你的团队谋略发达使用 SDD,装配 Spec Kit 值得付出小小的前期资本,而不是依赖原生的 Claude Code 大喊和目田步地的指示。

因为疏通的 "/speckit.*" 大喊无论你指向 Claude Code、Cursor、Copilot 如故 Gemini 都会产生疏通的产品,是以如果你更换智能体,项指标圭表也颖异净地迁徙。

6、施行示例:Spring Boot 预订 API

让咱们起初吧。假定咱们想要构建一个微型的 REST 服务来管甘愿议室预订。在传统过程中,我会创建一个 Spring Boot 姿色,起草一个 Booking 实体,添加一个限制器,通达一个仓库,并在过程中摸索考据司法。

在圭表驱动过程中,第一个产品不是类,而是一个与源代码并存并处于版块限制之下的圭表文献目次。

.specify/memory/constitution.md 文献包含每个功能必须遵命的姿色范围司法,包括编码尺度、测试计策和安全基线。

specs// 文献夹存放每个功能的产品。src/ 下的总共内容都是生成的内容,尊龙凯时官网进入网页它是输出,而不是真相开首,其中的每一溜都应该可以纪念到 specs/ 下的某个文献。

在装配了 Spec Kit 并有了宪法之后,以下是预订 API 的四步使命过程。

Claude Code 中 /speckit-specify 妙技的新妙技钩子架构存在一个 bug,这在较新版块的 Spec Kit 中有所体现。在 .specify/extensions.yml 中,咱们有 auto_execute_hooks: true 和一个强制的 before_specify 钩子,它领先运行 /speckit-git-feature:

before_specify:

- extension: git

command: speckit.git.feature

enabled: true

optional: false # 强制的

1️⃣ 圭表

这一步从开采者编写当然言语指示起初。智能体将该指示挪动为结构化的 spec.md 文献。开采者随后审查并裁剪它。

我会输入到智能体(Claude Code)中的指示:

/speckit.specify 构建一个服务,让职工可以预订会议室的特定时刻段。它必须驻守并吞房间的双重预订。预订只可由创建它们的用户取消。职工还应该粗略列出给定房间和日历的预订。

运行 "/speckit.specify" 大喊后的 Claude Code 落幕

智能体将落幕写入 specs/001-meeting-room-bookings/spec.md,内容节略如下:

# Feature Specification: Meeting Room Booking

**Feature Branch**: `001-meeting-room-booking`

**Created**: 2026-05-08

**Status**: Draft

**Input**: User description: "Build a service that lets employees reserve a meeting room for a defined time window. It must prevent double-booking of the same room. Bookings can only be canceled by the user who created them. Employees should also be able to list bookings for a given room and day."

## User Scenarios & Testing *(mandatory)*

### User Story 1 - Reserve a Meeting Room (Priority: P1)

An employee wants to reserve a specific meeting room for a team discussion. They select a room, specify a start and end time, and submit the reservation. If the room is available for that time window, the booking is confirmed. If the room is already booked for any overlapping period, the request is rejected with a clear explanation.

**Why this priority**: This is the core capability of the service — without the ability to create a booking, no other functionality has value.

.

.

.

注释 spec.md 文献中莫得 Spring Boot、莫得 JPA、莫得 REST 动词、莫得 DTO 称号。这是成心为之的,圭表姿色的是问题,而技巧选型属于下一步。

在 /speckit-specify 写入 spec.md 之后,该妙技还会生成 /checklists/requirements.md,一个圭表质地查验清单,它同期亦然诡计前的就绪查验点。它是一个固定的 markdown 结构,包含三个部分(内容质地、需求竣工性、功能就绪度),涵盖诸如"莫得达成细节表露到圭表中"、"莫得留传的 [NEEDS CLARIFICATION] 象征"、"见效尺度是可臆想且与技巧无关的"以及"每个功能需求都有明确的验收尺度"等姿色。智能体逐项查验圭表,成立任何失败的姿色(最多 3 次迭代),暂停磋议任何未措置的澄莹问题,并将落幕与圭表一王人提交。

"/speckit-specify" 大喊生成的文献

咱们在这个阶段的使命是审查。如果缺乏某个司法(时区、最大预订范围,或者什么当作并吞个"天"),咱们获胜裁剪 spec.md 或条目智能体修改它。然后该文献像任何其他源代码产品一样提交到仓库。咱们也可以审查和更新 requirements.md,但联想假定你频繁不会这么作念,而当你这么作念时,你应该有坚贞地计划你真确在成立的是哪个文献。

2️⃣ 谋略

有了 spec.md 之后,开采者指示智能体制定技妙筹谋,提供成心从圭表中不详的技巧敛迹:

诡计的指示:

/speckit-plan 使用 Java 25 和 Spring Boot 4.0*.x。使用 Spring Data JPA 捏久化到 PostgreSQL。在* /api/v1/bookings 下裸露 REST 端点。使用 Jakarta Bean Validation 考据输入。在数据库层面强制扩充重迭留意,而不单是是在期骗步伐代码中。使用 JUnit 5 和 Testcontainers 进行测试。

运行 "/speckit-plan" 大喊后的 Claude Code 落幕

智能体读取 spec.md 加上这个指示,然后写入 specs/001-meeting-room-bookings/plan.md。使用 Spec Kit 时,它频繁还会在并吞个文献夹中生成复古文献:

data-model.md 姿色实体步地

contracts/ 目次存放 OpenAPI 片断

research.md 纪录为什么遴选某个特定的库或方法

"/speckit-plan" 大喊生成的文献

生成的 plan.md 的粗拙版块:

# Implementation Plan: Meeting Room Booking

**Branch**: `main` | **Date**: 2026-05-09 | **Spec**: [spec.md](./spec.md)

**Input**: Feature specification from `/specs/001-meeting-room-booking/spec.md`

## Summary

Build a RESTful Spring Boot 4.0.x service (Java 25) that lets employees reserve, cancel, and list meeting room bookings via `/api/v1/bookings`. Double-booking prevention is enforced at the PostgreSQL level using an `EXCLUDE USING GIST` constraint on a `tstzrange` column; the application handles concurrent conflicts by catching constraint violations and returning HTTP 409.

## Technical Context

**Language/Version**: Java 25

**Primary Dependencies**: Spring Boot 4.0.x, Spring Data JPA (Hibernate 7), Spring Web MVC, Jakarta Bean Validation (Hibernate Validator), Flyway

**Storage**: PostgreSQL 16+ via Spring Data JPA; EXCLUDE USING GIST constraint for overlap prevention

**Testing**: JUnit 5, Testcontainers (PostgreSQLContainer), Spring Boot Test, Mockito

**Target Platform**: Linux server (JVM / containerized)

**Project Type**: web-service (REST API)

**Performance Goals**: 95% of operations within 2 seconds under organizational load (SC-006); booking listing within 2 seconds (SC-004)

**Constraints**: Zero double-bookings (SC-002); concurrent conflict → exactly one booking succeeds (SC-005)

**Scale/Scope**: Organizational scale — tens of rooms, hundreds of employees

.

.

.

与上一步访佛,智能体起草,开采者领有。如果谋略遴选了不想要的依赖或作念出了咱们不同意的架构遴选,我用纯文本提议异议,智能体会修改 plan.md。

3️⃣ 任务列表

下一个大喊将圭表和谋略挪动为具体的待事业项列表:

指示:

/speckit-tasks

使用 Spec Kit 时,该大喊不需要特地的指示,智能体照旧有 spec.md 和 plan.md 可以使命。它写入 specs/001-meeting-room-bookings/tasks.md:

---

description: "Task list for Meeting Room Booking implementation"

---

# Tasks: Meeting Room Booking

**Input**: Design documents from `/specs/001-meeting-room-booking/`

**Prerequisites**: plan.md, spec.md, research.md, data-model.md, contracts/openapi.yml

**Tech Stack**: Java 25, Spring Boot 4.0.x, Spring Data JPA, PostgreSQL, Flyway, Jakarta Bean Validation, JUnit 5, Testcontainers

**Tests**: Included — JUnit 5 + Testcontainers explicitly required by the feature spec.

**Organization**: Tasks are grouped by user story to enable independent implementation and testing.

## Format: `[ID] [P?] [Story] Description`

- **[P]**: Can run in parallel (different files, no dependencies on incomplete tasks)

- **[Story]**: Which user story this task belongs to (US1, US2, US3)

- Each task includes the exact file path to create or modify

## Path Conventions

Single Spring Boot project at repository root:

- Source: `src/main/java/com/example/booking/`

- Resources: `src/main/resources/`

- Tests: `src/test/java/com/example/booking/`

- Test resources: `src/test/resources/`

---

## Phase 1: Setup (Shared Infrastructure)

**Purpose**: Initialize the Spring Boot 4.0.x Maven project with all required dependencies and base configuration.

.

.

.

运行 "/speckit-tasks" 大喊后的 Claude Code 落幕

实用技巧:在实施前审查。 /speckit-tasks 是在问题变成代码之前发现它们的最低廉时机。重新到尾阅读生成的列表,并磋议每个任务是否有明确的验收尺度,限定是否合理(数据库迁徙在实体之前,协议测试在限制器之前),以及任何缺失是否因为圭表缺失了它(在这种情况下,且归裁剪 spec.md,而不是 tasks.md)。在这里运行 /speckit-analyze 也值得多花几秒钟 —— 它交叉查验 spec.md、plan.md 和 tasks.md,象征你可能在实施到一半时才发现的不一致性。

4️⃣ 达成

直到这时,智能体才起初将实质的 Java 文献写入 src/。开采者按任务迟缓驱动这一步:

达成的指示:

/speckit-implement 只运行 Phase 1 中的任务 T001*。*

实用技巧:按任务迟缓达成,并开启谋略模式。 一次性运行 /speckit-implement 并让智能体在单次运行中完成 tasks.md 中的每个任务是很有迷惑力的。不要这么作念。一次驱动一个任务(只运行任务 T001 来自 Phase 1),并在每次之前切换到 Claude Code 的谋略模式(Shift+Tab 直到屏幕底部娇傲 plan mode on)。谋略模式让智能体写出逐文献的谋略,并在触碰任何代码之前恭候你的批准,这是圭表与各异之间的真确查验点。每个任务完成后,快速审查各异,运行测试,然后再链接。如果某个任务揭示了圭表中的缺失细节,停驻来先更新 spec.md,不要"在代码中成立"然后就完事了。

当改日的变更央求到来时,举例允许重复预订,咱们领先更新 "spec.md",然后再行生成受影响的 "plan.md""、"tasks.md"" 和筹商 Java 文献的部分。圭表与系统保捏同步,因为它是变更参预的独一阶梯。

7、落幕语

开云官方体育app官网

圭表驱动开采不是银弹,也不行替代工程判断。它更侧重于 AI 无法为咱们完成的使命部分,举例澄莹意图、量度遴选以及考据构建的内容是否如实是需要的。

智能体负责打字。咱们负责念念考。

如果你想在确切姿色中尝试 SDD,我建议从小处起初,举例,从一个功能、一个仓库起初,并抑止住"我照旧知说念要作念什么"就跳过圭表的迷惑。这种捷径恰是 SDD 试图龙套的风俗。一朝圭表就位,SDLC 的其余部分就会嗅觉不那么像一系列脱节的吩咐,而更像一条从意图到运行代码的单一、可纪念的线。

我也很可爱使用 Spec Kit 作为 SDD 器具包,它为 SDD 充任纪律,强制扩充一致的文献布局,将每个步伐包装在测试过的指示模板中,并将架构司法拿获在每个功能都必须遵命的宪法中。何况因为疏通的 /speckit-* 大喊无论咱们指向 Claude Code、Cursor、Copilot 如故 Gemini 都会产生疏通的产品,是以如果器具发生变化Z6尊龙凯时世界杯推荐官网,使命可以迁徙,使咱们与智能体无关。