--- name: project-search description: Search across all project artifacts including meetings, sprints, milestones, documentation, and decisions. Use when user mentions "find", "search", "where is", "locate", "show me", or asks questions about project content. Multi-strategy search using README indexes, pattern matching, and full-text search. --- # Project Search Skill ## When to use this Skill Activate when the user: - Asks to find or locate project content - Uses keywords: "find", "search", "where is", "locate", "show me" - Asks questions about project history or decisions - Needs to find meetings, sprints, or documentation - Wants to search by person, date, topic, or milestone - References specific content they can't locate ## Workflow ### Phase 1: Query Analysis **Objective**: Understand what the user is searching for and determine search strategy. **Steps**: 1. **Parse search query** from user message: - Extract search terms - Identify search type (content, person, date, milestone, etc.) - Detect filters (date range, file type, status) 2. **Categorize search intent**: - **Content search**: "Find decisions about database" - **Person search**: "What has @alice worked on" - **Date search**: "Meetings from last week" - **Milestone search**: "What's in beta release milestone" - **Sprint search**: "Show sprint 5 stories" - **Topic search**: "Anything about authentication" - **Status search**: "Show blocked items" 3. **Extract search parameters**: - **Keywords**: Main search terms - **Person**: @mentions or names - **Date range**: "last week", "Q1", "after Jan 1", specific dates - **Content type**: meetings, sprints, docs, decisions, all - **Status**: completed, in-progress, blocked, planned - **Milestone/Sprint**: Specific milestone or sprint number 4. **Determine search scope**: - Project root only - Specific subdirectory (meetings/, sprints/, etc.) - Across entire workspace **Example Analysis**: ``` User: "Find all meetings where we discussed the API design" Parsed: - Intent: Content search - Keywords: ["API design"] - Content type: meetings - Date range: all time - Search scope: meetings/ Strategy: README index → Content search in meetings/ ``` ### Phase 2: Strategy Selection **Objective**: Choose optimal search strategy based on query type. **Search strategies (in order of preference)**: #### Strategy 1: README.md Index Search (Fastest) **Use when**: - Searching by file name, title, or general topic - Need list of files in category - Recent content (README indexes are up-to-date) **Process**: 1. Read appropriate README.md file: - `meetings/README.md` for meeting search - `sprints/README.md` for sprint search - Project `README.md` for overview 2. Parse index entries 3. Filter by search criteria 4. Return matching entries with descriptions **Example**: ``` Search: "Find sprint 5" → Read sprints/README.md → Find entry: "Sprint 5: Authentication Features" → Return: sprints/sprint-05/sprint-plan.md ``` #### Strategy 2: YAML/Structured Data Search (Fast) **Use when**: - Searching milestones (milestones.yaml) - Searching by metadata (dates, owners, status) - Need exact matches on structured fields **Process**: 1. Read relevant YAML file (milestones.yaml) 2. Parse structure 3. Filter by criteria 4. Return matching entries **Example**: ``` Search: "Show milestones owned by @alice" → Read milestones.yaml → Filter: owner == "@alice" → Return: List of alice's milestones ``` #### Strategy 3: Pattern Matching (Fast) **Use when**: - Searching by filename patterns - Date-based filename search - Type-based search (all *.md in sprints/) **Process**: 1. Use `Glob` tool with pattern: - `meetings/**/*2025-11*.md` for November meetings - `sprints/*/sprint-plan.md` for all sprint plans - `docs/**/*.md` for all documentation 2. Filter results by additional criteria 3. Return matching files **Example**: ``` Search: "Meetings from November" → Glob: meetings/**/*2025-11*.md → Return: List of November meeting files ``` #### Strategy 4: Full-Text Content Search (Slower) **Use when**: - Searching for specific terms in content - Need to find mentions of topics, names, or concepts - Other strategies insufficient **Process**: 1. Use `Grep` tool with search terms 2. Specify scope (meetings/, sprints/, all project) 3. Extract context around matches 4. Rank results by relevance 5. Return matches with snippets **Example**: ``` Search: "Find discussions about OAuth implementation" → Grep: pattern="OAuth" path=meetings/ → Find matches in 3 meeting files → Return: Files with context snippets ``` #### Strategy 5: Cross-Reference Search (Comprehensive) **Use when**: - Need to find all related content - Following links and references - Building complete picture **Process**: 1. Start with initial search (using above strategies) 2. Read found documents 3. Extract cross-references (links, mentions, related items) 4. Follow links recursively (limited depth) 5. Build relationship map 6. Return full result set with connections **Example**: ``` Search: "Everything about beta release milestone" → Find milestone in milestones.yaml → Follow related_sprints links → Find meetings mentioning beta release → Find docs created for beta → Return: Complete set with relationships ``` ### Phase 3: Execute Search **Objective**: Run selected search strategy and gather results. **Steps**: 1. **Execute primary search strategy** 2. **Collect results**: - File paths - Titles/descriptions - Relevant metadata (dates, owners, status) - Content snippets (for full-text search) 3. **Apply filters**: - Date range filter - Person filter (@mentions) - Status filter - Content type filter 4. **Check governance** (if applicable): - Read RULE.md for access restrictions - Filter out restricted content 5. **Rank results** by: - **Relevance**: Match quality to query - **Recency**: Newer content ranked higher - **Location**: Closer to project root ranked higher - **Completeness**: Fully completed items vs drafts 6. **If no results from primary strategy**: - Fall back to next strategy - Broaden search criteria - Suggest related searches ### Phase 4: Format and Present Results **Objective**: Present search results in clear, actionable format. **Steps**: 1. **Group results** by category: - Meetings - Sprints/Iterations - Milestones - Documentation - Decisions 2. **Format result entries**: ``` 📄 [Category] Title Path: path/to/file.md Date: YYYY-MM-DD [Relevant metadata: Owner, Status, etc.] [If content search: Context snippet with highlights] ``` 3. **Include result count and search details**: ``` 🔍 Search Results for "{query}" Found {count} results in {categories} Search scope: {scope} Filters applied: {filters if any} ``` 4. **Present results**: **Format**: ``` 🔍 Search Results: "{query}" Found {total} results across {categories} 📋 Meetings ({count}) - [2025-11-13: Sprint 5 Planning](meetings/sprint-planning/2025-11-13_sprint-5-planning.md) "Discussed API design for authentication endpoints..." - [2025-11-06: Architecture Review](meetings/general/2025-11-06_api-architecture.md) "@alice presented OAuth 2.0 implementation options..." 🏃 Sprints ({count}) - [Sprint 5: Authentication Features](sprints/sprint-05/sprint-plan.md) Status: Active | Stories: 8 | Owner: @bob 🎯 Milestones ({count}) - [Beta Release](milestones.yaml#beta-release) Target: 2025-03-31 | Status: In Progress | Progress: 75% 📚 Documentation ({count}) - [API Design Document](docs/api-design.md) Owner: @alice | Updated: 2025-11-10 🔗 Cross-References ({count}) [If cross-reference search performed] - Sprint 5 → Beta Release Milestone - API Design Doc → Sprint 5 Stories - Sprint Planning → Architecture Review Meeting ``` 5. **Offer refinement options**: ``` 💡 Refine your search: - "Show only completed" - "Find from last month" - "Search only in sprints" - "Show details for [specific result]" ``` 6. **If too many results**: ``` ℹ️ Showing top {limit} results. {remaining} more found. Narrow your search: - Add date range: "from last week" - Specify type: "only meetings" - Add filters: "owned by @name" ``` 7. **If no results**: ``` 🔍 No results found for "{query}" Suggestions: - Check spelling - Try broader terms - Search related terms: "{suggestions}" - Search in different location Recent content: [Show recently added/updated files as alternatives] ``` ### Phase 5: Detailed View (Optional) **Objective**: If user wants details on specific result, provide full context. **Steps**: 1. **If user selects specific result**: ``` User: "Show me the sprint 5 details" ``` 2. **Read full document**: ``` Read sprints/sprint-05/sprint-plan.md ``` 3. **Present complete information**: ``` 📄 Sprint 5: Authentication Features **Status**: Active (Day 8 of 14) **Goal**: Complete user authentication and profile management **Dates**: 2025-11-01 to 2025-11-14 **Progress**: - Completed: 3/8 stories (18/45 points) - 40% - In Progress: 2 stories - Blocked: 1 story (OAuth config) **Team**: - @alice: 2 stories - @bob: 3 stories - @carol: 2 stories - @david: 1 story **Related**: - Milestone: Beta Release (contributes to) - Meetings: [Sprint 5 Planning](link), [Daily Standups](link) - Docs: [Auth Design](link) 📄 Full document: sprints/sprint-05/sprint-plan.md 💡 Actions: - "Update sprint 5 progress" - "Show sprint 5 meetings" - "Mark story complete in sprint 5" ``` ## Special Cases ### Case 1: Person-specific search ``` User: "What has @alice been working on?" Process: 1. Search all content for @alice mentions 2. Filter by recency (last sprint/month) 3. Categorize: - Assigned stories/tasks - Meeting attendances - Owned milestones - Created documents Result: 📊 @alice's Recent Activity **Current Work** (Sprint 5): - Story: OAuth Integration (8sp) - In Progress - Story: Profile Edit Page (3sp) - Completed ✅ **Meetings** (Last 2 weeks): - Sprint 5 Planning (2025-11-01) - Architecture Review (2025-11-06) - Daily Standups (10 attendances) **Milestones**: - Owner: Security Audit (Target: 2025-03-20) **Documents**: - Created: API Design Doc (2025-11-10) - Updated: Auth Spec (2025-11-08) ``` ### Case 2: Timeline/Date-based search ``` User: "What happened in the project last week?" Process: 1. Calculate date range (last week) 2. Search all content within range 3. Sort chronologically 4. Group by day Result: 📅 Project Activity: Nov 6 - Nov 13, 2025 **Monday, Nov 6** - Meeting: Sprint 4 Retrospective - Sprint 4 completed (38/40 points) - Milestone updated: Beta Release (60% → 75%) **Tuesday, Nov 7** - Sprint 5 started - Stories assigned to team **Wednesday, Nov 8** - Daily standup recorded - Decision: Use PostgreSQL for auth **[Continue for each day]** 📊 Week Summary: - Meetings: 8 - Stories completed: 5 - Documents updated: 3 - Milestones progressed: 1 ``` ### Case 3: Topic/Theme search ``` User: "Find everything about database decisions" Process: 1. Full-text search for "database" 2. Focus on decisions/ directory 3. Also search meetings and docs 4. Cross-reference related content Result: 🔍 Search: "database" 📋 Decisions (3): - [001: Database Selection](decisions/001-database-choice.md) PostgreSQL chosen for auth system (2025-10-15) - [005: Caching Strategy](decisions/005-caching.md) Redis for session caching (2025-10-20) - [012: Migration Approach](decisions/012-database-migration.md) Flyway for schema versioning (2025-11-01) 📋 Meetings discussing database (4): - Architecture Review (2025-10-15) - Sprint 3 Planning (2025-10-16) - Tech Spike Results (2025-10-19) - Database Design Session (2025-10-22) 📚 Related Documentation (2): - Database Schema (docs/database-schema.md) - Migration Guide (docs/migration-guide.md) 🏃 Related Sprints: - Sprint 3: Database setup and migration 🔗 Cross-references: All database decisions link to Sprint 3 and Beta Release milestone ``` ### Case 4: Status-based search ``` User: "Show me all blocked items" Process: 1. Search sprints for status: blocked 2. Search milestones for status: delayed 3. Search meetings for blocker discussions Result: ⚠️ Blocked Items 🏃 Sprints: - Sprint 5, Story: OAuth Integration Blocked: Waiting for third-party API credentials Owner: @alice Blocked since: 2025-11-10 📋 Meetings mentioning blockers: - Daily Standup (2025-11-10) - Daily Standup (2025-11-11) - Daily Standup (2025-11-13) 💡 Action needed: - @alice: Follow up on API credentials - Consider workaround or mock implementation ``` ## Error Handling ### Error: No RULE.md found ``` ⚠️ No RULE.md found. Search will proceed with default project structure. Note: For best results, initialize project governance: "Initialize project" ``` Proceed with search using standard directories. ### Error: No results found ``` 🔍 No results found for "{query}" Checked: - ✓ Meetings - ✓ Sprints - ✓ Milestones - ✓ Documentation - ✓ Decisions Suggestions: - Check spelling: "{query}" - Try broader terms - Try related searches: * "{suggestion 1}" * "{suggestion 2}" 📋 Recent project activity: [Show last 5 updates as alternatives] ``` ### Error: Search too broad ``` ℹ️ Your search "{query}" returned {count} results. This may be too many to review effectively. Suggestions to narrow: 1. Add date range: "from last month" 2. Specify type: "only in meetings" 3. Add person filter: "by @name" 4. Add status: "completed only" Or continue with: "Show top 10 results" ``` ### Error: Invalid date range ``` ⚠️ Could not parse date: "{date_input}" Supported formats: - Specific: "2025-11-13" or "November 13, 2025" - Relative: "last week", "last month", "yesterday" - Range: "from Nov 1 to Nov 15" - Quarter: "Q1", "Q2 2025" Please rephrase your date filter. ``` ## Integration with Other Skills ### With AkashicRecords search-content Both Skills can search same project: - AkashicRecords: Knowledge base, articles, general content - ProjectMaster: Project-specific content (meetings, sprints, milestones) If both exist, search both and merge results. ### With track-meeting Skill Found meetings can be: - Viewed in detail - Updated - Linked to other content ### With manage-sprint Skill Found sprints can be: - Updated with progress - Viewed in detail - Cross-referenced with milestones ### With track-milestone Skill Found milestones can be: - Updated with status - Viewed with full dependencies - Linked to contributing sprints ## Best Practices ### 1. Start with README indexes Fastest search method. Always try first. ### 2. Use specific search terms Specific terms yield better results than generic ones. ### 3. Add filters to narrow results Date ranges, content types, and person filters improve relevance. ### 4. Follow cross-references Related content often provides fuller picture. ### 5. Search by person for team insights Find what specific team members are working on or have created. ### 6. Use date-based search for retrospectives "What did we do last sprint?" captures recent history. ### 7. Search by milestone for big picture See all content contributing to major goals. ### 8. Combine search strategies If one strategy fails, automatically try next. ## Notes - Multi-strategy search ensures comprehensive results. - README index search is fast and accurate for well-maintained projects. - Full-text search is powerful but slower - use as fallback. - Cross-reference search builds complete context around topics. - Search results link to Skills that can act on found content. - Person-based and date-based searches provide valuable team insights. --- Effective search transforms project content into accessible knowledge. This Skill makes finding information fast and intuitive.