Changelog
Release notes for the rule set and each open-source component, taken from their GitHub releases.
// strspc-spec the platform spec, cross-cutting rules for every component
v1.1.0 2026-10-30
v1.0.0 2026-10-30
// strspc-rules the rule set, what agents are told
v1.17.1 2026-11-05
What's Changed
- docs(specs): standards-as-realms design (#144) by @pleberre in #145
- docs(specs): space table delimiters in standards-as-realms design by @pleberre in #146
- docs(specs): require a clause label on every live rule of a standard realm by @pleberre in #147
- chore(rules): migrate added_by to github:pleberre by @pleberre in #148
- chore(release): bump realm.version to 1.17.1 by @pleberre in #149
- chore(rules): fix key word wording from the P to I audit by @pleberre in #151
- feat(rules): promote the #55 replacements to Published by @pleberre in #152
- chore(release): 1.18.0 by @pleberre in #150
Full Changelog: v1.17.0...v1.17.1
v1.17.0 2026-11-03
What's Changed
- chore(rules): split two-statement rules and move examples to notes by @pleberre in #139
- fix(rules): narrow STDREF-008 to an http or https URL by @pleberre in #140
- feat(rules): promote NTE-021, NTE-022 and RLM-023 to Published by @pleberre in #141
- chore(release): bump realm.version to 1.17.0 by @pleberre in #142
- chore(release): 1.17.0 by @pleberre in #143
Full Changelog: v1.16.0...v1.17.0
v1.16.0 2026-11-03
What's Changed
- feat(rules): add Draft rules for contributor identifiers by @pleberre in #134
- feat(rules): promote CTRB-001 to CTRB-008 to Published by @pleberre in #136
- chore(release): bump realm.version to 1.16.0 by @pleberre in #137
- chore(release): 1.16.0 by @pleberre in #138
Full Changelog: v1.15.0...v1.16.0
v1.15.0 2026-11-01
What's Changed
- ci: sync auto-approve caller to the v1.10.0 template by @pleberre in #124
- feat(rules): add Draft rules for external standards references by @pleberre in #125
- feat(rules): add a Draft rule that examples live in example notes by @pleberre in #127
- feat(schema): accept standards and standard notes by @pleberre in #129
- chore(release): bump realm.version to 1.15.0 by @pleberre in #130
- chore(release): 1.15.0 by @pleberre in #131
Full Changelog: v1.14.0...v1.15.0
v1.14.0 2026-11-01
What's Changed
- feat(rules): add Draft rules for realm language by @pleberre in #119
- fix(rules): drop a false claim from the RLM-019 note by @pleberre in #120
- feat(schema): accept realm.language in the realm manifest by @pleberre in #121
- chore(release): bump realm.version to 1.14.0 by @pleberre in #122
- chore(release): 1.14.0 by @pleberre in #123
Full Changelog: v1.13.0...v1.14.0
v1.13.0 2026-10-31
What's Changed
- ci(release): validate core against its own schemas by @pleberre in #105
- ci(release): promote core schema validation to main by @pleberre in #106
- ci: pin core in strspc-pr-review and strspc-cloud by @pleberre in #107
- ci: promote consumer pin automation to main by @pleberre in #108
- ci: stop pinning core in the strspc-spec README by @pleberre in #109
- ci: promote the strspc-spec pin fix to main by @pleberre in #110
- fix(rules): require a declared realm in NTE-007 references by @pleberre in #111
- feat(rules): add Draft rules for entity visibility by @pleberre in #115
- feat(schema): add entity visibility by @pleberre in #116
- chore(release): bump realm.version to 1.13.0 by @pleberre in #117
- chore(release): 1.13.0 by @pleberre in #118
Full Changelog: v1.12.0...v1.13.0
v1.12.0 2026-10-30
What's Changed
- ci: stop pinning the strspc CLI in release and build-schema by @pleberre in #92
- ci: resolve the realm with strspc check by @pleberre in #91
- fix(rules): add a key word to ENT-009 and ENT-010 by @pleberre in #93
- ci: rename the validate-rules job to rules by @pleberre in #94
- fix(ci): sync rules/_schema in core pin PRs by @pleberre in #95
- docs: squash pull requests into develop by @pleberre in #96
- ci: lint pull request titles by @pleberre in #97
- docs(readme): restyle README and refresh stale details by @pleberre in #98
- ci: re-evaluate auto-approve after the PR title check by @pleberre in #99
- fix(rules): align inheritance rule wording with resolution by @pleberre in #100
- feat(rules): publish inheritance rules by @pleberre in #101
- ci: validate core against its own schemas by @pleberre in #102
- chore(release): bump realm.version to 1.12.0 by @pleberre in #103
- chore(release): 1.12.0 by @pleberre in #104
Full Changelog: v1.11.0...v1.12.0
v1.11.0 2026-10-30
What's Changed
- chore(steerspec-sync): update dependabot to 1.0.0 by @steerspec-sync[bot] in #82
- docs(inheritance): correct the manager contract by @pleberre in #83
- feat(schema): add entity inherits and rule overrides to entity.v1 by @pleberre in #85
- chore(steerspec-sync): update dependabot to 1.0.1 by @steerspec-sync[bot] in #86
- chore(deps): bump the actions group across 1 directory with 4 updates by @dependabot[bot] in #84
- docs: fix markdownlint MD060 table style by @pleberre in #87
- ci: sync auto-approve caller to the v1.9.0 variable-driven template by @pleberre in #88
- chore(release): bump realm.version to 1.11.0 by @pleberre in #89
- chore(release): 1.11.0 by @pleberre in #90
New Contributors
- @dependabot[bot] made their first contribution in #84
Full Changelog: v1.10.0...v1.11.0
v1.10.0 2026-10-28
What's Changed
- feat(nte): draft note versioning rules NTE-008..011 by @pleberre in #77
- feat(realm): define the rule_identifier_format object in realm.v1 by @pleberre in #79
- chore(release): bump realm.version to 1.10.0 by @pleberre in #80
- chore(release): 1.10.0 by @pleberre in #81
Full Changelog: v1.9.0...v1.10.0
v1.9.0 2026-10-28
What's Changed
- docs(readme): document version rules and refresh version examples by @pleberre in #71
- ci(release): open core pin PRs in consumer repos after a release by @pleberre in #72
- feat(ent): add Draft rules for entity inheritance and rule overrides (#35) by @pleberre in #74
- docs(skills): add releasing-strspc-rules project skill by @pleberre in #73
- chore(release): bump realm.version to 1.9.0 by @pleberre in #75
- chore(release): 1.9.0 by @pleberre in #76
Full Changelog: v1.8.1...v1.9.0
All strspc-rules releases on GitHub ↗
Each rule release is served immutably at /rules/v<version>/index.json.
The current one is /rules/latest/index.json.
// strspc-manager lint, diff, eval, resolve
v1.41.0 2026-11-03
v1.40.0 2026-11-03
1.40.0 (2026-11-03)
Features
v1.39.0 2026-11-03
1.39.0 (2026-11-03)
Features
v1.38.0 2026-11-02
1.38.0 (2026-11-02)
Features
v1.37.0 2026-11-02
v1.36.1 2026-11-01
1.36.1 (2026-11-01)
Bug Fixes
v1.36.0 2026-11-01
v1.35.1 2026-11-01
1.35.1 (2026-11-01)
Bug Fixes
v1.35.0 2026-11-01
v1.34.0 2026-10-31
// strspc-CLI rule authoring and checking
v1.36.0 2026-11-05
v1.35.0 2026-11-04
1.35.0 (2026-11-04)
Features
- realm: check added_by against contributors and add rewrite-added-by (manager v1.41.0) (#238) (f1a395e)
Documentation
v1.34.1 2026-11-03
v1.34.0 2026-11-03
v1.33.0 2026-11-03
1.33.0 (2026-11-02)
Features
- doctor: add strspc doctor diagnostic command (#219) (4692931)
- standards: add entity and realm standards commands (#204) (#206) (e246cc4)
- standards: add entity and realm standards update (#209) (ca5037e)
- standards: refuse standards add on a realm pinned to core before 1.15.0 (#208) (dc2efd3)
Bug Fixes
- entity: validate the EUID in every command that resolves an entity file (#207) (4570dce)
- lint: check a pinned sub-realm's entities only against its own pin (#213) (5737a6e)
- realm: accept only realm IDs the realm schema allows (#215) (3cc5fcf)
Documentation
v1.32.0 2026-11-01
v1.31.0 2026-11-01
1.31.0 (2026-11-01)
Features
- realm: keep realm.language when rewriting realm.json (#193) (8366da3)
- status: show how a project's rules stand (#192) (8b03ad2)
Bug Fixes
Documentation
v1.30.0 2026-10-31
v1.29.0 2026-10-31
1.29.0 (2026-10-31)
Features
v1.28.0 2026-10-31
1.28.0 (2026-10-31)
Features
- check: report broken references in relation notes (#174) (e5a9202)
- realm: send the GitHub token only to allowed owners (#172) (bcd3f3f)
Bug Fixes
// strspc-sync GitHub Action that syncs AI config by pull request
v0.4.1 2026-11-01
v0.4.0 2026-10-30
0.4.0 (2026-10-30)
Features
Bug Fixes
- action: pass inputs to strspc as quoted arguments, not shell text (a23af57)
- action: pass inputs to strspc as quoted arguments, not shell text (e92c00c)
- e2e: address Copilot review of wave 1 (GH #99) (d3bb6b3)
- e2e: apply E2E_ORG to the org_name variable (GH #99) (4460aba)
- e2e: delete files with a signed GraphQL commit (GH #99) (7f153eb)
- e2e: delete files with a signed GraphQL commit (GH #99) (0d7d1af)
- e2e: fail on missing secrets, confirm 422 branch deletes, probe at the deadline (GH #99) (239835d)
- e2e: give each test its own run prefix (GH #99) (b193524)
- e2e: reset state and sweep labelled issues at cleanup (GH #99) (a6a2dd5)
- e2e: scope the symlink test's PR check to its own prefix (GH #99) (ec9b184)
Documentation
- e2e: record the live runs and the mutation check (GH #99) (a84b2d2)
- e2e: record the live runs and the mutation check (GH #99) (7595ada)
- e2e: the green run passed 10 scenarios, not 9 (GH #99) (8575e36)
- fix markdownlint MD060 table style (75a58da)
- use compact table delimiter rows for markdownlint MD060 (33cf967)
v0.3.0 2026-10-28
Changelog
- 54423f5 Merge pull request #101 from SteerSpec/fix/skip-noop-state-commit
- b256d7b Merge pull request #104 from SteerSpec/chore/release-v0.3.0
- 2734df7 Merge pull request #97 from SteerSpec/chore/core-1.9.0
- 860c2ac Merge pull request #98 from SteerSpec/feat/per-visibility-sources
- 322e0b7 chore(release): v0.3.0 (GH #103)
- 55f1d46 chore(rules): pin dev.steerspec.core to 1.9.0
- 6584502 docs(rules): TMPLT-004 allows per-visibility and cross-repo sources (GH #80)
- a539b55 feat(config): per-visibility template sources (GH #80)
- bee2a8a fix(config): validate the fallback source at load; link the resolved source repo (GH #80)
- d7f32d2 fix(sync): skip the deployment-state commit when nothing changed (GH #100)
v0.2.10 2026-10-27
Changelog
- 75bbd8c Merge pull request #95 from SteerSpec/fix/skip-content-already-current
- a081c3b Merge pull request #96 from SteerSpec/chore/release-v0.2.10
- eceff55 chore(release): v0.2.10
- 7740c57 fix(sync): a missing destination is never current, even for an empty template (GH #94)
- a8ad23d fix(sync): skip a target whose default branch already holds the rendered content (GH #94)
v0.2.9 2026-10-26
v0.2.8 2026-10-26
v0.2.7 2026-10-26
Changelog
- a42c218 Merge pull request #86 from SteerSpec/docs/dependabot-pin
- c8fc4e8 Merge pull request #87 from SteerSpec/fix/symlink-detection
- ac14b53 Merge pull request #88 from SteerSpec/chore/release-v0.2.7
- 621edbc chore(release): v0.2.7
- bad99f9 docs(readme): document pinning and Dependabot for the action (GH #85)
- bb30896 docs(readme): say a sync opens PRs only where the rendered content changed (GH #85)
- 1b18e47 fix(sync): detect a symlinked destination from the parent directory listing (GH #82)
- 5c795e9 fix(sync): fail a target when its destination cannot be read; test the 404 branch of IsSymlink (GH #82)
v0.2.6 2026-10-26
Changelog
- 9249cab Merge pull request #78 from SteerSpec/chore/node24-actions
- 755867e Merge pull request #81 from SteerSpec/steerspec-sync/claude-md/1.0.1
- e168a8d Merge pull request #83 from SteerSpec/fix/symlink-destination
- 336b810 Merge pull request #84 from SteerSpec/chore/release-v0.2.6
- 1ff11e9 chore(ci): move workflow actions to Node 24 majors (GH #77)
- 730dbf0 chore(docs): use actions/checkout@v7 in the README and quickstart workflows (GH #77)
- 3490420 chore(release): v0.2.6
- af8988d chore(steerspec-sync): update claude-md to 1.0.1
- ae927fd fix(sync): skip a symlinked destination instead of writing through it (GH #82)
v0.2.5 2026-10-26
v0.2.4 2026-10-26
Changelog
- bc45eea Merge pull request #66 from SteerSpec/ci/golangci-skip-config-verify
- 5e06ae3 Merge pull request #67 from SteerSpec/chore/core-1.7.0
- ce38a70 Merge pull request #68 from SteerSpec/feat/syncpr-003-published
- 3abe24e Merge pull request #69 from SteerSpec/chore/core-1.8.0
- b581559 Merge pull request #71 from ect2000/fix/template-pr-head-filter
- 44f9cf4 Merge pull request #72 from SteerSpec/fix/pr-lookup-head-branch
- 22adab4 Merge pull request #74 from SteerSpec/chore/golangci-lint-2.15
- 7f73baa chore(rules): pin dev.steerspec.core to 1.7.0
- cf3f223 chore(rules): pin dev.steerspec.core to 1.8.0
- c33ff30 chore: bump golangci-lint to v2.15.0 in the pre-commit hook and CI (GH #73)
- 07980b4 feat(rules): promote SYNCPR-003 to Published, realm 0.2.0
- 533d47d fix(github): qualify the PR list head filter with the owner, check the label request (GH #70)
- 75b0c13 fix(sync): find the existing PR by head branch without requiring the label (GH #70)
- de1aa3b fix(sync): keep a created PR when only its label fails (GH #70)
- 3fe2ebf fix: match sync pull requests to their template branch
// strspc-pr-review GitHub Action that auto-approves on green checks plus a Copilot verdict
v1.10.2 2026-11-05
1.10.2 (2026-11-05)
Bug Fixes
v1.10.1 2026-11-03
1.10.1 (2026-11-03)
Bug Fixes
v1.10.0 2026-10-31
v1.9.3 2026-10-31
1.9.3 (2026-10-31)
Bug Fixes
v1.9.2 2026-10-31
v1.9.1 2026-10-30
v1.9.0 2026-10-30
1.9.0 (2026-10-30)
Features
- configure callers through org-level STRSPC_PR_AUTO_APPROVE_* variables (1ac1c4a)
- configure callers through org-level STRSPC_PR_AUTO_APPROVE_* variables (44ee64a)
- re-request Copilot's review when it errors (65c955d)
- re-request Copilot's review when it errors (copilot-error-retries) (198cd67)
- wire copilot-error-retries to STRSPC_PR_AUTO_APPROVE_COPILOT_ERROR_RETRIES (a3479a9)
Bug Fixes
- always let main through the template's base-branch pre-filter (6d2fb7a)
- anchor the errored-review match and limit it to COMMENTED reviews (ce535af)
- don't re-request Copilot while a request is already pending (0c8306a)
- don't treat an errored Copilot review as clean (1b7db7c)
- don't treat an errored Copilot review as clean (c2dc28b)
- e2e: restore only script-owned repo variables; paginate; POSIX grep (032f698)
- e2e: stop sandbox-vars.sh status printing 404 JSON for unset vars (c831d82)
- e2e: stop sandbox-vars.sh status printing 404 JSON for unset vars (9055c44)
- make CLAUDE.md a regular file so SteerSpec Sync PRs check out (41183cb)
- make CLAUDE.md a regular file so SteerSpec Sync PRs check out (5770dc3)
- match the pending Copilot reviewer by exact login (2c97470)
- report errored reviews seen while polling; cover quoted error text (b18ba9c)
- retry on a stale review plus an errored head attempt; parse retries strictly (ffe8f67)
v1.8.1 2026-10-24
1.8.1 (2026-10-24)
Bug Fixes
- decide: fail closed when the file listing fails, and re-check the merge base (1bddfbc)
- decide: fail closed when the reviews cannot be listed for the stale-approval check (32ddb08)
- decide: gate every relaxed rounds-by-type entry on copilot-optional-paths (d762e32)
- decide: harden the rounds-by-type path gate (96f1f66)
- decide: keep a rounds-by-type 0 path-gated even when it is the default (f1f6966)
- decide: list the PR's changed files for the evaluated head SHA (23e1c17)
- decide: re-read the base branch around approval and name it as heads/<ref> (2bb5174)
- decide: restrict the default copilot-optional-paths to Markdown (ec6d685)
- update vulnerable and outdated dependencies (1f6f387)
- update vulnerable and outdated dependencies (d503919)
v1.8.0 2026-10-23
1.8.0 (2026-10-23)
Features
- decide: per-commit-type rounds and optional Copilot review (92c0aa2)
- decide: per-commit-type rounds and optional Copilot review (9d42255)
- decide: test the Copilot review request and add an e2e scenario (c7b3962)
- decide: test the Copilot review request and add an e2e scenario (93acbe4)
Bug Fixes
- decide: dismiss stale approvals with the workflow token when the bot token is refused (171625f)
- decide: do not treat a sibling auto-approve check as CI (697c2ff)
- decide: fail on an empty bot-login and ignore the bot's own review events (07a6cea)
- decide: fail on an empty bot-login and ignore the bot's own review events (6c4f026)
- decide: harden rounds-by-type against retitles, truncation and malformed entries (8932865)
- decide: ignore the Copilot check run in the CI gate for types that skip Copilot (f452356)
- decide: keep honoring the first-form copilot-optional approval marker (29f2b58)
- decide: only honor a 0 rounds type when changed files match an allowlist (dd6dad3)
- decide: pin approval to the evaluated head and re-check it before a threshold-0 approval (991bfa0)
- decide: stamp rounds approvals, narrow the check filters, document dismissal (3085536)
- decide: treat a whitespace-only bot-login as empty (e9b1ccc)
- decide: withdraw stale no-Copilot approvals first, fail closed, recheck after approving (2512f10)
- e2e: search every page of PR events for the Copilot request (13ee4f0)
v1.7.2 2026-10-21
1.7.2 (2026-10-21)
Bug Fixes
- decide: poll for the Copilot review itself when no check run exists (4a0239a)
- decide: poll for the Copilot review itself when no check run exists (14a5354), closes #86
- decide: re-apply the CI gates after waiting for the review (2c479bc)
- decide: re-apply the no-checks guard after the review wait; document both waits (f433617)