Repository navigation
Single-source provider guides: bundled docs/guides catalog serving MCP, /guides pages, and raw text/markdown - #1254
Closed
kentcdodds wants to merge 4 commits into
Closed
kentcdodds wants to merge 4 commits into
kentcdodds wants to merge 4 commits into
Conversation
…pages, and raw text/markdown
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
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.
Summary
Provider connect guides existed only as agent-improvised prompts ("walk me through creating my own OAuth app"), and
coding_guide_getfetcheddocs/guides/*.mdfromraw.githubusercontent.comat request time. This PR makesdocs/guides/a single bundled source of truth served three ways, and adds five verified provider connect guides.packages/worker/src/guides/): every guide carries YAML frontmatter (id,title,summary,category,provider,lastVerified); markdown is imported at build time (same pattern as blog posts) so MCP, web, and raw-markdown responses always serve identical deployed content.coding_guide_getnow serves the bundled catalog — no request-time GitHub dependency; enum, per-guide descriptions, and search keywords derive from frontmatter.openapi_integrationsbecomes loadable for the first time./guidesand/guides/:slug(blog-area chunk, SSR +.jsontwins), with a Guides link in the site header and footer./guides.md,/guides/:slug.md,/blog/:slug.md, plusAccept: text/markdownon the HTML routes (Vary: Accept; HTML wins ties so browsers are unaffected).docs/guides/providers/): Google, GitHub, Notion, Spotify, Discord — verified console steps (August 2026), prefilled/connect/oauth//account/secrets/newlinks, personal-token lanes where they exist, minimal-scope tiers, execute smoke tests, and the sharp edges (Google's Testing-mode 7-day refresh-token trap, Spotify's Premium requirement, Discord's OAuth-vs-bot split, Gmail restricted scopes).provider_*guides; docs updated (docs/guides/README.md,docs/use/first-steps.md,docs/use/index.md). A parity test pins suggestionguideSlugs to real catalog entries.first-partylink policy (root-relative links like/connect/oauth?..., user-scope paths still refused) and copyable code blocks (copy-code-block.tsx); the untrusted default is unchanged.Testing
npm run validatefully green (all 12 jobs: 1882 unit tests, 8 Playwright e2e, MCP e2e, lint/format/typecheck/docs checks).coding_guide_getserving every bundled guide, integration-suggestion ↔ catalog parity..mdtwins,Accept: text/markdown, browser Accept → HTML, blog twin) and a recorded browser walkthrough.System recap — extends existing primitives (medium risk)
Mode: recap · Base:
main@34614dc1· Head:00d3bf8dClassification: extends — no new taxonomy primitive;
app-uigains routes/negotiation andcapability-registry'scoding_guide_getchanges its content source from runtime GitHub fetch to the build-time guide catalog (new shared modulepackages/worker/src/guides/, plumbing under existing primitives).Primitives touched
app-ui/guidesroutes,.mdtwins +Accept: text/markdownnegotiation, first-party markdown links, copyable code blockscapability-registrycoding_guide_getserves the bundled catalog; enum/keywords derive from guide frontmatterapp-sessionsonboarding-data.ts)System map
Guide markdown flows from
docs/guides/through the bundled catalog into both the MCP capability and the web routes.Legend: green = composes (wiring only) · amber = extended by this PR · red = new primitive · gray = context (unchanged, included only when an edge crosses it).
Before / after
Invariants
Per-user isolation untouched: guides are static repo content with no user data; the untrusted markdown link policy (user-scope refusal) stays the default and applies under the first-party policy too.