Skip to content

work-items: bug path, triage clusters, claim protocol, trackers and morning brief #7578

Open
8 of 10 issues completed
Open

Description

@kyle-sexton

Parent

Refs #7555. Source: PLAN Phase 11, topic poteto-review. Thread: work-items.

Depends on

Outcome

/work-items:work gains a bug path that reproduces before fixing; triage clusters shared signatures
under one parent; one claim protocol covers every worker; trackers ship as two bundled adapters plus
seeds; the morning brief moves into work-items with a Landed section.

Decisions

  • /work-items:work bug path: reproduce twice through the real surface or verify an existing fix
    against the prior commit, objection window, bounded fix with failing test first, draft PR only with
    before-and-after proof, never merge; seven-condition fix gate, each condition a named setting on by
    default, tighten-only (D43, Q527; Lauren's bug bot). Investigate-only mode, later startable from
    an incident thread (Q530).
  • Attended pickup shows "I read this item as: <goal; done when>" above "Proceed?" (D104, Q171;
    Matt's restate).
  • Triage cluster step: one parent per shared signature, symptom or suspect commit; only the parent
    gets agent-ready; defaults tuned on the first 20 clusters (D68, D70, Q55, Q76).
  • No ticket when unsure (one question or needs-info, a "seen again" note); filing_posture moves to
    work-items config (D68, Q56). Triage reads the glossary, ADRs and a scope statement first;
    outside-PR intake default off (Q524).
  • Stale reporter-info: repo setting, default off; only needs-reporter-info items whose reporter
    lacks write access; closed on the operator's yes; lanes never close (D110, Q545).
  • Work classes and their labels dropped; needs-human-implementation dropped; agents settle a
    missing classification (D76, Q505; owner's). The issue-work lane takes only agent-ready items
    (Q581).
  • One claim protocol for every worker, covering any agent write; work.authority dropped (D93, D94,
    Q515).
  • Lifecycle: automated pre-work posted with marker comments; desired-state/result-state pairs;
    prod-error intake; an idea issue gets an interview first (D94, Q522). One engine decides
    agent-readiness; wayfind map items stay out of /work-items:work (D108, Q535).
  • Trackers: github and local-markdown bundled; jira, gitea, linear seeds /work-items:setup
    copies; content hash fast-forwards an untouched copy, an edited copy shows the diff and stops (D86,
    Q514; combined). Tracker binding <home>/work-items.yaml, schema-checked; stop and ask when the
    tracker cannot be determined (Q534, Q551). Seam: add-recurrence now, compensate with the first
    two-way adapter (Q529).
  • /harness-ops:morning-brief moves to /work-items:morning-brief: read-only, Attention first,
    Landed section with 3 sampled PRs under "Read these", landed_at saved after a full read, per
    machine (D68, D72, D87, Q516). Setting: landed-PR sample size 3.
  • One read-only lifecycle-metrics skill (name via /naming:name-it-better): per-issue stage times and
    the five DORA delivery metrics as a team trend, never per person; called by morning-brief,
    go-faster, retro (Q521). Setting: deploy signal, default merge to main.
  • Cost per work item: lanes tag telemetry with the item URL, cloud lanes map ccr.session.id to items,
    /harness-ops:observability rolls up usage per item, never prices (D68, Q58, Q560).
  • /work-items:decompose: each Done-when check is false at the starting commit or the item says why
    (D95, Q523). Day job: Jira first, Teams second and read-only (Q59).
  • Research tags: Q560 OTEL routine; day-job Jira needs no local edits (D86); cluster thresholds on the
    first 20 clusters; forge history readable within API limits for Landed (assumption 12).
  • Sub-topic promotion: this thread gets its own plan at phase start (B7).

Key interfaces

From the design's module layout: "work-items: /work-items:work bug path; triage cluster step;
/harness-ops:morning-brief moves in as /work-items:morning-brief; one read-only lifecycle-metrics
skill (name via /naming:name-it-better); /work-items:decompose Done-when rule. Bundled trackers
github and local-markdown; jira, gitea, linear are seeds /work-items:setup copies."

Contracts, "Tracker adapter": "Contract and conformance tests in the work-items tracker contract;
schema_version covers versions; content hash fast-forwards an untouched seed copy, an edited copy
shows the diff and stops. Seam verbs: add-recurrence now, compensate with the first two-way
adapter. Claim protocol is one for every worker."

Variation verdicts: "Tracker adapters: abstract now; work-items tracker seam; github,
local-markdown bundled, jira/gitea/linear seeds, add-recurrence, later compensate (C4, D86,
Q514, Q529)." "Telemetry sink and cost rollup: contain now; item URL tag, ccr.session.id map,
observability rollup; OTel read-back adapter deferred (Q58, Q560, D61)."

Slices, filed when this phase starts: bug-path-and-pickup, triage-cluster, claim-and-classes,
lifecycle-prework, tracker-seeds-and-binding, and the rest of the phase plan's list.

Done when

  • The morning-brief skill lives under work-items, not harness-ops, and
    rg -n 'harness-ops:morning-brief' plugins docs --glob '!**/CHANGELOG.md' --glob '!.changes/**'
    prints nothing.
  • The tracker test suite exits 0 and rg -l 'work-class' plugins/work-items/skills | wc -l
    returns 0 (14 on main).
  • The triage-cluster and tracker-seeds slices each carry a Probe result: comment.
  • Every slice sub-issue is closed by a merged PR.

Out of scope

  • Status storage (Work-item status thread).
  • Dossier branches (Dossier thread).

Related

Activity

  1. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 16, 2026
  2. github-actions commented on Oct 16, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: structural
    Basis: automated intake triage; the lanes App applied this class.

    Size: Large
    Complexity: High
    Uncertainty: Knowable
    Flags: none
    Blocked by: none

    Decision recorded.

    Question (Issue Triage, 2026-10-21): /work-items:measure-delivery can compute deployment frequency and change lead time, but change fail rate, failed deployment recovery time and deployment rework rate need a "failed deployment" signal. Which signal counts? Options: a revert of a merged PR; red main (CI fails after merge); decide later.

    Answer (owner): "A revert of a merged PR (Recommended)".

    A merge to the default branch that is later reverted counts as a failed deployment, consistent with deploy = merge to main (Q521). Existing signals: pr-merge's red-main culprit and revert report (#8675) and post-merge-detect-silent-revert.yml.

    #7578 (comment)

    This decision, with the earlier naming decision, settles the open questions. This is a multi-slice thread: the bug path, triage clusters, claim protocol, tracker adapters and morning brief. It needs splitting into the slice sub-issues it lists. #7571 and #7577 are listed as dependencies. I could not confirm whether they are still open, so I list no blockers.

    Automated triage, applied by the lanes App.

  3. changed the issue type fromtoon Oct 16, 2026
  4. 7 remaining items

  5. kyle-sexton commented on Oct 20, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded.

    Question (Issue Triage, 2026-10-20): the read-only lifecycle-metrics skill in this issue's Decisions ("per-issue stage times and the five DORA delivery metrics as a team trend, never per person"; name via /naming:name-it-better) needs a name. Shortlist from /naming:name-it-better: measure-delivery, measure-delivery-flow, compute-dora-metrics, measure-flow.

    Answer (owner): "measure-delivery (Recommended)".

    The skill is /work-items:measure-delivery. Basis: a skill name is an imperative verb phrase (docs/plugin-philosophy.md:137); audit, scan and check carry fixed contracts that do not fit (:154-163); "delivery" is DORA's term (https://dora.dev/guides/dora-metrics/).

  6. kyle-sexton commented on Oct 21, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded.

    Question (Issue Triage, 2026-10-21): /work-items:measure-delivery can compute deployment frequency and change lead time, but change fail rate, failed deployment recovery time and deployment rework rate need a "failed deployment" signal. Which signal counts? Options: a revert of a merged PR; red main (CI fails after merge); decide later.

    Answer (owner): "A revert of a merged PR (Recommended)".

    A merge to the default branch that is later reverted counts as a failed deployment, consistent with deploy = merge to main (Q521). Existing signals: pr-merge's red-main culprit and revert report (#8675) and post-merge-detect-silent-revert.yml.

  7. removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 24, 2026
  8. kyle-sexton commented on Oct 24, 2026

    @kyle-sexton
    MemberAuthor

    Released for re-triage under the owner's 2026-10-24 rule: an issue stops for a person only for an intent or vision question, a security call, a host or attended run, or spend outside prepaid credit. The hold label came off and intake triage runs again now; it re-applies a hold, with a numbered question, when one of those applies.

    To hold this issue again, add needs-human (or status: needs-decision) and say why in a comment.

  9. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    priority: mediumReal value, no hard deadline; normal backlog flow.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 24, 2026
  10. changed the issue type fromtoon Oct 24, 2026
  11. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.
    on Oct 24, 2026
  12. melodic-automation-lanes commented on Oct 24, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane yet: Size large: the split into sub-issues at intake is pending (owner Q93).

  13. changed the issue type fromtoon Oct 25, 2026
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

    needs-specNeeds a Brief or plan before anyone can build it.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Fields

    Work status

    needs-spec

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions