Skip to content

feat(sdlc): SDLC orchestrator skill + human approval checkpoint (#1707, #1706)#1

Draft
tomgreen981111-cipher wants to merge 6 commits into
koan/sdlc-phase-prompts-1705from
koan/sdlc-orchestrator-1707
Draft

feat(sdlc): SDLC orchestrator skill + human approval checkpoint (#1707, #1706)#1
tomgreen981111-cipher wants to merge 6 commits into
koan/sdlc-phase-prompts-1705from
koan/sdlc-orchestrator-1707

Conversation

@tomgreen981111-cipher

Copy link
Copy Markdown
Owner

Summary

  • Implements /sdlc Telegram command — creates and resumes multi-phase SDLC workflows for GitHub issues
  • Adds sdlc_phase_runner.py Python CLI runner invoked per mission, advancing through phases: Research → Architecture → Planning → [approval gate] → Implementation → Review (security/QA/SRE) → Documentation → Production Ready
  • Human approval gate: planning phase queues a [sdlc:awaiting-approval:{name}] sentinel; iteration_manager returns sdlc_wait so it's never executed; /approve / /reject commands resume or abandon
  • 31 tests covering handler, skill_dispatch, approval gate, command_handlers, phase runner helpers

Dependencies

This PR depends on (stacked on koan/sdlc-phase-prompts-1705):

Key design decisions

  • Python runner, not LLM orchestrator: each phase runs one sub-task via Claude CLI; Python manages transitions — efficient and auditable
  • Approval sentinel pattern: [sdlc:awaiting-approval:{name}] tag in missions.md; iteration_manager detects and skips it, giving the human a clean pause point
  • Context injection: prior phase artifacts (RESEARCH.md, ARCHITECTURE.md, PLAN.md, etc.) injected as context up to 80,000 chars budget — each phase builds on prior work
  • Review phase: three reviewers (security/QA/SRE) run sequentially within one invocation; VERDICT: NEEDS_FIX in any artifact triggers fix loop

Test plan

  • All 31 new tests pass (KOAN_ROOT=/tmp/test-koan pytest koan/tests/test_sdlc_orchestrator.py -v)
  • Full test suite passes (KOAN_ROOT=/tmp/test-koan pytest koan/tests/ -q)
  • make lint clean (only pre-existing recurring.py PERF401 error, not introduced by this branch)
  • Manual: /sdlc my-feature "description" → phases advance → /approve → implementation queued
  • Manual: plan phase produces PLAN.md → sentinel appears in missions.md → loop shows sdlc_wait → /approve removes sentinel and queues implementation

🤖 Generated with Claude Code

Tom Green and others added 6 commits June 7, 2026 04:48
…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.
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant