Repository navigation
Session Handoff [default]: Unattended Handoff Loop, Skill Renames, and the Fleet Version-Literal Sweep Merged to Develop #1817
Copy link
Copy link
Closed
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Description
Next steps, in priority order
Re-read each issue and pull request rather than trusting these summaries.
- Live-test the unattended loop. In a fresh session on develop, run
unattended-handoffat scope develop with a two-round cap. Then run "resume the handoff" to see how a parked lane comes back. Done looks like both rounds returning a well-formed line, and unattended-handoff: adopted lesson issues stall, and the promotion STOP matches any decision issue #1812's two follow-ups settled or re-scoped by what the run shows. - repo-worktree's hook step installs into the git hooks dir every worktree shares #1816, the worktree hook-install defect.
repo-worktree's hook step installs into the git hooks directory every linked worktree shares. That is what broke Financial-Modeling's commits. Done looks like the skill checking the common hooks directory first and never installing from a linked worktree, plus gh-write-guard denying a commit-timecore.hooksPathoverride. - Promote develop to main once the maintainer asks. Develop carries Add an Unattended Handoff Loop and an Attended Resume Procedure #1806 through Ban Every Version Literal in the Four Instruction Documents and Catch Abbreviated SHAs #1813: the unattended loop, the attended resume procedure, the skill renames, the recommendation and closing-order rules, and the version-literal rule and audit check.
- Carry the code-review skill bootstrap to seven repos whose Copilot reviews never state coverage #1815: carry the code-review skill bootstrap and the
.github/skillstree into the seven repos listed there, so Copilot states coverage on their pull requests. - This round's smaller follow-ups: unattended-handoff: adopted lesson issues stall, and the promotion STOP matches any decision issue #1812 (after step 1), Durable Knowledge does not say where a lesson goes when no change is open #1811, audit.py --issue path never prints the no-remote hub-name warning #1810, Skill files hard-wrap while comment-and-doc-style requires one paragraph per line #1814.
- Carried unchanged from Session Handoff [default]: WORKFLOW.md Corrections and the pyproject.toml Decision Released as 2.0.672 #1804, in its order: the native-Windows check of
bootstrap.ps1, then close Bootstrap registers its temporary tree as the live Claude Code skills source, then deletes it #1756; Keep an Owned Tree Recognizable When Its Final Directory Removal Fails #1795, then Name the Leftover Old Tree When the Bash Loader Cannot Remove It #1790, Drive the PowerShell Loader's Kept-Tree Functions from the Test Suite #1791, Lock the Bootstrap Directory for a Kept-Tree Run #1792; Gate Every Repository's Python on Its Code, Not on Its Config #1800 (settle its three decisions with the maintainer before any edit, with Spec: python.profile.detect does not describe a virtual uv workspace root #1778 folded in); The menu's skills task registers a clone it then removes #1771, then Re-point a Claude Code registration an older bootstrap left dangling #1769; Say Where the Deploy-Site Task Actually Requires the SSH Key #1801; Declare the Default Workflow Token Permission in the Repository Settings Payload #1783; A regex pins a phrase inside a # comment, so rewrapping that comment fails the test with a false explanation #1732, then skills_install --report follow-ups: stamp-less live report, bootstrap remedy text, --intended guard test #1759, skills_install source_ref hides ignored files and trusts an enclosing git repo #1758, skills_install --report's live channel does not check that the plugin is installed and enabled #1757; A stacked pull request's diff reopens after the parent squash-merges, and nothing documents it #1742, Session Handoff [default]: One Issue Closed Whose Premise Was Wrong, and a Release #1735, Converge Financial-Modeling with the hub baseline (32 findings) #1579, The widened configuration shape misses the unspaced key=value an environment file writes #1717, issue-ref reads no URL outside instruction text, so an own-repository tracker URL in code is banned and unreported #1719; lower, Two skills describe the live skills channel only as a git checkout #1772, A kept skills tree edited by hand still stamps clean #1775, Nothing tests the bootstrap loaders' kept-tree swap sequence #1767, Two concurrent bootstrap runs can remove each other's tree #1764, install-skills.ps1 fails under a directory whose path contains a wildcard character #1765.
External blockers
- Financial-Modeling's shared pre-commit hook is broken until the maintainer restores
.git/hooks/pre-commit.legacyover the prek hook, which is a one-linemvin the primary checkout. The auto-mode classifier correctly refuses an agent that write. Until then, every commit in that repository fails. repo-worktree's hook step installs into the git hooks dir every worktree shares #1816 is the hub-side cause. - Downstream promotions: the version-literal removals are on develop in eleven fleet repositories. Their main branches carry the literals until each repository's develop is promoted, which is the maintainer's call. The audit flags main-branch literals until then.
- A native Windows host is needed for step 6's first item, carried from Session Handoff [default]: WORKFLOW.md Corrections and the pyproject.toml Decision Released as 2.0.672 #1804.
- CodeRabbit needs an explicit
@coderabbitai reviewhere and allows about one review an hour, carried.
Internal dependencies
- unattended-handoff: adopted lesson issues stall, and the promotion STOP matches any decision issue #1812 waits on step 1, since a live run is the only evidence that settles which of its gaps matter.
- Carry the code-review skill bootstrap to seven repos whose Copilot reviews never state coverage #1815 comes before relying on stated coverage in those seven repositories. Until then, their coverage item needs the maintainer's waiver, which the maintainer gave per pull request this round.
- Step 3 comes before other machines, and Codex or opencode, get the new and renamed skills. Claude Code on this host already loads them from develop.
State
- Hub: develop at the Ban Every Version Literal in the Four Instruction Documents and Catch Abbreviated SHAs #1813 merge, main at the Promote the WORKFLOW.md Corrections and the pyproject.toml Ledger Decision to Main #1803 promotion. No hub worktree or feature branch of this round remains, and the primary checkout is clean on develop.
- Merged to develop this round: hub Add an Unattended Handoff Loop and an Attended Resume Procedure #1806, Rename Three Skills and State Which Skill Wins Each Shared Trigger #1807, Lead Every Choice With a Recommendation and Close Every Session in Order #1808, Name a Pin by Its Mechanism, Never Its Value, and Audit for Copies #1809, Ban Every Version Literal in the Four Instruction Documents and Catch Abbreviated SHAs #1813. Downstream: aiopurpleair and Financial-Modeling pin-literal PRs (the aiopurpleair one closed as superseded by that repository's own Write upstream-version state file as CRLF to honor the JSON rule #172), and the version-literal sweep in LanguageTags, PhotoCleaner, PlexCleaner, Utilities, NxWitness, Vantage-Config, VSCode-Server-DotNetCore, homeassistant-purpleair, ESPHome-NonRoot, KiCadLibrary, and HomeAssistant-Config. All worktrees and branches are cleaned up, local and remote.
- aiopurpleair's own session owns its worked-example placeholders and its promotion Clarify project rules belong in AGENTS.md, harden Copilot review runbook #174.
- No release was dispatched this round.
The parked decision queue
Empty. No open issue carries the decision label. This round put these questions to the maintainer and recorded each answer:
- Park an unattended lane under the
blockedlabel, widened to cover adecisionissue in the same repository. - The unattended merge scope: develop by default, main or release when named at invocation.
- Promotion under the main scope: promote whatever develop holds.
- Settle the lesson-routing churn by pointing at Durable Knowledge and filing its gap as Durable Knowledge does not say where a lesson goes when no change is open #1811.
- Make "recommendation first with its reason" and "save memories last" apply to every session.
- Rename
code-review,operational-vs-release-workflow, andfleet-conformance-check, and add a winner sentence to each trigger overlap. - The version-literal end state: no three-part version or SHA in the four instruction documents, examples written with placeholders, minimum versions named by the manifest or skill that holds them.
- HomeAssistant-Config's PSScriptAnalyzer pin moves into a checked-in script.
- Waive stated coverage for five doc-only sweep PRs in repositories without the code-review bootstrap, and fix the cause in Carry the code-review skill bootstrap to seven repos whose Copilot reviews never state coverage #1815.
What the last round did
- Built
unattended-handoff: a lean orchestrator loops a picker and a worker subagent, and parks any lane that meets a decision underblocked. Built "The Attended Session" insession-handoff: "resume the handoff" alone runs the whole routine. - Renamed three skills and fixed trigger overlaps (Rename Three Skills and State Which Skill Wins Each Shared Trigger #1807). Added the recommendation-and-reason rule to GOVERNANCE "Communicating with the User", and a "Closing a Session" order to
session-handoff(Lead Every Choice With a Recommendation and Close Every Session in Order #1808). - Banned pin values, then every version literal and SHA, in the four instruction documents, with an audit check (Name a Pin by Its Mechanism, Never Its Value, and Audit for Copies #1809, Ban Every Version Literal in the Four Instruction Documents and Catch Abbreviated SHAs #1813). Swept eleven fleet repositories to match.
- Filed audit.py --issue path never prints the no-remote hub-name warning #1810, Durable Knowledge does not say where a lesson goes when no change is open #1811, unattended-handoff: adopted lesson issues stall, and the promotion STOP matches any decision issue #1812, Skill files hard-wrap while comment-and-doc-style requires one paragraph per line #1814, Carry the code-review skill bootstrap to seven repos whose Copilot reviews never state coverage #1815, repo-worktree's hook step installs into the git hooks dir every worktree shares #1816.
What not to repeat
- Scripted edits with Python
read_text/write_textflatten CRLF. They broke ESPHome-NonRoot's and KiCadLibrary'sAGENTS.mdand cost a red lint and a fix commit in each. Use bytes I/O, or check the base's endings first. - Writing a rule broader than its check. The first version-literal rule said "an instruction document" and "any version literal", while the audit read four files and three-part versions. That cost two review rounds. Write the rule as the check enforces it.
- Enumerating a warning's effects, or restating a governed form inside a skill. The no-remote warning drew a new finding on every wording that listed consequences. The lesson issue's option form drifted from the governance rule until the skill pointed at the rule instead.
- New prose under local strict review does not converge. Add an Unattended Handoff Loop and an Attended Resume Procedure #1806 took about eight passes, and Lead Every Choice With a Recommendation and Close Every Session in Order #1808's lesson step flip-flopped between two passes. The two-round budget, then escalating or pointing at the owning rule, is what ended each loop.
- A bare
git pushfrom a worktree branched fromorigin/developis read by the write guard as a push to develop. Push with an explicit<branch>:<branch>refspec. gh pr create --fillfails outside the repository's own checkout. Pass--titleand--body. Subagents'gh pr createin two repositories was blocked by the auto-mode classifier, while nine were not, so hand the maintainer the exact command rather than retrying.- The subagent sweep brief must name placeholder spellings. Two repositories chose
v1.0.Nand two chosevX.Y.Zfor the same sentence, and aligning them took an extra commit per repository.
New learnings
- Python text I/O flattening CRLF is recorded in the agent's memory beside the Write-tool case. The committed rule is
comment-and-doc-style"Preserve a file's existing line ending". - Copilot states coverage only where
.github/copilot-instructions.mdbootstraps the code-review skill: Carry the code-review skill bootstrap to seven repos whose Copilot reviews never state coverage #1815. - A linked worktree shares the git hooks directory, so a hook install there changes every checkout: repo-worktree's hook step installs into the git hooks dir every worktree shares #1816.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Activity
ptr727 commentedon Sep 25, 2026
Continued in #1828, round 34 on track
default.