본문으로 건너뛰기
cccskills
무료GitHub에 공개

spec-to-repo

Turn a written app specification into a runnable starter project using the requested technology stack. Generate implemented features, tests, configuration files, and setup instructions, then check the project for common omissions.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Use when the user says 'build me an app', 'create a project from this spec', 'scaffold a new repo', 'generate a starter', 'turn this idea into code', 'bootstrap a project', 'I have requirements and need a codebase', or provides a natural-language project specification and expects a complete, runnable repository. Stack-agnostic: Next.js, FastAPI, Rails, Go, Rust, Flutter, and more.

설치 방법 보기

이럴 때 유용합니다

  • Turning a requirements document into a starter project
  • Creating a task API with FastAPI and SQLite
  • Building a recipe-sharing website with Next.js
  • Creating a Python expense-tracking command-line tool

포함된 파일(4)

  • SKILL.md11.0 KB
  • references/spec-parsing-guide.md3.9 KB
  • references/stack-templates.md5.9 KB
  • scripts/validate_project.py8.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Spec to Repo

Turn a natural-language project specification into a complete, runnable starter repository. Not a template filler — a spec interpreter that generates real, working code for any stack.

When to Use

  • User provides a text description of an app and wants code
  • User has a PRD, requirements doc, or feature list and needs a codebase
  • User says "build me an app that...", "scaffold this", "bootstrap a project"
  • User wants a working starter repo, not just a file tree

Not this skill when the user wants a SaaS app with Stripe + Auth specifically — use product-team/saas-scaffolder instead.

Core Workflow

Phase 1 — Parse & Interpret

Read the spec. Extract these fields silently:

FieldSourceRequired
App nameExplicit or infer from descriptionyes
DescriptionFirst sentence of specyes
FeaturesBullet points or sentences describing behavioryes
Tech stackExplicit ("use FastAPI") or infer from contextyes
Auth"login", "users", "accounts", "roles"if mentioned
Database"store", "save", "persist", "records", "schema"if mentioned
API surface"endpoint", "API", "REST", "GraphQL"if mentioned
Deploy target"Vercel", "Docker", "AWS", "Railway"if mentioned

