pdmt 1.0.0

High-performance, deterministic templating library for Model Context Protocol (MCP) applications with comprehensive todo validation and quality enforcement
# PDMT - Pragmatic Deterministic MCP Templating

[![Crates.io](https://img.shields.io/crates/v/pdmt.svg)](https://crates.io/crates/pdmt)
[![Documentation](https://docs.rs/pdmt/badge.svg)](https://docs.rs/pdmt)
[![Build Status](https://github.com/noahgift/pdmt/workflows/CI/badge.svg)](https://github.com/noahgift/pdmt/actions)
[![Coverage](https://codecov.io/gh/noahgift/pdmt/branch/main/graph/badge.svg)](https://codecov.io/gh/noahgift/pdmt)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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`:

```toml
[dependencies]
pdmt = "1.0.0"

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

### Basic Usage

```rust
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

```rust
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

```toml
[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:

```bash
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

```bash
# 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

```bash
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](LICENSE) file for details.

## ๐Ÿ“ž Support

- **Documentation**: [docs.rs/pdmt]https://docs.rs/pdmt
- **Issues**: [GitHub Issues]https://github.com/noahgift/pdmt/issues