Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Establish a finding before you publish it, and correct it after — headlines that overstate what actually reproduces at the layer a user sees, reporting code that no entry point can reach or that is…
$ npx skills add kajisho5/ffmpeg-skill --skill writing-defect-reports -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kajisho5/ffmpeg-skill writing-defect-reports --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/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/defect-reports .claude/skills/writing-defect-reports && 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 "writing-defect-reports" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/defect-reports into .claude/skills/writing-defect-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-defect-reports", 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/kajisho5/ffmpeg-skill/tree/main/.claude/skills/defect-reportsType 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 kajisho5/ffmpeg-skill --skill writing-defect-reports -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kajisho5/ffmpeg-skill writing-defect-reports --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/defect-reports .agents/skills/writing-defect-reports && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "writing-defect-reports" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/defect-reports into .agents/skills/writing-defect-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-defect-reports", 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 kajisho5/ffmpeg-skill --skill writing-defect-reports -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kajisho5/ffmpeg-skill writing-defect-reports --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/defect-reports .cursor/skills/writing-defect-reports && 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 "writing-defect-reports" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/defect-reports into .cursor/skills/writing-defect-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-defect-reports", 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/kajisho5/ffmpeg-skill.git --path .claude/skills/defect-reports--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 kajisho5/ffmpeg-skill --skill writing-defect-reports -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kajisho5/ffmpeg-skill writing-defect-reports --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/defect-reports .gemini/skills/writing-defect-reports && 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 "writing-defect-reports" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/defect-reports into .gemini/skills/writing-defect-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-defect-reports", 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 kajisho5/ffmpeg-skill writing-defect-reportsInstalls 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 kajisho5/ffmpeg-skill --skill writing-defect-reports -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/defect-reports .github/skills/writing-defect-reports && 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 "writing-defect-reports" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/defect-reports into .github/skills/writing-defect-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-defect-reports", 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 kajisho5/ffmpeg-skill --skill writing-defect-reports -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kajisho5/ffmpeg-skill writing-defect-reports --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/defect-reports .opencode/skills/writing-defect-reports && 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 "writing-defect-reports" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/defect-reports into .opencode/skills/writing-defect-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-defect-reports", 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.
writing-defect-reportsEstablish a finding before you publish it, and correct it after — headlines that overstate what actually reproduces at the layer a user sees, reporting code that no entry point can reach or that is…
Writing Defect Reports is an agent skill from kajisho5/ffmpeg-skill. Establish a finding before you publish it, and correct it after — headlines that overstate what actually reproduces at the layer a user sees, reporting code that no entry point can reach or that is already dead, filing a caveat the project's own records already answered, re-verifying your prior notes against the tree instead of against the note, choosing the narrowest injection point that reproduces a failure without breaking the run first, capturing probe output a harness swallows, and withdrawing a published…
Its SKILL.md is about 3k 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 Development. The licence is MIT.
Read from SKILL.md and the folder at commit 1f7e7e3. 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:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom 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.
Writing Defect Reports loads about 3k tokens when it runs. Until then it costs about 193 tokens; SKILL.md has 1,519 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 kajisho5/ffmpeg-skill at commit 1f7e7e3, republished under its MIT licence (© kajisho5). 1,519 words, ~3,041 tokens.
.claude/skills/writing-defect-reports/SKILL.md (or your agent's skills folder).A report is a claim, and it is read by people who will not re-derive it. The cost
of an overstated one is not embarrassment — it is a maintainer spending an
afternoon on a premise that does not hold, or a "fix" landing for a failure mode
that never occurred. The techniques for finding a defect live in
verifying-external-behavior (also in this repo's .claude/skills/). This
skill is about the step between finding one and publishing it.
The rule underneath all of it: publish the claim you actually measured, at the layer you measured it.
The common failure is not a fabricated bug. It is a genuine internal oddity promoted one layer too far.
You notice that a helper returns a degenerate value for a small sample, trace it into a scoring path, and write the report as "short inputs are wrongly flagged." Then you run real short inputs through the public entry point and the flag never sets — a downstream threshold absorbs the degenerate value, and the only visible effect is noise in a secondary per-feature list. The internal oddity is worth fixing; the headline was false, and a reviewer who tests it will say so.
Before writing the title, run the reproduction at the outermost layer the title names. Then choose one of three honest framings:
| what you measured | how to file it |
|---|---|
| reproduces end to end | file it as the user-visible symptom |
| reproduces internally, absorbed downstream | file the internal defect, state the absorption |
| does not reproduce at all | do not file; record the probe and move on |
The second row is a good report, not a weak one. "This helper returns a value it should not; today a threshold happens to mask it, so there is no user-visible symptom yet" tells a maintainer exactly how to prioritize. Silently keeping the dramatic title because the underlying issue is real is what burns credibility.
Three shapes look like defects and are not — or are, but not the one you were about to describe:
A branch that cannot execute. An early return guarding a lookup that already returns the same value on the missing case; a condition a preceding gate already implies. This is dead code, and "dead code" is the accurate report. Filing it as a correctness bug, or naming a test as though it exercises that branch, misleads everyone downstream — confirm liveness by deleting the line and watching the suite, not by reading it.
A guard whose pattern only matches your fixture. A validity check written against a hand-typed sample can be structurally unable to fire against the real input: a single-line pattern against a generator that wraps its output across indented lines, an exact-string check against a source that varies whitespace. Verify the guard against a captured real input, not the fixture. The consequence matters for the fix, too: replacing synthetic fixtures with real captures deletes that guard's only coverage, so the fix and the fixture change belong in one change, not two.
A file nothing invokes. Repos accumulate scripts that reference paths the repo does not contain and toolchains it does not depend on. Before reporting one as broken, find the caller — the task runner, the workflow, the entry point. If there is none, the report is "this is dead, delete it," which is cheap and uncontroversial, rather than "the build is broken," which is wrong.
The most avoidable report is the one the project already answered. Two measured figures that look inconsistent are usually inconsistent definitions, and the definition is usually written down: a claim ledger row, a docstring, a design note, a closed issue.
Grep for the term before writing "these two numbers do not appear to compute the same quantity." If a record pins the definition, cite it — the caveat you were about to publish reads as an open question the project already closed, and a maintainer has to re-close it.
The same discipline applies to numbers you are quoting. Figures in an older issue may not reproduce, because a dependency the value depends on is unpinned and the installed version has changed. Re-measure before restating, and record it with the command, output, and date — see verifying-external-behavior for why an undated measurement cannot be re-checked, and cross-surface-changes for choosing between two records that cover the same fact.
Quote the protocol next to the figure, not only in whatever artifact produced it: the split, the warmup, the seed, the version. Two documents quoting the same metric under different protocols read as a regression to anyone comparing them, and the reader has no way to tell that they are not comparable.
Working notes, scratch findings, and a prior comment on the same issue are secondary sources — including your own. They were true about a tree that has since moved, or they were wrong when written.
When a note and the code disagree, the code settles it. Re-derive from the integration branch directly rather than from a checkout that may be behind:
git show origin/main:path/to/file.py | grep -n 'the_symbol'If two notes contradict each other, do not average them and do not pick the more recent — re-check the tree and then correct the wrong note in place, saying that it was wrong. A knowledge base that records both readings without resolving them is worse than one that records neither, because the next reader will pick one at random.
To exercise a failure path by hand you need to break something. Break the smallest possible thing, or the run dies before reaching the path you care about.
The classic miss is a blanket hook or a global monkeypatch:
# Too broad — rejects EVERY commit, including the unrelated bookkeeping commit
# the process makes first. The run fails earlier than the path under test, and
# you have reproduced a different bug.
echo 'exit 1' > .git/hooks/pre-commit
# Narrow — fails exactly the operation whose failure you want to observe.
cat > .git/hooks/commit-msg <<'EOF'
grep -q 'sync from source-b' "$1" && exit 1
exit 0
EOFThe same rule holds elsewhere: fail one HTTP host rather than the network; make one file unreadable rather than the directory; raise from one call rather than patching the module. After the run, confirm it failed where you intended — otherwise you have measured your instrumentation.
Check where your probe's output actually goes. Test harnesses commonly replace the global logger or console object at setup, and verbosity flags do not undo that. If a probe prints nothing, append to a file outside the harness's reach and read it afterwards, rather than concluding the code path did not run.
When you back a report with mutation evidence, include only mutations that (a) plausibly model how an implementation would actually regress and (b) demonstrably turn a named test red. A mutation that nothing catches is worth reporting as a coverage gap; a mutation nobody would ever write is noise that makes the rest of the report look padded.
State which test each mutation trips, and which assertion inside it — a guard often turns out to be load-bearing at a different layer than the report assumed, and the assertion name is what reveals it.
Whether a red check is pre-existing is answered by running it on the base commit
— see reproducing-ci-locally (also in this repo's .claude/skills/). What
belongs here is where that answer goes in the write-up. A red check is never a
parenthetical under a "done" claim: give it its own statement naming what is red,
what makes it red, and whether you fixed it. And confirm green after the run
finishes rather than writing "should be green" — a prediction stated as an
outcome is the same defect as an overstated headline, one artifact over.
A wrong claim that has been read does not become unwritten when you stop repeating it. If a caveat, a number, or a framing you published turns out to be wrong or already-answered:
The same applies to a claim you inherited. If you repeat someone else's figure and it fails to reproduce, correcting it is part of your report, not a separate errand.
Before publishing a defect report:
- [ ] Reproduction run at the outermost layer the title names; title matches
what reproduced there, not what you found internally
- [ ] Absorbed-downstream findings filed as internal defects, with the absorption
stated — not promoted to a user-visible symptom
- [ ] The code is reachable: an entry point calls it, and the branch is live
(checked by deletion, not by reading)
- [ ] Guards verified against a captured real input, not the fixture that was
written alongside them
- [ ] Project records (ledger, docstrings, design notes, closed issues) searched
for a definition that already resolves the discrepancy
- [ ] Every quoted number re-measured, with version, command, and date; protocol
stated next to the figure
- [ ] Prior notes re-verified against the integration branch, and any wrong note
corrected in place
- [ ] Failure injected at the narrowest point; run confirmed to have failed where
intended
- [ ] Mutation evidence limited to plausible regressions, each attributed to a
named test and assertion
- [ ] No red check described as pre-existing under a "done" claim; green
confirmed after the run finished, not predicted
- [ ] Any earlier wrong claim withdrawn in the thread where it was publishedThis is the same discipline behind this repo's 0.9.1/0.10.0 "honesty fix"
pattern: cut.py's mode/keyframe_snapped/duration_delta_seconds fields,
check.py's reason field, and render.py's check-stage exit code were all
added because a prior report ("the cut is lossless," "the check passed," "the
render succeeded") was true at one layer and silently false at the layer a
caller actually reads results from — exactly the "genuine internal oddity
promoted one layer too far" pattern this skill describes, just discovered
after shipping rather than before. When investigating a new claim about this
codebase, reproduce it with real media via tests/test_all.py's fixtures
before reporting it, the same way test_cut_copy_keyframe_snap_reports_a_real_nonzero_delta
measured an actual 1.24s divergence rather than assuming one.
Source: wdm0006/python-skills (MIT).
© kajisho5, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/defect-reports of kajisho5/ffmpeg-skill.
Open the folder on GitHubat commit 1f7e7e3
Writing Defect Reports 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 |
|---|---|---|---|---|---|---|
| Writing Defect Reports this skillkajisho5/ffmpeg-skill | 1.9k | — | ~3k | Automated safety check: Pass | MIT | |
| Vercel Composition Patternssupabase/supabase | 111k | 58 repos | ~726 | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Typescript Advanced Typesrolling-scopes/rsschool-app | 10k | 25 repos | ~4.2k | Automated safety check: Pass | MPL-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 4 repos | ~1.1k | Automated safety check: Pass | MIT |
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
rolling-scopes/rsschool-app
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
kajisho5/ffmpeg-skill
Edit video and audio with local FFmpeg from natural-language requests: cut, trim, join, resize/reframe (9:16, 1:1), speed change, captions and subtitles (SRT/ASS, animated, karaoke), logos and text…
kajisho5/ffmpeg-skill
Generate GitHub Actions CI/CD pipeline configurations for automated building and testing of library and package projects.
kajisho5/ffmpeg-skill
Review a change to the ffmpeg-skill repository for the failures its own contract makes possible — a claim in a result document that is true at one layer and false at the layer a caller reads, a new…
kajisho5/ffmpeg-skill
Builds robust Python MCP (Model Context Protocol) servers with FastMCP — tool design, error contracts, event-loop-safe blocking work, subprocess/CLI wrapping, single-file vs packaged distribution…
kajisho5/ffmpeg-skill
Resolve conflicts and merges when several branches are open against one repo at the same time — the hotspot files every change must touch (registry manifests, a single version field, shared tool…
kajisho5/ffmpeg-skill
Add and review preconditions on operations that delete, overwrite, rewrite history, or resolve a caller-supplied name to a filesystem path — refusing instead of warning, placing the guard ahead of…
Categories
Establish a finding before you publish it, and correct it after — headlines that overstate what actually reproduces at the layer a user sees, reporting code that no entry point can reach or that is…. Writing Defect Reports is an agent skill from kajisho5/ffmpeg-skill.
Writing Defect Reports fits situations like: filing an issue; writing the body of a PR; code review that asserts a defect; triaging someone elses report.
Run `npx skills add kajisho5/ffmpeg-skill --skill writing-defect-reports -a claude-code`. Or copy the skill folder (.claude/skills/defect-reports in kajisho5/ffmpeg-skill) into .claude/skills/writing-defect-reports in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kajisho5/ffmpeg-skill --skill writing-defect-reports -a codex`. Or copy the skill folder (.claude/skills/defect-reports in kajisho5/ffmpeg-skill) into .agents/skills/writing-defect-reports 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 kajisho5/ffmpeg-skill --skill writing-defect-reports -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/writing-defect-reports, .gemini/skills/writing-defect-reports, .github/skills/writing-defect-reports and .opencode/skills/writing-defect-reports in your project.
Going by SKILL.md and its folder, Writing Defect Reports needs the command-line tools its instructions call (git).
SKILL.md names 1 domain. As links in the text: github.com. 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.
Writing Defect Reports is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Writing Defect Reports: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kajisho5 (a GitHub user) maintains it in kajisho5/ffmpeg-skill, which has 1,909 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 10, 2026.
Source: kajisho5/ffmpeg-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.