Stack inference rules (when user doesn't specify):

SignalInferred stack
"web app", "dashboard", "SaaS"Next.js + TypeScript
"API", "backend", "microservice"FastAPI (Python) or Express (Node)
"mobile app"Flutter or React Native
"CLI tool"Go or Python
"data pipeline"Python
"high performance", "systems"Rust or Go

After parsing, present a structured interpretation back to the user:

## Spec Interpretation

**App:** [name]
**Stack:** [framework + language]
**Features:**
1. [feature]
2. [feature]

**Database:** [yes/no — engine]
**Auth:** [yes/no — method]
**Deploy:** [target]

Does this match your intent? Any corrections before I generate?

Flag ambiguities. Ask at most 3 clarifying questions. If the user says "just build it", proceed with best-guess defaults.

Phase 2 — Architecture

Design the project before writing any files:

  1. Select template — Match to a stack template from references/stack-templates.md
  2. Define file tree — List every file that will be created
  3. Map features to files — Each feature gets at minimum one file/component
  4. Design database schema — If applicable, define tables/collections with fields and types
  5. Identify dependencies — List every package with version constraints
  6. Plan API routes — If applicable, list every endpoint with method, path, request/response shape

Present the file tree to the user before generating:

project-name/
├── README.md
├── .env.example
├── .gitignore
├── .github/workflows/ci.yml
├── package.json / requirements.txt / go.mod
├── src/
│   ├── ...
├── tests/
│   ├── ...
└── ...

Phase 3 — Generate

Write every file. Rules:

  • Real code, not stubs. Every function has a real implementation. No // TODO: implement or pass placeholders.
  • Syntactically valid. Every file must parse without errors in its language.
  • Imports match dependencies. Every import must correspond to a package in the manifest (package.json, requirements.txt, go.mod, etc.).
  • Types included. TypeScript projects use types. Python projects use type hints. Go projects use typed structs.
  • Environment variables. Generate .env.example with every required variable, commented with purpose.
  • README.md. Include: project description, prerequisites, setup steps (clone, install, configure env, run), and available scripts/commands.
  • CI config. Generate .github/workflows/ci.yml with: install, lint (if linter in deps), test, build.
  • .gitignore. Stack-appropriate ignores (node_modules, pycache, .env, build artifacts).

File generation order:

  1. Manifest (package.json / requirements.txt / go.mod)
  2. Config files (.env.example, .gitignore, CI)
  3. Database schema / migrations
  4. Core business logic
  5. API routes / endpoints
  6. UI components (if applicable)
  7. Tests
  8. README.md

Phase 4 — Validate

After generation, run through this checklist:

  • Every imported package exists in the manifest
  • Every file referenced by an import exists in the tree
  • .env.example lists every env var used in code
  • .gitignore covers build artifacts and secrets
  • README has setup instructions that actually work
  • No hardcoded secrets, API keys, or passwords
  • At least one test file exists
  • Build/start command is documented and would work

Run scripts/validate_project.py against the generated directory to catch common issues.

Examples

Example 1: Task Management API

Input spec:

"Build me a task management API. Users can create, list, update, and delete tasks. Tasks have a title, description, status (todo/in-progress/done), and due date. Use FastAPI with SQLite. Add basic auth with API keys."

Output file tree:

task-api/
├── README.md
├── .env.example              # API_KEY, DATABASE_URL
├── .gitignore
├── .github/workflows/ci.yml
├── requirements.txt          # fastapi, uvicorn, sqlalchemy, pytest
├── main.py                   # FastAPI app, CORS, lifespan
├── models.py                 # SQLAlchemy Task model
├── schemas.py                # Pydantic request/response schemas
├── database.py               # SQLite engine + session
├── auth.py                   # API key middleware
├── routers/
│   └── tasks.py              # CRUD endpoints
└── tests/
    └── test_tasks.py         # Smoke tests for each endpoint

Example 2: Recipe Sharing Web App

Input spec:

"I want a recipe sharing website. Users sign up, post recipes with ingredients and steps, browse other recipes, and save favorites. Use Next.js with Tailwind. Store data in PostgreSQL."

Output file tree:

recipe-share/
├── README.md
├── .env.example              # DATABASE_URL, NEXTAUTH_SECRET, NEXTAUTH_URL
├── .gitignore
├── .github/workflows/ci.yml
├── package.json              # next, react, tailwindcss, prisma, next-auth
├── tailwind.config.ts
├── tsconfig.json
├── next.config.ts
├── prisma/
│   └── schema.prisma         # User, Recipe, Ingredient, Favorite models
├── src/
│   ├── app/
│   │   ├── layout.tsx
│   │   ├── page.tsx          # Homepage — recipe feed
│   │   ├── recipes/
│   │   │   ├── page.tsx      # Browse recipes
│   │   │   ├── [id]/page.tsx # Recipe detail
│   │   │   └── new/page.tsx  # Create recipe form
│   │   └── api/
│   │       ├── auth/[...nextauth]/route.ts
│   │       └── recipes/route.ts
│   ├── components/
│   │   ├── RecipeCard.tsx
│   │   ├── RecipeForm.tsx
│   │   └── Navbar.tsx
│   └── lib/
│       ├── prisma.ts
│       └── auth.ts
└── tests/
    └── recipes.test.ts

Example 3: CLI Expense Tracker

Input spec:

"Python CLI tool for tracking expenses. Commands: add, list, summary, export-csv. Store in a local SQLite file. No external API."

Output file tree:

expense-tracker/
├── README.md
├── .gitignore
├── .github/workflows/ci.yml
├── pyproject.toml
├── src/
│   └── expense_tracker/
│       ├── __init__.py
│       ├── cli.py            # argparse commands
│       ├── database.py       # SQLite operations
│       ├── models.py         # Expense dataclass
│       └── formatters.py     # Table + CSV output
└── tests/
    └── test_cli.py

Anti-Patterns

Anti-patternFix
Placeholder code — // TODO: implement, pass, empty function bodiesEvery function has a real implementation. If complex, implement a working simplified version.
Stack override — picking Next.js when the user said FlaskAlways honor explicit tech preferences. Only infer when the user doesn't specify.
Missing .gitignore — committing node_modules or .envGenerate stack-appropriate .gitignore as one of the first files.
Phantom imports — importing packages not in the manifestCross-check every import against package.json / requirements.txt before finishing.
Over-engineering MVP — adding Redis caching, rate limiting, WebSockets to a v1Build the minimum that works. The user can iterate.
Ignoring stated preferences — user says "PostgreSQL" and you generate MongoDBParse the spec carefully. Explicit preferences are non-negotiable.
Missing env vars — code reads process.env.X but .env.example doesn't list itEvery env var used in code must appear in .env.example with a comment.
No tests — shipping a repo with zero test filesAt minimum: one smoke test per API endpoint or one test per core function.
Hallucinated APIs — generating code that calls library methods that don't existStick to well-documented, stable APIs. When unsure, use the simplest approach.

Validation Script

scripts/validate_project.py

Checks a generated project directory for common issues:

# Validate a generated project
python3 scripts/validate_project.py /path/to/generated-project

# JSON output
python3 scripts/validate_project.py /path/to/generated-project --format json

Checks performed:

  • README.md exists and is non-empty
  • .gitignore exists
  • .env.example exists (if code references env vars)
  • Package manifest exists (package.json, requirements.txt, go.mod, Cargo.toml, pubspec.yaml)
  • No .env file committed (secrets leak)
  • At least one test file exists
  • No TODO/FIXME placeholders in generated code

Progressive Enhancement

For complex specs, generate in stages:

  1. MVP — Core feature only, working end-to-end
  2. Auth — Add authentication if requested
  3. Polish — Error handling, validation, loading states
  4. Deploy — Docker, CI, deploy config

Ask the user after MVP: "Core is working. Want me to add auth/polish/deploy next, or iterate on what's here?"

Cross-References

  • Related: product-team/saas-scaffolder — SaaS-specific scaffolding (Next.js + Stripe + Auth)
  • Related: engineering/spec-driven-workflow — spec-first development methodology
  • Related: engineering/database-designer — database schema design patterns
  • Related: engineering-team/senior-fullstack — full-stack implementation patterns

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Audit web applications for accessibility issues against WCAG 2.2 Level A and AA, the web accessibility standards. Get framework-specific code fixes, contrast checks, verification steps, and reports, with options for automated checks in development pipelines.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Audit a web application before release
  • Fix contrast and keyboard navigation issues
  • Prepare accessibility reports for stakeholders
alirezarezvani/claude-skills2.9만2026년 10월 22일 업데이트

Plan A/B tests that compare page variations, from headlines to pricing layouts. Define a hypothesis, choose success metrics, calculate sample size and duration, and prepare launch checks and results reports to support decisions.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Comparing landing page headlines
  • Testing signup button changes
  • Planning pricing page experiments
alirezarezvani/claude-skills2.9만2026년 10월 22일 업데이트

Create paid ad headlines and body copy tailored to each platform's character limits. Use existing performance data to develop variations, explore new messaging angles, and check copy for length, quality, and potential rejection risks.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Creating Google RSA headlines
  • Writing Meta and LinkedIn ad copy
  • Developing variations of successful ads
alirezarezvani/claude-skills2.9만2026년 10월 22일 업데이트

Review code changes from three critical perspectives: production failures, maintainability, and security. Get a consolidated report that ranks findings by severity and provides merge guidance, helping examine assumptions that an ordinary self-review may overlook.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Reviewing a pull request before merging
  • Getting a second opinion on AI-written code
  • Checking authentication or data access code
alirezarezvani/claude-skills2.9만2026년 10월 22일 업데이트

aeo

무료

Audit and improve content intended for citation in AI answers. Review evidence, author information, and structure, generate revised content and structured metadata, and keep a local record of observed citations across AI services.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Audit existing articles for evidence and credibility gaps
  • Revise article structure and references for AI answers
  • Record citations observed across AI services
alirezarezvani/claude-skills2.9만2026년 10월 22일 업데이트

Create signed records for consequential agent actions such as deployments, deletions, and payments. Decide which actions need evidence, record the agent, action, target, and policy, then verify the resulting certificate offline to detect later changes.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Creating signed records for production deployments
  • Preserving evidence of deletions and payments
  • Recording access grants for later review
alirezarezvani/claude-skills2.9만2026년 10월 22일 업데이트

alirezarezvani의 스킬 모두 보기

이 스킬의 문제 신고