Claude/dev hub phase 2 plan - #2292
Conversation
…implementation plan The owner decided the "Work in flight" panel is re-scoped to "Review state" and stays on the repository's own review records, so the spec's one open question is closed and the phase can be planned. The plan covers thirteen tasks: one build-time generator over four sources the repo already keeps, one staleness gate, a typed reader, four Server Component routes, and the registry flip. Three rulings narrow the spec's data contract — orphan routes, broken links and document age are all dropped, because a green gate already guarantees the first two and the third needs mechanism it cannot justify. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 1 minute Limit details: You’ve used the included review currently available. Your 90 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (14)
Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 643fbae2e1
ℹ️ 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".
… export README_PATH
…ot recur Two of the three findings in Task 3's review came from this plan's code snippet rather than from the implementation, so fixing only the shipped code would have left the plan able to reintroduce both on any re-run. The external-URL test asserted something true for the wrong reason: deleting the guard it claimed to prove left it green, because path.posix.join never collapses a scheme and host down to a same-named relative path. It is replaced by a test that does go red without the fix, plus a positive case so the fix cannot be made by disabling the prose scan. catalogueTargets now strips absolute URLs before either scan, which is what makes its docstring true for both of them rather than only the link loop. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The re-review found the docstring claimed "absolute URLs are stripped" while the pattern matches http(s) schemes only. That is the same doc-overstates-code mismatch that produced the original defect, in miniature, so it is corrected rather than left as a Minor. The two forms genuinely not covered are now named — a protocol-relative URL in bare prose, and an https URL wrapped across two lines — along with why widening the pattern to a bare // was rejected: it would strip the // of a comment inside a fenced code block, failing in the worse direction by hiding a document the index really does list. Comment-only; no executable line changed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… when the flake ledger is malformed
The expiry test asserted `not.toHaveProperty("expired")`, which pins one
spelling rather than the rule: adding `isExpired` or `lapsed` would break
byte-determinism identically and sail straight past it. It was caught only
incidentally, by a toEqual in a different test, and a rule enforced by accident
is not enforced. It now asserts the complete key set.
Proven by mutation rather than assumed: adding `isExpired: false` to the emitted
object turns it red (2 failed | 18 passed), and removing it turns it green
(20 passed).
readFlakeLedger cast JSON.parse straight to its type, so a corrupt ledger
surfaced as a bare SyntaxError, or as a missing `flakes` key that would have
rendered a silently empty panel — the under-reporting failure this feature
exists to prevent. It now throws naming the path it was actually given.
Two comments corrected: id-uniqueness is enforced in scripts/flake-ledger.mjs,
not here, and the missing-field message no longer names a file the caller may
not have passed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…rpus test power over scope and outcome
… drop an assertion I got wrong The sort comment claimed a total order that the real corpus contradicts: 21 records share a date, ref and head, because one branch can be reviewed twice at one commit under different scopes. Scope is now a fourth key, and the comment states what actually carries determinism — a filename-sorted input and a stable sort — rather than claiming the comparator does it alone. Task 12's React key was heading for the same trap, identifying a row by fields that are only incidentally unique. It now carries the index. The corpus test gains power over scope and outcome, which it previously never referenced at all. Removed: an assertion I specified that refs never contain a space. The implementer refused it with evidence and was right — 106 of the 454 refs legitimately contain spaces, in forms like 'PR #1888 (claude/...)'. I verified that against the corpus before accepting the refusal. The reasoning is recorded in the plan so the idea is not retried. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Tasks 1-5 complete the data layer bar its assembly, so this is a clean stopping point with nothing half-built. The session ledger, briefs and reviewer reports are deliberately git-ignored, so a fresh session would not see them. This file carries what a resuming session actually needs: where the work is, what landed with which commits, the five rulings that must not be re-opened, and the traps this branch has already paid for — including that a subagent's background work dies with its turn, that eight assertions on this programme turned out to assert nothing, and that an implementer refusing a controller instruction with evidence was right to. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Prettier renumbered the ordered list and relabelled Task 13 as 10, which would have sent a resuming session to the wrong step. Moved to a table, which carries its own numbers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The batched lint covering Tasks 4 and 5 never got a turn on the run coordinator before this session ended. It is unrun, not known-failing, and lint is the gate that caught this branch's only Critical finding — so a resuming session must not read green tests and typecheck as evidence the diff is clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The lint covering Tasks 4 and 5 got its turn and passed with no findings, so the handoff no longer carries an unrun gate. Task 6 is a clean start. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 30e3f08449
ℹ️ 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".
Summary
Verification
tsc -p tsconfig.typecheck.json --noEmitgit diff --checknpm run verify:pr-localpreflight; final-head CI is pending. The coordinated typecheck wrapper was interrupted by the local execution environment, but the underlying compiler completed successfully.Risk and rollout
docs:update/snapshot generation now stops rather than silently omitting a non-ignored untracked Markdown file; stage intended documents or add personal scratch notes to.gitignore.Clinical Governance Preflight
Notes
mainat62cfcab483077d437a513b33eec87272852fa197; CI remains to be evaluated for this final head.