SpecMan Runtime Library
SpecMan is the runtime foundation for authoring and automating software specifications. It powers workspace discovery, dependency mapping, templating, and lifecycle workflows that keep specs consistent and reproducible.
What It Does
- Discovers workspace roots and canonical directories (
WorkspaceLocator,WorkspacePaths) - Builds dependency graphs for specifications/implementations/scratch pads (
DependencyTree) - Resolves templates (embedded defaults + workspace pointer files) via
TemplateCatalog - Renders Markdown templates deterministically (
MarkdownTemplateEngine) - Provides lifecycle orchestration via the high-level
Specmanfaçade (plan/create/delete) - Exposes structured lifecycle failures (
SpecmanError::Lifecycle(LifecycleError)) so callers can branch programmatically
Getting Started
Add the published crate to your Cargo.toml:
= "2"
Or with Cargo:
The ergonomic entrypoint is DefaultSpecman, which wires the default filesystem-backed stack:
use DefaultSpecman;
let specman = from_current_dir?;
# Ok::
For automation, match lifecycle errors directly instead of parsing strings:
use LifecycleError;
use SpecmanError;
Repository
All source, issue tracking, and release notes live in the main GitHub repository:
https://github.com/justinbrick/specman
Star the repo or follow along for roadmap updates (including relationship graphing and expanded MCP tool coverage).