Skip to content

About

Release-readiness automation on the Ashlar runtime — the minimal SDK reference and first out-of-tree nuget.org consumer (Apache-2.0)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Ashlar Release Manager

Release-readiness automation whose evidence is signed, not asserted — and the minimal SDK reference for Ashlar: one JSON agent set, one AddAshlar() call, consuming the runtime entirely from nuget.org. This repo exists to be read, run, and copied.

Four background agents run on the deterministic provider (no model, no network, no container engine required):

Agent Role What it does
repo-monitor optimizer watches the repository for changes that affect release gates
test-runner tester runs framework smoke tests on a schedule
slo-collector optimizer gathers SLO and gate artifact paths under .ashlar/
report-generator optimizer writes readiness reports to .ashlar/release-manager/reports

Every agent carries an explicit exfiltration policy (RequireLocalOnly, external LLMs and network exports blocked) — governance is in the config, not in prose.

Quickstart

git clone https://github.com/IanFrelinger/ashlar-release-manager.git
cd ashlar-release-manager
dotnet run --project src/ReleaseManager.Host -- --duration 30

That restores Ashlar.Hosting.Bundle from nuget.org (this repo's nuget.config allows no other feed), builds the thin host, and runs the agent set for 30 seconds — you'll see all four agents register, schedule, run, and drain cleanly. Drop --duration to run as a daemon; point --config at a tuned copy of config/agent_set.release_manager.json for your own repository.

Prefer the CLI? The same config drives the published tool (requires the .NET 10 runtime):

dotnet tool install -g Ashlar.CLI
ashlar background-agent daemon --config config/agent_set.release_manager.json

The whole host

src/ReleaseManager.Host/Program.cs is ~80 lines: parse two flags, AddJsonFile the agent set, AddAshlar(o => o.RegisterBackgroundAgentHostedService = true), run. That is the entire embedding story — copy it, swap the agent set, and you have your own governed background-agent product. Package pins live in Directory.Packages.props (one AshlarVersion property, currently 0.1.1).

Provenance

  • First out-of-tree consumer. This repo's CI restores from nuget.org and nothing else — it is the standing proof that the published Ashlar graph is consumable exactly as documented in the runtime repo's consumer-template/CONSUMING.md.
  • The one-way ratchet, exercised. This app was commercial (Tier 3) in the runtime monorepo, was graduated to Apache-2.0 on 2026-08-31 (LICENSING.md, covenant 2), and extracted here on 2026-09-01. Open-core boundaries move in one direction.
  • Fleet-scale readiness aggregation (many repos, one pane of glass) is part of Ashlar's commercial fleet tier — see the runtime repo's LICENSING.md. This repo is complete for one repository, forever.

License

Apache-2.0.

About

Release-readiness automation on the Ashlar runtime — the minimal SDK reference and first out-of-tree nuget.org consumer (Apache-2.0)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages