home / skills / legacybridge-tech / claude-plugins / project-search

project-search skill

/projectmaster/skills/project-search

npx playbooks add skill legacybridge-tech/claude-plugins --skill project-search

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
15.9 KB
---
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.