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
2 changes: 1 addition & 1 deletion .agents/skills/atlas/assets/seed/catalog.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"citations":[{"path":".agents/skills/work-board/SKILL.md","repository":"FS-GG/.github","revision":"623bc1bed3f8b80c951d807ac0cadfe2a6265c95","sha256":"03863fef0f543be34164549f9cd1ffbde8650f0e15454b6a4af0b694b25e020e"}],"conflictsWith":[],"id":"github/work-board-parallel-opportunities","kind":"decision","recordedAt":"2026-10-19T15:01:09Z","repository":"FS-GG/.github","schema":"fsgg.atlas/1","status":"recorded","summary":"User-selected coordinator behavior requires an explicit opportunity pass at entry/resume and after delivery, changed blockers or the start of hosted waits. Compare eligible Deliveries by actual prerequisites, existing owners/PRs, touch-sets and shared outputs; disjoint source preparation, review or evidence collection may advance while another lane waits. Parent/sibling blocking does not automatically fence independent work. Worker slots do not establish resource capacity: selected operations require real remaining CPU/memory, integrator and hosted-CI capacity after active demand and known/Unknown reservations, preserving serial expensive-run limits and one integrator for shared surfaces. Delegate only when the runtime permits it and isolation/ownership and value justify coordination cost; preserve existing owner/attempt rather than duplicate a lane. If parallel work is unavailable, continue eligible serial work and identify the determining constraint and reopening condition. Do not split merely to fill slots, weaken acceptance or create reporting-only workers or another scheduling ledger. This extends the already delivered unfiltered intake triage requirement without changing protected enrollment, qualified caller/binding or native admission. The skill edit grants no runtime delegation where prohibited; source delivery is not installed fleet adoption.","supersedes":[],"tags":["work-board","parallelism","capacity","ownership","triage"],"title":"Work-board actively seeks useful parallel work within actual remaining capacity"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"citations":[{"path":".agents/skills/stop-with-handoff/SKILL.md","repository":"FS-GG/.github","revision":"300b94f80a17f3d6f58af33008c674a18e9b2f34","sha256":"0405c82818f7640c23e675813eb5b8c876c03e1c05a94da288131b6246edae05"},{"path":".agents/skills/continue-from-handoff/SKILL.md","repository":"FS-GG/.github","revision":"300b94f80a17f3d6f58af33008c674a18e9b2f34","sha256":"f84257c43e6d6aa28bd5f3275c12172abb299c3d192376870fe5679934a6b4fb"}],"conflictsWith":[],"id":"programme/stop-resume-recovery","kind":"decision","recordedAt":"2026-10-19T14:45:35Z","repository":"FS-GG/.github","schema":"fsgg.atlas/1","status":"recorded","summary":"User-selected simplification retains actual shutdown and original-effect custody while removing a mandatory report/PR on every stop. The board, owning issues and native PR/operation evidence hold current scope, ownership, accepted progress, blockers and next actions; Atlas holds curated knowledge and stable retrieval pointers. A stop reconciles those records within existing authority and returns their restart pointer when sufficient. Only missing recovery information is saved: local/interrupted work, actual running or Unknown jobs, cleanup, original consumed/uncertain attempts, private evidence paths, pending reply identities/deadlines and absent authorization constraints. A separate timestamped report and normal save PR are conditional on a genuine repository recovery gap, not required ceremony. Continuation starts from current native issue/board and Atlas pointers and consults old reports only for missing obligations; no optional report absence is a blocker. Dirty work, privacy, qualified binding/caller boundaries, original reservations and uncertain effects remain preserved; fresh native/action admission is required before execution. The change neither stops another session when the skill is edited nor grants new enrollment, planning writes, retries, publication or installed fleet adoption. Source delivery and current runtime consumption remain distinct.","supersedes":[],"tags":["programme","handoff","recovery","stop","resume","atlas"],"title":"Stop preserves recovery gaps and resumes from durable issue and Atlas pointers"}
17 changes: 11 additions & 6 deletions .agents/skills/continue-from-handoff/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
name: continue-from-handoff
description: "Resume authorized FS-GG work from the newest saved handoff, reconcile current native state and original effects through canonical work-board."
description: "Resume authorized FS-GG work from durable issue/Atlas pointers and any needed recovery handoff through canonical work-board."
---

# Continue From Handoff

Resume the saved authorized scope through canonical work-board to its actual acceptance outcomes.
Creating, editing, or inspecting this skill does not start programme execution.

Retrieve Atlas IDs named by the handoff using [$atlas](../atlas/SKILL.md); reconcile
Retrieve Atlas IDs named by the restart pointer or handoff using [$atlas](../atlas/SKILL.md); reconcile
supersession/conflicts and verify citations/live facts. Keep missing knowledge explicit.

## Resolve strategic scope
Expand Down Expand Up @@ -44,7 +44,12 @@ that repository, not the operating system's `/docs` directory. Preserve dirty
checkouts and interrupted worktrees; fetching current default-branch refs does
not authorize resetting, cleaning, or overwriting them.

List Markdown handoffs locally and on the current protected default branch.
Start with the supplied restart pointer, current owning issues/native board and Atlas IDs. A stop
may need no separate report when these records already cover recovery. Do not require a timestamped
file or reread an old report merely because it is the newest file. Use historical reports only to
recover missing obligations, original operation identities or local/private recovery pointers.

When a report is needed, list Markdown handoffs locally and on the current protected default branch.
Select the newest by its recorded UTC timestamp, not filesystem modification
time. Accept existing `YYYY-MM-DD-HHMM` and new `YYYY-MM-DD-HHMMSS` filenames;
use a document's explicit UTC timestamp for other names and the full path to
Expand All @@ -54,10 +59,10 @@ work: identify it as unmerged and verify its claims. The delegated recovery owne
report fully once and returns its path, timestamp, source revision and compact decision view; the parent
expands only unresolved decisions or its own safeguards. When delegation is unavailable, the parent
performs this recovery within the same bounds and reports that fallback. If none exists,
record the missing handoff and recover from the canonical roadmap and live work
rather than waiting for human input.
recover the missing facts from current owning/native records and strategic plan navigation
without treating the absence of an optional report as a blocker.

Reconcile its open PRs, current heads/checks, merged trees, publication and
Reconcile the recovered open PRs, current heads/checks, merged trees, publication and
receiver state, partial files, and worker or
process status against available live evidence. Keep observed results separate
from worker reports and proposals. Missing temporary evidence remains unknown;
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/continue-from-handoff/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
interface:
display_name: "Continue From Handoff"
short_description: "Recover owners and resume authorized V2 work"
default_prompt: "Use $continue-from-handoff to resume the latest saved handoff and advance its authorized scope through canonical work-board."
default_prompt: "Use $continue-from-handoff to resume from durable issue/Atlas pointers and any needed recovery handoff, then advance the authorized scope through canonical work-board."
111 changes: 53 additions & 58 deletions .agents/skills/stop-with-handoff/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: stop-with-handoff
description: "On session save, stop FS-GG workers, write a timestamped restartable handoff, land it by normal PR, end programme tasks."
description: "On session stop/save, retire owned work and preserve missing recovery state; use durable issue and Atlas pointers when sufficient."
---

# Stop With Handoff
Expand All @@ -9,7 +9,7 @@ Stop programme execution immediately and preserve enough verified state for a
later [$continue-from-handoff](../continue-from-handoff/SKILL.md) invocation.
Creating, editing, or inspecting this skill does not stop another task.

Include delivered Atlas IDs and any unfinished capture gap/owner in the saved report;
Include delivered Atlas IDs and any unfinished capture gap/owner in the restart pointer;
follow [$atlas](../atlas/SKILL.md) without restarting capture work after shutdown.

## Stop execution before saving
Expand All @@ -33,75 +33,70 @@ the real completed, failed, or cancelled outcome; reconcile available usage.
Keep coverage gaps explicit. Mark an existing programme goal paused when the
runtime supports it. A stop request does not mean the roadmap is complete.

## Save a restartable handoff

For .9/.11 source preparation, retain the
[organization consumer boundary](../work-board/references/organization-v2-inspection.md) in recovery
and handoff. The organization Project 3 cutover is accepted; old pre-cutover directions are history. Source delivery
still does not adopt a new executable/caller or change binding/selector. Do not restore manual status upkeep.
After accepted cutover, preserve final binding/enrollment, exact outcome/slice/attempt and owner,
existing Current deliverable/native PR/head, issue/body/current-plan revisions, pending requests and
all original/uncertain reservations. Fresh-read determining native/action/intake/runtime facts through
the existing integrator before resuming an operation; a saved inspection or stdin digest supplies no
authority or renewed freshness. Missing facts keep scoped Unknowns without duplicate implementation
or V1 fallback. Hand off original unresolved effects; never settle or retry them from board status.


