llm-wiki-maintain — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited llm-wiki-maintain (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.
The recurring maintenance loop, as one defined operation. "Every day: sweep all sources → ingest what's new → produce a brief → keep the wiki tidy" was previously improvised step-by-step on faith; this skill makes the order, the brief lifecycle, and the autonomous-mode behavior explicit.
This skill orchestrates — it does not reimplement. The actual work is done by the core llm-wiki-pm skill (orient, ingest, lint) and llm-wiki-brief (brief generation). Route to them at each step. If a sub-skill isn't installed, fall back to the core skill's matching operation.
The skill's proactive behaviors (ambient "want me to add that?", per-step confirmations, post-task offers) assume a human is watching. In a scheduled or autonomous run nobody answers them — they stall or force a guess. So classify the run before doing anything:
surface takeaways, ask before mass updates (10+ pages), offer follow-ups.
to answer a prompt). Then:
on confirmations. Act on the clear cases.
decision (a risky mass update, an ambiguous create-vs-update, a possible contradiction) goes into a Needs Review queue in the brief instead of halting the run.
queue those. Snapshot before any overwrite (core rule still applies).
If you can't tell which mode you're in, ask once ("interactive or autonomous run?") and proceed on the answer; default to interactive.
① Orient. Run the core Pre-Flight + orient (SCHEMA, index, log, overview, _status.md). Do not skip — every write still requires orient.
② Registry-driven sweep. Read the ## Sweep Registry in $WIKI/MY-INTEGRATIONS.md and sweep every source listed, under the core Source-completeness guard (≥2 varied queries, classify hits/empty-after-retries/failed, bound output — concise/limit≤15/narrow scope first). One batch sweep up front satisfies freshness-first for the whole run (see the Freshness↔batch rule); do NOT re-sweep per page. If no registry exists, build it from connected tools + Active Sources, confirm (interactive) or queue for review (autonomous), and write it before sweeping.
③ Ingest findings. For each new/changed signal, route to the core ingest flow (capture raw → thresholds → write/update → backlinks → log → MY-INTEGRATIONS). Pages are private by default; never mark a digest shareable. Stamp lifecycle: stub-intentional on by-design thin stubs.
④ Daily brief. Route to llm-wiki-brief (daily brief). If filing it as a page, write briefings/YYYY-MM-DD.md with lifecycle: dated-digest (keeps it out of the orphan count). The brief MUST include the Source Coverage ledger (one row per registered source) and, in autonomous mode, a Needs Review section.
⑤ Brief rotation. Keep the last 7 days in briefings/; move older briefs to _archive/briefings/. Use git mv if the file is tracked, plain mv if not (check first — don't let an untracked file abort the run).
⑥ Health check. Run scripts/lint.py $WIKI. Surface the tiered summary, the export-surface (shareable) audit, and any new orphans/broken links. Optionally lint.py $WIKI --auto-fix to backfill+sort the index (interactive: offer it; autonomous: run it — it's non-destructive).
⑦ Report. One consolidated summary: sweep coverage ledger, pages created/updated, brief link, lint health delta, and the Needs Review queue.
briefings/YYYY-MM-DD.md — current briefs, lifecycle: dated-digest._archive/briefings/ — briefs older than 7 days.dated-digest flag keeps them out of lint'sorphan count. Never link-spam pages just to de-orphan a brief.
Single ingests, ad-hoc queries, updates, persona/PRD/research/CRM work — route to the core skill or the matching sub-skill. This skill is the daily loop only.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.