vibe-debug — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited vibe-debug (Agent Skill) and scored it 91/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} is the classic direct prompt-injection phrasing. Placed in a skill body that the agent reads as trusted instructions, it tries to make the agent abandon its prior rules and follow whatever comes next — a full system-prompt override.
ignore/disregard/forget … previous instructions sentence.Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Turn rough bug reports into verified repair work. Preserve the user's wording as product evidence, then translate it into observable symptoms, expected behavior, unknowns, proof paths, and closure criteria before changing code.
This skill is self-contained. Use useful project rules, docs, tools, and available skills when they clearly apply, but do not require any other skill to debug, fix, verify, or hand off the issue.
Use this for existing-feature repair when the user reports any of these:
feedback after real use.
behavior, stale runtime artifact, tool failure, or automation failure.
approach changes while runtime ordering, artifacts, cleanup, or environment state remains unobserved.
artifacts, lifecycle, or user-visible output.
Examples are not boundaries. Name the abstract dimension before the concrete domain example: UI/web, auth origin, asset path, encoding, worker, deploy artifact, animation, or async cleanup. Do not turn that domain into a universal requirement for unrelated bugs.
debug/fix closure and separately authorized for the exact operation.
is at stake.
The user's report is valuable evidence of experience, not a verified root cause. Investigate available code, tests, logs, screenshots, docs, artifacts, history, and tool output before asking questions. Ask only questions that change the fix, proof path, risk acceptance, or current-scope closure.
Use probes only when they provide better proof than more static work. First run bounded triage: nearest code, relevant tests, existing logs, artifacts, and the expected-behavior source. After triage, propose the smallest diagnostic probe or equivalent runtime observation before changing behavior again when multiple live-state hypotheses remain, static proof would sprawl across interacting surfaces, evidence contradicts the original approach, or the next source-only patch would be a guess.
Stop before implementation when the current issue lacks any of these:
path.
Explain blockers in user-impact terms: what the user could still see, lose, misconfigure, trust incorrectly, or be unable to verify.
Keep the workflow visible even when the immediate answer is short, blocked, refuses an unsafe shortcut, has no local files to inspect, or handles only debug/fix closure such as repository history. Do not replace the ledger with general advice or a promise to fill it in later.
Before asking a narrowing question, stopping, delegating, or handing a check to the user, include a compact current-scope record:
behavior or operation decision, expected source or missing source, unknowns, proof or preflight path, and closure criteria.
closure decision. Use the debug-ledger fields when the row is a repair symptom. When repair is already verified and only repository mutation or cleanup remains, do not reopen the repair; record a closure-decision row with source evidence, owned and ambiguous paths, affected history/index state, required consent, preflight path, and status.
outcomes, and proof results for implementation-affecting claims.
persistence/lifecycle, external contract, runtime artifact, tool contract, or repository history/index state that must be preserved, changed intentionally, is unknown, or is not applicable.
If the only available evidence is the prompt, plan, or supplied fixture, say that explicitly and reason from it before asking for the smallest missing decision. A narrow question is not a substitute for the current-scope record.
When several independent hypotheses each need bounded read-only investigation and the host exposes a delegation or sub-agent capability, fan the investigations out instead of reading everything serially. The fan-out may run as ad-hoc sub-agent calls or as one scripted orchestration run: a host mechanism that runs the investigators under a single deterministic, independently recorded run and returns their results. Do not require a specific host orchestration tool.
Give each delegated unit one hypothesis-shaped question and a read-only boundary: inspect code, tests, logs, artifacts, and history, and return evidence with sources suitable for the debug ledger. Probes that mutate state, temporary instrumentation, user-environment retests, edits, and ledger ownership stay with the coordinator. A delegated finding enters the ledger as recorded evidence for a hypothesis, not as the proven cause; the disconfirming check and closure decisions still run in this workflow.
Debug proof authorizes only the verified repair slice. It does not authorize staging, committing, stashing, resetting, amending, version changes, release preparation, or any other index or history operation.
When debug/fix closure includes a request for repository mutation, first run a dirty worktree and index preflight:
as stage, commit, stash, reset, squash, amend, release preparation, or version bump.
Generic permission to "fix it", a completed debug ledger, or a passing test is not consent for repository history mutation. Do not stage, stash, reset, amend, or otherwise mutate unrelated user changes. If ownership is ambiguous or a release/history operation is requested without exact consent, stop with the preflight evidence and the smallest decision needed.
Read these bundled references only when their details are needed:
references/debug-ledger.md - ledger template, closure statuses, andrepeated-attempt handling.
references/source-routing.md - source-of-truth routing and tool-confidenceledger.
references/state-space-matrix.md - state-space dimensions for static,dynamic, environment, representation, and lifecycle bugs.
references/probe-escalation.md - temporary probes, traces, logs,assertions, runtime observations, and cleanup.
references/verification-handoff.md - artifact freshness,verification-degradation, and user retest contracts.
references/continuity-and-recurrence.md - resume handling and repeated-classself-review.
re-read the latest user request, outstanding symptoms, ledger statuses, and next proof/action before doing new work.
observations, and corrections to offered choices.
unknowns, affected users or contexts, and current-scope closure criteria.
changed instead of mapping the answer back to the closest original option.
task-relevant guidance.
stack, proof method, writing pass, or tool path.
reported symptom; expected behavior and source; observed behavior and source; prior attempts and why each failed or remains unproven; suspected causes; probe or instrumentation plan and result when source-only evidence cannot distinguish live-state hypotheses; proven cause; affected state-space dimensions; verification path; closure status.
fixed, not-reproduced, deferred,accepted-residual, or blocked.
closure status.
persistence/lifecycle behavior, external contracts, and operational/runtime artifacts.
preserve, change intentionally, unknown, ornot applicable.
unknown dimension that affects the current fix as a blockeruntil source trace, local reproduction, or accepted residual resolves it.
preserve orchange intentionally dimension that can regress.
permission, build, deploy, or tool behavior, check the authoritative source: official docs, upstream source, local project code, CLI help, changelog, useful available skill, or user-provided source material.
mode, failed input shape, unavailable service, missing permission, stale artifact, or flaky environment.
related tools because one mode or invocation failed.
before naming domain-specific cases.
retest step, or closure criterion. Use labels such as representation, runtime artifact, lifecycle, ordering, identity, environment, permission, and cleanup. Domain tools may fit the report, but they must not read as universal requirements outside that domain.
environment/origin, platform/runtime, direction, lifecycle state, cache/artifact freshness, permission/role, sync/async path, and error/cancel path.
bugs, include temporal sequence, ordering, overlapping events, per-entity identity, reset/cancel behavior, and stale-state cleanup after the final event.
verified fact,hypothesis, expert judgment, expected outcome, or proof result.
hypothesis, expert judgment, or expected outcomeunless the next step is explicitly a proof step, the user accepts the residual risk, or the item is outside the current fix.
becomes "the proof needed is ..."; "looks fixed" becomes a recorded manual or automated observation.
is wrong.
existing logs, artifact freshness, expected-behavior source, and one fast disconfirming check when available.
regression test, local reproduction, source trace, existing log, or artifact inspection when it answers the current question.
multiple live-state explanations, static proof would sprawl across many files or runtime paths, the original approach is contradicted, or a repeated source-only fix comes back "still broken".
the value of the observation. Prefer local or artifact-level proof when it answers the same question.
artifact, timestamp, ordering, identity, cleanup, or runtime boundary the probe must observe to separate the hypotheses.
existing logger calls, focused trace labels, counters, debug-only dumps, test-harness assertions, artifact/package inspection, or narrow runtime logs.
requirements, and permanent diagnostic behavior unless the user accepts the retained surface.
steps, action sequence, expected log or trace signatures, failure evidence to capture, and cleanup criteria.
equivalent source trace, or accepted residual resolves the unknown.
did not address the symptom before proposing another fix.
finding. Do not make another independent guess.
source trace, isolation proof, or exact manual proof path.
needed to close a current ledger item.
prove the tested artifact includes the change: rebuilt package or binary, refreshed dev-server bundle, migrated local data, regenerated assets, updated lockfile, restarted process, cleared stale cache, or equivalent.
are not proof.
explicit residual, user retest contract, accepted residual, or blocker. Choose the strongest path that can observe the current contract now: alternate proof first, then narrower proof with stated residual, then a user retest contract when the user can observe the missing behavior, otherwise blocker. Use accepted residual only when the user explicitly accepts that risk.
environment cannot observe this" as a pass.
alternate proof, blocker, accepted residual, or a full user retest contract. Do not defer with "if needed" or promise steps later.
available evidence already determines the least risky path. If the user asks what to test and their environment is the only credible observation path, select a user retest contract and leave the ledger item blocked until evidence returns.
observation, artifact/version freshness marker, failure evidence to capture, and the ledger item or matrix row each check closes.
of those fields in the same handoff or keep the item blocked.
unknown, deliver the contract now with explicit stated assumptions or clearly labeled placeholders and say how to adapt them. Do not gate the contract on clarifying questions the user cannot answer; asking for those specifics before writing it is the same banned defer. Do not hand over bare <placeholder> commands or omit failure evidence and ledger closure mapping because a local detail is unknown.
least twice, scan adjacent surfaces for the class of omission before finishing.
most likely to have been missed.
operation was requested, say none was performed when that matters for closure.
preflight, get operation-specific consent, and keep the operation scoped to paths proven to belong to the repair slice.
Stop and report a blocker or ask the smallest plan-changing question when:
data, permissions, security, external contracts, or user experience.
exact manual proof.
alternate proof is credible.
unavailable and no source trace or alternate proof can observe the unknown.
unknown.Before ending:
fixed, not-reproduced,deferred, accepted-residual, or blocked.
fixed item has proof and artifact freshness when runtime artifacts areinvolved.
surface is intentional, disabled or bounded, documented, and verified not to expose secrets or user data.
or an explicit residual.
were either absent, or explicitly consented after dirty worktree and index preflight and scoped to the verified repair slice.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.