.claude/skills/project-review/SKILL.md
Complete project health check: verify tests, documentation, database snapshots, migration progress, and suggest next steps. Run after completing any task or iteration.
npx skillsauth add Coignite-ApS/businesslogic project-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a comprehensive project health check. This skill audits the current state of the BusinessLogic platform migration, verifies everything is safe, and produces a status report with actionable next steps.
When to use: After completing any task, iteration step, or when you want a full picture of where the project stands.
quick: Skip database dump and legacy comparisonreport: Generate a markdown report file in docs/reports/plan: Review + re-evaluate the migration plan and suggest adjustments# Current branch and recent history
git branch --show-current
git log --oneline -10
git status
# Check for uncommitted changes
git diff --stat
# Verify we're NOT on main
BRANCH=$(git branch --show-current)
if [ "$BRANCH" = "main" ] || [ "$BRANCH" = "master" ]; then
echo "WARNING: You are on $BRANCH. Switch to a feature branch before making changes."
fi
# Show branch relationship
git log --oneline --graph --all -20
Report: current branch, uncommitted changes, last 5 commits, any warnings.
Run all available tests and report results:
./scripts/test-all.sh 2>&1
For each service, report:
If any tests fail, this is a BLOCKER — list the failures and suggest fixes before proceeding.
# Check if Docker services are running
docker compose -f infrastructure/docker/docker-compose.dev.yml ps --format json 2>/dev/null
# If running, check health
./scripts/health-check.sh 2>&1
# Run contract tests
./scripts/test-contracts.sh 2>&1
Report: which services are up, which are healthy, which are down.
Maintain a rolling window of 5 database snapshots for safety.
SNAPSHOT_DIR="infrastructure/db-snapshots"
mkdir -p "$SNAPSHOT_DIR"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
SNAPSHOT_FILE="$SNAPSHOT_DIR/snapshot_${TIMESTAMP}_${BRANCH}.sql.gz"
# Dump database (schema + data)
docker compose -f infrastructure/docker/docker-compose.dev.yml exec -T postgres \
pg_dump -U directus -d directus --clean --if-exists | gzip > "$SNAPSHOT_FILE"
echo "Snapshot saved: $SNAPSHOT_FILE ($(du -h "$SNAPSHOT_FILE" | cut -f1))"
SNAPSHOT_DIR="infrastructure/db-snapshots"
SNAPSHOT_COUNT=$(ls -1 "$SNAPSHOT_DIR"/snapshot_*.sql.gz 2>/dev/null | wc -l)
if [ "$SNAPSHOT_COUNT" -gt 5 ]; then
# Remove oldest snapshots, keep newest 5
ls -1t "$SNAPSHOT_DIR"/snapshot_*.sql.gz | tail -n +6 | xargs rm -f
echo "Rotated: kept 5 newest snapshots, removed $(($SNAPSHOT_COUNT - 5)) old ones"
fi
# List current snapshots
echo "Current snapshots:"
ls -lh "$SNAPSHOT_DIR"/snapshot_*.sql.gz 2>/dev/null || echo " (none)"
# Export current schema as reference
docker compose -f infrastructure/docker/docker-compose.dev.yml exec -T postgres \
pg_dump -U directus -d directus --schema-only --no-owner --no-privileges \
> "$SNAPSHOT_DIR/schema_current.sql"
echo "Schema exported: $SNAPSHOT_DIR/schema_current.sql"
Report: snapshot taken, rotation status, current schema saved.
Check that key documentation is up-to-date:
# Check all required docs exist
DOCS=(
"CLAUDE.md"
"docs/evolution-plan.md"
"docs/database-strategy.md"
"docs/migration-safety.md"
"docs/architecture-diagram.html"
)
for doc in "${DOCS[@]}"; do
if [ -f "$doc" ]; then
MOD_DATE=$(stat -c '%Y' "$doc" 2>/dev/null || stat -f '%m' "$doc" 2>/dev/null)
echo "OK: $doc (modified: $(date -d @$MOD_DATE '+%Y-%m-%d' 2>/dev/null || date -r $MOD_DATE '+%Y-%m-%d' 2>/dev/null))"
else
echo "MISSING: $doc"
fi
done
# Check iteration plans
for i in 00 01 02 03 04 05; do
PLAN=$(ls docs/migrations/iteration-${i}* 2>/dev/null | head -1)
if [ -n "$PLAN" ]; then
echo "OK: $PLAN"
else
echo "MISSING: iteration-$i plan"
fi
done
Check if CLAUDE.md reflects the current reality:
Read each iteration plan and check completion status:
# For each iteration, check completion checklist
for i in 00 01 02 03 04 05; do
PLAN=$(ls docs/migrations/iteration-${i}* 2>/dev/null | head -1)
if [ -n "$PLAN" ]; then
TOTAL=$(grep -c '^\- \[' "$PLAN" 2>/dev/null || echo 0)
DONE=$(grep -c '^\- \[x\]' "$PLAN" 2>/dev/null || echo 0)
echo "Iteration $i: $DONE/$TOTAL complete"
fi
done
Cross-reference with actual file system state:
quick)If both legacy and new services are running:
# Compare key endpoints
echo "=== CMS ==="
curl -s -o /dev/null -w "New (8055): %{http_code} %{time_total}s\n" http://localhost:8055/server/ping
curl -s -o /dev/null -w "Legacy (8056): %{http_code} %{time_total}s\n" http://localhost:8056/server/ping
echo "=== Formula API ==="
curl -s -o /dev/null -w "Formula (3000): %{http_code} %{time_total}s\n" http://localhost:3000/ping
echo "=== Flow ==="
curl -s -o /dev/null -w "Flow (3100): %{http_code} %{time_total}s\n" http://localhost:3100/ping
Compile all findings into a structured report:
# Project Review — [DATE]
## Branch: [current branch]
## Iteration: [current iteration based on branch name]
### Test Results
| Service | Status | Details |
|---------|--------|---------|
| formula-api | PASS/FAIL/SKIP | X pass, Y fail |
| flow | PASS/FAIL/SKIP | X pass, Y fail |
| cms | PASS/FAIL/SKIP | X pass, Y fail |
| ai-api | PASS/FAIL/SKIP | X pass, Y fail |
| gateway | PASS/FAIL/SKIP | X pass, Y fail |
| contracts | PASS/FAIL/SKIP | X pass, Y fail |
### Service Health
| Service | Port | Status |
|---------|------|--------|
| bl-cms | 8055 | UP/DOWN |
| bl-formula-api | 3000 | UP/DOWN |
| bl-flow-trigger | 3100 | UP/DOWN |
| bl-ai-api | 3200 | UP/DOWN |
| bl-gateway | 8080 | UP/DOWN |
### Database
- Snapshot: [filename] ([size])
- Schema exported: YES/NO
- Snapshots on disk: X/5
### Migration Progress
| Iteration | Status | Progress |
|-----------|--------|----------|
| 0: Foundation | NOT STARTED/IN PROGRESS/COMPLETE | X/Y steps |
| 1: AI API | NOT STARTED/IN PROGRESS/COMPLETE | X/Y steps |
| 2: Gateway | NOT STARTED/IN PROGRESS/COMPLETE | X/Y steps |
| 3: Public API | NOT STARTED/IN PROGRESS/COMPLETE | X/Y steps |
| 4: Flow AI | NOT STARTED/IN PROGRESS/COMPLETE | X/Y steps |
| 5: Hardening | NOT STARTED/IN PROGRESS/COMPLETE | X/Y steps |
### Blockers
- [List any failing tests, missing files, or inconsistencies]
### Suggested Next Steps
1. [Most important action based on current state]
2. [Second priority]
3. [Third priority]
### Plan Adjustments (if any)
- [Any changes to the migration plan based on what was found]
If report argument was given, save to docs/reports/review_[DATE].md.
Based on the review, recommend what to do next:
plan argument)If the user asked for plan re-evaluation:
docs/reports/plan_reassessment_[DATE].mdquick mode) — it costs nothing and saves everything.tools
Review task backlog across all services, pick next project, update status, or add new ideas
tools
Evidence-based frontend design: research, evaluate, and build production-grade interfaces. Audits existing UI with Chrome DevTools, documents design decisions with rationale, and applies modern design principles including AI-first patterns. Use for building, reviewing, or improving any frontend interface.
development
DevOps infrastructure review agent: Terraform audit, Docker/Compose hardening, Coolify deployment assessment, networking, backup strategy, monitoring, and CI/CD pipeline review. Evaluates infrastructure like a senior DevOps engineer performing production readiness assessment — with evidence, severity ratings, and actionable recommendations.
development
CTO-level technical review agent: security audit, architecture evaluation, code quality analysis, dependency assessment, and technology fitness review. Evaluates the project like a senior technical leader performing due diligence — with evidence, severity ratings, and actionable recommendations.