Audit sdlc
Audit the software development lifecycle (SDLC) maturity of the current project. Scans the codebase, CI/CD configs, testing setup, security tools, documentation, and operational readiness, then produces a scored report with a prioritized action plan. Use this skill when the user wants to assess project health, check SDLC coverage, run a maturity audit, find gaps in their development workflow, compare their project to industry standards, or get recommendations for improvement. Also triggers on "audit sdlc", "project health check", "what am I missing", "maturity assessment", "how production-ready am I", "gap analysis", "check my project", "what should I improve", "development best practices check", or "sdlc review". This is a read-only diagnostic skill — it does NOT fix issues, only reports findings and recommends actions. Designed for AI-first solo developer workflows with the 80/20 rule in mind: maximum impact, minimum effort.From its SKILL.md
npx -y skills add JimmyBlanquet/project-forge --skill audit-sdlcAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
12.9 KB, ~3.3k tokens by cl100k_base, as published. Nobody here has run it
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Context
This audit compares the current project against 10 SDLC domains expected of a production SaaS application. The benchmark is calibrated for:
- AI-first workflow (Claude Code / LLM-assisted development)
- Solo developer or very small team
- 80/20 rule: only flag gaps where effort-to-impact ratio is favorable
- Pragmatic: skip items that are over-engineering for the project's stage
Scoring: each domain gets a score from 0-100%. The overall score is the average.
Outline
Phase 1: Discovery (scan the project)
Run all discovery steps in parallel where possible. Do NOT ask the user questions — scan everything automatically.
1.1 Package & Framework Detection
Read package.json (or pyproject.toml, go.mod, etc.) to identify:
- Framework: Next.js, Remix, SvelteKit, Express, FastAPI, etc.
- ORM: Prisma, Drizzle, TypeORM, SQLAlchemy, etc.
- Auth: NextAuth/Auth.js, Supabase Auth, Clerk, Lucia, etc.
- Test framework: vitest, jest, pytest, playwright, cypress, etc.
- Linting: eslint, biome, prettier, etc.
- CI tooling: husky, commitlint, lint-staged, etc.
1.2 Project Structure Scan
Check for the presence of these files/dirs (adapt patterns to the detected framework):
Requirements & Spec:
specs/or.speckit/or any spec directorydocs/adr/ordocs/decisions/- Constitution or project principles file
Testing:
- Test config:
vitest.config.*,jest.config.*,playwright.config.*,cypress.config.* - Test directories:
__tests__/,tests/,test/,*.test.*,*.spec.* - Coverage config:
coveragein test config orc8/istanbul/coverage-v8 - E2E tests:
e2e/,tests/e2e/, playwright or cypress config - Mutation testing:
stryker.config.*
Quality:
.jscpd.jsonor jscpd in package.jsonknip.config.*or knip in package.jsoneslint-plugin-sonarjsin dependencies.eslintrc*oreslint.config.*.prettierrc*orprettier.config.*
Security:
- Security-related scripts in package.json
.github/workflows/containingsecurity,codeql,semgrep,snyk- Pre-commit hooks checking for secrets
npm auditin CI scripts.env.example(secrets documentation)- CSP headers in config
CI/CD:
.github/workflows/— list all workflow filesvercel.jsonornetlify.tomlorDockerfile- Deploy scripts
- Branch protection indicators
Monitoring & Observability:
- Sentry config:
sentry.*.config.*,@sentry/*in deps - Analytics:
@vercel/analytics,posthog,plausiblein deps - Health endpoint: grep for
/api/healthor/healthz - Logging: structured logging library in deps
Documentation:
README.mdquality (>100 lines = good)CLAUDE.mdor.cursorrules(AI instructions)CHANGELOG.md- API documentation
docs/directory depth
Maintenance:
renovate.jsonor.github/dependabot.ymlcommitlintconfig.husky/directory- Changelog generation script
Incident Response:
RUNBOOK.mdordocs/incidents/- Post-mortem template
- Rollback script or documentation
Performance:
- Bundle analysis config (
@next/bundle-analyzer,webpack-bundle-analyzer) - Lighthouse CI config
- Performance test scripts (k6, artillery)
- Image optimization (sharp, next/image usage)
1.3 CI Pipeline Analysis
For each workflow file in .github/workflows/:
- What triggers it (push, PR, schedule)
- What it runs (lint, test, build, deploy, security scan)
- Whether it blocks merges
1.4 MCP & Tooling Integration Check
Detect which MCP servers are configured and which are missing based on the project's tech stack.
Detection method:
# List configured MCP servers
claude mcp list 2>/dev/null || echo "no-mcp-cli"
If the CLI is not available, check for .mcp.json in the project root.
Evaluate based on detected stack:
| Tech Stack Signal | Recommended MCP | How to detect |
|---|---|---|
@supabase/supabase-js in deps | Supabase MCP | grep supabase package.json |
stripe in deps | Stripe MCP | grep stripe package.json |
@sentry/* in deps OR sentry.*.config.* files | Sentry MCP | grep sentry package.json or glob sentry.*.config.* |
| Any project with deployment | Vercel/deployment logs | Check vercel.json or deploy scripts |
Score contribution: MCP integration is factored into the Incident Readiness domain (Sentry) and Implementation Quality domain (dev tooling).
For each missing MCP that matches the stack, add a Quick Win to the action plan:
Install {name} MCP: claude mcp add --transport http {name} {url}
1.5 Git History Quick Check
git log --oneline -20
Check:
- Are commits conventional? (feat:, fix:, chore:, etc.)
- Is there a branching strategy visible? (feat/, fix/ branches)
- How active is the project?
Phase 2: Scoring
Score each domain based on what was found. Use this rubric:
Domain 1: Requirements & Specification (weight: 10%)
| Score | Criteria |
|---|---|
| 0% | No specs, no documentation of what to build |
| 25% | README describes features informally |
| 50% | Some spec files or issue templates exist |
| 75% | Structured specs with acceptance criteria |
| 100% | Full spec pipeline (specify → plan → tasks) + constitution |
Domain 2: Architecture & Design (weight: 10%)
| Score | Criteria |
|---|---|
| 0% | No architecture documentation |
| 25% | README mentions tech stack |
| 50% | Some docs exist (API docs, data model) |
| 75% | ADRs + architecture docs + layer conventions |
| 100% | ADRs + archi review process + fitness functions (ESLint layers) |
Domain 3: Implementation Quality (weight: 15%)
| Score | Criteria |
|---|---|
| 0% | No linting, no formatting, no conventions |
| 25% | Basic ESLint or Prettier |
| 50% | ESLint + Prettier + some custom rules |
| 75% | ESLint + Prettier + sonarjs + commitlint |
| 100% | + code duplication detection (jscpd) + dead code (knip) + AI instructions (CLAUDE.md) |
Domain 4: Testing (weight: 15%)
| Score | Criteria |
|---|---|
| 0% | No tests |
| 25% | Some unit tests exist |
| 50% | Unit tests with reasonable coverage + test config |
| 75% | Unit + E2E tests in CI |
| 100% | Unit + E2E + mutation testing + architecture fitness tests |
Domain 5: Security (weight: 15%)
| Score | Criteria |
|---|---|
| 0% | No security measures beyond framework defaults |
| 25% | Auth implemented + .env for secrets |
| 50% | + npm audit + basic CSP headers |
| 75% | + SAST in CI (CodeQL or Semgrep) + secrets scanning + dependency auto-update |
| 100% | + threat model + security review process + OWASP checklist |
Domain 6: CI/CD Pipeline (weight: 10%)
| Score | Criteria |
|---|---|
| 0% | No CI, manual deploy |
| 25% | Basic CI (lint or test) |
| 50% | CI runs lint + test + build on PRs |
| 75% | + auto-deploy + branch protection |
| 100% | + smoke tests post-deploy + staging environment + deployment protection |
Domain 7: Performance (weight: 5%)
| Score | Criteria |
|---|---|
| 0% | No performance consideration |
| 25% | Image optimization |
| 50% | + bundle awareness (analyzer available) |
| 75% | + performance budget or Lighthouse CI |
| 100% | + load testing + Core Web Vitals monitoring |
Domain 8: Documentation (weight: 5%)
| Score | Criteria |
|---|---|
| 0% | No README or minimal |
| 25% | Basic README with setup instructions |
| 50% | README + some docs/ |
| 75% | README + CLAUDE.md + docs/ + CHANGELOG |
| 100% | + API docs + ADRs + runbook + contributing guide |
Domain 9: Maintenance & Dependencies (weight: 10%)
| Score | Criteria |
|---|---|
| 0% | No dependency management |
| 25% | Package-lock exists |
| 50% | + conventional commits |
| 75% | + auto-update (Renovate/Dependabot) + commitlint + changelog |
| 100% | + dead dependency detection (knip) + husky hooks + PR template |
Domain 10: Incident Readiness (weight: 5%)
| Score | Criteria |
|---|---|
| 0% | No incident preparation |
| 25% | Error tracking configured (Sentry) |
| 50% | + health endpoint |
| 75% | + runbook + post-mortem template |
| 100% | + rollback procedure + monitoring alerts |
Phase 3: Report Generation
Generate a report in this exact format. Save it as audit-sdlc-report.md in the project root.
# SDLC Maturity Audit Report
**Project:** {project name from package.json or directory name}
**Date:** {today}
**Framework:** {detected framework}
**Overall Score:** {weighted average}% — {verdict}
Verdicts: <40% = "Needs Significant Work", 40-59% = "Below Standard", 60-74% = "Adequate", 75-89% = "Good", 90%+ = "Excellent"
---
## Scorecard
| # | Domain | Score | Status |
|---|--------|-------|--------|
| 1 | Requirements & Spec | {score}% | {PASS/WARN/FAIL} |
| 2 | Architecture & Design | {score}% | {PASS/WARN/FAIL} |
| 3 | Implementation Quality | {score}% | {PASS/WARN/FAIL} |
| 4 | Testing | {score}% | {PASS/WARN/FAIL} |
| 5 | Security | {score}% | {PASS/WARN/FAIL} |
| 6 | CI/CD Pipeline | {score}% | {PASS/WARN/FAIL} |
| 7 | Performance | {score}% | {PASS/WARN/FAIL} |
| 8 | Documentation | {score}% | {PASS/WARN/FAIL} |
| 9 | Maintenance & Deps | {score}% | {PASS/WARN/FAIL} |
| 10 | Incident Readiness | {score}% | {PASS/WARN/FAIL} |
Status: PASS (>=75%), WARN (50-74%), FAIL (<50%)
---
## Detailed Findings
### {Domain Name} — {score}% {status emoji}
**What's in place:**
- {bullet list of what was found}
**What's missing:**
- {bullet list of gaps vs. standard}
**Evidence:**
- {file paths or config snippets that justify the score}
(repeat for each domain)
---
## Action Plan
Priority is based on: impact (how much it improves the score) × inverse effort (how easy it is).
Only include actions where effort/impact ratio is favorable (80/20 rule).
### Quick Wins (< 1 hour each)
| # | Action | Domain | Expected Impact |
|---|--------|--------|----------------|
| 1 | {action description} | {domain} | {score before} → {score after} |
### Medium Effort (1-4 hours each)
| # | Action | Domain | Expected Impact |
|---|--------|--------|----------------|
### Strategic (> 4 hours, evaluate ROI first)
| # | Action | Domain | Expected Impact |
|---|--------|--------|----------------|
---
## MCP Integration
| MCP Server | Status | Recommended | Install Command |
|-----------|--------|-------------|-----------------|
| Sentry | {installed/missing} | {yes/no based on stack} | `claude mcp add --transport http sentry https://mcp.sentry.dev/mcp` |
| Supabase | {installed/missing} | {yes/no based on stack} | `claude mcp add --transport http supabase https://mcp.supabase.com` |
| Stripe | {installed/missing} | {yes/no based on stack} | `claude mcp add --transport http stripe https://mcp.stripe.com` |
{Only show rows where the MCP is recommended based on detected dependencies. Skip irrelevant ones.}
---
## What NOT To Do (Over-engineering for this project stage)
- {list of things that are tempting but disproportionate}
---
## Next Steps
To address the quick wins, run:
{specific commands or skills to invoke}
Phase 4: Present Results
Display a summary to the user:
- The overall score and verdict
- The scorecard table
- Top 3 quick wins with concrete next steps
- Ask if they want to see the full report or start implementing fixes
Important Rules
- Never ask questions during the scan. Discover everything automatically.
- Be honest in scoring. Don't inflate scores to be nice.
- Be pragmatic in recommendations. Factor in solo-dev, AI-first context.
- Skip over-engineering: no SonarQube, no feature flags, no visual regression unless the project clearly needs it.
- Adapt to framework: if it's not Next.js, adjust the tooling expectations accordingly.
- Check actual files, don't assume from package.json alone (a dep can be installed but not configured).
- The report must be actionable — every finding should have a concrete fix.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.