Part 7 · Vibe Coding, With Guardrails

Three Documents & Methodology Persistence

FEATURES / CHANGELOG / RELEASE_NOTES each covers one dimension; METHODOLOGY preserves product taste

THE QUESTION THIS PAGE ANSWERS

ANSWER FIRST

What is the key idea behind “Three Documents & Methodology Persistence”?

FEATURES / CHANGELOG / RELEASE_NOTES each covers one dimension; METHODOLOGY preserves product taste

DECISION RULE

Turn taste into a behavior the product can repeat. The useful outcome is not a nice opinion. It is a visible rule, a small example, and a way to tell when the experience falls below the bar.

TRY NEXT

Capture one before-and-after example that shows the quality bar without extra explanation.

WATCH FOR

Polish that improves the surface while leaving the user's uncertainty untouched.

Core division of responsibility: FEATURES answers "where did this feature come from?"; CHANGELOG answers "what changed this time?"; RELEASE_NOTES answers "what does the user get?"; METHODOLOGY answers "how were we thinking?" Each question has its own home, and decisions can survive beyond any single conversation.

Each Document Owns One Dimension
docs/FEATURES.md

The Full Lifecycle of a Feature

The single source of truth for features. Status flow: 🟡 Planned → 🔵 In Development → 🟢 Complete / ⚪ Cancelled. Each feature has a "history" section recording the original requirement, any approach changes with reasoning, and the final implementation. Cancelled features are never deleted—just marked ⚪ with an explanation.

docs/CHANGELOG.md

Technical Details of Every Change

Reverse chronological. Each entry uses a table to record: issue/requirement, root cause/approach, scope of changes, affected areas, and status. Type tags: BUG / FEAT / REFACTOR / PERF / DOCS. Must read system time before writing—never fill timestamps from memory; no backfilling allowed.

docs/RELEASE_NOTES.md

Changes Users Can Notice

Written for real users, in a completely different voice than CHANGELOG. Every item must answer "what does this mean for me?" Hard rules: no debug features, no technical details, no changes users can't perceive.

docs/METHODOLOGY.md

Product Decisions & Taste

AI proactively identifies product philosophy, decision logic, and trade-off preferences from conversations, distills them, and writes them in directly. New conversations inherit automatically. Four sections: Product Principles, Design Decision Log, UX Preferences, Anti-patterns.

Interactive Exercise 1 · Document Triage

Projects generate all kinds of information every day. Your triage ability determines whether the document system can actually run. Below are 8 real pieces of information—decide which document each one belongs in.

Item 1 / 8 Score: 0
Interactive Demo 2 · How a Feature History Grows

Every feature in FEATURES has a "History" section. It grows automatically through status transitions: every status change and approach adjustment appends a dated entry. Click the buttons to manually push a feature from planning to live.

Dark Mode
Brief: Provide a dark interface for users who spend long sessions in the app, reducing eye strain
🟡 Planned
History

Dates in the history are read from your device's system clock. Rule: timestamps must be read from the current system time—never filled in from memory. Even if the approach hasn't changed, you must write an "Initial Requirement" entry.

CHANGELOG Table Template

Each change is recorded in a fixed-field table. AI fills in the fields—no need to think about what to write each time.

## YYYY-MM-DD HH:MM

### [Type] Title        Types: BUG / FEAT / REFACTOR / PERF / DOCS

| Field          | Content                                                    |
|----------------|------------------------------------------------------------|
| Issue/Req      | What triggered this change (user feedback / bug / new req) |
| Cause/Approach | Bugs: root cause analysis; Features: technical approach    |
| Scope          | List of files or modules affected                          |
| Impact         | Existing features that may be affected by this change      |
| Status         | ✅ Done / ⏳ In Progress / ⚠️ Needs Monitoring              |
RELEASE_NOTES Hard Rules
❌ Never Include
  • Debug / internal tooling
  • Technical implementation details: module names, file paths, refactors
  • Changes users can't perceive
  • Developer jargon and technical explanations
✅ Only Write These
  • Changes users can notice; each item must answer "what does this mean for me?"
  • New features: one sentence on what the user can now do
  • Fixes: what was the problem before, and it's now resolved
  • Max 3 sentences per item; version numbers follow SemVer
METHODOLOGY Structure & Writing Principles

Four-Section Structure

  • Product Principles: Core beliefs and product philosophy that recur repeatedly
  • Design Decision Log: [Date] decision content, with rationale and context
  • UX Preferences: Taste, tendencies, and aesthetic standards for UI/UX
  • Anti-patterns: Approaches explicitly rejected, with reasons

Writing Principles

  • Distill to essentials; merge similar items; date new entries; don't copy-paste conversation verbatim
  • Don't record technical implementation details (that's CHANGELOG's job); don't record one-off temporary decisions
  • Triggers: user explains "why we're doing it this way"; user rejects an approach with reasoning; user expresses clear UI/UX preferences; user summarizes lessons in a retrospective
  • AI writes it in immediately upon recognition; briefly notifies the user after writing; no permission needed each time

Why keep it in the repository: Design decisions written in Notion or Feishu are useless—AI can't read external documents. A Markdown file inside the project repository is the only way for AI to automatically access context.

In-Class Exercise · 30 Minutes

Deliverable: a docs/ directory + 3 methodology entries. ① In an active project, create the docs/ directory and have AI initialize the three documents from the templates, backfilling existing features into FEATURES.md; ② Add the documentation rules to your Rule file, make a small change, and verify that AI automatically updates CHANGELOG; ③ Review your recent product discussions and manually write 3 design decisions you've confirmed into METHODOLOGY.md.

Source: open-source repository itshen/xs_vibe_rules, rule-opensource.mdc Chapter 9 "Version Records & Documentation" and Chapter 12 "Product Methodology Capture."

Turn the feeling in “The Full Lifecycle of a Feature” into a judgment

“Core division of responsibility: FEATURES answers "where did this feature come from?";” points out that AI has lowered the bar for making something usable. The skill readers need is noticing what is wrong and turning that feeling into an actionable requirement.

Watch the user's next action, not just the surface

Turn “The single source of truth for features.” into observable questions: does the user know what happened, what to do next, and how to recover from an empty or failed state? Does the hierarchy make the important information visible first?

  • Debug / internal tooling
  • Technical implementation details: module names, file paths, refactors
  • Changes users can't perceive

Pretty is not the same as usable

Apply “Deliverable: a docs/ directory + 3 methodology entries.” to a second screen or flow. Record one moment of hesitation and the user action after the change; observable behavior is stronger evidence than polish alone.

From “The Full Lifecycle of a Feature” to “Technical Details of Every Change”

“The Full Lifecycle of a Feature” grounds the problem in “The single source of truth for features. Status flow: 🟡 Planned → 🔵 In Development → 🟢 Complete / ⚪ Cancelled. Each feature has a "history" section recording the original requirement, any approach changes wi…”. “Technical Details of Every Change” then moves it toward “Reverse chronological. Each entry uses a table to record: issue/requirement, root cause/approach, scope of changes, affected areas, and status. Type tags: BUG / FEAT / REFACTOR / PERF / DOCS. Must read system t…”. Together, they show that the lesson is not just a conclusion to remember, but a claim with conditions.

Carry the judgment into the next situation

For experience work, turn abstract impressions into user actions: did the person understand the state, find the next step, recover from an error, and want to continue?

  • “The Full Lifecycle of a Feature”: The single source of truth for features. Status flow: 🟡 Planned → 🔵 In Development → 🟢 Complete / ⚪ Cancelled. Each feature has a "history" section recording the original requirement, any approach changes wi…
  • “Technical Details of Every Change”: Reverse chronological. Each entry uses a table to record: issue/requirement, root cause/approach, scope of changes, affected areas, and status. Type tags: BUG / FEAT / REFACTOR / PERF / DOCS. Must read system t…
  • “The closing point”: Changes users can notice; each item must answer "what does this mean for me?"

The final “The closing point” brings the discussion to “Changes users can notice; each item must answer "what does this mean for me?"”. The useful thing to carry forward is knowing which judgments must be revisited when input, scale, or risk changes.

Mark as learned Your reading progress updates automatically
← PreviousNext →

Keep reading

The next useful article in the thread.

ARTICLE DISCUSSION

Leave one useful thought here.

Keep the idea that clicked, the question that stayed open, or a small note for the next learner.

Discussing Three Documents & Methodology Persistence Vibe Coding, With Guardrails
3discussionsArticle discussion · synced with the Circle
View in the learning circle
AM
Asha MorganContent editor
INSIGHTField note

I turned one judgment from this article into a small experiment I could run today. Knowing what to observe next is more useful than simply remembering the conclusion.

ARTICLE DISCUSSION7 helpful
LH
Lin HarperIndie developer
INSIGHTInsight

After reading this, I first looked for the conditions behind the idea instead of copying the method into a project. That order made the later trade-offs much clearer.

ARTICLE DISCUSSION5 helpful
KM
Kiki MooreProduct operations
QUESTIONQuestion

When this judgment reaches real work, which constraint should be added first? I am curious which step matters most between reading and the first practical attempt.

ARTICLE DISCUSSION4 helpful