Files
markitect-main/migrations/prompts/002_create_resolution_config.sql
tegwick 5f463e5b20 feat(prompts): implement Phase 3 - Resolver Engine (FR-3)
Implement deterministic multi-space resolution with configurable search order.

Core Features:
- ResolutionContext and ResolutionResult for tracking resolution state
- MultiSpaceResolutionStrategy implementing FR-3.1 search order:
  1. Local InformationSpace
  2. Explicitly included InformationSpaces
  3. Default InformationSpace
  4. Team/Shared InformationSpace
- PromptResolver with macro resolution logic
- ContextCompiler for assembling resolved prompts
- ResolutionConfig for configurable resolution behavior

Resolution Behavior:
- Required macros fail if not found (FR-3.2)
- Optional macros resolve to empty (FR-3.3)
- Generate macros detected for deferred execution (FR-3.4)
- Deterministic search order with duplicate removal
- Partial compilation support for debugging

Tests (31 passing):
- 14 strategy tests (search order, duplicates, priority)
- 9 resolver tests (required, optional, generate, multi-space)
- 8 compiler tests (substitution, dependencies, digests)

Implements:
- FR-3.1: Deterministic resolution order
- FR-3.2: Required macro validation
- FR-3.3: Optional macro fallback
- FR-3.4: Generate macro detection
- FR-3.5: Max generation depth configuration

Files Created:
- markitect/prompts/resolver/models.py
- markitect/prompts/resolver/strategy.py
- markitect/prompts/resolver/resolver.py
- markitect/prompts/resolver/compiler.py
- migrations/prompts/002_create_resolution_config.sql
- tests/unit/prompts/test_resolution_strategy.py
- tests/unit/prompts/test_prompt_resolver.py
- tests/unit/prompts/test_context_compiler.py

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 22:45:46 +01:00

24 lines
1.1 KiB
SQL

-- Migration 002: Create resolution configuration table
-- Implements FR-3.1: Resolution order configuration
-- Date: 2026-02-08
-- Resolution configuration table
CREATE TABLE IF NOT EXISTS prompt_resolution_config (
space_id TEXT PRIMARY KEY,
included_spaces JSON, -- Array of space IDs to search
default_space_id TEXT,
shared_space_id TEXT,
max_generation_depth INTEGER DEFAULT 3,
config JSON, -- Additional configuration options
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Comments (for documentation)
-- prompt_resolution_config.space_id: Primary space for this configuration
-- prompt_resolution_config.included_spaces: Ordered array of space IDs for resolution search
-- prompt_resolution_config.default_space_id: Default space for common artifacts
-- prompt_resolution_config.shared_space_id: Team/shared space (optional)
-- prompt_resolution_config.max_generation_depth: Maximum nesting depth for generators
-- prompt_resolution_config.config: Additional JSON configuration
-- prompt_resolution_config.updated_at: Last configuration update