Skip to content

Sprint 2 Kickoff: Automations Foundation (R1, R2, R6) - #9

Draft
jacobprall wants to merge 3 commits into
mainfrom
cursor/sprint-2-kickoff-9927
Draft

Sprint 2 Kickoff: Automations Foundation (R1, R2, R6)#9
jacobprall wants to merge 3 commits into
mainfrom
cursor/sprint-2-kickoff-9927

Conversation

@jacobprall

@jacobprall jacobprall commented May 24, 2026

Copy link
Copy Markdown
Owner

Sprint 2 Kickoff + Specification + Clarification

Initializes Sprint 2 of the Marathon-driven development cycle, targeting Milestone 2 (Automations).

Selected Requirements

ID Title Scope
R1 Schedule/Cron Triggers Automation entity + cron scheduler service
R2 Event Triggers (GitHub/GitLab) Extend InboundRouter for automation dispatch
R6 Automation Builder UI Create/list scaffold for managing automations

Artifacts Produced

File Pipeline Step Description
.marathon/sprints/002/spec.md speckit-specify 5 user stories, 15 FRs, 7 success criteria
.marathon/sprints/002/clarifications.md speckit-clarify 10 ambiguities resolved, 5 alt implementations

Key Architecture Decisions

  • No backward compatibility constraint on InboundRouter — refactor to multi-match (evaluate-all)
  • Polling scheduler inside gateway (30s interval, Redis lock) over dedicated cron service
  • Single-page form with collapsible sections for builder UI (not multi-step wizard)
  • cron-parser library for cron expression validation + next-run calculation
  • FK + audit table for session-automation linkage (fast filtering + rich history)
  • Automation status: active / paused / error (auto-error after 3 consecutive failures)
  • Cooldown on event automations to prevent thundering herd

Sprint Goals

Sprint 2 delivers the automation foundation: a persistent automation entity with cron/schedule triggers that fire unattended agent sessions, GitHub/GitLab event bindings via a refactored InboundRouter with multi-match dispatch, and a web UI scaffold (list + create flow) for managing automations.

Next Steps (Sprint DAG)

  1. specify
  2. clarify
  3. plan → implementation plan with file paths and API contracts
  4. architect-review → structural validation
  5. ux-review → UI/UX validation
  6. decompose → task breakdown for parallel implementation
Open in Web Open in Cursor 

cursoragent and others added 3 commits May 24, 2026 02:11
…ding, builder UI

- Mark R1, R2, R6 as [IN SPRINT] in requirements backlog
- Update sprint-context.md with Sprint 2 phase and goals
- Create .marathon/sprints/002/ directory
- Produce spec.md via speckit-specify: user stories, functional requirements,
  success criteria, edge cases, and clarifications for the automation foundation

Co-authored-by: Jacob Prall <prall.jacob@gmail.com>
…natives

- Produce clarifications.md: 10 ambiguities resolved, 3 gaps identified,
  1 contradiction found, 5 alternative implementations evaluated
- Remove backward compatibility constraint per user direction
- Refactor InboundRouter to multi-match (evaluate-all) architecture
- Revise FR-007/008/009 to reflect unified routing approach
- Add automation timeout, cooldown, and error state fields
- Decide: single-page form (not wizard), cron-parser lib, polling scheduler

Co-authored-by: Jacob Prall <prall.jacob@gmail.com>
- Timer fires at exact nextRunAt moment (ms precision vs 30s polling lag)
- Redis pub/sub coordinates across gateway instances on automation CRUD
- Atomic DB CAS (compare-and-swap on next_run_at) for at-most-once
- 5-minute safety-net fallback for missed pub/sub events
- SC-001 tightened: fires within 1s (was 60s)

Co-authored-by: Jacob Prall <prall.jacob@gmail.com>
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