Skills-first specification-driven development - automatic spec creation, lifecycle management, progress tracking, and PR generation
Project description
Quaestor
A minimal Claude Code plugin for specification-driven development
Quaestor is a Claude Code plugin that provides Skills and slash commands for specification-driven development. Write lightweight specs, implement with context, ship with confidence.
Design Principles:
- Zen - Minimal surface area, maximum utility
- Engineer as Driver - You make decisions, Quaestor provides structure
- Light Spec-Driven - Just enough specification to stay aligned
NOTE: Quaestor has been many things, but mainly a learning sandbox for me. Nowadays, it's a tool that I and a small number of people use. From 1.0 forward, Quaestor will be boring and stable. New features will be planned and added as Anthropic releases new features for Claude Code. This is all to say that Quaestor is "feature complete," and hardly any skills, sub-agents, or commands will be added. I've gotta get back to work, and so do you.
What's Included
7 Skills (auto-activate based on context):
managing-specifications- Create and manage specificationsimplementing-features- Implement features with quality gatesreviewing-and-shipping- Code review and PR generationdebugging-issues- Systematic bug investigationsecurity-auditing- Security analysis and vulnerability detectionoptimizing-performance- Performance profiling and optimizationinitializing-project- Setup Quaestor in any project
3 Slash Commands:
/plan- Create specifications/implement- Implement specs with tracking/research- Explore codebase patterns
Spec Lifecycle:
- Folder-based state:
draft/→active/→completed/ - Automatic progress tracking via checkboxes
- Max 3 active specs (enforced)
Installation
As a Claude Code Plugin (Recommended)
First, add the Quaestor marketplace:
/plugin marketplace add jeanluciano/quaestor
Then install the plugin:
/plugin install quaestor:quaestor
See Claude Code plugins documentation for details.
Via pip/uv (Project-Level)
For project-level installation:
pip install quaestor
# or
uv pip install quaestor
Then initialize in your project:
quaestor init
Quick Start
# Install the plugin
claude plugins install quaestor
# In Claude Code, create a spec
/plan "User authentication with JWT"
# Implement it
/implement spec-auth-001
# Ship it
"Create a pull request for spec-auth-001"
Skills activate automatically based on what you're doing. Just describe what you want in natural language:
- "Show my active specs" → managing-specifications skill
- "Debug the login failure" → debugging-issues skill
- "Review this code for security issues" → security-auditing skill
How It Works
Specifications
Create lightweight specifications that define:
- What you're building (title and description)
- Why you're building it (motivation)
- What success looks like (acceptance criteria as checkboxes)
Specs live in .quaestor/specs/ and move through folders as they progress:
.quaestor/specs/
├── draft/ # Planned work
├── active/ # In progress (max 3)
└── completed/ # Finished
Skills
Skills are auto-activating workflows that trigger based on context. You don't invoke them directly - just describe what you want:
- Want to plan? Say "create a spec for X" → managing-specifications activates
- Want to implement? Use
/implement spec-id→ implementing-features activates - Want to ship? Say "create a PR" → reviewing-and-shipping activates
Example Session
# Create a spec
/plan "Add rate limiting to API endpoints"
# → spec-feature-042.md created in draft/
# Start implementing
/implement spec-feature-042
# → Skills guide you through implementation with quality checks
# Check progress
"What's the status of spec-feature-042?"
# → "spec-feature-042: 3/5 criteria complete (60%)"
# Ship it
"Create a pull request for spec-feature-042"
# → PR created with spec context included
Documentation
Contributing
git clone https://github.com/jeanluciano/quaestor.git
cd quaestor
pip install -e .
pytest
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quaestor-1.0.0b1.tar.gz.
File metadata
- Download URL: quaestor-1.0.0b1.tar.gz
- Upload date:
- Size: 176.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3630ed4975a7f442b27ad817c23a681a0d3cb7e11d0ef9f2e2b2b6b6cab6e31
|
|
| MD5 |
c547583b44b4ec6b66b1ceda7e8e4049
|
|
| BLAKE2b-256 |
5236538e5a3ca7032be6cec4014467872cfc574d5060c16e38319dbcb169a20f
|
Provenance
The following attestation bundles were made for quaestor-1.0.0b1.tar.gz:
Publisher:
publish.yml on jeanluciano/quaestor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quaestor-1.0.0b1.tar.gz -
Subject digest:
c3630ed4975a7f442b27ad817c23a681a0d3cb7e11d0ef9f2e2b2b6b6cab6e31 - Sigstore transparency entry: 625350189
- Sigstore integration time:
-
Permalink:
jeanluciano/quaestor@f5436c02a1f1eeaa3e2374d52f41f2810a991040 -
Branch / Tag:
refs/tags/v1.0.0-beta.1 - Owner: https://github.com/jeanluciano
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f5436c02a1f1eeaa3e2374d52f41f2810a991040 -
Trigger Event:
release
-
Statement type:
File details
Details for the file quaestor-1.0.0b1-py3-none-any.whl.
File metadata
- Download URL: quaestor-1.0.0b1-py3-none-any.whl
- Upload date:
- Size: 211.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a553d207b49bc1ba47350f8080e0584042ae381f9ad977dcaf91955e88457d1
|
|
| MD5 |
2072fc7f30e409857098976bd18a1ba5
|
|
| BLAKE2b-256 |
4b445fe42167ef9188e79e6073fba5b4656971615ad3e539c7863bb9091c32bc
|
Provenance
The following attestation bundles were made for quaestor-1.0.0b1-py3-none-any.whl:
Publisher:
publish.yml on jeanluciano/quaestor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quaestor-1.0.0b1-py3-none-any.whl -
Subject digest:
7a553d207b49bc1ba47350f8080e0584042ae381f9ad977dcaf91955e88457d1 - Sigstore transparency entry: 625350235
- Sigstore integration time:
-
Permalink:
jeanluciano/quaestor@f5436c02a1f1eeaa3e2374d52f41f2810a991040 -
Branch / Tag:
refs/tags/v1.0.0-beta.1 - Owner: https://github.com/jeanluciano
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f5436c02a1f1eeaa3e2374d52f41f2810a991040 -
Trigger Event:
release
-
Statement type: