Repository navigation
Description
Brief
Goal. Absorb Lauren Tan's (poteto, pstack) and Matt Pocock's agent workflows into this
marketplace, item by item as the owner decided them, because the owner runs 5-20 sessions and wants
their problem-solving moves (codify on recurrence, non-author verification, narrow ready PRs,
catch-up, grilling, paved paths) working in his own skills and plans (GUIDE D0-D119; register
Q1-Q589).
Scope. The 23 buildable threads of the design record, delivered in its 11-step dependency
order; the 15 deferred threads filed as parked sub-issues (14 issues: Delivery shape is settled by
Q589 and gets none; Cursor compatibility is the active Q579 research item); the probes the design
record requires before adoption; the carried defect fixes Q148 allows. Out of scope: everything the
design record lists as out of scope or declined.
Delivery shape (Q589, GUIDE D119, owner-approved). One epic as spec container; one sub-issue per
buildable thread in dependency order with native blocked-by edges; slice issues under a thread only
where it needs more than one PR; narrow PRs open ready unless a multi-session container (Q501,
Q585); deferred threads as parked sub-issues. Basis: Matt's to-tickets (slices sized to one context
window, blockers first, sub-issues) and Lauren's "prefer five narrow PRs to one large PR".
Hard constraints that bind implementation
- C3: fewer, larger skills with actions and progressive disclosure; cross-skill use only as
/plugin:skill, never by path. - C4: tool-neutral via adapters (ADR 0060); configurable defaults in the conventions home.
- C5 as amended by Q567: unattended merge only on a passing verdict from a verifier other than the
author, once Q519's verifier exists; no report-only phase (D96); Dependabot is required checks
only. - C13 (amended, Q575): no agent acts until the owner's intent is codified; recommendations are
researched against official sources; routine actions follow the research-depth setting, default
"cite what is in context". - C14: skills never couple to this repo's own conventions; plugin defaults are fallbacks; project,
team and user instructions win. - C15: prefer native mechanisms; inject nothing into a working session the user did not ask for.
- C17: a preference where reasonable consumers differ ships as a setting with a named default,
basis and scope; fixed floors only tighten (D79, Q574, D96, D88, D100, Q131, the C13 intent gate). - Evidence before autonomy (GUIDE D1): nothing widens unattended authority (merge, close, write)
before the probe or eval that gates it passes; a check is recorded only after it fails on a
planted or past violation and passes after revert (D22, Q115). - Label the origin: every sub-issue and PR body names the origin of the decision it carries as
Lauren's, Matt's, owner's, ours or combined. - Repository rules: AGENTS.md "Code Review Rules" (a skill-body cut ships only with eval evidence
of no loss; volatile upstream specifics are pointers with as-of date and recheck trigger;## Next
sections) and the AGENTS.md stop list (another repo, user-scope config, grant changes).
Acceptance criteria
- The epic's 23 thread sub-issues are closed by merged PRs, or carry a recorded probe result that
stops adoption with the owner's sign-off; the 13 parked sub-issues are handled: the owner closed
them as deferred (not planned) under the 2026-11-05 After zero/hardening direction, each keeping
its body, which counts as handled for this epic (owner Q12 (a), 2026-11-06); and the 1 active
Cursor research item (Q579) reports. - Every probe the design record requires before adoption has a recorded result on its slice issue
before the work it gates merges.
Not met (correction 2026-11-07, issuecomment-6712686467): the earlier "met" reading (owner Q6 (a), issuecomment-6703854419) was wrong. A full grade found probes without a result or a recorded drop. Q6 (a) still stands for D4 and K39 (late results count) and for the D68/Q55 and D86 drops. - Every new check ships with its proof script output: fails on the old code, passes on current
(D22). - Every cut to an existing skill body cites before/after eval results in its PR (AGENTS.md).
- Every setting in the design record's settings table resolves through the config cascade from the
Settings resolution thread with its named default. - No PR merges unattended before the Merge authority thread's verifier and planted-defect run pass.
Assumptions (the design record's captured assumptions 1-14 carry over unchanged; the riskiest
four are probes or questions in this plan):
- A1 (assumption 1): a same-vendor non-author verifier catches enough defects to be the
only merge gate; settled by the Merge authority thread's planted-defect run. - A2 (assumption 2, Q586): consumers run GitHub first-class; every GitHub feature degrades through
an adapter. - A3 (assumption 3, Q587): plan usage tolerates the added model steps; each step is a setting with
the per-item usage rollup (Q58) as the measure. - A4 (assumption 4): the lanes App token broker can mint
statuses: write,discussions: write,
issue-field writes and workflow-triggering pushes; settled by reading the broker (see the
broker-mint slice): it grantscontents,pull_requestsandissuesonly. - A5: the existing
pr-feedback-dispatch.ymllane is the findings lane Q512 describes, so the PR
pipeline thread reconciles rather than rebuilds it.
Execution shape: per-item PRs
Metadata
Metadata
Assignees
Labels
Type
Fields
Work status
Activity
57 remaining items
kyle-sexton commentedon Nov 7, 2026
Criterion 5 record: the five settings the close audit found with no named setting on main.
The owner answered both questions on 2026-11-07, verbatim. Q-C5a: "go w/ recommendations". Q-C5b: "gow/ recomendations".
blocking-onlyafter the first reviewloop.findings-after-first-review(blocking-onlydefault, orall) in #13930, merged 2026-11-07T11:19Zplugins/review/lib/prior-findings.mjs:195. The default keeps today's behaviour.offerretro_offer(offerdefault, oroff) on branchfeat/session-flow-retro-offer-settingfollow-up-issueplugins/source-control/reference/review-discipline.md:259-260.session-flowworkflowsteps.md:80: "Task size does NOT reduce research depth". It would also reverse the owner's standing rule to ground every recommendation. ADR 0075:146-148's record of it stays history.proceedskill-criteria.md:98-101), and the defaultproceedis today's behaviour.With the retro-offer PR merged, every remaining design-record setting either resolves through the cascade or carries a recorded owner decision.
The close audit's mapping of the record's fix-round cap to
plugins/reviewfix_round_capstands.loop.review-roundsstays at default 2: a change to 3 was reverted in #13930 after pr-verify found it had no spec basis.kyle-sexton commentedon Nov 7, 2026
retro_offer eval (C5, H171): NO LOSS
Before/after of the session-flow
retro_offersetting, default config,claude plugin eval --runs 3 --threshold 0.8 --scaffold, with-without ablation, Claude Code 2.1.319, model claude-opus-5-5.1b606743be3202e42a2a0a5c61c66be890ef3c6c(the two case dirs copied unchanged from HEAD)be7f6b22820656f9853d2f2c06b33f059daaba1e(feat/session-flow-retro-offer-setting)/evals:validate(validate-cases.py) on each tree's suite: exit 0 on both, no FAIL; WARN only (allowed_tools grants and judge-calibration samples on other cases), none on the two cases run.Validity (run-validity.py
--runs 3 --scaffolded), all four legs:verdict: VALID (warnings: skill fired, models). The skill-fired warning reads "fired in 0 with-arm runs; no skill-fired grader, so not checked"; the models warning is the unrecorded judge model (default haiku).Verdict rule: both arms VALID, no case down 2 or more of 3, HEAD total (6) not below BASE (6). NO LOSS.
Result JSON:
~/.evretro/out/base-wf-wrap-up-default-offers-retro.json~/.evretro/out/base-wf-wrap-up-errors-falls-back-to-retro.json~/.evretro/out/head-wf-wrap-up-default-offers-retro.json~/.evretro/out/head-wf-wrap-up-errors-falls-back-to-retro.jsonCost (CLI-reported) USD 1.95 across 4 invocations, 24 runs (12 with-plugin, 12 baseline); legs started 16:37 to 16:41 UTC, 75 to 96 s each.
kyle-sexton commentedon Nov 7, 2026
C4 v2 for PR #12803 (H172): NO LOSS
This compares each tree through its own entry point: the leaf command in BEFORE against the router action in AFTER. Settings:
claude plugin eval --runs 3 --threshold 0.8 --scaffold --allow-tools Bash, with-without ablation, Claude Code 2.1.319, model claude-opus-5-5.431f923ceb9e2dd33632c5e77edd4f22bb9beafe(32a4790b8f051c34cf49c88c6bb81057bcbe2992^). Leaf skills audit-size, audit-complexity and audit-type-debt; main's evals plus three-leaftwins.500651ec2e73d061c10358ca6d6c8f95b4597e81(origin/main). Router skillaudit; the evals run unchanged./evals:validate(validate-cases.py): exit 0 on BEFOREevals/, BEFOREevals-leaf/and AFTERevals/. No FAIL; the only WARNs are Bash allowed_tools grants and judge-calibration samples.Disclosures
evals-leaf/, with--eval-dir evals-leaf --case <original name>. The CLI selects cases byname:glob and the spec forbids renaming, so insideevals/a twin could not be selected apart from its original. The twin bytes are unchanged.samples/ran-the-entry-script.jsonnames the router path/plugins/code-metrics/skills/audit/scripts/<x>.sh. That file feeds only/evals:validate's offline grader check, not the run.tool_usedgraders match the script basename (input_match: audit-size\.shand so on). BEFORE has those scripts underskills/audit-<x>/scripts/.Twin diffs (
diff -rof each original inevals/against its twin inevals-leaf/):Validity (run-validity.py
--runs 3 --scaffolded):verdict: VALID (warnings: skill fired, models, judge votes). One split vote: with-arm run 3, expectation-4, PASS FAIL FAIL.verdict: VALID (warnings: skill fired, models)verdict: VALID (warnings: skill fired, models, judge votes). One split vote: with-arm run 1, expectation-5, PASS PASS FAIL.verdict: VALID (warnings: skill fired, models, judge votes). One split vote: with-arm run 2, expectation-5, PASS FAIL FAIL.verdict: VALID (warnings: skill fired, models)verdict: VALID (warnings: skill fired, models, judge votes). One split vote: without-arm run 2, expectation-4, FAIL FAIL PASS.About these warnings:
Verdict rule: both arms VALID, no pair with AFTER 2 or more of 3 below BEFORE (the largest drop is complexity, 1), and AFTER's total (8) is not below BEFORE's (8). NO LOSS.
Result JSON:
~/.ev7555/out/before-audit-size-reports-the-change-with-provenance-and-no-verdict-leaf.json~/.ev7555/out/after-audit-size-reports-the-change-with-provenance-and-no-verdict.json~/.ev7555/out/before-audit-complexity-reports-the-change-with-provenance-and-no-verdict-leaf.json~/.ev7555/out/after-audit-complexity-reports-the-change-with-provenance-and-no-verdict.json~/.ev7555/out/before-audit-type-debt-reports-both-percentages-without-anchoring-them-leaf.json~/.ev7555/out/after-audit-type-debt-reports-both-percentages-without-anchoring-them.jsonCost (as the CLI reports it): USD 5.58 for 6 invocations, 36 runs (18 with-plugin, 18 baseline). Legs started between 16:56 and 17:35 UTC and ran 242 to 298 s each.
kyle-sexton commentedon Nov 7, 2026
Closing: every close-audit criterion now holds.
agent-readylabels, Lane 5's migration record issuecomment-6711985883, and S4 core feat(pr-pipeline): start the issue lane on the Work status field #13998 merged.kyle-sexton commentedon Nov 7, 2026
Reopened: my 20:14Z close was premature on criterion 2.
The close audit (issuecomment-6703722862) grades criterion 2 as NOT MET. My close counted only the two late results (owner Q6 (a)) and the two owner drops (Q14 (a)). Two parts of that grade are still open:
Also, criteria 3 and 4 were graded on samples: 3 new checks and 5 cuts. The fixes cover the sampled failures (PR 8822, PR 12130, PR 12803) but not the unsampled checks and cuts.
Next: grade the 9 unchecked probes, settle D53's fourth probe, and extend the C3/C4 samples to every new check and cut in the design record. poteto owns it.
kyle-sexton commentedon Nov 7, 2026
Correction: criterion 2 is NOT met, and criteria 3 and 4 have gaps.
Two records claim "Criterion 2 is met: every probe has a result or an owner-recorded drop": issuecomment-6703854419 and the body line added at 16:2xZ. That claim is false. The owner's words in that record are "Go with recommendations." and "Yes.", answering Q6 (late results count). The ticked line is the poster's own conclusion, not owner text.
This is a full grade against the design record: the 9 probes the close audit left unchecked, D53, and every new check and cut, not samples. 19 probe rows, 13 checks and 24 cuts. Every row cites evidence.
Criterion 2: rows still open
--baseline". No result exists, and the buffer PRs 8950 and 9020 merged 2026-10-22./context, (b)/doctorand (c)/skill-doctor, and the 108-run name-only test, are absent. The gated description work merged on 11-01 and 11-02.plugins/testing/skills/audit/SKILL.md:62-64).Criterion 3: checks without fail-old/pass-new output
Criterion 4: cuts without before/after evals
Side findings
fromvalue in run 42241474462 is UNVERIFIED; the log was not read.Next. poteto posts the three pointer records, runs the criterion 3 proofs, and routes the evals (D4 buffer and the criterion 4 PARTIAL and MISSING rows) to an eval-capable lane. D53 (b) goes to the owner. #7555 stays open until every row above is OK, LATE or owner-dropped.
kyle-sexton commentedon Nov 7, 2026
Owner decision recorded: D53 probe (b) is dropped, and 3 of 4 is accepted.
On 2026-11-07 ~21:0xZ, in the poteto session, the owner was asked: "Q1. D53 probe (b), Claude Desktop scheduled task: drop it, or run it?" The options were: (a) drop it and accept 3 of 4 (recommended); (b) the owner runs it at the Desktop app; (c) move it to After zero. The owner answered, verbatim: "go w/ recommendations".
That answer selects (a). Probe (b) needs a person at the Claude Desktop GUI. Probes (a), (c) and (d) ran (#11960 issuecomment-6562290989), and the text they gated is on main through PR 12056. This replaces the unquoted "owner decision (lane 1 session)" line in #11960 issuecomment-6586541758 as the drop's record. For #7555 criterion 2, the D53 row is now DROPPED (owner).
kyle-sexton commentedon Nov 7, 2026
#7555 criterion 4: PR 12073 and PR 12253 are covered by PR 11629's port, so no new run is needed.
evals.jsonids 2, 7, 8, 9, 10, 11, 12, 18 and 20, plus the plugin casere-codify-routes-check-asks-first. PR 12253 deleted/review:audit-enforceabilitywith its 15 cases.plugins/corrections/evals/.git diff --name-status --diff-filter=A b4214d6c7ea542bbcc1402639343e967ac6a0abf a623854552042b7bc1428d5acda20e1b20d59d64lists exactly those 25case.yamlfiles.encode_policyis gone, so its port tests the mining-window setting.Grade: OK (the before/after record sits in the porting PR, not in the removal PRs).
kyle-sexton commentedon Nov 7, 2026
Decision recorded.
Owner, 2026-11-07 in the hub session, answering "Q19: close #8635, #7555 and #9868 now, with their remaining work recorded for after zero?" with option (a), verbatim: "go w/ recommendations".
All 30 sub-issues are closed and the work shipped. What remains is evidence bookkeeping on merged work: the criterion 2 probes poteto's grade found unchecked (issuecomment-6712686467), and the criterion 3 and 4 eval rows. Closing as deferred. That remainder is recorded in the after-zero record for rediscovery.
Posted by the github-support hub session on the owner's answer. This was generated by AI.