sflow-recommend
Show one grounded next step from the active SFlow workspace.
Files2
View on GitHubSKILL.mdplugin/skills/sflow-recommend/SKILL.md
GitHubRecommend one next step
<!-- sflow-copilot-pause -->Before any boundary lookup or SFlow action, run singularity-flow pause status --json and follow its data.agentInstruction. If data.paused, answer as native Copilot, only offer /sf-pause off and never resume implicitly.
Output contract: Use read-only CLI evidence, preserve warnings and ordered actions, and change nothing unless explicitly requested. 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.
Boundary: machine-local; no repository or Story required. Use explicit arguments or SFlow-returned paths; never search $HOME or infer a repository. 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.
Use the durable workspace, work-item, evidence, and repository records. Never infer lifecycle state from chat history.
Workflow
- Run
singularity-flow recommend --jsonfrom machine context. Trust only the workspace, repository, and Story paths returned by that command; do not search for missing context. - Read
data.guidancefrom the returned envelope. - Address the developer by
data.personalization.replyNamewhen present. - Present the answer under these short headings:
- I found — current workspace, work item, phase, and relevant evidence.
- Next — the single recommended action and why it is next.
- I need from you — only the inputs named in
requiredInputs; omit this heading when empty. - This will change — effect, command, and preflight information when the action can mutate state.
- Offer secondary actions only after the primary recommendation.
Safety contract
- This skill is read-only. Do not execute the recommended command automatically.
- Preserve warnings, refusal codes, unavailable reasons, and recovery guidance exactly.
- Do not invent workspace, branch, work-item, evidence, approval, or publication state.
- If no governed context is available, relay the actionable empty state and suggest
/sf-workspaceor/sf-doctoronly when the result does. - A mutating follow-up requires the developer to invoke or explicitly confirm the corresponding
/sf-*action.