create-saltic
Version:
Spec-Driven Development (SDD) framework for constitutional software development - inject into any project
147 lines (105 loc) • 4.59 kB
Markdown
# Saltic Spec-Driven Development (SDD) Framework
A structured approach to software development through specifications, plans, and tasks. This framework provides tools and templates for following a constitutional development methodology.
## Installation
### Prerequisites
- Node.js (v14 or higher)
- npm (comes with Node.js)
- Git
- Claude Code with MCP tools enabled
- Figma Dev Mode MCP
- Context7
### Setup with npx
```bash
# Use npx to inject Saltic SDD Framework into any project
npx create-saltic@latest
# Or inject into a specific directory
npx create-saltic@latest inject --dir /path/to/project
# Initialize a new project with Saltic SDD Framework
mkdir my-project && cd my-project
npx create-saltic@latest
```
## Quick Start
```bash
# Inject framework into current project
npx create-saltic@latest
# Check framework status
npx create-saltic@latest status
# After injection, check CLAUDE.md for usage guidance
```
## Using Claude Code with Saltic SDD Framework
After injecting the Saltic SDD Framework into your project, you can use Claude Code's custom commands:
### Available Commands
- **/specify** - Create feature specifications
- **/plan** - Create technical implementation plan
- **/tasks** - Break down and implement features
### Quick Start
```bash
# 1. Initialize project
npx create-saltic init my-project
cd my-project
# 2. Create specification
/specify Build an application that can help me organize my photos in separate photo albums.
# 3. Create technical plan
/plan The application uses Vite with minimal libraries. Use vanilla HTML, CSS, and JavaScript.
# 4. Generate tasks
/tasks
```
## Development Workflow
The framework follows a strict Spec-Driven Development lifecycle:
1. **Specify**: Define feature requirements and user stories
2. **Plan**: Create implementation plan and design artifacts
3. **Tasks**: Generate numbered, ordered tasks from the plan
4. **Implement**: Execute tasks following constitutional principles
5. **Validate**: Run tests and verify acceptance criteria
## Key Commands
### Framework Management
```bash
# Inject framework into current project
npx create-saltic@latest inject
# Check framework status
npx create-saltic@latest status
# Remove framework from project
npx create-saltic@latest remove
```
### Feature Management
Check CLAUDE.md for usage guidance after injecting the framework.
## File Structure After Injection
```
your-project/
├── .claude/ # Framework configuration and commands
│ └── commands/ # Command definitions
├── memory/ # Constitution and governance documents
├── templates/ # Standardized templates
├── scripts/ # Feature management scripts
├── specs/ # Feature specifications
│ └── [feature-branch]/ # Feature-specific files
└── .gitignore # Updated to ignore .claude/
```
## Development Principles
### Constitutional Development
All features must comply with the constitution (`memory/constitution.md`):
- **Library-First**: Every feature starts as a standalone library
- **CLI Interface**: All libraries expose functionality via CLI
- **Test-First**: TDD is mandatory - tests must fail before implementation
- **Integration Testing**: Required for new libraries, contract changes, and shared schemas
- **Observability**: Structured logging and error context required
- **Versioning**: MAJOR.MINOR.BUILD format with breaking change handling
- **Context7 Documentation Integration**: Always use context7 tools for external library documentation
### Branch Naming Convention
Feature branches must follow the pattern: `<git:branchname>-<git:name>-<featurename>` (e.g., `WEC0101-BUDI-authentication`)
## Framework Features
### What the CLI Does
When you run `npx create-saltic@latest inject`, the CLI:
1. **Creates Directory Structure**: Sets up `.claude/`, `memory/`, `templates/`, and `scripts/` directories
2. **Copies Framework Files**: Injects all necessary templates, commands, and scripts to project root
3. **Updates Project Files**:
- Adds `.claude/` to `.gitignore`
- Creates `specs/` directory for feature specifications
4. **Sets Up Git**: Creates proper directory structure for feature branches
### Available Commands
- `inject`/`init`: Inject framework into current project
- `status`: Check framework installation status
- `remove`: Remove framework from current project
### After Injection
Once injected, use the framework through:
- **Claude Code**: Use CLAUDE.md for AI-assisted development