Warping Framework
A layered framework for AI-assisted development with consistent standards and workflows.
When This Skill Activates
This skill automatically loads when you:
- Start work in a warping-enabled project (has
./warping/directory) - Reference warping, project standards, or coding conventions
- Run tests, make commits, or perform quality checks
- Ask about project structure, workflows, or best practices
Core Principle: Rule Precedence
Warping uses hierarchical rules where more specific overrides general:
user.md ← HIGHEST precedence (personal preferences)
↓
project.md ← Project-specific rules
↓
{language}.md ← Language standards (python.md, go.md, typescript.md, cpp.md)
↓
{tool}.md ← Tool guidelines (taskfile.md, git.md)
↓
main.md ← General AI behavior
↓
specification.md ← LOWEST precedence (requirements)
IMPORTANT: If user.md says one thing and python.md says another, user.md ALWAYS wins.
File Reading Strategy (Lazy Loading)
DO NOT read all warping files at once. Read only what you need:
- Always start with:
./warping/main.md(general guidelines) - Check for:
./warping/core/user.md(personal overrides - highest precedence) - Check for:
./warping/core/project.md(project-specific rules) - Then read language-specific only if working with that language:
./warping/languages/python.md./warping/languages/go.md./warping/languages/typescript.md./warping/languages/cpp.md
- Read tool files only when using that tool:
./warping/tools/taskfile.md(when running tasks)./warping/scm/git.md(when using git)./warping/scm/github.md(when using GitHub)
Task-Centric Workflow
Warping projects use Taskfile as the universal task runner.
Discovery
task --list # See all available tasks
task # Same as task --list
Common Tasks
task check # Pre-commit checks (fmt, lint, test, coverage)
task test # Run tests
task test:coverage # Run with coverage
task fmt # Format code
task lint # Lint code
task build # Build project
task clean # Clean artifacts
CRITICAL: Before commits, ALWAYS run task check. Never claim checks passed without running them.
Test-Driven Development (TDD)
Warping embraces TDD by default:
- Write test first - Define expected behavior
- Watch it fail - Confirm test fails correctly
- Implement - Write minimal code to pass
- Refactor - Improve while keeping tests green
- Repeat - Build incrementally
Coverage Requirements:
- Default: ≥85% coverage (overall + per-module)
- Check
project.mdfor project-specific thresholds - Never claim coverage passes without running
task test:coverage
Spec-Driven Development (SDD)
For new features or projects:
- Build PRD.md - Run
warping.sh specto create Product Requirements Document - AI Interview - Answer focused questions to clarify requirements
- PRD.md Review - Let user review/change PRD.md if they want
- Generate SPECIFICATION.md - use PRD.md + Warping rules to build a complete spec with phases, dependencies, and tasks
- SPECIFICATION.md review -- Let user review/change SPECIFICATION.md if they want
- Implement - Build according to spec, following all applicable warping rules
Quality Standards
Before Every Commit
task check # MUST run this
This typically includes:
- Code formatting
- Linting
- Type checking
- Tests with coverage
- Any project-specific checks
Conventional Commits
ALL commits must follow https://www.conventionalcommits.org/en/v1.0.0/:
feat: add new feature
fix: resolve bug
docs: update documentation
chore: routine tasks
test: add/update tests
refactor: code restructuring
File Naming
- Use hyphens in filenames, not underscores
- Example:
user-service.pyNOTuser_service.py - Exception: Language conventions (Python modules can use underscores in code)
Secrets Management
- Store secrets in
secrets/directory - Provide
.exampletemplates - Never commit actual secrets
- Use environment variables in code
Language-Specific Standards
Python
- Testing: pytest, ≥85% coverage
- Style: ruff, black, isort (PEP 8)
- Types: mypy strict mode
- Docs: PEP 257 docstrings
Go
- Testing: Testify, ≥85% coverage
- Docs: go.dev/doc/comment
- Patterns: table-driven tests, interface design
TypeScript
- Testing: Vitest/Jest, ≥85% coverage
- Style: ESLint, Prettier
- Types: strict mode, no
any
C++
- Testing: Catch2/GoogleTest, ≥85% coverage
- Standard: C++20/23
- Style: clang-format, clang-tidy
New Project Workflow
When user says "start a new project with warping", "use warping to build X", or similar, follow this complete workflow:
Step 1: Initialize Warping Structure
./warping.sh init
- Creates
./warping/directory with framework files - Sets up
secrets/directory - Creates basic
Taskfile.yml - Adds
.gitignorefor secrets
Step 2: User Configuration (First Time Only)
Check if ./warping/core/user.md exists. If not:
./warping.sh bootstrap
- Prompts for user name
- Sets default coverage threshold
- Configures primary languages
- Creates personalized
user.md
Step 3: Project Configuration
./warping.sh project
- Prompts for project name
- Selects project type (CLI, TUI, REST API, Web App, Library, Other)
- Chooses primary language
- Sets coverage threshold
- Creates
project.mdwith standards
Step 4: Specification-Driven Development
./warping.sh spec
This launches the full SDD workflow:
a) Generate PRD.md:
- Prompts for project name, description, and initial features
- Creates
PRD.mdwith structured template - Displays full path to PRD.md
b) Conduct AI Interview:
- Read the PRD.md thoroughly
- Ask focused, non-trivial questions to clarify:
- Missing decisions and edge cases
- Implementation details and architecture
- UX considerations and constraints
- Dependencies and tradeoffs
- Each question should have numbered options plus "other"
- Continue until ambiguity is minimized
c) User Review of PRD:
- Let user review/edit PRD.md if they want
- Wait for confirmation before proceeding
d) Generate SPECIFICATION.md:
- Use PRD.md + warping rules to create complete implementation spec
- Include clear phases, subphases, and tasks
- Map dependencies (what blocks what)
- Identify parallel work opportunities
- NO code in specification - just the plan
e) User Review of Specification:
- Let user review/edit SPECIFICATION.md if they want
- Wait for confirmation before implementation
f) Begin Implementation:
- Follow the SPECIFICATION.md plan
- Apply all warping rules (TDD, quality standards, task-centric)
- Maintain ≥85% coverage
- Run
task checkbefore each commit - Use Conventional Commits format
Step 5: Development Cycle
- Write tests first (TDD)
- Implement features incrementally
- Run
task checkfrequently - Commit with proper format
- Push changes
Project Initialization (Quick Reference)
For New Projects (Full Workflow)
Use the "New Project Workflow" above when starting from scratch.
For Existing Warping Projects
- Check for
./warping/directory - Read
./warping/main.mdfor general guidelines - Read
./warping/core/user.mdfor user preferences - Read
./warping/core/project.mdfor project rules - Run
task --listto see available tasks
For New Features in Existing Projects
- Consider running
./warping.sh specfor complex features - Follow SDD process (PRD → Interview → Specification → Implement)
- Or for simple features, just follow TDD directly
Self-Improvement Mechanism
Warping learns and evolves:
meta/lessons.md- Patterns learned during development (AI can update)meta/ideas.md- Future improvements noti