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
4 changes: 3 additions & 1 deletion openwiki/acg-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@ the Sparkle appcast signature and checksum.
The publisher uses a secret-free protected `release` environment and the ephemeral
workflow token with `contents: write`; other jobs default to `contents: read`.
Publication is draft-first and non-idempotent. Final acceptance requires public
metadata and downloaded-byte verification.
metadata and downloaded-byte verification. For uncertain responses, use
[bounded GitHub reconciliation](../plugins/acg-release/skills/macos/references/standard.md#bounded-github-reconciliation),
which owns recovery and reporting of unresolved publication state.

Shared Developer ID and team App Store Connect API-key material uses unambiguous
organization-secret names. Conformance requires effective target access and no
Expand Down
4 changes: 4 additions & 0 deletions openwiki/gh-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ readback or explicitly retired after the user accepts the protection delta. The
workflow does not invent a team, role, app, or preservation adapter for semantics
that the approved profile says to remove.

For stale previews or uncertain writes, use the canonical
[reconciliation rules](../plugins/gh-settings/skills/sync/references/standard.md#reconciliation).
That section owns bounded readback and the conditions for resuming writes.

The public invocation is `$gh-settings:sync`.

## Public-Surface Change Recipe
Expand Down
6 changes: 4 additions & 2 deletions plugins/acg-release/skills/macos/references/standard.md
Original file line number Diff line number Diff line change
Expand Up @@ -441,8 +441,10 @@ Do not blindly retry create, delete, upload, or publish requests. When a mutatio
response is missing or uncertain, use bounded authoritative reads to decide whether
the intended state exists. Continue only when readback proves one unambiguous state.
If a new draft or public release is temporarily absent from a release listing, use
its known stable ID and bounded convergence. Failure to converge keeps the release
private and stops the run.
its known stable ID and bounded convergence. If readback does not converge, stop
further mutations and report the unresolved state. After an uncertain publication
request, do not claim that the release is private or public without authoritative
readback.

An already public same-tag rerun is read-only and idempotent. Validate its remote
metadata and downloaded bytes, then exit successfully. Do not apply the new-release
Expand Down
6 changes: 4 additions & 2 deletions plugins/gh-settings/skills/sync/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,10 @@ read-only and reconcile only the exact repository.
credentials in repository files or commands.
- Prefer supported machine interfaces. Use the GitHub Web UI only for an exact
control with no sufficient machine route, through an existing permitted session.
- Treat stale preview data, changed identity, target, visibility, parent state,
product availability, or uncertain write result as a stop condition.
- Suspend writes when the preview is stale or a write result is uncertain. Use
the standard's reconciliation rules for bounded authoritative readback, refreshed
previews, and resumption within existing authority. Unresolved state blocks
further writes to the affected target; it does not establish success.

## Report

Expand Down
8 changes: 7 additions & 1 deletion plugins/gh-settings/skills/sync/references/standard.md
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,13 @@ object, or value that the request did not bind.

Refresh every previewed value immediately before writing. Recompute drift. A
changed identity, target, visibility, parent control, product availability,
destructive object, or uncertain result invalidates the preview.
destructive object, or uncertain result invalidates the preview. Suspend affected
writes and use bounded authoritative reads to resolve the state. Refresh target
and identity bindings and show the corrected preview before resuming. Resume only
when the state is unambiguous and the remaining drift is covered by existing
authority. Obtain new authority for any added target, scope, product, charge,
destructive object, or value. If readback cannot resolve the state within its
bounds, report the gap and leave further writes to that target suspended.

Apply the smallest sufficient writes. Use this order unless a dependency requires
a safer sequence:
Expand Down