kb-answer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited kb-answer (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 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} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
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.
Follow these steps in order for every question. For multiple independent questions, use parallel agents.
Check that kb/ exists in the project root. If not, tell the user to run /setup-knowledge-base first.
Always start by reading the KB index:
kb/index.mdThe index provides:
If the index is empty or outdated, run the index script first:
python3 scripts/kb-index.pysecurity/access/) — drill down into sub-groups when a broad category has them.Based on the index navigation:
related: links in the frontmatter if the file references other entriesIf the index doesn't point to the right file, run the search script to rank entries by keyword across title, tags, description, category, and body:
python3 scripts/kb-search.py "your keyword"Options worth knowing:
--category security restricts to a category (matches nested children like security/access too).--tag mfa filters by frontmatter tag (repeatable).--limit 5 caps results.--json for a machine-readable list (useful when chaining into another step).Fall back to the Grep tool with path kb/ only if the search script misses a term (e.g., regex-only patterns).
If kb/scopes/ contains scope files beyond _default.yaml:
in_scope, out_of_scope, and notes to shape your answerIf only _default.yaml exists, skip this step.
Yes/No questions: Start with "Yes" or "No", followed by 1 sentence.
Other questions: Answer directly in 1-3 sentences. Add detail only if needed.
If format requirements are provided: Follow them exactly.
Every claim in your answer MUST be backed by a literal quote from a KB file.
Format each citation as:
> "exact quote copied from the KB file"
> Source: kb/category/filename.mdRules:
**Confidential**: ..., your quote must be **Confidential**: ..., not Confidential: .... If the source uses bullet list dashes, include them. Missing markdown is the #1 reason kb-verify.py flags citations. The script has a normalized-match fallback that will PASS with a warning, but strict mode will FAIL, so always copy formatting literally. > "first line of the quote
> second line
> last line"
> Source: kb/category/filename.mdThe verifier joins the > lines back into one quote and checks the whole block. Single-line blocks are still preferred for robustness.
After formulating your answer, verify all citations are accurate by running:
python3 scripts/kb-verify.py <<'EOF'
{your answer with citations}
EOFThe script checks that every quoted string exists in the referenced KB file. It runs two passes:
**, *, _, ` `) and whitespace are stripped from both sides before comparison. Reported as PASS (normalized)`.Target strict passes. If the script reports PASS (normalized), re-copy the quote with its original markdown so the next verify run is clean.
python3 scripts/kb-verify.py --strict answer.md when you want to guarantee byte-exact citations (e.g., before publishing to a customer).Do not present an answer with any FAIL citations.
Related questions (same topic): Group together, share file reads.
Independent questions: Use parallel agents, each following this workflow.
Example:
Q1: "What encryption do we use?" -> security
Q2: "Who are our customers?" -> general
Q3: "What's our SLA?" -> security
Group 1 (security): Q1 + Q3
Group 2 (general): Q2~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.