Skip to content

feat(skills): add orchestrate-epic + fast-feature devflow skills - #78

Merged
AndreJorgeLopes merged 1 commit into
mainfrom
feat/orchestrate-epic
Jul 28, 2026
Merged

feat(skills): add orchestrate-epic + fast-feature devflow skills#78
AndreJorgeLopes merged 1 commit into
mainfrom
feat/orchestrate-epic

Conversation

@AndreJorgeLopes

Copy link
Copy Markdown
Owner

TL;DR

Two new devflow skills for coordinating and driving epic work.

  • /devflow:orchestrate-epic <epic-url> (the "brain"): ingests an epic, builds the dependency graph from BOTH formal Jira issuelinks AND the free-text "Dependencies" notes in ticket descriptions, computes a deterministic parallel wave schedule + eligibility/workable filter, presents it, offers to spawn one fast-feature session per workable ticket, then stays resident as a coordinator that re-verifies unblocks (Jira + MR) before advancing a wave.
  • /devflow:fast-feature <ticket> (the reusable per-ticket driver, also invoked by orchestrate-epic): an ambiguity-only quick brainstorm, then spec, plan, and lock-tests back-to-back in ONE session, spawning a new session only at the execute boundary.

Why

The standard devflow pipeline is per-ticket and spawns a session at every phase boundary (spec, plan, lock-tests, impl). Coordinating a multi-ticket, cross-repo epic on top of that meant holding the whole dependency picture by hand. These skills split that into a coordination layer (orchestrate-epic) that composes a fast per-ticket layer (fast-feature), so you can start every non-blocking ticket in parallel without breaking dependencies, and keep one resident brain that answers "what is unblocked now".

Real driver: on the MES-4414 WhatsApp-tags vertical, every child ticket had EMPTY formal Jira issuelinks; all dependencies lived only in the "Dependencies" description text. A links-only coordinator would read a zero-edge graph and call everything unblocked. orchestrate-epic reads both sources, so it schedules correctly.

Changes

Path What
skills/orchestrate-epic/SKILL.md The coordinator skill (ingest, DAG, schedule, present, spawn, resident loop)
skills/orchestrate-epic/lib/schedule.py Deterministic topo leveling + eligibility/workable filter + cycle detection, abstain contract (0 confident / 10 abstain / 1 error)
skills/orchestrate-epic/lib/schedule_test.py 14 behavior tests (stdlib, no framework)
skills/orchestrate-epic/requirements.json Deps (python3 required; atlassian/defuddle/glab/gh/hindsight optional)
skills/fast-feature/SKILL.md + requirements.json The per-ticket fast driver
skills/registry.json Registered both skills
devflow-plugin/** Generated plugin copies, command files, and plugin.json (via make skills-sync)

Design notes

  • Deterministic core is the only offloaded step. schedule.py owns the parts that must be exact (topological order, cycle detection, the eligibility rule); everything else (discovery, edge classification, brief distillation, verification, Q&A) stays as agent judgment.
  • Eligibility rule: exclude tickets assigned to someone else and statuses past active; include (unassigned AND To Do) or (assigned to me AND (To Do OR In Progress)). The "mine + In Progress" allowance covers moving a ticket to In Progress before actually starting it.
  • Per-dimension trust: a supplied PRD / design / spec is trusted and not re-discovered; only un-provided dimensions are auto-discovered.
  • fast-feature suppresses the two intermediate phase-handoffs (spec, plan) so the flow runs in one session, and spawns only at the execute boundary. This mirrors the existing precedent where the brainstorming wrapper overrides an upstream terminal handoff.

Validation

  • schedule.py: 14/14 behavior tests pass. Fixtures are the real MES-4414 tag graph, plus a cycle case (asserts abstain, exit 10) and the eligibility edge cases.
  • tessl review run: orchestrate-epic 94, fast-feature 88 (both at or above 85).
  • Live read-only dry-run of orchestrate-epic against MES-4414 through the present phase (ingest live states, build edges, run the committed schedule.py, present). Output correct; stopped before any spawn.
  • make skills-check and make flows-check pass locally.

🤖 Generated with Claude Code

orchestrate-epic is a persistent, cross-repo epic coordinator: it ingests an
epic (with per-dimension trust for user-supplied PRD/design/spec), builds the
dependency graph from BOTH formal Jira issuelinks AND free-text "Dependencies"
notes (the latter matters — real epics carry zero formal links), computes a
parallel wave schedule + eligibility/workable filter deterministically via
lib/schedule.py, presents the schedule, spawns one fast-feature session per
workable ticket with a distilled per-ticket brief, then stays resident as a
coordinator that re-verifies unblocks (Jira + MR) before advancing a wave.

fast-feature is the reusable per-ticket driver (also invoked by orchestrate-epic):
ambiguity-only quick brainstorm, then spec -> plan -> lock-tests back-to-back in
ONE session (suppressing the intermediate phase-handoffs), spawning a new session
only at the execute boundary.

Validation: schedule.py has 14 passing behavior tests (lib/schedule_test.py,
fixtures = the real MES-4414 tag graph, cycle-abstain + eligibility edge cases);
tessl review scores orchestrate-epic 94, fast-feature 88 (both >= 85).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 28, 2026 08:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@AndreJorgeLopes
AndreJorgeLopes merged commit 0e85120 into main Jul 28, 2026
1 check passed
@AndreJorgeLopes
AndreJorgeLopes deleted the feat/orchestrate-epic branch July 28, 2026 08:43
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