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>
24 lines
1.1 KiB
SQL
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
|