A skill your agent uses when asked to generate a "no way to prevent this" / no-way-to-prevent-this satire post for a memory-safety CVE (out-of-bounds write/read, buffer/heap overflow…
Default pipeline scrutineer runs when a repository is added.
Install Triage
$ npx skills add alpha-omega-security/scrutineer --skill triage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alpha-omega-security/scrutineer triage --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/alpha-omega-security/scrutineer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/triage .claude/skills/triage && 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 "triage" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/triage into .claude/skills/triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage", 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/alpha-omega-security/scrutineer/tree/main/skills/triageType 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 alpha-omega-security/scrutineer --skill triage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alpha-omega-security/scrutineer triage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/triage .agents/skills/triage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "triage" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/triage into .agents/skills/triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage", 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 alpha-omega-security/scrutineer --skill triage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alpha-omega-security/scrutineer triage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/triage .cursor/skills/triage && 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 "triage" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/triage into .cursor/skills/triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage", 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/alpha-omega-security/scrutineer.git --path skills/triage--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 alpha-omega-security/scrutineer --skill triage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alpha-omega-security/scrutineer triage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/triage .gemini/skills/triage && 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 "triage" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/triage into .gemini/skills/triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage", 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 alpha-omega-security/scrutineer triageInstalls 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 alpha-omega-security/scrutineer --skill triage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/triage .github/skills/triage && 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 "triage" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/triage into .github/skills/triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage", 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 alpha-omega-security/scrutineer --skill triage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alpha-omega-security/scrutineer triage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/triage .opencode/skills/triage && 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 "triage" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/triage into .opencode/skills/triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage", 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.
Facts
- Skill name
triage- GitHub stars
- 239
- Token cost
- ~2.9k tokens
- SKILL.md length
- 1,478 words
- Files
- 3 (incl. references)
- Skills in repo
- 48
- Repo updated
- First seen
- Licence
- MIT
At a glance
Default pipeline scrutineer runs when a repository is added.
- A standard set of other skills in parallel
- SKILL.md covers Workspace, Classify the repository, The scan set and Re-verify reported findings, plus 2 more sections
- Calls git
- Then writes a short summary of what was enqueued
What it does
Triage is an agent skill from alpha-omega-security/scrutineer. Default pipeline scrutineer runs when a repository is added. Triggers a standard set of other skills in parallel, then writes a short summary of what was enqueued. Edit the list below to change the default scan coverage without touching scrutineer's Go code.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/modes.md` and `schema.json`). Compatibility notes: Needs network access to the scrutineer API (http://host:port/api). Uses brief (github.com/git-pkgs/brief) for language and dependency gates; falls back to the…
It sits in Security. It works with C++. The repository describes itself as: Security through scrutiny. The licence is MIT.
When your agent uses it
- A standard set of other skills in parallel
- Then writes a short summary of what was enqueued
Example prompts
- “/triage”
Requirements
- Python 3
- Compatibility (from SKILL.md): Needs network access to the scrutineer API (http://host:port/api). Uses `brief` (github.com/git-pkgs/brief) for language and dependency gates; falls back to the general code and package scans if brief is unavailable. Repository modes use source evidence independently.
What it can do on your machine
Read from SKILL.md and the folder at commit f3407bf. 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:
git
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md. Its commands use 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.
Compatibility
Needs network access to the scrutineer API (http://host:port/api). Uses `brief` (github.com/git-pkgs/brief) for language and dependency gates; falls back to the general code and package scans if brief is unavailable. Repository modes use source evidence independently.
From compatibility in the SKILL.md frontmatter.
Context cost
Triage loads about 2.9k tokens when it runs, and up to ~4.2k if it reads all its reference files. Until then it costs about 66 tokens; SKILL.md has 1,478 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.
Safety
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 alpha-omega-security/scrutineer at commit f3407bf, republished under its MIT licence (© alpha-omega-security). 1,478 words, ~2,893 tokens.
.claude/skills/triage/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.- name
- triage
- description
- Default pipeline scrutineer runs when a repository is added. Triggers a standard set of other skills in parallel, then writes a short summary of what was enqueued. Edit the list below to change the default scan coverage without touching scrutineer's Go code.
- compatibility
- Needs network access to the scrutineer API (http://host:port/api). Uses `brief` (github.com/git-pkgs/brief) for language and dependency gates; falls back to the general code and package scans if brief is unavailable. Repository modes use source evidence independently.
- license
- MIT
- metadata.scrutineer.version
- 1
- metadata.scrutineer.output_file
- report.json
- metadata.scrutineer.output_kind
- freeform
triage
Scrutineer automatically queues reflect after a successful root default-branch triage invocation and waits for this invocation's child scans before running it. Do not enqueue reflect yourself or wait for it. It records operational lessons only and does not change scan selection or finding dispositions.
Kick off the standard set of scans against a freshly-added repository.
Workspace
./context.json— hasscrutineer.api_base,scrutineer.token, andscrutineer.repository_id. Required../report.json— write a short summary of what you enqueued.
Classify the repository
Run brief --json ./src and read its JSON. These fields decide which scans are worth queueing:
languages— programming languages detected;nullor empty means no sourcepackage_managers— manifest/lockfile ecosystems detected;nullor empty means nothing publishes or consumes packages here
From those, set two flags:
has_packages=package_managersis present and non-emptyhas_code=languagesis present and non-empty
A docs repo (markdown only) has neither. Anything with detected source gets the code scans, whether it is an application, a library, infra scripts, or a flat-layout package. The cost of running semgrep on a stray shell script is far lower than missing a real library because brief failed to populate layout.source_dirs. Do not gate on layout.source_dirs; it is a heuristic and routinely empty for legitimate codebases.
Set has_embedded_native when Brief reports any of these signals:
tools.native_extensionis non-emptytools.dependency_botcontainsGit Submodules- the detected languages include at least one of C, C++, Objective-C, Objective-C++, Rust, Go, Fortran, Zig, Assembly, or CUDA, and either another language or a CMake, Meson, or Autotools build tool is also present
This covers native extensions and mixed-language repositories without assuming that native code means C or C++. If brief is not on PATH or exits non-zero, set has_code, has_packages, and has_embedded_native true and carry on so the follow-up scan can retry Brief after source preparation.
languages also decides one language-specific scanner:
has_python=languagescontains Python, matched case-insensitively
This gates bandit, which reads Python and nothing else. It follows has_code: when brief is unavailable it is true too, since a missed Python codebase costs more than a scan that finds nothing.
brief does not report CI configuration, so set a fourth flag from a direct filesystem check:
has_workflows=./src/.github/workflowsexists and is a directory
This gates zizmor, which only audits GitHub Actions workflows; with no workflows directory its scan immediately no-ops, so skipping it at triage avoids enqueueing a scan that can do nothing. Unlike the code/package flags this is a definitive check, not a heuristic, so do not default it true on error — if the directory is absent, has_workflows is false.
The scan set
Read references/modes.md in this skill's directory and
check each listed repository type against the source. Record matching modes
and their file-level evidence in modes. Several modes can apply to one
repository. Mode detection is independent of Brief's language and dependency
detection, including when Brief fails.
Add each matching mode's skills to the scan set below. Put skills belonging
only to unmatched modes in gated. Apply the same skip set, request scope,
and error handling to mode skills as to the standard scans, and enqueue each
skill at most once. Mode scans are additive: keep the standard scans and the
threat-model-driven deep dives.
Before enqueueing anything, check what already ran so a re-trigger does not double-enqueue work that is already current.
Get the commit you are running at: git -C ./src rev-parse HEAD. Then fetch GET {api_base}/repositories/{repository_id}/scans, which returns every scan on this repository with skill_name, status, commit, ref and sub_path. If that fetch fails, treat the skip set as empty and carry on. Consider only scans whose ref and sub_path match the current scrutineer.scan_ref and scrutineer.scan_subpath, treating absent fields as empty. Otherwise a scan of a sibling subproject could suppress this scope's audit. Build a set of skill names to skip: a skill goes in the skip set if it has a compatible scan with status in {queued, running}, or a compatible scan with status="done" whose commit equals the current HEAD. A done scan at any other commit does not count; the repository has moved since then and the skill should run again. failed scans are re-enqueued.
Classify each skill in the list below into exactly one bucket, checking in this order and stopping at the first match: gated (its has_code/has_packages/has_python/has_workflows/has_embedded_native flag is false), already_done (it is in the skip set), triggered (enqueue it). Enqueue with POST {api_base}/repositories/{id}/skills/{name}/run and an Authorization: Bearer {token} header. Order does not matter; the scrutineer worker runs them as they come in. A 404 response moves the skill from triggered to skipped.
If scrutineer.scan_ref is set in context.json, include it in the POST body as {"ref": "<value>"} so child scans clone the same branch. If scrutineer.scan_subpath is set, also include "sub_path": "<value>" in the same body so every child stays scoped to the same monorepo sub-package — a scan submitted as repo#sub/dir (or a /tree/<branch>/<sub/dir> URL) sets this, and without forwarding it the pipeline would silently widen back to the whole repository. Combine them when both are present, e.g. {"ref": "main", "sub_path": "activesupport"}. When both are empty, send an empty JSON body or omit it. Verify runs (below) always send {}; they are finding-scoped and take neither.
Always:
metadatarepo-overviewpackagesadvisories
Only when has_workflows:
zizmor
Only when has_python:
bandit
Only when has_packages:
dependenciessbom
packages and advisories query ecosyste.ms by repository URL rather than reading local manifests, so they run unconditionally even though they sound package-related.
Only when has_code:
subprojectsreconhistorythreat-modelsemgrepbetterleaks
Only when has_embedded_native:
embedded-native
After threat-model finishes, Scrutineer reads its durable scan_config and
enqueues one security-deep-dive per focus area. Do not enqueue
security-deep-dive here: starting it before the threat model is complete
would create an unscoped repository-wide audit and defeat the partition.
For one third of eligible triage runs, Scrutineer also schedules at most one exploratory security-deep-dive after a successful threat model has queued a planned audit. Do not request this extra scan yourself. When the threat model names a usable out-of-scope source directory, half of selected root scans challenge that exclusion with an adversarial sweep; other selected scans use a context-free random dig. Both keep explicit path exclusions and subproject scope. Repeated completion notifications do not select another extra audit.
If a skill name comes back 404 skill not found or inactive, skip it and note which one in your report; the operator may have disabled it on purpose.
Show full SKILL.md (426 more words)Show less
Re-verify reported findings
If this repository has been scanned before there may be findings already reported to the maintainer that have since been fixed upstream. For each of status=reported and status=acknowledged, fetch GET {api_base}/repositories/{repository_id}/findings?status={status} and collect the returned id values. For every finding id, enqueue a verify run: POST {api_base}/findings/{id}/skills/verify/run with the bearer header and an empty JSON body. Record the ids you enqueued in the verify field of your report; if there are none, write an empty list. If the verify endpoint returns 404 skill not found or inactive, leave verify empty and carry on.
Do not verify findings in new, enriched, triaged, ready, published, rejected, or duplicate states. The audit skills re-running above handle the first four; the last three are closed.
Watch fixed findings for an upstream release
When a finding reaches fixed the maintainer has landed a patch, but consumers cannot pin to a commit — they need a tagged release. For findings in status=fixed, enqueue release-watch the same way: POST {api_base}/findings/{id}/skills/release-watch/run. Record the ids in a release_watch field of your report; if there are none, write an empty list. If the endpoint returns 404 skill not found or inactive, write an empty list and carry on. Release-watch is idempotent: a finding that already has a release recorded re-confirms the existing value rather than flapping.
Output
Write ./report.json as:
{
"has_code": true,
"has_packages": true,
"has_python": false,
"has_workflows": false,
"has_embedded_native": true,
"modes": [],
"brief": {"languages": ["Ruby", "Rust"], "package_managers": ["Bundler", "Cargo"], "native_signals": ["native_extension:rb-sys", "language:Rust"]},
"triggered": ["packages", "advisories", ...],
"skipped": ["semgrep"],
"gated": ["zizmor"],
"already_done": ["metadata"],
"verify": [12, 34],
"release_watch": [55, 56],
"errors": []
}gated lists skills that were not enqueued because has_code, has_packages, has_python, has_workflows, or has_embedded_native was false. already_done holds skills that were skipped because a scan is currently running or already completed at this commit. skipped is for skills that came back 404 skill not found or inactive. brief is the subset of brief's output the gates were derived from, including short native_signals entries for the embedded-native decision, so an operator can see why a repo got the short treatment and re-run triage manually if the classification was wrong.
Do not wait for any of the scans to finish. The API returns a scan id immediately; your job is to fire them off and exit.
Each modes entry has a name and a non-empty evidence list of source paths
with short explanations. For example, a package-manager match should cite
the install command and its implementation. An empty list means no mode
matched; record unreadable source or inconclusive classification in errors.
gated also includes skills whose repository type did not match.
Do not fabricate scans or invent skill names. If the api_base or token is missing from context.json, write {"error": "context.json missing scrutineer block"} and exit 0 so the failure is visible on the scan page.
© alpha-omega-security, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Files
SKILL.md and 2 other files (references) in skills/triage of alpha-omega-security/scrutineer.
- SKILL.md
- references/modes.md
- schema.json
Open the folder on GitHubat commit f3407bf
Compare with similar skills
Triage 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 |
|---|---|---|---|---|---|---|
| Triage this skillalpha-omega-security/scrutineer | 239 | — | ~2.9k | Automated safety check: Pass | MIT | |
| No Way To Prevent This Memory SafetyXe/site | 732 | — | ~816 | Automated safety check: Pass | Zlib | |
| Cpp StyleLuisaGroup/LuisaCompute | 1.1k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| C Reviewtrailofbits/skills | 7.4k | — | ~3.3k | Automated safety check: Notes | CC-BY-SA-4.0 | |
| Clangmohitmishra786/low-level-dev-skills | 253 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Static AnalysisLeoKemp223/embed-ai-tool | 987 | — | ~402 | Automated safety check: Pass | None |
Similar skills
Cpp Style
LuisaGroup/LuisaCompute
C++ naming, formatting, static analysis, and RTTI rules for LuisaCompute.
- Official
C Review
trailofbits/skills
Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities.
Clang
mohitmishra786/low-level-dev-skills
Clang/LLVM compiler skill for C/C++ projects. An agent skill from mohitmishra786/low-level-dev-skills.
Static Analysis
LeoKemp223/embed-ai-tool
当需要对嵌入式 C/C++ 代码运行 cppcheck、clang-tidy 或 GCC analyzer 静态分析,或进行 MISRA-C 合规检查时使用。
- Official
ONNX Runtime Shape Inference Safety Audit
microsoft/onnxruntime
Finds and fixes out-of-range output writes in ONNX Runtime operator shape-inference functions where a getNumOutputs guard admits too few outputs.
More from alpha-omega-security/scrutineer
All 48 skills in this repoZizmor
alpha-omega-security/scrutineer
Audit GitHub Actions workflows with zizmor and explain reported hits using bundled trust-boundary references.
Bandit
alpha-omega-security/scrutineer
Run bandit against the Python source in the repository and map its hits into the findings shape.
Compliance
alpha-omega-security/scrutineer
Audit the repository against the OpenSSF Baseline with darnit, resolve the controls darnit defers to LLM analysis or could not verify, and record per-control verdicts plus the attained Baseline level.
Dependencies
alpha-omega-security/scrutineer
Run git-pkgs list and sbom against the repository and emit one envelope with per-section status.
History
alpha-omega-security/scrutineer
Mine repository history for security fixes that were never published as advisories, producing a cached worklist for threat-model and advisory-deep-dive.
Maintainers
alpha-omega-security/scrutineer
Identify the real maintainers of a repository and the best way to contact them about a security issue.
Related
Works with
Categories
Questions about Triage
What does Triage do?
Default pipeline scrutineer runs when a repository is added. Triage is an agent skill from alpha-omega-security/scrutineer. Default pipeline scrutineer runs when a repository is added.
When should I use Triage?
Triage fits situations like: A standard set of other skills in parallel; then writes a short summary of what was enqueued.
How do I install Triage in Claude Code?
Run `npx skills add alpha-omega-security/scrutineer --skill triage -a claude-code`. Or copy the skill folder (skills/triage in alpha-omega-security/scrutineer) into .claude/skills/triage in your project. Claude Code loads it when a task matches its description.
How do I install Triage in Codex?
Run `npx skills add alpha-omega-security/scrutineer --skill triage -a codex`. Or copy the skill folder (skills/triage in alpha-omega-security/scrutineer) into .agents/skills/triage in your project. Codex loads it when a task matches its description.
Can I use Triage 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 alpha-omega-security/scrutineer --skill triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/triage, .gemini/skills/triage, .github/skills/triage and .opencode/skills/triage in your project.
What does Triage need to run?
Going by SKILL.md and its folder, Triage needs the command-line tools its instructions call (git). Our summary lists: Python 3. Compatibility (from SKILL.md): Needs network access to the scrutineer API (http://host:port/api). Uses `brief` (github.com/git-pkgs/brief) for language and dependency gates; falls back to the general code and package scans if brief is unavailable. Repository modes use source evidence independently..
Does Triage access the network?
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Is Triage 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 Triage use?
Triage is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Triage use?
About 2.9k 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. Its references folder adds about 1.3k tokens, read only when the agent opens those files.
What are the alternatives to Triage?
Skills that share tags, products or a category with Triage: No Way To Prevent This Memory Safety (Xe/site, 732 stars), Cpp Style (LuisaGroup/LuisaCompute, 1.1k stars), C Review (trailofbits/skills, 7.4k stars) and Clang (mohitmishra786/low-level-dev-skills, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Triage?
alpha-omega-security (a GitHub organization) maintains it in alpha-omega-security/scrutineer, which has 239 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 9, 2026.
Source: alpha-omega-security/scrutineer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.
