A Go CLI and GitHub Action for platform and engineering teams that distribute AI configuration files
(CLAUDE.md, .claude/agents/, .claude/skills/, .claude/settings.json) from one central repo to every
repository in a GitHub organization, by pull request.
Install · Quick start · Where to go · Governance · Security · Community
Pre-1.0; see Releases for the current version and
Compatibility for what semver will cover from 1.0.0.
Sync never force-pushes a git ref and never merges for you (the --force flag only bypasses the
recorded deployment-state hash check; unchanged content never opens a pull request): every change
lands as a reviewable pull request in the target repo. The behaviour is specified by the
dev.steerspec.sync realm, linked under
Specification.
Use the composite actions directly from the Marketplace:
# Full action (specify command)
- uses: SteerSpec/strspc-sync@v0.4.1
with:
command: sync
# Convenience sub-actions
- uses: SteerSpec/strspc-sync/sync@v0.4.1
- uses: SteerSpec/strspc-sync/monitor@v0.4.1
- uses: SteerSpec/strspc-sync/conflict@v0.4.1Pin an exact tag, never a branch. See Keeping the pin current for a Dependabot setup that opens a pull request for each new release.
Download an archive and its checksums.txt from
Releases. Linux ships as .tar.gz and macOS as
.zip, for amd64 and arm64. Compare the archive's SHA-256 with the entry in checksums.txt:
# Linux (amd64; use linux_arm64 on arm64)
curl -fsSLO https://github.com/SteerSpec/strspc-sync/releases/download/v0.4.1/strspc_0.4.1_linux_amd64.tar.gz
tar xzf strspc_0.4.1_linux_amd64.tar.gz strspc
# macOS (Apple silicon; use darwin_amd64 on Intel)
curl -fsSLO https://github.com/SteerSpec/strspc-sync/releases/download/v0.4.1/strspc_0.4.1_darwin_arm64.zip
unzip strspc_0.4.1_darwin_arm64.zip strspc
sudo mv strspc /usr/local/bin/- Create a central repo (e.g.
your-org/steerspec-config) - Add a
steerspec-sync.ymlconfig and your templates (see docs/quickstart/ for examples) - Add a workflow to sync on push:
name: SteerSpec Sync
on:
push:
branches: [main]
paths:
- 'templates/**'
- 'steerspec-sync.yml'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: SteerSpec/strspc-sync/sync@v0.4.1
with:
dry-run: false
token: ${{ secrets.STEERSPEC_TOKEN }}The default GITHUB_TOKEN cannot open pull requests in other repositories; see
Authentication for the token and GitHub App options.
| If you want to | Go to |
|---|---|
| Run it from a workflow | Installation, example workflows |
| Set up your first central repo | Quick Start, docs/quickstart/ |
| Understand what a run does | How it works |
| Run the CLI locally | CLI Binary, Commands |
| Look up a configuration key or set up authentication | Configuration |
| Keep the action pin current | Keeping the pin current |
| Read the specification | Specification |
| Know what a release may change | Compatibility |
| Build, test or contribute | CONTRIBUTING.md |
| Report a vulnerability | Security |
Open source software by Consulare.
The copyright holder is named in NOTICE.
Every change, including the maintainers', lands by pull request; see CONTRIBUTING.md.
To report a security issue privately, email security@steerspec.dev and do not open a public issue. See SECURITY.md for what to include and the response timeline.
Bug reports and pull requests are welcome — see CONTRIBUTING.md for the build, test, and lint workflow. Pull requests are reviewed by GitHub Copilot, and an automated approval from a bot is expected; see the strspc-pr-review v1.10.2 README.
Part of the SteerSpec ecosystem:
- strspc-rules — canonical rule format specification
- strspc-manager — core enforcement engine
- strspc-CLI — render, validate, and manage rule files
Apache 2.0 -- see LICENSE.