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
53 changes: 16 additions & 37 deletions .agents/skills/check-board/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: check-board
description: Use when the FS-GG Coordination board looks stale, blockers may have cleared, or planning needs ground truth. Reconcile project fields against live issues and surface judgement calls.
description: Inspect the explicitly selected FS-GG board against native evidence; explain stale planning, blockers and Unknowns without repairing fields or granting dispatch.
---

# check-board (FS-GG)
Expand Down Expand Up @@ -48,42 +48,21 @@ fsgg-coord-engine board-v2 inspect --binding-file product-binding.json --report-
Inspection remains read-only and grants no writes, selection or operation authority. Local-only workspaces
retain their existing route. This organization preparation changes no product source or acceptance.

### Independently qualified legacy-product reconciliation

The legacy recipes below apply only to a separately qualified legacy-product target and lifecycle.
Before any product command, verify the actual product target/binding and configured product repository;
a repository filter alone does not select a board. Refuse missing or organization-default target facts.
No historical organization live opt-in exists. These recipes cannot repair unavailable V2 evidence or
select Project 1, including when a caller requests a historical organization scope.

For that verified product target, replace `<configured-product-repo>` with its actual repository:

```bash
scripts/fsgg-coord reconcile --repo <configured-product-repo> --json
scripts/fsgg-coord lint --repo <configured-product-repo> --json
```

`reconcile` is fresh and dry-run unless `--apply` is present. Review its typed mechanical findings and
the product's existing write authority before the scoped apply; this skill grants no new effect:

```bash
scripts/fsgg-coord reconcile --repo <configured-product-repo> --apply
scripts/fsgg-coord reconcile --repo <configured-product-repo> --json
scripts/fsgg-coord lint --repo <configured-product-repo> --json
```

