converge-tool 0.2.1

Development tools for Converge including Gherkin spec validation
Documentation

converge-tool

Developer tools for the Converge ecosystem.

Gherkin Validation

LLM-powered validation of Gherkin feature specifications.

Validation Dimensions

  • Convention Compliance - Proper Given/When/Then structure, naming conventions
  • Compilability - Can steps be automated without human intervention?
  • Business Sense - Are scenarios testable and well-defined?

Issue Detection

  • Missing Then clauses
  • Uncertain language ("should", "might", "probably")
  • Vague preconditions
  • Untestable assertions
  • External API dependencies
  • Human input requirements

Installation

[dependencies]
converge-tool = "0.2"

Example

use converge_tool::gherkin::{GherkinValidator, ValidationConfig};
use converge_provider::AnthropicProvider;

// Create validator with LLM provider
let provider = AnthropicProvider::from_env("claude-3-5-haiku-20241022")?;
let config = ValidationConfig::default();
let validator = GherkinValidator::new(provider, config);

// Parse and validate a feature file
let feature = gherkin::parse_feature(feature_text)?;
let report = validator.validate_feature(&feature)?;

// Check results
if report.is_valid() {
    println!("Feature is valid!");
} else {
    for issue in report.issues {
        println!("{}: {}", issue.severity, issue.message);
    }
}

Validation Report

pub struct ValidationReport {
    pub feature_name: String,
    pub is_valid: bool,
    pub issues: Vec<ValidationIssue>,
    pub scenarios_checked: usize,
}

pub struct ValidationIssue {
    pub severity: Severity,  // Error, Warning, Info
    pub dimension: Dimension, // Convention, Compilability, BusinessSense
    pub message: String,
    pub location: Option<String>,
}

License

MIT