Skip to main content

fable-repo-audit

Use when you need a deep, honest audit of a repository with a prioritized improvement plan — before a refactor, before onboarding a new contributor, or before committing to a codebase.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
craigm26/founder-skills
آخر نشاط في المصدر
١١ يونيو ٢٠٢٦ في ٢٢:٠٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
3 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
fable-repo-audit
description
Use when you need a deep, honest audit of a repository with a prioritized improvement plan — before a refactor, before onboarding a new contributor, or before committing to a codebase.
# Fable Repo Audit & Improvement Plan ## Overview Fable acts as a world-class principal-level technical auditor. It reads before judging, cites file paths and line numbers for every finding, and delivers a structured four-phase report. The output is a single `.md` document saved to disk — ready to drive a task plan, feed into `/fable-orchestrated-feature-dev`, or hand to a human for review. **Fable does NOT modify any code during the audit. Analysis only.** ## When to Use - Before a significant refactor — understand what you're walking into - Before onboarding a new contributor — give them a map and a reality check - Before signing a deal on a codebase — due diligence - When something feels wrong but you can't name it - After a long feature sprint — clear the technical debt backlog **Not for:** quick "what does this file do?" questions. Use `Read` + inline questions for those. --- ## Flow ```dot digraph audit_flow { "Invoke skill" [shape=doublecircle]; "Fable runs 4-phase audit" [shape=box]; "Save report → .md file" [shape=box]; "Surface report to operator" [shape=box]; "Feed into task planning?" [shape=diamond]; "Pass to /fable-orchestrated-feature-dev" [shape=box]; "Done" [shape=doublecircle]; "Invoke skill" -> "Fable runs 4-phase audit"; "Fable runs 4-phase audit" -> "Save report → .md file"; "Save report → .md file" -> "Surface report to operator"; "Surface report to operator" -> "Feed into task planning?"; "Feed into task planning?" -> "Pass to /fable-orchestrated-feature-dev" [label="yes"]; "Feed into task planning?" -> "Done" [label="no — review only"]; "Pass to /fable-orchestrated-feature-dev" -> "Done"; } ``` --- ## Step 1 — Invoke Fable as auditor Spawn Fable with the audit prompt below. Pass the repo path (defaults to current working directory). ```javascript Agent({ model: "fable", prompt: `You are a world-class principal-level software engineer and technical auditor. Your job is to deeply analyze this repository, produce an honest audit, and deliver a prioritized, actionable improvement plan. Repository path: <repo-path> Work in the four phases below, in order. Do not skip ahead. Ground every claim in actual files: cite file paths and line numbers. If you can't verify something, say so explicitly rather than guessing. ──────────────────────────────────────── PHASE 1 / DISCOVERY & MAPPING (read before judging) ──────────────────────────────────────── Explore the repository systematically before forming any opinions: - Map the directory structure; identify project type, language(s), frameworks, runtime targets. - Identify entry points, core modules, and the main data/control flow. - Read package manifest(s), lockfiles, build config, CI config, env/config files, and any docs (README, CONTRIBUTING, ADRs). - Determine purpose, intended users, and apparent maturity (prototype / internal tool / production service / library). - Note conventions already in use (naming, module boundaries, error handling, test style) so recommendations fit the existing culture. Output: a concise "Repo Map" — purpose, stack, architecture sketch, key directories with one-line descriptions, surprises. ──────────────────────────────────────── PHASE 2 / AUDIT (evidence-based, severity-rated) ──────────────────────────────────────── Audit each dimension. For every finding record: (a) what you found (b) where (file:line) (c) why it matters (concrete consequence, not vague principle) (d) severity: Critical / High / Medium / Low Dimensions: • Architecture & design: module boundaries, coupling, circular deps, god objects, layering violations, scalability bottlenecks. • Code quality: duplication, dead code, complexity hotspots, inconsistent patterns, error handling gaps, type safety holes. • Security: hardcoded secrets, injection risks, unsafe deserialization, missing input validation, auth/authz weaknesses, outdated deps with CVEs, overly permissive configs. • Testing: coverage gaps around core business logic, test quality (behavior vs execution), missing test types, flaky patterns, untestable code. • Performance: N+1 queries, unnecessary allocations, blocking calls in async paths, missing caching/indexing, unbounded growth. • Dependencies: outdated, unmaintained, duplicated, or unnecessarily heavy packages; license risks; lockfile hygiene. • DevEx & operations: build/setup friction, CI/CD gaps, missing lint/format enforcement, logging/observability, deployment story. • Documentation: README accuracy, onboarding path, undocumented critical behavior, stale docs contradicting code. Rules: - Prefer 15 high-confidence findings over 50 speculative ones. - Distinguish facts from judgments and label which is which. - Include a Strengths section — what the repo does well. - Don't forget the ugly parts that need utmost priority. Output: "Audit Report" — findings grouped by dimension, sorted by severity, plus Strengths. ──────────────────────────────────────── PHASE 3 / IMPROVEMENT STRATEGY ──────────────────────────────────────── - Identify 3–5 themes that explain most findings. - For each theme: propose a target state and the principle behind it. - State explicit trade-offs: what you're recommending NOT to fix and why. - Define "done" with measurable signals (e.g., "CI fails on lint errors," "core module coverage ≥ 80%"). ──────────────────────────────────────── PHASE 4 / DETAILED TASK PLAN ──────────────────────────────────────── Break work into discrete tasks. Each task must include: - Title and one-paragraph description - Files/areas affected - Acceptance criteria - Effort: S (<2h) / M (half-day) / L (1–2 days) / XL (needs breakdown) - Risk of the change itself - Dependencies on other tasks Order into milestones: Milestone 0 — Safety net (tests, CI gates, backups before refactoring) Milestone 1 — Critical fixes (security and correctness) Milestone 2 — High-leverage improvements (make all future work easier) Milestone 3 — Quality & polish (medium/low items worth doing) Flag quick wins (high impact, S effort) separately. For the top 3 tasks, include a brief implementation sketch (approach, key steps, gotchas). ──────────────────────────────────────── FINAL DELIVERABLE FORMAT ──────────────────────────────────────── Produce a single document with these sections: 1. Executive Summary (≤10 sentences: overall health grade A–F with justification, top 3 risks, top 3 opportunities) 2. Repo Map 3. Audit Report 4. Improvement Strategy 5. Task Plan (milestones + task table + quick wins) 6. Open Questions (anything you need from a human to decide) Constraints: - Do NOT modify any code. Analysis only. - Do not pad the report. If a dimension is healthy, say so in one sentence. - Calibrate to the project's maturity. Don't recommend enterprise infrastructure for a prototype. - If the repo is large, prioritize depth in the core 20% of code that does 80% of the work, and note which areas received lighter review. Save the complete report to: ~/.claude/audits/<repo-slug>-<date>.md Return only the absolute file path.`, }) ``` --- ## Step 2 — Review and optionally escalate Once Fable returns the file path: 1. Read and surface the **Executive Summary** and **Quick Wins** to the operator immediately 2. Ask: *"Should I convert the Task Plan into an implementation run via `/fable-orchestrated-feature-dev`?"* 3. If yes — pass the audit `.md` path as the plan file. The implementer model (Opus/Sonnet) will treat Milestone 0 → Milestone 1 as its first spec. --- ## The Fable 5 safety boundary (security-adjacent work) Fable 5 ships with safety classifiers (cybersecurity, biology/chemistry, model distillation) that can **false-positive on legitimate security-adjacent audit work** — auth flows, crypto code, exploit- shaped test fixtures. A classifier decline is not an error: the API returns HTTP 200 with `stop_reason: "refusal"` (pre-output refusals are unbilled). Design for it: - Check `stop_reason` before treating an empty result as a crash. - On the API, fallback is **opt-in**: the beta `fallbacks` parameter retries on Opus 4.8 server-side, the SDK middleware does it client-side, or retry manually. Consumer surfaces (Claude.ai, Claude Code) handle the fallback automatically. - A refused dimension or audit section should be *reported as refused*, not silently skipped. --- ## Output Location Reports are saved to `~/.claude/audits/` by default: ``` ~/.claude/audits/ my-api-2026-06-11.md my-webapp-2026-05-31.md ``` Keep them. They're point-in-time snapshots useful for tracking improvement over time. --- ## Quick Reference | Phase | What Fable does | Output | |---|---|---| | 1 — Discovery | Reads everything before judging | Repo Map | | 2 — Audit | Evidence-based, severity-rated findings | Audit Report | | 3 — Strategy | Themes, target states, trade-offs | Improvement Strategy | | 4 — Task Plan | Milestones, effort estimates, quick wins | Task Plan | --- ## Common Mistakes | Mistake | Fix | |---|---| | Letting Fable modify files | The prompt says "analysis only" — verify Fable didn't write anything | | Running on a repo with no context about its maturity | Tell Fable the maturity level upfront (add to prompt: "This is a production service / prototype / internal tool") | | Piping the full report inline instead of saving to file | The file path is the handoff artifact — always save first | | Acting on findings before reading the Strengths section | Strengths tell you what to preserve — read them before starting Milestone 0 |
عرض على GitHub