SpecGen 0.2.0

dotnet tool install --global SpecGen --version 0.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local SpecGen --version 0.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=SpecGen&version=0.2.0
                    
nuke :add-package SpecGen --version 0.2.0
                    

SpecGen

AI-powered functional specification generator for Microsoft Dataverse solutions


What is SpecGen?

SpecGen is a .NET CLI tool that reads an unpacked Microsoft Dataverse solution and the associated plugin/script source code, then generates a complete set of functional specification documents in Markdown. It combines deterministic XML parsing with AI-powered code analysis to produce human-readable specs that cover plugins, web resources, custom APIs, tables, forms, views, security roles, workflows, and more -- all cross-linked and ready to drop into a wiki or repo.

Install

dotnet tool install -g specgen

Quick Start

# Scan a solution (no AI, just discovery)
specgen scan \
  --plugins ./path/to/Plugins \
  --scripts ./path/to/WebResources \
  --solution ./path/to/UnpackedSolution

# Generate all specs
specgen generate \
  --plugins ./path/to/Plugins \
  --scripts ./path/to/WebResources \
  --solution ./path/to/UnpackedSolution \
  --output ./docs

# Dry run (preview what would be generated, no AI calls)
specgen generate \
  --plugins ./path/to/Plugins \
  --solution ./path/to/UnpackedSolution \
  --output ./docs \
  --dry-run

Features

Parsing

Capability Source Description
Plugin Analysis Roslyn Extracts registrations, dispatch maps, and handler source from C# projects
Script Analysis Regex TypeScript / JavaScript web resource analysis
Table Metadata XML Entity attributes, option sets, and relationships
Forms & Views XML Form layouts, events, fields, system views
Security Roles XML Privilege matrices per role
Workflows XML + AI Category, trigger entity, mode, scope; AI specs from definitions
Custom APIs XML Request/response parameters, plugin type
App Modules XML Sitemap, entities, security roles
Environment Variables XML Definitions and default values
Canvas Apps XML App inventory
Email Templates XML Template inventory
Convert Rules XML Case-creation / convert rules
Ribbons XML Buttons, commands, display/enable rules

AI Generation

Capability Description
Plugin Specs IF / THEN / ELSE / DO business rules from C# handler code
Script Specs Functional specs from JS/TS web resources
Custom API Specs Functional specs from Custom API handler code
Workflow Specs Functional specs from Modern Flow, Classic Workflow, and Business Rule definitions
Multi-Provider OpenAI, Azure OpenAI, and Anthropic (--provider)
Parallel Calls Concurrent AI calls with --max-parallel and token-bucket rate limiting
Rate-Limit Handling Shared cooldown on 429 with exponential backoff

Output & Integration

Capability Description
Cross-Linking Forms, ribbons, workflows, subgrids, app modules auto-link to related specs
Skip Existing --skip-existing for incremental runs
Progress & Cost Progress bar with percentage; estimated cost in summary
Pipeline Ready --yes, --quiet, --summary-file, --fail-on-error for CI/CD
Customizable --example, --instructions, --prompt-template for team-specific formatting
Deterministic Specs Tables, roles, forms, views generated purely from XML (no AI required)

Environment Variables

Variable Purpose
OPENAI_API_KEY API key for OpenAI / Azure OpenAI
OPENAI_ENDPOINT Azure OpenAI endpoint URL
ANTHROPIC_API_KEY API key for Anthropic

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.2.0 100 5/25/2026
0.1.6 116 2/27/2026
0.1.5 101 2/27/2026
0.1.4 105 2/27/2026
0.1.3 102 2/27/2026
0.1.2 103 2/27/2026
0.1.1 102 2/27/2026
0.1.0 106 2/27/2026