@epiccontext/mcp 0.1.63 → 0.1.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/files.js CHANGED
@@ -1,30 +1,30 @@
1
1
  import * as fs from "fs";
2
2
  import * as path from "path";
3
3
  import { getStorybookTemplateFiles } from "../templates/storybook.js";
4
- // Example content for each block type - used to generate _example-*.md files during init
4
+ // Example content for each block type - placed in hidden .examples/ folders during init
5
5
  // These show AI agents the correct heading structure for each block type
6
+ // `subfolder` defines where real blocks of this type should be organized
6
7
  // `frontmatterLinks` shows how to add schema refs and universal links in frontmatter
7
8
  const BLOCK_TYPE_EXAMPLES = {
8
9
  // Constitution
9
- constraint: { body: `## No Third-Party Analytics
10
+ constraint: { subfolder: "constraints", body: `## No Third-Party Analytics
10
11
 
11
- **Priority:** high
12
- **Category:** privacy
12
+ **Type:** privacy
13
13
 
14
- ### Description
14
+ All analytics must be first-party. No external tracking scripts allowed. User privacy is a core value — third-party scripts introduce data leakage risks.
15
15
 
16
- All analytics must be first-party. No external tracking scripts allowed.
16
+ ### Impact
17
17
 
18
- ### Rationale
18
+ - Cannot use Google Analytics, Mixpanel, or similar third-party tracking
19
+ - All user data must stay within our own infrastructure
20
+ - Limits vendor options for analytics tools
19
21
 
20
- User privacy is a core value. Third-party scripts introduce data leakage risks.
22
+ ### Mitigation
21
23
 
22
- ### Implications
23
-
24
- - Must build or self-host analytics
25
- - No Google Analytics, Mixpanel, etc.
26
- - Server-side event tracking only` },
27
- glossary: { body: `## Product-Specific Terms
24
+ - Build or self-host analytics (e.g., PostHog self-hosted, Plausible)
25
+ - Use server-side event tracking only
26
+ - Implement privacy-first analytics architecture from the start` },
27
+ glossary: { subfolder: "glossaries", body: `## Product-Specific Terms
28
28
 
29
29
  | Term | Definition |
30
30
  |------|-----------|
@@ -32,46 +32,60 @@ User privacy is a core value. Third-party scripts introduce data leakage risks.
32
32
  | Block | A single piece of structured content |
33
33
  | Section | A category grouping related blocks |` },
34
34
  // Brand
35
- brand_positioning: { body: `## Golden Circle
35
+ brand_positioning: { subfolder: "positioning", body: `## Brand Positioning: EpicContext
36
+
37
+ **Tagline:** Context that works for everyone
36
38
 
37
- ### WHY (Purpose)
38
- We believe product teams deserve a single source of truth for all context.
39
+ ---
39
40
 
40
- ### HOW (Process)
41
- By combining structured documentation with AI-powered workflows.
41
+ ### Golden Circle (WHY -> HOW -> WHAT)
42
42
 
43
- ### WHAT (Product)
44
- A context management platform for product teams.
43
+ #### WHY - The Purpose
44
+ We believe product teams deserve a single source of truth for all context. Documentation should work for both humans and AI agents, not just collect dust in wikis.
45
45
 
46
- ## Positioning Statement
46
+ #### HOW - The Unique Approach
47
+ By combining structured documentation with AI-powered workflows. Every piece of content has a schema, a status, and can be consumed by coding agents via MCP.
47
48
 
48
- **For** product teams **who** struggle with scattered documentation, **our product** is a context management platform **that** provides a single source of truth. **Unlike** traditional wikis, **we** structure content for both humans and AI agents.
49
+ #### WHAT - The Products/Services
50
+ A context management platform for product teams that structures documentation into typed blocks, tracks completeness, and exports to multiple formats.
49
51
 
50
- ## Brand Essence
52
+ ---
51
53
 
52
- **Tagline:** Context that works for everyone
53
- **Brand Promise:** Never lose product context again` },
54
- brand_visual_identity: { body: `## Colors
54
+ ### Positioning Statement
55
+
56
+ > For **product teams who struggle with scattered documentation**,
57
+ >
58
+ > **EpicContext** is the **context management platform**
59
+ >
60
+ > that **provides a single source of truth for both humans and AI agents**
61
+ >
62
+ > unlike **traditional wikis and docs tools**,
63
+ >
64
+ > because **we structure content into typed blocks that AI coding agents can consume directly via MCP**.` },
65
+ brand_visual_identity: { subfolder: "visual-identity", body: `## Brand Visual Identity
55
66
 
56
- ### Primary Palette
67
+ ### Usage Guidelines
57
68
 
58
- | Name | Hex | Usage |
59
- |------|-----|-------|
60
- | Brand Blue | #2563EB | Primary actions, links |
61
- | Dark | #111827 | Text, headings |
62
- | Light | #F9FAFB | Backgrounds |
69
+ Use the brand blue (#2563EB) for primary actions and links. Dark (#111827) for text and headings. Light (#F9FAFB) for backgrounds.
63
70
 
64
- ## Typography
71
+ Typography: Inter for headings and body, JetBrains Mono for code. Minimum logo size is 24px height, always use SVG format.
65
72
 
66
- **Primary Font:** Inter
67
- **Heading Font:** Inter
68
- **Mono Font:** JetBrains Mono
73
+ Always maintain sufficient contrast ratios (WCAG AA minimum). Use the primary palette for UI elements and the extended palette sparingly for accents.
69
74
 
70
- ## Logo
75
+ ### Do's
71
76
 
72
- **Format:** SVG
73
- **Minimum Size:** 24px height` },
74
- brand_moodboard: { body: `## Mood & Inspiration
77
+ - Use consistent spacing (8px grid system)
78
+ - Maintain logo clear space (minimum 16px around logo)
79
+ - Use brand colors for interactive elements
80
+ - Apply the mono font for all code snippets and technical content
81
+
82
+ ### Don'ts
83
+
84
+ - Don't stretch or distort the logo
85
+ - Don't use brand blue on dark backgrounds without checking contrast
86
+ - Don't mix more than 3 typeface weights on a single page
87
+ - Don't use gradients on the logo` },
88
+ brand_moodboard: { subfolder: "moodboards", body: `## Mood & Inspiration
75
89
 
76
90
  ### Visual Direction
77
91
  Clean, modern, developer-friendly aesthetic with subtle warmth.
@@ -83,57 +97,105 @@ Clean, modern, developer-friendly aesthetic with subtle warmth.
83
97
 
84
98
  ### Color Mood
85
99
  Professional blues with warm accent colors.` },
86
- tone_of_voice: { body: `## Voice Archetype
100
+ tone_of_voice: { subfolder: "tone-of-voice", body: `### Brand Personality
87
101
 
88
- **Primary:** The Expert Guide
89
- **Secondary:** The Supportive Teammate
102
+ Expert, approachable, clear, developer-friendly, pragmatic. We sound like a knowledgeable colleague who explains things simply — not a salesperson, not a professor.
90
103
 
91
- ## Personality Traits
104
+ **Archetype:** sage
92
105
 
93
- | Trait | Scale (1-10) |
94
- |-------|-------------|
95
- | Formal Casual | 4 |
96
- | Serious Playful | 3 |
97
- | Technical Simple | 6 |
106
+ ### Tone Attributes
107
+
108
+ - Confident but not arrogant
109
+ - Technical but not jargon-heavy
110
+ - Helpful but not patronizing
111
+ - Direct but not blunt
112
+ - Professional but not corporate
113
+
114
+ ### We Are...
115
+
116
+ - Clear and concise communicators
117
+ - Respectful of the reader's time
118
+ - Honest about limitations
119
+ - Focused on practical solutions
120
+
121
+ ### We Are NOT...
122
+
123
+ - Overly casual or slangy
124
+ - Condescending or preachy
125
+ - Vague or hand-wavy
126
+ - Marketing-speak driven
127
+
128
+ ### Writing Principles
98
129
 
99
- ## Vocabulary
130
+ 1. Lead with the action — tell users what to do first
131
+ 2. Use code examples whenever possible
132
+ 3. Keep paragraphs under 3 sentences
133
+ 4. Use bullet points for lists of 3+ items
134
+ 5. Write in second person ("you") not third person
100
135
 
101
- ### Preferred Terms
136
+ ### Vocabulary
137
+ **Words We Use:**
102
138
  - "workspace" not "organization"
103
139
  - "block" not "document"
104
140
  - "sync" not "upload"
141
+ - "context" not "documentation"
105
142
 
106
- ### Avoid
143
+ **Words We Avoid:**
107
144
  - Jargon without explanation
108
145
  - Passive voice
109
- - Marketing buzzwords` },
110
- messaging_framework: { body: `## Elevator Pitch
146
+ - Marketing buzzwords ("revolutionary", "game-changing")
147
+ - Filler words ("basically", "simply", "just")
111
148
 
112
- A context management platform that gives product teams a single source of truth — structured for both humans and AI agents.
149
+ ### Examples
150
+ **Good Example:**
151
+ Export your project context as markdown. Your AI coding agent reads it directly — no copy-pasting needed.
113
152
 
114
- ## Value Propositions
153
+ **Bad Example:**
154
+ Our revolutionary platform seamlessly enables teams to leverage cutting-edge AI-powered documentation synergies.
115
155
 
116
- ### For Developers
117
- Write code with full product context. AI agents read structured docs, not scattered wikis.
156
+ ### Grammar & Style
118
157
 
119
- ### For Product Managers
120
- Track documentation completeness across every section. Know what's missing at a glance.
158
+ - Use sentence case for headings (not Title Case)
159
+ - Oxford comma always
160
+ - Use em dashes (—) not double hyphens
161
+ - Contractions are fine (don't, can't, you'll)
162
+ - American English spelling` },
163
+ messaging_framework: { subfolder: "messaging", body: `### Elevator Pitch
121
164
 
122
- ## Key Messages
165
+ A context management platform that gives product teams a single source of truth — structured for both humans and AI agents. Write once, consume everywhere.
166
+
167
+ ### Value Propositions
168
+
169
+ - **For Developers:** Write code with full product context. AI agents read structured docs, not scattered wikis.
170
+ - **For Product Managers:** Track documentation completeness across every section. Know what's missing at a glance.
171
+ - **For Teams:** One place for brand, product, technical, and user documentation. Always up to date.
172
+
173
+ ### Key Messages
123
174
 
124
175
  | Audience | Message |
125
176
  |----------|---------|
126
177
  | Developers | "Your AI coding assistant finally has context" |
127
- | Product Managers | "See documentation gaps before they become problems" |` },
178
+ | Product Managers | "See documentation gaps before they become problems" |
179
+ | Leadership | "Product documentation that actually gets maintained" |
180
+
181
+ ### Calls to Action
182
+
183
+ - Primary: "Start for free"
184
+ - Secondary: "See how it works"
185
+ - Developer: "Try the MCP integration"
186
+
187
+ ### Boilerplate
188
+
189
+ EpicContext is a context management platform for product teams. It structures documentation into typed blocks that are consumed by both humans and AI agents. Teams use EpicContext to keep product context complete, consistent, and accessible.` },
128
190
  // Product
129
- product_overview: { frontmatterLinks: `personas_ref: # Who this product is for
130
- - _example-persona
191
+ product_overview: { subfolder: "overviews", frontmatterLinks: `personas_ref: # Who this product is for
192
+ - example-persona
131
193
  features_ref: # Key features
132
- - _example-feature
194
+ - example-feature
133
195
  epics_ref: # Development epics
134
- - _example-epic
196
+ - example-epic
135
197
  links: # Universal links
136
- - target: _example-competitor
198
+ - target: example-competitor
137
199
  label: inspired_by`, body: `### Vision
138
200
  Become the standard way product teams manage context for both humans and AI.
139
201
 
@@ -147,30 +209,31 @@ Product teams scatter context across wikis, docs, Slack, and spreadsheets. AI ag
147
209
  - Product managers tracking documentation completeness
148
210
  - Developers who need product context while coding
149
211
  - AI coding agents that consume structured documentation` },
150
- feature: { subfolder: "features", frontmatterLinks: `product_ref: _example-product-overview # Link to parent product
212
+ feature: { subfolder: "features", frontmatterLinks: `product_ref: example-product-overview # Link to parent product
151
213
  personas_ref: # Who benefits from this feature
152
- - _example-persona
214
+ - example-persona
153
215
  links: # Universal links
154
- - target: _example-user-story
216
+ - target: example-user-story
155
217
  label: relates_to
156
- - target: _example-competitor
218
+ - target: example-competitor
157
219
  label: inspired_by`, body: `## Smart Notifications
158
220
 
221
+ Intelligent notification system that only alerts users about changes relevant to their role and current work.
222
+
159
223
  **Priority:** high
160
224
  **Status:** planned
161
225
 
162
- ### Description
163
- Intelligent notification system that only alerts users about changes relevant to their role and current work.
164
-
165
226
  ### User Story
227
+
166
228
  As a developer, I want to be notified only about changes to blocks I'm working on, so I'm not overwhelmed by noise.
167
229
 
168
230
  ### Acceptance Criteria
231
+
169
232
  - [ ] Users can set notification preferences per section
170
233
  - [ ] AI determines relevance based on recent activity
171
234
  - [ ] Daily digest option available
172
235
  - [ ] Mute specific blocks` },
173
- product_strategy_canvas: { body: `## Product Strategy Canvas
236
+ product_strategy_canvas: { subfolder: "strategy", body: `## Product Strategy Canvas
174
237
 
175
238
  ### Target Customer
176
239
  Small-to-medium product teams (5-50 people) using multiple tools for documentation.
@@ -186,7 +249,7 @@ The only documentation platform designed for both humans AND AI agents.
186
249
 
187
250
  ### Competitive Advantage
188
251
  AI-native format, MCP integration, structured schemas for every content type.` },
189
- feature_market_analysis: { body: `## AI-Assisted Documentation
252
+ feature_market_analysis: { subfolder: "market-analysis", body: `## AI-Assisted Documentation
190
253
 
191
254
  ### Market Opportunity
192
255
  Growing demand for AI-integrated development tools. 68% of teams want AI help with documentation.
@@ -198,131 +261,213 @@ No current tool combines structured documentation with MCP-based AI agent integr
198
261
  First-mover advantage in structured context for AI coding agents.` },
199
262
  // Users
200
263
  persona: { subfolder: "personas", frontmatterLinks: `jtbds_ref: # What jobs this persona has
201
- - _example-jtbd
264
+ - example-jtbd
202
265
  journeys_ref: # Journey maps for this persona
203
- - _example-journey-map
266
+ - example-journey-map
204
267
  links: # Universal links
205
- - target: _example-product-overview
268
+ - target: example-product-overview
206
269
  label: relates_to
207
- - target: _example-user-story
270
+ - target: example-user-story
208
271
  label: relates_to`, body: `> "I need one place where all product context lives."
209
272
 
210
- ## Demographics
273
+ **Role:** Product Manager
274
+ **Primary Persona:** Yes
275
+ **Tech Comfort:** intermediate
276
+
277
+ ## Profile
278
+
279
+ **Age:** 28-40
280
+ **Education:** Bachelor's in Business/Tech
281
+ **Location:** Urban, remote-first company
282
+ **Occupation:** Product Manager at SaaS startup
283
+
284
+ ## Motivations
211
285
 
212
- | Attribute | Value |
213
- |-----------|-------|
214
- | Role | Product Manager |
215
- | Age | 28-40 |
216
- | Experience | 3-8 years |
217
- | Team Size | 5-20 |
286
+ - Wants the team to ship faster with fewer miscommunications
287
+ - Values clarity and completeness over perfection
288
+ - Motivated by reducing "knowledge gaps" in the team
218
289
 
219
290
  ## Goals
291
+
220
292
  - Keep documentation complete and up-to-date
221
- - Give developers the context they need
293
+ - Give developers the context they need without meetings
222
294
  - Track what's documented and what's missing
223
295
 
224
- ## Frustrations
225
- - Documentation scattered across tools
226
- - Can't tell what's outdated
296
+ ## Pain Points
297
+
298
+ - Documentation scattered across Confluence, Google Docs, and Slack
299
+ - Can't tell what's outdated or incomplete
227
300
  - Developers ask the same questions repeatedly
301
+ - No single source of truth for product context
228
302
 
229
303
  ## Behaviors
304
+
230
305
  - Checks documentation status weekly
231
306
  - Creates user stories with acceptance criteria
232
- - Reviews AI-generated summaries` },
233
- jtbd: { subfolder: "jobs-to-be-done", frontmatterLinks: `persona_ref: _example-persona # Who has this job
307
+ - Reviews AI-generated summaries
308
+
309
+ ### Tools
310
+ Notion, Linear, Figma, Slack, Google Docs
311
+
312
+ ## Jobs to Be Done
313
+
314
+ - When onboarding a new team member, I want to point them to one place with all context, so they ramp up quickly
315
+ - When planning a sprint, I want to see what documentation is missing, so nothing blocks development` },
316
+ jtbd: { subfolder: "jobs-to-be-done", frontmatterLinks: `persona_ref: example-persona # Who has this job
234
317
  links: # Universal links
235
- - target: _example-user-story
318
+ - target: example-user-story
236
319
  label: relates_to
237
- - target: _example-feature
320
+ - target: example-feature
238
321
  label: relates_to`, body: `## Keep Product Context Accessible
239
322
 
240
323
  ### Job Statement
324
+
241
325
  When I'm onboarding a new team member, I want to point them to one place with all product context, so they can ramp up quickly without asking everyone questions.
242
326
 
243
- ### Functional Job
244
- - Find all product documentation in one place
245
- - Verify documentation is complete and current
246
- - Share context with new team members
327
+ ### Situation
328
+
329
+ A new developer joins the team and needs to understand the product vision, technical stack, brand guidelines, and current priorities. Information is scattered across Confluence, Google Docs, Slack messages, and tribal knowledge.
330
+
331
+ ### Motivation
332
+
333
+ - Feel confident the team has what they need to be productive
334
+ - Reduce anxiety about knowledge gaps across the organization
335
+ - Minimize repetitive questions from new hires
336
+ - Get new team members contributing code faster
247
337
 
248
- ### Emotional Job
249
- - Feel confident the team has what they need
250
- - Reduce anxiety about knowledge gaps
338
+ ### Desired Outcome
251
339
 
252
- ### Current Solutions
253
- - Confluence wiki (messy, outdated)
254
- - Google Docs (scattered, hard to find)
255
- - Tribal knowledge (risky, doesn't scale)` },
256
- journey_map: { subfolder: "journey-maps", frontmatterLinks: `persona_ref: _example-persona # REQUIRED: Whose journey is this?
340
+ - New team members can self-serve all product context from one place
341
+ - Documentation is always current and complete
342
+ - Onboarding time is reduced from weeks to days
343
+ - Fewer interruptions to existing team members` },
344
+ journey_map: { subfolder: "journey-maps", frontmatterLinks: `persona_ref: example-persona # REQUIRED: Whose journey is this?
257
345
  links: # Universal links
258
- - target: _example-feature
346
+ - target: example-feature
259
347
  label: relates_to
260
- - target: _example-user-story
348
+ - target: example-user-story
261
349
  label: implements`, body: `## New User Onboarding Journey
262
350
 
263
- **Persona:** primary-user
264
-
265
- ### Stages
266
-
267
- #### 1. Discovery
268
- **Touchpoints:** Landing page, blog post
269
- **Actions:** Reads about the product, watches demo
270
- **Emotions:** Curious, skeptical
271
- **Pain Points:** "Will this be another tool that gets abandoned?"
272
-
273
- #### 2. Sign Up
274
- **Touchpoints:** Registration form, email verification
275
- **Actions:** Creates account, verifies email
276
- **Emotions:** Hopeful, impatient
277
- **Pain Points:** "I hope this is quick to set up"
278
-
279
- #### 3. First Use
280
- **Touchpoints:** Dashboard, guided tour
281
- **Actions:** Creates first project, explores sections
282
- **Emotions:** Engaged, slightly overwhelmed
283
- **Pain Points:** "Where do I start?"
284
-
285
- #### 4. Ongoing Use
286
- **Touchpoints:** Editor, export API
287
- **Actions:** Fills in blocks, syncs with AI tools
288
- **Emotions:** Productive, satisfied
289
- **Pain Points:** "Need better collaboration features"` },
351
+ User discovers the platform, signs up, and completes their first project setup.
352
+
353
+ **Persona:** example-persona
354
+ **Variant:** as-is
355
+ **Trigger:** User hears about the product from a colleague or finds it via search
356
+
357
+ ## Phases
358
+
359
+ 1. Discovery
360
+ 2. Sign Up
361
+ 3. First Use
362
+
363
+ ## Steps
364
+
365
+ ### Step 1: Finds the product
366
+ **Phase:** Discovery
367
+ **Actions:**
368
+ - Touchpoint: Search engine, colleague recommendation
369
+
370
+ **Experience:**
371
+ - activity: Curious about whether this solves their documentation problem
372
+
373
+ **Insights:**
374
+ - Landing page must immediately communicate the value proposition
375
+
376
+ ### Step 2: Browses landing page
377
+ **Phase:** Discovery
378
+ **Actions:**
379
+ - Touchpoint: Landing page, feature overview
380
+
381
+ **Experience:**
382
+ - activity: Evaluating if this is worth trying
383
+ - need: Wants to see how it works before committing
384
+
385
+ ### Step 3: Creates account
386
+ **Phase:** Sign Up
387
+ **Actions:**
388
+ - Touchpoint: Registration form, email verification
389
+
390
+ **Experience:**
391
+ - pain: Registration asks for too much information upfront (impact: -2)
392
+ - activity: Hopeful but impatient
393
+
394
+ **Insights:**
395
+ - Minimize required fields; collect additional info later
396
+
397
+ ### Step 4: First project setup
398
+ **Phase:** First Use
399
+ **Actions:**
400
+ - Touchpoint: Dashboard, project creation wizard
401
+
402
+ **Experience:**
403
+ - pain: Unclear where to start — too many empty sections (impact: -2)
404
+ - gain: Templates pre-fill common sections (impact: +2)
405
+
406
+ **Insights:**
407
+ - Guided onboarding tour should highlight the 3 most important sections first
408
+
409
+ ### Step 5: Fills in first blocks
410
+ **Phase:** First Use
411
+ **Actions:**
412
+ - Touchpoint: Block editor, section view
413
+
414
+ **Experience:**
415
+ - gain: Auto-save makes editing feel safe (impact: +1)
416
+ - activity: Starting to see the value
417
+
418
+ ### Success Outcome
419
+
420
+ User has a project with at least 3 sections partially filled and understands the block-based structure.
421
+
422
+ ### Key Insights
423
+
424
+ - Reduce sign-up friction by asking only email and password initially
425
+ - Provide a "quick start" template that pre-fills common sections
426
+ - Show progress percentage early to create momentum` },
290
427
  // Research
291
428
  competitor: { subfolder: "competitors", frontmatterLinks: `links: # Universal links to blocks this competitor analysis informs
292
- - target: _example-feature
429
+ - target: example-feature
293
430
  label: informs
294
- - target: _example-product-overview
431
+ - target: example-product-overview
295
432
  label: informs
296
- - target: _example-decision
433
+ - target: example-decision
297
434
  label: references`, body: `## Linear
298
435
 
299
436
  **Website:** https://linear.app
300
- **Category:** Project Management
437
+ **Tagline:** Linear is a better way to build software
438
+ **Threat Level:** medium
301
439
 
302
- ### Description
303
- Modern project management tool for software teams with fast UI and keyboard shortcuts.
304
-
305
- ### Target Market
306
- Software development teams, startups to mid-market.
307
-
308
- ### Pricing
309
- Free for small teams, $8/user/month for standard.
440
+ Modern project management tool for software teams with fast UI and keyboard shortcuts. Strong in issue tracking and sprint planning, but lacks documentation and AI agent features.
310
441
 
311
442
  ### Strengths
443
+
312
444
  - Extremely fast and polished UI
313
- - Great keyboard navigation
314
- - GitHub integration
445
+ - Great keyboard navigation and shortcuts
446
+ - Tight GitHub integration
447
+ - Clean, focused design
315
448
 
316
449
  ### Weaknesses
317
- - Limited documentation features
318
- - No AI agent integration
319
- - No structured content export
450
+
451
+ - Limited documentation features — no structured content
452
+ - No AI agent integration or MCP support
453
+ - No content export for AI consumption
454
+ - Focused on issue tracking, not product context
455
+
456
+ ### Pricing
457
+
458
+ Free for small teams, $8/user/month for standard, $14/user/month for plus.
459
+
460
+ ### Target Market
461
+
462
+ Software development teams at startups to mid-market (10-200 people). Engineering-led organizations that value speed and keyboard-driven workflows.
320
463
 
321
464
  ### Our Differentiators
465
+
322
466
  - Structured documentation, not just task tracking
323
- - AI-native MCP integration
324
- - Content consumable by coding agents` },
325
- user_research: { body: `## User Research Interviews Q1
467
+ - AI-native MCP integration for coding agents
468
+ - Content consumable by both humans and AI
469
+ - Full product context, not just development tasks` },
470
+ user_research: { subfolder: "user-research", body: `## User Research Interviews Q1
326
471
 
327
472
  ### Methodology
328
473
  - 12 semi-structured interviews (45 min each)
@@ -359,7 +504,7 @@ Free for small teams, $8/user/month for standard.
359
504
 
360
505
  The developer documentation tool market is growing at 13% CAGR. Key growth driver is AI integration demand.` },
361
506
  // Technical
362
- tech_stack: { body: `## Technology Stack
507
+ tech_stack: { subfolder: "stacks", body: `## Technology Stack
363
508
 
364
509
  ### Frontend
365
510
  | Technology | Purpose | Version |
@@ -380,7 +525,7 @@ The developer documentation tool market is growing at 13% CAGR. Key growth drive
380
525
  |-----------|---------|
381
526
  | Vercel | Hosting |
382
527
  | GitHub Actions | CI/CD |` },
383
- architecture_diagram: { body: `## System Architecture
528
+ architecture_diagram: { subfolder: "architecture", body: `## System Architecture
384
529
 
385
530
  **Level:** container
386
531
  **Notation:** C4
@@ -398,30 +543,29 @@ High-level system architecture showing main containers and their interactions.
398
543
  [API] --> [Database]
399
544
  \`\`\`` },
400
545
  integration: { subfolder: "integrations", frontmatterLinks: `decisions_ref: # Decisions related to this integration
401
- - _example-decision
546
+ - example-decision
402
547
  links: # Universal links
403
- - target: _example-task
548
+ - target: example-task
404
549
  label: relates_to
405
- - target: _example-epic
550
+ - target: example-epic
406
551
  label: relates_to`, body: `## GitHub Integration
407
552
 
408
- **Provider:** GitHub
409
553
  **Type:** oauth
410
554
  **Status:** planned
411
555
 
412
- ### Purpose
413
- Connect GitHub repositories to sync PRs, issues, and code context.
556
+ Connect GitHub repositories to sync PRs, issues, and code context with project blocks.
557
+
558
+ **Documentation:** https://docs.github.com/en/rest
559
+ **Credentials:** Stored in environment variable GITHUB_TOKEN
414
560
 
415
- ### API Details
416
- **Base URL:** https://api.github.com
417
- **Auth Method:** OAuth 2.0
418
- **Rate Limit:** 5000 requests/hour
561
+ ### Notes
419
562
 
420
- ### Data Flow
421
- 1. User connects GitHub account via OAuth
422
- 2. App reads repository metadata
423
- 3. PRs are linked to relevant blocks` },
424
- dev_setup: { body: `## Local Development Setup
563
+ - Uses OAuth 2.0 for user authentication
564
+ - Base URL: https://api.github.com
565
+ - Rate limit: 5000 requests/hour (authenticated)
566
+ - User connects GitHub account, app reads repository metadata
567
+ - PRs and issues are linked to relevant blocks automatically` },
568
+ dev_setup: { subfolder: "setup", body: `## Local Development Setup
425
569
 
426
570
  ### Prerequisites
427
571
  - Node.js 20+
@@ -464,7 +608,7 @@ List all blocks for a project, optionally filtered by section.
464
608
  ]
465
609
  }
466
610
  \`\`\`` },
467
- api_spec: { body: `## API Specification
611
+ api_spec: { subfolder: "api-specs", body: `## API Specification
468
612
 
469
613
  **Version:** v1
470
614
  **Base URL:** /api/v1
@@ -493,7 +637,7 @@ All endpoints require an API key passed in the X-API-Key header.` },
493
637
  ### Indexes
494
638
  - Unique: (section_id, key)
495
639
  - Index: status` },
496
- data_schema: { body: `## Database Schema
640
+ data_schema: { subfolder: "schemas", body: `## Database Schema
497
641
 
498
642
  ### Overview
499
643
  PostgreSQL database with JSONB content storage for flexible block schemas.
@@ -509,7 +653,7 @@ PostgreSQL database with JSONB content storage for flexible block schemas.
509
653
  - JSONB for block values (flexible schema per type)
510
654
  - UUID primary keys
511
655
  - Row Level Security via Supabase` },
512
- testing_strategy: { body: `## Testing Strategy
656
+ testing_strategy: { subfolder: "testing", body: `## Testing Strategy
513
657
 
514
658
  ### Philosophy
515
659
  Test behavior, not implementation. Focus on user-facing functionality.
@@ -525,7 +669,7 @@ Test behavior, not implementation. Focus on user-facing functionality.
525
669
  - API endpoint responses
526
670
  - Block CRUD operations
527
671
  - Export format correctness` },
528
- cost_calculator: { body: `## Infrastructure Costs
672
+ cost_calculator: { subfolder: "costs", body: `## Infrastructure Costs
529
673
 
530
674
  ### Monthly Breakdown
531
675
  | Service | Tier | Monthly Cost |
@@ -542,7 +686,7 @@ Test behavior, not implementation. Focus on user-facing functionality.
542
686
  | 1,000 | $150 |
543
687
  | 10,000 | $500 |` },
544
688
  // Design System
545
- storybook_link: { body: `## Component Library
689
+ storybook_link: { subfolder: "storybook", body: `## Component Library
546
690
 
547
691
  **Storybook URL:** https://storybook.example.com
548
692
  **Repository:** https://github.com/org/design-system
@@ -554,7 +698,7 @@ Test behavior, not implementation. Focus on user-facing functionality.
554
698
 
555
699
  ### Access
556
700
  Requires EpicContext authentication token.` },
557
- figma_embed: { body: `## Main Design File
701
+ figma_embed: { subfolder: "figma", body: `## Main Design File
558
702
 
559
703
  **Figma URL:** https://figma.com/file/example
560
704
  **Last Updated:** 2025-01-15
@@ -567,7 +711,7 @@ Requires EpicContext authentication token.` },
567
711
  ### Handoff Notes
568
712
  Use Auto Layout for all new components. Follow 8px grid.` },
569
713
  // Information Architecture
570
- ia_tree: { body: `## Application Structure
714
+ ia_tree: { subfolder: "trees", body: `## Application Structure
571
715
 
572
716
  ### Description
573
717
  Main navigation hierarchy for the web application.
@@ -601,7 +745,7 @@ Home
601
745
  - status: draft, complete, empty
602
746
  - audience: developer, designer, manager` },
603
747
  // Metrics
604
- metric: { body: `## Weekly Active Users
748
+ metric: { subfolder: "indicators", body: `## Weekly Active Users
605
749
 
606
750
  **Metric Type:** kpi
607
751
  **Category:** activation
@@ -617,7 +761,7 @@ Count distinct user IDs with any event in the last 7 days.
617
761
 
618
762
  ### Cadence
619
763
  Measured weekly, reported in Monday standup.` },
620
- north_star: { body: `## Blocks Completed Per Week
764
+ north_star: { subfolder: "north-stars", body: `## Blocks Completed Per Week
621
765
 
622
766
  **Metric Type:** north_star
623
767
  **Category:** activation
@@ -630,7 +774,7 @@ Total blocks marked as "complete" across all projects per week.
630
774
 
631
775
  ### Why This Metric
632
776
  Blocks completed = documentation being actively maintained = product delivering value.` },
633
- kpi: { body: `## Documentation Completeness
777
+ kpi: { subfolder: "kpis", body: `## Documentation Completeness
634
778
 
635
779
  **Metric Type:** kpi
636
780
  **Category:** activation
@@ -640,7 +784,7 @@ Blocks completed = documentation being actively maintained = product delivering
640
784
 
641
785
  ### Description
642
786
  Percentage of blocks with status "complete" across all sections.` },
643
- analytics_event: { body: `## block_completed
787
+ analytics_event: { subfolder: "events", body: `## block_completed
644
788
 
645
789
  **Category:** activation
646
790
  **Trigger:** User marks a block as complete
@@ -652,129 +796,169 @@ Percentage of blocks with status "complete" across all sections.` },
652
796
  | section | string | Section the block belongs to |
653
797
  | time_to_complete | number | Seconds from creation to completion |` },
654
798
  // Decisions
655
- decision: { frontmatterLinks: `epics_ref: # Epics affected by this decision
656
- - _example-epic
799
+ decision: { subfolder: "adrs", frontmatterLinks: `epics_ref: # Epics affected by this decision
800
+ - example-epic
657
801
  integrations_ref: # Integrations related to this decision
658
- - _example-integration
802
+ - example-integration
659
803
  links: # Universal links
660
- - target: _example-feature
804
+ - target: example-feature
661
805
  label: informs
662
- - target: _example-competitor
806
+ - target: example-competitor
663
807
  label: references`, body: `## Use Supabase for Database
664
808
 
665
- **Status:** accepted
666
809
  **Date:** 2025-01-15
667
- **Deciders:** Engineering team
810
+ **Status:** accepted
668
811
 
669
812
  ### Context
670
- Need a database solution that supports real-time, authentication, and JSONB storage.
813
+
814
+ Need a database solution that supports real-time subscriptions, built-in authentication, and JSONB storage for flexible block schemas.
671
815
 
672
816
  ### Options Considered
673
817
 
674
818
  #### Option 1: Supabase
675
- - **Pros:** Built-in auth, real-time, PostgreSQL, generous free tier
676
- - **Cons:** Vendor lock-in, limited customization
819
+ - **Pros:** Built-in auth, real-time, PostgreSQL, generous free tier, Row Level Security
820
+ - **Cons:** Vendor lock-in, limited customization of auth flows
677
821
 
678
822
  #### Option 2: PlanetScale
679
- - **Pros:** MySQL, great scaling
680
- - **Cons:** No JSONB support, separate auth needed
823
+ - **Pros:** MySQL, great scaling, branching workflow
824
+ - **Cons:** No JSONB support, separate auth needed, no real-time
681
825
 
682
826
  ### Decision
827
+
683
828
  Choose Supabase for its combination of PostgreSQL, built-in auth, and real-time capabilities.
684
829
 
830
+ ### Rationale
831
+
832
+ Supabase gives us PostgreSQL (needed for JSONB block storage), built-in auth (saves months of development), and real-time subscriptions (for collaborative editing). The trade-off of vendor lock-in is acceptable at our scale.
833
+
685
834
  ### Consequences
835
+
686
836
  - Committed to PostgreSQL ecosystem
687
- - Use Row Level Security for authorization
688
- - Real-time updates available for free` },
689
- meeting_notes: { body: `## Sprint Planning - Week 12
837
+ - Use Row Level Security for authorization instead of custom middleware
838
+ - Real-time updates available out of the box
839
+ - Migration path exists to self-hosted Supabase if needed
840
+
841
+ ### Evidence
842
+
843
+ - Supabase benchmarks show sub-50ms query times for our expected load
844
+ - Three comparable SaaS products successfully use Supabase at 10x our scale` },
845
+ meeting_notes: { subfolder: "meetings", body: `## Sprint Planning - Week 12
690
846
 
691
847
  **Date:** 2025-03-15
848
+ **Type:** sprint_planning
692
849
  **Attendees:** Engineering team
693
850
 
694
- ### Discussion Points
695
- 1. Review of completed work from last sprint
696
- 2. Prioritization of upcoming features
697
- 3. Technical debt items
851
+ ### Meeting Transcript
852
+
853
+ 1. Reviewed completed work from last sprint — export API is 80% done
854
+ 2. Discussed prioritization of upcoming features
855
+ 3. Identified technical debt items: markdown parser edge cases, test coverage gaps
856
+ 4. Agreed on sprint goals for next two weeks
698
857
 
699
858
  ### Decisions Made
700
- - Prioritize export API for next sprint
859
+
860
+ - Prioritize export API completion for next sprint
701
861
  - Defer dark mode to Q2
862
+ - Allocate 20% of sprint to technical debt
702
863
 
703
- ### Action Items
704
- - [ ] Create export API epic
705
- - [ ] Update roadmap` },
864
+ ### Summary & Action Items
865
+
866
+ Sprint focus is completing the export system. Key actions:
867
+ - [ ] Create export API epic with remaining tasks
868
+ - [ ] Update roadmap to reflect Q2 dark mode timeline
869
+ - [ ] Schedule design review for export UI` },
706
870
  // Development
707
- epic: { subfolder: "epics", frontmatterLinks: `product_ref: _example-product-overview # Link to parent product
871
+ epic: { subfolder: "epics", frontmatterLinks: `product_ref: example-product-overview # Link to parent product
708
872
  stories_ref: # List user stories in this epic
709
- - _example-user-story
873
+ - example-user-story
710
874
  links: # Universal links to related blocks across sections
711
- - target: _example-persona
875
+ - target: example-persona
712
876
  label: relates_to
713
- - target: _example-decision
877
+ - target: example-decision
714
878
  label: implements`, body: `## Context Export System
715
879
 
880
+ Enable teams to export their entire product context in multiple formats for AI agent consumption.
881
+
716
882
  **Priority:** high
717
883
  **Status:** planned
718
- **Estimated Effort:** 3 sprints
719
884
 
720
- ### Goal
721
- Enable teams to export their entire product context in multiple formats for AI agent consumption.
885
+ ### Goals
722
886
 
723
- ### Scope
724
- - Markdown export (full project)
725
- - llms.txt format
726
- - JSON API endpoint
727
- - MCP server integration
887
+ - Support markdown, llms.txt, and JSON export formats
888
+ - Enable AI coding agents to consume project context via MCP
889
+ - Provide both full-project and per-section exports
728
890
 
729
891
  ### Success Criteria
730
- - [ ] Export generates valid markdown
731
- - [ ] AI agents can consume exported context
732
- - [ ] Export updates automatically on content change` },
733
- user_story: { subfolder: "stories", frontmatterLinks: `epic_ref: _example-epic # REQUIRED: Link to parent epic
892
+
893
+ - [ ] Export generates valid markdown with correct frontmatter
894
+ - [ ] AI agents can consume exported context via MCP server
895
+ - [ ] Export updates automatically when content changes
896
+ - [ ] Per-section export available for focused context` },
897
+ user_story: { subfolder: "stories", frontmatterLinks: `epic_ref: example-epic # REQUIRED: Link to parent epic
734
898
  personas_ref: # Who this story is for
735
- - _example-persona
899
+ - example-persona
736
900
  links: # Universal links to related blocks
737
- - target: _example-feature
901
+ - target: example-feature
738
902
  label: implements
739
- - target: _example-jtbd
903
+ - target: example-jtbd
740
904
  label: relates_to`, body: `## Export Context as Markdown
741
905
 
906
+ Enable developers to export project context so AI coding agents can consume it.
907
+
742
908
  **Priority:** high
743
909
  **Status:** planned
744
- **Story Points:** 5
745
910
 
746
911
  ### User Story
747
- As a developer, I want to export my project context as markdown, so my AI coding agent can read it.
912
+
913
+ As a developer, I want to export my project context as markdown, so my AI coding agent can read it as structured documentation.
748
914
 
749
915
  ### Acceptance Criteria
916
+
750
917
  - [ ] Export button on project settings page
751
- - [ ] Generates valid markdown with frontmatter
752
- - [ ] Includes all sections and blocks
753
- - [ ] Downloads as .zip file` },
754
- task: { subfolder: "tasks", frontmatterLinks: `story_ref: _example-user-story # REQUIRED: Link to parent user story
918
+ - [ ] Generates valid markdown with YAML frontmatter
919
+ - [ ] Includes all sections and blocks grouped by section
920
+ - [ ] Downloads as .zip file with proper folder structure` },
921
+ task: { subfolder: "tasks", frontmatterLinks: `story_ref: example-user-story # REQUIRED: Link to parent user story
755
922
  links: # Universal links to related blocks
756
- - target: _example-integration
923
+ - target: example-integration
757
924
  label: depends_on
758
- - target: _example-decision
925
+ - target: example-decision
759
926
  label: implements`, body: `## Implement Markdown Export API
760
927
 
761
- **Priority:** high
928
+ Create a GET endpoint at /api/projects/[id]/markdown that generates a full markdown export of all project blocks.
929
+
762
930
  **Status:** planned
763
931
  **Estimated Hours:** 8
932
+ **Assignee:** backend-team
764
933
 
765
- ### Description
766
- Create a GET endpoint at /api/projects/[id]/markdown that generates a full markdown export of all project blocks.
934
+ ### Implementation Plan
767
935
 
768
- ### Technical Approach
769
- 1. Query all blocks for project
770
- 2. Group by section
771
- 3. Apply markdown templates per block type
772
- 4. Return as downloadable zip
936
+ 1. Query all blocks for the project from database
937
+ 2. Group blocks by section type
938
+ 3. Apply markdown templates per block type from block-type-masters
939
+ 4. Generate YAML frontmatter for each block
940
+ 5. Bundle into downloadable zip with correct folder structure
941
+ 6. Add caching to avoid regenerating unchanged blocks
773
942
 
774
- ### Files to Modify
775
- - \`lib/export/to-markdown.ts\`
776
- - \`app/api/projects/[projectId]/markdown/route.ts\`` },
777
- roadmap: { body: `## Q1 2025 Roadmap
943
+ ### Technical Notes
944
+
945
+ Use the existing \`to-markdown.ts\` export functions. The markdown template is defined in each block type master's \`markdown.template\` field.
946
+
947
+ ### Files Affected
948
+
949
+ - \`lib/export/to-markdown.ts\` — add zip bundling
950
+ - \`app/api/projects/[projectId]/markdown/route.ts\` — new endpoint
951
+ - \`lib/export/to-multi-file.ts\` — folder structure mapping
952
+
953
+ ### Dependencies
954
+
955
+ - Block type masters must have markdown templates for all types
956
+ - Export auth middleware must be in place
957
+
958
+ ### Outcome
959
+
960
+ Working GET endpoint that returns a zip file containing all project blocks as markdown files, organized by section.` },
961
+ roadmap: { subfolder: "roadmaps", body: `## Q1 2025 Roadmap
778
962
 
779
963
  **Planning Horizon:** quarterly
780
964
 
@@ -794,7 +978,7 @@ Create a GET endpoint at /api/projects/[id]/markdown that generates a full markd
794
978
  - Team invites
795
979
  - Activity log
796
980
  - Comments` },
797
- impact_effort_matrix: { body: `## Product Prioritization Matrix
981
+ impact_effort_matrix: { subfolder: "matrices", body: `## Product Prioritization Matrix
798
982
 
799
983
  ### High Impact / Low Effort
800
984
  - Smart notifications
@@ -813,7 +997,7 @@ Create a GET endpoint at /api/projects/[id]/markdown that generates a full markd
813
997
  ### Low Impact / High Effort
814
998
  - Offline support
815
999
  - Video embeds` },
816
- kanban_board: { body: `## Sprint Board
1000
+ kanban_board: { subfolder: "boards", body: `## Sprint Board
817
1001
 
818
1002
  ### Backlog
819
1003
  - Implement search
@@ -830,7 +1014,7 @@ Create a GET endpoint at /api/projects/[id]/markdown that generates a full markd
830
1014
  - Project creation
831
1015
  - Section navigation` },
832
1016
  // Business Strategy
833
- ogsm: { body: `## Annual OGSM
1017
+ ogsm: { subfolder: "ogsm", body: `## Annual OGSM
834
1018
 
835
1019
  ### Objective
836
1020
  Become the leading context management platform for product teams.
@@ -851,7 +1035,7 @@ Become the leading context management platform for product teams.
851
1035
  - Weekly active users growth rate
852
1036
  - Conversion from free to paid
853
1037
  - Feature adoption rate` },
854
- business_model_canvas: { body: `## Business Model Canvas
1038
+ business_model_canvas: { subfolder: "canvases", body: `## Business Model Canvas
855
1039
 
856
1040
  ### Key Partners
857
1041
  - AI tool providers (Anthropic, OpenAI)
@@ -873,28 +1057,43 @@ Become the leading context management platform for product teams.
873
1057
  ### Revenue Streams
874
1058
  - SaaS subscription ($10-25/user/month)
875
1059
  - Enterprise tier` },
876
- swot_analysis: { body: `## SWOT Analysis
1060
+ swot_analysis: { subfolder: "swot", body: `## SWOT Analysis
877
1061
 
878
- ### Strengths
879
- - First-mover in AI-native documentation
880
- - Strong technical foundation
881
- - MCP integration
1062
+ ### Strengths (Internal, Helpful)
882
1063
 
883
- ### Weaknesses
884
- - Small team
885
- - No brand recognition yet
886
- - Limited funding
1064
+ - First-mover in AI-native documentation space
1065
+ - Strong technical foundation with MCP integration
1066
+ - Structured block-based approach is unique in the market
1067
+ - Developer-friendly CLI and API
887
1068
 
888
- ### Opportunities
889
- - Growing AI tool adoption
890
- - Developer tool market expanding
891
- - Remote work driving documentation needs
1069
+ ### Weaknesses (Internal, Harmful)
892
1070
 
893
- ### Threats
894
- - Large players (Notion, Confluence) adding AI
895
- - New entrants with similar vision
896
- - Market downturn reducing tool budgets` },
897
- porters_five_forces: { body: `## Porter's Five Forces Analysis
1071
+ - Small team with limited bandwidth
1072
+ - No brand recognition yet in the market
1073
+ - Limited funding constrains marketing and hiring
1074
+ - Documentation of our own product is still incomplete
1075
+
1076
+ ### Opportunities (External, Helpful)
1077
+
1078
+ - Growing AI tool adoption across development teams
1079
+ - Developer tool market expanding rapidly
1080
+ - Remote work driving documentation and context-sharing needs
1081
+ - MCP becoming a standard protocol for AI agent integrations
1082
+
1083
+ ### Threats (External, Harmful)
1084
+
1085
+ - Large players (Notion, Confluence) adding AI features
1086
+ - New entrants with similar structured documentation vision
1087
+ - Market downturn reducing tool budgets at startups
1088
+ - Open-source alternatives could commoditize core features
1089
+
1090
+ ### Key Action Items
1091
+
1092
+ - Double down on MCP integration as key differentiator
1093
+ - Build community around the open-source CLI before competitors catch up
1094
+ - Focus on developer experience to build organic growth
1095
+ - Secure partnerships with AI coding tool providers` },
1096
+ porters_five_forces: { subfolder: "porters", body: `## Porter's Five Forces Analysis
898
1097
 
899
1098
  ### Threat of New Entrants
900
1099
  **Rating:** Medium
@@ -915,7 +1114,7 @@ Teams could use wikis, docs, or custom solutions.
915
1114
  ### Competitive Rivalry
916
1115
  **Rating:** High
917
1116
  Crowded market with well-funded competitors.` },
918
- strategic_group_map: { body: `## Market Positioning Map
1117
+ strategic_group_map: { subfolder: "strategic-maps", body: `## Market Positioning Map
919
1118
 
920
1119
  ### Dimensions
921
1120
  - **X-axis:** Target audience (Individual → Enterprise)
@@ -928,7 +1127,7 @@ We target the "developer sweet spot" — more powerful than Trello but simpler t
928
1127
  1. **Launch:** Start with small teams
929
1128
  2. **Grow:** Move to mid-market
930
1129
  3. **Defend:** AI moat prevents commoditization` },
931
- obeya_board: { body: `## Product Obeya Board
1130
+ obeya_board: { subfolder: "obeya", body: `## Product Obeya Board
932
1131
 
933
1132
  ### Vision & Strategy (North Wall)
934
1133
  Platform vision: Make product context accessible to both humans and AI.
@@ -986,7 +1185,7 @@ Learn how product teams manage context documentation effectively. Discover tools
986
1185
  4. Tools comparison
987
1186
  5. Getting started guide` },
988
1187
  // Environments
989
- environment_link: { body: `## Production Environment
1188
+ environment_link: { subfolder: "environments", body: `## Production Environment
990
1189
 
991
1190
  **URL:** https://app.example.com
992
1191
  **Environment Type:** production
@@ -1001,7 +1200,7 @@ Learn how product teams manage context documentation effectively. Discover tools
1001
1200
  - Uptime: Better Stack
1002
1201
  - Errors: Sentry
1003
1202
  - Analytics: PostHog` },
1004
- release_note: { body: `## v1.2.0 - Export System
1203
+ release_note: { subfolder: "releases", body: `## v1.2.0 - Export System
1005
1204
 
1006
1205
  **Version:** 1.2.0
1007
1206
  **Date:** 2025-03-01
@@ -1035,7 +1234,7 @@ EpicContext is ready for public launch. Core features are complete, early users
1035
1234
  ### Recommendation
1036
1235
  Proceed with public launch, focusing on developer community.` },
1037
1236
  // Section Guide (generic - used across all sections)
1038
- section_guide: { body: `## Overview
1237
+ section_guide: { subfolder: "guides", body: `## Overview
1039
1238
 
1040
1239
  This section contains [description of section content].
1041
1240
 
@@ -1433,9 +1632,9 @@ export function readContextFolder(contextPath) {
1433
1632
  }
1434
1633
  }
1435
1634
  else if (entry.isFile() && entry.name.endsWith(".md")) {
1436
- // Skip README, AI-GUIDE, and _example-* files
1635
+ // Skip README and AI-GUIDE (examples are in hidden .examples/ folder, already skipped above)
1437
1636
  const lowerName = entry.name.toLowerCase();
1438
- if (lowerName !== "readme.md" && lowerName !== "ai-guide.md" && !entry.name.startsWith("_example-")) {
1637
+ if (lowerName !== "readme.md" && lowerName !== "ai-guide.md") {
1439
1638
  const content = fs.readFileSync(fullPath, "utf-8");
1440
1639
  files.push({
1441
1640
  path: relativePath,
@@ -1601,9 +1800,9 @@ npx @epiccontext/mcp add-app ./apps/my-app --name "my-app"
1601
1800
  }
1602
1801
  }
1603
1802
  /**
1604
- * Generate _example-*.md files for each block type in each section.
1803
+ * Generate example .md files inside a hidden `.examples/` folder in each section.
1605
1804
  * These show AI agents the correct heading structure and format.
1606
- * They are skipped by readContextFolder, push, and import pipelines.
1805
+ * They are hidden from file browsers (dot-prefixed folder) and skipped by push/import pipelines.
1607
1806
  */
1608
1807
  /**
1609
1808
  * Check if a section directory has any real (non-example, non-README) markdown files
@@ -1620,7 +1819,7 @@ function sectionHasRealBlocks(sectionDir) {
1620
1819
  }
1621
1820
  else if (entry.isFile() && entry.name.endsWith(".md")) {
1622
1821
  const lower = entry.name.toLowerCase();
1623
- if (lower !== "readme.md" && !entry.name.startsWith("_example-")) {
1822
+ if (lower !== "readme.md") {
1624
1823
  return true;
1625
1824
  }
1626
1825
  }
@@ -1647,21 +1846,22 @@ function generateExampleFiles(contextPath, skipIfHasBlocks) {
1647
1846
  // Skip sections that already have real blocks (upgrade mode)
1648
1847
  if (skipIfHasBlocks && sectionsWithBlocks.has(info.folder))
1649
1848
  continue;
1849
+ // Create the hidden .examples/ folder inside the section
1850
+ const examplesDir = path.join(contextPath, info.folder, ".examples");
1851
+ if (!fs.existsSync(examplesDir)) {
1852
+ fs.mkdirSync(examplesDir, { recursive: true });
1853
+ }
1650
1854
  for (const blockType of info.blockTypes) {
1651
1855
  const example = BLOCK_TYPE_EXAMPLES[blockType];
1652
1856
  if (!example)
1653
1857
  continue;
1654
- // Determine target folder (some block types use subfolders)
1655
- let targetDir = path.join(contextPath, info.folder);
1656
- if (example.subfolder) {
1657
- targetDir = path.join(targetDir, example.subfolder);
1858
+ // Also create the actual subfolder (empty, for real blocks)
1859
+ const subfolderDir = path.join(contextPath, info.folder, example.subfolder);
1860
+ if (!fs.existsSync(subfolderDir)) {
1861
+ fs.mkdirSync(subfolderDir, { recursive: true });
1658
1862
  }
1659
- // Ensure subfolder exists
1660
- if (!fs.existsSync(targetDir)) {
1661
- fs.mkdirSync(targetDir, { recursive: true });
1662
- }
1663
- const filename = `_example-${blockType.replace(/_/g, "-")}.md`;
1664
- const filePath = path.join(targetDir, filename);
1863
+ const filename = `${blockType.replace(/_/g, "-")}.md`;
1864
+ const filePath = path.join(examplesDir, filename);
1665
1865
  // Don't overwrite existing example files
1666
1866
  if (fs.existsSync(filePath))
1667
1867
  continue;
@@ -1671,7 +1871,7 @@ function generateExampleFiles(contextPath, skipIfHasBlocks) {
1671
1871
  const frontmatterLines = [
1672
1872
  `type: ${blockType}`,
1673
1873
  `section: ${sectionForFrontmatter}`,
1674
- `key: _example-${blockType.replace(/_/g, "-")}`,
1874
+ `key: example-${blockType.replace(/_/g, "-")}`,
1675
1875
  `name: "Example ${blockType.split("_").map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(" ")}"`,
1676
1876
  `status: draft`,
1677
1877
  `created: ${today}`,
@@ -1687,8 +1887,8 @@ ${frontmatterLines.join("\n")}
1687
1887
 
1688
1888
  # Example: ${blockType.split("_").map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(" ")}
1689
1889
 
1690
- > **This is an example file.** Delete it after you've created your own ${blockType} block.
1691
- > It shows the correct heading structure, format, and **how to link** for traceability.
1890
+ > **This is an example file.** It shows the correct heading structure, format, and **how to link** for traceability.
1891
+ > Create your own blocks in the \`${example.subfolder}/\` folder next to this \`.examples/\` folder.
1692
1892
  > Every block must trace back to what created it and forward to what it enables — see frontmatter above.
1693
1893
 
1694
1894
  ${example.body}
@@ -1805,6 +2005,10 @@ epicontext watch
1805
2005
  - **Glossary**: Domain-specific terminology and definitions
1806
2006
  - **Section Guide**: Overview and navigation for this section
1807
2007
 
2008
+ Organize files in subfolders:
2009
+ - \`constraints/\` - Constraint files
2010
+ - \`glossaries/\` - Glossary/terminology files
2011
+
1808
2012
  This is the first section AI agents should read to understand project boundaries.`,
1809
2013
  blockTypes: ["constraint", "glossary", "section_guide"],
1810
2014
  },
@@ -1815,7 +2019,14 @@ This is the first section AI agents should read to understand project boundaries
1815
2019
  - **Visual Identity**: Colors, typography, logo, icons, assets combined (use brand_visual_identity)
1816
2020
  - **Brand Moodboard**: Inspiration and reference images for brand development
1817
2021
  - **Tone of Voice**: Brand personality, voice archetype, vocabulary
1818
- - **Messaging**: Elevator pitch, value propositions, CTAs`,
2022
+ - **Messaging**: Elevator pitch, value propositions, CTAs
2023
+
2024
+ Organize files in subfolders:
2025
+ - \`positioning/\` - Brand positioning files
2026
+ - \`visual-identity/\` - Visual identity files
2027
+ - \`moodboards/\` - Brand moodboard files
2028
+ - \`tone-of-voice/\` - Tone of voice files
2029
+ - \`messaging/\` - Messaging framework files`,
1819
2030
  blockTypes: ["brand_positioning", "brand_visual_identity", "brand_moodboard", "tone_of_voice", "messaging_framework", "section_guide"],
1820
2031
  },
1821
2032
  "product": {
@@ -1825,7 +2036,14 @@ This is the first section AI agents should read to understand project boundaries
1825
2036
  - **Features**: Individual feature definitions with acceptance criteria
1826
2037
  - **Product Strategy Canvas**: Product-specific strategy and goals
1827
2038
  - **Feature Market Analysis**: Competitive analysis for specific features
1828
- - **Glossary**: Domain-specific terminology and definitions`,
2039
+ - **Glossary**: Domain-specific terminology and definitions
2040
+
2041
+ Organize files in subfolders:
2042
+ - \`overviews/\` - Product overview files
2043
+ - \`features/\` - Feature files
2044
+ - \`strategy/\` - Strategy canvas files
2045
+ - \`market-analysis/\` - Feature market analysis files
2046
+ - \`glossaries/\` - Glossary files`,
1829
2047
  blockTypes: ["product_overview", "feature", "product_strategy_canvas", "feature_market_analysis", "glossary", "section_guide"],
1830
2048
  },
1831
2049
  "business-strategy": {
@@ -1836,7 +2054,15 @@ This is the first section AI agents should read to understand project boundaries
1836
2054
  - **SWOT Analysis**: Strengths, weaknesses, opportunities, threats
1837
2055
  - **Porter's Five Forces**: Competitive forces analysis
1838
2056
  - **Strategic Group Map**: Market positioning visualization
1839
- - **Obeya Board**: Visual management board`,
2057
+ - **Obeya Board**: Visual management board
2058
+
2059
+ Organize files in subfolders:
2060
+ - \`ogsm/\` - OGSM framework files
2061
+ - \`canvases/\` - Business model canvas files
2062
+ - \`swot/\` - SWOT analysis files
2063
+ - \`porters/\` - Porter's Five Forces files
2064
+ - \`strategic-maps/\` - Strategic group map files
2065
+ - \`obeya/\` - Obeya board files`,
1840
2066
  blockTypes: ["ogsm", "business_model_canvas", "swot_analysis", "porters_five_forces", "strategic_group_map", "obeya_board", "section_guide"],
1841
2067
  },
1842
2068
  "users": {
@@ -1859,7 +2085,10 @@ Organize files in subfolders:
1859
2085
  - **User Research**: Research documents with highlights and key insights
1860
2086
  - **Research Data**: Tabular research data with charts and analysis
1861
2087
 
1862
- Organize files in subfolders: \`competitors/\`, \`data-research/\``,
2088
+ Organize files in subfolders:
2089
+ - \`competitors/\` - Competitor analysis files
2090
+ - \`user-research/\` - User research files
2091
+ - \`data-research/\` - Research data files`,
1863
2092
  blockTypes: ["competitor", "user_research", "research_data", "section_guide"],
1864
2093
  },
1865
2094
  "technical": {
@@ -1878,9 +2107,17 @@ Organize files in subfolders: \`competitors/\`, \`data-research/\``,
1878
2107
  - **Cost Calculator**: Infrastructure and operational costs breakdown
1879
2108
 
1880
2109
  Organize files in subfolders:
2110
+ - \`stacks/\` - Tech stack files
2111
+ - \`architecture/\` - Architecture diagram files
1881
2112
  - \`integrations/\` - Integration files
2113
+ - \`constraints/\` - Constraint files
2114
+ - \`setup/\` - Dev setup files
1882
2115
  - \`api/\` - API endpoint files
1883
- - \`models/\` - Data model files`,
2116
+ - \`api-specs/\` - API specification files
2117
+ - \`models/\` - Data model files
2118
+ - \`schemas/\` - Data schema files
2119
+ - \`testing/\` - Testing strategy files
2120
+ - \`costs/\` - Cost calculator files`,
1884
2121
  blockTypes: ["tech_stack", "architecture_diagram", "integration", "constraint", "dev_setup", "api_endpoint", "api_spec", "data_model", "data_schema", "testing_strategy", "cost_calculator", "section_guide"],
1885
2122
  },
1886
2123
  "design-system": {
@@ -1891,6 +2128,10 @@ Organize files in subfolders:
1891
2128
  - Use the storybook-template repo for easy setup
1892
2129
  - **Figma Embed**: Link to Figma design files
1893
2130
 
2131
+ Organize files in subfolders:
2132
+ - \`storybook/\` - Storybook link files
2133
+ - \`figma/\` - Figma embed files
2134
+
1894
2135
  Note: This section is for linking external design tools, not for documenting
1895
2136
  components directly. Component documentation lives in Storybook.`,
1896
2137
  blockTypes: ["storybook_link", "figma_embed", "section_guide"],
@@ -1906,6 +2147,10 @@ components directly. Component documentation lives in Storybook.`,
1906
2147
  - Categories, tags, and content types
1907
2148
  - Hierarchical organization of content
1908
2149
 
2150
+ Organize files in subfolders:
2151
+ - \`trees/\` - IA tree files
2152
+ - \`taxonomies/\` - Taxonomy files
2153
+
1909
2154
  These blocks use visual editors in the EpicContext app.`,
1910
2155
  blockTypes: ["ia_tree", "taxonomy", "section_guide"],
1911
2156
  },
@@ -1919,6 +2164,12 @@ These blocks use visual editors in the EpicContext app.`,
1919
2164
  - \`input\`: Leading indicators that drive other metrics
1920
2165
  - **Analytics Events**: Event tracking definitions for implementation
1921
2166
 
2167
+ Organize files in subfolders:
2168
+ - \`indicators/\` - Metric files
2169
+ - \`north-stars/\` - North star metric files
2170
+ - \`kpis/\` - KPI files
2171
+ - \`events/\` - Analytics event files
2172
+
1922
2173
  Use AARRR categories (acquisition, activation, retention, revenue, referral) for the \`category\` field.`,
1923
2174
  blockTypes: ["metric", "north_star", "kpi", "analytics_event", "section_guide"],
1924
2175
  },
@@ -1931,9 +2182,14 @@ Use AARRR categories (acquisition, activation, retention, revenue, referral) for
1931
2182
  - Decision: What was decided?
1932
2183
  - Rationale: Why this choice over alternatives?
1933
2184
  - Consequences: What are the implications?
2185
+ - **Meeting Notes**: Sprint planning, retrospectives, key meetings
2186
+
2187
+ Organize files in subfolders:
2188
+ - \`adrs/\` - Architecture Decision Records
2189
+ - \`meetings/\` - Meeting notes
1934
2190
 
1935
2191
  Good ADRs help future team members understand why things are built this way.`,
1936
- blockTypes: ["decision", "section_guide"],
2192
+ blockTypes: ["decision", "meeting_notes", "section_guide"],
1937
2193
  },
1938
2194
  "development": {
1939
2195
  description: "Epics, stories, tasks, and roadmaps",
@@ -1949,7 +2205,9 @@ Organize files in subfolders:
1949
2205
  - \`epics/\` - Epic files
1950
2206
  - \`stories/\` - User story files
1951
2207
  - \`tasks/\` - Task/implementation plan files
1952
- - \`roadmaps/\` - Roadmap files`,
2208
+ - \`roadmaps/\` - Roadmap files
2209
+ - \`matrices/\` - Impact/effort matrix files
2210
+ - \`boards/\` - Kanban board files`,
1953
2211
  blockTypes: ["epic", "user_story", "task", "roadmap", "impact_effort_matrix", "kanban_board", "section_guide"],
1954
2212
  },
1955
2213
  "environments": {
@@ -1960,7 +2218,9 @@ Organize files in subfolders:
1960
2218
  - **Release Notes**: Changelog and release documentation
1961
2219
  - Version numbers, dates, and changes
1962
2220
 
1963
- Organize files as needed in the environments folder.`,
2221
+ Organize files in subfolders:
2222
+ - \`environments/\` - Environment link files
2223
+ - \`releases/\` - Release note files`,
1964
2224
  blockTypes: ["environment_link", "release_note", "section_guide"],
1965
2225
  },
1966
2226
  "marketing": {