Resolve the owning FS-GG `.github` repository. `/docs/handoffs` means its
repo-relative `docs/handoffs` directory; create that directory if absent.
Use `YYYY-MM-DD-HHMMSS-unified-roadmap-handoff.md` with current UTC time. Never
overwrite an earlier report; add a suffix if an exact name already exists.
Read the latest handoff and current authoritative state to retain unresolved
obligations without copying stale claims.

Write the smallest complete report containing:

- Stop timestamp, original programme objective, latest user priorities and
authorization, paused/incomplete status, and canonical
[v3 roadmap](https://github.com/FS-GG/.github/blob/main/docs/roadmaps/2026-10-07-unified-development-roadmap-v3.md),
[games roadmap](https://github.com/FS-GG/.github/blob/main/docs/roadmaps/2026-10-07-games-development-roadmap.md) and skill links.
Preserve older v2 references as archive lineage, not current scheduling authority.
- Verified progress with exact source revisions, PRs, native runs, publication
and receiver results; distinguish source delivery from installed behavior.
- Each lane's owner, working/waiting/stopped state, next concrete action, and
the acceptance signal or dependency that unlocks it.
- Branch/worktree locations, dirty or interrupted files, open PR/check state,
pending source and qualification, and independent parallel
opportunities for the successor.
- Failures, unresolved causes, actual attempt outcomes, operation consumption,
cleanup status, immutable evidence access paths/digests, expired admission,
and the constraints needed to avoid unsafe or duplicate retries.
- A short ordered restart plan and the remaining gates to actual completion.

Apply [agent-handoff](../agent-handoff/SKILL.md) for evidence and writing quality.
If the optional `$technical-writer` skill is available, apply it; its absence does not block this route.
Otherwise use concise evidence-grounded prose directly; no optional skill path is a package dependency.
Keep credentials, raw telemetry, private payloads and unnecessary personal
identifiers out of the committed report. Private evidence paths can identify
where authorized successors should inspect it; do not copy their contents.

## Land the save and end the session

Invocation authorizes the handoff-only commit, push, PR and merge, unless the
user explicitly asks for a local-only save. Use an isolated branch/worktree
## Reconcile durable state and save only recovery gaps

Use the board, existing owning issues and native PR/operation evidence for scope, ownership,
accepted progress, blockers and next actions. Use Atlas for curated knowledge and stable retrieval
pointers. Reconcile changed facts there within existing authority; do not duplicate them in a
session report or create another current-status ledger. A stop does not authorize new enrollment,
planning-field changes or retries of uncertain effects.

Preserve the accepted Project 3 cutover and each selected product's qualified binding/caller scope.
Source delivery still does not adopt a new executable/caller or change a binding/selector. Do not
revive V1 fallback or manual status upkeep. Keep exact
outcome/slice/attempt and owner, existing PR/head, issue/body/plan revisions, pending requests and
original/uncertain reservations. A successor refreshes determining native/action/intake/runtime facts
through canonical work-board before resuming. Saved inspections and stdin digests renew no authority;
missing facts stay scoped Unknown. Never settle or retry original effects from board status.

Check whether durable records and evidence pointers cover the restart. Recovery gaps can include:

- branch/worktree locations, dirty or interrupted files and unpublished source;
- running jobs, actual process identities, cleanup outcomes and external work that remains Unknown;
- original consumed/uncertain operations, partial evidence, expired admission and retry constraints;
- private evidence access paths/digests and pending reply channels, identities and deadlines;
- scope or authorization constraints and the next safe action that are absent from the owning issue.

If nothing is missing, return a restart pointer to the owning issue(s), relevant Atlas IDs and any
original operation evidence. No new handoff file, commit or PR is required. Old timestamped reports
remain history; a successor need not read one merely because it is the newest file.

If a gap remains, preserve only that missing recovery information, with links to established facts.
Use an existing appropriate durable record when it can safely hold the information. When a separate
report is needed, resolve the owning FS-GG `.github` repository and write repo-relative
`docs/handoffs/YYYY-MM-DD-HHMMSS-unified-roadmap-handoff.md` using current UTC time. Create the
directory if absent; never overwrite an earlier report. Read earlier reports only as needed to retain
unresolved obligations. Include the stop timestamp, unresolved state and owners, evidence pointers,
Atlas capture gaps and the short ordered restart action; do not copy the board or accepted history.

Apply [agent-handoff](../agent-handoff/SKILL.md) for evidence and writing quality. Use the optional
`$technical-writer` skill when available; its absence does not block saving. Keep credentials, raw telemetry,
private payloads and unnecessary personal identifiers out of public records. A private evidence path
can identify where an authorized successor should inspect; it does not prove persistent custody.

## Deliver any required save and end the session

When a recovery gap requires a repository change, invocation authorizes only that save's commit,
push, PR and merge, unless the user explicitly asks for a local-only save. Use an isolated branch/worktree
from current protected main when the working checkout contains unrelated work.
Preserve that work. Validate Markdown links and `git diff --check`; retain the
normal native required checks and branch protection.

For programme PR admission and delivery, use the existing
[work-board](../work-board/SKILL.md) controls without restarting
its implementation loop. Use one handoff PR, existing campaign identity, exact
its implementation loop. Use at most one save PR, the existing campaign identity, exact
head, and both normal PR markers. Read the live PR queue; do not bypass its cap
or merge unrelated feature work merely to make room for the save. If admission,
credentials, checks or infrastructure prevent landing, preserve the local
file and any pushed branch, state the exact remaining boundary, and stop rather
than resuming roadmap work. Do not call a pending PR merged.

After merge, read back the saved file and full merged tree. Return the session
checkout to updated main when safe; otherwise preserve its branch and dirty
If a save PR was needed and merged, read back the saved file and full merged tree. Return any
checkout moved solely for that save to updated main when safe; otherwise preserve its branch and dirty
state and report why it was retained. Do not reset, clean, or overwrite unrelated
work to return to main. The save itself is
the only new work allowed after shutdown, apart from necessary cleanup and its
native delivery checks. Do not select a next item or continue monitoring feature
lanes. End with the saved path/link, PR and merge status, and any unresolved
running job or cleanup. State that programme execution is paused and stop.
lanes. End with one durable restart pointer: owning issue links, Atlas IDs and any gap-report path,
plus PR/merge status only when a save PR was needed. State any unresolved running job or cleanup,
that programme execution is paused, and that no background monitoring is implied. Stop.
4 changes: 2 additions & 2 deletions .agents/skills/stop-with-handoff/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
interface:
display_name: "Stop With Handoff"
short_description: "Save a timestamped handoff and stop all roadmap work"
default_prompt: "Use $stop-with-handoff to stop workers, save and land a timestamped handoff, and stop all roadmap work."
short_description: "Stop owned work and preserve only missing recovery state"
default_prompt: "Use $stop-with-handoff to retire owned work, reconcile durable issue and Atlas pointers, save only recovery gaps, and stop programme execution."
20 changes: 19 additions & 1 deletion .agents/skills/work-board/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: work-board
description: "Coordinate authorized organization or selected product V2 work through recovery, ownership, actual capacity, qualification and native delivery."
description: "Coordinate authorized organization or selected product V2 work through intake triage, recovery, useful parallelism, qualification and native delivery."
---

# Work Board
Expand Down Expand Up @@ -159,6 +159,24 @@ including its applicable qualification routes. Interactive/game implementation l
[performance-first planning gate](../work-roadmap/references/performance-first.md) before implementation begins.
This preserves the selected product contract; it does not select a product lane or restart profiling.

## Seek useful parallel work

At entry/resume and after a delivery, changed blocker or start of a hosted wait, actively look for
independent work that advances the selected scope. Compare prerequisites, existing owners/PRs,
touch-sets and shared outputs across eligible Deliveries. Look for disjoint source preparation,
review or evidence collection while another lane waits. A blocked parent or busy sibling does not
by itself exclude independent work; action-specific prerequisites and admission still apply.

Use actual remaining worker, CPU/memory, integrator and hosted-CI capacity after active demand and
known/Unknown reservations. Free agent slots are not resource capacity. Admit each chosen operation
before launch, preserve serial expensive-run limits and keep one integrator for shared surfaces.
Delegate only when the runtime permits it, ownership/isolation is clear and the expected contribution
exceeds coordination cost. Continue an existing owner/attempt instead of creating a duplicate lane.

When useful parallelism is unavailable, continue the eligible serial work and state the determining
capacity, dependency or overlap constraint with its reopening condition. Do not split work merely to
fill slots, weaken acceptance, create reporting-only workers or add another scheduling ledger.

## Admit actual resources and effects

Reconcile CPU/memory/storage, runtime slots, helper/build-server demand, hosted queues, source/output
Expand Down
Loading
Loading