Orchestrates /init-project command execution through interactive questionnaire (15 questions), brownfield codebase scanning (tech stack detection, ERD from migrations), and 8-document generation (overview, architecture, tech-stack, data, API, capacity, deployment, workflow).
Use when user runs /init-project, requests project documentation generation, or asks about architecture setup for greenfield/brownfield projects. (project)
Also in this package
Other skills from smithery/marcusgoll · top by installs.
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Claude CodeDeclared
CursorNot declared
CodexNot declared
GitHub CopilotNot declared
WindsurfNot declared
Gemini CLINot declared
ClineNot declared
OpenCodeNot declared
Skill metadata
Parsed from SKILL.md frontmatter.
Declared agentsclaude-code
Package contents
Files included with this skill beyond the listing page.
skill mdSKILL.md24,012 B
docsSUMMARY.md467 B
History
First recorded snapshot · 0 installs
SKILL.md
<objective> Guide execution of the /init-project command to generate 8 comprehensive project-level design documents through interactive questionnaire, brownfield codebase scanning, and cross-document consistency validation. Embodies "Planning is 80% of the project, 20% code" philosophy.
This skill orchestrates one-time project setup, producing foundation documentation that all features must align with.
Quality check: All required fields filled? User satisfied with answers? </step>
<step number="3"> Brownfield Codebase Scanning (Skip if greenfield)
Auto-detect tech stack, architecture patterns, and generate ERD from migrations.
Tech Stack Scanning:
# Frontend detection
if [ -f "package.json" ]; then
# Detect Next.js
if grep -q '"next":' package.json; then
FRONTEND_FRAMEWORK=$(jq -r '.dependencies.next // .devDependencies.next' package.json)
fi
# Detect React
if grep -q '"react":' package.json; then
REACT_VERSION=$(jq -r '.dependencies.react' package.json)
fi
# Detect TypeScript
if grep -q '"typescript":' package.json; then
TS_DETECTED=true
fi
fi
# Backend detection
if [ -f "requirements.txt" ]; then
# Detect FastAPI
if grep -q 'fastapi' requirements.txt; then
BACKEND_FRAMEWORK="FastAPI"
BACKEND_VERSION=$(grep 'fastapi' requirements.txt | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
fi
# Detect Django
if grep -q 'django' requirements.txt; then
BACKEND_FRAMEWORK="Django"
fi
fi
# Database detection (from dependencies)
if grep -q '"pg":' package.json || grep -q 'psycopg2' requirements.txt; then
DATABASE="PostgreSQL"
fi
# Database detection (from migrations)
if [ -d "alembic/versions" ]; then
DATABASE_MIGRATION_TOOL="Alembic"
MIGRATION_COUNT=$(ls alembic/versions/*.py 2>/dev/null | wc -l)
fi
Architecture Pattern Detection:
# Detect microservices
if [ -d "services" ] || [ -d "microservices" ]; then
ARCHITECTURE="microservices"
elif [ -f "docker-compose.yml" ]; then
# Check for multiple services in docker-compose
SERVICE_COUNT=$(grep -c 'image:' docker-compose.yml)
if [ "$SERVICE_COUNT" -gt 2 ]; then
ARCHITECTURE="microservices"
fi
else
ARCHITECTURE="monolith"
fi
Deployment Platform Detection:
if [ -f "vercel.json" ]; then
DEPLOYMENT_PLATFORM="Vercel"
elif [ -f "railway.json" ] || [ -f "railway.toml" ]; then
DEPLOYMENT_PLATFORM="Railway"
elif [ -d ".github/workflows" ]; then
# Inspect deploy workflow for platform
WORKFLOW_FILE=$(find .github/workflows -name "*deploy*" -type f | head -1)
if grep -q 'vercel' "$WORKFLOW_FILE"; then
DEPLOYMENT_PLATFORM="Vercel"
elif grep -q 'railway' "$WORKFLOW_FILE"; then
DEPLOYMENT_PLATFORM="Railway"
fi
fi
ERD Generation from Migrations:
# If Alembic migrations exist, generate ERD
if [ -d "alembic/versions" ]; then
# Scan migration files for create_table statements
ENTITIES=()
for migration in alembic/versions/*.py; do
# Extract table names
TABLE_NAME=$(grep -oP "create_table\('\K[^']+" "$migration")
if [ -n "$TABLE_NAME" ]; then
ENTITIES+=("$TABLE_NAME")
fi
done
# Result: ENTITIES=("users" "students" "lessons" "progress")
fi
Display generation results and guide user to next steps.
Summary Display:
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "✅ PROJECT DOCUMENTATION GENERATED"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "📊 Coverage:"
if [ "$PROJECT_TYPE" = "greenfield" ]; then
echo " - Filled from questionnaire: 70%"
echo " - Inferred from defaults: 10%"
echo " - Needs clarification: 20%"
else
echo " - Filled from questionnaire: 50%"
echo " - Inferred from codebase: 30%"
echo " - Needs clarification: 20%"
fi
echo ""
echo "📍 [NEEDS CLARIFICATION] Sections: $CLARIFICATION_COUNT"
if [ "$CLARIFICATION_COUNT" -gt 0 ]; then
echo " Review and fill these sections:"
grep -r "NEEDS CLARIFICATION" docs/project/ --with-filename | head -5
echo " ..."
fi
echo ""
echo "✅ Generated Files:"
for file in "${REQUIRED_FILES[@]}"; do
echo " - docs/project/$file"
done
echo ""
echo "💡 Next Steps:"
echo " 1. Review docs/project/ files"
echo " 2. Fill [NEEDS CLARIFICATION] sections"
echo " 3. Commit: git add docs/project/ && git commit -m 'docs: add project architecture'"
echo " 4. Start building: /roadmap or /feature"
echo ""
Quality check: User understands next steps? Documentation looks complete? </step> </workflow>
<validation> After completing workflow, verify:
All 8 files exist in docs/project/ with reasonable file sizes (not empty)
[NEEDS CLARIFICATION] markers are specific (e.g., "[NEEDS CLARIFICATION: Who are your main competitors?]" not just "[TODO]")
Mermaid diagrams use valid syntax (run through Mermaid validator if available)
Cross-document references align:
- Tech stack mentioned in multiple docs is consistent - Database choice appears in tech-stack.md, data-architecture.md, capacity-planning.md - Deployment model in deployment-strategy.md matches capacity-planning.md cost model
<antipatterns> <pitfall name="hallucinatingbusiness_logic"> ❌ Don't: Make up features, user metrics, or competitor names not provided by user ✅ Do: Use [NEEDS CLARIFICATION] for unknowns
Why: Documentation must reflect actual project, not assumptions. Hallucinated details lead to misalignment.
<pitfall name="vagueclarificationmarkers"> ❌ Don't: Use generic "[TODO]" or "[FILL THIS]" placeholders ✅ Do: Use specific [NEEDS CLARIFICATION: question] markers
Why: Specific questions guide user to fill gaps correctly.
<bestpractices> <practice name="citesources"> Always cite where information came from (questionnaire, scan, inference, default).
Example:
## Tech Stack
**Backend**: FastAPI (detected from requirements.txt v0.109.0)
**Frontend**: Next.js 14 (detected from package.json)
**Database**: PostgreSQL (from questionnaire Q7)
**Architecture**: Monolith (inferred from team size: solo developer)
**Deployment**: Vercel (from questionnaire Q8)
Benefit: Transparency shows which answers need verification vs which are confirmed. </practice>
<practice name="specificclarificationquestions"> Make [NEEDS CLARIFICATION] markers actionable with specific questions.
Example:
## Success Metrics
- Monthly Active Users (MAU): [NEEDS CLARIFICATION: What's your target MAU at 6 months? 12 months?]
- Conversion rate: [NEEDS CLARIFICATION: What % of signups should convert to paid within 30 days?]
- Churn rate: [NEEDS CLARIFICATION: What monthly churn rate is acceptable? <5%? <10%?]
Benefit: User knows exactly what information is needed, not guessing. </practice>
<practice name="brownfieldscanfirst"> For brownfield projects, scan codebase before filling templates to maximize auto-fill.
Workflow:
Detect project type
If brownfield: scan tech stack, ERD, architecture BEFORE questionnaire
Pre-fill questionnaire with scan results (user can override)
Generate docs with combined questionnaire + scan data