Skip to content

Epic: lean contract, runtime retirement, native tools #504

Open

Description

@sungjunlee

Epic: lean contract, runtime retirement, native tools

Why

dev-backlog's heaviest weight is no longer long prose. It is code and tests
that still guard responsibilities whose consumers are gone: a second (bash)
parser of the sprint file, close orchestration that wraps the GitHub CLI, JSON
compatibility fields for a deprecated consumer, staleness age math for a
deleted check, and an automatic migration from a layout that may no longer
exist anywhere. Meanwhile a few real safety defects sit in the guards that
must stay: the triage writer can be fed a report its own contract produces
and run an empty milestone edit, and the "provably disjoint" track guard can
report disjoint tracks that are not.

This epic fixes the guards first, pins the surviving guarantees with
outcome-based tests, then removes runtime surfaces, then shortens the skills
and verifies native-tool paths.

Guarantees that survive every change

  • One declared task authority; a failed authority read stops execution with no
    fallback to sprint text or a local copy; the authority is never inferred
    from installed CLIs.
  • Every authority mutation is a deliberate call. triage-apply stays the only
    scripted writer, mutates only human-accepted actions, and is GitHub-only.
  • Concurrent active tracks never overlap silently; anything not provably
    disjoint is reported as such.
  • spec/* changes only through explicit human approval.
  • No adapter layer, no background sync, no replacement lifecycle engine.

Sequence

One sprint is active at a time because the scopes overlap.

Sprint Milestone Batches
S1 lean contract and baseline Lightening 1: lean contract and baseline 1: #494, #495 · 2: #496 · 3: #497
S2 runtime retirement Lightening 2: runtime retirement 1: #498 · 2: #499 · 3: #500
S3 concise skills and native tools Lightening 3: concise skills and native tools 1: #501 · 2: #502 · 3: #503

Work

Done when

Non-goals

  • A tracker adapter layer, a generic validation framework, a glob engine, a
    scheduler, or a replacement lifecycle script.
  • Line-count or file-count targets.
  • Closing or editing the earlier "2026-09 skill lightening" milestone.

Each issue records its implementer and cross-family reviewer. Effort bands in
the issues are estimates, not deadlines or acceptance gates.

Activity

  1. sungjunlee commented on Oct 2, 2026

    @sungjunlee
    OwnerAuthor

    백로그 트리아지 (2026-10-02 19:00 KST) — update (에픽 체크박스 stale)

    S1의 child #494 · #495 · #496이 모두 CLOSED로 착지했습니다. 본문 "Work"/"Sequence"의 #494 · #495 · #496 라인은 stale입니다.

    남은 열린 child는 #497 · #498 · #499 · #500 · #501 · #502 · #503입니다.

    이 에픽 자체는 구현 세션에 배정하지 않습니다(type:epic 힌트). 저장소에 status:* 라벨 체계가 없어 게이트 라벨 조정은 하지 않았습니다. 이번 트리아지는 구현하지 않았습니다.

  2. sungjunlee commented on Oct 9, 2026

    @sungjunlee
    OwnerAuthor

    Keep the retained boundaries small and evidence-based

    This is a coordination addendum, not a separate implementation task.

    Publication action: Add this complete comment to existing #504; no new epic.
    Priority / severity / type / effort: P1 / Medium aggregate / coordination / 30 minutes.
    Objective: Incorporate three bounded follow-ups without expanding the retirement programme.
    Why: Independent review confirmed avoidable unlogged effects and incomplete recovery projections; installation evidence needs a narrower claim.
    Scope: D1 supplements #502, D2 supplements #500, and D3 supplements #503 with #500 import coordination. Link each final result here.
    Out of scope: Exactly-once delivery, durable intent journals, new package architecture, concurrent-writer guarantees, and additional authority integrations.
    Investigation: #495 and #496 are closed prerequisites; their argument and normal-input fixes do not cover these boundaries. The refreshed main still matches 4c22937507dd547078003f23befb8b0148d3f101.
    Acceptance criteria: Each retained change has named outcome evidence and preserved approval gates. Record here that B02's simultaneous-init observation remains deferred under #499 and B03's simultaneous-apply observation remains deferred under #502. Reopen only with an established concurrent-writer use case and explicit stale-lock recovery cost. Do not label either experiment a production incident.
    Validation command: env -u GH_TOKEN -u GITHUB_TOKEN -u GH_REPO -u GH_HOST TRIAGE_APPLY_INTEGRATION=0 node --test --test-concurrency=1 tests/no-skill-package-tests.test.js tests/backlog-triage/triage-apply.test.js tests/dev-backlog/sprint-state.test.js tests/dev-backlog/backlog-doctor.test.js
    Risk: Turning small failures into new persistence or orchestration systems would defeat this epic.
    Dependencies: Existing #494 gates remain; accept #497's baseline before editing its outcomes.
    Parallel safety: codex/497-outcome-baseline is an active writer; no second baseline writer. Serialize shared runtime/test edits.
    Rollback: Remove only this addendum or revert individual implementation changes; preserve original issues, records and approval history.
    Fixed-SHA evidence / repro strength: B04 fake comment then EACCES; B05 malformed Plan omission; B01 isolated-folder import failure. Deterministic synthetic evidence, no live effects or verified standalone installation failure.

    Registered follow-ups — implementation remains pending

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions