Skip to content

aabs/steergen

Repository files navigation

Steergen

Steergen is a CLI for maintaining a single set of steering and constitution documents in your repository, then converting that corpus into the formats expected by spec-driven development tools such as Speckit and Kiro.

The point of the tool is to let you switch between downstream tools without having to manually reconcile multiple copies of the same guidance.

The examples below are intended as a guide to using the tool in everyday work:

  • initialize a repo for one or more targets
  • write steering docs in Markdown
  • run generation
  • validate or regenerate whenever the source docs change

For the full onboarding flow, use the Getting Started guide on the wiki:

Install

dotnet tool install --global aabs.steergen

Everyday Usage

Initialize a repository for the targets you want to generate:

steergen init . --target kiro --target copilot-agent

That creates:

  • steering/global/
  • steering/project/
  • steergen.config.yaml
  • target-native output folders for the selected targets

Add a steering document under steering/global/ or steering/project/.

Example:

---
id: engineering-baseline
title: Engineering Baseline
---

# Engineering Baseline

:::rule id="CORE-001" severity="error" category="quality" domain="core"
Prefer small, composable changes that are easy to review and easy to revert.
:::

:::rule id="CORE-002" severity="warning" category="testing" domain="core"
Add or update automated tests when behaviour changes.
:::

Generate outputs:

steergen run

Validate source documents without generating:

steergen validate

If steergen.config.yaml is present in the current directory, run and validate will discover it automatically.

A Few Common Examples

Generate for a single target:

steergen run --target kiro

Generate under an explicit output base:

steergen run --output .steergen/out

Validate explicit source roots:

steergen validate --global steering/global --project steering/project

Inspect the resolved model as JSON:

steergen inspect --global steering/global --project steering/project

Add or remove registered targets later:

steergen target add speckit
steergen target remove kiro

Supported Built-In Targets

Steergen currently includes built-in support for:

  • kiro
  • speckit
  • copilot-agent
  • kiro-agent

The exact generated folder layout is target-specific. steergen init bootstraps the expected target folders, and steergen run writes output using the selected target's built-in layout.

Command Summary

steergen init [project-root] [--target <id>...]
steergen run [--config <path>] [--global <dir>] [--project <dir>] [--output <dir>] [--target <id>...]
steergen validate [--config <path>] [--global <dir>] [--project <dir>]
steergen inspect [--global <dir>] [--project <dir>]
steergen target add <id>
steergen target remove <id>
steergen update [--version <version>] [--preview]

More Detail

The README stays focused on basic usage. For deeper material:

CI Notes

For automation, the most useful commands are:

steergen validate
steergen run --output .steergen/out

validate exits non-zero on document errors. run can write a deterministic generation manifest alongside output artefacts when an explicit output base is used.

About

A CLI tool for sharing steering files across multiple SDD tools

Topics

Resources

License

Stars

Watchers

Forks

Contributors