Review a submitted phase once, accept an explicit phase confirmation, and let the CLI record approval and advance the workflow.
Install
npx skillscat add ashokraj2011/singularityflow/sflow-approve Install via the SkillsCat registry.
Approve the submitted phase
Output contract: Reuse exact same-chat document displays; refresh packet review and explicit consent. For suggested actions, pair Shell with the returned Copilot command; honor commandGuidance. If absent, say "Copilot: no verified equivalent"; never invent a slash command.
Boundary: singularity-flow session current --json → ready/workId, cwd=repositoryPath; use CLI/workItemRoot paths; never $HOME.
Approval-only: An explicit human phase ID confirms only the unchanged packet already reviewed in this conversation. The approval CLI is the sole permitted lifecycle mutation. Never edit repository files, run tests/builds/raw Git, delegate, submit, or begin/author another phase. A failed approval ends this turn.
- A positional argument selects PHASE-ID, never Work ID; Story comes from session or
--work-id. Runsingularity-flow choices begin approve <WORK-ID> --fetch --json. Require supplied phase =approvalContext.phase. - Run
singularity-flow phase show <phase> --json. MatchreviewBindingto receipt: repository/HEAD, Work ID, phase/generation, source commit, packet hash. Match artifacts/briefdocumentId,documentPath, anddocumentSha256toapprovalContext; briefpathis integrity JSON. Onlyfallback-wholemay lack a brief. Missing binding/mismatch: stop. Do not perform a secondsingularity-flow documents viewlookup. - Render once per exact display binding. Retain
displayBindingandreviewBinding. Reuse bodies only from a complete visible same-chat display with exactly matching non-nulldisplayBinding. New chat, changed/null binding, omissions or truncation require full display. Render all text/briefs between--- BEGIN <path> ---and--- END <path> ---with ID/kind/path/bytes/generation/SHA-256, across messages if needed. Binary: path/metadata/open instruction. Tool output or summaries are not review. Truncated content: stop. Always show the currentreviewBinding; body reuse never reuses approval consent. - Show current identity/authority, agent, checks/usage, decisions and self-approval warnings; unauthorized identity stops.
- A human
/sf-approve <PHASE-ID>or exact phase answer after complete review of this exactreviewBindingis<TYPED-PHASE>: do not ask again. Otherwise ask for the exact phase ID and wait. A phase supplied before a new or changed packet review is not its confirmation, even if document bodies match. Runsingularity-flow choices answer <TOKEN> phase-confirmation <TYPED-PHASE> --json, thensingularity-flow approve <TYPED-PHASE> --work-id <WORK-ID> --fetch --selection-receipt <TOKEN>only whenready: true. Never add--yes; the receipt is consumed once. - Refusal: relay and stop; human owns
continue. No commit/publication proof: unverified. Report commit/push, reviewer/authority, assurance, threshold and next phase. The approval CLI advances and activates the next phase when the threshold is met; no second advance. RelayContext boundaryandNext Copilot actionsas display-only handoff; end this turn before next-phase authoring.
TRP: read and follow singularity-flow explain test-recovery; returned legal actions only.