Implements MCP server for semantic search across GSD projects: MCP Tools: - gsd_memory_search: Search across all registered projects - gsd_memory_decisions: Find decisions from SUMMARY/PROJECT.md - gsd_memory_patterns: Find patterns from SUMMARY.md - gsd_memory_pitfalls: Find pitfalls from RESEARCH.md - gsd_memory_stack: Find tech stack entries - gsd_memory_register: Register project with memory - gsd_memory_index: Trigger indexing/update - gsd_memory_status: Show system status Architecture: - QMD wrapper with grep fallback when QMD unavailable - YAML frontmatter extractors for GSD document types - Project registry at ~/.gsd/projects.json - Auto-install via bin/install.js for Claude Code Workflow integrations: - new-project: Registers project with memory - plan-phase: Indexes after planning - execute-phase: Indexes after execution - complete-milestone: Indexes milestone completion - Researcher agents query memory before Context7 Tests: 117 passing (66 unit + 51 integration) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
28 lines
689 B
TypeScript
28 lines
689 B
TypeScript
import { readFileSync } from 'fs';
|
|
import { join, dirname } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
/**
|
|
* Read a test fixture file
|
|
*/
|
|
export function readFixture(filename: string): string {
|
|
const fixturePath = join(__dirname, 'fixtures', filename);
|
|
return readFileSync(fixturePath, 'utf-8');
|
|
}
|
|
|
|
/**
|
|
* Get the path to the mock planning directory
|
|
*/
|
|
export function getMockPlanningPath(): string {
|
|
return join(__dirname, 'fixtures', 'mock-planning');
|
|
}
|
|
|
|
/**
|
|
* Get path to a specific fixture file
|
|
*/
|
|
export function getFixturePath(filename: string): string {
|
|
return join(__dirname, 'fixtures', filename);
|
|
}
|