aabs.steergen
0.2.3
dotnet tool install --global aabs.steergen --version 0.2.3
dotnet new tool-manifest
dotnet tool install --local aabs.steergen --version 0.2.3
#tool dotnet:?package=aabs.steergen&version=0.2.3
nuke :add-package aabs.steergen --version 0.2.3
aabs.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.
Configuration Roots
Steergen supports separate roots for source discovery and generated output:
globalRoot: global steering source folderprojectRoot: project steering source foldergenerationRoot: base folder where routed output files are written when--outputis not provided
steergen run resolves output base in this order:
--outputgenerationRootfromsteergen.config.yaml- current working directory
Example steergen.config.yaml:
globalRoot: steering/global
projectRoot: steering/project
generationRoot: .
registeredTargets:
- speckit
- kiro
Scenario: Sources Under docs/steering, Output Under Solution Root
If your steering sources live under docs/steering but you want generated target files rooted at the solution folder:
globalRoot: docs/steering/global
projectRoot: docs/steering/project
generationRoot: .
registeredTargets:
- speckit
- kiro
From the solution root, run:
steergen run
This keeps source discovery under docs/steering/* while writing routed outputs (for example .kiro/steering/*, .speckit/memory/*) relative to the solution root.
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:
kirospeckitcopilot-agentkiro-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
For deeper material:
- Repository README: https://github.com/aabs/steergen#readme
- Getting started and setup walkthrough: https://github.com/aabs/steergen/wiki/Getting-Started
- Developer guide: https://github.com/aabs/steergen/blob/main/docs/development/how-steergen-works.md
- Code tour: https://github.com/aabs/steergen/blob/main/docs/development/end-to-end-pipeline.tour
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.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.3 | 102 | 4/20/2026 |
| 0.2.2 | 97 | 4/20/2026 |
| 0.2.1 | 85 | 4/20/2026 |
| 0.2.1-preview5 | 86 | 4/20/2026 |
| 0.2.1-preview3 | 92 | 4/8/2026 |
| 0.2.1-preview2 | 84 | 4/8/2026 |
| 0.2.1-preview1 | 90 | 4/8/2026 |
| 0.2.0 | 94 | 4/8/2026 |
| 0.1.1 | 93 | 4/7/2026 |