fix(ci): desktop-native-linux honors the classifier it depends on - #1153
Merged
Conversation
) The job declared needs: classify but never read the verdict, so it built a .deb and signed updater on every PR (20/20 in the last-20 audit, ~41 min). It now runs only when the classifier says either scaffold tier runs, short-circuiting to the scaffold-static skipped-by-policy pattern otherwise so it stays eligible as a required check. Fail-closed: a failed classify still forces a full run; a dedicated needs_desktop signal is #1152 scope. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PVEZJ1CBtRYNXzGQRZrTat
Owner
Author
|
[PHASE: IMPL] [VERDICT: —] Docs-only skip verified live. Demo PR #1154 (docs-only diff against this branch, opted into the gate via
Before this fix, the identical input (docs-only diff, both tiers skipped) built a Acceptance evidence
|
This was referenced Aug 3, 2026
rickylabs
added a commit
that referenced
this pull request
Aug 3, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PVEZJ1CBtRYNXzGQRZrTat
23 tasks
rickylabs
added a commit
that referenced
this pull request
Aug 3, 2026
Evidence-base definition widened with per-claim citations instead of silent promotion; note-accumulation and the #1142 mitigation downgraded to [asserted] with gaps stated; identity derivation re-anchored on the release-canary.yml wiring; drift-gate section reduced to its observable contract; quota/transport gates given a recorded-output proof form; stage-C operability wired to tooling.md/agent-handoff.md and codex-watch turn interception; D2 tension (#1153/#1155 pre-ratification merges) surfaced rather than claimed away. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq
11 tasks
rickylabs
added a commit
that referenced
this pull request
Aug 3, 2026
…ile, rolling canary cadence (#1161) * chore(harness): bootstrap milestone-orchestrator authoring run + locked outline Run dir + supervisor identity + plan of record for the three #1120 artifacts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * docs(harness): rolling canary cadence — trigger, membership, D3 identity, note, drift gate The schedule artifact of #1120. Wave boundary as the canary point and content-derived membership are [observed] from the 0.0.4 trace; open questions stay [asserted] and owner-undecided. Wires to the shipped release:canary-label surface (#1121/#1122); publish mechanics remain with netscript-release; #1119's collision is disambiguated, not deepened. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * docs(harness): milestone-run profile — stage contracts, pre-merge gate, cut checklist, DoD The run artifact of #1120. Every gate carries its observed firing evidence and a stated did-not-run signature; the honesty rule (#1092/#1146 precedents) and the #1142 false-red trap are encoded. Role judgement stays in the orchestrator skill; canary schedule in canary-cadence.md; publish mechanics in netscript-release. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * feat(harness): agent-milestone-orchestrator skill + regenerated .claude/skills mirror The role artifact of #1120: clustering, wave sequencing, re-planning absorption, delegation judgement, merge authority, canary-point decisions, honesty rules, and supervision pitfalls — every rule marked [observed] (0.0.4 trace) or [asserted]. Gate lists, run artifacts, label mechanism, and routing are referenced, never restated. Mirror regenerated via agentic:sync-claude (incl. aspire and netscript-release mirrors that were stale on main); agentic:check-claude green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * chore(harness): close out authoring run — S4 evidence + status flip recorded Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * fix(harness): apply Sol adversarial review findings C1-C9, M1-M6 Evidence-base definition widened with per-claim citations instead of silent promotion; note-accumulation and the #1142 mitigation downgraded to [asserted] with gaps stated; identity derivation re-anchored on the release-canary.yml wiring; drift-gate section reduced to its observable contract; quota/transport gates given a recorded-output proof form; stage-C operability wired to tooling.md/agent-handoff.md and codex-watch turn interception; D2 tension (#1153/#1155 pre-ratification merges) surfaced rather than claimed away. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * fix(harness): Sol cycle-2 — fix C3-residue/C10/M7, demonstrate C7+M4 gates; escalate C9, M1/M2 The two previously undemonstrated gates now carry real negative cases (gate-demos.md): check 3 fires RED on a synthetic new-ignore diff and stays GREEN on excluded-path quotes; the #1142 selection rule recovers PR #1155's true pre-merge verdict from a live rollup containing a post-merge FAILURE. D2 evidence box unticked pending the owner's ruling; the [observed] source-of-record dispute is recorded in drift.md for the owner. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * chore(harness): record owner rulings — D2 orchestrated-delivery reading; [observed] definition ratified Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * fix(harness): Sol cycle-3 residues — C10 tag-existence implication dropped, M8 stale acceptance row Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * chore(harness): record Sol cycle-4 PASS — eval loop closed green Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq * chore(harness): note mirror/label event race; retrigger CI with ready-merge label present Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ReZGc3KP8xvEuruz1io7Pq --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
desktop-native-linuxdeclaredneeds: classifybut never read the verdict, so it built a.deband a signed updater on every PR — 20/20 in the last-20-PR audit (~41 min), including one-file
.agents/changes (#1055, #1063, #1123) where both scaffold tiers correctly skipped. The job nowreads the classifier outputs exactly like its two siblings and short-circuits to a
skipped-by-policy step when the classifier said neither scaffold tier is needed.
Design notes:
needs_desktopin the classifier. Until then the conservative proxy is
run_static || run_runtime: desktop runswhenever any scaffold tier runs, and skips only when the tested classifier said no scaffold work.
classifyforcesRUN=true; only an explicitrun_static=false && run_runtime=falsefrom a successful classify skips.scaffold-staticskipped-by-policy pattern, so it stays eligible as a required check.lane-visibilitynow includes the desktop lane so a policy skip is distinguishable from a realrun.
Scope
packages//plugins/source)Slices
desktop-native-linuxon classifier outputs + skipped-by-policy reporting — 5848e90Validation
deno test .github/scripts/ci-classify-changes.test.ts— 30 passed, 0 failed (classifieruntouched; self-check green)
.github/workflows/e2e-cli.yml— OKskipped-by-policy) — evidence to follow in a PR comment
Harness
.llm/tmp/BRIEF.md("ci(e2e-cli): desktop-native-linux ignores the classifier it depends on — builds a .deb on every docs PR #1151 you may just fix, verify andpush") — no run dir; ci: scope every expensive job to a capability vector — paths decide, labels override #1152 (the capability-vector redesign) carries the harness run.
Drift / Debt