Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
PDMT - Pragmatic Deterministic MCP Templating
A high-performance, deterministic templating library for Model Context Protocol (MCP) applications, designed for generating consistent, validated todo lists and structured content with quality enforcement.
๐ Features
- ๐ฏ Deterministic Generation: 0.0 temperature templating ensures reproducible outputs
- ๐ Todo Validation: Comprehensive validation with actionability checks, complexity scoring, and time estimates
- ๐ MCP Integration: Native support for Model Context Protocol via PMCP SDK
- ๐ก๏ธ Quality Gates: PMAT (Paiml MCP Agent Toolkit) integration for quality enforcement
- ๐งช Extensive Testing: 81%+ test coverage with property testing, fuzz testing, and edge case coverage
- โก High Performance: Optimized Handlebars engine with caching and validation
- ๐ฆ Multiple Formats: Support for YAML, JSON, Markdown, and plain text output
- ๐ Dependency Analysis: Circular dependency detection and critical path calculation
๐ Quick Start
Add PDMT to your Cargo.toml:
[]
= "1.0.0"
# Optional features
= { = "1.0.0", = ["quality-proxy", "mcp-tools", "todo-validation"] }
Basic Usage
use ;
async
Advanced Features
Todo Validation
use ;
let validator = new;
let mut todo_list = new;
// Add todos...
todo_list.add_todo;
let validation_result = validator.validate_todo_list;
if validation_result.is_valid else
๐๏ธ Architecture
PDMT is built with a modular architecture:
- Template Engine: Handlebars-based deterministic generation
- Content Models: Todo lists, generated content, and metadata
- Quality Proxy: PMAT integration for quality enforcement
- MCP Integration: Native Model Context Protocol support
- Validators: Comprehensive validation for todos and content
๐ฏ Feature Flags
[]
= {
version = "1.0.0",
= [
"quality-proxy", # PMAT quality enforcement
"mcp-tools", # MCP/PMCP integration
"todo-validation", # Advanced todo validation
"property-tests", # Property testing support
]
}
๐ YAML Template System
PDMT uses a powerful YAML-based template system for deterministic content generation:
Template Structure
# Basic template structure
id: todo_list
version: "1.0.0"
extends: base # Optional inheritance
metadata:
provider: "deterministic"
description: "Generate deterministic todo lists"
parameters:
temperature: 0.0 # Ensures deterministic output
input_schema:
type: object
required:
properties:
project_name:
type: string
description: "Name of the project"
requirements:
type: array
items:
type: string
description: "List of requirements to convert to tasks"
granularity:
type: string
enum:
default: "high"
validation:
deterministic_only: true
quality_gates:
max_complexity_per_task: 8
require_time_estimates: true
require_specific_actions: true
min_task_detail_chars: 10
max_task_detail_chars: 100
prompt_template: |
Generate a deterministic todo list for "{{project_name}}".
Requirements:
{{#each requirements}}
- {{this}}
{{/each}}
Built-in Templates
PDMT provides several built-in templates:
| Template ID | Description | Use Case |
|---|---|---|
todo_list |
Deterministic todo generation | Project planning, task breakdown |
project_scaffold |
Project structure generation | New project setup |
base |
Base template for inheritance | Template extension |
Custom Templates
Create custom templates by extending the base template:
# custom_template.yml
id: custom_engineering_todos
version: "1.0.0"
extends: todo_list
metadata:
description: "Engineering-specific todo generation"
validation:
quality_gates:
require_test_specifications: true
require_documentation: true
enforce_dependency_tracking: true
output_schema:
format: yaml
structure: |
todos:
- id: string
content: string
estimated_hours: number
test_requirements: [string]
documentation_requirements: [string]
Loading Templates
use TemplateEngine;
let mut engine = new;
// Load built-in templates
engine.load_builtin_templates.await?;
// Load custom template from file
engine.load_template_file.await?;
// Load template from string
let yaml_content = read_to_string?;
engine.load_template?;
๐ Examples
The examples/ directory contains comprehensive examples demonstrating PDMT's deterministic templating capabilities:
๐ Todo Generation
Generate deterministic, quality-enforced todo lists for project planning:
๐ Resume Builder
Create professional resumes with consistent formatting:
# Interactive mode for detailed input
๐ README Builder
Generate well-structured README files with standardized sections:
# Interactive mode for guided setup
Each example demonstrates:
- Deterministic output - Same inputs always produce identical results
- YAML templating - Structured templates for consistent formatting
- Quality enforcement - Validation and best practices built-in
- Multiple output formats - Support for various file formats
๐ก๏ธ Quality Enforcement
PDMT integrates with PAIML's quality gate system for comprehensive validation:
Quality Gates
| Quality Check | Description | Threshold |
|---|---|---|
| Actionability | Tasks must start with action verbs | 100% required |
| Complexity | Cyclomatic complexity limits | Max score: 8 |
| Time Estimates | Realistic effort estimation | 0.5-40 hours |
| Length Validation | Task description constraints | 10-100 chars |
| Dependency Tracking | Circular dependency detection | Zero cycles |
| SATD Detection | No TODO/FIXME/HACK comments | Zero tolerance |
Validation Example
use ;
// Configure quality requirements
let config = TodoQualityConfig ;
let validator = with_config;
let todo_list = new;
// Validate todos
let result = validator.validate_todo_list;
// Check quality metrics
println!;
println!;
๐งช Testing & Quality
PDMT maintains high quality standards:
- 81%+ Test Coverage: Comprehensive test suite
- Fuzz Testing: Automated robustness testing
- Property Testing: Invariant verification
- Strict Linting: clippy::pedantic + clippy::nursery
# Run tests with coverage
# Run all quality checks
# Run linting
# Run formatting
# Generate coverage report
๐ค Contributing
We welcome contributions! Areas include:
- ๐ Bug Fixes
- โจ New Features
- ๐ Documentation
- ๐งช Testing
Development Setup
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Support
- Documentation: docs.rs/pdmt
- Issues: GitHub Issues