Skip to content

docs: rebuild the site structure — add sections, retire superseded pages - #2978

Merged
ukimsanov merged 4 commits into
mainfrom
docs/site-structure
Aug 4, 2026
Merged

docs: rebuild the site structure — add sections, retire superseded pages#2978
ukimsanov merged 4 commits into
mainfrom
docs/site-structure

Conversation

@ukimsanov

Copy link
Copy Markdown
Collaborator

Second of three commits that replace #2973. Stacked on #2977. This PR changes which pages exist and how they are reached; it does not rewrite the prose on any surviving page — that is the next one.

Two commits, deliberately separate:

1. Add the sections the navigation is organised around

  • Studio — 13 pages. The editor had no section of its own.
  • One guide per creation workflow, matching the shipped agent skills.
  • Section hubs: Concepts, Catalog, Developers, Deploy, Workflows, Help, Go further, Product updates, 30 Days of HyperFrames.

At this commit every sidebar entry points at a file that exists, nothing is deleted, and no redirect is claimed. Pages a later commit retires drop out of the sidebar here but still exist and still resolve.

2. Retire the thirteen superseded pages

Each deletion lands in the same commit as its redirect, so no published URL starts returning a 404. Destinations are the page that now answers the question the retired page answered — Studio pages for editor topics, workflow guides for the per-source how-tos, Troubleshooting for the mistakes list.

Review notes

  • 0 dangling navigation entries, 0 broken internal links, at both commits.
  • All 13 deletions have a redirect; verified by cross-checking the deleted set against redirects in docs.json.
  • Fixes a /concepts link from the Lambda migration guide that is broken on main today — the destination did not exist.
  • Redirect count goes 1 → 29.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures the Mintlify docs IA by adding new top-level sections and workflow/studio/developer hub pages, while retiring superseded pages and adding redirects so previously published URLs continue to resolve.

Changes:

  • Adds new “Workflows”, “Studio”, “Developers”, “Catalog”, “Concepts”, “Help”, “Go further”, and “30 Days” content pages to match the new navigation structure.
  • Removes superseded guides/pages (e.g. Showcase, Launch Videos, Website-to-Video, Pipeline, etc.) and routes them via docs.json redirects to their replacements.
  • Updates docs/docs.json navigation tabs/groups and expands redirects and footer/navbar structure.

Reviewed changes

Copilot reviewed 53 out of 53 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
docs/workflows.mdx Adds a workflow chooser landing page.
docs/thirty-days.mdx Adds a consolidated “30 Days of HyperFrames” hub linking to original posts.
docs/studio/variables.mdx Adds Studio guidance for variables/templates.
docs/studio/troubleshooting.mdx Adds Studio troubleshooting page for common editor issues.
docs/studio/timeline.mdx Adds Studio timeline editing guide.
docs/studio/storyboard.mdx Adds Storyboard review guide.
docs/studio/source.mdx Adds “Source and agent” workflow guide for Studio + agent collaboration.
docs/studio/slideshows.mdx Adds Studio slideshow editing guide.
docs/studio/shortcuts.mdx Adds Studio keyboard shortcuts reference.
docs/studio/index.mdx Adds Studio overview hub page with embedded walkthrough media.
docs/studio/export.mdx Adds Studio export/render queue guide.
docs/studio/captions.mdx Adds Studio caption editing guide and persistence limitations.
docs/studio/canvas.mdx Adds Studio “edit the frame” workflow guide.
docs/studio/assets-and-blocks.mdx Adds Studio Assets/Catalog usage guide.
docs/studio/animation.mdx Adds Studio keyframes/animation editing guide.
docs/showcase.mdx Removes superseded Showcase page (redirected in docs.json).
docs/reference/color-grading.mdx Adds implementation-level color grading reference page.
docs/product-updates.mdx Adds a human-readable product updates hub page.
docs/launch-videos.mdx Removes superseded Launch Videos page (redirected in docs.json).
docs/help.mdx Adds “Get unstuck” hub page routing common symptoms to fixes.
docs/guides/website-to-video.mdx Removes superseded guide (redirected to product/website workflow).
docs/guides/voice-and-audio.mdx Adds guide for voice/music/SFX/captions workflows.
docs/guides/video-editor-cheatsheet.mdx Removes superseded guide (redirected to Studio shortcuts).
docs/guides/timeline-editing.mdx Removes superseded guide (redirected to Studio timeline).
docs/guides/slideshow.mdx Adds workflow guide for creating interactive presentations.
docs/guides/product-launch-video.mdx Adds product/website workflow guide aligned to skills/workflows.
docs/guides/pr-to-video.mdx Adds pull-request workflow guide aligned to skills/workflows.
docs/guides/pipeline.mdx Removes superseded pipeline guide (redirected to Concepts).
docs/guides/open-design.mdx Removes superseded guide (redirected to design tools).
docs/guides/music-to-video.mdx Adds music-driven workflow guide aligned to skills/workflows.
docs/guides/motion-graphics.mdx Adds motion-graphics workflow guide aligned to skills/workflows.
docs/guides/media.mdx Adds media overview guide and task routing.
docs/guides/media-overlays.mdx Removes superseded guide (redirected to Catalog).
docs/guides/keyframes.mdx Removes superseded guide (redirected to Studio animation).
docs/guides/general-video.mdx Adds general/custom workflow guide aligned to skills/workflows.
docs/guides/faceless-explainer.mdx Adds faceless explainer workflow guide aligned to skills/workflows.
docs/guides/export-and-share.mdx Adds a unified “finish and share” guide covering checks/render/share.
docs/guides/design-tools.mdx Adds guide for bringing Figma/design-tool drafts into projects.
docs/guides/copilot-cli.mdx Removes superseded guide (redirected to skills).
docs/guides/common-mistakes.mdx Removes superseded guide (redirected to troubleshooting).
docs/guides/claude-design.mdx Removes superseded guide (redirected to design tools).
docs/guides/choose-creation-path.mdx Adds “choose how to create” decision page.
docs/guides/captions-and-recuts.mdx Adds workflow guide for captions vs overlays vs recut decisions.
docs/guides/avatar-presenter.mdx Adds workflow guide for avatar presenter integration.
docs/guides/antigravity.mdx Removes superseded guide (redirected to skills).
docs/go-further.mdx Adds a “Go further” hub page guiding deeper control paths.
docs/docs.json Rebuilds navigation tabs/groups, theming defaults, footer/navbar, and expands redirects set.
docs/developers/overview.mdx Adds conceptual developer overview of surfaces (CLI/SDK/Player/Producer/etc.).
docs/developers/index.mdx Adds Developers hub page for journey entry and routing.
docs/developers/cli.mdx Adds developer-facing CLI guide page.
docs/deploy/overview.mdx Adds rendering-path decision page for deploy/infrastructure choices.
docs/concepts/index.mdx Adds “How a HyperFrames project works” concepts hub page.
docs/catalog/index.mdx Adds Catalog landing page routing into major block/component categories.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/studio/source.mdx
Comment on lines +71 to +73
Choose **Lint** at the bottom of the left sidebar. Studio opens **HyperFrame
Lint Results** with errors, warnings, file locations, and fix hints when they
are available.
narration and feedback drafts show their own Save action. If the change came
from another editor or an agent, confirm that the external file was saved.
- Wait for the project refresh.
- Check the terminal running `hyperframes preview`.

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at head 8e5b25bbb982b20137a9cc9fa11989699105b849. You asked for redirect semantics and deleted-content parity rather than prose, so that is all this covers.

Two notes on state first. The stack restacked while I was reading — I did the analysis at 42ac8a93 and re-verified afterwards by comparing git blob SHAs for every file a finding rests on (docs.json, product-updates.mdx, weekly-updates.mdx, changelog.mdx, sdk/overview.mdx, contributing/studio-manual-dom-editing.mdx). All identical, so everything below applies unchanged at the current head. And this is not a green-CI review: 30 of 42 checks are cancelled at this head from the restack and Analyze is still running. Validate docs is among the cancelled, so the one job that could corroborate the link claims has no result yet — unverified, resolves on re-run, not failing.

I also confirmed your claims independently rather than re-running them: 0 dangling nav entries, all 29 redirect destinations resolve to a real page, and 0 redirect chains (no destination is itself a redirect source). Those hold.


1. Four pages were removed from the nav. Two got a redirect, none got deleted, and all four still have live inbound links

This is the answer to "anything the deletions dropped that nothing picked up" — but from the direction your verification doesn't reach. Your checker runs nav → file, which is why it correctly returns zero dangling entries. The file → nav direction is unchecked, and that is where these live.

The 13 retirements are clean: nav entry removed, redirect added, file deleted. Four more pages got part of that treatment:

Page In nav at base In nav now Redirect File deleted
docs/changelog.mdx yes no none no
docs/weekly-updates.mdx yes no none no
docs/sdk/overview.mdx yes no yes no
docs/contributing/studio-manual-dom-editing.mdx yes no yes no

/weekly-updates now appears nowhere in docs.json — not in navigation, not in footer, not as a redirect source or destination. /changelog's only occurrence is the unrelated contributing/changelog-process nav entry.

Both files still exist and still build, so every link to them resolves and the broken-link check is right to pass. The regression is that the pages are now reachable only by direct URL:

  • docs/product-updates.mdx — new in this PR, in the nav and in the footer under Resources — links to /changelog three times (:6, :47, :51) and /weekly-updates once (:6). One of those is "Read the release archive before upgrading a production workflow with custom integrations", which is load-bearing advice.
  • docs/weekly-updates.mdx itself links to /changelog four times.

I don't think this was intended, and the stack says so: #2979 actively upgrades weekly-updates.mdx — it imports DocsVideo and converts four raw <video> tags to the new component. You don't invest in a page you meant to retire. weekly-updates.mdx also carries rss: true in its frontmatter, so it is a subscribable feed being dropped out of the navigation.

For /changelog specifically there's a vendor-blessed shape: navigation.global.anchors is Mintlify's documented pattern for persistent access to pages like this, and their own example is literally /changelog.

