ss-bs-auditing-project — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ss-bs-auditing-project (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
You are the coordinator for project audit. You re-evaluate an already-bootstrapped project — drift, incoherence, improvement opportunities. The per-file discovery skills (the seven ss-bs-discovering-<topic> skills) are loaded inline in audit mode; you don't reach inside their work, you route to them.
Audit ≠ bootstrap re-run. Bootstrap re-run with SUGGEST=on adds missing entries and surfaces suggestions, but doesn't compare the existing artifact against current code state. Audit does — that's the drift check (Step 1.6 per discovery skill). Audit also commits stage-by-stage, so the user can accept some changes and decline others.
Sibling relationship: This skill mirrors ss-bs-bootstrapping-project's structure (Hard Gates, Checklist, Step-by-step, Common Mistakes, Red Flags) but diverges in three fundamental ways: coherence runs FIRST (drives the per-stage loop, not just a gate before commit), SUGGEST is always on (no opt-out), and commits are per-stage rather than bundled. The bootstrap coordinator handles first-time setup, config copy, and directory creation; this skill assumes all of that is already done.
Announce at start: "I'm using the ss-bs-auditing-project skill to audit your bootstrap artifacts for drift and opportunities."
ss-bs-bootstrapping-project. Audit's preflight verifies config + ≥1 artifact and redirects if missing.SUGGEST=on to every discovery skill invocation (audit's prescriptive-by-default rule; there is no opt-out).in_progress when you start it and completed the instant it's done.MODE=audit, SUGGEST=on; commit immediately on stage completiontest -f .sublime-skills/config.yml || {
echo "No bootstrap config at .sublime-skills/config.yml — this project hasn't been bootstrapped."
echo "Run ss-bs-bootstrapping-project first."
exit 1
}
"${SUBLIME_SKILLS_HOME:?SUBLIME_SKILLS_HOME is not set; see Sublime-Skills README for setup}"/skills/spec-driven-development/framework/validate-config.shIf config is missing → halt; redirect user to ss-bs-bootstrapping-project. Do NOT auto-invoke bootstrap from here (that would surprise the user — confirm interactively first).
If validate-config fails → halt; surface the findings verbatim; suggest ss-bs-bootstrapping-project re-run to fix config issues. Audit cannot proceed against an invalid config.
Run:
"$SUBLIME_SKILLS_HOME/skills/spec-driven-development/framework/discover-context.sh"Read the discover-context.sh JSON output for the 6 context artifact paths. Additionally, read memory_file.path directly from .sublime-skills/config.yml (the memory-file path lives in its own config block, not in context.*). Check that at least one of these 7 paths resolves to an existing file.
If 0 artifacts exist, ask:
Question: "Config exists but no artifacts have been created yet. Audit needs at least
one artifact to evaluate. Options:"
- "Run bootstrap instead (recommended)"
- "Continue anyway — I'll skip stages with no artifact"On "Run bootstrap instead" → halt; surface the recommendation to the user and exit. On "Continue anyway" → proceed; the per-stage loop (Step 5) will skip stages whose artifact doesn't exist.
Run the coherence checker:
"$SUBLIME_SKILLS_HOME/skills/spec-driven-development/framework/coherence-check.sh"The exit codes and their meanings:
| Exit code | Meaning | Action |
|---|---|---|
0 | No findings | Surface "Coherence check: PASS (0 findings)." Continue to Step 3 — user may still want a per-stage audit even with clean coherence. |
1 | Findings present | Surface ALL findings VERBATIM (do not summarize). The findings drive Step 3's prioritized-fix option. |
2 | Config not found | Halt; surface; this shouldn't happen — preflight just verified it. |
3 | Usage error | Halt; surface as coordinator bug. |
4 | Internal error | Halt; surface; ask user to ensure python3 is available. |
When findings are present, group them by which discovery skill would fix them (read from each finding's fix: line). This grouping informs the prioritized-fix ordering in Step 3 — stages with CRITICAL findings cluster first, then WARNING, then INFO.
After surfacing the coherence findings (or the PASS message), ask:
Question: "How would you like to proceed?"
Options:
- "Fix the top N coherence findings stage-by-stage (Recommended)" — auto-orders
by where findings cluster; covers the stages with the most CRITICAL/WARNING
findings first
- "I'll pick which stages to revisit" — multi-select from the 7 stages
- "Run a full audit on every stage" — invoke all 7 in audit mode
- "Skip — I just wanted the coherence report" — exit with the findings as the reportRecord the chosen stages list. If "Skip", jump to Step 7 (summary report) immediately.
For "Fix the top N coherence findings":
For "I'll pick which stages to revisit":
Question: "Which stages would you like to audit?"
Multi-select from:
- Constitution (docs/CONSTITUTION.md)
- Architecture (docs/ARCHITECTURE.md)
- Testing (docs/TESTING.md)
- Glossary (docs/GLOSSARY.md)
- Domain model (docs/DOMAIN.md)
- Design (docs/DESIGN.md)
- Memory file (CLAUDE.md / AGENTS.md / GEMINI.md / .agents.md)
(Pre-check stages with coherence findings as a visual hint.)For "Run a full audit on every stage": Order is the same as bootstrap: constitution → architecture → testing → glossary → domain → design → memory file. Skip stages whose artifact doesn't exist (noting the skip in the summary).
Using the harness's todo/task tool, create one todo per chosen stage plus two trailing todos:
... (one per additional chosen stage) ... N. Final coherence re-check N+1. Summary report
Mark each todo in_progress when you start it and completed the instant it is done. Never batch updates — the user reads this list to follow along.
For each stage in the chosen list, in priority order:
Load the matching skill inline (via the harness's skill mechanism). Pass these inputs:
Load skill: ss-bs-discovering-<topic>
REPO_ROOT: <absolute path to repo root>
MODE: audit
SUGGEST: on ← always on for audit, no exception
EXISTING_CONTENT: <verbatim current artifact content, read fresh from the config'd path>
FILE_PATH: <config'd path for this artifact>The mapping from stage to skill:
| Stage | Skill loaded (inline) |
|---|---|
| Constitution | ss-bs-discovering-constitution |
| Architecture | ss-bs-discovering-architecture |
| Testing | ss-bs-discovering-testing |
| Glossary | ss-bs-discovering-glossary |
| Domain model | ss-bs-discovering-domain-model |
| Design | ss-bs-discovering-design |
| Memory file | ss-bs-discovering-memory-file |
The skill runs its full audit flow — Step 1 (silent scan) + Step 1.5 (diagnose, always on) + Step 1.6 (drift check) + Step 2 (announce findings + drift + diagnoses) + Step 3 (Q0 drift resolution → Q1 observed → Q1.5 suggested → Q2-Q5 per skill) + Step 4 (synthesize draft) + Step 5 (refine, cap 3) + Step 6 (atomic write). You do NOT reach inside this flow.
audited (changes made) — the artifact was updated; FILE_PATH points to the new contentaudited (no changes) — drift / diagnose / Q1 produced no updates; the file is byte-identical to beforeskipped (declined mid-skill) — user aborted within the skillaudited (changes made)git add <FILE_PATH>
git commit -m "audit: update <basename of FILE_PATH> — <one-line summary of what changed>"The one-line summary comes from the skill's report — e.g., "declare cross-service boundaries", "fix 2 drift items + 1 suggestion accepted", "update runner from Jest to Vitest". The commit message is the user's audit trail; make it informative, not generic.
Per-stage commits are mandatory even for small changes. Do NOT defer commits to the end of the loop.
audited (no changes) or skippedRecord in the audit summary that the stage was reviewed (no changes) or declined. No commit is created for these outcomes.
Mark the current stage todo completed; move to the next stage in the list.
Re-run:
"$SUBLIME_SKILLS_HOME/skills/spec-driven-development/framework/coherence-check.sh"Compare findings to the Step 2 findings:
Surface the comparison to the user before composing the summary. Do not combine this step with Step 7 — run the check, then compose the report.
Surface this block to the user verbatim after Step 6:
Audit complete.
Stages updated:
- <basename> — <drift items fixed: N, suggestions accepted: M> (committed: <short sha>)
- <basename> — ...
Stages reviewed, no changes:
- <basename> — no drift, 0 suggestions accepted
Stages declined:
- <basename> — user declined to revisit
Stages skipped (no artifact):
- <basename> — artifact doesn't exist; run bootstrap to create
Coherence check progression:
- Before audit: <N findings (X CRITICAL, Y WARNING, Z INFO)>
- After audit: <N findings (X CRITICAL, Y WARNING, Z INFO)>
- Resolved: <list of resolved finding titles, or "none">
- Outstanding: <list of outstanding finding titles, or "none">
- New: <list of newly-introduced finding titles, or "none">
Next steps:
- The bootstrap config is unchanged (audit doesn't touch config; re-run
ss-bs-bootstrapping-project to address any config-level changes).
- Outstanding coherence findings can be addressed by running
ss-bs-bootstrapping-project in re-run mode and selecting the relevant
stages, OR by running ss-bs-auditing-project again on just those stages.Do NOT persist this report. The user can copy from the conversation if they want a record. Do not create any new files at this step.
| Mistake | Fix |
|---|---|
| Running audit on an un-bootstrapped project | Preflight should hard-gate; if it doesn't, fix the preflight — never auto-fall-through to bootstrap |
| Summarizing coherence findings instead of surfacing verbatim | Always verbatim — the script's format is the canonical surface; do not paraphrase |
| Bundling per-stage changes into one commit | Each stage = one commit; user must be able to accept selectively |
| Passing SUGGEST=off in audit mode | Audit is prescriptive-by-default; always SUGGEST=on, no exception |
| Auto-invoking bootstrap when preflight fails | Halt and redirect interactively; don't surprise the user |
| Persisting the audit report to docs/.audit-report-*.md or similar | Conversation-only — no file lifecycle |
| Skipping a stage's commit because "the change feels small" | Commit anyway; even tiny changes belong in their own stage commit |
| Combining Step 6 (re-check) into Step 7 (report) | Run the coherence check first, then compose the report from its output |
| Using the coherence findings to decide scope without asking the user | Step 3 is always a user question; auto-deciding scope would bypass the user |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.