Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"schema_version": 1,
"workflow_version": 2,
"workflow_origin_version": 2,
"id": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"slug": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"title": "Correct remaining SpecSync 6.0 docs after the stable ship",
"description": "Correct remaining SpecSync 6.0 docs after the stable ship",
"kind": "documentation",
"state": "accepted",
"canonical_applied": true,
"base_commit": "6f11e34ef65710dd8839bfaaa6e6bc9004d6a530",
"created_at": 1789010246,
"updated_at": 1789012177,
"affected_specs": [
"github"
],
"affected_paths": [
"site/",
"docs/",
"specs/github/"
],
"no_spec_change": false,
"no_spec_change_rationale": null,
"acceptance_criteria": [
"docs/RELEASING.md records that promote executed for v6.0.0 on 2026-09-09 and uses a next-release example instead of a second 6.0.0 promotion",
"docs/ci-confidence.md records that promote executed and does not claim the final tag is missing",
"site polyglot example does not teach specsync check --explain for language detection or invented language_overrides",
"site CI-gate example dual-pins CorvidLabs/spec-sync@v6.0.0 with version 6.0.0 and uses real Action inputs",
"github spec companions do not require Windows for 6.0 RC qualification"
],
"selected_artifacts": [
"context",
"docs"
],
"dependencies": [],
"answers": {
"architecture_risk": "no",
"public_contract": "no"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"approvals": [
{
"gate": "definition",
"actor": "Leif",
"timestamp": 1789010704,
"digest": "3385783476e7c4c3e8a279a573eaacbe6869f7d0e369df2bf22d2713afe571d1",
"note": null,
"approved_scope": {
"schema_version": 1,
"change_id": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"title": "Correct remaining SpecSync 6.0 docs after the stable ship",
"description": "Correct remaining SpecSync 6.0 docs after the stable ship",
"kind": "documentation",
"affected_specs": [
"github"
],
"affected_paths": [
"docs/",
"site/",
"specs/github/"
],
"no_spec_change": false,
"no_spec_change_rationale": null,
"acceptance_criteria": [
"docs/RELEASING.md records that promote executed for v6.0.0 on 2026-09-09 and uses a next-release example instead of a second 6.0.0 promotion",
"docs/ci-confidence.md records that promote executed and does not claim the final tag is missing",
"github spec companions do not require Windows for 6.0 RC qualification",
"site CI-gate example dual-pins CorvidLabs/spec-sync@v6.0.0 with version 6.0.0 and uses real Action inputs",
"site polyglot example does not teach specsync check --explain for language detection or invented language_overrides"
],
"dependencies": [],
"supersedes": [],
"answers": {
"architecture_risk": "no",
"public_contract": "no"
}
},
"approved_delta_digests": {
"github": "be08860051bc05a37eca26b3d80dd05d7a010242fda73b596b3273a814467ea0"
}
},
{
"gate": "finalization",
"actor": "specsync:finalization",
"timestamp": 1789012177,
"digest": "1a4ffca846653b33fb0fcd02a0595950a7df167a0ffa01326ebee0f27300e573",
"note": "Same-PR finalization closing digest"
}
],
"reopenings": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
id: correct-remaining-specsync-6-0-docs-after-the-stable-ship
state: archived
type: documentation
base_commit: 6f11e34ef65710dd8839bfaaa6e6bc9004d6a530
---

# Correct remaining SpecSync 6.0 docs after the stable ship

## Intent

Correct remaining SpecSync 6.0 docs after the stable ship

## Affected Canonical Specs

- `github`
Comment thread
0xLeif marked this conversation as resolved.

## Acceptance Criteria

- docs/RELEASING.md records that promote executed for v6.0.0 on 2026-09-09 and uses a next-release example instead of a second 6.0.0 promotion
- docs/ci-confidence.md records that promote executed and does not claim the final tag is missing
- site polyglot example does not teach specsync check --explain for language detection or invented language_overrides
- site CI-gate example dual-pins CorvidLabs/spec-sync@v6.0.0 with version 6.0.0 and uses real Action inputs
- github spec companions do not require Windows for 6.0 RC qualification

## No-spec Rationale

Not applicable
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
change: correct-remaining-specsync-6-0-docs-after-the-stable-ship
artifact: context
---

# Context

`promote` executed for `v6.0.0` on 2026-09-09 (run 34418860417) at `b9ff3231`, qualified as `v6.0.0-rc.18`. crates.io serves 6.0.0; GitHub Latest is `v6.0.0`; Homebrew still serves 5.2.0. The immutable `@v6.0.0` Action tag still embeds default `6.0.0-rc.14`.

Operator and first-user copy still described the pre-ship state: cut `rc.17` and promote, `promote` never executed, and the final tag missing. Site examples still invented `specsync check --explain` for language detection, `[[language_overrides]]`, and Action inputs `score_threshold` / `annotations`. GitHub spec companions still required Windows for RC qualification even though `REQUIRED_PLATFORMS` is Ubuntu and macOS.

Constraints: no tags, no retag of `v6.0.0`, no floating `v6`, ASCII hyphens in site copy, dual-pin `uses: CorvidLabs/spec-sync@v6.0.0` with `version: '6.0.0'`, do not claim Homebrew is 6.0.0.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
## MODIFIED

### REQUIREMENT REQ-github-007

Release qualification SHALL bind Ubuntu and macOS results and final publication to one
immutable release-candidate commit, while ordinary product pull requests SHALL use Ubuntu as the
authoritative integration platform. Windows is not a 6.0 qualification or publication target.

Acceptance Criteria

- Ordinary development/product PRs do not schedule macOS or Windows integration jobs.
- An RC branch is frozen by an immutable annotated `vX.Y.Z-rc.N` marker resolving to one full SHA.
- Two active tag rulesets let humans create new RC markers and final tags but forbid every actor,
with no bypass, from updating or deleting either. Qualification validates exactly those two —
`SpecSync immutable RC tags` over `refs/tags/v*.*.*-rc.*` and `SpecSync immutable final tags`
over `refs/tags/v*.*.*` excluding the RC pattern — and fails closed on any broadening.
- Final-tag creation is not restricted to a release GitHub App, the final tag is created by the
release workflow's own `GITHUB_TOKEN` rather than a separate release identity, and promotion is
not behind a deployment-environment gate. Qualification states all three omissions on every run,
including successful ones, and fails if that statement is ever empty; it never reports a
protection it does not check.
- Permission to write a ref is granted to the promotion and publication jobs alone. The release
workflow's default permissions stay read-only, so no other job in the lane can create, move, or
delete a tag.
- Every required platform runs the same named Fledge RC lane at that exact SHA.
- Changing candidate content requires a new RC marker and fresh platform evidence.
- Promotion fails closed unless Ubuntu and macOS are green for the unchanged candidate SHA.
- Windows is neither built nor qualified as of 6.0; the Action refuses a Windows runner.
- The final `vX.Y.Z` tag is created only after promotion succeeds and points to that same SHA.
- Release uploads independently reject mismatched marker, tag, checkout, evidence, or artifact SHA.
- Release-chain Actions and executables have independent immutable pins, and publication freshly
revalidates tags, actual checkout, original platform evidence, and package hashes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
change: correct-remaining-specsync-6-0-docs-after-the-stable-ship
artifact: docs
---

# Docs

`docs/RELEASING.md` records that `promote` executed for `v6.0.0` on 2026-09-09 and uses a 6.0.1 example for the next cut. `docs/ci-confidence.md` marks `promote` executed and stops saying the final tag is missing. Site polyglot and CI-gate examples match the 6.0 binary and `action.yml` inputs. Site github-action.md says `comment: true` runs `specsync comment`, not `diff --format markdown`. Happy-path `change approve` examples pass `--actor`. `specs/github` companions require Ubuntu and macOS only for RC qualification and still document that `@v6.0.0` embeds `6.0.0-rc.14`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"schema_version": 2,
"change_id": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"implementation_commit": "3d3a9cc1e9de700efd3f9f3d908b8e540e5c54da",
"implementation_tree": "39179b349e3ea8e3f117e4813fccc608943fd34f",
"contract_digest": "3385783476e7c4c3e8a279a573eaacbe6869f7d0e369df2bf22d2713afe571d1",
"workspace_digest": "1fcc06fdb1f67153bc927ea39014d44d9914b00473c8736280c7cd3f0963773f",
"closing_digest": "1a4ffca846653b33fb0fcd02a0595950a7df167a0ffa01326ebee0f27300e573",
"review_digest": "5d7d3781b089fd7161e451bb6e898894d10da2b5c4ac7ddddd070807fdf303b3",
"finalization_digest": "2a9aef7de0f8d213fc72433f1a8053ade72a86972cd736bb4f6798579266573f",
"timestamp": 1789012177
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Lesson bundle — correct-remaining-specsync-6-0-docs-after-the-stable-ship

Material for folding this change's lessons into the affected specs' `context.md`.
Synthesise from what actually happened below; do not restate the change description.

## What this change was

- **Title**: Correct remaining SpecSync 6.0 docs after the stable ship
- **Kind**: Documentation
- **Specs**: github
- **Paths**: site/, docs/, specs/github/
- **Acceptance**: docs/RELEASING.md records that promote executed for v6.0.0 on 2026-09-09 and uses a next-release example instead of a second 6.0.0 promotion
- **Acceptance**: docs/ci-confidence.md records that promote executed and does not claim the final tag is missing
- **Acceptance**: site polyglot example does not teach specsync check --explain for language detection or invented language_overrides
- **Acceptance**: site CI-gate example dual-pins CorvidLabs/spec-sync@v6.0.0 with version 6.0.0 and uses real Action inputs
- **Acceptance**: github spec companions do not require Windows for 6.0 RC qualification

## Evidence

- Verification commit: `3d3a9cc1e9de700efd3f9f3d908b8e540e5c54da`
- Base commit: `6f11e34ef65710dd8839bfaaa6e6bc9004d6a530`
- Verified by: `specsync check --spec cmd_change --spec github`

## From the change's context.md

# Context

`promote` executed for `v6.0.0` on 2026-09-09 (run 34418860417) at `b9ff3231`, qualified as `v6.0.0-rc.18`. crates.io serves 6.0.0; GitHub Latest is `v6.0.0`; Homebrew still serves 5.2.0. The immutable `@v6.0.0` Action tag still embeds default `6.0.0-rc.14`.

Operator and first-user copy still described the pre-ship state: cut `rc.17` and promote, `promote` never executed, and the final tag missing. Site examples still invented `specsync check --explain` for language detection, `[[language_overrides]]`, and Action inputs `score_threshold` / `annotations`. GitHub spec companions still required Windows for RC qualification even though `REQUIRED_PLATFORMS` is Ubuntu and macOS.

Constraints: no tags, no retag of `v6.0.0`, no floating `v6`, ASCII hyphens in site copy, dual-pin `uses: CorvidLabs/spec-sync@v6.0.0` with `version: '6.0.0'`, do not claim Homebrew is 6.0.0.

## From the change's testing.md

# Testing

- `specsync check --strict github --force` passes.
- `.github/scripts/validate-release-candidate.py` `REQUIRED_PLATFORMS = ("ubuntu", "macos")`.
- `.github/workflows/release.yml` qualify matrix is `ubuntu-latest` and `macos-14` only.

## Requirement evidence

| ID | Evidence |
|----|----------|
| REQ-github-007 | Canonical requirement, github.spec.md promote scenario, testing.md RC rows, and context.md now bind Ubuntu and macOS only. `REQUIRED_PLATFORMS` is `("ubuntu", "macos")`. Windows is refused by the Action and is not a qualify target. |

## Where these lessons go

- `specs/github/context.md`
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"schema_version": 1,
"reviews": [
{
"schema_version": 2,
"change_id": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"reviewer": "Leif",
"provenance": {
"schema_version": 1,
"provider": "github_actions_check",
"required_check": "SpecSync scoped review"
},
"verdict": "pass",
"implementation_commit": "3d3a9cc1e9de700efd3f9f3d908b8e540e5c54da",
"contract_digest": "3385783476e7c4c3e8a279a573eaacbe6869f7d0e369df2bf22d2713afe571d1",
"execution_digest": "24ef188b97a2c1ed91368991003fa50e99cc23b819819b5b546fa9040900f325",
"workspace_digest": "1fcc06fdb1f67153bc927ea39014d44d9914b00473c8736280c7cd3f0963773f",
"timestamp": 1789011656
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"schema_version": 2,
"change_id": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"reviewer": "Leif",
"provenance": {
"schema_version": 1,
"provider": "github_actions_check",
"required_check": "SpecSync scoped review"
},
"verdict": "pass",
"implementation_commit": "3d3a9cc1e9de700efd3f9f3d908b8e540e5c54da",
"contract_digest": "3385783476e7c4c3e8a279a573eaacbe6869f7d0e369df2bf22d2713afe571d1",
"execution_digest": "24ef188b97a2c1ed91368991003fa50e99cc23b819819b5b546fa9040900f325",
"workspace_digest": "1fcc06fdb1f67153bc927ea39014d44d9914b00473c8736280c7cd3f0963773f",
"timestamp": 1789011656
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"schema_version": 1,
"workflow_version": 2,
"workflow_origin_version": 2,
"id": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"slug": "correct-remaining-specsync-6-0-docs-after-the-stable-ship",
"title": "Correct remaining SpecSync 6.0 docs after the stable ship",
"description": "Correct remaining SpecSync 6.0 docs after the stable ship",
"kind": "documentation",
"state": "archived",
"canonical_applied": true,
"base_commit": "6f11e34ef65710dd8839bfaaa6e6bc9004d6a530",
"created_at": 1789010246,
"updated_at": 1789012564,
"affected_specs": [
"github"
],
"affected_paths": [
"site/",
"docs/",
"specs/github/"
],
"no_spec_change": false,
"no_spec_change_rationale": null,
"acceptance_criteria": [
"docs/RELEASING.md records that promote executed for v6.0.0 on 2026-09-09 and uses a next-release example instead of a second 6.0.0 promotion",
"docs/ci-confidence.md records that promote executed and does not claim the final tag is missing",
"site polyglot example does not teach specsync check --explain for language detection or invented language_overrides",
"site CI-gate example dual-pins CorvidLabs/spec-sync@v6.0.0 with version 6.0.0 and uses real Action inputs",
"github spec companions do not require Windows for 6.0 RC qualification"
],
"selected_artifacts": [
"context",
"docs"
],
"dependencies": [],
"answers": {
"architecture_risk": "no",
"public_contract": "no"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
change: correct-remaining-specsync-6-0-docs-after-the-stable-ship
artifact: testing
---

# Testing

- `specsync check --strict github --force` passes.
- `.github/scripts/validate-release-candidate.py` `REQUIRED_PLATFORMS = ("ubuntu", "macos")`.
- `.github/workflows/release.yml` qualify matrix is `ubuntu-latest` and `macos-14` only.

## Requirement evidence

| ID | Evidence |
|----|----------|
| REQ-github-007 | Canonical requirement, github.spec.md promote scenario, testing.md RC rows, and context.md now bind Ubuntu and macOS only. `REQUIRED_PLATFORMS` is `("ubuntu", "macos")`. Windows is refused by the Action and is not a qualify target. |
Loading
Loading