A repair is applied only after its fresh post-mutation scan observes the intended fields. Failed or
stale readback remains failed, never clean. Exit75 retains the reported backoff. Queued writes are not
landed: queue-wide replay has no repository filter and needs its separately admitted original-effect
recovery route and genuine target readback. No replay command is authorized by this check-board pass.
The [offline receipt examples](references/mechanical-reconciliation.md#executable-receipt-examples)
retain their independently qualified meaning and perform no live writes.

`lint` findings are report-only. Investigate unknown blockers, undeclared paths, unclaimed work and
outcome/child disagreements without rewriting issues, inventing dependencies or closing work. Report
product-scoped mechanical results, queued/failed writes, judgement findings and the final fresh result.
Use [mechanical reconciliation](references/mechanical-reconciliation.md) and
[judgement findings](references/judgement-findings.md) within that product boundary.
### Repair and historical product evidence

Inspection is read-only. Before any product command, verify the actual product target/binding and configured product repository;
Refuse missing or organization-default target facts. No historical organization live opt-in exists.
A repair needs its own current effect authority, qualified caller and independent readback;
this entrypoint supplies none. Failed reads retain Unknown rather than selecting an older route.

Historical product reconciliation and the offline receipt examples are retained in
[mechanical reconciliation](references/mechanical-reconciliation.md) and
[deep detail](references/deep-detail.md). They are evidence, not a live invocation recipe.
In particular, queue-wide replay has no repository filter and requires genuine original-effect
custody and separately admitted recovery. Do not replay a queue from an inspection pass.
Use [judgement findings](references/judgement-findings.md) to explain discrepancies without
rewriting issues, inventing dependencies or choosing Status. Current canonical work-board
owns selection and guarded planning; future controller conversion remains separate.

## Historical organization examples are data only

Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/check-board/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
interface:
display_name: "Check Board"
short_description: "Reconcile board state with live GitHub issues"
default_prompt: "Use $check-board to reconcile the FS-GG Coordination board against live issue state."
short_description: "Inspect board evidence without writes"
default_prompt: "Use $check-board to inspect the explicitly selected FS-GG board, explain planning discrepancies and retain Unknowns without repairs or dispatch."
5 changes: 5 additions & 0 deletions .agents/skills/check-board/references/deep-detail.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@


Historical/compatibility evidence only. The current [check-board entrypoint](../SKILL.md)
is read-only and grants no repair, claim, queue replay or field-write authority.
Any genuine product repair/recovery requires its own actual qualified caller, target,
original custody and separately admitted operation. Archived commands are not a live fallback.
# check-board (FS-GG)

## Historical and separately scoped mechanics
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Mechanical reconciliation

Historical/compatibility evidence only. The current [check-board entrypoint](../SKILL.md)
is read-only and grants no repair, claim, queue replay or field-write authority.
Any genuine product repair/recovery requires its own actual qualified caller, target,
original custody and separately admitted operation. Archived commands are not a live fallback.

## Organization scope is read-only

For prepared .9/.11 organization consumers use only
Expand Down
25 changes: 11 additions & 14 deletions .agents/skills/continue-from-handoff/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,15 @@ from worker reports and proposals. Missing temporary evidence remains unknown;
do not reconstruct results or repeat a consumed operation to fill that gap.
Apply the selected [forward-recovery boundary](../work-board/references/lifecycle-contract.md#recover-ownership-and-unavailable-history):
the unavailable historical evidence-search task is closed as unavailable; stop repeated searches and
requests. Preserve all known original records, 439 inherited reservations, 46 later original records
and unproved outcomes Unknown, without release or replay. For a genuinely fresh operation, reconcile
requests. Preserve all known original records and unproved outcomes Unknown, without release or replay.
Retrieve the actual reservation identities and scope from their existing owning records;
this generic entrypoint maintains no incident count or cohort ledger. For a genuinely fresh operation, reconcile
current relevant ownership and remaining capacity, separate generation/writable state/identity/outputs,
and fence shared destinations against old-actor interference. Missing history is not empty coverage;
unresolved relevant interference still blocks its operation. Unrelated unavailable history does not
globally block demonstrated-independent work, and a new ID cannot disguise an uncertain-effect retry.
Use existing journals/custody, not another recovery ledger. SC2's existing-host container scope does
not change the separate V3 two-machine portability requirement.
Use existing journals/custody, not another recovery ledger. Product-specific host or portability
obligations remain in their actual owning plans rather than this generic recovery entrypoint.

Also recover each pending request's canonical
channel and original message identity, owner, expected response, response/escalation
Expand All @@ -98,16 +99,12 @@ It owns model routing, lanes, telemetry, PR admission, native checks, source int
separate publication/receiver acceptance boundaries. Do not restore duplicate status or closure upkeep.
Do not duplicate its lifecycle here.

Invocation authorizes autonomous decisions and completion of the recovered
Unified Roadmap v3 and the in-scope games outcomes without human intervention, including its necessary source
changes, PRs, merges, releases, and receiver work within the recorded programme
scope. Choose implementation details and resolve routine tradeoffs directly;
do not stop for preference questions or repeated confirmation. This does not
create missing credentials, bypass protected checks, renew expired grants, or
replace effect-specific admission. Inspect and obtain valid machine admission
through the existing route before each concrete effect. Where access or an
external dependency genuinely prevents an effect, preserve the blocker and
continue independent ready work; never claim unavailable human feedback.
Resume only the user's actually authorized recovered scope. Reading or editing this
entrypoint grants no blanket programme, games, release or receiver authority. Existing
authorization may permit autonomous completion, but it creates no missing credentials,
protected approval, runtime capability or renewed original clock. Resolve actual current
owner, plan and operation admission through work-board before the affected effect.
Preserve blocked external feedback and continue demonstrated-independent authorized work.

Seek dependency-ready parallel opportunities aggressively within available
worker, CPU, integrator and hosted-CI capacity. Repair and integrate the existing
Expand Down
102 changes: 25 additions & 77 deletions .agents/skills/cut-nuget-release/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,35 @@
---
name: cut-nuget-release
description: Use when asked to release every stale FS-GG NuGet producer. Audit packed inputs, prepare each coherent set once, publish exact manifest-bound bytes to both feeds, promote, smoke, and reconcile consumer pins.
description: Explicitly select the maintained FS-GG publishing contract for an owed NuGet release; preserve candidate identity, separate effect admission and selected consumer acceptance.
---

# cut-nuget-release (FS-GG)
# Selected NuGet release entrypoint

Read [publishing-and-deployment](../publishing-and-deployment/SKILL.md) before acting. It owns versioning,
feed, coherent-set, and registry rules. This skill applies those rules through the repository's current
pack-once release saga.
Read [publishing-and-deployment](../publishing-and-deployment/SKILL.md) before acting.
It owns the current release route, coherent-set versioning, candidate/preflight,
feed verification, promotion and selected consumer adoption. This compatibility
name supplies no additional release, retry or recovery authority.

## Invariants
Resolve the actual producer, changed package inputs, promoted predecessor and genuinely
owed release. Source delivery, candidate qualification, publication and installed
adoption remain separate. Do not release every producer merely because this entrypoint
was invoked; preserve existing publication owners and exact selected operation scope.

- Release only merged, exact-`main` bytes.
- Never repack in a package publisher. `release-saga-prepare.yml` is the sole pack site.
- Never reuse a version, move a release tag, overwrite an asset, or bypass OIDC/trusted publishing.
- The prepared `release-manifest.json` binds every package byte, package id/version, and source SHA.
- Package publishers download those exact assets, initialize their durable journals, and resume
idempotently after a failure.
- Promote only after every package journal is complete and both feeds expose the complete coherent set
with payload identity.
- Publish first; update canonical registry pins only after both feeds are observed.
For the hub coherent set, use the selected successor operating window in
[utel-release-successor](../../../docs/roadmaps/utel-release-successor.md).
Require its immutable candidate/run/artifact/raw archive and successful `publish=false`
preflight before a separately admitted publication. Preserve the original bytes,
journal and independent readbacks; a consumed publication or unresolved send never
becomes a new operation by changing an identifier or rerunning a workflow.

## 1. Establish what is owed
Historical release-saga prepare, component-publisher and promote routes remain sealed
under GS2-08.9. This skill provides no executable legacy recipe or fallback. Missing
current authority, tooling or feed evidence leaves the affected operation incomplete.

Fetch `main` and tags in every rostered producer without disturbing local changes. Compare each current
pack input—including staged skills, templates, targets, generated manifests, and runtime sources—with
the latest successfully published tag. Classify each producer as current, release owed, or blocked.
Derive dependency order from package references, registry contracts, consumer pins, and dispatch edges.
Use scoped normal PR delivery for source changes. The global managed `speckit-merge`
recipe is excluded from FS-GG landing: no branch sweep, direct trunk push/deletion,
mandatory repack or shared-cache purge. Retain canonical publication and consumer
owners; do not patch a vendored global skill to repair repository routing.

For the hub coherent set, FS.GG.Coord.Cli, FS.GG.Kit, and FS.GG.Drivers always receive one fresh version.
Choose the smallest valid SemVer bump under current policy; never infer currency from a project version
or registry row alone.

## 2. Prepare once

Land version, lockfile, release-note, package-input, and manifest changes through a normal reviewed PR.
On exact merged `main`, dispatch `.github/workflows/release-saga-prepare.yml` with the fresh version
and source SHA. Require its Core/CLI/package gates to pass and inspect the draft
`coherent-set/v<VERSION>` release:

- exactly the expected packages were packed once;
- `release-manifest.json` binds their sizes and SHA-256 digests to the exact merged source SHA;
- the draft contains no reused or overwritten assets;
- all three coherent tags will resolve to that same source SHA.

A preparation run is the reversible rehearsal boundary. Package-publisher workflows have no dry-run or
local-pack mode.

## 3. Publish and resume

Create/push the coherent tags in the ordering required by the saga, or use the sanctioned recovery
dispatch with the exact prepared source SHA. Each of `release-coord-engine.yml`,
`release-kit.yml`, and `release-drivers.yml` must:

1. download the prepared manifest and package bytes;
2. run `scripts/release-saga-ci.sh init` for its package and exact source SHA;
3. publish the prepared package to GitHub Packages;
4. record the GitHub observation in its immutable package journal;
5. authenticate to nuget.org through OIDC trusted publishing;
6. publish the same prepared payload and record the public observation.

On failure, repair the cause and rerun the same publisher against the same manifest. The journal must
make completed steps idempotent and reject identity, source, version, or byte drift.

## 4. Promote and verify

Dispatch `.github/workflows/release-saga-promote.yml` only after all three journals exist. Require it to
verify the manifest, source SHA, coherent tags, complete journals, both feeds, and monotonic channel
ordering before promotion. Then:

- download each package from both feeds and compare payload entries, excluding nuget.org's
`.signature.p7s`;
- install the public coord engine in a clean tool home and run command-contract plus safe live reads;
- materialize Kit/Drivers in a clean consumer and verify expected files, modes, digests, and versions;
- update consumer pins and `registry/dependencies.yml` through the sanctioned generated projections;
- merge the registry/pin PR, fetch exact `main`, and rerun feed, source, pin, and coherent-set checks.

## Definition of done

Done means the complete expected set is available from both feeds, payload-identical, promoted, adopted,
and pinned on merged `main`; all package/tag/source identities agree; fresh-consumer smoke passes; and
no stale bot PR/branch remains. A tag, one green publisher, one feed, or an updated registry alone is
not completion.

Report exact version, source SHA, PRs, tags, workflow runs, journals, feed observations, promotion,
consumer smoke, and merged registry/pin evidence. If any part remains, report the release as incomplete.
Report the actual selected source/candidate, operation result and remaining acceptance.
A package, tag, registry digest or green source PR alone does not complete adoption.
4 changes: 2 additions & 2 deletions .agents/skills/cut-nuget-release/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
interface:
display_name: "Cut NuGet Release"
short_description: "Release every stale FS-GG NuGet producer"
default_prompt: "Use $cut-nuget-release to audit and publish every stale FS-GG NuGet producer in dependency order."
short_description: "Select the maintained release contract"
default_prompt: "Use $cut-nuget-release to resolve the owed producer release through canonical publishing-and-deployment, preserving original bytes and separate effect admission."

policy:
allow_implicit_invocation: false
7 changes: 4 additions & 3 deletions .agents/skills/padd-item/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: padd-item
description: Add or reuse a request for the explicitly configured product through canonical intake; preserve qualified legacy-product compatibility.
description: Add or reuse a request for the explicitly configured product through canonical native intake; preserve exact scope and keep retired legacy recipes non-executable.
---

# Configured product intake
Expand All @@ -15,6 +15,7 @@ Reuse an existing semantic match. If another repository owns the request, use

For selected V2 product scope, do not run legacy intake/reconcile/apply/add/flush. Return created/reused
identity and exact pending effects, or a concrete draft when the native operation is unavailable.
Only an independently qualified legacy PRODUCT invocation may load
[legacy-product intake](references/legacy-product-intake.md); it cannot authorize organization operations.
The [retired legacy-product appendix](references/legacy-product-intake.md) records its disposition,
not an executable alternative. No legacy receiver is selected here; any future exception needs its
actual supported target, installed caller and separately admitted effect authority.
File the requested work; do not implement it. A clearing invocation returns to work-board after intake.
Loading
Loading