16 KiB
name, description
| name | description |
|---|---|
| project-search | 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:
-
Parse search query from user message:
- Extract search terms
- Identify search type (content, person, date, milestone, etc.)
- Detect filters (date range, file type, status)
-
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"
-
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
-
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:
- Read appropriate README.md file:
meetings/README.mdfor meeting searchsprints/README.mdfor sprint search- Project
README.mdfor overview
- Parse index entries
- Filter by search criteria
- 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:
- Read relevant YAML file (milestones.yaml)
- Parse structure
- Filter by criteria
- 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:
- Use
Globtool with pattern:meetings/**/*2025-11*.mdfor November meetingssprints/*/sprint-plan.mdfor all sprint plansdocs/**/*.mdfor all documentation
- Filter results by additional criteria
- 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:
- Use
Greptool with search terms - Specify scope (meetings/, sprints/, all project)
- Extract context around matches
- Rank results by relevance
- 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:
- Start with initial search (using above strategies)
- Read found documents
- Extract cross-references (links, mentions, related items)
- Follow links recursively (limited depth)
- Build relationship map
- 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:
-
Execute primary search strategy
-
Collect results:
- File paths
- Titles/descriptions
- Relevant metadata (dates, owners, status)
- Content snippets (for full-text search)
-
Apply filters:
- Date range filter
- Person filter (@mentions)
- Status filter
- Content type filter
-
Check governance (if applicable):
- Read RULE.md for access restrictions
- Filter out restricted content
-
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
-
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:
-
Group results by category:
- Meetings
- Sprints/Iterations
- Milestones
- Documentation
- Decisions
-
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] -
Include result count and search details:
🔍 Search Results for "{query}" Found {count} results in {categories} Search scope: {scope} Filters applied: {filters if any} -
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 -
Offer refinement options:
💡 Refine your search: - "Show only completed" - "Find from last month" - "Search only in sprints" - "Show details for [specific result]" -
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" -
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:
-
If user selects specific result:
User: "Show me the sprint 5 details" -
Read full document:
Read sprints/sprint-05/sprint-plan.md -
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.