Coding Standards
kurealnum/dotfiles
Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development.
A skill your agent uses when asked for a full codebase review, health check, quality audit, or scorecard of this repo, or for a "fable review" / multi-pillar review whose output another agent will…
$ npx skills add ZoneMinder/zmNinjaNg --skill fable-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ZoneMinder/zmNinjaNg fable-review --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/ZoneMinder/zmNinjaNg.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fable-review .claude/skills/fable-review && 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 "fable-review" agent skill from https://github.com/ZoneMinder/zmNinjaNg/tree/main/.claude/skills/fable-review into .claude/skills/fable-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fable-review", 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/ZoneMinder/zmNinjaNg/tree/main/.claude/skills/fable-reviewType 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 ZoneMinder/zmNinjaNg --skill fable-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ZoneMinder/zmNinjaNg fable-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZoneMinder/zmNinjaNg.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/fable-review .agents/skills/fable-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fable-review" agent skill from https://github.com/ZoneMinder/zmNinjaNg/tree/main/.claude/skills/fable-review into .agents/skills/fable-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fable-review", 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 ZoneMinder/zmNinjaNg --skill fable-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ZoneMinder/zmNinjaNg fable-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZoneMinder/zmNinjaNg.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/fable-review .cursor/skills/fable-review && 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 "fable-review" agent skill from https://github.com/ZoneMinder/zmNinjaNg/tree/main/.claude/skills/fable-review into .cursor/skills/fable-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fable-review", 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/ZoneMinder/zmNinjaNg.git --path .claude/skills/fable-review--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 ZoneMinder/zmNinjaNg --skill fable-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ZoneMinder/zmNinjaNg fable-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZoneMinder/zmNinjaNg.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/fable-review .gemini/skills/fable-review && 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 "fable-review" agent skill from https://github.com/ZoneMinder/zmNinjaNg/tree/main/.claude/skills/fable-review into .gemini/skills/fable-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fable-review", 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 ZoneMinder/zmNinjaNg fable-reviewInstalls 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 ZoneMinder/zmNinjaNg --skill fable-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ZoneMinder/zmNinjaNg.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/fable-review .github/skills/fable-review && 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 "fable-review" agent skill from https://github.com/ZoneMinder/zmNinjaNg/tree/main/.claude/skills/fable-review into .github/skills/fable-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fable-review", 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 ZoneMinder/zmNinjaNg --skill fable-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ZoneMinder/zmNinjaNg fable-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZoneMinder/zmNinjaNg.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/fable-review .opencode/skills/fable-review && 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 "fable-review" agent skill from https://github.com/ZoneMinder/zmNinjaNg/tree/main/.claude/skills/fable-review into .opencode/skills/fable-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fable-review", 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.
fable-reviewA skill your agent uses when asked for a full codebase review, health check, quality audit, or scorecard of this repo, or for a "fable review" / multi-pillar review whose output another agent will…
Fable Review is an agent skill from ZoneMinder/zmNinjaNg. Use when asked for a full codebase review, health check, quality audit, or scorecard of this repo, or for a "fable review" / multi-pillar review whose output another agent will execute. Runs only on Fable. Triggers on "fable review", "review the codebase", "score the repo", "audit code health".
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `brief-template.md`).
It sits in Mobile, covering Code quality. It works with React. The repository describes itself as: ZoneMinder client for iOS, Android, Windows, macOS, Linux and web. Live camera view, event review, montage, timeline, push notifications. Rewrite of zmNinja. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3f90042. 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:
gitghclaudenpmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, gh, npm and npx, which can reach the network depending on how they are called.
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.
Fable Review loads about 4.2k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 2,412 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 ZoneMinder/zmNinjaNg at commit 3f90042, republished under its Apache-2.0 licence (© ZoneMinder). 2,412 words, ~4,207 tokens.
.claude/skills/fable-review/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.A scored, multi-pillar codebase review whose output is a report another agent (Opus) executes without re-deriving anything. The pillars and the report shape come from the first run of this review (issue #217, PR #218, overall 7.5 to 8.1); the rules below are what that run and its two follow-up reviews proved necessary.
Core principle: every finding was confirmed by reading the file it cites. A grep hit is a lead, not a finding, and a pillar score with no evidence under it is an opinion that does not get a number.
Second principle: the report is executed by an agent that cannot see this session. Anything a finding leaves implicit - the fix, the verification, the risk, the reason a nearby thing must not change - is work the executor will get wrong.
The review must start from a clean context. A session that has already done implementation work carries the assumptions it made while working, and it will grade its own output: gates it stopped checking read as green, code it wrote reads as idiomatic, and drift it introduced becomes invisible. Re-running these checks from a fresh context is the point of the review.
If this session already holds prior work - edits, debugging, a long conversation, or anything beyond the invocation itself - stop and say:
This review needs a clean context. Start a fresh session (
/clear, orclaude -p "/fable-review"from a new shell) on Fable, then run/fable-reviewthere.
Pillar agents inherit this: each gets a fresh context and a written brief. Never paste session history into a dispatch.
This review runs on Fable only. Fable's judgment across a whole
repository is the deliverable; the orchestrator's model bounds everything
under it (see Orchestration in agents/generic/claude-workflows.md).
Your own system prompt names the model you are running as.
If that name is not Fable (model id claude-fable-5), stop
immediately. Read nothing, dispatch nothing, write nothing.
Say exactly this and end the turn:
This review runs on Fable. You are on
<model name>. Switch with/model(pick Fable 5), then run/fable-reviewagain.
Do not work around the gate: not by dispatching Fable subagents under a
different orchestrator, not by "starting the easy parts" first, not by
offering a lighter review instead. .claude/settings.json pins this repo
to Opus by default, so hitting this gate is the normal case, and switching
is the user's call.
AGENTS.md,
AGENTS.project.md, every file in agents/project/ and
agents/generic/. Pillar 3 scores adherence to those contracts, and
the domain playbook lists approaches that already failed here - a
review that recommends one of them is worse than no review.app/src/
(prod vs test split), native shells, docs/, workflows. Name what you
excluded. Record git status and git branch --show-current; a dirty
working tree changes what the executor may commit.npm run gates from app/, plus
npx madge --circular style structural probes as needed. Never pipe a
gate into a filter (the pipeline reports the filter's exit status;
that shipped a red commit here once). Record raw counts and quote
failures verbatim.model: "fable"). Fill brief-template.md (next to this
file) once per pillar; the filled template is the whole prompt. Agents
read and probe only - no edits, no commits. Stop each agent as soon as
its report is verified.docs/superpowers/analysis/*-fable-review.md;
any pillar moving more than 1.0 from it gets one sentence naming the
findings (or fixes) that moved it.Scores come from confirmed findings, not impression. Start at 10 and apply the cap or deduction each row names; the lowest cap wins, then deductions apply below it.
| Condition | Effect |
|---|---|
| Any confirmed HIGH finding | Cap 7.0 |
| Three or more confirmed HIGH | Cap 5.0 |
| A gate the pillar relies on is red or advisory-only | Cap 6.0 |
| Each confirmed MED | -0.5 |
| Each confirmed LOW | -0.2 |
| Pillar skipped by instruction, or evidence could not be gathered | No number; write "not assessed" |
Floor is 1.0. Overall is the mean of scored pillars only.
| # | Pillar | Scores what | Look at |
|---|---|---|---|
| 1 | Code clarity | Idiom consistency, unnamed state machines, dead ternaries, IIFE-in-JSX, comments that explain why | Largest components, hooks with paired raw/wrapped setters |
| 2 | DRY and reuse | Real cross-file duplication (verified by hand), under-adopted shared components | Page scaffolding, error banners, empty states, control wiring |
| 3 | Contract and rule adherence | Every contract in AGENTS.project.md (Owns/Path/Never/Gate) plus the AGENTS.md tiers, measured by counts not vibes | app/src/tests/agents-contracts.test.ts and the paths each contract names |
| 4 | Architecture and modularity | Dependency direction, cycles, query-key discipline, persistence durability, folder shape | app/src/tests/no-circular-deps.test.ts, lib/query/, stores vs services |
| 5 | Test quality and automation trust | What the suite would catch: assertion-free tests, conditional-pass e2e steps, fixed sleeps, presence-only assertions, untested risky modules | app/tests/**/*.steps.ts, coverage of services/, lib/security/ |
| 6 | Runtime performance | Hot paths, whole-store subscriptions, per-render allocation, canvas reallocation, stream teardown | Montage, timeline canvas, event list, zustand selectors |
| 7 | Native platform integration | Session/delegate lifetimes, iOS/Android parity, main-thread discipline, permission surface, SDK currency | app/ios/, app/android/, app/electron/ |
| 8 | Accessibility and UX robustness | Offline behavior, reduced motion, contrast, touch targets, accessible names, keyboard and TV reachability | lint:a11y output, index.css tokens, icon-only buttons |
| 9 | Build, CI, dependency health | Which gates are hard vs advisory, hooks, PR gating, dead scripts, gitignore claims that do not match reality | .github/workflows/, root and app/ package.json, husky |
| 10 | Documentation and handover | Accuracy over volume: spot-verify code-citing claims against source | docs/developer-guide/call-flows.rst, user guide gaps |
| 11 | Error handling and trust boundaries | I1/I2: validation of server responses, user input and IPC; recovery paths on destructive operations; swallowed errors; error-class misdetection (DOMException is not an Error) | Validators, delete/download paths, catch bodies |
| 12 | Security | Secrets handling, token storage and logging, injection sinks, TLS trust decisions | Ask the maintainer first; the first run skipped this by instruction. If skipped, say so in the report and score it as not assessed, never 0 |
| 13 | Instruction system overhead | Whether the contracts, gates, and playbooks cost more than they catch: contracts whose Never list a gate never checks or that duplicate a lint or type error, gates that overlap (two tests asserting the same invariant, a ratchet and a lint on the same count), rules with no gate (M1), playbook facts repeated across files or restating code, instruction length that slows every session without preventing a recorded breakage. Score by work removed per breakage still prevented; a rule whose history (git log, agents/project/domain-context.md) shows no incident it stopped is a candidate for deletion, not hardening | AGENTS.md, AGENTS.project.md, agents/**, app/src/tests/agents-contracts.test.ts, app/src/tests/no-circular-deps.test.ts, scripts/*.mjs, .github/workflows/, husky hooks; findings route through the self-improvement protocol (M3) and name the consolidated gate that survives |
If git ls-files | cut -d/ -f1-2 | sort -u lists a directory that no
pillar's Look-at column names and that holds shipped code, add a pillar
for it and say so in the header. If a pillar's Look-at paths do not
exist in the tree, drop it and say so; a dropped pillar is not a zero.
file.ts:123 for anything the reader would open, and name the
symbol next to it. Line numbers rot within hours on an active branch;
the symbol is what survives.ponytail: comment are not findings. Contract text beats rediscovering
an invariant from code; a code/contract mismatch is itself a finding,
routed to the self-improvement protocol.Every finding in the report carries all of these, rendered as a bullet
list with one **Field:** per bullet. Single newlines merge into one
paragraph on GitHub, so field-per-line prose becomes unreadable there.
The executing agent has no session context; a missing field becomes a
guess.
| Field | Content |
|---|---|
| ID | P<pillar>-<n>, stable, referenced by the phase plan |
| Severity | HIGH / MED / LOW by user-visible impact, not by how odd the code looks |
| Site | file:line plus symbol name, one line per site if several |
| What is wrong | The defect, stated plainly |
| Why it matters | The failure a user or contributor would see |
| Fix | Concrete enough to start: the pattern to follow and the existing example of it in this repo |
| Verification | Which gate, test, or device pass proves the fix. New behavior needs a test proven red against the pre-fix code (P2) |
| Effort | S / M / L, justified by site count |
| Risk | What the fix could break, and whether it is verifiable in CI or device-only |
| Contracts | Rule and contract IDs implicated, never copied text |
Write to docs/superpowers/analysis/YYYY-MM-DD-fable-review.md. It is
documentation: agents/project/documentation.md applies in full - plain
headings, no superlatives, no invented shorthand, depth over compression.
Sections, in order:
Pillar N: name (X/10), then strengths
verified (not assumed), then numbered findings with the fields above,
then Path to 10/10 split into worth it and not worth it. The
not worth it half is load-bearing: without it the executor churns
through mechanical work that buys nothing.## Score (before) heading; then the report from the
cross-cutting themes onward (gh issue create --body-file on a
file assembled from those parts, so the issue and the report do
not drift). Never paste the report's own header twice.core and refactor together: a review spans both
behavior-changing findings and behavior-preserving cleanups, so
neither label alone describes the work it will spawn. Confirm both
labels exist first (gh label list).Posted by Claude (Fable 5), assisting @<login>. - resolve <login>
with gh api user --jq .login; never hardcode a username.Refs #<issue>).
When the branch's final review is clean, re-dispatch the pillar
agents for every pillar the branch touched (same briefs, fresh
context), re-score them with the rubric, and post one comment on the
issue: a table with pillar, score before, score after, one-line
verdict; overall before and after; then the findings that remain,
each with its ID and why it was left. Close with the identification
line. The PR body quotes the issue's acceptance lines (P1); closing
keywords only after the maintainer confirms.| Mistake | Fix |
|---|---|
| Proceeding on a non-Fable model | Stop at the gate. It is the first instruction for a reason |
| Reporting grep counts as findings | Open the file. The first run's credibility came from spot-verified claims |
| Recommending an approach the domain playbook records as failed | Read agents/project/domain-context.md before writing any Path to 10/10 |
| Proposing deletion of an empty hook point | An unimplemented feature is a missing feature: file it, do not silently remove the branch |
| Bundling enforcement with the work it would newly fail | Gate first against current behavior, harden after |
| Sizing a multi-site cleanup as S | Count the sites, then estimate |
| Scoring test quality by test count | Score by what the suite would catch; name one plausible bug it would miss |
| Ranking theoretical risks alongside observed ones | Label the evidence, rank by it |
| Omitting the non-findings section | The executor will "fix" a deliberate design and ship a regression |
| Leaving native items unmarked | Say device-pass-required on every one; CI cannot verify them |
| Grading the instruction system only for gaps | Pillar 13 exists to find what to remove. A redundant gate or an ungated rule that has never fired is friction, and adding more rules to a system that already slows work is itself a finding |
| Filing the issue with your own guess at why the review ran | Ask, then quote the answer. The trigger is the maintainer's context, and it is what makes the issue readable a month later |
© ZoneMinder, Apache-2.0. 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 1 other file in .claude/skills/fable-review of ZoneMinder/zmNinjaNg.
Open the folder on GitHubat commit 3f90042
Fable Review 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 |
|---|---|---|---|---|---|---|
| Fable Review this skillZoneMinder/zmNinjaNg | 110 | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Coding Standardskurealnum/dotfiles | 290 | 17 repos | ~2.9k | Automated safety check: Pass | None | |
| Code Review SkillRain-kl/OpenFlare | 288 | — | ~2.3k | Automated safety check: Notes | MIT | |
| Qovery Console StandardsQovery/console | 227 | — | ~924 | Automated safety check: Pass | MIT | |
| Clean Code Refactorerfike/fastapi-blog | 101 | — | ~402 | Automated safety check: Pass | MIT | |
| Code Review Excellenceandrew-yangy/gru-ai | 155 | — | ~1.7k | Automated safety check: Notes | MIT |
kurealnum/dotfiles
Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development.
Rain-kl/OpenFlare
Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, PHP, Python, Django, Go, C/.NET, Kotlin, Swift, NestJS, C/C++, and more.
Qovery/console
Qovery Console coding standards, architecture guidelines, naming conventions, testing practices, and development workflows.
fike/fastapi-blog
Skill for identifying code smells and refactoring code using Clean Code, SOLID, and DRY principles.
andrew-yangy/gru-ai
Provides comprehensive code review guidance for React 19, Vue 3, Rust, TypeScript, Java, Python, and C/C++.
davila7/claude-code-templates
Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL.
ZoneMinder/zmNinjaNg
A skill your agent uses when adding a new interface language (locale) to the app, or when asked to translate the UI into another language.
ZoneMinder/zmNinjaNg
A skill your agent uses when asked to mine the commit history for lessons the agent instruction files have not captured, to audit whether domain-context and contracts reflect what actually broke, or…
Works with
Categories
A skill your agent uses when asked for a full codebase review, health check, quality audit, or scorecard of this repo, or for a "fable review" / multi-pillar review whose output another agent will…. Fable Review is an agent skill from ZoneMinder/zmNinjaNg. Use when asked for a full codebase review, health check, quality audit, or scorecard of this repo, or for a "fable review" / multi-pillar review whose output another agent will execute.
Fable Review fits situations like: asked for a full codebase review; scorecard of this repo; for a fable review / multi-pillar review whose output another agent will execute; review the codebase.
Run `npx skills add ZoneMinder/zmNinjaNg --skill fable-review -a claude-code`. Or copy the skill folder (.claude/skills/fable-review in ZoneMinder/zmNinjaNg) into .claude/skills/fable-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ZoneMinder/zmNinjaNg --skill fable-review -a codex`. Or copy the skill folder (.claude/skills/fable-review in ZoneMinder/zmNinjaNg) into .agents/skills/fable-review 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 ZoneMinder/zmNinjaNg --skill fable-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fable-review, .gemini/skills/fable-review, .github/skills/fable-review and .opencode/skills/fable-review in your project.
Going by SKILL.md and its folder, Fable Review needs the command-line tools its instructions call (git, gh, claude, npm and npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use git, gh, npm and npx, which can reach the network depending on how they are called. 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.
Fable Review is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k 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 Fable Review: Coding Standards (kurealnum/dotfiles, 290 stars), Code Review Skill (Rain-kl/OpenFlare, 288 stars), Qovery Console Standards (Qovery/console, 227 stars) and Clean Code Refactorer (fike/fastapi-blog, 101 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ZoneMinder (a GitHub organization) maintains it in ZoneMinder/zmNinjaNg, which has 110 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.
Source: ZoneMinder/zmNinjaNg on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.