Skip to main content
Glama
README.md10.3 kB
# Development Stories - Reddit MCP Server **Purpose:** This directory contains development epics and user stories for the Reddit MCP Server project. --- ## Directory Structure ``` stories/ ├── README.md # This file (story management guide) ├── epic-01-mvp-foundation.md # Week 1-2: MVP Development ├── epic-02-monetization.md # Week 3-4: v1.0 Launch (TBD) └── epic-03-enterprise.md # Week 5-8: v2.0 Features (TBD) ``` --- ## Epic/Story Structure ### What is an Epic? An epic is a large body of work that can be broken down into multiple user stories. Each epic represents a significant milestone (e.g., MVP, v1.0 launch, enterprise features). **Epic Structure:** - Epic ID: EPIC-XX - Timeline: Week range - Goal: High-level objective - Stories: 5-15 stories - Success Criteria: Measurable outcomes ### What is a Story? A story is a small, deliverable unit of work (1-2 days max). Each story follows this template: ```markdown ## Story X: [Title] **Story ID:** MVP-XXX **Priority:** P0/P1/P2 **Estimated Effort:** S (2-3h) / M (4-6h) / L (6-8h) ### User Story As a [persona], I want [goal] so that [benefit]. ### Acceptance Criteria - [ ] Criterion 1 - [ ] Criterion 2 ### Technical Notes - Reference: [doc link] - Key implementation details ### Definition of Done - [ ] Code complete - [ ] Tests passing - [ ] Documented ### Dependencies - Story IDs that must be completed first ``` --- ## Story States ### State Definitions 1. **Backlog**: Story written but not started 2. **In Progress**: Developer actively working on story 3. **Code Review**: Code complete, awaiting review 4. **Testing**: In QA/testing phase 5. **Done**: All acceptance criteria met, Definition of Done complete 6. **Blocked**: Cannot proceed due to dependency/issue ### How to Mark Stories as Done When completing a story: 1. **Check all boxes** in Acceptance Criteria and Definition of Done 2. **Update story header** with completion date: ```markdown **Status:** Done ✅ **Completed:** 2025-11-10 ``` 3. **Add completion notes** at bottom: ```markdown --- ## Completion Notes - Actual effort: 5 hours - Issues encountered: Redis connection timeout in tests (fixed) - Lessons learned: Cache key generation needed more thorough testing ``` 4. **Update Epic Metrics** in epic file (velocity tracking) --- ## Sprint Planning ### Week 1-2: MVP Sprint **Goal:** Complete EPIC-01 (10 stories) **Sprint Breakdown:** #### Week 1 (Days 1-5) - **Day 1**: MVP-001 (Project Setup) - **Day 2**: MVP-002 (Redis Caching) + MVP-003 (Reddit Client) - **Day 3**: MVP-004 (Rate Limiter) + MVP-005 (FastMCP Server) - **Day 4**: MVP-006 (search_reddit) - **Day 5**: MVP-007 (get_subreddit_posts) #### Week 2 (Days 6-10) - **Day 6**: MVP-008 (get_post_comments) - **Day 7**: MVP-009 (get_trending_topics) - **Day 8-9**: MVP-010 (Testing & Documentation) - **Day 10**: Buffer/polish/beta testing **Daily Standup Questions:** 1. What did I complete yesterday? 2. What am I working on today? 3. Any blockers? --- ## Story Template (For New Stories) Use this template when creating new stories in future epics: ```markdown ## Story X: [Title] **Story ID:** [EPIC]-XXX **Priority:** P0 (Must Have) / P1 (Should Have) / P2 (Nice to Have) **Estimated Effort:** S (2-3h) / M (4-6h) / L (6-8h) / XL (8-16h) ### User Story As a [user type] I want [goal] So that [benefit/reason] ### Acceptance Criteria - [ ] Functional requirement 1 - [ ] Functional requirement 2 - [ ] Performance requirement (if applicable) - [ ] Error handling requirement ### Technical Notes - **Reference Documents:** [Link to architecture/spec docs] - **Key Technologies:** [Libraries/frameworks used] - **Implementation Approach:** [Brief technical approach] - **Potential Gotchas:** [Known challenges] ### Definition of Done - [ ] Code implemented and follows coding-standards.md - [ ] Unit tests written (>80% coverage) - [ ] Integration tests written (if applicable) - [ ] Type checking passes (mypy --strict) - [ ] Linting passes (Black, Ruff) - [ ] Code reviewed by [reviewer] - [ ] Documentation updated (if public API) - [ ] Deployed to test environment - [ ] Acceptance criteria verified ### Dependencies - [STORY-ID]: [Reason why this is needed first] ### Test Scenarios 1. **Happy Path:** [Description] 2. **Edge Case 1:** [Description] 3. **Error Scenario:** [Description] --- ## Completion Notes *(Fill after completion)* - **Completed:** [Date] - **Actual Effort:** [Hours] - **Issues Encountered:** [List] - **Lessons Learned:** [List] ``` --- ## Story Estimation Guidelines ### Effort Levels | Size | Hours | When to Use | |------|-------|-------------| | S (Small) | 2-3h | Simple, clear implementation. No unknowns. | | M (Medium) | 4-6h | Moderate complexity. Some research needed. | | L (Large) | 6-8h | Complex feature. Multiple components. Testing time. | | XL (Extra Large) | 8-16h | Should be split into smaller stories. Avoid if possible. | ### Estimation Factors - Implementation complexity - Testing time (unit + integration) - Documentation time - Unknown/research time - Integration with other components **Rule of Thumb:** If a story is >8 hours, split it into multiple stories. --- ## Working with Dependencies ### Story Dependencies Some stories must be completed before others can start: **Example:** - MVP-006 (search_reddit) depends on MVP-002 (caching), MVP-003 (Reddit client), MVP-004 (rate limiter) ### How to Handle Blocked Stories If a story is blocked: 1. **Mark as Blocked:** ```markdown **Status:** Blocked ⚠️ **Blocked By:** MVP-002 (Redis caching not complete) **Blocked Since:** 2025-11-08 ``` 2. **Work on non-dependent story** from sprint backlog 3. **Communicate in standup:** "MVP-006 is blocked by MVP-002, working on MVP-005 instead" 4. **Unblock when dependency resolves:** ```markdown **Status:** In Progress 🚧 **Unblocked:** 2025-11-09 ``` --- ## Quality Gates Before marking any story as "Done", verify: ### Code Quality - [ ] All acceptance criteria checked - [ ] Type hints on all functions - [ ] Docstrings on public functions - [ ] No linting errors (Ruff) - [ ] No type errors (mypy --strict) - [ ] Code formatted (Black) ### Testing - [ ] Unit tests written and passing - [ ] Integration tests written (if needed) - [ ] Test coverage >80% on new code - [ ] Edge cases covered - [ ] Error scenarios tested ### Documentation - [ ] Public APIs documented - [ ] Complex logic has inline comments - [ ] README updated (if needed) - [ ] Architecture docs updated (if design changed) ### Deployment - [ ] Builds successfully (docker build) - [ ] Runs in local environment - [ ] Environment variables documented (if new) **Golden Rule:** If you wouldn't be comfortable handing this to another developer to maintain, it's not done. --- ## Epic Completion Checklist When all stories in an epic are done: ### Epic Review - [ ] All stories in "Done" state - [ ] Epic success criteria met - [ ] No P0/P1 bugs remaining - [ ] Performance targets achieved - [ ] Documentation complete - [ ] Deployment successful ### Retrospective - [ ] "What went well?" documented - [ ] "What could be improved?" documented - [ ] Action items for next epic created ### Handoff - [ ] Demo recorded (if applicable) - [ ] Beta users notified (if applicable) - [ ] Next epic planning scheduled --- ## Tools & Workflow ### Recommended Workflow 1. **Daily:** - Review today's story - Update story status - Check dependencies - Standup (3 questions) 2. **Per Story:** - Read story fully before starting - Check technical notes and references - Implement feature - Write tests - Check all acceptance criteria - Mark as done with notes 3. **End of Week:** - Update epic velocity - Review blockers - Plan next week's stories ### GitHub Integration (Optional) For teams using GitHub Issues: 1. Create Issue for each story (copy story template) 2. Label with priority (P0/P1/P2) and size (S/M/L) 3. Link to epic with "Part of EPIC-01" in description 4. Use GitHub Projects for kanban board 5. Close issue when story done --- ## FAQ ### Q: What if a story takes longer than estimated? **A:** Update the story with actual effort in completion notes. This helps improve future estimates. If significantly over (2x), consider if story was too large. ### Q: Can I work on multiple stories simultaneously? **A:** Not recommended. Focus on one story at a time to maintain quality and reduce context switching. Exception: If blocked, work on next unblocked story. ### Q: What if requirements change mid-story? **A:** Document change in story notes. If change is minor, proceed. If major (>2 hours impact), pause story and discuss with PM/tech lead. ### Q: How do I handle discovered bugs? **A:** - **Blocker bugs (P0):** Create immediate story, prioritize over current work - **Major bugs (P1):** Add to current sprint - **Minor bugs (P2):** Add to backlog for future sprint ### Q: Can I skip writing tests? **A:** No. Tests are part of Definition of Done. No story is complete without tests. If short on time, reduce scope, don't skip tests. --- ## Story Management Best Practices ### DO: ✅ Keep stories small (1-2 days max) ✅ Write clear acceptance criteria (testable) ✅ Update story status daily ✅ Document completion notes ✅ Test before marking done ✅ Check all dependencies before starting ### DON'T: ❌ Start stories with incomplete dependencies ❌ Skip Definition of Done items ❌ Create stories without acceptance criteria ❌ Leave stories in "In Progress" for >3 days ❌ Work on stories outside current sprint (unless urgent) --- ## References - **PRD:** `/Users/padak/github/apify-actors/docs/prd/prd.md` - **Architecture:** `/Users/padak/github/apify-actors/docs/system-architecture.md` - **Feature Specs:** `/Users/padak/github/apify-actors/docs/feature-specifications.md` - **Coding Standards:** `/Users/padak/github/apify-actors/docs/architecture/coding-standards.md` - **Source Tree:** `/Users/padak/github/apify-actors/docs/architecture/source-tree.md` --- **Questions?** Contact project tech lead or PM. **Last Updated:** 2025-11-05

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/padak/apify-actor-reddit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server