Skip to content

FEAT-006: Python orchestration engine v2 + sync + local sessions - #31

Merged
cursor[bot] merged 8 commits into
mainfrom
cursor/python-engine-v2-0ab2
Jul 27, 2026
Merged

FEAT-006: Python orchestration engine v2 + sync + local sessions#31
cursor[bot] merged 8 commits into
mainfrom
cursor/python-engine-v2-0ab2

Conversation

@jmjava

@jmjava jmjava commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Starts v2 orchestration: a reusable Python package that can drive the SDLC-SPDD workflow instead of relying only on bash — plus milestone↔Jira/GitHub sync, ADF-formatted Jira descriptions, local/offline work sessions, and a testable issue-sync harness.

What’s new

  • engine/sdlc_engine — pointer / workflow / registry / archive
  • Link sync: links, sync-links [--repair], sync-roadmap
  • Remote issues: issues draft|push|pull (GitHub gh / Jira JIRA_*; --apply to mutate)
  • Jira description formatting: milestone markdown → ADF (Cloud REST v3) or wiki (Server v2); issues draft --format adf|wiki; pull ADF→markdown
  • Local/offline sessions: local start|list|capture|shelf|resume|promote|abandon (LOCAL-*)
  • Issue sync tests: mocked Jira/GitHub write-back + live GitHub Issues CI job

Jira formatting fix

Jira Cloud rejects plain markdown strings for description. The engine now:

  1. Builds a structured markdown body from ## Jira (Summary / Description / Business value / Scope / Acceptance / Traceability)
  2. Converts to ADF for POST /rest/api/3/issue (default on *.atlassian.net)
  3. Falls back once to wiki/v2 on 400 when JIRA_DESCRIPTION_FALLBACK=1
  4. Previews with issues draft --system jira --format adf

Try it

pytest -q engine/tests
SDLC_ENGINE=python ./scripts/sdlc.sh issues draft FEAT-006-python-orchestration-engine --system jira --format adf
SDLC_ENGINE=python ./scripts/sdlc.sh issues push <WORK-ID> --system jira --apply   # needs JIRA_* env

Note

Permission probes left open issues #32 and #33 — this environment’s token can create but not close. Please close manually; CI create tests close with GITHUB_TOKEN.

REASONS Canvas

  • Work ID: FEAT-006-python-orchestration-engine
  • Canvas: spdd/canvas/FEAT-006-python-orchestration-engine.md

Test Plan

python3 -m pip install -e './engine[dev]'
pytest -q engine/tests
SDLC_GITHUB_INTEGRATION=1 pytest -q engine/tests/test_issues_github_integration.py --run-github-integration
./tests/test-sdlc-engine-shim.sh
Open in Web Open in Cursor 

cursoragent and others added 3 commits July 27, 2026 01:06
Introduce engine/sdlc_engine for pointer, workflow, team registry, and archive
with a CLI and pytest suite. scripts/sdlc.sh gains SDLC_ENGINE=shell|python|auto
(default shell) so bash remains stable while callers can opt into Python.

Co-authored-by: John Menke <jmjava@gmail.com>
Remove committed __pycache__ and egg-info; keep the source package clean.

Co-authored-by: John Menke <jmjava@gmail.com>
Introduce links/sync-links/sync-roadmap/issues commands in the Python engine so
requirements/milestones stay aligned with canvas Metadata, Linked Work status,
ROADMAP summary, and remote issue drafts (gh / JIRA_*). Dogfood repair across
existing milestone requirements.

Co-authored-by: John Menke <jmjava@gmail.com>
@cursor cursor Bot changed the title FEAT-006: Python orchestration engine v2 FEAT-006: Python orchestration engine v2 + milestone sync Jul 27, 2026
cursoragent and others added 2 commits July 27, 2026 01:18
Give exploratory/agent sessions a first-class machine-private identity under
.sdlc/local-sessions/ so work is tracked without inventing FEAT/SPIKE artifacts.
Promote later into canvas + milestone requirement + claim. Route local* through
the Python engine even when SDLC_ENGINE=shell.

Co-authored-by: John Menke <jmjava@gmail.com>
Co-authored-by: John Menke <jmjava@gmail.com>
@cursor cursor Bot changed the title FEAT-006: Python orchestration engine v2 + milestone sync FEAT-006: Python orchestration engine v2 + sync + local sessions Jul 27, 2026
cursoragent and others added 3 commits July 27, 2026 01:40
Cover milestone↔ticket write-back with mocked Jira HTTP and fake gh unit tests,
plus a live GitHub Issues integration suite (pull always; create/close behind
SDLC_GITHUB_ISSUE_CREATE). Fix empty Metadata bullet parsing that swallowed the
next line and blocked canvas Source Issue repair after GitHub push.

Co-authored-by: John Menke <jmjava@gmail.com>
Co-authored-by: John Menke <jmjava@gmail.com>
Jira Cloud rejects plain markdown for description fields. Convert milestone
## Jira markdown into structured ADF on push (wiki markup for Server v2),
preview via issues draft --format adf|wiki, and pull ADF back to markdown.

Co-authored-by: John Menke <jmjava@gmail.com>
@cursor
cursor Bot marked this pull request as ready for review July 27, 2026 02:06
@cursor
cursor Bot merged commit fc2b66b into main Jul 27, 2026
14 checks passed
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.

2 participants