59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
|
|
# Task ID: 49
|
||
|
|
|
||
|
|
**Title:** Implement read_prompts tool for ongoing retrieval
|
||
|
|
|
||
|
|
**Status:** done
|
||
|
|
|
||
|
|
**Dependencies:** 48 ✓
|
||
|
|
|
||
|
|
**Priority:** high
|
||
|
|
|
||
|
|
**Description:** Create the read_prompts MCP tool that allows clients to request additional context by keywords after the session is ungated.
|
||
|
|
|
||
|
|
**Details:**
|
||
|
|
|
||
|
|
1. Add read_prompts tool definition:
|
||
|
|
```typescript
|
||
|
|
private getReadPromptsTool(): Tool {
|
||
|
|
return {
|
||
|
|
name: 'read_prompts',
|
||
|
|
description: 'Request additional project context by keywords. Use this whenever you need guidelines, policies, or conventions related to your current work.',
|
||
|
|
inputSchema: {
|
||
|
|
type: 'object',
|
||
|
|
properties: {
|
||
|
|
tags: {
|
||
|
|
type: 'array',
|
||
|
|
items: { type: 'string' },
|
||
|
|
description: 'Keywords describing what context you need'
|
||
|
|
}
|
||
|
|
},
|
||
|
|
required: ['tags']
|
||
|
|
}
|
||
|
|
};
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
2. Implement read_prompts handler:
|
||
|
|
- Always use keyword matching (not LLM) for precision
|
||
|
|
- Exclude already-retrieved prompts from response
|
||
|
|
- Add newly retrieved prompts to session state
|
||
|
|
- Include reminder about more prompts available
|
||
|
|
|
||
|
|
3. Response format:
|
||
|
|
```
|
||
|
|
[Matched prompt content - deduplicated]
|
||
|
|
|
||
|
|
Remember: you can request more prompts at any time with read_prompts({ tags: [...] }).
|
||
|
|
The project may have additional guidelines relevant to your current approach.
|
||
|
|
```
|
||
|
|
|
||
|
|
**Test Strategy:**
|
||
|
|
|
||
|
|
- Unit test: read_prompts returns matched prompts by keyword
|
||
|
|
- Unit test: Already retrieved prompts excluded from response
|
||
|
|
- Unit test: Newly retrieved prompts added to session state
|
||
|
|
- Unit test: Response includes reminder text
|
||
|
|
- Unit test: read_prompts while gated returns error
|
||
|
|
- Unit test: Empty tags returns empty response
|
||
|
|
- Unit test: Uses keyword matching not LLM
|