Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
de8d089
enhance with PRPs-agentic-eng framework
Sep 20, 2025
54250ad
feat(cli): install Claude commands to target project .claude/command…
Sep 20, 2025
7af4d78
fix: include templates directory in package for Claude commands install
Sep 21, 2025
f4ee5a1
fix(ci): update Claude commands path to spec-kit subdirectory
Sep 21, 2025
c936c1a
fix install script - commands copy
Sep 21, 2025
c883886
fix(cli): transform branch downloads to match release structure
Sep 21, 2025
d71a4d6
feat(cli): preserve existing specs folder during install
Sep 21, 2025
d5ef350
fix(scripts): accept case-insensitive ticket prefixes in branch vali…
Sep 21, 2025
3fbf37d
feat(templates): add ULTRATHINK instructions to command templates
Sep 21, 2025
edd52a8
chore: bump version to 0.2.0
Sep 21, 2025
43fc56d
feat(cli): add --force flag to specify init for updating existing pro…
Sep 21, 2025
7b72a7a
fix(scripts): update spec file naming to use JIRA issue format
Sep 22, 2025
de88025
feat(templates): add constitution command template
Sep 23, 2025
d1afcc7
feat(templates): update JIRA issue format from uppercase to lowercase
Sep 27, 2025
13ad590
feat(vision) add product vision
hcnimi Oct 5, 2025
5d8e32b
feat(decompose): add capability-based decomposition for atomic PRs
Oct 5, 2025
acaf70f
docs: add Article VIII (Atomic Development) to constitution template
Oct 5, 2025
6d9b099
feat(decompose): implement atomic PR workflow with capability branches
Oct 6, 2025
bbb41dc
feat(decompose): implement atomic PR workflow with capability branches
Oct 6, 2025
465cfc6
feat(workflows): add capability mode support for atomic PRs
Oct 6, 2025
8c7119b
update smart-commit command
Oct 6, 2025
bd017a6
update implement.md
Oct 6, 2025
d3294a5
fix race condition where branch not created before file creation in /…
Oct 6, 2025
615debe
fix(plan): support capability IDs with letter suffixes
Oct 7, 2025
613ea3e
fix(templates): remove duplicate .specify prefix in implement.md paths
Oct 7, 2025
39b52e1
fix(templates): add explicit UTF-8 encoding instructions to all markd…
Oct 11, 2025
cf6891c
feat(init): support multi-repo init
Oct 11, 2025
5d47b07
feat(init): isolate AI assistant commands in spec-kit subfolders
Oct 11, 2025
acb36a9
make templates path reference consistent
hcnimi Oct 14, 2025
5170104
fix capability feature branch creation
hcnimi Oct 14, 2025
1aa83d2
refactor(loc-limits): add dual budget tracking for implementation and…
Oct 16, 2025
c26059f
update readme
Oct 18, 2025
c4f14fa
add conditional branch and feature naming
hcnimi Oct 18, 2025
70256b6
feat(workspace): add multi-repo workspace support
hcnimi Oct 19, 2025
7ff403b
refactor(workspace): rename .spec-kit to .specify for consistency
hcnimi Oct 20, 2025
4140ee2
docs(workspace): clarify Python CLI vs bash script initialization me…
hcnimi Oct 20, 2025
5c3bbab
fix relative path issue w/specify cli
Oct 20, 2025
f0a721d
docs(templates): update LOC limits to target 1000 with test ratio re…
Oct 21, 2025
93aadfa
feat(workspace): add GitHub host-aware Jira key support
Oct 21, 2025
f6c7c2a
feat(adaptive): add OpenSpec-inspired lightweight workflows
Oct 25, 2025
47543cd
revert: remove multi-repo workspace feature
hcnimi Oct 26, 2025
e17568d
revert workspaces feature
hcnimi Oct 27, 2025
5e71010
Revert "revert: remove multi-repo workspace feature"
hcnimi Oct 27, 2025
e55c2b0
use 'wtmt' as default jira project key in smart-commit command
Oct 29, 2025
ba3aba3
refactor(docs): reorganize docs into getting-started section
hcnimi Nov 1, 2025
2072286
refactor(docs): create guides section with how-to documentation
hcnimi Nov 1, 2025
28b5826
refactor(docs): create concepts section with explanation documentation
hcnimi Nov 1, 2025
aea3473
refactor(docs): create reference section with technical documentation
hcnimi Nov 1, 2025
530fb72
refactor(docs): integrate validation documentation into docs structure
hcnimi Nov 1, 2025
32670e4
refactor(docs): create contributing section for developers
hcnimi Nov 1, 2025
d214ee9
refactor(docs): rename ai_docs to .ai for clarity
hcnimi Nov 1, 2025
7f8fc8b
refactor(docs): update toc.yml with new documentation structure
hcnimi Nov 1, 2025
e392fe5
refactor(docs): update index.md with new documentation structure
hcnimi Nov 1, 2025
1fb8a47
refactor(docs): update root README to reflect new documentation struc…
hcnimi Nov 1, 2025
7ab5971
refactor(docs): update references to new documentation structure
hcnimi Nov 1, 2025
142c4da
refactor(docs): remove obsolete root documentation files
hcnimi Nov 1, 2025
b46364a
refactor(docs): remove old documentation files from docs/ directory
hcnimi Nov 1, 2025
7166263
release: bump version to 0.4.0
hcnimi Nov 1, 2025
5d1e1de
docs: correct attribution and ownership claims
hcnimi Nov 1, 2025
7a1f150
docs(workspace): document critical requirement for workspace version …
hcnimi Nov 1, 2025
9139899
clarify diff between init.sh and /specify
hcnimi Nov 1, 2025
e340bcf
update docs
hcnimi Nov 1, 2025
f2eb10c
fix: default to hcnimi/spec-kit main branch instead of github/spec-ki…
hcnimi Nov 1, 2025
f904579
feat(workspace): add git worktree support and idempotency
hcnimi Nov 1, 2025
5174641
feat(implement): integrate unified testing standards with pytest exam…
hcnimi Nov 2, 2025
3d6fe2f
feat(templates): integrate testing-quality-check skill references
hcnimi Nov 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions .ai/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# AI Agent Documentation

