Skip to content

Promote Develop: Improve decision-triage From Its First Full Run and Fetch Before Its History Check - #3762

Merged
ptr727 merged 2 commits into
mainfrom
develop
Nov 1, 2026
Merged

ptr727 merged 2 commits into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

Promotes the changes merged into develop since promotion #3736 to main.

  • #3760 improves decision-triage from its first full run:
    • Researchers take topic clusters, and step 3 states the researcher count and a token estimate before dispatching.
    • The researcher brief reads every comment newest last, says its output is posted publicly, and bounds writes to a scratch directory of its own.
    • The classifier can return OVERTAKEN after a cheap history check, and a new step offers to close overtaken issues.
    • Coupled questions are asked in one prompt.
    • A new deferred label marks a "not yet" answer, which the classifier and backlog-burndown skip and report by count.
    • A recorded maintainer approval lets an attended run implement an agent-safety edit, with the merge still waiting on a per-PR go-ahead.
  • #3763 has the triaging session fetch main and develop once before dispatching the history check and the researchers, and stop if the fetch fails. The subagents read the full remote-tracking refs and fetch nothing. It answers this promotion's first review round.

After the release, the maintainer runs repo-config/configure.sh apply ptr727/ProjectTemplate to create the deferred label, then labels #781, #1464 and #2174 deferred, per #3760's "After Merge".

Deferred review findings: #3761 (an attended backlog-burndown run applies no agent-safety hold to an unapproved issue).

Fixes #3759

🤖 Generated with Claude Code

