pdmt 1.0.0

High-performance, deterministic templating library for Model Context Protocol (MCP) applications with comprehensive todo validation and quality enforcement
docs.rs failed to build pdmt-1.0.0
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

Crates.io Documentation Build Status Coverage License: MIT

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:

[dependencies]
pdmt = "1.0.0"

# Optional features
pdmt = { version = "1.0.0", features = ["quality-proxy", "mcp-tools", "todo-validation"] }

Basic Usage

use pdmt::{TemplateEngine, models::todo::TodoInput};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create template engine
    let mut engine = TemplateEngine::new();
    engine.load_builtin_templates().await?;
    
    // Create todo input
    let input = TodoInput {
        project_name: "My Project".to_string(),
        requirements: vec![
            "Implement user authentication".to_string(),
            "Create REST API endpoints".to_string(),
            "Add comprehensive tests".to_string(),
        ],
        granularity: pdmt::models::todo::TodoGranularity::High,
        include_estimates: true,
        max_todos: Some(10),
        ..Default::default()
    };
    
    // Generate deterministic todo list
    let result = engine.generate("todo_list", input).await?;
    
    println!("Generated todos:\n{}", result.content);
    println!("Template used: {}", result.template_id);
    
    Ok(())
}

Advanced Features

Todo Validation

use pdmt::{validators::todo::TodoValidator, models::todo::TodoList};

let validator = TodoValidator::new();
let mut todo_list = TodoList::new();

// Add todos...
todo_list.add_todo(Todo::new("Implement authentication system"));

let validation_result = validator.validate_todo_list(&todo_list);

if validation_result.is_valid {
    println!("โœ… All todos are valid!");
    println!("Quality score: {:.2}", validation_result.quality_score);
} else {
    println!("โŒ Validation issues found:");
    for issue in validation_result.issues {
        println!("  - {}: {}", issue.category, issue.message);
    }
}

๐Ÿ—๏ธ 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

[dependencies]
pdmt = { 
    version = "1.0.0", 
    features = [
        "quality-proxy",     # PMAT quality enforcement
        "mcp-tools",        # MCP/PMCP integration  
        "todo-validation",  # Advanced todo validation
        "property-tests",   # Property testing support
    ]
}

๐Ÿ“– Examples

The examples/ directory contains comprehensive examples:

  • todo_generation.rs - Basic todo list generation

Run examples with:

cargo run --example todo_generation --features="all"

๐Ÿงช 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
make test

# Run linting  
make lint

# Run formatting
make format

๐Ÿค Contributing

We welcome contributions! Areas include:

  • ๐Ÿ› Bug Fixes
  • โœจ New Features
  • ๐Ÿ“š Documentation
  • ๐Ÿงช Testing

Development Setup

git clone https://github.com/noahgift/pdmt
cd pdmt
cargo build --all-features
make test

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“ž Support