Milestones¶
What is a Milestone¶
A milestone is a named delivery gate that groups related issues and PRs toward a measurable project goal. Milestones are time-boxed or scope-boxed and represent a coherent increment of platform capability.
Milestone Structure¶
Each milestone must define:
| Field | Description |
|---|---|
| Name | Short identifier (e.g., m0-bootstrap, m1-core-backends) |
| Goal | One-sentence description of what "done" means |
| Scope | List of repos and components affected |
| Entry criteria | Prerequisites from prior milestones or external dependencies |
| Exit criteria | Concrete, testable conditions that close the milestone |
| DoD compliance | All PRs within the milestone must satisfy the Definition of Done (docker-compose, kind, standalone CLI validation + breaking change audit) |
Milestone and Documentation Channels¶
Development work flows through two parallel channels:
- Feature milestones — time-boxed or scope-boxed delivery gates for platform capability.
- Documentation expedite channel — docs PRs run independently of milestones and are never gated by them (see SYSTEM_PROMPT.md).
Both channels share the same CI quality gates. Feature milestones reference docs but do not block them.
Epics as Swim Lanes¶
RUNE does not use a traditional agile board with swim lanes. Instead, epics serve as swim lanes — each epic represents a parallel stream of work that can be tracked, prioritized, and staffed independently.
Every issue must belong to an epic¶
No orphan issues. This is enforced by the issue templates: the "Parent Epic" field is required. If no epic exists for the work you're about to do, create the epic first.
This gives us:
| Agile concept | RUNE equivalent |
|---|---|
| Swim lane | Epic (type/epic label) |
| Story / task | Issue (bug, feature, or other type) |
| Sprint | Milestone (time-boxed or scope-boxed) |
| Board | GitHub Issues filtered by epic |
| Progress | Epic checklist (checked child issues / total) |
Epic hierarchy¶
Milestone (m1-core-backends)
├── Epic: Agent Driver Framework (#54)
│ ├── Issue: driver: HolmesGPT (#60)
│ ├── Issue: driver: K8sGPT (#61)
│ └── Issue: driver: Cleric (#62) [blocked]
├── Epic: ML4 Compliance Tooling (#121)
│ ├── Issue: Strict .coveragerc (#123)
│ ├── Issue: Remove security gate bypasses (#122)
│ └── Issue: SAST exclusions (#125)
└── Epic: Operator Feature Parity (#31)
└── Issue: ADR 0004 implementation
Cross-repo epics¶
An epic can span multiple repos. The epic lives in whichever repo owns the primary work stream. Child issues in other repos link back to the epic with a cross-repo reference (e.g., lpasquali/rune-docs#20).
Viewing progress¶
Filter issues by epic to see a swim lane's progress:
# All open issues in epic #121
gh issue list -R lpasquali/rune --label type/epic --search "in:body #121"
# Or simply open the epic issue — the checklist shows progress
gh issue view 121 -R lpasquali/rune
Release Roadmap¶
| Milestone | Target | Significance |
|---|---|---|
| m4 | First beta | Feature-complete enough for external testers. Not production-ready. |
| m10+ | First stable release | Production-ready, designed to meet all requirements for certification (IEC 62443 ML4, SLSA L3). |
Agents and developers must not assume a stable release is imminent. Current version is 0.0.0a2. The path to stable is long and intentional — compliance, security, and quality gates will not be rushed.
Stability decisions require approval from both the copyright owner and project maintainers. No agent or automated process may promote a release to beta or stable. Agents may recommend readiness based on exit criteria, but the decision to cut a beta or declare stability is a human judgment call — made by maintainer consensus with the copyright owner holding final authority.
Milestone Lifecycle¶
- Proposed — Goal and scope drafted; not yet committed.
- Active — Work is in progress; issues and PRs are tagged.
- Blocked — External dependency or decision needed; document the blocker.
- Closed — All exit criteria met;
CURRENT_STATE.mdupdated.
Documentation Channel¶
Documentation changes run on a parallel expedited channel independent of feature milestones. See SYSTEM_PROMPT.md — Documentation Expedite Channel for the policy.
Rationale: rune-docs is the single source of truth for all agents. Blocking docs behind feature milestones means agents operate on stale information, which compounds errors across the entire platform.