Contract-first OpenAPI toolchain for TypeScript Web/API systems. Generates contract packages, server routes, and frontend clients from OpenAPI specifications with enforceable guardrails.
Version: 0.17.10
Contract-first OpenAPI toolchain for TypeScript.
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--version |
-V | No | Print version and exit. | |
--help |
-h | No | Show help and exit. |
Generate code from OpenAPI specifications.
Loads the multi-module config, applies overlays, runs Spectral linting (unless skipped), and generates contract packages, server routes, frontend clients, and documentation from OpenAPI specs. Supports input-hash caching to skip unnecessary regeneration.
Usage:
micro-contracts generate
micro-contracts generate -c my-config.yaml
micro-contracts generate -m core,billing
micro-contracts generate --contracts-only
micro-contracts generate --force
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--config |
-c | No | Path to config file (micro-contracts.config.yaml). | |
--module |
-m | No | Module names, comma-separated. Generates all modules if omitted. | |
--contracts-only |
No | false |
Generate contract packages only. | |
--server-only |
No | false |
Generate server routes only. | |
--frontend-only |
No | false |
Generate frontend clients only. | |
--docs-only |
No | false |
Generate documentation only. | |
--skip-lint |
No | false |
Skip Spectral linting before generation. | |
--manifest |
No | true |
Generate manifest after generation. Enabled by default when guardrails.yaml has a generated section. Use --no-manifest to disable. | |
--manifest-dir |
No | "packages/" |
Directory for manifest output. | |
--force |
No | false |
Bypass input hash cache and always regenerate. | |
--cache |
No | true |
Enable input hash caching. Enabled by default. Use --no-cache to disable both reading and writing cache. |
Exit 0: Generation succeeded.
-
stdout: format=
text -
Generated files:
packages/contract/{module}/**/*.ts(text/x-typescript)packages/contract-published/{module}/**/*.ts(text/x-typescript) (optional)
Exit 1: Generation failed (config not found, spec invalid, or generation error).
- stderr: format=
text
x-agent:
risk_level: medium
requires_confirmation: false
idempotent: true
side_effects:
- file_write
recommended_before_use:
- Ensure micro-contracts.config.yaml exists.
- Verify OpenAPI specs are valid.Lint OpenAPI specification.
Validates an OpenAPI specification for x-micro-contracts extension violations and structural issues using Spectral rules.
Usage:
micro-contracts lint spec/core/openapi/core.yaml
micro-contracts lint spec/core/openapi/core.yaml --strict
| Name | Required | Description |
|---|---|---|
input |
Yes | Path to OpenAPI spec file. |
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--strict |
No | false |
Treat warnings as errors. |
Exit 0: Spec is valid. No lint errors found.
- stdout: format=
text
Exit 1: Lint failed. Errors or warnings (in strict mode) found.
- stderr: format=
text
x-agent:
risk_level: low
requires_confirmation: false
idempotent: true
side_effects:
Initialize a new module structure with starter templates.
Creates the directory structure, starter Handlebars templates, shared schemas, Spectral rules, and optional config file for a new module. Can also process an existing OpenAPI spec to auto-add x-micro-contracts extensions.
Usage:
micro-contracts init core
micro-contracts init core --openapi path/to/spec.yaml
micro-contracts init myScreens --screens
micro-contracts init users --skip-templates
| Name | Required | Description |
|---|---|---|
name |
Yes | Module name (e.g., core, users, billing). |
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--dir |
-d | No | "src" |
Base directory for server/frontend files. |
--openapi |
-i | No | OpenAPI spec to process (auto-adds x-micro-contracts-service/method extensions). | |
--output |
-o | No | Output path for processed OpenAPI. Defaults to spec/{name}/openapi/{name}.yaml. | |
--skip-templates |
No | false |
Skip creating starter Handlebars templates. | |
--screens |
No | false |
Initialize as screen spec module (generates screen templates and starter spec). |
Exit 0: Module initialized successfully.
-
stdout: format=
text -
Generated files:
spec/{name}/openapi/{name}.yaml(application/yaml) (optional)spec/default/templates/*.hbs(text/x-handlebars-template) (optional)micro-contracts.config.yaml(application/yaml) (optional)
Exit 1: Initialization failed (OpenAPI file not found or write error).
- stderr: format=
text
x-agent:
risk_level: medium
requires_confirmation: false
idempotent: true
side_effects:
- file_write
- directory_createRun guardrail checks.
Runs AI guardrail checks against generated code and config. Supports gating (1-5), selective check execution, auto-fix, and CI integration via changed-files input.
Usage:
micro-contracts check
micro-contracts check --gate 1,2
micro-contracts check --only drift,manifest
micro-contracts check --fix
micro-contracts check --list
micro-contracts check --list-gates
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--only |
No | Run only specific checks (comma-separated check names). | ||
--skip |
No | Skip specific checks (comma-separated check names). | ||
--gate |
No | Run checks for specific gates only (comma-separated, 1-5). | ||
--verbose |
-v | No | false |
Enable verbose output. |
--fix |
No | false |
Auto-fix issues where possible. | |
--guardrails |
-g | No | Path to guardrails.yaml. | |
--generated-dir |
-d | No | "packages/" |
Path to generated files directory. |
--changed-files |
No | Path to file containing list of changed files (for CI). | ||
--list |
No | false |
List available checks and exit. | |
--list-gates |
No | false |
List available gates and exit. |
Exit 0: All checks passed (or --list/--list-gates output).
- stdout: format=
text
Exit 1: One or more checks failed.
-
stdout: format=
text -
stderr: format=
text(optional)
x-agent:
risk_level: low
requires_confirmation: false
idempotent: true
side_effects:
recommended_before_use:
- Run generate first so generated files exist.Run full guardrails pipeline.
Executes the complete contract-first pipeline in order: Gate 1,2 (pre-generation checks) → Generate → Gate 3,4,5 (post-generation checks). Supports --continue-on-error to run all steps regardless of failures.
Usage:
micro-contracts pipeline
micro-contracts pipeline --verbose
micro-contracts pipeline --continue-on-error
micro-contracts pipeline --contracts-only --skip-lint
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--config |
-c | No | Path to config file (micro-contracts.config.yaml). | |
--verbose |
-v | No | false |
Enable verbose output (show detailed logs). |
--skip |
No | Skip specific checks (comma-separated). | ||
--continue-on-error |
No | false |
Continue running even if a step fails. | |
--guardrails |
-g | No | Path to guardrails.yaml. | |
--generated-dir |
-d | No | "packages/" |
Path to generated files directory. |
--manifest |
No | true |
Generate manifest after generation. Enabled by default. Use --no-manifest to disable. | |
--skip-lint |
No | false |
Skip Spectral linting before generation. | |
--contracts-only |
No | false |
Generate contract packages only. | |
--server-only |
No | false |
Generate server routes only. | |
--frontend-only |
No | false |
Generate frontend clients only. | |
--docs-only |
No | false |
Generate documentation only. | |
--force |
No | false |
Bypass input hash cache and always regenerate. | |
--cache |
No | true |
Enable input hash caching. Enabled by default. Use --no-cache to disable both reading and writing cache. |
Exit 0: Pipeline completed successfully. All gates passed and generation succeeded.
- stdout: format=
text
Exit 1: Pipeline failed. One or more steps had errors.
-
stdout: format=
text -
stderr: format=
text(optional)
x-agent:
risk_level: medium
requires_confirmation: false
idempotent: true
side_effects:
- file_write
recommended_before_use:
- Ensure micro-contracts.config.yaml and guardrails.yaml exist.
- Verify OpenAPI specs are valid.Analyze module dependencies.
Reads x-micro-contracts-depend-on declarations from OpenAPI specs and config dependsOn fields. Can output dependency graphs (Mermaid), impact analysis, reverse lookups, and validation results.
Usage:
micro-contracts deps
micro-contracts deps --graph
micro-contracts deps --module billing
micro-contracts deps --impact core.User.getUsers
micro-contracts deps --who-depends-on core
micro-contracts deps --validate
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--config |
-c | No | Path to config file. | |
--module |
-m | No | Module to analyze. | |
--graph |
No | false |
Output dependency graph in Mermaid format. | |
--impact |
No | Analyze impact of changing a specific API (e.g., core.User.getUsers). | ||
--who-depends-on |
No | Find modules that depend on a specific API. | ||
--validate |
No | false |
Validate dependencies against OpenAPI declarations. |
Exit 0: Dependency analysis completed successfully.
- stdout: format=
text
Exit 1: Analysis failed or validation errors found.
- stderr: format=
text
x-agent:
risk_level: low
requires_confirmation: false
idempotent: true
side_effects:
Emit ExternalInsight JSON for agent-contracts-analyzer.
Reads x-micro-contracts-depend-on from OpenAPI specs and outputs structured dependency edges and anchor mappings as JSON on stdout. Used by agent-contracts-analyzer CommandProvider integration.
Usage:
micro-contracts insights --format json
micro-contracts insights --format json --project-root .
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--format |
No | "json" |
Output format (json only). | |
--project-root |
No | "." |
Project root directory containing micro-contracts.config.yaml. | |
--config |
-c | No | Path to config file (micro-contracts.config.yaml). |
Exit 0: ExternalInsight JSON written to stdout.
- stdout: format=
json
Exit 1: Insights generation failed.
- stderr: format=
text
x-agent:
risk_level: low
requires_confirmation: false
idempotent: true
side_effects:
Create a guardrails.yaml configuration file.
Generates a starter guardrails.yaml with default check configuration. Fails if the target file already exists.
Usage:
micro-contracts guardrails-init
micro-contracts guardrails-init -o custom-guardrails.yaml
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--output |
-o | No | "guardrails.yaml" |
Output path for guardrails.yaml. |
Exit 0: guardrails.yaml created successfully.
-
stdout: format=
text -
Generated files:
{options.output}(application/yaml)
Exit 1: Failed to create (file already exists or write error).
- stderr: format=
text
x-agent:
risk_level: low
requires_confirmation: false
idempotent: false
side_effects:
- file_writeGenerate or verify manifest for generated artifacts.
Scans a directory of generated files and produces a .generated-manifest.json containing file hashes. In verify mode, checks that existing files match the manifest.
Usage:
micro-contracts manifest
micro-contracts manifest -d packages/
micro-contracts manifest --verify
micro-contracts manifest -o custom-manifest.json
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--dir |
-d | No | "packages/" |
Directory to scan. |
--verify |
No | false |
Verify existing manifest instead of generating. | |
--output |
-o | No | Output manifest path. Defaults to {dir}/.generated-manifest.json. |
Exit 0: Manifest generated or verification passed.
-
stdout: format=
text -
Generated files:
{options.dir}/.generated-manifest.json(application/json) (optional)
Exit 1: Directory not found, manifest generation failed, or verification failed.
- stderr: format=
text
x-agent:
risk_level: low
requires_confirmation: false
idempotent: true
side_effects:
- file_writeRun LLM-based OpenAPI design quality audit.
Performs a semantic review of OpenAPI specification design quality using an LLM agent. Evaluates path design, module boundary alignment, schema bloat, CRUD vs use-case orientation, and cross-cutting concern coverage. Requires agent-contracts-runtime.
Usage:
micro-contracts audit-openapi
micro-contracts audit-openapi -m core
micro-contracts audit-openapi --adapter claude --report-format text
micro-contracts audit-openapi --show-prompt
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--config |
-c | No | Path to config file (micro-contracts.config.yaml). | |
--module |
-m | No | Module name to audit (default is all modules). | |
--adapter |
-a | No | SDK adapter to use for LLM execution. | |
--model |
No | LLM model override. | ||
--fail-on |
No | "error" |
Minimum severity that causes a non-zero exit. | |
--output |
-o | No | Write result to a file instead of stdout. | |
--report-format |
No | "text" |
Output format for the audit report. | |
--log-file |
-l | No | Write agent progress log to this file path. |
Exit 0: Audit completed, no blocking findings.
- stdout: format=
{options.report-format}
Exit 1: Unexpected error.
- stderr: format=
text
Exit 3: Input validation failed (config not found, spec invalid).
- stderr: format=
text
Exit 10: Completed with blocking findings.
- stdout: format=
{options.report-format}
Exit 11: Runtime dependency missing (agent-contracts-runtime).
- stderr: format=
text
Exit 12: LLM provider or adapter error.
- stderr: format=
text
x-agent:
dsl_task: audit-openapi-design
expectedDurationMs: 120000
retryableExitCodes:
- 12Review published API surface for internal leakage.
Analyzes the published (public-facing) API specification for internal type leakage, backward compatibility risks, and x-micro-contracts-non-exportable violations. Requires agent-contracts-runtime.
Usage:
micro-contracts review-published
micro-contracts review-published -m billing
micro-contracts review-published --adapter claude --report-format json
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--config |
-c | No | Path to config file (micro-contracts.config.yaml). | |
--module |
-m | No | Module name to review (default is all modules). | |
--adapter |
-a | No | SDK adapter to use for LLM execution. | |
--model |
No | LLM model override. | ||
--fail-on |
No | "error" |
Minimum severity that causes a non-zero exit. | |
--output |
-o | No | Write result to a file instead of stdout. | |
--report-format |
No | "text" |
Output format for the review report. | |
--log-file |
-l | No | Write agent progress log to this file path. |
Exit 0: Review completed, no blocking findings.
- stdout: format=
{options.report-format}
Exit 1: Unexpected error.
- stderr: format=
text
Exit 3: Input validation failed.
- stderr: format=
text
Exit 10: Completed with blocking findings.
- stdout: format=
{options.report-format}
Exit 11: Runtime dependency missing (agent-contracts-runtime).
- stderr: format=
text
Exit 12: LLM provider or adapter error.
- stderr: format=
text
x-agent:
dsl_task: audit-published-api
expectedDurationMs: 120000
retryableExitCodes:
- 12Propose cross-cutting overlay candidates.
Analyzes the OpenAPI specification and proposes cross-cutting overlay candidates for authentication, tenancy, rate limiting, audit logging, and other patterns. Verifies proposals do not conflict with existing overlay definitions. Requires agent-contracts-runtime.
Usage:
micro-contracts propose-overlays
micro-contracts propose-overlays -m core
micro-contracts propose-overlays --adapter openai --report-format json
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--config |
-c | No | Path to config file (micro-contracts.config.yaml). | |
--module |
-m | No | Module name to analyze (default is all modules). | |
--adapter |
-a | No | SDK adapter to use for LLM execution. | |
--model |
No | LLM model override. | ||
--fail-on |
No | "error" |
Minimum severity that causes a non-zero exit. | |
--output |
-o | No | Write result to a file instead of stdout. | |
--report-format |
No | "json" |
Output format for the proposal report. | |
--log-file |
-l | No | Write agent progress log to this file path. |
Exit 0: Proposal generated successfully.
- stdout: format=
{options.report-format}
Exit 1: Unexpected error.
- stderr: format=
text
Exit 3: Input validation failed.
- stderr: format=
text
Exit 10: Completed with blocking findings.
- stdout: format=
{options.report-format}
Exit 11: Runtime dependency missing (agent-contracts-runtime).
- stderr: format=
text
Exit 12: LLM provider or adapter error.
- stderr: format=
text
x-agent:
dsl_task: propose-overlay-candidates
expectedDurationMs: 120000
retryableExitCodes:
- 12Audit guardrails configuration for drift and lint coverage.
Checks that guardrails.yaml configuration covers all generated output directories for drift detection and that OpenAPI lint rules are properly configured. Note: file permission and editing checks have been moved to artifact-contracts. Requires agent-contracts-runtime.
Usage:
micro-contracts audit-guardrails
micro-contracts audit-guardrails --adapter mock --report-format json
| Option | Aliases | Required | Default | Description |
|---|---|---|---|---|
--config |
-c | No | Path to config file (micro-contracts.config.yaml). | |
--guardrails |
-g | No | Path to guardrails.yaml. | |
--adapter |
-a | No | SDK adapter to use for LLM execution. | |
--model |
No | LLM model override. | ||
--fail-on |
No | "error" |
Minimum severity that causes a non-zero exit. | |
--output |
-o | No | Write result to a file instead of stdout. | |
--report-format |
No | "text" |
Output format for the audit report. | |
--log-file |
-l | No | Write agent progress log to this file path. |
Exit 0: Audit completed, no blocking findings.
- stdout: format=
{options.report-format}
Exit 1: Unexpected error.
- stderr: format=
text
Exit 3: Input validation failed (guardrails.yaml not found).
- stderr: format=
text
Exit 10: Completed with blocking findings.
- stdout: format=
{options.report-format}
Exit 11: Runtime dependency missing (agent-contracts-runtime).
- stderr: format=
text
Exit 12: LLM provider or adapter error.
- stderr: format=
text
x-agent:
dsl_task: audit-guardrails-coverage
expectedDurationMs: 120000
retryableExitCodes:
- 12