An AI-powered framework for systematic software development. Go beyond “vibe coding” to build scalable, maintainable applications.
https://www.reddit.com/r/ProgrammerHumor/comments/1jcjrzf/vibecoding
@personofswag/X
https://survey.stackoverflow.co/2025/technology#worked-with-vs-want-to-work-with-ai-models-worked-want-prof
The Why (High-Level Vision)
The What (Functional Requirements)
The How (Technical Exploration)
internal web scraping tool
.
The dialogue begins with a vague idea...
The AI probes for the "Why"
The user reveals the core motivation
The AI defines the "What"
The user provides critical details
The AI suggests the "How"
The user asks a final, informed question
Index Key Documentation
docs
folder containing custom knowledge files from documentation websites.git clone
the repo and run npm i
.config.ts
: Define the target url
, a match
pattern, and a CSS selector
for the main content.npm start
to generate a JSON file in the docs
folder.Draft the Product Requirements Document
PRD.md
file.The Vision & User Experience (The 'What')
The Technical Plan (The 'How')
The Definition of Done
Designing for AI Observability
LoggingService
must produce structured (JSON) logs. This service should support at least two AI-friendly modes:single_file
: All logs from an execution are streamed into one file for a complete overview.token_batched
: Logs are split into smaller files, each under a specific token limit. This is powerful for feeding a focused log batch into an AI for debugging without exceeding its context window.Establish Project Rules
CLAUDE.md
or PROJECT_RULES.md
) that outlines the non-negotiable coding standards. This file prevents the AI from deviating from your plan.docs/*
: Documentation knowledge files.PRD.md
: The project’s single source of truth.CLAUDE.md
: The project’s coding rules.PRD.md
and have the AI generate the application skeleton in a single pass.
Provide the context library to a specialized coding AI (like Claude Code) whose sole job is to translate your plan into clean, validated code.
CLAUDE.md
file in your project’s root. This means your prompts can be more direct, focusing on the what (from the PRD) while trusting the AI to handle the how (from the rules file) without being explicitly told.PRD.md
, CLAUDE.md
, and all docs/*
files) and instruct it to generate the complete initial codebase. This approach is highly effective for new projects or applications of small-to-medium complexity.The user provides a direct, PRD-focused prompt
PRD.md
as your guide, generate the entire initial project structure and the complete code for all foundational services: ConfigService
, StorageService
, and LoggingService
. Also, generate the corresponding pytest
unit tests for each service.”The AI confirms its context and executes the plan
PRD.md
and will apply the
architectural rules and standards found in your CLAUDE.md
file. I will now
generate the initial project structure, all specified foundational
services, and their corresponding unit tests. Here is the output:”The AI generates the code exactly as specified
src/services/storage_service.py
, adhering to the PRD’s requirements and the coding standards from CLAUDE.md
(type hints, docstrings, structured logging):“PRD.md
.
Isolate the Problem
Gather Precise Context
PRD.md
or CLAUDE.md
that defines how the system should have behaved.Delegate the Fix to the AI
PRD.md
or PROJECT_RULES.md
). This forces the AI to solve the problem based on your rules, not its own assumptions.1. The user isolates the problem and gathers context
techblog_posts.jsonl
is empty. The logs show a recurring ValidationError
.The Evidence (from logs/app.log
):src/models/blog.py
(where BlogPost
is defined)src/scrapers/blog_scraper.py
(the code that extracts the date)PRD.md
states the publication_date
field must be a datetime
object.2. The AI cross-references the context to find the root cause
publication_date
field is receiving a string that cannot be parsed directly into a datetime
object. The blog_scraper.py
is likely extracting a human-readable date format (e.g., “August 14, 2025”) that Pydantic doesn’t recognize by default.BlogPost
model in src/models/blog.py
to parse this specific date format before validation occurs. This centralizes the validation logic within the model, adhering to our schema-first principle.”3. The AI provides the corrected code
src/models/blog.py
file with the fix:”@field_validator
decorator intercepts the incoming publication_date
string. It uses datetime.strptime
to parse the specific format into a valid datetime
object before Pydantic performs its own validation. This resolves the error while keeping the data model robust.”