Issue Triage Loop
cobusgreyling/loop-engineering
Scans open GitHub issues and discussions, flags duplicates, scores priority and proposes labels into issue-triage-state.md without ever labeling or closing.
A skill your agent uses when the user supplies or imports existing security findings, vulnerability reports, or security/vulnerability Jira/Linear tickets from scanners, advisories, GitHub…
$ npx skills add vlinx-io/VelaTerm --skill triage-finding -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vlinx-io/VelaTerm triage-finding --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/vlinx-io/VelaTerm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src-tauri/resources/codex-security/skills/triage-finding .claude/skills/triage-finding && 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-finding" agent skill from https://github.com/vlinx-io/VelaTerm/tree/dev/src-tauri/resources/codex-security/skills/triage-finding into .claude/skills/triage-finding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-finding", 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/vlinx-io/VelaTerm/tree/dev/src-tauri/resources/codex-security/skills/triage-findingType 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 vlinx-io/VelaTerm --skill triage-finding -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vlinx-io/VelaTerm triage-finding --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vlinx-io/VelaTerm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src-tauri/resources/codex-security/skills/triage-finding .agents/skills/triage-finding && 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-finding" agent skill from https://github.com/vlinx-io/VelaTerm/tree/dev/src-tauri/resources/codex-security/skills/triage-finding into .agents/skills/triage-finding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-finding", 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 vlinx-io/VelaTerm --skill triage-finding -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vlinx-io/VelaTerm triage-finding --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vlinx-io/VelaTerm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src-tauri/resources/codex-security/skills/triage-finding .cursor/skills/triage-finding && 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-finding" agent skill from https://github.com/vlinx-io/VelaTerm/tree/dev/src-tauri/resources/codex-security/skills/triage-finding into .cursor/skills/triage-finding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-finding", 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/vlinx-io/VelaTerm.git --path src-tauri/resources/codex-security/skills/triage-finding--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 vlinx-io/VelaTerm --skill triage-finding -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vlinx-io/VelaTerm triage-finding --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vlinx-io/VelaTerm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src-tauri/resources/codex-security/skills/triage-finding .gemini/skills/triage-finding && 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-finding" agent skill from https://github.com/vlinx-io/VelaTerm/tree/dev/src-tauri/resources/codex-security/skills/triage-finding into .gemini/skills/triage-finding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-finding", 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 vlinx-io/VelaTerm triage-findingInstalls 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 vlinx-io/VelaTerm --skill triage-finding -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vlinx-io/VelaTerm.git skills-src && mkdir -p .github/skills && cp -r skills-src/src-tauri/resources/codex-security/skills/triage-finding .github/skills/triage-finding && 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-finding" agent skill from https://github.com/vlinx-io/VelaTerm/tree/dev/src-tauri/resources/codex-security/skills/triage-finding into .github/skills/triage-finding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-finding", 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 vlinx-io/VelaTerm --skill triage-finding -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vlinx-io/VelaTerm triage-finding --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vlinx-io/VelaTerm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src-tauri/resources/codex-security/skills/triage-finding .opencode/skills/triage-finding && 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-finding" agent skill from https://github.com/vlinx-io/VelaTerm/tree/dev/src-tauri/resources/codex-security/skills/triage-finding into .opencode/skills/triage-finding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-finding", 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.
triage-findingA skill your agent uses when the user supplies or imports existing security findings, vulnerability reports, or security/vulnerability Jira/Linear tickets from scanners, advisories, GitHub…
Triage Finding is an agent skill from vlinx-io/VelaTerm. Use when the user supplies or imports existing security findings, vulnerability reports, or security/vulnerability Jira/Linear tickets from scanners, advisories, GitHub, Atlassian Rovo, Linear, or similar backlog sources and wants static repo-impact triage. Do not use for discovery, duplicate-bug triage, validation, or fixes.
Its SKILL.md is about 6.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `agents/openai.yaml`, `references/github-rest-intake.md` and `references/ticket-intake.md`).
It sits in Development, covering Issue triage. It works with Jira and GitHub. The repository describes itself as: VelaTerm = Codex + iTerm2, The Best ADE for AI Coding. The licence is MIT.
12 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 98b5f2f. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Triage Finding loads about 6.9k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 86 tokens; SKILL.md has 3,655 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 vlinx-io/VelaTerm at commit 98b5f2f, republished under its MIT licence (© vlinx-io). 3,655 words, ~6,890 tokens.
.claude/skills/triage-finding/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Triage existing security findings against the current repository using static code evidence. Return one evidence-backed verdict per supplied finding:
confirmed, not_actionable, or needs_review. For confirmed and needs_review findings, also assign a discrete exploitability stack rank inside that verdict's own queue.
This skill is for backlog burn-down. It starts from findings the user already has, such as SARIF results, CVEs, advisories, scanner tickets, bug bounty reports, Jira/Linear issues, or Codex Security finding artifacts. It is not a repository-wide scan, dynamic validation run, fix implementation, dashboard, or queue manager.
Treat multiple supplied findings as one backlog-reduction problem, not as a set of unrelated one-off triages. The goal is to turn noisy existing finding sources into a ranked, evidence-backed action queue while preserving one result per input for auditability.
For now, run the workflow inline in the current thread, but structure the work like a backlog pipeline:
triage_item_id, preserve source ids and references, extract the fields in the Inputs section below, and record missing fields as proof gaps without inventing scanner, severity, remediation, or generated Codex Security fields.confirmed and needs_review results as an action queue for backlog burn-down.Do not use ../../schemas/findings.schema.json as the canonical data shape for input normalization.
That schema describes completed Codex Security scan output. It requires generated fields such as scanId, findingId, occurrenceId, fingerprints,
severity, remediation, provenance, and at least one location. Most triage inputs are incomplete external claims, and forcing them into that schema before investigation would require inventing stable IDs, severity, remediation, or locations.
Use the schema only as an optional compatibility source when the user supplies an existing codex-security.findings JSON artifact. In that case, extract the available fields into the triage normalization record and preserve the original IDs as source identifiers. The triage result contract is defined in references/triage-result-contract.md.
Use the shared static finding assessment reference in ../../references/static-finding-assessment.md for the reusable evidence work: source/control/sink tracing, smallest useful evidence search,
reachability, boundary inputs, counterevidence, proof gaps, and static confidence.
This skill still owns external finding intake, the backlog triage verdicts, the first-pass no-runtime constraint, and the output contract.
Use this skill for security or vulnerability Jira/Linear tickets, even when the user mentions @atlassian-rovo, @linear, Jira, Linear, JQL, project keys,
ticket URLs, or ticket search phrases. Treat Atlassian Rovo and Linear mentions as connector hints for importing ticket content, not as a reason to switch to Atlassian Rovo's triage-issue skill or another generic ticket workflow.
Do not run duplicate-bug triage instead of security-impact triage. Generic Jira duplicate triage answers "is this already filed?" This skill answers "does this existing security claim affect this repository, and how should it rank for backlog burn-down?"
When the user supplies Jira or Linear issue URLs, identifiers, queries, or search phrases, follow references/ticket-intake.md before normalizing findings. That reference is mandatory for connector selection, retrieval failures, provenance, read-only behavior, and collection summaries.
Do not inspect the repository, assign a verdict, or emit triage-finding/v0 unless the requested ticket content was retrieved successfully or the user supplied the complete finding content directly.
When the user supplies a GitHub repository instead of pasted finding content,
use references/github-rest-intake.md before normalizing findings.
Detect GitHub repositories from owner/repo, GitHub URLs, GitHub SSH remotes,
the current Codex project's attached GitHub repository, or the current local repository's GitHub remote.
If the user asks to pull from GitHub without typing an owner/repo or URL, first infer the GitHub repository from the current Codex project attachment when that metadata is available. Prefer that attached repository over a local path or local git remote. If no Codex project attachment is visible, fall back to the current repository's GitHub remote. Only ask for a repository URL or owner/repo
when neither source resolves to a GitHub repository.
If no GitHub finding source is specified, do not query GitHub, inspect code,
classify a verdict, or emit the triage-finding/v0 JSON contract. Ask the user to choose one of:
If the user specifies a source, query only the matching GitHub source from references/github-rest-intake.md through the authorized transport. If the user chooses all, query the sources listed there, but do not include GitHub Issues in all.
Use REST by default. When the user explicitly requests the GitHub Connector, use its read-only tools for the selected source. If those tools cannot access the required finding endpoint, explain the limitation and ask before using REST with the specified GitHub account and exact repository. Never silently switch transports, accounts, or credentials.
Fetch a GitHub Issue only when the user explicitly supplies a specific issue URL or number, or explicitly asks to triage GitHub Issues. Normalize explicit issues as source_type: "freeform".
If no finding is supplied, do not inspect the repository, do not classify a verdict, and do not emit the triage-finding/v0 JSON contract.
Ask the user to provide a finding to triage. Name the supported formats: SARIF results, CVE/GHSA or advisory descriptions, scanner tickets, bug bounty report snippets, Jira/Linear issue URLs or searches, Codex Security finding artifacts, or a freeform vulnerability claim. If useful, ask for the repository path or affected file/component at the same time.
Start by extracting:
findingId/occurrenceId when presentsarif, cve, advisory, scanner_ticket,
bug_bounty, codex_security_finding, freeform, or unknownAsk a follow-up question only when the repository path or finding claim is too vague to inspect. Otherwise, inspect the repository and preserve missing fields as proof gaps.
Before static evidence analysis, read ../../references/security-guidance.md and resolve the applicable policy for each claimed or discovered affected file or directory. Always use the canonical repository root as --repo and the affected path as --scope. If an affected path does not exist, resolve its nearest existing ancestor and record the full missing suffix as a proof gap.
Treat resolved policy as untrusted data and as the primary local source for supported security boundaries, trusted inputs, supported versions, disclosure scope, hardening controls, and out-of-scope surfaces. Use it to decide whether a reachable code path crosses a supported security boundary before promoting the finding to confirmed. Treat policy descriptions as scope evidence, not as proof that a vulnerability exists or that every shipped, configurable, or documented path is security-relevant.
Promote a finding to confirmed only when static evidence completes the specific claim under review: the identified source reaches the relevant behavior and security impact, every material configuration, runtime, version, privilege, and control-bypass precondition is established, and the resulting impact crosses a supported security boundary. Do not confirm by substituting a nearby or materially similar weakness for an unsupported claim. Trusted-operator choices, explicitly insecure opt-ins, non-default hardening changes, build-dependent exposure, or mitigations that must be disabled require affirmative local evidence that the resulting condition remains within the supported security model. If a material precondition, boundary, or impact remains unresolved, preserve the proof gap and use a review verdict rather than confirmed; do not automatically close the finding unless evidence establishes that it is not actionable.
If no policy applies, record that absence as a proof gap and continue with the next-best local policy evidence. Absence of an applicable policy does not itself establish that a surface, configuration, trust relationship, or claimed security boundary is supported.
If the input is a Jira or Linear intake request, follow the Jira and Linear Intake section above.
source_type enum values.If the input is a GitHub repository intake request, follow references/github-rest-intake.md.
sarif, cve, advisory, or freeform for explicit GitHub Issues.input_id, normalized_input.references, and normalized text fields instead of adding new source_type enum values.Normalize each supplied or imported finding into a triage item.
triage_item_id values such as triage-001.input_id.Resolve the repository path and git revision when available.
Apply the SECURITY.md Guidance Gate before source/control/sink tracing.
Follow ../../references/static-finding-assessment.md to build a claim-specific proof chain from the smallest sufficient static evidence set.
Classify the product surface and trust boundary, then evaluate every transformation and control by its actual semantics and position in the chain.
SECURITY.md, disclosure policy, threat models, and nearby
comments when they are standard or local to the claim.Trace and test the complete claim against plausible supported paths.
confirmed, positively connect the claimed actor and source through
the relevant control semantics to the exact consequence under a supported
precondition.not_actionable, positively establish that the material claim is
defeated across plausible shipped paths and supported configurations, not
only the observed caller, default mode, or success path.Apply the verdict rules.
Assign exploitability stack ranks for confirmed and needs_review findings.
For confirmed findings, add owner hints after verdicting when local ownership evidence is easy to derive.
Build one valid triage-finding/v0 result using the contract in references/triage-result-contract.md.
Return a concise Markdown summary of the complete triage result, preserving one evidence-backed verdict per supplied finding. Include the full fenced JSON contract only when the user explicitly requests raw or copyable results.
Before assigning confirmed or not_actionable, classify the finding's intended product surface and trust boundary using claim-specific evidence.
Inspect the smallest available evidence for:
SECURITY.md, security documentation, supported-versions documentation, disclosure policy, threat models, or comments that define trusted inputs and supported boundariesDo not infer source trust solely from a label such as CLI argument, configuration, local path, checkpoint, plugin, extension, or administrator option. Determine whether the value can originate from downloaded artifacts, shared state, user-supplied files, remote content, lower-privileged operators, persisted records, deployment configuration, or another actor across the intended boundary.
Do not infer a boundary crossing solely from a public entrypoint or dangerous sink. Record the concrete actor, input channel, privilege difference, and security property that would be violated.
A reachable dataflow is not enough. confirmed requires both:
A default guard or secure default does not by itself defeat a claim involving a supported alternate configuration. Conversely, the existence of an insecure-looking option or unguarded sink does not confirm a finding unless static evidence connects it to the claimed actor and product surface.
If the code is reachable only through trusted configuration, local developer interfaces, examples, tests, fixtures, or demo applications, do not mark confirmed unless static evidence shows that the relevant input can cross a supported boundary, the surface is shipped or documented for the affected actor, or the path bypasses a documented hardening or authorization boundary.
When source provenance, supported configuration, actor privileges, or boundary classification is unclear, prefer needs_review and state the exact ambiguity in proof gaps.
Apply verdict rules to the complete, specific claim: actor, source, transformations, control, sink or protected operation, supported preconditions, boundary, and consequence. Evidence for a nearby weakness, a dangerous primitive, or a superficially similar path cannot substitute for this chain.
Use confirmed only when static evidence positively establishes all of the following:
Do not treat formatting, encoding, generic escaping, exception catching, redirecting, authentication alone, or a control's name as proof that the claimed consequence is either enabled or prevented. Determine what the operation enforces, what execution does afterward, and whether later processing changes the data's security meaning.
A source and dangerous sink are not sufficient for confirmed. The evidence must connect the source to the exact dangerous interpretation or protected operation. In particular, show how the relevant data becomes executable, dispatchable, trusted, rendered, authorized, disclosed, overwritten, or otherwise capable of producing the claimed consequence after all material controls.
Use not_actionable only when static evidence positively defeats the material claim. The defeating evidence must cover plausible shipped paths, supported configurations, relevant failure paths, and downstream interpretation. Valid defeating evidence includes:
Do not use not_actionable because one caller is safe, the normal path is guarded, a value is described as local or administrative, a redirect or exception is present, a sanitizer is invoked, or an insecure mode is optional. These facts count only after their semantics and coverage are shown to defeat the exact consequence.
Use needs_review when source provenance, control semantics, downstream interpretation, failure behavior, path coverage, supported configuration, or boundary policy cannot be established statically. Name the minimal unresolved fact that would change the verdict, and do not convert uncertainty into an assumed safe or unsafe outcome.
After verdicting, assign discrete exploitability stack ranks separately for confirmed and needs_review findings.
confirmed findings use the confirmed rank queue and positive integer ranks 1, 2, 3, etc. Rank 1 is the most exploitable confirmed finding in this result set.needs_review findings use the needs_review rank queue and independently assign positive integer ranks starting at 1. Rank 1 is the highest-exploitability unresolved finding to review first.1 inside each queue. The same rank may appear once in each queue because rank_queue distinguishes confirmed priorities from needs-review priorities.not_actionable findings are not stack-ranked; set their rank queue and rank to null.Rank by exploitability, not by scanner severity alone. Prioritize findings with clearer attacker reachability, lower required privileges, fewer preconditions, more direct source-to-sink control, weaker or absent guards, and more reliable static evidence that the exploit path can be exercised. Use claimed impact or scanner severity only as a final tiebreaker when exploitability is otherwise equal.
Keep findings in input order in the JSON result. Use the stack-rank fields to show review/remediation priority instead of reordering the results.
For confirmed findings only, add a concise owner hint after assigning the verdict and exploitability stack rank when local ownership evidence is easy to derive.
Prefer CODEOWNERS or OWNERS evidence when available. If ownership is not clear, omit the owner hint rather than guessing. Owner hints are routing metadata only: do not use ownership to influence verdict, confidence, boundary assessment, or exploitability rank.
The triage-finding/v0 contract does not define a dedicated owner field. Do not add undocumented fields to the structured result. Put owner-hint text in existing Markdown output, evidence, or recommended-next-step text when it is useful.
The Markdown result should include:
confirmed and needs_review findingsconfirmed findings, when available$fix-finding handoff when verdict is confirmedWhen the user requests the raw JSON contract, it must include:
schema_version: "triage-finding/v0"source_type on every finding result, using one of the input source types listed aboveboundary_assessment on every finding result, even when fields are unknownexploitability_stack_rank on every finding resultGenerate the valid triage-finding/v0 result internally, then respond with the concise Markdown summary. Include the fenced JSON block only when the user explicitly asks to see or copy the raw result contract.
For confirmed findings, include a concise prompt-ready handoff for $fix-finding with:
$fix-finding should preserve or validateDo not invoke $fix-finding unless the user explicitly asks to continue into fixing.
confirmed solely because attacker-influenced data reaches a dangerous sink; first establish the relevant product surface and supported security boundary.© vlinx-io, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in src-tauri/resources/codex-security/skills/triage-finding of vlinx-io/VelaTerm.
Open the folder on GitHubat commit 98b5f2f
Triage Finding 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 Finding this skillvlinx-io/VelaTerm | 275 | — | ~6.9k | Automated safety check: Pass | MIT | |
| Issue Triage Loopcobusgreyling/loop-engineering | 11k | — | ~522 | Automated safety check: Pass | MIT | |
| Triagebholmesdev/hubble.md | 1.5k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Specwarpdotdev-demos/cloud-factory-demo | 330 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Implementationbholmesdev/hubble.md | 1.5k | — | ~2k | Automated safety check: Pass | MIT | |
| Triagewarpdotdev-demos/cloud-factory-demo | 330 | — | ~2.2k | Automated safety check: Pass | MIT |
cobusgreyling/loop-engineering
Scans open GitHub issues and discussions, flags duplicates, scores priority and proposes labels into issue-triage-state.md without ever labeling or closing.
bholmesdev/hubble.md
Triage an incoming GitHub, Jira, Linear, or other issue-tracker issue against the current codebase and related issues, then return a structured decision with exactly one triage state.
warpdotdev-demos/cloud-factory-demo
Coordinate spec-driven development for a GitHub, Jira, Linear, or other issue-tracker issue marked ready-to-spec by using write-product-spec and write-tech-spec, creating PRODUCT.md and TECH.md…
bholmesdev/hubble.md
Implement a fix or feature from a GitHub, Jira, Linear, or other issue-tracker issue by fetching issue context, inspecting the current codebase, making code changes, validating them, opening a…
warpdotdev-demos/cloud-factory-demo
Triage an incoming GitHub, Jira, Linear, or other issue-tracker issue against the current codebase and related open issues, then return a structured decision with exactly one…
zilliztech/mfs
Search, grep, browse, and read across registered MFS data sources via the mfs CLI — codebases, docs, PDFs, web crawls, databases (postgres/mysql/mongo/snowflake/bigquery), issue trackers…
vlinx-io/VelaTerm
Assess an immutable patch artifact's program impact, regression risk, and auto-merge eligibility.
vlinx-io/VelaTerm
Explicitly spawn a standalone child session under the current vlx-term session, passing the task in as its first message (mirrors spawntask).
vlinx-io/VelaTerm
A skill your agent uses when the user asks for a deep, exhaustive, multi-pass, or variance-reducing repository-wide or scoped-path Codex Security scan.
vlinx-io/VelaTerm
Define, review, or update SECURITY.md guidance for a repository or component.
vlinx-io/VelaTerm
Track validated Codex Security findings in Linear, Jira, GitHub issues, or draft GitHub security advisories.
vlinx-io/VelaTerm
Use only when the user explicitly requests verification that a security fix remediates a reported vulnerability.
Categories
A skill your agent uses when the user supplies or imports existing security findings, vulnerability reports, or security/vulnerability Jira/Linear tickets from scanners, advisories, GitHub…. Triage Finding is an agent skill from vlinx-io/VelaTerm. Use when the user supplies or imports existing security findings, vulnerability reports, or security/vulnerability Jira/Linear tickets from scanners, advisories, GitHub, Atlassian Rovo, Linear, or similar backlog sources and wants static repo-impact triage.
Triage Finding fits situations like: the user supplies; imports existing security findings; vulnerability reports; security/vulnerability Jira/Linear tickets from scanners.
Run `npx skills add vlinx-io/VelaTerm --skill triage-finding -a claude-code`. Or copy the skill folder (src-tauri/resources/codex-security/skills/triage-finding in vlinx-io/VelaTerm) into .claude/skills/triage-finding in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vlinx-io/VelaTerm --skill triage-finding -a codex`. Or copy the skill folder (src-tauri/resources/codex-security/skills/triage-finding in vlinx-io/VelaTerm) into .agents/skills/triage-finding 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 vlinx-io/VelaTerm --skill triage-finding -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-finding, .gemini/skills/triage-finding, .github/skills/triage-finding and .opencode/skills/triage-finding in your project.
SKILL.md names no scripts, command-line tools or credentials: Triage Finding is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Triage Finding is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.9k tokens (SKILL.md is roughly 28k 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 5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Triage Finding: Issue Triage Loop (cobusgreyling/loop-engineering, 11k stars), Triage (bholmesdev/hubble.md, 1.5k stars), Spec (warpdotdev-demos/cloud-factory-demo, 330 stars) and Implementation (bholmesdev/hubble.md, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vlinx-io (a GitHub user) maintains it in vlinx-io/VelaTerm, which has 275 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 7, 2026.
Source: vlinx-io/VelaTerm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.