docs(method): formalize leash files as a backlog lane for temporary scaffolds#386
Conversation
…caffolds Promotes the prototype pattern used on jedit PR #33's session-port scaffold ("temporary thing tied to a deletion trigger") into an explicit METHOD lane: docs/method/backlog/leash/. Each leash file declares: scaffold name, owning repo, introduction provenance (PR + SHA), reason, deletion_trigger (repo/cycle/phase), the concrete symbols whose disappearance is the deletion proof, and status (active | triggered | deleted | escalated). Lifecycle: active - scaffold in production, trigger not fired triggered - trigger cycle/phase closed; surface on cycle-close deleted - symbols grep clean; move to graveyard with SHA escalated - triggered + still present past grace window; promote to asap/ for the next cycle Tooling intent (not in this card): xtask leash-audit parses every leash, checks the trigger cycle's retro/, greps the named symbols, transitions status, surfaces warnings. Dumb script on purpose; the hard work is the records. The pattern composes with existing lanes (asap/, bad-code/, cool- ideas/, graveyard/) rather than replacing any of them. A prose asap/ card and a structural leash/ record can co-exist via the companion_cards field; the prose lives in asap/, the structural record lives in leash/. Companion: the first concrete leash file (jedit/docs/method/backlog/leash/jedit-session-port.md) lands separately in the jedit repo and references this card as the convention it follows. Motivation: the 2026-05-30 merge session ended with the explicit watchout that the jedit session-port scaffold could become permanent furniture. Humans are goldfish with keyboards; the machine is the nag. This is the smallest possible mechanism that makes the machine the nag.
|
Warning Review limit reached
More reviews will be available in 28 minutes and 57 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ 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 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 038c17e4e6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex P2 review note on PR #386 surfaced the gap: defining the leash convention card alone left the lane invisible to existing tooling. `cargo xtask method status` iterates a fixed lane list in crates/method/src/workspace.rs LANES; until that list included "leash", any file dropped in docs/method/backlog/leash/ would silently fail to appear in status output. The convention would have shipped as half-real. This commit closes the gap: - workspace.rs LANES adds "leash" with a doc comment pointing at the convention card. - graph.rs GRAPH_LANES adds "leash" so it shows up in `xtask method graph` output too. - graph.rs lane_colors() gets an amber + dark-orange palette for leash, deliberately distinct from asap's soft yellow: leash is "tied, on a clock" (structurally committed to deletion), while asap is "urgent but open-ended." - tests/graph_tests.rs and tests/status_tests.rs both add "leash" to their scaffold() helpers so the lane exists in every test workspace going forward. - tests/status_tests.rs status_counts_lane_files now also asserts report.lanes.get("leash") == Some(&0) on the empty scaffold case, so a future refactor that drops the lane from LANES would fail this baseline. - tests/status_tests.rs status_counts_leash_lane_files is a new positive regression: place two leash files, assert the lane count is 2 and total_items is 2. This is the RED that proves the registration actually works end-to-end, not just at the constant-list level. The deeper `xtask leash-audit` machinery (transition active → triggered → deleted/escalated, grep symbols, walk retro/) stays out of scope per the "you only need a Tool when you have two of the thing" rule. The convention card's "Not in scope here" section is updated to reflect that the lane registration shipped here while the audit is still future work. Convention card updated to: - Replace the "single script will do everything" framing with a two-tier description: lane registration (now) vs audit machinery (later). - Explicitly cite the workspace.rs / graph.rs / status_tests.rs hookups so future readers know where to look.
Summary
Promotes the prototype pattern from jedit PR #33's session-port scaffold ("temporary thing tied to a deletion trigger") into an explicit METHOD lane: `docs/method/backlog/leash/`. Companion concrete leash for `JeditWorldlineSessionPort` lands separately in the jedit repo.
What lands
Why
Cross-repo / cross-cycle work routinely produces deliberate temporary scaffolds. The failure mode is forgetting to delete them when their reason expires. Prose backlog cards rely on humans nagging themselves. Leash files make the machine the nag.
The 2026-05-30 jedit PR #33 review-resolution session ended with exactly this watchout: "Temporary things love to buy furniture. Don't let it." This is the smallest possible mechanism that prevents the furniture-buying.
Composes with existing lanes
Test plan
Cross-repo
Companion PR will follow in jedit creating `jedit/docs/method/backlog/leash/jedit-session-port.md` using this schema.