2. /sdk/overview and /contributing/studio-manual-dom-editing — redirect added, file kept

These two got a redirect and kept their file, which is self-contradictory config. I could not resolve which wins: Mintlify documents redirect syntax and status codes but says nothing about precedence when a source also exists as a real page. Rather than guess, note that the finding doesn't depend on the answer — if the redirect wins, a still-maintained page is unreachable at its own URL; if the page wins, the redirect is dead config that misrepresents the site's structure. Either way it should be resolved deliberately: delete the file and keep the redirect, or drop the redirect and restore the nav entry.

Both also have inbound links whose promise the destination doesn't keep:

  • docs/packages/sdk.mdx:33"For the full API — guides and a complete reference for every method, operation, type, and adapter — see the SDK tab"/sdk/overview → redirect → /sdk/quickstart. A quickstart is not the complete reference the sentence promises.
  • docs/contributing.mdx:59 sends a contributor to /contributing/studio-manual-dom-editing → redirect → /studio/canvas, an end-user Studio page. The contributor-facing content has no successor.

3. The two redirects you asked me to argue

/guides/keyframes/studio/animation — this one holds. I mapped the old page's sections against the destination and the coverage is essentially total, and better organised:

  • ## Timeline Keyframe Diamonds## Add or change a keyframe
  • ## Editing Animation Properties## Retime before redesigning + ## Shape the easing
  • ## Arc Motion## Shape a motion path
  • ## Gesture Recording## Record a movement you can perform
  • ## Computed Timelines (Helpers, Loops, Dynamic Data)## Edit animation created by an agent or helper, which covers strictly more (Unroll to edit, the computed-value case, the escape hatch to the Code tab)

The literal phrase "computed timeline" no longer appears anywhere in docs/, but the concept is covered, so this is a rename not a drop. ## Clipboard Context survives as the Design Panel clipboard behaviour in docs/prompting/editing-existing-videos.mdx:91. Keep this redirect as is.

/guides/pipeline/concepts — this one I'd change. The two pages are different genres. The old page was a seven-step process (Capture → Design → Strategy & Messaging → Storyboard + Script → VO and timing → Build → Validate) plus Project layout, Iterating, and When to use the pipeline. /concepts is a mental-model page — the source is the project, what the agent creates, compositions, time, variables. It never enumerates the steps. Someone who bookmarked "The Pipeline" for the process lands on an explainer of a different kind of thing.

The individual steps do survive scattered across the new structure, so this isn't content loss so much as loss of the sequence. One real gap though: step 3 has no successor. At this head, "messaging" has zero occurrences anywhere in docs/, and "strategy" has exactly one (docs/guides/slideshow.mdx). Every other step maps somewhere.

/workflows or /guides/choose-creation-path are both closer in intent than /concepts. If the seven-step framing is being retired deliberately that's a fine call — worth being explicit about it rather than routing to the nearest hub.

4. Not a defect — please don't let anyone "fix" this

16 of the 28 new redirects omit permanent and 13 set it to true. That reads like an inconsistency worth normalising. It isn't: Mintlify defaults permanent to true, so all 29 are already permanent 308s and the two spellings are behaviourally identical. Confirmed on three separate vendor pages (create/redirects, organize/settings-reference, organize/settings-structure). Worth normalising for tidiness, but nothing behavioural rides on it and there is no SEO exposure.

5. Verified clean, beyond what you checked

I grepped the entire repository outside docs/ at this head for references to all 13 retired paths plus the 4 unlisted ones — READMEs, packages/, skills/, workflows, config. Zero hits. So the retirement is safe from the direction a docs-internal link checker structurally cannot see: nothing in the codebase, tooling, or CLI output points at a path this PR removes.

Suggestion

mint broken-links takes --check-redirects (validates that redirect destinations resolve) and --check-anchors. Both would turn the verification you ran by hand into a gate that survives the next restructure. Validate docs being cancelled at this head is a good argument for it.


Findings 1 and 2 are worth resolving before merge; nothing here is a correctness blocker and the structure itself is a clear improvement. Not stamping — you asked for review rather than approval, and I think this deserves one once the orphaned pages are settled, but that call belongs to James or Miguel.

  • Rames Jusso

@ukimsanov

Copy link
Copy Markdown
Collaborator Author

Finding 1 fixed. Finding 2 resolves itself higher in the stack — details below, and you couldn't have seen that from #2978 alone.

The orphaned pages. changelog.mdx and weekly-updates.mdx are back in the Explore group next to Product updates. Your reasoning for why this was accidental is the part I want to acknowledge: #2979 actively upgrades weekly-updates.mdx, and rss: true makes it a subscribable feed. Nobody invests in a page they meant to retire. product-updates.mdx linking to /changelog three times — including "read the release archive before upgrading a production workflow" — makes it a real regression rather than a tidiness one.

On why the verification missed it, since that's the more useful half. You put your finger on exactly the right thing: the checker walks navigation → file, which is why it truthfully reported zero dangling entries and was structurally incapable of seeing these. The file → navigation direction was never checked. It is now, and it comes back clean at the stack tip — no page exists outside both the sidebar and the redirect map.

I also took --check-redirects on the existing mint broken-links step. It guards the adjacent case rather than this one (destinations resolving, not orphans), but it's one line of vendor tooling against a real future failure. Thanks for the pointer.

Finding 2 — /sdk/overview and /contributing/studio-manual-dom-editing. You're right that the state you reviewed is self-contradictory, and right to refuse to guess at Mintlify's precedence. What you couldn't see from here: both files are deleted higher in the same stack — sdk/overview.mdx in #2974, studio-manual-dom-editing.mdx in #2976. Verified at the tip: both gone, both redirects live, no contradiction survives the stack. So it's a transient state of an intermediate commit, not a defect in the final tree.

That said, the two inbound-link mismatches you found are real and outlive the deletion:

  • packages/sdk.mdx:33 promises "a complete reference for every method, operation, type, and adapter" and lands on /sdk/quickstart.
  • contributing.mdx:59 sends a contributor to an end-user Studio page.

Both are prose in #2974 and #2976 rather than nav config, so I'm not fixing them in this PR — flagging so they're not lost.

Finding 3 — /guides/pipeline. Taking it. Retargeted to /workflows. Your genre argument is right: the retired page was a seven-step process, /concepts explains how a project is put together. And your specific catch that step 3 has no successor — "messaging" appears zero times in docs/ — is worth deciding deliberately, so I've named it in the commit rather than routing around it.

Keeping /guides/keyframes/studio/animation on your section-by-section mapping.

Finding 4 — the permanent spelling. Noted, and noted specifically as don't let anyone normalise this thinking it's a bug. Left alone.

Finding 5. The repo-wide sweep outside docs/ for all 17 paths is the check I didn't run and should have. Thank you for it.

On the state caveat: fair, and it'll keep happening — every fix on #2977 restacks everything above it. Worth re-running once the parent settles.

@ukimsanov
ukimsanov force-pushed the docs/site-structure branch from 457c472 to 8473ecb Compare August 4, 2026 03:02
@ukimsanov
ukimsanov force-pushed the docs/site-structure branch from 8473ecb to c4998a0 Compare August 4, 2026 03:37

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed at head c4998a046838fb0657be86a1cf804aa0a4e452da. Approving.

The head moved since my last pass (8e5b25bb), and the old commit is no longer reachable in the repository after the restack, so I compared file-by-file through the contents API at both SHAs rather than by diffing. Of everything my previous findings rested on, only docs.json changed — blob a12a68498077ad4d. product-updates.mdx, weekly-updates.mdx, packages/sdk.mdx, contributing.mdx, and sdk/overview.mdx are byte-identical, so the rest of the earlier verification carries and I only had to re-read the one file.

Finding 1 — nav orphans — fixed. changelog and weekly-updates are back in the navigation at navigation.tabs[0].groups[1].pages[2] and [3], next to product-updates. That closes the case cleanly: the pages were reachable only by direct URL, product-updates.mdx linked to both, and weekly-updates.mdx carries rss: true.

Finding 3 — the /guides/pipeline destination — fixed, and to the target I'd argued for. It now points at /workflows rather than /concepts. That was the genre mismatch worth resolving; a reader who bookmarked "The Pipeline" for a process now lands on something process-shaped. Note the separate half of that finding still stands as an editorial call rather than a defect: step 3 of the old seven, "Strategy & Messaging", still has no successor anywhere in docs/. Retiring that framing deliberately is a fine decision — I only wanted it to be a decision.

Finding 2 — partially deferred, and I'm fine with where it lands. /sdk/overview and /contributing/studio-manual-dom-editing still have both a redirect entry and a live file at this head. What changed my read is that the rest of the stack resolves it rather than leaving it: #2974 deletes docs/sdk/overview.mdx, #2976 deletes docs/contributing/studio-manual-dom-editing.mdx, and by the top of the stack both inbound links are gone too — packages/sdk.mdx no longer promises a "complete reference" behind /sdk/overview, and contributing.mdx no longer sends a contributor at a page that redirects to an end-user Studio page. At #2976 the only thing left for either path is the redirect entry, which is the correct end state.

So the residual is a merge-window artifact: for as long as #2978 and #2979 are on main without #2974 and #2976, two paths have a redirect whose source is also a live page, and Mintlify does not document which wins. It is docs-only, self-healing as the stack lands, and not worth holding an approval over — but it is a reason to land these in stack order rather than merging #2978 alone and pausing.

CI is terminal-green at this head: all eight required contexts (Build, Test, Test: runtime contract, Typecheck, regression, Semantic PR title, Render on windows-latest, Tests on windows-latest) report success. That is a statement about c4998a04 specifically — this repository does not dismiss approvals on push but does require the last push to be approved, so a further push invalidates both the green and this stamp.

Approving on my own verification. The nav-orphan catch was worth making non-arguable, and you closed it plus the redirect destination without argument.

Review by Rames Jusso

ukimsanov added a commit that referenced this pull request Aug 4, 2026
Both P1s from Miguel's review on #2976.

**The weekly changelog command has a fourth output, and it is public.**
`changelog-process.mdx` listed three internal drafts. `outputWeeklyDraft` also
calls `prependDocsUpdate` on `--write` (`scripts/changelog-weekly.ts:236`),
which writes straight into `docs/weekly-updates.mdx`. A contributor following
the page would review three files and push a fourth unread. Now called out as a
warning, with the re-run behaviour, since that is what makes editing the entry
afterwards safe.

The same paragraph also said Weekly updates is "unlisted in the sidebar". That
was true when written and I made it false myself, putting the page back under
Explore in #2978 after Rames found it orphaned. Corrected rather than reverted —
the page belongs in the sidebar.

**Bare `hyperframes lint` cannot validate a registry item.** Both
`contributing.mdx` and `contributing/catalog.mdx` told contributors to run it.
The CLI resolves a project by looking for `index.html`
(`packages/cli/src/utils/project.ts`), and registry items ship as `<name>.html`
or `demo.html`, so it fails with "No composition found". This is not
theoretical: `scripts/lint-registry-items.mjs` exists precisely for this shape
and its header records two `gsap_non_transform_motion` errors that reached main
unlinted because of it.

Both pages now document `bun run lint:registry-items`, and the Catalog page
shows the install-into-a-scratch-project route for the full `check` gate rather
than claiming a bare `check` covers a registry item.

Verified by running the documented command, not just by reading the script.
ukimsanov added a commit that referenced this pull request Aug 4, 2026
Both P1s from Miguel's review on #2976.

**The weekly changelog command has a fourth output, and it is public.**
`changelog-process.mdx` listed three internal drafts. `outputWeeklyDraft` also
calls `prependDocsUpdate` on `--write` (`scripts/changelog-weekly.ts:236`),
which writes straight into `docs/weekly-updates.mdx`. A contributor following
the page would review three files and push a fourth unread. Now called out as a
warning, with the re-run behaviour, since that is what makes editing the entry
afterwards safe.

The same paragraph also said Weekly updates is "unlisted in the sidebar". That
was true when written and I made it false myself, putting the page back under
Explore in #2978 after Rames found it orphaned. Corrected rather than reverted —
the page belongs in the sidebar.

**Bare `hyperframes lint` cannot validate a registry item.** Both
`contributing.mdx` and `contributing/catalog.mdx` told contributors to run it.
The CLI resolves a project by looking for `index.html`
(`packages/cli/src/utils/project.ts`), and registry items ship as `<name>.html`
or `demo.html`, so it fails with "No composition found". This is not
theoretical: `scripts/lint-registry-items.mjs` exists precisely for this shape
and its header records two `gsap_non_transform_motion` errors that reached main
unlinted because of it.

Both pages now document `bun run lint:registry-items`, and the Catalog page
shows the install-into-a-scratch-project route for the full `check` gate rather
than claiming a bare `check` covers a registry item.

Verified by running the documented command, not just by reading the script.
ukimsanov added a commit that referenced this pull request Aug 4, 2026
Both P1s from Miguel's review on #2976.

**The weekly changelog command has a fourth output, and it is public.**
`changelog-process.mdx` listed three internal drafts. `outputWeeklyDraft` also
calls `prependDocsUpdate` on `--write` (`scripts/changelog-weekly.ts:236`),
which writes straight into `docs/weekly-updates.mdx`. A contributor following
the page would review three files and push a fourth unread. Now called out as a
warning, with the re-run behaviour, since that is what makes editing the entry
afterwards safe.

The same paragraph also said Weekly updates is "unlisted in the sidebar". That
was true when written and I made it false myself, putting the page back under
Explore in #2978 after Rames found it orphaned. Corrected rather than reverted —
the page belongs in the sidebar.

**Bare `hyperframes lint` cannot validate a registry item.** Both
`contributing.mdx` and `contributing/catalog.mdx` told contributors to run it.
The CLI resolves a project by looking for `index.html`
(`packages/cli/src/utils/project.ts`), and registry items ship as `<name>.html`
or `demo.html`, so it fails with "No composition found". This is not
theoretical: `scripts/lint-registry-items.mjs` exists precisely for this shape
and its header records two `gsap_non_transform_motion` errors that reached main
unlinted because of it.

Both pages now document `bun run lint:registry-items`, and the Catalog page
shows the install-into-a-scratch-project route for the full `check` gate rather
than claiming a bare `check` covers a registry item.

Verified by running the documented command, not just by reading the script.
ukimsanov added a commit that referenced this pull request Aug 4, 2026
Both P1s from Miguel's review on #2976.

**The weekly changelog command has a fourth output, and it is public.**
`changelog-process.mdx` listed three internal drafts. `outputWeeklyDraft` also
calls `prependDocsUpdate` on `--write` (`scripts/changelog-weekly.ts:236`),
which writes straight into `docs/weekly-updates.mdx`. A contributor following
the page would review three files and push a fourth unread. Now called out as a
warning, with the re-run behaviour, since that is what makes editing the entry
afterwards safe.

The same paragraph also said Weekly updates is "unlisted in the sidebar". That
was true when written and I made it false myself, putting the page back under
Explore in #2978 after Rames found it orphaned. Corrected rather than reverted —
the page belongs in the sidebar.

**Bare `hyperframes lint` cannot validate a registry item.** Both
`contributing.mdx` and `contributing/catalog.mdx` told contributors to run it.
The CLI resolves a project by looking for `index.html`
(`packages/cli/src/utils/project.ts`), and registry items ship as `<name>.html`
or `demo.html`, so it fails with "No composition found". This is not
theoretical: `scripts/lint-registry-items.mjs` exists precisely for this shape
and its header records two `gsap_non_transform_motion` errors that reached main
unlinted because of it.

Both pages now document `bun run lint:registry-items`, and the Catalog page
shows the install-into-a-scratch-project route for the full `check` gate rather
than claiming a bare `check` covers a registry item.

Verified by running the documented command, not just by reading the script.
ukimsanov added a commit that referenced this pull request Aug 4, 2026
Both P1s from Miguel's review on #2976.

**The weekly changelog command has a fourth output, and it is public.**
`changelog-process.mdx` listed three internal drafts. `outputWeeklyDraft` also
calls `prependDocsUpdate` on `--write` (`scripts/changelog-weekly.ts:236`),
which writes straight into `docs/weekly-updates.mdx`. A contributor following
the page would review three files and push a fourth unread. Now called out as a
warning, with the re-run behaviour, since that is what makes editing the entry
afterwards safe.

The same paragraph also said Weekly updates is "unlisted in the sidebar". That
was true when written and I made it false myself, putting the page back under
Explore in #2978 after Rames found it orphaned. Corrected rather than reverted —
the page belongs in the sidebar.

**Bare `hyperframes lint` cannot validate a registry item.** Both
`contributing.mdx` and `contributing/catalog.mdx` told contributors to run it.
The CLI resolves a project by looking for `index.html`
(`packages/cli/src/utils/project.ts`), and registry items ship as `<name>.html`
or `demo.html`, so it fails with "No composition found". This is not
theoretical: `scripts/lint-registry-items.mjs` exists precisely for this shape
and its header records two `gsap_non_transform_motion` errors that reached main
unlinted because of it.

Both pages now document `bun run lint:registry-items`, and the Catalog page
shows the install-into-a-scratch-project route for the full `check` gate rather
than claiming a bare `check` covers a registry item.

Verified by running the documented command, not just by reading the script.
@ukimsanov
ukimsanov force-pushed the docs/site-structure branch from c4998a0 to 53a759b Compare August 4, 2026 05:15
ukimsanov added a commit that referenced this pull request Aug 4, 2026
Both P1s from Miguel's review on #2976.

**The weekly changelog command has a fourth output, and it is public.**
`changelog-process.mdx` listed three internal drafts. `outputWeeklyDraft` also
calls `prependDocsUpdate` on `--write` (`scripts/changelog-weekly.ts:236`),
which writes straight into `docs/weekly-updates.mdx`. A contributor following
the page would review three files and push a fourth unread. Now called out as a
warning, with the re-run behaviour, since that is what makes editing the entry
afterwards safe.

The same paragraph also said Weekly updates is "unlisted in the sidebar". That
was true when written and I made it false myself, putting the page back under
Explore in #2978 after Rames found it orphaned. Corrected rather than reverted —
the page belongs in the sidebar.

**Bare `hyperframes lint` cannot validate a registry item.** Both
`contributing.mdx` and `contributing/catalog.mdx` told contributors to run it.
The CLI resolves a project by looking for `index.html`
(`packages/cli/src/utils/project.ts`), and registry items ship as `<name>.html`
or `demo.html`, so it fails with "No composition found". This is not
theoretical: `scripts/lint-registry-items.mjs` exists precisely for this shape
and its header records two `gsap_non_transform_motion` errors that reached main
unlinted because of it.

Both pages now document `bun run lint:registry-items`, and the Catalog page
shows the install-into-a-scratch-project route for the full `check` gate rather
than claiming a bare `check` covers a registry item.

Verified by running the documented command, not just by reading the script.
@ukimsanov
ukimsanov force-pushed the docs/site-structure branch from 53a759b to 58be2a0 Compare August 4, 2026 06:08

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed at head 58be2a0c. Approving. This PR's own delta is the removal inherited from #2977, verified there.

The "conflict" is not real — don't rewrite history over it

GitHub shows this PR CONFLICTING / mergeable_state: dirty. There is no conflict:

  • GitHub's own recorded base.sha is d6e4cf22 — which is exactly git merge-base d6e4cf22 58be2a0c.
  • So the base is an ancestor of this head. Merging is a fast-forward, and a conflict is not reachable in that shape.
  • git merge-tree on the two commits is clean.

It is a stale cache from the simultaneous force-push of the whole stack, not something in your branch.

