Skip to content

Reconcile issue status from named delivery slices #2673

Open

Description

@codeforester

Problem

The accepted Base governance design and implementation plan identify package 7c as a required deliverable. This issue translates that package into a reviewed, bounded issue/PR train; it does not authorize implementation before the issue reaches Ready.

Expected behavior

Implement the slice-based issue-status reconciliation described in the accepted design, after readiness and PR-body contracts exist. A slice's state comes from its latest PR; drafts and active implementation remain In Progress; a replaced PR does not make work Done; a closed-unmerged latest PR blocks Done until the maintainer records a disposition. Define completion evidence for planned deliveries with no PR. Apply derivation only after implementation starts and preserve Ready when no PR has begun.

Scope and non-goals

Scope: Implement the slice-based issue-status reconciliation described in the accepted design, after readiness and PR-body contracts exist. A slice's state comes from its latest PR; drafts and active implementation remain In Progress; a replaced PR does not make work Done; a closed-unmerged latest PR blocks Done until the maintainer records a disposition. Define completion evidence for planned deliveries with no PR. Apply derivation only after implementation starts and preserve Ready when no PR has begun.

Non-goals: Do not silently expand scope, activate unreviewed policy, mirror issue fields onto PRs, grant agents merge/release authority, or make changes outside the named affected areas. Any new product decision or materially new work gets a separate issue and decision record.

Affected areas

Impact and evidence

  1. Product intent: Implements only the accepted governance design and plan; any product-requirement change must be filed separately.
  2. Architecture and contracts: Destination is the package-specific section of the merged governance design/implementation plan plus the affected canonical contract named above.
  3. User guidance: The issue identifies likely guidance paths; the implementation PR must name updated user/FAQ/README paths or give a change-specific reason why none is affected.
  4. CLI/API and reference: The affected-area list determines whether CLI/API/reference docs change; the implementation PR must cite the exact reference path or justify no impact.
  5. Operations and safety: No privileged automation or merge authority is implied; the PR must list operational/security effects and any rollback.
  6. Validation and testing: The issue lists the planned tests; the PR must report executed validation and explain any unavailable test.
  7. Examples and downstream use: The implementation PR must identify affected examples/consumers or give evidence that this change has no downstream surface.
  8. Governance and contributor process: This package changes or preserves the contributor/governance contract as described in Scope; links must point to the canonical rules.
  9. Decision records: No new decision is accepted by this issue; any durable deviation requires a proposed decision record and explicit maintainer acceptance.
  10. Release notes: The PR must include a user-facing release-note line or a reasoned none; this issue does not pre-decide that disposition.

These are issue-stage dispositions to refine during Triage. Before Ready, every category must have its exact destination or evidence-based no-impact reason; the PR repeats the ten-category evidence for actual changes.

Open questions

  • None known. If implementation exposes an unresolved contract, return this issue to Triage and record the decision before implementation continues.

Plan

  • S1: One focused PR for this issue. Use Fixes #N only if no additional slice is needed; if the maintainer approves multiple PRs, name each S1…Sn here before the first is opened and use Part of #N.
  • Dependencies: the P2 issue, the P3b issue, the P4 issue, the P6 issue, the P8a issue
  • Acceptance criteria:
  • Each approved issue slice can be mapped to one or more PRs with an unambiguous latest PR.
  • Draft PRs and open implementation work keep the issue In Progress; only all slices in Open-ready or Merged states can make it In Review.
  • Done requires every slice merged or closed with a recorded maintainer disposition; one closed-unmerged slice cannot mask unfinished or replacement work.
  • No-PR changes have named, reviewable completion evidence; no automation writes status before implementation begins.
  • Reconciliation is idempotent, auditable and tested against mixed, replaced, draft, closed-unmerged and no-PR cases.
  • Validation:
  • Add table-driven state cases covering all transitions and precedence rules.
  • Run dry-run against representative live issue/PR histories and compare with maintainer decisions before enabling writes.
  • Verify no status write occurs for Ready issues with no PR or before In Progress.
  • Risks and rollback: A false Done or In Review status hides work; start read-only/dry-run, retain an explicit maintainer override, and disable reconciliation on mismatch.
  • Decision impact: No decision is accepted merely by implementing the issue. Record the relevant accepted decision/ADR and file a superseding record if the maintainer approves a change.

Activity

  1. self-assigned this
    on Nov 10, 2026
  2. added
    ciContinuous integration, tests, automation, or release workflows
    on Nov 10, 2026
  3. added this to the v1.11.0 milestone on Nov 11, 2026
  4. codeforester commented on Nov 11, 2026

    @codeforester
    CollaboratorAuthor

    Pre-Triage review against the accepted plan (#2664, tracker #2665)

    1. Existing status writers. basectl gh already sets Status=In Progress when work starts: gh.sh:935 and gh_issue.sh:544, added in fix(gh): move issues to In Progress when work starts #2616. basectl gh project issue set-fields --status can set any status. List these writers, and say whether reconciliation replaces them or runs alongside. Two writers will fight.
    2. Agent loop. The original Run the manual issue review loop with maintainer escalation #2576 state machine and the feat: agent controller L1 - select, claim, and prepare #2578/feat: issue claim and lease so two agents cannot work one issue #2579 claim/lease work would also write status. Settle a single writer in the #2555 crosswalk, not here and there separately.
    3. When writes start. The criteria already require a dry run first. Add Pin the released governance checker and promote rules from evidence #2683, the pinned released checker, as the gate before automated writes are enabled; design §14.4 says enforcement runs from a pinned release from its first automated use.

    Dependencies text. Replace the P2 issue, the P3b issue, the P4 issue, the P6 issue, the P8a issue with #2667, #2668, #2576, #2573 and #2672. The native blocked-by links are already correct; the body is what a reviewer reads.

    Contract text. The Impact, Scope and Open questions sections are still the shared template text. The Impact section is identical in 24 of #2666–#2690, and Scope repeats Expected behavior. That's fine in Backlog. Before Ready, replace each with this issue's own dispositions.

    Claude Code (Opus 5.5), reviewing from Ramesh's account at his request. This review comes before Triage, so it is not an issue-loop round.

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

Metadata

Metadata

Assignees

Labels

ciContinuous integration, tests, automation, or release workflows

Type

Projects

  • Status
    Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions