Skip to content

chore: update handoff — cs-toolkit Phase 1 adopted; kit lint shipped; #60 reverted - #64

Merged
topij merged 2 commits into
mainfrom
chore/update-handoff-2026-07-26-devkit-lint
Jul 26, 2026
Merged

chore: update handoff — cs-toolkit Phase 1 adopted; kit lint shipped; #60 reverted#64
topij merged 2 commits into
mainfrom
chore/update-handoff-2026-07-26-devkit-lint

Conversation

@topij

@topij topij commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Wrap-up for the session that adopted the kit into cs-toolkit and fixed upstream what
that found. Docs only.

Handoff

New session block covering: cs-toolkit Phase 1 (#1791 merged), kit #63 merged
closing #58, and #60 attempted twice, regressed twice, reverted and reopened.

The Learned items are the session's actual value, and most of them are about my own
work rather than the kit's:

Archive sweep — and why it needed a flag

check_doc_budget measures lines; archive_plan_sessions keeps blocks. At
448/400 lines with 5 blocks, the remedy the warning names printed "nothing to move:
5 session block(s) <= --keep 6"
. Forced with --keep 4: 448 → 359, one block
(2026-07-25 Phase 3a) moved into kit-handoff-history.md. Filed as friction.

Incidentally confirms #53 reproduces: the pointer the sweep wrote claims active
items are folded into "Open for next session" lists; this handoff's sections are
called "Open, and owned by nothing yet", and no folding step runs.

Friction (inbox only)

entry sev
doc-budget remedy doesn't fire at the default --keep M
isolated worktree points at the base ref, not the PR head H
--record-review cannot record honest partial coverage M
negating a GitHub closing keyword still arms it M
nothing constrains the cockpit from editing the shared tree mid-panel M

The H is the one worth acting on: contract item 7 says verify the isolation, but
what actually surfaced the problem every time was making the report mandatory.
Proposed fix is to promote "state the path reviewed and the diff stat" into contract
item 8 as a required field.

Verified

check_doc_budget — handoff 359/400, friction log 77/150 · ruff check clean ·
kit_doctor exit 0 · sweep output inspected (block landed under ## Session log as
### 2026-07-25 (Phase 3a), removed from the handoff).

▶ Next: #59 then #61 — both are kit_doctor telling an adopter something false on
the first screen they see.

https://claude.ai/code/session_011KVJzDj7Z2nYkUjqbGgSVp

Summary by CodeRabbit

  • Documentation
    • Added a new friction-log entry documenting five tooling issues and proposed improvements.
    • Archived the 2026-07-25 Phase 3a session, including decisions, findings, open items, and shipped work.
    • Updated the latest handoff report with Phase 1 adoption details, learnings, and follow-up items.

…60 reverted

Session block + 5 friction entries + the archive sweep.

The sweep needed `--keep 4`: the handoff was 448/400 LINES with 5 blocks, and
`archive_plan_sessions` keeps BLOCKS, so the remedy `check_doc_budget` names
printed "nothing to move: 5 <= --keep 6" while the file sat 48 lines over.
Filed as friction. 448 -> 359 after the forced sweep; both docs now under budget.

Also confirms #53 reproduces: the pointer the sweep wrote says active items are
folded into "Open for next session" lists, but this handoff's sections are called
"Open, and owned by nothing yet", and no folding step runs.

Friction captured (inbox only, not graduated):
  - the doc-budget remedy doesn't fire at the default --keep  [M]
  - a runtime's isolated worktree points at the base ref, not the PR head — all
    4 lens launches this session landed on `main` with an empty diff  [H]
  - --record-review cannot record honest partial coverage  [M]
  - negating a GitHub closing keyword still arms it  [M]
  - nothing constrains the cockpit from editing the shared tree mid-panel  [M]

Verified: doc budgets pass · ruff clean · kit_doctor exit 0.

Claude-Session: https://claude.ai/code/session_011KVJzDj7Z2nYkUjqbGgSVp
@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@topij, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 56 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 702db43d-e03a-40e1-b8cf-12781142fcea

📥 Commits

Reviewing files that changed from the base of the PR and between 49667ea and a2e1f2d.

📒 Files selected for processing (2)
  • docs/kit-friction-log.md
  • docs/kit-handoff-history.md
📝 Walkthrough

Walkthrough

The documentation records five new friction incidents, archives a Phase 3a handoff session, and replaces the current handoff entry with a cs-toolkit Phase 1 adoption report.

Changes

Documentation updates

Layer / File(s) Summary
Friction incident records
docs/kit-friction-log.md
Adds five dated incidents covering tooling failures and proposed remediation, contract, doctrine, and cockpit restrictions.
Handoff session records
docs/kit-handoff-history.md, docs/kit-handoff.md
Archives the 2026-07-25 Phase 3a session and updates the live 2026-07-26 handoff with cs-toolkit adoption findings, decisions, lessons, and open items.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR only updates docs; it does not change kitconfig.repo_root() or add the requested regression test for #60. Implement the repo_root fallback fix for vendored trees and add a regression test covering scripts/devkit/lib/ without .git.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the handoff update and its main session outcomes.
Out of Scope Changes check ✅ Passed The changes are limited to documentation updates and do not introduce unrelated code changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/update-handoff-2026-07-26-devkit-lint

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

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/kit-handoff-history.md`:
- Around line 12-17: Update the “What Phase 3 and the cs-toolkit back-port mean”
section to remove the developer-local absolute filesystem path, replacing it
with the repository name or a stable repository URL while preserving the
explanation of the back-port and Phase 3.
- Around line 91-92: Update the completion note in docs/kit-handoff-history.md
to remove the stale “Phase 3b block above” reference or replace it with the
correct section reference, while preserving the existing PR `#25` status and
`converged` design-constraint statement.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: df6e35bf-a1e9-4e37-b944-2207eb2f513a

📥 Commits

Reviewing files that changed from the base of the PR and between 20d7e43 and 49667ea.

📒 Files selected for processing (3)
  • docs/kit-friction-log.md
  • docs/kit-handoff-history.md
  • docs/kit-handoff.md

Comment thread docs/kit-handoff-history.md
Comment thread docs/kit-handoff-history.md Outdated
…exposed

Both in the block this PR's archive sweep moved.

1. Absolute developer path `/Users/topi/Coding/in-parallel/cs-toolkit` committed in
   the history file — not portable, and it leaks workstation layout. Replaced with
   the repo description; the sentence loses nothing.

2. "see the Phase 3b block above" — Phase 3b is NOT above. It is still live in
   kit-handoff.md while the sweep moved Phase 3a into history, so the reference
   crossed a file boundary and broke. Repointed at the actual location.

The second is a defect in the sweep, not just a stale line, so it is logged:
`archive_plan_sessions.py:20` claims "every cross-reference (ticket ids, PR links,
commit shas, …) is preserved". Every kind it enumerates is ABSOLUTE. Relative ones
are not preserved, and the sweep reported success while orphaning one. Same family
as #53 — that issue is about the pointer the sweep *writes*, this is about the
references it *carries*.

Audited the rest: exactly one such reference existed and it is the one that broke;
zero remain in either document.

Verified: doc budgets pass (359/400, 88/150) · ruff clean · kit_doctor exit 0.

Claude-Session: https://claude.ai/code/session_011KVJzDj7Z2nYkUjqbGgSVp
@topij

topij commented Jul 26, 2026

Copy link
Copy Markdown
Owner Author

Both fixed. Both were in the block this PR's archive sweep moved, and the second one
turned out to be a defect in the sweep rather than a stale line.

1. Absolute developer path. Agreed — /Users/topi/Coding/in-parallel/cs-toolkit
is not portable and leaks workstation layout. Removed; the sentence loses nothing.

2. "see the Phase 3b block above". Correct, and worth stating why it broke:
Phase 3b is not above — it is still live in kit-handoff.md, while this PR's sweep
moved Phase 3a into the history file. The reference crossed a file boundary as a
direct result of the sweep
, which reported success.

That makes it a defect in archive_plan_sessions.py, not just a stale line. Its
docstring claims:

It only ever moves content — every cross-reference (ticket ids, PR links, commit
shas, …) is preserved.

Every kind it enumerates is absolute. Relative ones — "the block above" — are not
preserved and cannot be, because the sweep splits siblings across two files by design.
Logged in the friction inbox with a proposed fix (warn on (above|below)-style
references in moved blocks; warn, not rewrite — rewriting prose is the class of
surgery the deleted init.sh marker migration proved dangerous). Same family as #53,
which covers the pointer the sweep writes; this is the references it carries.

Audited the rest rather than fixing only what you flagged: exactly one such reference
existed in either document, it is the one that broke, and zero remain.

Verified: doc budgets 359/400 and 88/150 · ruff clean · kit_doctor exit 0.

@topij
topij merged commit a23e95a into main Jul 26, 2026
3 checks passed
@topij
topij deleted the chore/update-handoff-2026-07-26-devkit-lint branch July 26, 2026 17:57
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.

kitconfig.repo_root()'s fallback is depth-specific — it breaks the scripts/devkit/lib/ layout its own docstring promises

1 participant