docs(method): add backlog cards and hook failure note#388
Conversation
Captures the post-merge backlog batch authorized by the user after the Echo 0025 Phase 2 pre-flight review. None of these block Phase 2 RED; all are recorded so the ideas do not evaporate. PLATFORM_claude-think-remember.md Two-part: enhancement (--since / --repo / --branch filters on the existing --remember surface) + ritualization (replace --recent with --remember in CLAUDE.md session-start guidance). Acknowledges that --remember already exists and was discovered mid-session. PLATFORM_test-timing-history.md Per-test timing telemetry: append to target/test-timing-history.jsonl on every test run; surface via `xtask slow-tests --top / --branch / --since / --regressed-since`. Defends the PR #383 dev-loop speedup against silent re-decay; the 96-second test should have been visible before it became rage fuel. WESLEY_ir-structural-diff.md `wesley diff <old-ir> <new-ir>` classifier: breaking (enum reorder, field removal, codec_id change, op-id preimage change) vs potentially safe (additive new operation/type) vs drift (stale inline codec_id). Pre-push gate + PR review bot. Would have caught the entire 0024 design-doc append-only-enum bug at the IR level. METHOD_generated-playback.md Phase 3 playback docs become generated artifacts derived from cycle goals + RED test names + acceptance criteria + witness commands. Sign-off slots persist in a sibling file across regens. Eliminates the single largest source of stale METHOD docs without removing the human sign-off step. PLATFORM_xtask-leash-audit-stub.md Minimum-viable leash audit: read leash frontmatter, print active leashes with per-symbol grep counts against the target repo. No state-machine yet. Justifies shipping early because Phase 2 GREEN is precisely the moment the first leash should fire. Each card has acceptance criteria. Each cross-references its companions (test-timing → wesley-gen-speedup, wesley-diff → wesley-gen-emitter-duplication, leash-audit → leash convention).
|
Warning Review limit reached
More reviews will be available in 38 minutes and 24 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 (6)
📝 WalkthroughWalkthroughThe PR adds five design documents to the backlog describing proposed tooling and workflow features: automated playback generation from test metadata, enhanced ChangesBacklog Proposals
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Suggested labels
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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: 17ce49fb76
ℹ️ 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".
There was a problem hiding this comment.
Actionable comments posted: 8
🤖 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/method/backlog/cool-ideas/METHOD_generated-playback.md`:
- Around line 83-90: Add a reproducibility acceptance criterion that requires
byte-stable output: update the checklist in METHOD_generated-playback.md (the
section describing the xtask method playback <cycle> command that produces
docs/method/playback/<cycle>/playback.md) to state that identical inputs must
produce byte-identical playback.md files and that the sign-off mapping must
remain unchanged; also describe the minimal verification step (re-run xtask
method playback <cycle> on identical inputs and compare bytes and signoff
mapping) and state that this determinism guarantee is required for METHOD Phase
3 references to the generator to be canonical.
- Around line 44-56: The generator for METHOD_generated-playback.md lacks a
deterministic ordering and stable question-id algorithm; update the generator to
(1) derive a stable question-id from an immutable source (preferably an explicit
scaffold id if present, otherwise a content-stable hash of the question scaffold
text + canonical normalization) and store that id with each question, (2)
canonicalize/sort output deterministically (e.g., sort by question-id, then
section title, then test name) so sections never reorder across regens, and (3)
persist sign-offs in the sibling playback-signoffs.md keyed by that stable
question-id so renames or test output changes don’t remap signatures. Also add a
short contract note to METHOD_generated-playback.md describing the id derivation
and the canonical sort order so consumers know the stability guarantees.
In `@docs/method/backlog/cool-ideas/PLATFORM_claude-think-remember.md`:
- Around line 21-23: The code block shows a mismatched CLI name ("think
--remember [--brief] [--limit=N] [query]") while the rest of the card uses
"claude-think --remember ..."; pick the canonical executable name used elsewhere
(change the snippet to "claude-think --remember [--brief] [--limit=N] [query]")
so the documented invocation is consistent with the rest of the document and
avoid stale references to "think".
- Around line 99-100: The acceptance criteria for the claude-think CLI flag
--since (used by the --remember command) is ambiguous; pick and document a
single canonical input format (e.g., ISO 8601 durations) or explicitly specify
exact precedence and normalization rules between ISO8601 and human-friendly
forms. Update the acceptance line for "claude-think --remember --since
<duration>" to state the chosen canonical format (or precise parsing precedence
and how inputs are normalized to canonical form) so tests can rely on
deterministic parsing and hashing for functions that consume --since.
In `@docs/method/backlog/cool-ideas/PLATFORM_test-timing-history.md`:
- Around line 45-47: Update the documentation line that suggests stable Rust can
parse libtest JSON by removing or correcting the claim that "`cargo test --
--format=json`" works on stable; instead state that libtest JSON output is
unstable and requires nightly unstable options (e.g., `-Z unstable-options`) or
a nightly toolchain, and reference "libtest" and "`--format=json`" so the doc at
the Capture paragraph is clearly corrected.
In `@docs/method/backlog/cool-ideas/PLATFORM_xtask-leash-audit-stub.md`:
- Around line 89-91: The acceptance criteria for `cargo xtask leash-audit` lacks
a deterministic output ordering; update the doc for the task so the CLI's
printed list of active leashes and per-symbol grep hit counts is canonically
ordered (e.g., sort leashes by the `scaffold` field and, within each leash, sort
symbols lexicographically) and state this requirement in the acceptance criteria
so CI and reviews see stable, repeatable output when reading
`docs/method/backlog/leash/*.md` frontmatter.
- Around line 102-104: The cross-repo reference
`jedit/docs/method/backlog/leash/jedit-session-port.md` in the card is stale
because it appears as an in-repo path; update the link to an explicit external
repository URL or clearly mark it as external (e.g., "external:
github.com/OWNER/jedit/..." or full https://... link) so readers in this
repository can follow it reliably; locate the string
`jedit/docs/method/backlog/leash/jedit-session-port.md` in
PLATFORM_xtask-leash-audit-stub.md and replace it with the canonical external
URL or an explicit "external" note and ensure link format matches other docs
links.
In `@docs/method/backlog/cool-ideas/WESLEY_ir-structural-diff.md`:
- Around line 89-91: The pre-push gate incorrectly calls "wesley diff
origin/main HEAD" (passing git refs) while wesley diff expects two IR artifact
paths; update the pre-push hook (the script that gates pushes for changes to
.ir.json or .graphql) to first resolve or generate the two concrete IR JSON file
paths for the base and head (e.g., produce base.ir.json and head.ir.json from
origin/main and HEAD) and then invoke "wesley diff <base-ir.json>
<head-ir.json>"; ensure the hook fails the push when wesley reports breaking
changes and accepts non-breaking changes or a version bump.
🪄 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: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: c94568bf-0d21-4516-9628-235a5141af24
📒 Files selected for processing (5)
docs/method/backlog/cool-ideas/METHOD_generated-playback.mddocs/method/backlog/cool-ideas/PLATFORM_claude-think-remember.mddocs/method/backlog/cool-ideas/PLATFORM_test-timing-history.mddocs/method/backlog/cool-ideas/PLATFORM_xtask-leash-audit-stub.mddocs/method/backlog/cool-ideas/WESLEY_ir-structural-diff.md
|
Activity Summary for Code Lawyer pass on PR #388.
Self-audit found no additional issues beyond the PR review threads. The top-level title warning is stale: this PR does include the linked-worktree hook failure note. Local validation performed:
All known unresolved review threads have been resolved via GraphQL. |
Summary
This PR records METHOD backlog notes so the ideas and observed tooling debt stay visible instead of living only in session memory.
It currently includes:
PLATFORM_claude-think-remember.mdcodex-think --rememberfiltering and ritualizing it in session-start guidance.PLATFORM_test-timing-history.mdxtask slow-testsquery ideas to protect dev-loop speed.WESLEY_ir-structural-diff.mdwesley diff <old-ir> <new-ir>for schema/IR compatibility classification.METHOD_generated-playback.mdPLATFORM_xtask-leash-audit-stub.mdPLATFORM_linked-worktree-hooks-use-dotgit-paths.mdscripts/verify-local.shassumes.gitis a directory and fails in linked worktrees after checks pass.Why this matters
The five cool-ideas cards preserve the 2026-05-30 brainstorm in the filesystem backlog. The linked-worktree hook note captures a concrete operator-facing failure observed while committing from
/Users/james/git/echo-teardown: local validation passed, but stamp writing failed withmkdir: .git: Not a directorybecause linked worktrees store.gitas a pointer file.Validation
scripts/verify-local.sh pre-commitpassed during commit.scripts/check_spdx.sh docs/method/backlog/bad-code/PLATFORM_linked-worktree-hooks-use-dotgit-paths.mdpnpm exec prettier --check docs/method/backlog/bad-code/PLATFORM_linked-worktree-hooks-use-dotgit-paths.mdgit diff --checkNotes
None of these cards are implementation commitments for the current release lane. They are backlog capture and tooling-debt documentation.