Install
npx skillscat add ashokraj2011/singularityflow/sflow-logs Install via the SkillsCat registry.
Read the activity log
Output contract: Relay requested CLI fields or output faithfully; preserve warnings/errors and only the explanations required below. 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: no Story required; cwd=opened Git root or verified repositoryPath from singularity-flow workspace current --json; refuse if neither resolves; never search $HOME/parents.
Run singularity-flow logs $ARGUMENTS. This command is read-only: it never
changes repository, workflow, or lifecycle state, and it works even while a
session is gated — a blocked session is exactly when the log matters.
Start narrow and widen only if needed:
singularity-flow logs --level error # what failed
singularity-flow logs --level warn # failures and refusals
singularity-flow logs --event hook # why a tool call was refused
singularity-flow logs --event copilot # what a native Copilot handoff did
singularity-flow logs --tail 200 # more history
singularity-flow logs --since 2026-07-25 # from a point in time
singularity-flow logs level # effective levels and the log pathWhen the log is empty or too sparse to explain the problem, ask the contributor
to re-run the failing command with a raised level rather than guessing:
SINGULARITY_FLOW_LOG_LEVEL=all singularity-flow <the failing command>How to read what you find
command.failedcarries the exact message, exit code, duration, and stack. Report the message and the failing command, not a paraphrase.hook.guard.denymeans Singularity Flow refused a tool call. Thereasonfield says which selection was missing. Fix the cause — usually/sf-session— rather than retrying the same call.hook.session.initiativemeans the branch is a governed initiative, where no work/Jira selection applies.copilot.turn-completecarries the stop reason. A turn that completed with no proposal is a real outcome, not a pending one; say so and look for a nearbycopilot.permission-deniedorcopilot.errorthat explains it.log.unreadableis a truncated final line, normal when a process died mid-write. Treat it as evidence of a crash.
Reporting rules
Quote the event, the timestamp, and the message verbatim for the entries that
matter, and summarize the rest. Never invent an entry, never describe a log you
did not read, and never claim a cause the log does not support — say what is
missing and how to capture it instead.
The log is machine-local under .git/singularity-flow/logs/ and is never
committed, so it is safe to read but it is not shared evidence: do not cite it as
governance or approval evidence for a phase.
Secrets are already redacted before anything is written. If a value still looks
like a credential, report the field name only and never repeat the value.