AI-assisted development context management tool for maintaining consistency and productivity
Project description
Quaestor
๐๏ธ Context management for AI-assisted development
Quaestor provides intelligent context management and quality enforcement for AI assistants, with flexible modes for personal and team projects. Version 0.4.4 brings improved installation experience, manifest support for personal mode, enhanced hook integration, and Nix support.
[!NOTE] Approaching 1.0 Release: Quaestor is maturing and stabilizing. As we approach version 1.0, expect fewer breaking changes and a focus on refining existing features rather than adding new ones. Future feature development will primarily occur in the optional A1Context add-on, keeping the core Quaestor package lean and stable.
Why Quaestor?
AI assistants like Claude are powerful but need context. Quaestor provides:
- ๐ง Smart Context - Automatically adjusts rules based on project complexity
- ๐ฏ Flexible Modes - Personal mode for solo work, team mode for collaboration
- โ๏ธ Command Customization - Override and configure commands per project
- ๐ Progress Tracking - Maintain project memory and milestones
- โ Quality Enforcement - Ambient rules that work outside commands
Quick Start
# Personal mode (default) - Everything local to your project
uvx quaestor init
# Team mode - Shared commands, committed rules
uvx quaestor init --mode team
Personal Mode (Default)
Creates a self-contained setup in your project:
project/
โโโ CLAUDE.md # Context-aware rules in project root
โโโ .claude/ # Configuration only
โ โโโ settings.local.json # Local hooks config (not committed)
โโโ .quaestor/ # Documentation, memory & hooks (gitignored)
โ โโโ ARCHITECTURE.md
โ โโโ MEMORY.md
โ โโโ PATTERNS.md
โ โโโ VALIDATION.md
โ โโโ AUTOMATION.md
โ โโโ manifest.json # Version tracking for updates
โ โโโ hooks/ # Hook scripts
โ โโโ workflow/
โ โโโ validation/
โโโ ~/.claude/commands/ # Personal commands (global)
โ โโโ task.md
โ โโโ status.md
โ โโโ analyze.md
โ โโโ milestone.md
โ โโโ check.md
โ โโโ auto-commit.md
โ โโโ milestone-pr.md
โ โโโ project-init.md
โโโ .gitignore # Auto-updated (.quaestor/, .claude/settings.local.json)
Team Mode
For shared projects with consistent standards:
project/
โโโ CLAUDE.md # Team rules (committed)
โโโ .claude/ # Project configuration
โ โโโ commands/ # Project commands (shared with team)
โ โ โโโ task.md
โ โ โโโ status.md
โ โ โโโ analyze.md
โ โ โโโ milestone.md
โ โ โโโ check.md
โ โ โโโ auto-commit.md
โ โ โโโ milestone-pr.md
โ โ โโโ project-init.md
โ โโโ settings.json # Hooks configuration
โโโ .quaestor/ # Shared documentation (committed)
โ โโโ QUAESTOR_CLAUDE.md
โ โโโ CRITICAL_RULES.md
โ โโโ ARCHITECTURE.md
โ โโโ MEMORY.md
โ โโโ PATTERNS.md
โ โโโ VALIDATION.md
โ โโโ AUTOMATION.md
โ โโโ manifest.json # Version tracking
โ โโโ hooks/ # Hook scripts
โ โโโ workflow/
โ โโโ validation/
โโโ .gitignore # NOT modified by Quaestor (team decides)
Now Claude can use commands with project-specific behavior:
/task: implement user authentication
/status
/configure
Installation
Using uvx (Recommended)
# No install needed
uvx quaestor init
Using pip
# Install globally
pip install quaestor
Using Nix
# Run directly with Nix flakes
nix run github:jeanluciano/quaestor -- init
# Add to your flake.nix for project integration
{
inputs = {
quaestor.url = "github:jeanluciano/quaestor";
# ... other inputs
};
outputs = { self, quaestor, ... }: {
# Use quaestor.packages.${system}.default
# Or quaestor.apps.${system}.default
};
}
# For development with Nix
nix develop github:jeanluciano/quaestor
Commands
CLI Commands:
quaestor init- Initialize with smart defaults--mode personal(default) - Local, self-contained setup--mode team- Shared commands and rules--contextual(default) - Analyze project complexity
quaestor configure- Customize command behavior--init- Create command configuration--command <name> --create-override- Override specific commands
quaestor update- Update while preserving your changes
AI Assistant Commands:
/task- Implement features with orchestration/status- Show progress with velocity tracking/analyze- Code analysis across multiple dimensions/milestone- Manage phases with completion detection/check- Quality validation and fixing/auto-commit- Conventional commits for TODOs/milestone-pr- Automated PR creation/project-init- Framework detection and project setup
Key Features
๐ง Context-Aware Commands
Quaestor commands use patterns for better Claude integration:
- Auto-activation โ Context-aware triggers and thresholds
- Performance profiling โ Standard, optimization, and complex execution modes
- Quality gates โ Error fixing with parallel agents
- Token efficiency โ Reduction through symbol system
Rules work ambiently in CLAUDE.md, not just in commands!
โ๏ธ Command Customization
Configure commands per project with .quaestor/command-config.yaml:
commands:
task:
enforcement: strict
parameters:
minimum_test_coverage: 90
max_function_lines: 30
custom_rules:
- "All APIs must have OpenAPI specs"
- "Database changes require migrations"
Or create full overrides in .quaestor/commands/task.md.
๐ฏ Flexible Modes
Installation modes determine where files are stored:
Personal Mode (Default):
- Commands installed globally in
~/.claude/commands/(marked as "(user)") - Local settings in
.claude/settings.local.json(not committed) - CLAUDE.md in project root for easy discovery
- All Quaestor files in
.quaestor/(gitignored) - Manifest tracking enables updates via
quaestor init
Team Mode:
- Commands in
.claude/commands/(marked as "(project)", shared with team) - Settings in
.claude/settings.json(committed) - CLAUDE.md in project root with team standards
- All Quaestor files in
.quaestor/(committed) - No gitignore modifications (team controls what to track)
Note: Both modes support all command complexity levels. Mode choice is about file organization, not project complexity.
๐ Smart Project Analysis
- Auto-detects language (Python, Rust, JS/TS, Go, Java, etc.)
- Identifies test frameworks and CI/CD
- Recognizes team markers (CODEOWNERS, PR templates)
- Calculates complexity score
๐ Workflow Orchestration
Adaptive workflow based on scope:
- Direct execution: <10 files โ Read + Edit operations
- Parallel agents: 10-50 files โ Multi-agent coordination
- Complex systems: >50 files โ Systematic agent delegation
- Quality cycles: Execute โ Validate โ Fix โ Complete
- Auto-escalation: Complexity threshold triggers
๐ Command Complexity Thresholds
Commands adapt their behavior based on task complexity (0.0-1.0):
- Standard (0.2-0.4): Quick, focused operations (e.g.,
/status,/milestone) - Optimization (0.4-0.6): Balanced efficiency with smart features (e.g.,
/check) - Complex (0.6-0.8): Full orchestration and deep analysis (e.g.,
/task,/analyze)
Thresholds control: auto-activation features, parallel processing, quality gates, and error recovery.
Recent Updates (v0.4.4)
- Improved Installation Experience:
- Personal mode: Commands now install globally as personal commands
- Personal mode: Uses
settings.local.jsonto keep configuration private - Team mode: Commands install as project commands in
.claude/commands/ - Both modes: Hooks now always install to
.quaestor/hooks/
- Manifest Support for Personal Mode - Enables
quaestor initto check for updates - Enhanced Hook Integration - Hooks now properly call automation module
- Better File Organization - Cleaner separation between personal and team modes
- No Forced Gitignore - Team mode no longer modifies gitignore
How It Works
- Project Analysis - Scans for language, tests, complexity
- Context Generation - Creates appropriate CLAUDE.md rules
- Command Setup - Installs commands (local or global)
- Customization - Allows per-project overrides
- Smart Updates - Preserves your changes
Example Workflows
- Simple tasks: Direct implementation with quality validation
- Complex tasks: Orchestrated workflow with parallel agents and quality gates
- Auto-tracking: Progress updates and conventional commits
Command Customization
quaestor configure --init # Create config
Edit .quaestor/command-config.yaml to add project-specific rules and enforcement levels.
Ambient Rule Enforcement
Quaestor's rules work everywhere in CLAUDE.md, not just in commands. Rules guide Claude's behavior for complexity checking, delegation triggers, and quality standards across all interactions.
Updating
# Check what would change
quaestor update --check
# Update with backup
quaestor update --backup
# Force update all files
quaestor update --force
Updates preserve your customizations in user-editable files.
What's Coming Next
We're working on A1 (Automatic Intelligence), a next-generation system that will bring:
- Event-driven architecture for improved performance
- Enhanced learning and adaptation capabilities
- Simplified codebase with modular extensions
- Advanced pattern recognition and workflow detection
A1 is currently in development and not yet ready for production use.
Contributing
git clone https://github.com/jeanluciano/quaestor.git
cd quaestor
uv sync
uv run 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-0.5.0.tar.gz.
File metadata
- Download URL: quaestor-0.5.0.tar.gz
- Upload date:
- Size: 128.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6d084cbb2e1aa9066ece9a20c13158f062c94ff7209e6e52b756a5e80007766
|
|
| MD5 |
3f89eee79d4404a7c9dcb297e1a06e22
|
|
| BLAKE2b-256 |
35ab828c6f2c74e80fd58d22921d7aaa517926facf158d9e8723fe75df8d91e8
|
Provenance
The following attestation bundles were made for quaestor-0.5.0.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-0.5.0.tar.gz -
Subject digest:
e6d084cbb2e1aa9066ece9a20c13158f062c94ff7209e6e52b756a5e80007766 - Sigstore transparency entry: 293502734
- Sigstore integration time:
-
Permalink:
jeanluciano/quaestor@7c7bc819af6431cc5ce1054ca86722f5b4c9c3d5 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/jeanluciano
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c7bc819af6431cc5ce1054ca86722f5b4c9c3d5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file quaestor-0.5.0-py3-none-any.whl.
File metadata
- Download URL: quaestor-0.5.0-py3-none-any.whl
- Upload date:
- Size: 136.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
933803ac3d488b0a108ef61c16c5c45cfe970e45b863ecf1d5c24a60693e7c54
|
|
| MD5 |
aeddb1464df7b8dcff3306f0d7c5e296
|
|
| BLAKE2b-256 |
511c552edf50e88b9c9aa7222fd4c18c69afc8d214f9fc15781504a557e8dffc
|
Provenance
The following attestation bundles were made for quaestor-0.5.0-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-0.5.0-py3-none-any.whl -
Subject digest:
933803ac3d488b0a108ef61c16c5c45cfe970e45b863ecf1d5c24a60693e7c54 - Sigstore transparency entry: 293502739
- Sigstore integration time:
-
Permalink:
jeanluciano/quaestor@7c7bc819af6431cc5ce1054ca86722f5b4c9c3d5 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/jeanluciano
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c7bc819af6431cc5ce1054ca86722f5b4c9c3d5 -
Trigger Event:
release
-
Statement type: