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
..
2025-11-12 00:19:03 +01:00
2026-02-08 02:02:46 +01:00
2025-10-13 23:09:18 +02:00
2025-10-25 02:37:45 +02:00
2026-02-08 12:29:11 +01:00
2025-09-30 17:28:39 +02:00
2025-10-02 09:14:24 +02:00
2025-10-13 20:26:08 +02:00
2025-10-02 09:14:24 +02:00
2025-10-13 23:09:18 +02:00
2025-12-15 23:42:54 +01:00
2025-10-14 18:15:26 +02:00
2025-10-04 01:53:31 +02:00
2026-02-08 22:45:46 +01:00
2025-10-25 02:37:45 +02:00
2026-02-08 02:02:46 +01:00
2026-01-06 13:31:02 +01:00
2026-02-08 18:03:35 +01:00
2025-12-16 10:27:05 +01:00
2026-02-08 02:02:46 +01:00
2025-10-02 15:33:32 +02:00
2025-12-17 12:02:42 +01:00
2025-11-10 11:43:25 +01:00
2026-01-06 03:41:03 +01:00
2025-09-16 03:04:18 +02:00
2025-11-09 10:41:28 +01:00
2025-10-14 13:46:34 +02:00
2025-09-30 13:09:37 +02:00
2025-09-24 01:14:27 +02:00
2025-09-27 09:31:47 +02:00
2025-10-03 10:45:43 +02:00
2025-09-27 08:28:10 +02:00
2025-12-17 12:02:42 +01:00
2025-10-14 13:46:34 +02:00
2026-01-06 21:34:46 +01:00
2025-10-06 03:03:38 +02:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2025-10-03 10:35:16 +02:00
2025-10-06 03:03:38 +02:00
2025-10-06 03:03:38 +02:00
2025-10-06 03:03:38 +02:00
2025-09-30 17:28:39 +02:00
2026-01-04 21:02:51 +01:00
2026-02-08 02:02:46 +01:00
2025-10-06 03:03:38 +02:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-02-08 02:02:46 +01:00
2026-01-06 12:32:38 +01:00
2026-02-08 02:02:46 +01:00
2025-10-06 03:03:38 +02:00
2025-09-29 21:21:21 +02:00
2026-02-08 02:02:46 +01:00