Documentation and context for AI agents working with Spec Kit.

## Overview

This directory contains information specifically for AI coding agents (Claude Code, GitHub Copilot, Gemini CLI, etc.) to help them understand and work effectively with the Spec-Driven Development workflow.

## Contents

- **[Library Gotchas](./library_gotchas.md)** - Common pitfalls and issues with various libraries and frameworks

## For AI Agents

When working with Spec Kit projects, AI agents should:

1. **Understand the three-phase workflow**
- Phase 1: Specification (requirements and constraints)
- Phase 2: Planning (architecture and technical decisions)
- Phase 3: Implementation (coding and validation)

2. **Respect the separation of concerns**
- Specifications define WHAT and WHY
- Plans define HOW
- Code implements according to plan

3. **Follow the constitution**
- Projects may have `memory/constitution.md` with project-specific principles
- Respect established patterns and decisions
- Document rationale for architectural choices

4. **Work atomically**
- For large features (>1000 LOC), decompose into capabilities
- Each capability should be 400-1000 LOC
- Create focused PRs for faster reviews

5. **Validate against specifications**
- Implementation must satisfy acceptance criteria
- Plans must address all requirements
- Tests must prove correctness

## Prompt Engineering Tips

When working with Spec Kit:

### For Specifications
```
Create a specification for [feature]. Include:
- What the feature must do (functional requirements)
- Performance and quality targets (non-functional requirements)
- What exists that we must integrate with (technical constraints)
- Testable acceptance criteria
```

### For Planning
```
Create an implementation plan for [feature] using [tech stack].
Include:
- Architecture decisions with rationale
- Technology choices justified by requirements
- Data models and schemas
- API designs
- Testing strategy
```

### For Implementation
```
Implement according to specs/[feature-id]/plan.md.
Ensure:
- All acceptance criteria are met
- Tests validate requirements
- Code follows established patterns
- Clear commit messages reference spec
```

## Context Loading

AI agents can load relevant context from:

1. **Product Vision** (`docs/product-vision.md`) - Strategic direction
2. **System Architecture** (`docs/system-architecture.md`) - Current architecture
3. **Constitution** (`memory/constitution.md`) - Project principles
4. **Specification** (`specs/[feature-id]/spec.md`) - Feature requirements
5. **Implementation Plan** (`specs/[feature-id]/plan.md`) - Technical approach

## Common Patterns

### Feature Addition
1. Read existing product vision and architecture
2. Create specification with `/specify`
3. Create implementation plan with `/plan`
4. Generate tasks with `/tasks`
5. Implement according to plan

### Brownfield Changes
1. Review existing architecture
2. Understand constraints from current system
3. Plan changes that respect existing patterns
4. Implement with minimal disruption

### Large Features
1. Create full specification
2. Use `/decompose` to break into capabilities
3. For each capability:
- Create focused plan
- Implement atomically
- Submit PR and merge
- Move to next capability

## Related

- [User Documentation](../docs/) - For developers using Spec Kit
- [Contributing](../contributing/) - For Spec Kit contributors
47 changes: 47 additions & 0 deletions .ai/ai_docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# AI Documentation Repository

This directory contains critical documentation and patterns that are frequently referenced during AI-assisted development. These files provide essential context that helps AI agents understand codebase-specific patterns, library quirks, and implementation guidelines.

## Purpose

When creating specifications and plans, AI agents need access to:
- Library-specific implementation patterns
- Codebase conventions and gotchas
- Custom utility documentation
- Framework-specific best practices

Files in this directory should be referenced in specifications using the `docfile` YAML format:

```yaml
- docfile: ai_docs/framework_patterns.md
why: Custom authentication patterns for this project
section: OAuth Implementation
```

## Organization

- **framework_patterns.md**: Patterns specific to the main framework/language
- **library_gotchas.md**: Known issues and workarounds for dependencies
- **custom_utils.md**: Documentation for project-specific utilities
- **integration_patterns.md**: Common integration patterns and examples

## Guidelines

1. **Keep focused**: Each file should address specific implementation needs
2. **Include examples**: Provide concrete code examples, not just descriptions
3. **Update regularly**: Keep documentation current with codebase changes
4. **Reference context**: Explain why patterns exist and when to use them

## Usage in Specifications

Reference these files in your specifications' "All Needed Context" section:

```yaml
Documentation & References:
- docfile: ai_docs/authentication_patterns.md
why: Custom JWT implementation with refresh token handling
section: Refresh Token Flow
gotcha: Tokens expire after 15 minutes, not the standard 1 hour
```

This ensures AI agents have the necessary context for successful implementation without needing to discover patterns throdos ugh trial and error.
53 changes: 53 additions & 0 deletions .ai/ai_docs/library_gotchas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Library Gotchas and Workarounds

This file documents known issues, quirks, and workarounds for libraries used in this project. Include specific version numbers and examples.

## Template Format

```markdown
## [Library Name] v[Version]

**Issue**: Brief description of the problem
**Gotcha**: What to watch out for
**Workaround**: How to handle it correctly
**Example**: Code snippet showing the right way

### Critical Issues
- List any breaking changes or major issues

### Common Mistakes
- List frequent errors developers encounter
```

## Example Entry

## FastAPI v0.104.1

**Issue**: Async functions required for database operations
**Gotcha**: Using sync database calls in async endpoints causes blocking
**Workaround**: Always use async database client methods
**Example**:
```python
# Wrong - blocks the event loop
@app.get("/users")
def get_users():
return db.query(User).all()

# Correct - non-blocking
@app.get("/users")
async def get_users():
return await db.execute(select(User))
```

### Critical Issues
- Pydantic v2 migration requires model_dump() instead of dict()
- Background tasks must be async if they access the database

### Common Mistakes
- Forgetting `await` with database operations
- Using sync functions in async contexts
- Not handling database connection cleanup

---

*Note: Add your library-specific gotchas below using the template format*
18 changes: 18 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Specify CLI Environment Variables Template
# Copy this file to .env and customize the values as needed

# Repository Configuration
# Override the default GitHub repository for template downloads
SPECIFY_REPO_OWNER=github
SPECIFY_REPO_NAME=spec-kit
SPECIFY_REPO_BRANCH=

# Repository Settings:
# - SPECIFY_REPO_OWNER: GitHub username/organization that owns the spec-kit repository
# - SPECIFY_REPO_NAME: Name of the repository containing the templates
# - SPECIFY_REPO_BRANCH: Specific branch to download from (uses latest release if empty)

# Examples:
# SPECIFY_REPO_OWNER=mycompany
# SPECIFY_REPO_NAME=custom-spec-kit
# SPECIFY_REPO_BRANCH=development
4 changes: 2 additions & 2 deletions .github/workflows/scripts/create-release-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ build_variant() {
fi
case $agent in
claude)
mkdir -p "$base_dir/.claude/commands"
generate_commands claude md "\$ARGUMENTS" "$base_dir/.claude/commands" "$script" ;;
mkdir -p "$base_dir/.claude/commands/spec-kit"
generate_commands claude md "\$ARGUMENTS" "$base_dir/.claude/commands/spec-kit" "$script" ;;
gemini)
mkdir -p "$base_dir/.gemini/commands"
generate_commands gemini toml "{{args}}" "$base_dir/.gemini/commands" "$script"
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,9 @@ env/
.env
.env.local
*.lock

.claude
.serena
CLAUDE.md
.specify
specs
40 changes: 40 additions & 0 deletions ATTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Attribution

## Original Source

This project is a fork of **[GitHub's spec-kit](https://github.com/github/spec-kit)**, created by:
- **Den Delimarsky** ([@localden](https://github.com/localden))
- **John Lam** ([@jflam](https://github.com/jflam))

The original spec-kit project introduced the foundational concepts of Spec-Driven Development and remains under MIT License with copyright held by GitHub, Inc.

## Fork Maintainer

**Current Fork:** [hcnimi/spec-kit](https://github.com/hcnimi/spec-kit)
**Maintained by:** Hubert Nimitanakit ([@hcnimi](https://github.com/hcnimi))

This fork has evolved with additional features including multi-repo workspace support, adaptive workflow modes, and capability-based atomic PRs.

## Influences & Inspirations

### PRPs (Prompt-Response Pairs)
- **Repository:** https://github.com/Wirasm/PRPs-agentic-eng
- **Author:** Wirasm
- **Influence:** Informed our approach to agentic engineering patterns and workflow structure

### OpenSpec
- **Repository:** https://github.com/Fission-AI/OpenSpec
- **Author:** Fission-AI
- **Influence:** Inspired the adaptive specification depth system (quick/lightweight/full modes) introduced in v0.4.0

## Methodology Attribution

The **Spec-Driven Development** methodology and core philosophy originate from research and work by John Lam at GitHub. This fork builds upon and extends that foundation while maintaining the original MIT License terms.

## License

This project maintains the MIT License from the original work. See [LICENSE](./LICENSE) for full terms.

---

**Last Updated:** 2025-11-01 (v0.4.0)
4 changes: 2 additions & 2 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ further defined and clarified by project maintainers.
## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <opensource@github.com>. All
complaints will be reviewed and investigated and will result in a response that
reported by opening a confidential issue at https://github.com/hcnimi/spec-kit/issues/new.
All complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Expand Down
5 changes: 3 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Here are a few things you can do that will increase the likelihood of your pull

- Follow the project's coding conventions.
- Write tests for new functionality.
- Update documentation (`README.md,` `spec-driven.md`) if your changes affect user-facing features.
- Update documentation (`README.md` and relevant files in `docs/`) if your changes affect user-facing features.
- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
- Test your changes with the Spec-Driven Development workflow to ensure compatibility.
Expand All @@ -47,7 +47,8 @@ When working on spec-kit:

## Resources

- [Spec-Driven Development Methodology](./spec-driven.md)
- [Spec-Driven Development Documentation](./docs/)
- [Contributing Guide (detailed)](./contributing/)
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
- [GitHub Help](https://help.github.com)
3 changes: 2 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
MIT License

Copyright GitHub, Inc.
Copyright (c) 2024-2025 Hubert Nimitanakit (hcnimi)
Based on original work Copyright GitHub, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include templates/commands/*.md
recursive-include templates *
Loading