Corroborating evidence that this PR's state simply has not been reprocessed: it still reads reviewDecision: APPROVED while every other PR in the stack flipped to REVIEW_REQUIRED after the identical push, and no workflow ran on this SHA. Three stale signals, one cause.

Practical consequence: don't trust that lingering green either — it will likely flip once GitHub catches up. My approval below is pinned to 58be2a0c, so it holds either way.

CI

No workflow has run on this head. The Actions API returns zero runs for this SHA, and the only check runs present are Mintlify Deployment (skipped) and WIP. The most recent CI evidence on this branch is from the previous head.

Every branch in the stack except #2977 is in this state. The simultaneous force-push of all six looks to have left GitHub without a synchronize event for the stacked PRs — which also explains #2978's phantom conflict. Required checks hold the merge until they report, so nothing slips through; it just needs a re-trigger.

Approving on my own verification, as a statement about 58be2a0c specifically.

Review by Rames Jusso

Base automatically changed from docs/reference-project to main August 4, 2026 07:37
Adds the pages the rebuilt navigation is organised around, and moves the sidebar
onto that structure. Every entry points at a file that exists after this commit;
nothing is rewritten or removed yet, and no redirect is claimed yet.

- Studio (13 pages) — the editor had no section of its own
- One guide per creation workflow, matching the shipped agent skills
- Section hubs: Concepts, Catalog, Developers, Deploy, Workflows, Help,
  Go further, Product updates, 30 Days of HyperFrames

Pages a later commit retires drop out of the sidebar here but still exist and
still resolve, so the site stays navigable at this commit.

Incidentally fixes a link to /concepts from the Lambda migration guide that is
broken on main today — the destination did not exist.
Removes the thirteen pages the rebuilt sections replaced, and claims a redirect
for each one in the same commit so no published URL starts returning a 404.

Each destination is the page that now answers the question the retired page was
answering — the Studio pages for editor topics, the workflow guides for the
per-source how-tos, Troubleshooting for the mistakes list.
Rames' review on #2978. Two pages left the sidebar without a redirect and
without being deleted, so they survived only as direct URLs: `docs/changelog.mdx`
and `docs/weekly-updates.mdx`.

Not deliberate, and the stack says so — #2979 upgrades `weekly-updates.mdx`,
importing DocsVideo and converting four raw <video> tags. You do not invest in
a page you meant to retire, and it carries `rss: true`, so it is a subscribable
feed. `product-updates.mdx`, which this stack adds to both the nav and the
footer, links to `/changelog` three times and `/weekly-updates` once. One of
those is advice to read the release archive before upgrading a production
workflow.

Both are back in the Explore group next to Product updates, which is where a
reader looking for "what changed" would go.

Worth naming why the verification missed it: the checker walks navigation → file,
which is why it correctly reported zero dangling entries. The file → navigation
direction — a page that exists, is not in the sidebar, and has no redirect — was
never checked, and that is exactly where these two sat.

`--check-redirects` on the existing `mint broken-links` step closes the adjacent
gap: it resolves every redirect destination, so a future restructure cannot
leave a redirect pointing at a page it removed. It does not catch the orphan
case above.

Also retargets `/guides/pipeline`. It pointed at `/concepts`, which explains how
a project is put together; the retired page was a seven-step process. `/workflows`
is the closer intent. The old step 3, "Strategy & Messaging", has no successor
anywhere in the docs — worth deciding deliberately rather than routing around.
@mintlify

mintlify Bot commented Aug 4, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
hyperframes 🟢 Ready View Preview Aug 4, 2026, 7:40 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed at 8b98b41e. Holding this one — the rebase wasn't content-neutral, and what it changed is in this PR's own subject matter. One line to fix.

The rebase re-added a nav entry this PR deliberately removed

I compared the PR's own diff before and after the rebase (d6e4cf22..58be2a0c vs merge-base(main)..8b98b41e). They are identical except for one line in docs/docs.json:

+              "contributing/studio-manual-dom-editing",

At 8b98b41e that page is now in the nav and is the source of a redirect:

  • docs/docs.json:602 — nav entry contributing/studio-manual-dom-editing
  • docs/docs.json:733{"source": "/contributing/studio-manual-dom-editing", "destination": "/studio/canvas"}

So the Contributing sidebar lists an entry whose own URL is redirected away. A reader clicks "Studio manual DOM editing" and lands on /studio/canvas instead. The destination exists, so nothing 404s — but the nav entry no longer does what it says.

This is not pre-existing drift. Checking the invariant "is any nav page also a redirect source" across three refs:

ref nav pages redirects collisions
58be2a0c (what I approved) 307 29 0
8b98b41e (rebased) 309 29 1
origin/main 283 1 0

Zero before, zero on main, one after. Of the two nav entries the rebase added, contributing/canary-rollouts is legitimately from main; contributing/studio-manual-dom-editing is the resurrection. Removing the nav entry was part of this PR's original change — the conflict resolution dropped the deletion at the old position and re-inserted the line at the new one.

