feat: integrate open PRs #286, #281, #288 - #294
Merged
Merged
Conversation
## Intent Abandon triggers were a pattern that tried to model explicit workflow cancellation as state machine transitions. In practice they add noise to the transition table without providing value — a user can simply start a new session or switch context without needing a dedicated trigger. Removes all abandon-style transitions from the 14 remaining workflows that still carried them. ## Key decisions - Global transitions removed from sdd-* workflows alongside per-state ones — the global_transitions block itself is dropped where abandon was the only entry, rather than leaving an empty block. - No replacement trigger added: abandoning a workflow is implicit, not modelled. ## Side effects - Supersedes PR #286 (fix/no-abandon-trigger) which covered the same change but conflicted with main after the recent codebase trim.
## Intent Eliminate the hardcoded 'code' default in WorkflowManager and expose runtime domain switching for long-lived processes (MCP server, OpenCode plugin). The LLM can now call load_workflows to switch the active domain set without restarting the server, enabling access to architecture, sdd, office, or other domains on demand. ## Key decisions - Four-level env var precedence chain: constructor param > WORKFLOW_DOMAINS > DEFAULT_DOMAINS > VIBE_WORKFLOW_DOMAINS > 'code'. VIBE_WORKFLOW_DOMAINS kept as lowest-priority alias for backward compatibility. - Domain descriptions embedded directly in the load_workflows tool description rather than a separate domain:// resource — resources were removed from the codebase; the tool description is sufficient for LLM discovery. - setDomains() validates against KNOWN_DOMAIN_NAMES and clears maps before reloading to prevent workflow accumulation. - getAllAvailableWorkflows() uses constructor param instead of env var mutation for thread safety. ## Side effects - DOMAIN_DESCRIPTIONS and KNOWN_DOMAIN_NAMES exported from core - load_workflows tool registered in mcp-server and opencode-plugin - Supersedes PR #281 (refactor/configurable-default-domain) which conflicted with main after the recent codebase trim
…ecture recovery ## Intent Adds a 5-state Socratic Code-Theory Recovery workflow for undocumented legacy codebases. Based on Naur (1985) / Ralf Müller: builds a hierarchical Question Tree from source code, surfaces OPEN_QUESTIONS for the team to answer, then synthesizes arc42, PRD, Cockburn use-case spec, and Nygard ADRs — with an independent Fagan/ATAM review pass. The OPEN_QUESTIONS file is the primary deliverable; gaps are never invented. ## Key decisions - Belongs to the 'architecture' domain (not 'code'), so it loads when WORKFLOW_DOMAINS includes 'architecture' or via load_workflows tool. - Gate enforced in both answer_open_questions and synthesize_documentation (belt-and-suspenders) to prevent fabrication. - All output files namespaced -<context-name> to support multiple bounded contexts without collision. ## Side effects - Supersedes PR #288 (feat/socratic-architecture-recovery-workflow), which conflicted on .beads/ and visualizer files no longer present in main
This was referenced Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Integrates three open PRs that conflicted with
mainafter the recent codebase trim. All changes were rebased cleanly onto currentmainrather than merging the original branches.Commits
fix(workflows): remove abandon triggers from all workflows
Supersedes #286. Removes all
abandon_*transitions from the 14 remaining workflows (bugfix,tdd,greenfield,epcc,qrspi,minor,posts,skilled-bugfix,skilled-epcc,skilled-greenfield,sdd-bugfix,sdd-feature,sdd-greenfield,slides). Globalabandontransitions in sdd-* workflows are also removed.feat: make default workflow domain configurable at runtime
Supersedes #281. Adds
DOMAIN_DESCRIPTIONS,KNOWN_DOMAIN_NAMES,WorkflowManagerOptions,setDomains(), and a four-level env var precedence chain toWorkflowManager. Registers aload_workflowstool in both mcp-server and opencode-plugin so the LLM can switch domains at runtime. Thedomain://resource from the original PR was dropped since resources were removed from the codebase — domain descriptions are embedded directly in the tool description.feat(workflows): add socratic-recovery workflow
Supersedes #288. Adds
resources/workflows/socratic-recovery.yaml(domain:architecture) — a 5-state Socratic Code-Theory Recovery workflow for undocumented legacy codebases. The cockburn-use-cases template was excluded (removed in the original PR itself before merge). Visualizer registration skipped — the visualizer package no longer exists inmain.