Implements the lessons from the first full `decision-triage` run
(#3759), items 1-7. Items 6 and 7 follow the maintainer's answer comment
on the issue.

## Changes

- **Research cost (item 1).** Researchers take topic clusters of five or
six questions. Step 3 states the researcher count and a token estimate
before dispatching.
- **Comment weighting (item 2).** The researcher brief says to read
every comment newest last. A later maintainer or evidence comment
outranks the body's design, and a tool's or bot's own statement of its
behavior counts as evidence.
- **`OVERTAKEN` (item 3).** The classifier runs a cheap history check
(`git log origin/main`, the state of child issues, later decision
comments) and can return `OVERTAKEN`. A fix that is only on `develop` is
`HELD` awaiting promotion. Queued `decision` issues get the same check.
A new step 6 offers to close overtaken issues.
- **Public output and write bound (item 4).** The brief says researcher
output is posted publicly and may cite only the repository, its history,
and GitHub state. Each subagent gets a scratch directory of its own and
writes nothing to the repository or GitHub.
- **Coupled questions (item 5).** Questions linked by a `BLOCKS` line,
or whose fixes edit the same section, go in one prompt within the age
order, with a split rule.
- **`deferred` label (item 6).** Declared in `repo-config/labels.json`
and described in `repo-config/README.md` "Labels". `decision-triage`
applies it on a "not yet" answer. The classifier and `backlog-burndown`
skip it and report it by count.
- **Agent-safety approval (item 7).** A maintainer-sourced approval
comment lets an attended run implement and drive an agent-safety edit.
The merge still waits on a per-PR go-ahead given after reading the diff.
`backlog-burndown`'s merge grant is carved out for these PRs, and away
mode still holds every such edit.
- Regenerated `.github/skills/` and `.claude-plugin/` with
`build_dist.py`.

## Local Review

Three `frontier` passes ran. Two edit rounds fixed 13 of round 1's 15
findings and 4 of round 2's 5. Findings declined with evidence:

- Re-reading each deferred condition every round: the maintainer's
answer specifies skip and count-only reporting.
- Holding a promotion on a "not yet" decision: that hold is what "not
yet" means.
- A GOVERNANCE wording clash with "deferred": GOVERNANCE's "asked once
and deferred" means the asking was put off, a case step 7 keeps
labelled.

A follow-up push with its own budget fixed the final pass's three
`introduced` findings:

1. A gated agent-safety group ends as stopped on a maintainer-only
question, so "Raising a Blocked Question" asks for the merge go-ahead. A
resumed worker's brief then carries that go-ahead for the pull request.
2. The classifier brief states how a kept-open comment reads.
3. A queued decision `HELD` awaiting promotion leaves the queue and
stays open. The first triage after the promotion then returns it as
`OVERTAKEN`.

The pass over 7751a2d found nothing (`COUNT 0`) and is recorded.

## Pre-existing findings, filed

- `.agents/skills/backlog-burndown/SKILL.md` "Ranking" (`pre-existing`):
an attended run applies no agent-safety hold to an unapproved issue.
Filed as #3761.

## After Merge

- Run `repo-config/configure.sh apply ptr727/ProjectTemplate` to create
the `deferred` label. Note this run also reasserts settings and
rulesets, so it runs from current `main` or `develop`.
- Label #781, #1464 and #2174 `deferred`.

Refs #3759

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings November 1, 2026 17:46
@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The change still has an active issue because the history check may use a stale origin/main ref without first fetching and validating it.

1 open issue
What changed in this PR

This pull request promotes the decision-triage improvements from develop to main, including deferred decision handling, clustered research, overtaken-question detection, coupled prompts, and agent-safety approval rules.

Changes:

  • Adds and documents the deferred repository label.
  • Updates the canonical decision-triage and backlog-burndown skills.
  • Regenerates the GitHub Copilot and Claude skill distributions.
  • Updates the associated source digests.
File Description
repo-config/​README.md Documents the deferred label and backlog semantics.
repo-config/​labels.json Declares the deferred label.
.github/​skills/​decision-triage/​SKILL.md Updates the GitHub decision-triage skill.
.github/​skills/​backlog-burndown/​SKILL.md Updates the GitHub backlog-burndown skill.
.claude-plugin/​fleet-skills/​skills/​decision-triage/​SKILL.md Updates the Claude decision-triage skill.
.claude-plugin/​fleet-skills/​skills/​backlog-burndown/​SKILL.md Updates the Claude backlog-burndown skill.
.claude-plugin/​fleet-skills/​.source-digests/​decision-triage Records the decision-triage source digest.
.claude-plugin/​fleet-skills/​.source-digests/​backlog-burndown Records the backlog-burndown source digest.
.agents/​skills/​decision-triage/​SKILL.md Updates the canonical decision-triage workflow.
.agents/​skills/​backlog-burndown/​SKILL.md Updates the canonical backlog-burndown workflow.

Review effort: Lite

Comment thread .agents/skills/decision-triage/SKILL.md Resolved
@codecov

codecov Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.31%. Comparing base (4b7c352) to head (71194c9).
⚠️ Report is 456 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3762   +/-   ##
=======================================
  Coverage   82.31%   82.31%           
=======================================
  Files          28       28           
  Lines        9438     9438           
=======================================
  Hits         7769     7769           
  Misses       1669     1669           
Flag Coverage Δ
python-3.13 82.31% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Answers the first review round on promotion #3762. `decision-triage`'s
history check read `origin/main` without fetching it, so a stale
remote-tracking ref could read an overtaken issue as `HELD`, or a `HELD`
one as open work.

## Changes

- Before dispatching step 2's classifiers, the triaging session runs
`git fetch origin main develop` once, and stops and reports if it fails.
It repeats the fetch before step 3's researchers.
- The subagents fetch nothing. They are briefed to write nothing to the
repository, and up to four run at once, so a fetch in each would break
that bound and race on the checkout's ref locks.
- The history check reads `refs/remotes/origin/main` and
`refs/remotes/origin/develop` by full ref, as `local-strict-review`
"What It Does" does, so a local branch named `origin/main` cannot stand
in for the remote one.
- Regenerated `.github/skills/` and `.claude-plugin/` with
`build_dist.py`.

## Local Review

Two `frontier` passes ran. The first raised six findings against an
earlier version that fetched inside each subagent. Those findings were
the write-bound conflict, the concurrent-fetch race, a stop with no
return line, a pronoun that lost its antecedent, an overstated
rationale, and the short ref form. One edit round fixed all six. The
second pass, over 6ed54073, found nothing (`COUNT 0`) and is recorded.

## Declined findings

- `.agents/skills/decision-triage/SKILL.md` steps 2 and 3 (`style`): the
new text says "the triaging session" where "The Seats" defines "the
triage seat". That section defines the seat as the session the skill
runs in, so either name finds the same actor. Declined as a preference
per `fleet-code-review` "Review the Change".

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727 ptr727 changed the title Promote Develop: Improve decision-triage From Its First Full Run Promote Develop: Improve decision-triage From Its First Full Run and Fetch Before Its History Check Nov 1, 2026
@ptr727
ptr727 requested a lite review from Copilot November 1, 2026 18:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The change alters the agent-safety authorization boundary and introduces a live GitHub label rollout, so maintainer validation is still required despite consistent documentation and generated mirrors.

No open issues 🎉

1 resolved since last review

Review effort: Lite

@ptr727

ptr727 commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Answering the needs a closer look headline on 71194c9, which names no defect and asks for maintainer validation of two things.

Both stay with the maintainer at the merge of this promotion, which drive-pr never performs.

@ptr727
ptr727 merged commit 33cd610 into main Nov 1, 2026
14 checks passed
ptr727 added a commit that referenced this pull request Nov 1, 2026
…xcluded-Files Refusal, and Fix backlog-burndown and Prose Gate Gaps (#3778)

Promotes the changes merged into `develop` since promotion #3762 to
`main`, the first round of a backlog burndown.

- [#3764](#3764) reads a
bare push whose branch the write guard cannot read as writing every
protected default (`main`, `master`, `develop`), as `--all` is. That
covers a run-time `cd`, `git -C` or `env -C`, an exported `GIT_DIR`, and
a command that can switch the branch before the push. It also drops the
unused `_bare_push_branch` parameters. Naming the branch in the refspec
is the remedy, per the maintainer's decisions on #3729 and #3730.
- [#3765](#3765) has the
prose gate's diff mode report what a move adds by checking a moved file
at its old path and its new path, replacing the hand-kept
`path_readings` table. It also reads a script whole when an edited
shebang changes its lexer.
- [#3776](#3776) fixes
`backlog-burndown`'s ranking, claim, liveness and cleanup gaps:
  - An attended run holds an unapproved agent-safety issue.
- Claim comments name their branch in backticks and are released by an
edit.
  - A silent worker counts as finished only with a merged pull request.
  - The orchestrator removes a standalone clone after its merge.
  - An abandoned worker discards its own uncommitted edits.
- [#3775](#3775) reads
Copilot's excluded-files refusal as its own `excluded` kind, which an
attested local pass covers on a pull request into a non-default branch.
It aligns Merge Gate item 2 with the code on an earlier-head refusal,
adds two Copilot label spellings, and states the lineless-file allowance
where the prose describes table coverage.
- [#3779](#3779) deletes
an abandoned group's pushed branch with a checked remote delete before
its claim is released, and says the claim lookup's `<branch>` is
replaced before it runs. It answers this promotion's first review round.
- [#3781](#3781) has a
release open the claim comment with `**Released (<date>):**`, and has
the claim lookup skip a comment that opens with it. It answers this
promotion's second review round.
- [#3782](#3782) has
`pr_review.py wait` poll a pending review request past an excluded-files
refusal under `--request` as well. It answers this promotion's second
review round.

Fixes #3729
Fixes #3730
Fixes #3723
Fixes #3711
Fixes #3714
Fixes #3761
Fixes #1275
Fixes #1274
Fixes #1306
Fixes #1301
Fixes #3733
Fixes #3571
Fixes #2180
Fixes #3732
Fixes #3713
Fixes #3726

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.

Improve decision-triage From Its First Full Run

2 participants