@epiccontext/mcp 0.1.16 → 0.1.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmCjE;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,YAAiB,GACzB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAsC9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAonB7D;AA4BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOpD"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmCjE;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,YAAiB,GACzB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAsC9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAsgC7D;AA4BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOpD"}
package/dist/cli/files.js CHANGED
@@ -364,57 +364,105 @@ A journey map showing how new users get started with our product.
364
364
 
365
365
  ### Information Architecture Block (ia_tree)
366
366
 
367
- IA tree blocks document the application's page hierarchy and navigation structure. They use embedded JSON in a \`sync:data\` block.
367
+ IA tree blocks document the application's page hierarchy, navigation structure, and connections between pages. They use embedded JSON in a \`sync:data\` block with a \`tree\` (hierarchy) and \`links\` (connections) structure.
368
368
 
369
369
  #### Purpose
370
- - Map out the complete site/app structure
370
+ - Map out the complete site/app structure visually
371
371
  - Show parent-child relationships between pages
372
372
  - Document modals, sections, and components within pages
373
- - Define cross-links between related pages
374
- - Track page types (navigable vs modal vs component)
373
+ - **Define connections/links between pages and components**
374
+ - Track page types with visual differentiation
375
375
 
376
- #### Node Structure
376
+ #### Data Structure
377
377
 
378
- Each node in the IA tree has these properties:
378
+ The sync:data block contains two top-level properties:
379
+
380
+ \`\`\`json
381
+ {
382
+ "tree": { ... }, // The page/node hierarchy (IATreeNode)
383
+ "links": [ ... ] // Connections between nodes (IALink[])
384
+ }
385
+ \`\`\`
386
+
387
+ #### Node Structure (IATreeNode)
379
388
 
380
389
  | Property | Required | Description |
381
390
  |----------|----------|-------------|
382
391
  | \`id\` | Yes | Unique identifier (use kebab-case, e.g., "user-settings") |
383
392
  | \`label\` | Yes | Display name shown in the UI |
384
- | \`type\` | Yes | Node type (see below) |
393
+ | \`type\` | Yes | Node type: \`page\`, \`modal\`, \`external\`, or \`node\` |
385
394
  | \`url\` | No | Route path for navigable pages (e.g., "/dashboard") |
386
395
  | \`description\` | No | Brief description of the page/section purpose |
387
- | \`children\` | Yes | Array of child nodes (can be empty: \`[]\`) |
396
+ | \`position\` | Yes | Visual position: \`{ "x": number, "y": number }\` |
397
+ | \`children\` | No | Array of child nodes |
388
398
  | \`subNodes\` | No | Sections/components within this page |
389
- | \`isNew\` | No | Flag to show "New" badge on the node |
399
+ | \`isNew\` | No | Flag to show "NEW" badge on the node |
400
+
401
+ #### Node Types (Visual Shapes)
402
+
403
+ | Type | Visual | Description |
404
+ |------|--------|-------------|
405
+ | \`page\` | Square (sharp corners) | A routable page/screen |
406
+ | \`modal\` | Rounded (large radius) | Modal/dialog overlay |
407
+ | \`external\` | Dashed border | External link |
408
+ | \`node\` | Rounded corners | Generic structural node |
409
+
410
+ #### Sub-Node Types (Content Areas Within Nodes)
390
411
 
391
- #### Node Types
412
+ | Type | Description |
413
+ |------|-------------|
414
+ | \`section\` | A major content section |
415
+ | \`component\` | A reusable UI component |
416
+ | \`widget\` | Interactive widget/feature |
392
417
 
393
- | Type | Shape | Description | Example |
394
- |------|-------|-------------|---------|
395
- | \`page\` | Square | A navigable route/URL | Dashboard, Settings, Profile |
396
- | \`modal\` | Rounded | Overlay dialog (no direct URL) | Confirmation dialogs, Preferences popup |
397
- | \`external\` | Diamond | Link to external site | Documentation, Support portal |
418
+ Sub-nodes appear inside their parent node and can be the source of links to other nodes.
398
419
 
399
- #### Sub-Nodes (Page Sections)
420
+ #### Link Structure (IALink)
400
421
 
401
- Pages can have sub-nodes representing sections or components within them:
422
+ Links define relationships and navigation paths between nodes. **IMPORTANT:** You MUST include the \`links\` array to show connections.
402
423
 
424
+ | Property | Required | Description |
425
+ |----------|----------|-------------|
426
+ | \`id\` | Yes | Unique ID for the link (e.g., "link-login-to-dashboard") |
427
+ | \`sourceId\` | Yes | ID of the source node |
428
+ | \`targetId\` | Yes | ID of the target node |
429
+ | \`sourceSubNodeId\` | No | If link starts from a sub-node, its ID |
430
+ | \`type\` | Yes | Link type (see below) |
431
+ | \`label\` | No | Description of the connection |
432
+
433
+ #### Link Types
434
+
435
+ | Type | Color | Style | Use Case |
436
+ |------|-------|-------|----------|
437
+ | \`action\` | Green (#22c55e) | Solid | User action that navigates (clicks, taps) |
438
+ | \`related\` | Purple (#8b5cf6) | Solid | Related content connection |
439
+ | \`parent\` | Blue (#3b82f6) | Solid | Parent-child hierarchy |
440
+ | \`references\` | Amber (#f59e0b) | Dashed | Content reference/link |
441
+
442
+ #### Connection Types
443
+
444
+ **1. Node → Node Connection:**
403
445
  \`\`\`json
404
446
  {
405
- "id": "dashboard",
406
- "label": "Dashboard",
407
- "type": "page",
408
- "url": "/dashboard",
409
- "subNodes": [
410
- { "id": "metrics-panel", "label": "Metrics Panel", "type": "section" },
411
- { "id": "quick-actions", "label": "Quick Actions", "type": "component" }
412
- ],
413
- "children": []
447
+ "id": "link-home-to-settings",
448
+ "sourceId": "home-page",
449
+ "targetId": "settings-modal",
450
+ "type": "action",
451
+ "label": "Opens settings"
414
452
  }
415
453
  \`\`\`
416
454
 
417
- Sub-node types: \`section\`, \`component\`, \`widget\`
455
+ **2. Sub-Node Node Connection:**
456
+ \`\`\`json
457
+ {
458
+ "id": "link-cta-to-signup",
459
+ "sourceId": "home-page",
460
+ "sourceSubNodeId": "hero-cta-button",
461
+ "targetId": "signup-page",
462
+ "type": "action",
463
+ "label": "Sign up CTA click"
464
+ }
465
+ \`\`\`
418
466
 
419
467
  #### Complete Example
420
468
 
@@ -429,109 +477,81 @@ status: draft
429
477
 
430
478
  # Application Structure
431
479
 
432
- Complete information architecture for our SaaS application, showing all pages, modals, and their relationships.
433
-
434
- ## Design Principles
435
- - Maximum 3 levels of navigation depth
436
- - All key actions accessible within 2 clicks
437
- - Consistent navigation patterns across sections
480
+ Complete information architecture showing pages, modals, and navigation flows.
438
481
 
439
482
  <!-- sync:data -->
440
483
  \\\`\`\`json
441
484
  {
442
- "id": "root",
443
- "label": "Home",
444
- "type": "page",
445
- "url": "/",
446
- "description": "Landing page with dashboard overview",
447
- "children": [
485
+ "tree": {
486
+ "id": "app-root",
487
+ "label": "Application",
488
+ "type": "node",
489
+ "description": "Root application node",
490
+ "position": { "x": 50, "y": 50 },
491
+ "children": [
492
+ {
493
+ "id": "login",
494
+ "label": "Login",
495
+ "type": "page",
496
+ "url": "/login",
497
+ "position": { "x": 50, "y": 200 },
498
+ "subNodes": [
499
+ { "id": "login-form", "name": "Login Form", "type": "component" },
500
+ { "id": "forgot-link", "name": "Forgot Password Link", "type": "component" }
501
+ ]
502
+ },
503
+ {
504
+ "id": "dashboard",
505
+ "label": "Dashboard",
506
+ "type": "page",
507
+ "url": "/dashboard",
508
+ "description": "Main workspace",
509
+ "position": { "x": 400, "y": 200 },
510
+ "subNodes": [
511
+ { "id": "project-grid", "name": "Project Grid", "type": "section" },
512
+ { "id": "create-btn", "name": "Create Project Button", "type": "component" }
513
+ ]
514
+ },
515
+ {
516
+ "id": "new-project",
517
+ "label": "New Project",
518
+ "type": "modal",
519
+ "description": "Create project dialog",
520
+ "position": { "x": 750, "y": 200 }
521
+ }
522
+ ]
523
+ },
524
+ "links": [
448
525
  {
449
- "id": "dashboard",
450
- "label": "Dashboard",
451
- "type": "page",
452
- "url": "/dashboard",
453
- "description": "Main workspace showing key metrics and recent activity",
454
- "subNodes": [
455
- { "id": "metrics-overview", "label": "Metrics Overview", "type": "section" },
456
- { "id": "recent-activity", "label": "Recent Activity", "type": "section" },
457
- { "id": "quick-actions", "label": "Quick Actions", "type": "component" }
458
- ],
459
- "children": [
460
- {
461
- "id": "analytics",
462
- "label": "Analytics",
463
- "type": "page",
464
- "url": "/dashboard/analytics",
465
- "isNew": true,
466
- "children": []
467
- },
468
- {
469
- "id": "reports",
470
- "label": "Reports",
471
- "type": "page",
472
- "url": "/dashboard/reports",
473
- "children": []
474
- }
475
- ]
526
+ "id": "link-login-form-to-dashboard",
527
+ "sourceId": "login",
528
+ "sourceSubNodeId": "login-form",
529
+ "targetId": "dashboard",
530
+ "type": "action",
531
+ "label": "Successful login"
476
532
  },
477
533
  {
478
- "id": "projects",
479
- "label": "Projects",
480
- "type": "page",
481
- "url": "/projects",
482
- "description": "Project management and collaboration",
483
- "children": [
484
- {
485
- "id": "project-detail",
486
- "label": "Project Detail",
487
- "type": "page",
488
- "url": "/projects/:id",
489
- "children": []
490
- },
491
- {
492
- "id": "create-project",
493
- "label": "Create Project",
494
- "type": "modal",
495
- "description": "Modal dialog for creating new projects",
496
- "children": []
497
- }
498
- ]
534
+ "id": "link-forgot-to-reset",
535
+ "sourceId": "login",
536
+ "sourceSubNodeId": "forgot-link",
537
+ "targetId": "password-reset",
538
+ "type": "action",
539
+ "label": "Forgot password flow"
499
540
  },
500
541
  {
501
- "id": "settings",
502
- "label": "Settings",
503
- "type": "page",
504
- "url": "/settings",
505
- "children": [
506
- {
507
- "id": "profile",
508
- "label": "Profile",
509
- "type": "page",
510
- "url": "/settings/profile",
511
- "children": []
512
- },
513
- {
514
- "id": "preferences",
515
- "label": "Preferences",
516
- "type": "modal",
517
- "children": []
518
- },
519
- {
520
- "id": "billing",
521
- "label": "Billing",
522
- "type": "page",
523
- "url": "/settings/billing",
524
- "children": []
525
- }
526
- ]
542
+ "id": "link-create-btn-to-modal",
543
+ "sourceId": "dashboard",
544
+ "sourceSubNodeId": "create-btn",
545
+ "targetId": "new-project",
546
+ "type": "action",
547
+ "label": "Opens create dialog"
527
548
  },
528
549
  {
529
- "id": "help",
530
- "label": "Help Center",
531
- "type": "external",
532
- "url": "https://help.example.com",
533
- "description": "External documentation and support",
534
- "children": []
550
+ "id": "link-modal-to-dashboard",
551
+ "sourceId": "new-project",
552
+ "targetId": "dashboard",
553
+ "type": "action",
554
+ "label": "After creation, returns to dashboard"
535
555
  }
536
556
  ]
537
557
  }
@@ -541,35 +561,417 @@ Complete information architecture for our SaaS application, showing all pages, m
541
561
 
542
562
  #### Best Practices
543
563
 
544
- 1. **Use descriptive IDs**: \`user-profile\` not \`page1\`
545
- 2. **Include URLs for all pages**: Helps developers map routes
546
- 3. **Add descriptions for complex pages**: Clarifies purpose
547
- 4. **Mark new features**: Use \`isNew: true\` for recently added pages
548
- 5. **Group related pages**: Use hierarchy to show logical groupings
549
- 6. **Document modals separately**: Don't nest modals under unrelated pages
550
- 7. **Keep depth shallow**: Aim for max 3-4 levels of nesting
564
+ 1. **Always include positions for nodes:**
565
+ Space nodes ~300-400px apart horizontally, ~150-200px vertically to avoid overlap.
566
+
567
+ 2. **Create meaningful connections:**
568
+ - Every sub-node that leads somewhere should have a link
569
+ - Data flows should show input processing output
570
+ - User journeys should connect in logical sequence
571
+
572
+ 3. **Use descriptive IDs:**
573
+ - Node IDs: \`home-page\`, \`settings-modal\`, \`auth-flow\`
574
+ - Sub-node IDs: \`nav-menu\`, \`hero-cta\`, \`project-list\`
575
+ - Link IDs: \`link-nav-to-dashboard\`, \`link-cta-to-signup\`
576
+
577
+ 4. **Group related nodes visually:**
578
+ - Authentication pages together (x: 50-300)
579
+ - Dashboard pages together (x: 400-700)
580
+ - Settings/admin together (x: 800-1100)
581
+
582
+ 5. **Choose appropriate link types:**
583
+ - \`action\`: User clicks/taps to navigate
584
+ - \`related\`: Content is related but not direct navigation
585
+ - \`parent\`: Hierarchical relationship
586
+ - \`references\`: One content references another
551
587
 
552
588
  #### Common Mistakes
553
589
 
554
- WRONG: Missing children array
590
+ WRONG: Missing links array
591
+ \`\`\`json
592
+ { "tree": { "id": "root", ... } }
593
+ \`\`\`
594
+
595
+ CORRECT: Always include links (even if empty)
596
+ \`\`\`json
597
+ { "tree": { "id": "root", ... }, "links": [] }
598
+ \`\`\`
599
+
600
+ WRONG: Missing position for nodes
555
601
  \`\`\`json
556
- { "id": "page", "label": "Page", "type": "page" }
602
+ { "id": "dashboard", "label": "Dashboard", "type": "page" }
557
603
  \`\`\`
558
604
 
559
- CORRECT: Always include children (even if empty)
605
+ CORRECT: Always include position
560
606
  \`\`\`json
561
- { "id": "page", "label": "Page", "type": "page", "children": [] }
607
+ { "id": "dashboard", "label": "Dashboard", "type": "page", "position": { "x": 400, "y": 200 } }
562
608
  \`\`\`
563
609
 
564
- WRONG: Using generic IDs
610
+ WRONG: Link without type
565
611
  \`\`\`json
566
- { "id": "page1", "label": "Dashboard", "type": "page", "children": [] }
612
+ { "id": "link-1", "sourceId": "a", "targetId": "b" }
613
+ \`\`\`
614
+
615
+ CORRECT: Always specify link type
616
+ \`\`\`json
617
+ { "id": "link-1", "sourceId": "a", "targetId": "b", "type": "action" }
618
+ \`\`\`
619
+
620
+ ### Development Section Blocks (Epic → Story → Task)
621
+
622
+ The development section uses a hierarchical structure to plan and track work. This creates a clear flow from high-level initiatives down to specific implementation tasks.
623
+
624
+ #### Hierarchy Flow
625
+
626
+ \`\`\`
627
+ Epic (Large initiative)
628
+ └── User Story (User-facing feature)
629
+ └── Task / Agent Plan (Technical implementation)
630
+ \`\`\`
631
+
632
+ **How AI/Developers Should Use This:**
633
+ 1. **Product Owner/User** creates Epics for major initiatives
634
+ 2. **Product Owner/User** breaks Epics into User Stories
635
+ 3. **AI Agent/Developer** reads Stories and creates Tasks with implementation plans
636
+ 4. **AI Agent/Developer** executes Tasks and updates outcomes
637
+
638
+ ---
639
+
640
+ #### Epic Block
641
+
642
+ An Epic represents a large body of work that delivers significant value. It groups related User Stories.
643
+
644
+ **Required Fields:**
645
+ - \`summary\` - One-line description
646
+ - \`status\` - todo, in_progress, done
647
+
648
+ **Key Fields:**
649
+ - \`description\` - Detailed explanation
650
+ - \`priority\` - highest, high, medium, low, lowest
651
+ - \`story_refs\` - Links to child User Stories
652
+ - \`impact_score\` / \`effort_score\` - 1-5 scale for prioritization
653
+ - \`start_date\` / \`due_date\` - Timeline
654
+ - \`labels\` - Comma-separated tags
655
+
656
+ **Example:**
657
+ \`\`\`markdown
658
+ ---
659
+ type: epic
660
+ section: development
661
+ key: user-authentication
662
+ name: User Authentication System
663
+ status: draft
664
+ priority: high
665
+ start_date: 2025-01-15
666
+ due_date: 2025-02-28
667
+ labels: security, mvp, phase-1
668
+ story_refs:
669
+ - email-login
670
+ - oauth-integration
671
+ - password-reset
672
+ ---
673
+
674
+ # User Authentication System
675
+
676
+ Implement a complete authentication system allowing users to securely access their accounts.
677
+
678
+ ## Summary
679
+ Build secure user authentication with email/password and OAuth support.
680
+
681
+ ## Description
682
+ This epic covers all authentication-related features including registration, login, logout, password management, and third-party OAuth integration. The goal is to provide a frictionless yet secure authentication experience.
683
+
684
+ ### Goals
685
+ - Enable secure user registration with email verification
686
+ - Support login via email/password and OAuth (Google, GitHub)
687
+ - Implement password reset flow with secure tokens
688
+ - Add session management with JWT
689
+
690
+ ### Success Criteria
691
+ - Users can create accounts and verify email
692
+ - Login works with email/password and OAuth providers
693
+ - Password reset emails arrive within 30 seconds
694
+ - Sessions expire after 24 hours of inactivity
695
+
696
+ ### Out of Scope
697
+ - Two-factor authentication (planned for Phase 2)
698
+ - Social login beyond Google/GitHub
699
+ \`\`\`
700
+
701
+ ---
702
+
703
+ #### User Story Block
704
+
705
+ A User Story describes a feature from the user's perspective. It belongs to an Epic and can have Tasks.
706
+
707
+ **Required Fields:**
708
+ - \`summary\` - Brief description
709
+ - \`status\` - todo, in_progress, in_review, done
710
+
711
+ **Key Fields:**
712
+ - \`user_story\` - "As a [role], I want [goal], so that [benefit]" format
713
+ - \`acceptance_criteria\` - Testable conditions (Given/When/Then)
714
+ - \`epic_ref\` - Link to parent Epic
715
+ - \`story_points\` - 1, 2, 3, 5, 8, 13, 21 (Fibonacci)
716
+ - \`priority\` - highest, high, medium, low, lowest
717
+ - \`impact_score\` / \`effort_score\` - 1-5 scale
718
+ - \`sprint\` - Sprint assignment
719
+
720
+ **Example:**
721
+ \`\`\`markdown
722
+ ---
723
+ type: user_story
724
+ section: development
725
+ key: email-login
726
+ name: Email Login
727
+ status: draft
728
+ priority: high
729
+ story_points: 5
730
+ impact_score: 5
731
+ effort_score: 3
732
+ epic_ref: user-authentication
733
+ sprint: Sprint 1
734
+ ---
735
+
736
+ # Email Login
737
+
738
+ Allow users to securely log in with their email and password.
739
+
740
+ ## Summary
741
+ Implement email/password authentication with proper security measures.
742
+
743
+ ## User Story
744
+ As a registered user, I want to log in with my email and password, so that I can access my account securely and quickly.
745
+
746
+ ## Description
747
+ Users need a fast and secure way to access their accounts. The login form should validate input, show helpful error messages, and redirect to the dashboard on success.
748
+
749
+ ## Acceptance Criteria
750
+
751
+ ### Scenario: Successful login
752
+ - Given I am on the login page
753
+ - When I enter a valid email and correct password
754
+ - Then I am redirected to the dashboard
755
+ - And I see a welcome message with my name
756
+
757
+ ### Scenario: Invalid credentials
758
+ - Given I am on the login page
759
+ - When I enter an invalid email or wrong password
760
+ - Then I see an error message "Invalid email or password"
761
+ - And I remain on the login page
762
+ - And the password field is cleared
763
+
764
+ ### Scenario: Rate limiting
765
+ - Given I have failed login 5 times in 5 minutes
766
+ - When I try to login again
767
+ - Then I see "Too many attempts. Please try again in 15 minutes"
768
+
769
+ ## Technical Notes
770
+ - Use bcrypt for password hashing (cost factor 12)
771
+ - Implement rate limiting: 5 attempts per 5 minutes per IP
772
+ - Generate JWT with 24h expiry
773
+ - Store refresh token in httpOnly cookie
567
774
  \`\`\`
568
775
 
569
- CORRECT: Use meaningful kebab-case IDs
776
+ ---
777
+
778
+ #### Task / Agent Plan Block
779
+
780
+ A Task contains the technical implementation plan. AI coding agents (Claude Code, Cursor, etc.) should create Tasks when planning work.
781
+
782
+ **Required Fields:**
783
+ - \`description\` - What needs to be done
784
+ - \`status\` - planned, todo, in_progress, in_review, done, abandoned
785
+
786
+ **Key Fields:**
787
+ - \`story_ref\` - Link to parent User Story
788
+ - \`plan_steps\` - Step-by-step implementation plan
789
+ - \`agent_source\` - manual, claude_code, cursor, copilot, windsurf, aider, other_ai
790
+ - \`files_affected\` - List of files to create/modify
791
+ - \`codebase_context\` - Relevant architecture notes
792
+ - \`technical_notes\` - Implementation details
793
+ - \`dependencies\` - Prerequisites or packages needed
794
+ - \`estimated_hours\` - Time estimate
795
+ - \`outcome\` - Results after completion
796
+
797
+ **Example (AI Agent Plan):**
798
+ \`\`\`markdown
799
+ ---
800
+ type: task
801
+ section: development
802
+ key: implement-login-api
803
+ name: Implement Login API Endpoint
804
+ status: planned
805
+ priority: high
806
+ agent_source: claude_code
807
+ story_ref: email-login
808
+ estimated_hours: 4
809
+ ---
810
+
811
+ # Implement Login API Endpoint
812
+
813
+ Create the POST /api/auth/login endpoint that validates credentials and returns JWT tokens.
814
+
815
+ ## Description
816
+ Implement the login API endpoint with proper validation, rate limiting, and token generation.
817
+
818
+ ## Implementation Plan
819
+
820
+ ### Step 1: Create Login Route Handler
821
+ Create \`app/api/auth/login/route.ts\` with POST handler:
822
+ - Accept email and password in request body
823
+ - Validate input format using zod schema
824
+ - Return 400 for invalid input with specific error messages
825
+
826
+ ### Step 2: Implement User Lookup
827
+ Query the users table by email:
828
+ - Use Supabase client with service role for server-side
829
+ - Return generic "Invalid credentials" to prevent email enumeration
830
+ - Handle case-insensitive email matching
831
+
832
+ ### Step 3: Password Verification
833
+ Compare provided password with stored hash:
834
+ - Use bcrypt.compare() for timing-safe comparison
835
+ - Log failed attempts for security monitoring
836
+ - Increment rate limit counter on failure
837
+
838
+ ### Step 4: Generate JWT Tokens
839
+ On successful authentication:
840
+ - Generate access token (24h expiry) with user ID and email
841
+ - Generate refresh token (7d expiry) stored in httpOnly cookie
842
+ - Include minimal claims to reduce token size
843
+
844
+ ### Step 5: Implement Rate Limiting
845
+ Add rate limiting middleware:
846
+ - Use Redis or in-memory store for attempt tracking
847
+ - Key by IP address + email combination
848
+ - Block after 5 failed attempts for 15 minutes
849
+ - Return 429 with Retry-After header
850
+
851
+ ### Step 6: Add Tests
852
+ Create \`app/api/auth/login/route.test.ts\`:
853
+ - Test successful login returns tokens
854
+ - Test invalid email format returns 400
855
+ - Test wrong password returns 401
856
+ - Test rate limiting blocks after 5 attempts
857
+
858
+ ## Files Affected
859
+ - \`app/api/auth/login/route.ts\` (create)
860
+ - \`lib/auth/jwt.ts\` (create)
861
+ - \`lib/auth/password.ts\` (create)
862
+ - \`lib/middleware/rate-limit.ts\` (create)
863
+ - \`app/api/auth/login/route.test.ts\` (create)
864
+
865
+ ## Codebase Context
866
+ - Using Next.js 14 App Router
867
+ - Supabase for database and auth
868
+ - JWT library: jose
869
+ - Password hashing: bcrypt
870
+ - Validation: zod
871
+
872
+ ## Dependencies
873
+ - jose (JWT handling)
874
+ - bcrypt (password hashing)
875
+ - zod (validation)
876
+
877
+ ## Technical Notes
878
+ - Follow existing API patterns in \`app/api/\` folder
879
+ - Use \`@/lib/supabase/server\` for database access
880
+ - Error responses should match the ErrorResponse type in \`types/api.ts\`
881
+ \`\`\`
882
+
883
+ ---
884
+
885
+ #### Roadmap Block
886
+
887
+ A Roadmap provides a timeline view of Epics across time periods (quarters, months, sprints).
888
+
889
+ **Key Fields:**
890
+ - \`description\` - Purpose of this roadmap
891
+ - \`timeline\` - Visual timeline data with columns and epic placements
892
+ - \`notes\` - Additional context, risks, assumptions
893
+
894
+ **Timeline Structure:**
570
895
  \`\`\`json
571
- { "id": "dashboard", "label": "Dashboard", "type": "page", "children": [] }
896
+ {
897
+ "columns": [
898
+ { "id": "q1-2025", "name": "Q1 2025", "period": "quarter" },
899
+ { "id": "q2-2025", "name": "Q2 2025", "period": "quarter" }
900
+ ],
901
+ "items": [
902
+ {
903
+ "epicRef": "user-authentication",
904
+ "startColumn": "q1-2025",
905
+ "spanColumns": 1,
906
+ "row": 0
907
+ }
908
+ ],
909
+ "settings": { "defaultPeriod": "quarter" }
910
+ }
911
+ \`\`\`
912
+
913
+ ---
914
+
915
+ #### Workflow: From User Request to Implementation
916
+
917
+ **1. User/Product Owner Creates Epic:**
572
918
  \`\`\`
919
+ "We need user authentication for the MVP"
920
+ → Create Epic: user-authentication
921
+ → Set priority: high
922
+ → Set dates: Q1 2025
923
+ \`\`\`
924
+
925
+ **2. User/Product Owner Breaks Down Stories:**
926
+ \`\`\`
927
+ Epic: user-authentication
928
+ → Story: email-login (5 points)
929
+ → Story: oauth-integration (8 points)
930
+ → Story: password-reset (3 points)
931
+ \`\`\`
932
+
933
+ **3. AI Agent Reads Story and Plans:**
934
+ \`\`\`
935
+ AI reads: email-login story
936
+ → Creates Task: implement-login-api (4 hours)
937
+ → Creates Task: build-login-form (3 hours)
938
+ → Creates Task: add-login-tests (2 hours)
939
+ \`\`\`
940
+
941
+ **4. AI Agent Executes and Documents:**
942
+ \`\`\`
943
+ Task: implement-login-api
944
+ → Status: in_progress
945
+ → [AI implements code]
946
+ → Status: done
947
+ → Outcome: "Completed. Added rate limiting as discussed."
948
+ \`\`\`
949
+
950
+ ---
951
+
952
+ #### Best Practices for AI Agents
953
+
954
+ 1. **Read the Story First**: Before creating tasks, fully understand the user story and acceptance criteria.
955
+
956
+ 2. **Break Down Thoughtfully**: Create tasks that are:
957
+ - Independently testable
958
+ - 2-8 hours of work each
959
+ - Clearly scoped with specific files
960
+
961
+ 3. **Document Your Plan**: In \`plan_steps\`, explain:
962
+ - What you'll do in each step
963
+ - Why you're making certain choices
964
+ - What files you'll touch
965
+
966
+ 4. **Track Codebase Context**: Note relevant:
967
+ - Existing patterns to follow
968
+ - Related code to reference
969
+ - Constraints or dependencies
970
+
971
+ 5. **Update Outcomes**: After completing a task, document:
972
+ - What was actually done
973
+ - Any deviations from the plan
974
+ - Issues encountered and how they were resolved
573
975
 
574
976
  ## Block References
575
977
 
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epiccontext/mcp",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "MCP server and CLI for syncing EpicContext documentation with local codebases",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",