facets-cloud/flow/skill
Claude Code and agent skill by facets-cloud/flow
- community
Checking that the SKILL.md file is still in the repository.
Personal task and agent-session manager. CLI binary is `flow` (assumed on PATH) and stores metadata in ~/.flow/flow.db (SQLite). Use this skill when the user asks about their work, tasks, or projects in any natural phrasing — including but not limited to: "what's left", "what's remaining", "what's pending", "what do I need to do", "what's on my plate", "what should I work on", "status", "give me a status", "anything urgent", "what's overdue", "what's stale", "show me my work", "how's my week looking", "what did I ship", "what's in progress", "what's next", "what am I working on", "where did I leave off", "start my day", "what should I do", "what should I do today". Also use for task/project management actions: "flow", "add a task", "add a project", "resume work", "pick up where I left off", "save a note", "log progress", "write an update", "note that", "I'm waiting on", "blocked on", "stuck until", "mark done", "archive", "weekly review", "clean up my tasks", or when the user invokes any `flow <subcommand>` directly. Also use whenever the user asks you to bootstrap a new Claude Code or Codex session on a task or tell them about their in-flight work.
Install
npx vskill@latest install facets-cloud/flow/skillSKILL.md
flow — task and session manager skill
1. What flow is
flow is a small CLI (assumed on $PATH) that the user uses to track personal work and bootstrap per-task agent sessions. Metadata (projects, tasks, workdirs, session IDs) lives in a single SQLite database at ~/.flow/flow.db. Free-form plan content lives on disk as markdown "briefs" at ~/.flow/projects/<slug>/brief.md and ~/.flow/tasks/<slug>/brief.md. Progress notes accumulate as dated markdown files under each entity's updates/ subdirectory. The user runs one long-lived Claude Code or Codex session per task in its own terminal tab, resumed via flow do <task>.
You are speaking inside one of those agent sessions (or the user's ambient "dispatch" session). Your job is to interpret the user's natural language requests and turn them into the exact flow commands and file edits they imply. You never edit flow.db directly. You never solve problems during task intake — you interview, then write what the user said.
Paths in this skill. Every~/.flow/...path you see is thedefault layout. The flow root is configurable via$FLOW_ROOT;if it's set to something else, substitute that root in every pathreference. The authoritative paths are always whatever `flow showtask/flow show projectprint underbrief:,updates:`,kb:, etc. — read those, don't reconstruct paths from prose.
1a. When invoked explicitly with no intent
If this skill is invoked without a trigger phrase — for example the user typed /flow or asked you to load the flow skill but did not say what they want done — DO NOT auto-run any workflow. Do not silently call flow list tasks, do not enter §4.1 "start the day", do not propose opening a task, do not start an intake interview. The user just asked what this skill is for. Answer that question first; let them choose what happens next.
Behavior:
- In 2–3 sentences, describe what you can do for the user with
flow under the hood — capture work as briefs, log progress notes, resume agent sessions across days, track what they're waiting on. Frame it as your capabilities, not commands. The user does not need to learn flow's CLI.
- Use
AskUserQuestion(header: "What now?") to offer the main
actions. Pick 3–4 options that fit the current state — for example:
- "Show me what's on my plate" — runs §4.1 start-the-day.
- "Add a new task" — runs §4.2 task intake.
- "Add a project" — runs §4.3 project intake.
- "Just exploring" — stop and wait.
- Dispatch on the user's pick. If "Just exploring" or the user
skips the question, stop and let them lead.
This section ONLY governs the bare-invocation case. Trigger-phrase recipes in §4 ("what should I work on", "add a task", etc.) still fire on natural-language requests — when the user already expressed an intent, follow the matching recipe instead of re-asking via §1a.
2. The model
- Projects group related tasks: name, slug,
work_dir, priority,
status (active/done), brief.md.
- Tasks are units of work: name, slug (via
--slug),work_dir
(mandatory — project's, user-supplied, or auto-created ~/.flow/tasks/<slug>/workspace/ for floating tasks), priority, status (backlog/in-progress/done), optional project_slug, optional waiting_on note, brief.md. A task carries a harness session_id once flow do has bootstrapped it.
- Playbooks are reusable, runnable definitions (name, slug, work_dir,
optional project_slug, brief.md). Each invocation creates a playbook-run — a kind=playbook_run task with its own session, a snapshotted brief.md, and updates/. Editing the playbook brief doesn't affect past runs; runs are reproducible. See references/playbooks.md.
- Owners are durable, repo-scoped self-prompting controllers that own
an outcome via recurring fresh headless ticks (a charter.md + ledger + clock, self-pacing via flow owner next; --every is the fallback heartbeat floor). Status active/paused/retired. Managed tasks are tagged owner:<slug>; a human-decision task is also tagged question. See §4.17.
- Workdirs is a convenience registry of known local repo paths for
matching repo intent to disk — NOT the source of truth for a task's work_dir (tasks.work_dir is).
- Updates are dated markdown progress notes under
~/.flow/tasks/<slug>/updates/YYYY-MM-DD-<kebab>.md (and projects/), written by you via Write. Not in the DB; permanent — archiving never deletes them.
- Status is 3 values:
backlog,in-progress,done(noblocked).
Waiting on someone → set waiting_on (§4.6). Set aside permanently → archive.
3. First-run detection & setup
The first flow command in a session doubles as an init probe; a brand-new user (missing DB) gets guided setup. The full recipe — the flow list probe, the "Set up flow?" AskUserQuestion, flow init, and the five-step first-run coaching — lives in references/setup.md. Read it when a flow command errors about a missing database, or when onboarding a fresh user.
4. Command reference
This is a terse cheat sheet. Use flow <command> --help for up-to-date flags.
All references (<ref>) resolve by exact slug match only. There is no fuzzy or substring matching. Use --slug to pick a short, memorable slug at creation time (e.g. --slug caas-exit). If omitted, a slug is auto-generated from the name (truncated to ~6 words).
4a. Interactive choices (use AskUserQuestion everywhere)
This section overrides any inline prose phrasing later in the skill. If a later section says "offer X", "ask Y", or "confirm Z", that always means "invoke AskUserQuestion with appropriate options" — never a prose question typed into the chat.
Every choice the user makes — always AskUserQuestion, never a prose question. Yes/no confirmations, pick-one-of-several, priority, slug suggestions, project attachment, mutation confirmations, "want me to do X?" — every single one runs through the tool so the user can click to select instead of typing. Common patterns:
| Pattern | Options | |
|---|---|---|
| Yes / No | Two options with contextual labels (e.g. "Save it" / "Revise", "Open now" / "Not now") | |
| Pick from list | One option per candidate (tasks, projects, slugs) | |
| Priority | "High", "Medium", "Low" | |
| Mutation confirm | "Yes, do it" / "No, wait" with the action named in the description |
Keep header under 12 chars. Put enough context in question so the choice is clear without scrolling back. If the user already answered in their message, don't re-ask — just use their answer.
Prose questions are deprecated. Don't write "Want me to do X?" or "Should I do Y?" or "(yes/no)" in chat — those force the user to type a free-text reply. The tool produces clickable options; always prefer the tool.
Mid-interview drift. Within an open-ended interview (intake, deferred-section prompt), the parent question may be free-form ("Why?", "Done when?") but follow-up clarifications often narrow into enumerable choices (architectures, install methods, yes/no). The moment a sub-question has 2–4 discrete options, switch to AskUserQuestion. Don't keep typing prose just because you started in prose. The "interview" framing governs the opening question; every narrowing inside it follows the same always-AskUserQuestion rule as the rest of the skill.
5. Core workflows
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinginternal/app/skill/SKILL.md
Popularity
- Repository stars
- 123
- Repository forks
- 13
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/facets-cloud/flow/skill)