Fortify Development
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
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…
$ npx skills add gmickel/flow-next --skill flow-next-refine -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gmickel/flow-next flow-next-refine --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "flow-next-refine" agent skill from https://github.com/gmickel/flow-next/tree/main/plugins/flow-next/skills/flow-next-refine into .claude/skills/flow-next-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "flow-next-refine", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gmickel/flow-next/tree/main/plugins/flow-next/skills/flow-next-refineType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gmickel/flow-next --skill flow-next-refine -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gmickel/flow-next flow-next-refine --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gmickel/flow-next.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/flow-next/skills/flow-next-refine .agents/skills/flow-next-refine && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "flow-next-refine" agent skill from https://github.com/gmickel/flow-next/tree/main/plugins/flow-next/skills/flow-next-refine into .agents/skills/flow-next-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "flow-next-refine", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gmickel/flow-next --skill flow-next-refine -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gmickel/flow-next flow-next-refine --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gmickel/flow-next.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/flow-next/skills/flow-next-refine .cursor/skills/flow-next-refine && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "flow-next-refine" agent skill from https://github.com/gmickel/flow-next/tree/main/plugins/flow-next/skills/flow-next-refine into .cursor/skills/flow-next-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "flow-next-refine", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gmickel/flow-next.git --path plugins/flow-next/skills/flow-next-refine--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gmickel/flow-next --skill flow-next-refine -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gmickel/flow-next flow-next-refine --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gmickel/flow-next.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/flow-next/skills/flow-next-refine .gemini/skills/flow-next-refine && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "flow-next-refine" agent skill from https://github.com/gmickel/flow-next/tree/main/plugins/flow-next/skills/flow-next-refine into .gemini/skills/flow-next-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "flow-next-refine", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gmickel/flow-next flow-next-refineInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gmickel/flow-next --skill flow-next-refine -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gmickel/flow-next.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/flow-next/skills/flow-next-refine .github/skills/flow-next-refine && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "flow-next-refine" agent skill from https://github.com/gmickel/flow-next/tree/main/plugins/flow-next/skills/flow-next-refine into .github/skills/flow-next-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "flow-next-refine", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gmickel/flow-next --skill flow-next-refine -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gmickel/flow-next flow-next-refine --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gmickel/flow-next.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/flow-next/skills/flow-next-refine .opencode/skills/flow-next-refine && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "flow-next-refine" agent skill from https://github.com/gmickel/flow-next/tree/main/plugins/flow-next/skills/flow-next-refine into .opencode/skills/flow-next-refine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "flow-next-refine", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
flow-next-refineRefine 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. 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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 09e291e. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
jqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from gmickel/flow-next at commit 09e291e, republished under its MIT licence (© gmickel). 2,436 words, ~5,161 tokens.
.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.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.
flowctl is bundled, not installed globally (which flowctl fails). Define once; later blocks use $FLOWCTL:
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"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)."
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:
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."
fiWhen the sentinel prints, read references/doc-aware.md and apply the behaviours its gates enable. Otherwise do not read it.
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.
fn-12, fn-1-add-oauth, or a handle that resolves to one): read it with $FLOWCTL cat <id>.fn-1-add-oauth.3, or a handle with a .): $FLOWCTL cat <id>, plus the parent spec with $FLOWCTL cat <spec-id>.Keep the text you read: the write-back compares against it.
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)").
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.
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:
## Resolved via Codebase with file:line evidence.## Resolved via Project Docs with path:line evidence..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.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.
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:
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.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.
Write each question so the person can read it once and answer it confidently.
<stakes>. Recommended: <X> — <why>. Confidence: [high | judgment-call | your-call].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.
A recommendation never implies consent. Three answer shapes:
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.
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.
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.
## Decision Context carries ### Motivation / ### Implementation Tradeoffs, put a rationale under the one it fits and never add or remove sub-headings.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.## Decision Context as guidance; a number becomes a criterion only when the person stated it. Your recommended options never become thresholds.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.
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.
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:
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."
fiWhen a sentinel prints, read the named section of references/post-write-back.md before continuing. With no tracker and readiness not adopted, neither fires.
Print a summary:
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.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:
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./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)./flow-next:work fn-N.M./flow-next:capture to turn the refined document into a spec./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
SKILL.md and 10 other files (references) in plugins/flow-next/skills/flow-next-refine of gmickel/flow-next.
Open the folder on GitHubat commit 09e291e
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Flow Next Refine this skillgmickel/flow-next | 709 | — | ~5.2k | Automated safety check: Pass | MIT | |
| Fortify Developmentcoollabsio/coolify | 63k | 4 repos | ~1.9k | Automated safety check: Pass | MIT | |
| OmniRoute Provider Managementdiegosouzapw/OmniRoute | 74k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Antipattern Preventiondoorkeeper-gem/doorkeeper | 5.5k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Cognitoitsmostafa/aws-agent-skills | 1.2k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Notion Worker Third-Party Auth Guidemakenotion/workers-template | 439 | 1 repos | ~3.5k | Automated safety check: Notes | MIT |
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
diegosouzapw/OmniRoute
Manages AI provider connections, API keys, OAuth flows and connection tests through OmniRoute's REST API across its 327-provider catalog.
doorkeeper-gem/doorkeeper
Avoid common Ruby and Rails antipatterns that degrade maintainability and performance.
itsmostafa/aws-agent-skills
AWS Cognito user authentication and authorization service. An agent skill from itsmostafa/aws-agent-skills.
makenotion/workers-template
Decides whether a Notion Worker should use a brokered credential, a plaintext environment secret, or OAuth to authenticate against a non-Notion service.
kanchengw/cnllm
Guides Stripe integration decisions — API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, Treasury financial…
gmickel/flow-next
Resolve PR review feedback. An agent skill from gmickel/flow-next.
gmickel/flow-next
Resolve PR review feedback — fetch unresolved threads, triage, dispatch per-thread resolver agents, validate, commit, reply + resolve via GraphQL.
gmickel/flow-next
Manage .flow/ tasks and specs. An agent skill from gmickel/flow-next.
gmickel/flow-next
Audit .flow/memory/ entries against the current codebase and decide Keep / Update / Consolidate / Replace / Delete / Harden per entry.
gmickel/flow-next
Save the current conversation as a source-tagged flow-next spec, then offer review or editing.
gmickel/flow-next
Decision-map discovery for one oversized unclear idea before capture.
Categories
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.
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.
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.
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.
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.
Going by SKILL.md and its folder, Flow Next Refine needs the command-line tools its instructions call (jq).
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.
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.
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.
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.
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.
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.