Skip to main content

GitHub All-Stars #5: Spec-Kit – How GitHub tames AI-coding chaos with Spec-Driven Development

Picture of Artur Skowroński, Head of Java/Kotlin Space

Artur Skowroński

Head of Java/Kotlin Space
Sep 24, 2025|22 min read
plant_on_cybernetic_background
meme_monkey_AI

meme_Harry_Potter_AI

We have seen these two often

1Specification: Underwriting Application "SureWrite"
2
31. Goals
4
5Enable underwriters to capture applicant data (personal details, financials, risk factors).
6Provide automated risk assessment suggestions based on predefined rules and AI scoring models.
7Allow human underwriters to review, adjust, and approve/reject applications.
8Maintain a full audit trail of all actions for compliance purposes.
9Provide a dashboard for tracking the status of applications (Pending, In Review, Approved, Rejected).
10
112. User Journeys
12
132.1. Submitting a new insurance application
14
15The user (agent/broker) clicks the "New Application" button.
16A form opens with fields: Applicant Details, Policy Type, Coverage Amount, Health/Financial Disclosures.
17The user fills in the fields and clicks "Submit".
18The application enters the Pending state and is visible in the dashboard.
19
202.2. Reviewing and scoring an application
21
22The underwriter opens an application from the Pending list.
23The system displays both applicant data and an AI-generated risk score with supporting factors.
24The underwriter can adjust inputs, request additional documents, or override the suggested score.
25The underwriter clicks "Approve" or "Reject".
26
272.3. Audit and compliance check
28
29A compliance officer accesses the Audit Trail section.
30All actions (submit, score, adjust, approve/reject) are timestamped and tied to specific users.
31The officer exports a compliance report in PDF format.
32
333. Acceptance Criteria
34
35The application must load in under 3 seconds.
36All application data must be persisted securely in the database with encryption at rest.
37Risk scoring must complete within 2 seconds after submission.
38Each approval/rejection must generate an immutable audit log entry.
39The dashboard must refresh in real time when application statuses change.
1Project Constitution
2General Rules
3Language: TypeScript
4Frontend Framework: React with Vite
5Styling: Tailwind CSS
6Code Quality: Prettier and ESLint configurations from the repository must be applied.
7Testing
8Every new feature must have at least 80% unit test coverage.
9E2E tests must be written for all critical user flows.
10Architecture
11The backend must be based on a microservices architecture.
12Communication between services must use asynchronous events.
1uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
1/specify "Create a simple task management application..."
1/plan
1/tasks
1---
2# Do not edit generated fields below this line
3project: {{project_name}}
4version: {{version}}
5generated_at: {{timestamp}}
6source: spec-template.md
7---
8
9# {{project_name}} — Specification
10
11> **Intent summary**: {{intent_summary}}
12> **Author**: {{author}} • **Stakeholders**: {{stakeholders_csv}}
13
14---
15
16## 1. Goals
17{{#goals}}
18- {{.}}
19{{/goals}}
20{{^goals}}
21- TBD: Add 3–5 concrete goals.
22{{/goals}}
23
24## 2. Anti-Goals
25{{#anti_goals}}
26- {{.}}
27{{/anti_goals}}
28{{^anti_goals}}
29- Explicitly list what is out of scope to prevent scope creep.
30{{/anti_goals}}
31
32## 3. Personas
33{{#personas}}
34- **{{name}}** — {{role}}
35 Needs: {{needs}}
36 Pain points: {{pains}}
37{{/personas}}
38{{^personas}}
39- TBD: Define 2–3 key personas (name, role, needs, pains).
40{{/personas}}
41
42(....) // Original template is much longer - models do not read in minds
meme_AI_Linux

github_star_5

Subscribe to our newsletter and never miss an article