Agent skill

Check

by ffroliva in ffroliva/gflow-cli

Auto-fix lint and formatting, then report types and tests. An agent skill from ffroliva/gflow-cli.

MITAuto-check passedMedia & Creative

Install Check

skills CLI
$ npx skills add ffroliva/gflow-cli --skill check -a claude-code

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

GitHub CLI
$ gh skill install ffroliva/gflow-cli check --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/ffroliva/gflow-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/check .claude/skills/check && 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
check
GitHub stars
261
Token cost
~2.6k tokens
SKILL.md length
1,322 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

Auto-fix lint and formatting, then report types and tests. An agent skill from ffroliva/gflow-cli.

  • Works in 2 steps: Local Feature Branch: Proactively… → Open PR: Proactively announce: "Quality…
  • Tasks that involve AI video generation
  • SKILL.md covers Steps, Output, Pipeline Continuation (Next… and Notes
  • Calls uv, ruff and uvx

What it does

Check is an agent skill from ffroliva/gflow-cli. Auto-fix lint and formatting, then report types and tests. Run before every commit.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Media & Creative, covering AI video generation. It works with Model Context Protocol. The repository describes itself as: Drive Google Flow from the command line: Veo video and Imagen images, scripted, batched and pipeline-ready. Ships an MCP server so coding agents can drive it too, giving you and… The licence is MIT.

When your agent uses it

  • Tasks that involve AI video generation

Example prompts

  • “/check”

Requirements

  • Python 3

Workflow steps

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

  1. Local Feature Branch: Proactively announce: "Quality gates passed. Next step: Phase 5 Branch Council Review (/gflow:branch-review)."
  2. Open PR: Proactively announce: "Quality gates passed. Next step: Phase 5 PR Council Review (/gflow:pr-council-review ) or Phase 8 Live…

What it can do on your machine

Read from SKILL.md and the folder at commit 4f44ac8. 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:

    • uv
    • ruff
    • uvx
    • git
    • python

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

  • Network

    No URLs in SKILL.md. Its commands use uv, uvx and git, which can reach the network depending on how they are called.

    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

Check loads about 2.6k tokens when it runs. Until then it costs about 22 tokens; SKILL.md has 1,322 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~22
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

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 ffroliva/gflow-cli at commit 4f44ac8, republished under its MIT licence (© ffroliva). 1,322 words, ~2,578 tokens.

Download SKILL.mdSave it as .claude/skills/check/SKILL.md (or your agent's skills folder).
name
check
description
Auto-fix lint and formatting, then report types and tests. Run before every commit.
version
1.0

/gflow:check — Quality gates

Run in order. Stop and report if a step fails after the fix pass.

Steps

These steps mirror the CI test job in .github/workflows/ci.yml in the same order. Any command that CI runs as a verify (--check) is run here as a verify too — see step 4.

1. Repo hygiene + doc links + website-docs PII guard (read-only — CI runs all three; a broken doc link or a private identifier in the published website/docs/ mirror fails CI)

bash
PYTHONUTF8=1 uv run python scripts/ci/check_repo_hygiene.py
PYTHONUTF8=1 uv run python scripts/ci/check_doc_links.py
PYTHONUTF8=1 uv run python scripts/ci/check_website_docs_pii.py
PYTHONUTF8=1 uv run python scripts/ci/generate_website_docs.py --check
PYTHONUTF8=1 uv run python scripts/ci/check_council_memory.py

generate_website_docs.py --check fails on either half of the published-site contract:

  • DRIFT: — canonical docs/ changed but the website/docs/ mirror was not regenerated. Fix with uv run python scripts/ci/generate_website_docs.py and stage website/docs/.
  • NAV-ORPHAN: — a page is published but no nav: entry in website/mkdocs.yml points at it, so it is live but unreachable. Add the entry under the right nav section.

1b. Surface blast radius — MCP↔CLI parity and the other mirrors (read-only; MANDATORY whenever the change touches a CLI command, option, flag help text, exit code, or user-facing error string)

tests/mcp/test_cli_parity.py is a command-level gate only: it asserts every CLI leaf has a mapped MCP tool or a stated exemption. It is green while a new --option goes unmirrored, and green while an MCP docstring asserts a restriction the CLI no longer has. That semantic drift is invisible to every automated gate in this file, so it is checked here by hand — deliberately, because the alternative is shipping it.

bash
PYTHONUTF8=1 uv run python -m pytest -q tests/mcp/test_cli_parity.py tests/mcp/test_server.py

Then enumerate the blast radius. For the CLI symbol(s) you changed (option name, model alias, exit code, capability), grep the whole repo and confirm every hit is either updated or still true:

bash
# substitute the flag / alias / capability word you changed
grep -rn --exclude-dir=.git --exclude-dir=__pycache__ --exclude-dir=tmp "<your-symbol>" \
    src/gflow_cli/mcp/ docs/ website/docs/ README.md KNOWN_ISSUES.md CHANGELOG.md skills/

Six axes, in blast-radius order. Tick each or state why it does not apply — "I did not touch a CLI surface" is a valid answer for the whole step; silence is not.

A. Execution paths — a request is built in THREE places, not one.

HopFileFails as
CLIcli_video.py / cli_image.py dataclass → requestoption parsed but never passed
MCP directmcp/tools.py tool signature → payload dictparam accepted, dropped before the queue
MCP queuedmcp/tools.py payload keys → worker/codec.py decode → requestsilent no-op — accepted, queued, never read

The third hop is the dangerous one: the payload key the tool writes and the key the codec reads are matched by string, so a mismatch type-checks, lints, and passes tests while doing nothing. This has shipped before — a dead output param the queue never read survived until a pre-release audit (#495). Verify the key names literally line up end to end:

bash
grep -n "<param>" src/gflow_cli/mcp/tools.py src/gflow_cli/worker/codec.py

B. MCP surface truth — mcp/tools.py tool signature and every behavioural claim in its docstring; docs/MCP.md parameter prose. tests/mcp/test_cli_parity.py's CLI_TO_MCP / _MCP_EXEMPT only when adding a NEW leaf.

C. Agent-facing surfaces — read by Codex / Cursor / Aider, not just by us, and covered by no test at all: skills/gflow-cli/SKILL.md, the AGENTS.md "Command surface" bullet, README.md, docs/INDEX.md.

D. Error and exit-code surface — errors.py _default_remediation and the class docstring, EXIT_CODE_MAP, and the exit-code table in docs/USAGE.md. When a raise site is deleted, re-derive what the remaining sites are: a remediation string that still describes a removed case actively misleads.

bash
grep -rn "raise <ErrorClass>" src/gflow_cli/   # must match what the docs table claims

E. Declarative / template surfaces — defaults baked into files users copy: cli_movie.py's manifest template, movie_manifest.py, chain_manifest.py, .env.template for any env var, and the capability-reporting commands gflow models and gflow doctor.

F. Docs + published mirror — docs/USAGE.md command section, website/docs/ (regenerate; step 1 catches staleness but never wrongness), KNOWN_ISSUES.md claims about the surface, CHANGELOG.md under ### Changed whenever behaviour a script could branch on moves.

Why this step exists. In #626 the CLI stopped rejecting omni-flash --end-frame while mcp/tools.py and docs/MCP.md went on telling agents the combination was rejected. Lint, types, the full 2065-test suite, and the parity gate were green throughout, because none of them can see a docstring that lies. The AGENTS.md prose saying "keep them in sync" had been there the whole time and did not fire — the project's own lesson, again: wire the rule, or it is a wish.

2. Auto-fix lint and formatting (rewrites files in place)

bash
uv run ruff check --fix src tests
uv run ruff format src tests

Report which files were modified. If this rewrote anything, those files are part of the change — stage them. CI does not run the auto-fix; it runs the --check verify in step 4 against the committed tree, so an uncommitted reformat is a red CI build.

3. Repeat lint/format ONLY on the files you touched? No — always run repo-wide. The whole-tree src tests scope in step 2/4 is deliberate: a latent format failure in a file your change merely imports (e.g. a BDD step module) will fail CI even if your own edits are clean. Never narrow the scope to "just my files."

4. Verify — the EXACT CI gate (non-mutating; must be clean before you commit/push)

bash
uv run ruff check src tests
uv run ruff format --check src tests

These are byte-for-byte what CI runs (ci.yml "Lint" + "Format check"). If --check exits non-zero here, step 2's rewrites are uncommitted — stage them and re-run. Never push while this is red: the test job dies at the format step before pytest, which also makes SonarCloud report new_coverage=0% (no coverage XML is produced). A green /gflow:check that skips this verify is how PR #269 shipped a format failure past an 8-agent council.

4c. Duplication proxy for the SonarCloud gate (report only — offline approximation)

SonarCloud's quality gate fails on new_duplicated_lines_density > 3%, and it only runs in CI — a copy-pasted option stack or body block sails through ruff/pyright/pytest and then reddens the branch analysis after merge (this killed the develop build in the v0.48.0 cycle). Approximate the CPD locally, zero new dependencies:

bash
uvx pylint --disable=all --enable=duplicate-code --min-similarity-lines=10 src/gflow_cli

Any duplicate-code finding inside code you are adding or touching is a fix-now signal (extract a shared helper/decorator before pushing). Findings in untouched files are pre-existing — Sonar's gate measures new code only, so report them but do not block on them. This is a proxy, not the gate: SonarCloud in CI remains authoritative.

5. Type check (report only — cannot auto-fix)

bash
uv run pyright src

6. Tests + coverage (report only)

bash
uv run python -m pytest -q --cov=gflow_cli --cov-fail-under=80
Show full SKILL.md (359 more words)Show less

Output

  • List files changed by the fix pass (empty = nothing needed fixing)
  • Step 1b blast radius — the mirror table, each row ticked or explicitly marked N/A. "I did not touch a CLI surface" is a valid answer; silence is not.
  • Step 4 verify result — ruff check + ruff format --check both clean (this is the CI gate; a non-zero here is a blocking finding, not a warning)
  • All pyright errors with file:line references
  • Pytest summary line and coverage percentage
  • Final verdict: all gates pass / which gates failed

Pipeline Continuation (Next Step Handoff)

Upon successful completion of all quality gates:

  1. Local Feature Branch: Proactively announce: "Quality gates passed. Next step: Phase 5 Branch Council Review (/gflow:branch-review)."
  2. Open PR: Proactively announce: "Quality gates passed. Next step: Phase 5 PR Council Review (/gflow:pr-council-review <N>) or Phase 8 Live Verification (/gflow:live-verify)."

Notes

Ruff fix and format may rewrite multiple files. Always git diff before staging. Pyright errors and test failures require manual intervention — do not attempt silent workarounds. If the coverage run crashes the current MCP/sandbox session with Connection closed, re-run the same marker-filtered suite in smaller chunks without coverage and rely on CI for the coverage XML. Project pytest defaults already exclude e2e and live; those markers are explicit, credit-spending gates and must be requested with a separate -m e2e / -m live command.

Windows agent sessions: uv run pytest is unreliable — invoke .venv/Scripts/python.exe -m pytest directly, and prefix Python invocations with PYTHONUTF8=1 when output contains non-ASCII. The unscoped full-coverage sweep (step 6) can OOM locally (exit 137 / SIGKILL): run the suites scoped to the dirs you touched and trust CI for the full coverage gate — a green full-suite CI run on the same tree (e.g. the just-merged PR) satisfies step 6 for release purposes.

The OOM allowance applies to step 6 (coverage) ONLY. Step 4 (ruff check + ruff format --check src tests) is cheap, never OOMs, and must ALWAYS be run repo-wide against the exact tree you are about to push — no scoping, no skipping.

Offline-green here is not done-done for a change touching a generation code path (t2i/i2i/ i2v/t2v/r2v) — see /gflow:live-verify Part 2 before claiming that kind of feature complete.

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

Files

Just SKILL.md in skills/check of ffroliva/gflow-cli.

Open the folder on GitHubat commit 4f44ac8

Compare with similar skills

Check 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.

Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Check this skillffroliva/gflow-cli261—~2.6kAutomated safety check: PassMIT
Avatar Videocalesthio/OpenMontage65k—~1.6kAutomated safety check: PassAGPL-3.0
Create Videocalesthio/OpenMontage65k—~1.3kAutomated safety check: PassAGPL-3.0
Cassette Video EditCassette-Editor/oh-my-cassette1571 repos~3.4kAutomated safety check: PassMIT
Bailian Media Generationmodelstudioai/cli541—~2kAutomated safety check: PassApache-2.0
Gemini Interactions APIAyuilos/Miffan182—~4.6kAutomated safety check: PassAGPL-3.0

Similar skills

  • Avatar Video

    calesthio/OpenMontage

    Create AI avatar videos with precise control over avatars, voices, scripts, scenes, and backgrounds using HeyGen's v2 API.

    65k GitHub stars~1.6k tokensUpdated 4 days ago
    Media & CreativeAuto-check passed
  • Create Video

    calesthio/OpenMontage

    Create videos from a text prompt using HeyGen's Video Agent.

    65k GitHub stars~1.3k tokensUpdated 4 days ago
    Media & CreativeAuto-check passed
  • Cassette Video Edit

    Cassette-Editor/oh-my-cassette

    Edit, trim, cut, caption, subtitle, reframe, combine, add background music to, or export video, audio, and image files through Cassette.

    157 GitHub starsUsed in 1 repo~3.4k tokens
    Media & CreativeAuto-check passed
  • Bailian Media Generation

    modelstudioai/cli

    Chinese-language entry point into Alibaba Cloud Bailian's image, video and speech generation and understanding, routed through separate image, video, speech and vision commands.

    541 GitHub stars~2k tokensUpdated 7 days ago
    Media & CreativeAuto-check passed
  • A skill your agent uses when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, streaming responses…

    182 GitHub stars~4.6k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Clipmivo Video

    BarneyD66/clipmivo-tools

    Create and manage AI video tasks through ClipmivoAI using its MCP server, CLI or REST API.

    142 GitHub stars~945 tokensUpdated 21 days ago
    Media & CreativeAuto-check passed

More from ffroliva/gflow-cli

All 18 skills in this repo
  • Gflow CLI

    ffroliva/gflow-cli

    A skill your agent uses when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including…

    261 GitHub stars~4.8k tokensUpdated today
    Auto-check: notes
  • Issue Assessment

    ffroliva/gflow-cli

    A skill your agent uses when triaging a GitHub issue for gflow-cli — a reporter's bug claim, a freshly-filed issue, or deciding whether and how to act on one.

    261 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Issue Resolve

    ffroliva/gflow-cli

    A skill your agent uses when an assessed gflow-cli issue (verdict CONFIRMED-BUG or LIKELY-BUG) has localized, verifiable scope and should be driven to a fix.

    261 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Live Verify

    ffroliva/gflow-cli

    Two-part gate for gflow-cli feature/fix work. An agent skill from ffroliva/gflow-cli.

    261 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Video Production

    ffroliva/gflow-cli

    A skill your agent uses when the user wants a finished video out of gflow rather than a single clip — a scripted scene, a talking-head or dialogue piece, an explainer, a product montage, a story…

    261 GitHub stars~7k tokensUpdated today
    Auto-check passed
  • Doc Review

    ffroliva/gflow-cli

    Use before cutting any gflow-cli release or after a major documentation change — systematic council-driven audit that combines a mechanical 7-section checklist with a 3-agent parallel review…

    261 GitHub stars~4.2k tokensUpdated today
    Auto-check passed

Questions about Check

What does Check do?

Auto-fix lint and formatting, then report types and tests. An agent skill from ffroliva/gflow-cli. Check is an agent skill from ffroliva/gflow-cli. Auto-fix lint and formatting, then report types and tests.

When should I use Check?

Check fits situations like: tasks that involve AI video generation.

How do I install Check in Claude Code?

Run `npx skills add ffroliva/gflow-cli --skill check -a claude-code`. Or copy the skill folder (skills/check in ffroliva/gflow-cli) into .claude/skills/check in your project. Claude Code loads it when a task matches its description.

How do I install Check in Codex?

Run `npx skills add ffroliva/gflow-cli --skill check -a codex`. Or copy the skill folder (skills/check in ffroliva/gflow-cli) into .agents/skills/check in your project. Codex loads it when a task matches its description.

Can I use Check 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 ffroliva/gflow-cli --skill check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/check, .gemini/skills/check, .github/skills/check and .opencode/skills/check in your project.

What does Check need to run?

Going by SKILL.md and its folder, Check needs the command-line tools its instructions call (uv, ruff, uvx, git and python). Our summary lists: Python 3.

Does Check access the network?

SKILL.md contains no URLs. Its commands use uv, uvx and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Check 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 Check use?

Check 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 Check use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Check?

Skills that share tags, products or a category with Check: Avatar Video (calesthio/OpenMontage, 65k stars), Create Video (calesthio/OpenMontage, 65k stars), Cassette Video Edit (Cassette-Editor/oh-my-cassette, 157 stars) and Bailian Media Generation (modelstudioai/cli, 541 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Check?

ffroliva (a GitHub user) maintains it in ffroliva/gflow-cli, which has 261 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 7, 2026.

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