Fix: delete line 602 from docs/docs.json. The redirect stays; the page file stays (#2976 removes it later, as before).

CI — the claim mostly holds, with one correction worth having

8b98b41e has 37 distinct check contexts: 24 success, 13 skipped, 0 failures. So "nothing failed" is right.

The correction is on required contexts: 6 of 8 green, because Render on windows-latest and Tests on windows-latest are skipped, not passed. For a docs-only change that's the path filters doing their job — flagging it only so "35 checks green" isn't carried into the next PR as a claim that the Windows paths were exercised. They weren't.

Your read on the CI topology is right

Worth confirming, since you're about to plan four more rebases around it: my data matches. #2977 (base main) got the full matrix. The five stacked PRs returned zero workflow runs on their heads. #2978 on main now gets 37 contexts. Basing on main is what triggers the real suite, so the rebase-as-the-stack-lands plan is the right one.

Everything else at this head I verified last round and it carries unchanged.

Happy to re-approve the moment line 602 is gone — this is one deletion, not a rethink.

Review by Rames Jusso

My rebase of this branch onto the squashed main resolved a docs.json conflict by
keeping both sides. One of those sides was a deliberate deletion: this PR removed
"contributing/studio-manual-dom-editing" from the sidebar precisely because it
also became a redirect source pointing at /studio/canvas. Re-inserting it left a
Contributing entry that bounces the reader somewhere else when clicked.

Nav collision count is back to 0. The redirect and the page file are untouched;
contributing/canary-rollouts stays, since that one genuinely arrived from main.

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified at 1a82615f. Approving — my change-request is cleared.

The fix is exactly what was asked and nothing more: git diff 8b98b41e 1a82615f is a single deleted line in docs/docs.json, one file, one deletion.

Re-ran the invariants at this head rather than taking the claim:

  • Nav/redirect collisions: 0 (308 nav pages, 29 redirects). Was 1.
  • contributing/studio-manual-dom-editing is out of the nav; the redirect object is byte-intact and still points at /studio/canvas.
  • The page file is untouched and still present — #2976 removes it later, exactly as before.
  • contributing/canary-rollouts kept, and its file exists at this ref. Correct call: that one really is main's.
  • Dangling nav entries: 0 across all 308 — every entry resolves to a file at this ref.

And the check that matters most for a rebase: this PR's own delta is now content-equivalent to what I approved pre-rebase. Comparing d6e4cf22..58be2a0c against merge-base(main)..1a82615f, the only remaining differences are two context lines (release-channels / canary-rollouts) that reflect main's own nav movement, not this PR's content.

I resolved that conflict by keeping both sides, and one side was a deletion this PR made on purpose.

That's the whole mechanism, and it's worth carrying into the four rebases still ahead: keep-both-sides is safe for additions and silently wrong for deletions, because a deletion looks identical to "absent" in the other parent. The four PRs above this one each remove nav entries too, so the same resolution can re-add them. The three-ref collision count (approved head / new head / main) catches it in one command.

CI

Still in flight at this head — 17 success, 13 skipped, 5 pending, 0 failures. Of the required set: regression, Semantic PR title, and Test: runtime contract green; Build and Typecheck pending; Test not yet reported; the two Windows contexts skipped as before. Approving on the code — required checks gate the merge on their own, so nothing lands on an unfinished run.

Approving on my own verification, as a statement about 1a82615f specifically.

Review by Rames Jusso

@ukimsanov
ukimsanov merged commit 8e41fa1 into main Aug 4, 2026
45 checks passed
@ukimsanov
ukimsanov deleted the docs/site-structure branch August 4, 2026 09:11
ukimsanov added a commit that referenced this pull request Aug 4, 2026
Both P1s from Miguel's review on #2976.

**The weekly changelog command has a fourth output, and it is public.**
`changelog-process.mdx` listed three internal drafts. `outputWeeklyDraft` also
calls `prependDocsUpdate` on `--write` (`scripts/changelog-weekly.ts:236`),
which writes straight into `docs/weekly-updates.mdx`. A contributor following
the page would review three files and push a fourth unread. Now called out as a
warning, with the re-run behaviour, since that is what makes editing the entry
afterwards safe.

The same paragraph also said Weekly updates is "unlisted in the sidebar". That
was true when written and I made it false myself, putting the page back under
Explore in #2978 after Rames found it orphaned. Corrected rather than reverted —
the page belongs in the sidebar.

**Bare `hyperframes lint` cannot validate a registry item.** Both
`contributing.mdx` and `contributing/catalog.mdx` told contributors to run it.
The CLI resolves a project by looking for `index.html`
(`packages/cli/src/utils/project.ts`), and registry items ship as `<name>.html`
or `demo.html`, so it fails with "No composition found". This is not
theoretical: `scripts/lint-registry-items.mjs` exists precisely for this shape
and its header records two `gsap_non_transform_motion` errors that reached main
unlinted because of it.

Both pages now document `bun run lint:registry-items`, and the Catalog page
shows the install-into-a-scratch-project route for the full `check` gate rather
than claiming a bare `check` covers a registry item.

Verified by running the documented command, not just by reading the script.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants