docs: graduate the friction-log inbox to GitHub Issues (#70-#77) - #78
Conversation
Thirteen un-graduated entries triaged: twelve graduated into eight issues, one recorded a measurement with "No change proposed". Four of the eight each merge two entries recorded on separate days, because the repeat is the evidence: the closing-keyword trap (three occurrences), the archive sweep's relative cross-references (two), the doc-budget remedy no-op (three), and the review lens's wrong-ref worktree (nine of nine). Sweep was narrowed by a frozen-inbox snapshot taken at draft time, so an entry added mid-session could not be archived unfiled. Nothing was added during the window: all three blocks byte-matched the snapshot. docs/kit-friction-log.md: 190 -> 50 lines, back under its 150 budget.
📝 WalkthroughWalkthroughThe friction log now summarizes the 2026-07-27 migration of thirteen entries into GitHub Issues or a no-change record, while the archive retains detailed 2026-07-26 and 2026-07-27 entries and their follow-ups. ChangesFriction Log Migration
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Review gate: deliberately waived for this PRRecording this so the trail carries it rather than losing it. CodeRabbit never reviewed this diff. Its first comment on this PR was "Review Note the false green: the
What was decidedThe operator reviewed the situation and waived the independent-review requirement for No review receipt was recorded. What was verified, mechanically
|
|
Your plan includes PR reviews subject to rate limits. Reviews are available now. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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-friction-log-archive.md`:
- Line 8: Update both summary attributions to state that the workflow engine was
unavailable and the sweep used the sanctioned LLM-only process with manual
finalization. Apply this change in docs/kit-friction-log-archive.md:8 and
docs/kit-friction-log.md:16-18; remove the claim that triage-friction-log
performed the sweep while preserving the entry count and accounting status.
🪄 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: 3b098219-f84d-4dd9-a8a1-672f33899e3d
📒 Files selected for processing (2)
docs/kit-friction-log-archive.mddocs/kit-friction-log.md
|
|
||
| ## Graduated 2026-07-27 — GitHub Issues (#70–#77) | ||
|
|
||
| Swept by the `triage-friction-log` workflow. Thirteen entries, fully accounted for: |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Correct the sweep provenance in both summaries.
The PR objectives state that the workflow engine was unavailable and that the migration used the sanctioned LLM-only process plus manual finalization. Update both documents to record that process instead of claiming the triage-friction-log workflow performed the sweep.
docs/kit-friction-log-archive.md#L8-L8: replace the workflow attribution in the archive summary.docs/kit-friction-log.md#L16-L18: replace the same attribution in the active summary.
📍 Affects 2 files
docs/kit-friction-log-archive.md#L8-L8(this comment)docs/kit-friction-log.md#L16-L18
🤖 Prompt for 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.
In `@docs/kit-friction-log-archive.md` at line 8, Update both summary attributions
to state that the workflow engine was unavailable and the sweep used the
sanctioned LLM-only process with manual finalization. Apply this change in
docs/kit-friction-log-archive.md:8 and docs/kit-friction-log.md:16-18; remove
the claim that triage-friction-log performed the sweep while preserving the
entry count and accounting status.
post-merge-systemize said never commit reports/; triage-friction-log said git-track it. .gitignore matched neither -- it ignored state/ but not reports/ -- so the first rule was unenforced and left a permanently untracked reports/ in every git status. Observed during the #78 sweep. Resolved toward ignored: the report is derived (after a sweep lands every proposal is a tracker issue and every source entry is verbatim in the archive), it grows one file per run with no doc_budgets tripwire, and state/ is already ignored on identical logic. - .gitignore: add reports/ - init.sh: add_ignore_line "reports/" so adopters get it too - triage-friction-log.md: amend the Step 6 contract and the DM template's "also pushed in next branch" line to match post-merge-systemize Independent review was deliberately waived by the operator; CodeRabbit was rate limited while its status check reported pass -- the second instance today of the false-green surface warned about in dev-model.yaml for #23. No review receipt was recorded. CI covered shell syntax, the init.sh mode bit, manifest sync, and the full pytest suite.
Session shipped #78 (13 un-graduated entries -> 8 issues, friction log 190 -> 50 lines) and #80 (gitignore reports/, settling the contradiction filed as #79). Five friction entries, two at H. First: make test runs the full 372-test suite in 22s and nothing in the repo points at it, which is how a false "tests were not run locally" claim reached a merged PR body. Second: the wrap-up branch pattern collides on a same-date session, and gh pr create then opened #81 against the stale remote branch -- a diff that would have reverted both of the day's merges. #81 closed unmerged; the stale branch left intact because its commits are not ancestors of main. Also the Makefile comment describing a pre-push test gate that does not exist, the triage skill defaulting to a draft PR that CodeRabbit skips, and two more instances of a rate-limited CodeRabbit reporting pass. Archive sweep ran at --keep 4 (403 -> 319 lines, one block moved). The default --keep 6 no-opped on 5 blocks -- a fourth occurrence of #74. Independent review waived under the operator's existing docs-only scope; no review receipt recorded.
Graduation sweep from the
triage-friction-logworkflow.Issue references below are intentionally non-closing. #70-#77 all stay open — this
PR files and archives them, it does not implement any of them. (Dogfooding the rule
that #71 exists to mechanise.)
What this does
Thirteen un-graduated entries in
docs/kit-friction-log.md(7 under## 2026-07-27,6 under
## 2026-07-26, both below the graduation marker) were triaged into eightissues, #70-#77. Four of the eight each merge two entries recorded on separate
days, because the repeat is the evidence — splitting them would lose the occurrence
count that made them issue-shaped:
finally--record-reviewpartial coverageThe thirteenth entry carried "No change proposed" — the panel-disjointness
measurement, archived as a second data point for the argument in
fallback-review-panel.md, which currently rests on one.docs/kit-friction-log.mdgoes 190 -> 50 lines, back under its 150 budget.On the sweep's safety
The sweep was narrowed by a frozen-inbox snapshot taken at draft time, so an entry
added between drafting and finalizing could not be archived unfiled. Nothing was added
during the window — all three top-level blocks byte-matched the snapshot, so the sweep
was total.
Caveats for review
scripts/triage_friction_log.py,scripts/finalize_triage.pyandconfig/friction-triage.yamldo not exist — blockedon Extract the friction-triage engine from cs-toolkit behind a tracker adapter #6. This run used the skill's sanctioned LLM-only mode, and the finalize steps
(marker, sweep, branch, commit) were performed by hand against the same contract.
notify.user_keyis empty inconfig/dev-model.yaml, so the operator approvalloop ran interactively instead of over a Slack DM thread. The approval itself was
explicit: all eight proposals approved before any issue was filed.
now archived verbatim, ends with "Everything above now lives in
kit-friction-log-archive.md" — a sentence that now sits inside that file. Left
verbatim on purpose: archived blocks are moved unmodified, and archive_plan_sessions must warn on relative cross-references — both inside moved blocks and into them #73's own proposed fix
is to warn, not rewrite. The new marker in this PR will hit the same thing on the
next sweep.
Summary by CodeRabbit