Agent skill

Flow Next Refine

by gmickel in gmickel/flow-next

Refine a spec, task, or spec file before building - one question pass for the decisions that would change what gets built, optionally focused by a free-text --scope lens (business, technical, qa…

MITAuto-check passedBackend & APIs

Install Flow Next Refine

skills CLI
$ npx skills add gmickel/flow-next --skill flow-next-refine -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gmickel/flow-next flow-next-refine --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gmickel/flow-next.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/flow-next/skills/flow-next-refine .claude/skills/flow-next-refine && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
flow-next-refine
GitHub stars
709
Token cost
~5.2k tokens
SKILL.md length
2,436 words
Files
11 (incl. references)
Skills in repo
43
Repo updated
First seen
Licence
MIT

At a glance

Refine a spec, task, or spec file before building - one question pass for the decisions that would change what gets built, optionally focused by a free-text --scope lens (business, technical, qa…

  • Works in 6 steps: Each round asks the whole current… → Split the round across AskUserQuestion… → Recompute the frontier from the answers;… → …
  • A named product
  • SKILL.md covers Preamble, Input, Setup and Detect the input, plus 5 more sections
  • Calls jq

What it does

Flow Next Refine is an agent skill from gmickel/flow-next. Refine a spec, task, or spec file before building - one question pass for the decisions that would change what gets built, optionally focused by a free-text --scope lens (business, technical, qa, ...), or a read-only research pass (--scope=research) that resolves library versions, changed APIs, and gotchas from external docs into the spec. Use when a named product, authority, or costly-to-reverse technical decision is open, or when the spec names a library or API the repo does not already use. Triggers on…

Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including reference files (for example `references/doc-aware-docs.md`, `references/doc-aware.md` and `references/doc-flags.md`).

It sits in Backend & APIs, covering OAuth and OpenID Connect. The repository describes itself as: Faster than your agent alone. And better. A workflow plugin that takes a bug, idea or ticket to a verified pull request: specs, cross-model review by risk, live QA, receipts in… The licence is MIT.

When your agent uses it

  • A named product
  • Costly-to-reverse technical decision is open
  • The spec names a library
  • API the repo does not already use

Example prompts

  • “/flow-next-refine”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Each round asks the whole current frontier. A question whose answer depends on another question still open belongs to a later round; never…
  2. Split the round across AskUserQuestion calls of up to 4 questions, closest-related together, announced as one round ("Round 2, part 1/2")…
  3. Recompute the frontier from the answers; deeper rounds are discovered, not pre-scripted.
  4. When an answer prunes a branch, say so at the next round's opener ("Skipping persistence questions; you said no database.").
  5. Go at most 4 rounds down any one branch.
  6. If part of a round was never asked (tool error, interruption), ask it before moving on.

What it can do on your machine

Read from SKILL.md and the folder at commit 09e291e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Flow Next Refine loads about 5.2k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 164 tokens; SKILL.md has 2,436 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~164
When it runs · the whole SKILL.md, loaded when a task matches
~5.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~15k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gmickel/flow-next at commit 09e291e, republished under its MIT licence (© gmickel). 2,436 words, ~5,161 tokens.

Download SKILL.mdSave it as .claude/skills/flow-next-refine/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
flow-next-refine
description
Refine a spec, task, or spec file before building - one question pass for the decisions that would change what gets built, optionally focused by a free-text --scope lens (business, technical, qa, ...), or a read-only research pass (--scope=research) that resolves library versions, changed APIs, and gotchas from external docs into the spec. Use when a named product, authority, or costly-to-reverse technical decision is open, or when the spec names a library or API the repo does not already use. Triggers on /flow-next:refine with Flow IDs (fn-1-add-oauth, fn-1-add-oauth.2, or legacy fn-1, fn-1.2, fn-1-xxx, fn-1-xxx.2) or file paths.
user-invocable
false

Flow refine

Refine a spec, task, or spec file: settle the decisions that would change what gets built and that only the person can make, then write the answers back. Everything else you resolve by investigation, record, or leave to implementation. --scope=research is a separate pass that asks nothing and writes the spec's external-library unknowns back from official docs.

All task state is read and written through flowctl; .flow/ is the only tracker (no markdown TODOs, plan files or TodoWrite).

Refine clarifies a spec that can already be specified. Route back to /flow-next:chart only when the answers show the effort itself is not yet specifiable; unsure of the hop, use flow-next:flow-next-flow --explain.

Read working-rules.md first unless you already have this run; it holds for every step of this skill.

Preamble

flowctl is bundled, not installed globally (which flowctl fails). Define once; later blocks use $FLOWCTL:

bash
FLOWCTL="${DROID_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/flowctl"
[ -x "$FLOWCTL" ] || FLOWCTL="<plugin-root>/scripts/flowctl"   # <plugin-root> = the directory two levels above this skill's SKILL.md file (the harness gave you that file's absolute path when the skill loaded); substitute it literally
[ -x "$FLOWCTL" ] || FLOWCTL=".flow/bin/flowctl"

Input

Full request: $ARGUMENTS

A Flow spec id, a Flow task id, a tracker handle linked to one, or a file path. Examples:

  • /flow-next:refine fn-1-add-oauth (legacy fn-1, fn-1-xxx and task ids like fn-1-add-oauth.3 work too)
  • /flow-next:refine docs/oauth-spec.md
  • /flow-next:refine fn-1-add-oauth --scope=qa (the same interview, focused on what QA decides)
  • /flow-next:refine fn-1-add-oauth --scope=research (external-docs pass; no interview, one write-back approval)

Empty: ask "What should I refine? Give me a Flow ID (e.g. fn-1-add-oauth) or a file path (e.g. docs/spec.md)."

Setup

Scope lens. --scope=<value> is an optional free-text lens: business, technical, qa, security, or any other audience; --biz means --scope=business and --tech means --scope=technical. Take these tokens out of the arguments before detecting the input; several values combine into one lens. There is one interview whatever the lens: interpret the lens from its words and let it focus which open decisions you look for (a QA lens looks for what counts as done, which failures matter, what must be testable). No lens means no filter. Never ask which scope to run.

Research pass. With --scope=research, skip the doc-aware gate and the interview: detect the input, then read references/research-scope.md and follow it. The interview never reads that file.

Doc flags. When the arguments carry any of --docs, --no-docs, --strategy, --no-strategy, read references/doc-flags.md § Flag parsing before detecting the input; it strips them and sets the two force values used below.

Doc-aware gate. Doc-aware mode adds glossary, decision-record and strategy behaviours to the interview. It turns on when the repo has a glossary term, a decision entry, or a filled strategy section (counts, not file presence); the doc flags override. Run once per interview:

bash
REFINE_PREFLIGHT="${TMPDIR:-/tmp}/flow-refine-preflight-<suffix>.json"   # literal path; reused after the write-back
# One preflight bundle per interview. A failed, missing or empty probe counts as signal (fail open).
"$FLOWCTL" preflight --json > "$REFINE_PREFLIGHT" 2>/dev/null || printf '{}' > "$REFINE_PREFLIGHT"
# DOC_AWARE_FORCE / STRATEGY_AWARE_FORCE keep the "on" / "off" that doc-flags.md § Flag parsing set; unset = autodetect.
GATES="$(jq -er '
  def v(p): if p.status == "ok" then p.value else null end;
  [ (if v(.probes.glossary) == null or v(.probes.decisions) == null
        or (v(.probes.glossary).total_terms // 0) > 0 or (v(.probes.decisions).entry_count // 0) > 0 then 1 else 0 end),
    (if v(.probes.strategy) == null or (v(.probes.strategy).sections_filled // 0) >= 1 then 1 else 0 end)
  ] | join(" ")' "$REFINE_PREFLIGHT" 2>/dev/null)" || GATES="1 1"
DOC_AWARE="${GATES% *}"; STRATEGY_AWARE="${GATES#* }"
case "${DOC_AWARE_FORCE:-}" in on) DOC_AWARE=1 ;; off) DOC_AWARE=0 ;; esac
case "${STRATEGY_AWARE_FORCE:-}" in on) STRATEGY_AWARE=1 ;; off) STRATEGY_AWARE=0 ;; esac
if [ "$DOC_AWARE$STRATEGY_AWARE" != "00" ]; then
  echo "DOC-AWARE GATE ACTIVE (DOC_AWARE=$DOC_AWARE STRATEGY_AWARE=$STRATEGY_AWARE) — STOP. Read references/doc-aware.md before drafting the first question."
fi

When the sentinel prints, read references/doc-aware.md and apply the behaviours its gates enable. Otherwise do not read it.

Detect the input

Route every single-token argument that is not an .md path through $FLOWCTL show <arg> --json before calling it a file: flowctl resolves spec ids, task ids, and tracker keys linked to them (wor-17 / wor-17.3). Use the canonical id from the JSON.

  • Spec (fn-12, fn-1-add-oauth, or a handle that resolves to one): read it with $FLOWCTL cat <id>.
  • Task (fn-1-add-oauth.3, or a handle with a .): $FLOWCTL cat <id>, plus the parent spec with $FLOWCTL cat <spec-id>.
  • File path (does not resolve): read the file; if it does not exist, ask for a valid path.

Keep the text you read: the write-back compares against it.

Interview

Ask through the question tool

Every question goes through AskUserQuestion (load it with ToolSearch select:AskUserQuestion when its schema is not loaded); fall back to numbered plain-text options only when the tool is unreachable. Never print questions as narration ("Question 1: ... Options: a) b) c)").

The one test

Ask a question only when all three hold: a wrong guess would build the wrong thing or ship behaviour the person would reject; the code, the docs, a quick experiment, or implementation cannot settle it; and it is the answerer's call. A topic on the list below is not a reason to ask.

Check the spec for these, and ask about one only when the spec leaves it unclear and it passes the test: who it is for; what done looks like; what is explicitly out; a constraint the domain implies (a regulation, a contract, a partner commitment); an irreversible data or contract change (a data model, a migration, a public contract); an external interface; a security boundary. A lens adds its audience's open decisions. Technical detail, performance, failure modes, concurrency, scale and edge cases qualify only when they pass the test; implementation, review and QA surface the rest. Cosmetic polish (message wording, flag spelling, formatting) never gets its own question: fold it into a related question's options or state it as a default the person can veto at write-back. Refine never asks for success metrics or latency budgets unless the spec is about them.

Stop when no question that passes the test remains. Asking nothing is a good outcome: report "Nothing worth asking; the spec is clear enough to build." and skip the write-back unless investigation resolved something worth recording.

Investigate before asking

Before the first round, read STRATEGY.md and search the other project docs for what the spec touches rather than reading them end to end: README.md, CHANGELOG.md, GLOSSARY.md, the decisions track ($FLOWCTL memory list --track knowledge --category decisions --json), the titles of open specs ($FLOWCTL specs --json), and docs/ when present. Then sort each candidate question:

  • The code answers it (what exists, how it is wired, which conventions hold): read and search; log it under ## Resolved via Codebase with file:line evidence.
  • The project docs answer it (what the strategy says, what shipped, what was decided): log it under ## Resolved via Project Docs with path:line evidence.
  • Running something settles it (behaviour, timing, layout, output, whether an eval separates two options): run a throwaway experiment in .flow/tmp/experiments/ and log the question, what ran, what you observed and the decision under ## Resolved via Experiment. The working rules' limit on experiments decides which run without asking. An inconclusive result (noise larger than the difference) is logged as inconclusive and goes to the person with the data. The experiment is evidence, never product code.
  • It is a judgment (what should exist, which trade-off, what priority): ask it.

Answering a "should" question by grep is the bug; so is asking something the docs already answer. Use multi-select for options that are not exclusive, and probe answers that contradict each other.

While the person answers a round you may dispatch one read-only fact scout for lookups that gate the next round; before dispatching one, read references/fact-scouts.md. Investigating inline needs nothing from it.

Rounds over the decision tree

Treat the open decisions as a tree: each decision opens the ones that hang off it. The frontier is every question whose prerequisites are settled. Work in rounds:

  1. Each round asks the whole current frontier. A question whose answer depends on another question still open belongs to a later round; never ask a question alongside its own prerequisite.
  2. Split the round across AskUserQuestion calls of up to 4 questions, closest-related together, announced as one round ("Round 2, part 1/2"). Never pad a call to 4 and never hold a frontier question back to smooth pacing.
  3. Recompute the frontier from the answers; deeper rounds are discovered, not pre-scripted.
  4. When an answer prunes a branch, say so at the next round's opener ("Skipping persistence questions; you said no database.").
  5. Go at most 4 rounds down any one branch.
  6. If part of a round was never asked (tool error, interruption), ask it before moving on.

Standalone checkpoints (the code-mismatch question, the skipped-items checkpoint, the mark-ready offer, doc-aware prompts that have their own per-round budget in doc-aware.md) sit outside rounds, are never labelled "Round N" and never count against round depth. A doc-aware prompt deferred by that budget is pending for a later round, not dropped.

The interview is done when every decision the tree opened is answered, delegated, parked under ## Open Questions, or pruned with its branch named.

Question shape

Write each question so the person can read it once and answer it confidently.

  • Body: one sentence of stakes (what this decides, in the audience's words), then the recommendation with a one-sentence rationale, then one confidence tier: <stakes>. Recommended: <X> — <why>. Confidence: [high | judgment-call | your-call].
  • Options: neutral labels, no "(recommended)" marker. Each description says what choosing it means ("Choose this if…", "This means…").
  • Plain words. Prefer the common word; a term of art you genuinely need gets a short gloss at first use ("counter-metrics — things we'd hate to make worse"). No unexplained acronyms or repo shorthand. A product question, or any question under a non-technical lens, carries no implementation vocabulary (schemas, endpoints, config keys). A cited criterion gets a short gist: "R3 (the audit line's required fields)", never a bare "R3".
  • Length: never drop the stakes, recommendation, tier, gloss or option consequences. Trim repetition, background and hedging first; a body of about 40-60 words is usually right.

Tiers: [high] when the code or a convention gives strong signal and the person can usually accept; [judgment-call] when you lean one way but reasonable people disagree; [your-call] when you have no basis. Use [your-call] whenever that is true and say so ("I found no convention to copy; this depends on what your callers expect"). Always recommending trains people to defer.

Example: "This decides how long the rate limiter remembers a result before checking again. Recommended: 60 seconds — short enough that stale answers stay rare, long enough to be worth caching. Confidence: [judgment-call]." Options 30s, 60s, 300s, no cache, each with its plain consequence.

Show full SKILL.md (864 more words)Show less
Skipped questions are not answers

A recommendation never implies consent. Three answer shapes:

  • An answer (an option or typed text): use it.
  • Delegation ("you decide", "go with your recommendation"): adopt the recommendation and note it as delegated by the person.
  • A skip (dismissed, "skip", "I don't know", "not my call"): the question stays open. Its recommendation never enters a spec section as decided content.

Park each skip under ## Open Questions as **<question>** — skipped during refine; leaning <X>, unconfirmed. *(owner: engineering | product)*. A skipped judgment question stays a judgment question; never backfill it by grep. Keep a skip count.

With one or more skips: read references/skipped-items.md and ask its checkpoint before the write-back.

Out of scope

Refine settles requirements; plan and work own the rest. No task creation, sizing, dependency ordering, phased implementation or file references. No time estimates, deadlines, durations or "ship before X" framing; when the person volunteers a deadline, acknowledge it without re-asking scope because of it.

Where answers go

Write each answer into the section it belongs in, whatever the lens: a target user in ## Goal & Context, an out-of-scope call in ## Boundaries, a contract in ## API Contracts, a testable commitment in ## Acceptance Criteria, a rationale in ## Decision Context. The sections come from the resolved template (templates/spec.md, or the repo's own SPEC.md); a section the project added is a section like any other.

  • Everything else comes back byte-for-byte, and the read-back names every section this session changed. Keep the layout the spec has: when ## Decision Context carries ### Motivation / ### Implementation Tradeoffs, put a rationale under the one it fits and never add or remove sub-headings.
  • Auxiliary sections (Strategy Alignment, Strategy Conflicts, Glossary Conflicts, Conversation Evidence, Resolved via Codebase, Resolved via Project Docs, Resolved via Experiment, Resolved via Research, Parked unknowns) come back byte-for-byte. Refine only appends its own entries to the three Resolved via sections it owns (Codebase, Project Docs, Experiment). Resolved via Research belongs to the research pass. The one thing refine may take out is a Parked unknowns bullet this session resolved; write-back.md says how.
  • Precision. Record an answer at the precision given: a preference ("performance matters here") goes to ## Decision Context as guidance; a number becomes a criterion only when the person stated it. Your recommended options never become thresholds.
  • Acceptance criteria are append-only: never renumber or replace an R-ID; take the next unused number. Leave criteria an earlier session wrote exactly as they are. For the criteria you add, the person's own words stay untagged and anything else carries a tag (write-back.md § Source tags).

When the person declines a feature as product judgment (we could build it and choose not to), read declined-scope.md and record it.

Before the write-back on a spec (a task or a plain file never splits), when the refined criteria reach 8 or more or visibly serve more than one independently shippable outcome, read references/split.md.

Write-back

At completion, read references/write-back.md and run the branch for the input type (spec, task, or file). It holds the write pattern, the read-back approval, the source tags, and the flowctl call per branch.

After the write-back

Refine never changes readiness: a spec that was ready stays ready unless the person unmarks it (only capture --rewrite resets it).

For a spec or task input (not a file path), probe the two optional offers:

bash
REFINE_PREFLIGHT="${TMPDIR:-/tmp}/flow-refine-preflight-<suffix>.json"   # the same literal path as Setup
# Tracker sync: bridge active and tracker.perEvent.interview set to anything but off. Fails open.
TRACKER="$(jq -er '
  def v(p): if p.status == "ok" then p.value else null end;
  if .probes.config.status != "ok" or v(.probes.tracker) == null
     or (v(.probes.tracker).active == true and ((.value.tracker.perEvent.interview // "off") != "off"))
  then "open" else "closed" end' "$REFINE_PREFLIGHT" 2>/dev/null)" || TRACKER=open
[ "$TRACKER" = open ] && echo "TRACKER-SYNC GATE ACTIVE — STOP. Read references/post-write-back.md#tracker-sync before continuing."
# Mark-ready: readiness adopted (a spec is already ready) and tracker.readyState unset. Fails open.
SPECS_RAW="$("$FLOWCTL" specs --json 2>/dev/null)" && READY_ADOPTED="$(printf '%s' "$SPECS_RAW" | jq '[.specs[] | select(.ready == true)] | length' 2>/dev/null)" || READY_ADOPTED=""
READY_STATE="$(jq -er 'if .probes.config.status == "ok" then (.value.tracker.readyState // "") else error("config probe") end' "$REFINE_PREFLIGHT" 2>/dev/null)" || READY_STATE="?"
if [ -z "$READY_ADOPTED" ] || [ "$READY_STATE" = "?" ] || { [ "$READY_ADOPTED" -ge 1 ] && [ -z "$READY_STATE" ]; }; then
  echo "MARK-READY GATE ACTIVE — STOP. Read references/post-write-back.md#mark-ready-offer before continuing."
fi

When a sentinel prints, read the named section of references/post-write-back.md before continuing. With no tracker and readiness not adopted, neither fires.

Completion

Print a summary:

  • Questions asked. At zero: "Nothing worth asking; the spec is clear enough to build."
  • Skipped (only with skips): the count and the checkpoint's outcome (parked, filled as assumed, or re-asked).
  • Key decisions captured.
  • Written: the id updated or the file rewritten.
  • Sections changed: every section this session wrote, and that the rest came back byte-for-byte; the lens, when one was given; each Resolved via Project Docs / Resolved via Experiment entry in one line with its decision. For --scope=research: the items written under ## Resolved via Research with their sources, or the printed skip reason.
  • Tracker sync (only when the gate fired): whether the spec was pushed, pulled, reconciled or commented.
  • Readiness (only when the mark-ready offer fired): marked ready or kept draft.
  • Doc-aware (only when active): glossary terms added (flowctl glossary add), decision entries written (flowctl memory add --track knowledge --category decisions), and entries under ## Glossary Conflicts / ## Strategy Conflicts (refine never edits STRATEGY.md).

The question count and the sections-changed line always appear.

Next step by input:

  • Spec without tasks → print the Recommended next: line from plan-vs-no-plan.md (direct by default; plan only on its positive signals); use /flow-next:plan-review fn-N for an independent design review.
  • Spec with tasks → /flow-next:plan-review fn-N when this session changed the spec body (its tasks predate the change), otherwise /flow-next:work fn-N (or more refine on specific tasks).
  • Task → /flow-next:work fn-N.M.
  • File → /flow-next:capture to turn the refined document into a spec.
  • Any of these → offer a compact digest of the result: /flow-next:visual fn-N for a spec input, /flow-next:visual fn-N.M for a task input, /flow-next:visual <file-path> for the file input (an option, never run for them).

Print each command in the spelling this host invokes: the flat /flow-next-<name> form when the plugin root carries .flow-next-opencode-manifest (an OpenCode install), otherwise exactly as written here.

© gmickel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (references) in plugins/flow-next/skills/flow-next-refine of gmickel/flow-next.

  • SKILL.md
  • references/doc-aware-docs.md
  • references/doc-aware.md
  • references/doc-flags.md
  • references/fact-scouts.md
  • references/post-write-back.md
  • references/research-scope.md
  • references/skipped-items.md
  • references/split.md
  • references/write-back-task-file.md
  • references/write-back.md

Open the folder on GitHubat commit 09e291e

Compare with similar skills

Flow Next Refine next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Flow Next Refine compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Flow Next Refine this skillgmickel/flow-next709—~5.2kAutomated safety check: PassMIT
Fortify Developmentcoollabsio/coolify63k4 repos~1.9kAutomated safety check: PassMIT
OmniRoute Provider Managementdiegosouzapw/OmniRoute74k—~2.4kAutomated safety check: PassMIT
Antipattern Preventiondoorkeeper-gem/doorkeeper5.5k—~1.1kAutomated safety check: PassMIT
Cognitoitsmostafa/aws-agent-skills1.2k1 repos~2.3kAutomated safety check: PassMIT
Notion Worker Third-Party Auth Guidemakenotion/workers-template4391 repos~3.5kAutomated safety check: NotesMIT

Similar skills

  • Fortify Development

    coollabsio/coolify

    ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 4 repos~1.9k tokens
    Backend & APIsAuto-check passed
  • OmniRoute Provider Management

    diegosouzapw/OmniRoute

    Manages AI provider connections, API keys, OAuth flows and connection tests through OmniRoute's REST API across its 327-provider catalog.

    74k GitHub stars~2.4k tokensUpdated today
    Backend & APIsAuto-check passed
  • Antipattern Prevention

    doorkeeper-gem/doorkeeper

    Avoid common Ruby and Rails antipatterns that degrade maintainability and performance.

    5.5k GitHub stars~1.1k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Cognito

    itsmostafa/aws-agent-skills

    AWS Cognito user authentication and authorization service. An agent skill from itsmostafa/aws-agent-skills.

    1.2k GitHub starsUsed in 1 repo~2.3k tokens
    Backend & APIsAuto-check passed
  • Notion Worker Third-Party Auth Guide

    makenotion/workers-template

    Official

    Decides whether a Notion Worker should use a brokered credential, a plaintext environment secret, or OAuth to authenticate against a non-Notion service.

    439 GitHub starsUsed in 1 repo~3.5k tokens
    Backend & APIsAuto-check: notes
  • Stripe Best Practices

    kanchengw/cnllm

    Guides Stripe integration decisions — API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, Treasury financial…

    175 GitHub starsUsed in 2 repos~925 tokens
    Backend & APIsAuto-check passed

More from gmickel/flow-next

All 43 skills in this repo
  • Flow Next Resolve PR

    gmickel/flow-next

    Resolve PR review feedback. An agent skill from gmickel/flow-next.

    709 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Flow Next Resolve PR

    gmickel/flow-next

    Resolve PR review feedback — fetch unresolved threads, triage, dispatch per-thread resolver agents, validate, commit, reply + resolve via GraphQL.

    709 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Flow Next

    gmickel/flow-next

    Manage .flow/ tasks and specs. An agent skill from gmickel/flow-next.

    709 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Flow Next Audit

    gmickel/flow-next

    Audit .flow/memory/ entries against the current codebase and decide Keep / Update / Consolidate / Replace / Delete / Harden per entry.

    709 GitHub stars~3.1k tokensUpdated yesterday
    Auto-check: notes
  • Flow Next Capture

    gmickel/flow-next

    Save the current conversation as a source-tagged flow-next spec, then offer review or editing.

    709 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check: notes
  • Flow Next Chart

    gmickel/flow-next

    Decision-map discovery for one oversized unclear idea before capture.

    709 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check: notes

Categories

Questions about Flow Next Refine

What does Flow Next Refine do?

Refine a spec, task, or spec file before building - one question pass for the decisions that would change what gets built, optionally focused by a free-text --scope lens (business, technical, qa…. Flow Next Refine is an agent skill from gmickel/flow-next.), or a read-only research pass (--scope=research) that resolves library versions, changed APIs, and gotchas from external docs into the spec.

When should I use Flow Next Refine?

Flow Next Refine fits situations like: A named product; costly-to-reverse technical decision is open; the spec names a library; API the repo does not already use.

How do I install Flow Next Refine in Claude Code?

Run `npx skills add gmickel/flow-next --skill flow-next-refine -a claude-code`. Or copy the skill folder (plugins/flow-next/skills/flow-next-refine in gmickel/flow-next) into .claude/skills/flow-next-refine in your project. Claude Code loads it when a task matches its description.

How do I install Flow Next Refine in Codex?

Run `npx skills add gmickel/flow-next --skill flow-next-refine -a codex`. Or copy the skill folder (plugins/flow-next/skills/flow-next-refine in gmickel/flow-next) into .agents/skills/flow-next-refine in your project. Codex loads it when a task matches its description.

Can I use Flow Next Refine in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gmickel/flow-next --skill flow-next-refine -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/flow-next-refine, .gemini/skills/flow-next-refine, .github/skills/flow-next-refine and .opencode/skills/flow-next-refine in your project.

What does Flow Next Refine need to run?

Going by SKILL.md and its folder, Flow Next Refine needs the command-line tools its instructions call (jq).

Does Flow Next Refine access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Flow Next Refine safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Flow Next Refine use?

Flow Next Refine is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Flow Next Refine use?

About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.7k tokens, read only when the agent opens those files.

What are the alternatives to Flow Next Refine?

Skills that share tags, products or a category with Flow Next Refine: Fortify Development (coollabsio/coolify, 63k stars), OmniRoute Provider Management (diegosouzapw/OmniRoute, 74k stars), Antipattern Prevention (doorkeeper-gem/doorkeeper, 5.5k stars) and Cognito (itsmostafa/aws-agent-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Flow Next Refine?

gmickel (a GitHub user) maintains it in gmickel/flow-next, which has 709 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on October 7, 2026.

Source: gmickel/flow-next on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.