feat(start): segments 1/3 enter at C1 — lint gate 19b flip blocked, evidence inside (#673, #676) - #893
Merged
Merged
Conversation
C1 is authored, in the committed bundle (content.lock sha c5c625e) and live on-chain, so SEGMENT_ENTRY_COURSE's placeholder entry at C2 is retired: segments 1 and 3 now enter at course-solana-for-web-devs. Segment 2 is unchanged (enters at C3, skips the on-ramp). The #794-era live-bundle regression suite gains an explicit expected-table assertion. Its two existing invariants (no segment enters a retired course; every entry deep-links to a real bundle lesson) both stayed GREEN under the old table, so they could not have caught the flip on their own — the literal table is what pins it. Gate 19b (#676) is NOT flipped: an audit of courses-academy main (c5c625e) still reports 30 gate-19b findings, so the tier change waits on the paired skills.yaml sweep in the content repo. The in-code TODO and the diagnostic text are re-pointed at that real precondition instead of the now-satisfied catalog one.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @thomgabriel's task in 2m 9s —— View job Code Review
No blocking findings. This is a clean, well-scoped PR — the diff matches exactly what the body claims, no more and no less. Verified
Non-blocking
Advisory only — CI is the hard gate, and per repo policy this still needs human sign-off before merge (routine here since no RLS/on-chain/secrets/mainnet surface is touched, but the flip does affect the live |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Final monorepo step of the C1 flip wave. C1
course-solana-for-web-devsis authored (courses-academy #25), in the committed bundle (meta.jsonshac5c625e, 6 courses / 66 lessons) and live on-chain — deployment row synced + active, rendering in the anon catalog.1. Segment flip (#673)
SEGMENT_ENTRY_COURSE— segments 1 and 3 flipcourse-rust-for-program-devs→course-solana-for-web-devs. Segment 2 is unchanged (course-building-first-program; it "enters here" and skips the on-ramp). TheTODO(#599/#673)becomes a statement of the completed flip.Test change + red-proof.
entry-course-live.test.ts(the #794-era guard that runs the real resolver against the real bundle) gains an explicit expected-table assertion. Both of its existing invariants are untouched and unweakened:Red-proof — with the new test file and the old constant restored:
The
3 passedis the load-bearing part: under the old table both original invariants still passed (C2 is live and non-retired, so it deep-links fine). They could not have detected this flip in either direction — the literal expected table is what pins it, which is precisely why it was added rather than relying on the generic invariants.With the new constant:
4 passed.2. Gate 19b (#676) — NOT flipped, with evidence
The instruction on #676 was to flip only if content is clean, and to report violations rather than ship a red gate. It is not clean. Running content-lint the CI way (
validate-content.ymlinvocation) against courses-academy main @ c5c625e:Flipping the tier today turns content CI red on main. The issue itself pairs the tier change with a sweep of the then-current warning list, and that sweep lives in
skills.yamlin the content repo — it cannot land in this PR. So#676stays open and this PR does not close it.What this PR does instead: re-points the stale precondition. The old comment and diagnostic text said "flips once the 5-course catalog lands" — the catalog has landed, so that text now reads as satisfied while the gate stays a warning. It now names the real remaining blocker (the skills.yaml sweep) and the order of operations.
The 23 single-use slugs
keypairs-walletsprogram-testingreacttoken-2022transfer-hookprotocol-versioningversion-pinningsolana-payapi-monetizationsubscriptions-programsubscription-authorityrecurring-delegationrust-control-flowrust-move-semanticsrust-slicesrust-modulescompiler-errorsbuild-servertoolchain-versionsclient-codegensemvercisimulationNote
reactis also aNON_REVIEW_ELIGIBLE_SKILLSfacet (gate 19d notice) — a candidate forreviewExemptrather than a second tagging.The 7 dead vocabulary entries (0 lessons)
defi,amm,lending,staking,oracles,wallet-adapter,siws— all survivors of the retired-course sweep (CATALOG §3). Deletion candidates.Verification
pnpm typecheckapps/webvitest (full suite)packages/content-lintvitestpnpm lintimport/orderwarnings only, 0 errors)prettier --checkon changed filesOK (58 diagnostics, 0 errors)Refs #676. Does not close it — the tier flip is still pending the content-repo skills.yaml sweep.
Part of #673's flip checklist; #673 closes manually with the wave summary after this merges.