With AI, it is dangerously easy to "Vibe Code"βto generate working code from vague prompts without architectural forethought. This creates "Spaghetti Speed" (fast now, impossible to maintain later). This standard draws the line between Exploration and Engineering.
2. The Standard (The Floor)
[MUST] The "Vibe" Boundary: unstructured, stream-of-consciousness coding ("Vibing") is FORBIDDEN in packages/modules (The Core) and apps/platform (The UI).
[MUST] The Structured Path: Implementation of any feature > 4 hours MUST follow the Concept -> Analysis -> Design -> Code -> Document -> Twin path.
Concept: Product Standard (Capability defined).
Analysis: Architecture Standard (Boundaries/DDD defined).
Analog Twin: The "Living Twin" (Manuals, Rulebooks, Personas) is updated to reflect reality.
[MUST] Reification: Code generated during an exploratory "Vibe Session" (e.g., in a scratchpad) MUST be discarded or fully refactored to meet Standards before merging.
3. Best Practices (The Path)
[SHOULD] Use Scratchpads: Use documentation/scratchpad/ or a literal scratch.ts file for "Vibing". It is a healthy creative process, but it is not Production Engineering.
[SHOULD] The "Stop & Draw" Rule: If you cannot draw the data flow on a napkin (or Mermaid diagram), you are not ready to code. Stop vibing and start designing.
4. Recognized Anti-Patterns
Pattern
Description
Verdict
Vibe Coding
Coding without a plan, relying on AI to "figure it out".
FORBIDDEN in Prod.
Shotgunning
Pasting cryptic errors into AI hoping for a fix without understanding the root cause.
FORBIDDEN.
Golden Hammer
Using a complex tool (e.g., Kubernetes, Microservices) for a simple problem because "it's cool".