sflow-converge

Route a spec-driven Story toward convergence advanced.

SKILL.md

GitHub

Converge — route toward convergence advanced

<!-- sflow-copilot-pause -->

Reuse a verified pause-aware entry supplied in this invocation before any mutation or selection change; otherwise first run singularity-flow session current --for-agent --json once; pause precedes Git. If paused: native Copilot, only /sf-pause off, never resume implicitly. Reuse binding/personalization.replyName; fresh operation checks/consent remain required.

<!-- sflow-output-contract: clarification-and-artifact -->

Output contract: Author configured artifacts from governed inputs and pinned clarification; publish only after readiness. Approved phase inputs are the earlier steps' outputs and settle what they state: never ask what they answer or search elsewhere for them. Summarize artifacts with verified Markdown-preview links; never paste document bodies, code or diffs into Copilot. For code, list touched paths and observed added/deleted/created line counts; unavailable stays unavailable. Use existing evidence, not extra calls solely for display. Summaries, links and opened previews are not human review or approval. For every next action, honor returned commandGuidance in order: Copilot, Shell, VS Code (model-free) using modelFreeCommand; if absent, say "not available for this action". Missing Copilot: "no verified equivalent". Never invent routes. On a refusal read remediationPlan: run its first read-only step once and follow context.strategy; never retry an unchanged condition or edit an earlier phase to clear it. One returned automatic plan-hash action (such as sync) may run once, then re-enter once. When a result's act.state is author, or it routes back to this skill with nothing for a person to answer, edit, review or confirm, that is this turn's own work: do it, never relay it. A file edit that does not match is not a refusal: read the file again and redo the edit. Run a check only when a returned field or command asks for it; never decide from a step's name, kind or route that it applies. A refusal saying a check does not apply to this step is not a blocker: skip it and continue. Act on a result's act first: its state, do routes and any ask. A bounded result names agentOutput.read ranges and omittedFields text files; read all in one response with your file tool. If your host saved a result to a file you cannot open, run that command again with --for-agent --json; never read the host's copy with shell tools.

<!-- sflow-execution-boundary -->

Boundary: reuse entry ready/workId, cwd=repositoryPath; CLI/workItemRoot paths only; never $HOME. No duplicate lookup. Use exact CLI-returned paths. repositoryPath is command cwd, not a prefix for absolute file paths. Never rebase paths or strip .git/worktrees. Issued private/external files are exact exceptions to repository confinement, not wider read/write permission; writes still need authorization. Resolve relative paths only against their declared base. On failure, preserve the path and error; never search or recreate it.

  1. Run singularity-flow converge --json; read checkpoint, contract, ordered next[], <PHASE>; not-routed: relay next[], stop.
  2. Treat returned commands, producer and channel as kernel output. Never invent an action or authorship. The route-only result is not the final response when the checkpoint is deterministic-generation; continue below.
  3. Route recovery first with read-only singularity-flow recover <WORK-ID> --phase <PHASE> --for-agent --json; follow only its current-phase action. At approval, stop: only an authorized human Git identity approves.
  4. At deterministic-generation, require the first NOW pair to be Copilot /sf-converge and Shell singularity-flow prepare <PHASE>. Execute that exact returned preparation command once in this same turn. Do not stop after merely displaying the route; do not run singularity-flow converge --json again. In its next[], for adjudication, rework, intent amendment, or inspection, relay the action and stop for the human decision. If and only if it returns deterministic convergence publication as the first NOW action, run singularity-flow phase prepublish <PHASE> --for-agent --json --publish-if-ready (includes draft-check). If unready, follow returned repairLoop.protocol and its named regenerator/owner route; never loop preparation or start a model. Never invoke a model, author or edit the artifact, or substitute human/governed-agent authorship. Publish using the exact returned publication command (commands.publish) when ready unless publishIfReady.published; absent: relay commands.next, stop. Require --authored deterministic --channel kernel-generator. Stop immediately after publication; never advance, submit, approve. Report the handoff/document view from publishIfReady.review.
  5. At model-generation, run singularity-flow wm compose --phase <PHASE> once; author from it and Active supporting evidence. Run singularity-flow phase prepublish <PHASE> --for-agent --json --publish-if-ready (includes draft-check); correct only findings with correction.sameTurn, else route to their owner via correction.guidance/correction.skill. Never blindly delete markers, invent facts or padding, nest models or overwrite producers. Use returned commands.publish when ready unless publishIfReady.published; absent: relay commands.next, stop. On ARTIFACT_AUTHORING_INCOMPLETE, recheck once; retry only if ready; never loop. Follow returned repairLoop.protocol; stop unchanged.
  6. Obey clarification mode: when off, never ask phase questions or run singularity-flow clarification record; otherwise clarify only when returned.
  7. Missing claims are missing trace evidence, not missing code; open blockers stop advancement.
  8. Report returned milestones and next pairs: Next in Copilot: /sf-..., Terminal equivalent: singularity-flow .... Never approve, reject or advance.