feat(sdlc): SDLC orchestrator, approval checkpoint, and context injection (#1707, #1706, #1708)#1817
Draft
tomgreen981111-cipher wants to merge 7 commits into
Conversation
…tracking (Anantys-oss#1704) Implements instance/sdlc/{issue_name}/ workspace layout with atomic STATE.json reads/writes, phase artifact paths, and workspace archival for terminal phases (PRODUCTION_READY, ABANDONED). Foundation required by Anantys-oss#1707 (/sdlc orchestrator) and Anantys-oss#1706 (approval checkpoint) — both need a place to read and persist phase state between missions.
10 coordinated prompt files in koan/skills/core/sdlc/prompts/ — each with explicit input/output artifact contracts, so phases build on each other rather than running in isolation: - research.md — codebase analysis, risk classification (Low/Medium/High) - architecture.md — reads RESEARCH.md, produces ADR.md with rejected alternatives - planning.md — reads ADR+RESEARCH, produces PLAN.md with machine-runnable acceptance criteria - implementation.md — reads PLAN.md, writes code + records test output in IMPLEMENTATION.md - security_review.md — diff-only, VERDICT: APPROVED/NEEDS_FIX block for fix-loop parsing - qa_review.md — coverage gaps + acceptance criteria check, same verdict format - sre_review.md — resource leaks, failure modes, deployment safety, same verdict format - fix.md — reads only NEEDS_FIX verdicts, touches only cited files, bounded by MAX_FIX_ITERATIONS - tech_writer.md — reads final IMPLEMENTATION.md, writes CHANGELOG + README updates - orchestrator.md — reads STATE.json, queues next phase mission, sends Telegram updates All prompts load via load_skill_prompt() with @include partials resolved. SKILL.md skeleton created (handler.py comes with Anantys-oss#1707). 55 tests verify loading, substitution, and artifact contracts. Closes Anantys-oss#1705
…kpoint (Anantys-oss#1707, Anantys-oss#1706) Adds /sdlc command for multi-phase software development lifecycle workflows: Research → Architecture → Planning → [human approval gate] → Implementation → Review (security/QA/SRE) → Documentation → Production Ready. - `handler.py`: /sdlc Telegram command — create/resume/jump/approve workflows - `sdlc_phase_runner.py`: Python CLI runner invoked per phase via skill_dispatch - `iteration_manager.py`: approval gate — sentinel missions return `sdlc_wait` - `mission_executor.py`: idle-wait config entry for `sdlc_wait` action - `command_handlers.py`: /approve and /reject commands with bridge dispatch - `skill_dispatch.py`: sdlc_phase runner + command builder registration - Tests: 31 tests covering handler, dispatch, approval gate, command handlers Depends on sdlc_state.py (Anantys-oss#1813) and phase prompts (Anantys-oss#1814) merged from base branch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nantys-oss#1708) - Fix-loop now injects only failing experts' reviews (+ PLAN.md) rather than all three review artifacts — keeps fix context minimal and targeted - Remove dead cmd_extra / context_file / reviewer_context_file code that was built but never passed to run_command_streaming - Drop unused get_artifact_path and tempfile imports - Fix silent broad except in command_handlers._resolve_approval_project - Remove sdlc_phase from CLAUDE.md core skill list (it's an internal runner registered in skill_dispatch, not a user-facing SKILL.md skill) - Add 2 tests for FIX_LOOP targeted context injection
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.
What
Implements the `/sdlc` multi-phase workflow command — Research → Architecture → Planning → [human gate] → Implementation → Review (security/QA/SRE) → Fix loop → Documentation → Production Ready.
Why
Closes #1707, #1706, #1708. Depends on #1813 (state persistence) and #1814 (prompt corpus) — merge those first.
Without an approval gate between Planning and Implementation, the "agent proposes, human decides" contract was broken for multi-phase work — a flawed plan would silently launch implementation and burn quota. The fix-loop context injection (#1708) ensures the fix agent only sees failing reviews, not all three — keeping context minimal.
How
handler.py—/sdlc <issue-name>Telegram command: create/resume/jump;--approvealiassdlc_phase_runner.py— Per-phase CLI runner; parallel review (security/QA/SRE);_build_context()injects prior artifacts per phase; FIX_LOOP gets only failing experts' reviews + PLAN.mditeration_manager.py— Approval sentinel missions returnsdlc_wait— never executedcommand_handlers.py—/approveand/rejectfollow thehandle_resume()patternskill_dispatch.py—sdlc_phaserunner + command builder registeredTesting
33 tests: handler (start/resume/jump/approve), skill dispatch, approval gate, command handlers, context injection (fix-loop targeted). Full suite 15908 passed.