From flow
Captures corrections, clarifications, or learnings as reusable notes to per-branch FLOW state file. Auto-activates on user disagreements; explicit via /flow:flow-note. Non-interruptive.
npx claudepluginhub benkruger/flowThis skill uses the workspace's default tool permissions.
Capture a correction or learning to the state file immediately.
Manages branch-aware persistent memory using git notes to store/retrieve context, decisions, tasks, learnings across sessions via silent CLI commands.
Extracts generalized learnings from conversation friction points (failed approaches, workarounds) and appends to project's CLAUDE.md with git commit.
Writes CONTINUE_HERE.md capturing session state with objective, completed, in-progress, next-steps, and context sections for handoff to new Claude Code sessions. Use for unfinished work or preserving git-insufficient context.
Share bugs, ideas, or general feedback.
Capture a correction or learning to the state file immediately. This skill must be fast — capture and continue, no interruption.
This flow is one of potentially many running simultaneously — on this
machine (multiple worktrees) and across machines (multiple engineers).
Your state file (.flow-states/<branch>/state.json) is yours alone. Never
read or write another branch's state. All local artifacts (logs, plan
files, temp files) are scoped by branch name.
Invoke this skill BEFORE replying whenever the user:
Do not wait to be asked. Capture first, then respond.
Compose the note text as a reusable pattern, not a specific complaint:
Bad: "User said I was wrong about branches"
Good: "Never assume branch-behind is unlikely in a multi-session workflow — multiple active sessions means branches regularly fall behind main"
Bad: "I suggested rebase, user rejected"
Good: "Always merge, never rebase — rebasing is forbidden in this workflow"
The note should read as something useful to a future session, not a log of what happened.
${CLAUDE_PLUGIN_ROOT}/bin/flow append-note --note "<note_text>"
The script derives the state file path and current phase internally.
The script outputs JSON:
{"status": "no_state"} — no state file exists. Skip silently — do not
interrupt the session. Continue with your response.{"status": "ok", "note_count": N} — note captured. Proceed to Step 2.{"status": "error", "message": "..."} — show the error message and stop.Print one line only:
[note captured]
Then continue with the response immediately.
When the user types /flow:flow-note <message>:
state["notes"] with current phase and timestamp[note captured] and stop