## Changes - `workflow/synthesis.go` — 5-stage synthesis pipeline as Temporal workflow - `workflow/synthesis_test.go` — 5 tests using Temporal test framework ## Pipeline Stages 1. **ChunkAndEmbed** — chunk text + generate embeddings 2. **ExtractEntities** — LLM entity extraction with reflection 3. **ExtractFacts** — pattern + LLM fact extraction 4. **DetectContradictions** — pre-filter + LLM verification 5. **PersistSynthesis** — save all results to DB
- action/ → activity/ (Temporal activities) - statemachine/ → workflow/ (Temporal workflows) - Removed internal/api/ and cmd/server/ (api-gw handles HTTP, Temporal is the API) - Created pkg/types/types.go as single source of truth for all shared types - Extracted CallRoleLLM helper (DRY: implementer/planner/judge shared pattern) - Fixed circular import: workflow_graph_query uses string activity names - Fixed logger.logf → logger.Info/Warn (method didn't exist) - Fixed routing types: added Branches, Activity, BackoffSeconds, TaskActivity - Fixed db.Canvas.Name, db.Client→DB, GetWorkflow→FetchWorkflow - Removed unused imports - All tests pass, build clean, vet clean