style: apply /style-guide pass to models/sweeps#2722
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
📚 Mintlify Preview Links📝 Changed (14 total)📄 Pages (14)
🤖 Generated automatically when Mintlify deployment succeeds |
🔗 Link Checker Results✅ All links are valid! No broken links were detected. Checked against: https://wb-21fd5541-style-guide-models-sweeps-20260604-104540.mintlify.app |
Apply all inline review feedback from @mdlinville on PR #2727: - Apply suggested wording fixes (define-sweep-configuration examples intro, Bayes/Hyperband intro, initialize-sweeps warning, start-sweep-agents prerequisites and intro, pause-resume intro). - Restructure the CLI tab in add-w-and-b-to-your-code into a numbered procedure with indented code blocks; same for the multi-CPU/multi-GPU steps in parallelize-agents (replace bold "Terminal 1/2" labels with list items). - Fix terminology: "a W&B sweep" -> "a sweep" (W&B Sweeps is the product; a sweep is the artifact it manages). - Remove redundant link-text phrasing ("For more information about how to X, see [X]") flagged as a recurring pattern. - Convert relative links to absolute and drop trailing slashes from internal links (avoids Mintlify redirects). - Reword the local-controller intro; move SDK install into a Prerequisites section. - Drop the placeholder Note and the redundant "three nested parameters" count; reword the nested-config Warning. - Remove the shadow-reference flag bullet list in pause-resume; the per-command sections and the CLI reference cover it. - Strip trailing whitespace in define-sweep-configuration and add a blank line after a fenced block to fix diff rendering. - Fix a broken cross-reference anchor to add-w-and-b-to-your-code#python-script-or-notebook. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Address Copilot review findings on PR #2727: - troubleshoot-sweeps: fix Python guard `if _name_ == "_main_"` -> `if __name__ == "__main__"` (single underscores would fail if copied). - define-sweep-configuration: fix template top-level key `parameter:` -> `parameters:` (the singular form produces an invalid sweep config). - sweep-config-keys: fix `parameter` -> `parameters` key references, and correct "specify the distribution ... with the metric key" to point to the `parameters` key where distributions are actually defined. - local-controller: the final step ran `wandb sweep [SWEEP-ID]` (re-inits the sweep) -> `wandb agent [SWEEP-ID]` to start an agent; reword the preceding sentence to start agents rather than "start a sweep". - useful-resources: fix corrupted section header "selfm-anaged" -> "How-to guide". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply the same review patterns (originally flagged by @mdlinville on the duplicate PR) to the sweeps files that weren't part of the partial review: - Convert relative links (./page) to absolute /models/sweeps/... paths. - Remove trailing slashes from internal links (avoids Mintlify redirects); on sweep-config-keys, point in-page references at #parameters / #method. - Trim redundant link text ("For more information about how to X, see [X]" -> "For more information, see [X]"); repoint the self-referential "Sweep configuration structure" link to Define sweep configuration. - Fix "a W&B sweep" / "W&B sweep" (singular) -> "sweep" (W&B Sweeps is the product; a sweep is what it manages) in walkthrough, existing-project, troubleshoot-sweeps, and sweep-config-keys. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The models/sweeps style-guide pass was duplicated here; it belongs in its dedicated PR (#2722), which now carries the full sweeps changes plus all review fixes from @mdlinville and Copilot. Restore the sweeps files to their pre-PR state so this PR is scoped to the snippets/automations pass (and @mdlinville's localized-snippet path fixes) only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…2727) > [!NOTE] > A `models/sweeps` style pass was briefly bundled into this PR by mistake. It now lives in its dedicated PR **#2722**, which carries all of @mdlinville's and Copilot's review fixes. This PR no longer touches `models/sweeps`. ## Summary Three related changes to the **Automations** docs. The bulk is a structural reorganization of the snippet includes plus a real localization bug fix; a small `/style-guide` copy pass on five English snippets rides along. No technical content was rewritten. If you reviewed an earlier version of this PR and expected edits under `snippets/en/_includes/automations/`, note that those files were **relocated** (see change 1 below) — the edits are intact, just at a new path. ## What changed **1. Relocated the shared (English) includes — `snippets/en/_includes/automations/` → `snippets/_includes/automations/`** (8 files) Language-neutral includes now live at the shared snippets root. The English pages under `models/automations*` import from the new path. **2. Fixed the localized includes and their imports** (the main bug fix) - The `fr`/`ja`/`ko` includes were nested under a malformed path with a stray `en/` segment: `snippets/{fr,ja,ko}/en/_includes/automations/`. Moved them to `snippets/{fr,ja,ko}/_includes/automations/` (24 files). - The localized pages (`{fr,ja,ko}/models/automations*`) were importing the **English** snippet path (`/snippets/en/_includes/...`), so French/Japanese/Korean pages rendered English snippet text. Each locale's pages now import its own locale's snippets (`/snippets/fr/_includes/...`, etc.). **3. `/style-guide` copy pass on five English snippets** (Google Developer Style Guide + CoreWeave conventions; wording only) | File (now at `snippets/_includes/automations/`) | Edit | |---|---| | `actions-list.mdx` | "external systems ~~like~~ **such as** CI/CD pipelines…" | | `best-practices.mdx` | "~~Route different severities to different channels if needed.~~" → "**If you have multiple severities, route them to different channels.**" | | `mental-model.mdx` | "W&B Automations follow ~~a simple~~ **this** pattern" | | `tutorial-go-further.mdx` | added intro line: "For more information, see the following resources:" | | `where-to-find-automations.mdx` | "~~click~~ **select** the **Automations** tab" (×2) | ## File inventory (48 files) - **8** — English includes relocated to `snippets/_includes/automations/` (5 carry the style edits above; `tutorial-diagram-project`, `tutorial-diagram-registry`, and `tutorial-notebook` moved unchanged). - **24** — localized includes relocated to `snippets/{fr,ja,ko}/_includes/automations/` (content unchanged; path fix only). - **16** — consuming pages repointed to the new import paths: `models/automations.mdx` + `models/automations/{project-automation-tutorial,registry-automation-tutorial,tutorial}.mdx`, and the `fr`/`ja`/`ko` equivalents. ## Review checklist - [ ] English Automations pages: all `import … from "/snippets/_includes/automations/…"` paths resolve. - [ ] `fr`/`ja`/`ko` Automations pages now render **localized** snippet text, not English. - [ ] The five style edits don't change technical meaning (notes below). ## Style-edit review notes Carried over from the original style pass; still worth a glance: - **`actions-list.mdx`** — Confirm "Call a webhook URL with a JSON payload" matches the implementation (some W&B docs phrase this as a POST to a configured endpoint). Confirm the Slack-notification link target (run/artifact/workspace) is intentionally abstract for a reused include. Confirm no action types are missing (for example, job-triggering actions). - **`best-practices.mdx`** — Confirm the tightened severity-routing wording matches author intent. "alias patterns" is mentioned without a link to where aliases are defined; consider linking on first use. - **`mental-model.mdx`** — The closing sentence links to `automation-events#project`, `#registry`, and the bare page (three links to ~one destination); consider consolidating. Confirm bold-on-first-mention (**event**, **conditions**, **action**) is house style. The Mermaid `'rankSpacing': 200;` has a stray trailing semicolon inside the config object — verify the diagram renders. - **`tutorial-go-further.mdx`** — Two API bullets ("Manage automations with the API", "Automations API reference") are commented out pending the Python SDK `create_automation` regression (internal WB-34263); restore them once it's fixed. - **`where-to-find-automations.mdx`** — Confirm "Automations" is the current tab label in both the project and registry views, and that the tab is reachable from a sidebar in both contexts. --------- Co-authored-by: Matt Linville <mlinville@coreweave.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR applies a /style-guide pass across the models/sweeps documentation set, primarily improving wording, structure, headings, metadata (keywords), and internal link consistency without intending to change technical meaning.
Changes:
- Adds/updates frontmatter metadata (notably
keywords) and rewrites intros/section text for clarity and consistency. - Normalizes internal links and headings across the Sweeps docs pages.
- Refactors several procedures/examples for readability (commands, placeholders, and step formatting).
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| models/sweeps/add-w-and-b-to-your-code.mdx | Clarifies step-by-step integration guidance; adds keywords and link/wording cleanups. |
| models/sweeps/define-sweep-configuration.mdx | Expands explanations, updates template/examples, and normalizes links/placeholders. |
| models/sweeps/existing-project.mdx | Rewords the end-to-end tutorial steps and improves image alt text and linking. |
| models/sweeps/initialize-sweeps.mdx | Reframes initialization purpose and updates wording/link consistency; adds keywords. |
| models/sweeps/local-controller.mdx | Adds prerequisites section and rewrites local controller instructions for clarity. |
| models/sweeps/parallelize-agents.mdx | Rewrites parallelization guidance for CPU/GPU; standardizes placeholders and links. |
| models/sweeps/pause-resume-and-cancel-sweeps.mdx | Reorganizes lifecycle controls and expands sweep/run status explanation. |
| models/sweeps/signal-handling-sweep-runs.mdx | Refines signal/exit-code guidance and improves structure; adds keywords. |
| models/sweeps/start-sweep-agents.mdx | Rewrites agent start/count guidance, updates placeholders, and adds keywords. |
| models/sweeps/sweep-config-keys.mdx | Improves reference wording and link targets; adds keywords. |
| models/sweeps/troubleshoot-sweeps.mdx | Improves troubleshooting flow/formatting and adds keywords. |
| models/sweeps/useful-resources.mdx | Reorganizes resources into clearer sections and updates descriptions/keywords. |
| models/sweeps/visualize-sweep-results.mdx | Adds structure (sections) and clarifies default visualizations/customization. |
| models/sweeps/walkthrough.mdx | Reworks tutorial intro/section flow, adds keywords, and normalizes placeholders/links. |
Comments suppressed due to low confidence (2)
models/sweeps/sweep-config-keys.mdx:77
- The bullet “constant if you provide a set to value” is grammatically incorrect and unclear. It should indicate that
constantis used whenvalueis specified.
If you don't specify a [distribution](#distribution-options-for-random-and-bayesian-search), W&B sets the following distributions based on these conditions:
* `categorical` if you specify `values`
* `int_uniform` if you specify `max` and `min` as integers
* `uniform` if you specify `max` and `min` as floats
* `constant` if you provide a set to `value`
models/sweeps/define-sweep-configuration.mdx:299
- In the sweep configuration template,
eta: 0andmax_iter: 0look like real values but are invalid for Hyperband. Use placeholders to make it clear these must be set to meaningful positive values.
early_terminate:
type: hyperband
s: 0
eta: 0
max_iter: 0
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Resolve the correctness and clarity issues flagged in the Copilot review:
- walkthrough: align search-space prose with the x/y parameters the
example actually sweeps (was batch size/epoch/learning rate).
- define-sweep-configuration: fix epoch->epochs in the parameters
prose; swap the Hyperband min/max iteration tab titles to match
their min_iter/max_iter examples; use [INSERT] placeholders for the
early_terminate template values (were invalid 0s); define str2bool in
the run.py example so it runs as-is; use wandb.init(project=...) since
the first positional argument is entity, not project.
- local-controller: refer to the --controller flag (not 'controller');
fix the wandb controller argument to a sweep ID ([SWEEP-ID], optionally
entity/project/sweep_id) instead of the invalid user/entity/sweep path.
- start-sweep-agents: note the short sweep ID is also accepted, not only
the entity/project/sweep_ID path.
- troubleshoot-sweeps: fix subject-verb agreement ('sweeps create').
- sweep-config-keys: reword the constant-distribution bullet to parallel
the others ('constant if you specify value').
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Thanks for the review @copilot-pull-request-reviewer. I incorporated all 12 inline comments plus the 2 low-confidence comments in fbe8298 and replied on each thread. Summary: Inline comments
Low-confidence comments (also applied)
|
Note
Review feedback applied. @mdlinville's style review and Copilot's correctness review were originally posted on the duplicate PR #2727; this branch now incorporates all of it. Beyond the wording/suggestion edits and link/terminology/formatting cleanups, the following correctness items from the recommendations below are already fixed:
parameter:→parameters:in the config template; theif _name_ == "_main_"guard →__name__/__main__; the garbledselfm-anagedheading →How-to guide;local-controllerfinal stepwandb sweep→wandb agent; and the random-search "distribution … with the metric key" → theparameterskey.Summary
This PR applies the
/style-guideskill (Google Developer Style Guide + CoreWeave conventions) to documentation inmodels/sweeps. The run was fully automated; no technical content was intentionally changed.Files edited
models/sweeps/add-w-and-b-to-your-code.mdxmodels/sweeps/define-sweep-configuration.mdxmodels/sweeps/existing-project.mdxmodels/sweeps/initialize-sweeps.mdxmodels/sweeps/local-controller.mdxmodels/sweeps/parallelize-agents.mdxmodels/sweeps/pause-resume-and-cancel-sweeps.mdxmodels/sweeps/signal-handling-sweep-runs.mdxmodels/sweeps/start-sweep-agents.mdxmodels/sweeps/sweep-config-keys.mdxmodels/sweeps/troubleshoot-sweeps.mdxmodels/sweeps/useful-resources.mdxmodels/sweeps/visualize-sweep-results.mdxmodels/sweeps/walkthrough.mdxRecommendations for technical review
Prerequisites
wandbinstallation,wandb login/API key, required Python packages (e.g.,numpy,PyYAML,argparse,torch), and required account/RBAC access. Applies toadd-w-and-b-to-your-code.mdx,define-sweep-configuration.mdx,existing-project.mdx,local-controller.mdx,parallelize-agents.mdx,signal-handling-sweep-runs.mdx,troubleshoot-sweeps.mdx,walkthrough.mdx.start-sweep-agents.mdx: prerequisites are inline prose under "Before you continue" — consider promoting to a real## Prerequisitesheading.parallelize-agents.mdx: multi-GPU section assumes CUDA Toolkit, NVIDIA drivers, andnvidia-smi. Confirm whether version requirements should be called out.signal-handling-sweep-runs.mdx: confirmwandb agent --forward-signalsis the precise current flag name, and that the[Resume preemptible Sweeps runs](/models/runs/resuming#resume-preemptible-sweeps-runs)anchor exists.Verification steps
add-w-and-b-to-your-code.mdx(afterwandb sweep/wandb agent/wandb.agent(...)),existing-project.mdx(afterpython train.py, sweep creation, and agent launch),initialize-sweeps.mdx(sweep ID format/sample output),local-controller.mdx(afterwandb sweep --controller config.yamland the two-step alternative),pause-resume-and-cancel-sweeps.mdx(confirmingPausedstatus),start-sweep-agents.mdx(afterwandb agent [SWEEP-ID]and after the count-based stop),troubleshoot-sweeps.mdx(after thewandb agent [SWEEP-ID]step and theanaconda 400 errorremediation),visualize-sweep-results.mdx(result statement after customization), andwalkthrough.mdx(after init/start of the sweep).parallelize-agents.mdx: add guidance on confirming agents are running in parallel (sweep dashboard for concurrent runs,nvidia-smifor GPU usage).signal-handling-sweep-runs.mdx: add a way to confirm the child process received the signal (handler log line,ps/pgrep, run state in UI); verify thewandb sweep entity/project/sweep_ID --resumesyntax and the SLURM PID-file trap pattern.Technical accuracy
add-w-and-b-to-your-code.mdx: CLI tab's YAML referencesprogram: train.pybut the doc never tells the reader to save the script astrain.py; the loopnp.arange(1, epochs)excludes the final epoch — confirm intentional; CLI tab'smain()is called at module scope while the Python tab usesif __name__ == "__main__":— confirm the asymmetry; verify the rephrased comment aboutargs=Nonesemantics inmain(args=None)still reads accurately.define-sweep-configuration.mdx: line 282 hasparameter:(singular) where others useparameters:— likely a typo; lines 408–427 the Hyperband tab labels appear swapped vs. content (the "Maximum number of iterations" tab usesmin_iter: 3and vice versa); line 287 naming sequence skips betweenhyperparameter_name1andhyperparameter_name2; line 234 — verify nested-parameters-overwrite-wandb.init(config=...)is still current;run.pyreferencesstr2boolwithout importing or defining it.existing-project.mdx: verifyhttps://app.wandb.ai/carey/pytorch-cnn-fashionis still live (personal-namespace, prone to rot); confirm GitHub URLwandb/examples/tree/master/...— default branch may now bemain; confirm "up to 20 agents in parallel" is still accurate; verify./visualize-sweep-resultsrelative link resolves; confirm the rewording from "guesses" to "suggests" for the auto-generated sweep config; confirm Bayesian seeding behavior in the final Note.initialize-sweeps.mdx(line 9): page mentions cloud "(standard) or locally" controller modes without explaining how to choose/configure the local controller — verify whether a link is needed; verify dropping "actually" in "Agents pick up these instructions and perform the runs" preserved meaning; verify the "YAML file or nested Python dictionary" list is exhaustive (e.g., JSON support); verify the Warning about matching project names is still accurate; verify the exact default project name string ("Uncategorized" — capitalization, code-font); verify that "W&B puts the run in" reflects server-side rather than client-side behavior.local-controller.mdx: prose says "Specify the controller flag (controller)…" but the command uses--controller— reconcile; the agent-start step prose says "start one or more sweep agents" but the code block showswandb sweep sweep_ID(typicallywandb agent <sweep_id>); placeholder casing is inconsistent ({sweep_id}vssweep_ID); confirm path ordering{user}/{entity}/{sweep_id}— W&B paths are usually{entity}/{project}/{sweep_id}.parallelize-agents.mdx: confirmwandb.agent(sweep_id=..., function=...)is the current recommended Jupyter signature; confirm whether CLI usage requires theentity/project/sweep_idprefix; noteCUDA_VISIBLE_DEVICESalso accepts comma-separated lists and GPU UUIDs; clarify NVIDIA-only scope vs AMD ROCm/Apple MPS.pause-resume-and-cancel-sweeps.mdx: confirm the relationship between theStoppedsweep status and--stopvsFinished; verify whether stopping a run differs from natural completion from the agent's perspective; verify "W&B doesn't terminate active sweeps or agents when you delete a project" and whether it belongs on the "Delete a project" page; confirm--canceltruly terminates with no SIGTERM grace period.signal-handling-sweep-runs.mdx: confirm the "about 5 minutes" stale-run timeout is current and whether it's configurable; line 82 — confirm doubleCtrl+CproducesSIGTERM(older docs treated singleCtrl+CasSIGINT); confirm whetherSIGINTshould be in the recommended handler example; line 80 — confirm Pythonwandb.agent()thread-vs-subprocess distinction; line 99 — confirm the multi-agent race-to-claim limitation; line 105 — confirm whetherwandb sweep --canceldeliversSIGKILLimmediately orSIGTERMfirst; line 93 — verify the PID-file launch-script pattern is canonical; verify the linked GitHub issue #3667 status.start-sweep-agents.mdx: the multiprocessing example passescount="[COUNT]"as a string whilecountis documented as an integer — confirm; the CLI count snippet uses shell env vars ($NUM,$SWEEPID) and was retagged frompythontobash— confirm author intent.sweep-config-keys.mdx: verify thegoaldefault isminimize; confirm theeta: 3andstrict: falsedefaults; confirm units formin_iter(logged iterations) and add a period to that row.troubleshoot-sweeps.mdx: line 54 —if _name_ == "_main_":looks like a single-underscore typo (should be__name__/__main__); confirm error-string headings (CUDA out of memory,CommError, Run does not exist,ERROR Error uploading,anaconda 400 error) match the exact console output.useful-resources.mdx: verifywandb/sweepsis still the canonical repo for contributors (Sweeps may have been folded intowandb/wandb); spot-check W&B Report and arXiv links.visualize-sweep-results.mdx: confirm sweep-list column labels (State, Created, Creator, Run count, Compute time, Est. Runs); confirm the sidebar broom icon; verify the "kill" → "cancel" rename matches the live UI label; verify whether default panels appear immediately or only after the first run completes.walkthrough.mdx: the search-space prose says values are chosen for "batch size, epoch, and the learning rate" but the code defines parametersxandy— rewrite prose or update code; clarify the "standard" vs "local" Sweep Controller phrasing; confirm canonical capitalization ofSweep Controller(s); verify "W&B Run" vs "run" capitalization convention.Missing content
add-w-and-b-to-your-code.mdx: confirm the Python tab step ordering ("import the W&B Python SDK" appears as step 3); explain how readers find their entity name; link to or describe the W&B App dashboard where sweep results appear.define-sweep-configuration.mdx: intro mentions BOHB but the page doesn't link to or summarize available search methods; "sweep agent", "W&B run configuration", and${env}/${interpreter}/${program}macros are used without on-page definition or link at first use; lines 222–231 contain commented-out procedural guidance — decide whether to restore.existing-project.mdx: define or link on first use for "sweep", "agent", "Bayesian sweep", "Gaussian Process"; link to sweep configuration reference from "auto-generated configuration"; cover how to stop/clean up after the tutorial; validate screenshots (sweep1.png–sweep4.png,tutorial_sweep_runs.png) against the current UI.initialize-sweeps.mdx: both tabs end "ready to launch one or more agents" without linking to the agents page; Python tab referencessweepparameter without showing awandb.init()example that ties Run and Sweep to the same project; resolve inconsistency of italicizing_sweep controller_and_Agents_while "agents" appears earlier unitalicized.local-controller.mdx: add a one-line closing/outcome statement; add a note on when to choose CLI vs. Python SDK flow; add troubleshooting for unexpected controller exits mid-sweep.parallelize-agents.mdx: add a multi-GPU example for the Jupyter tab; provide guidance for hosts with more than 2 GPUs; discuss CPU/RAM/VRAM contention and behavior when agents exceed available GPUs; explain how to stop/clean up parallel agents and the interaction withcount; cover multi-node parallelization.pause-resume-and-cancel-sweeps.mdx: the "Key differences" list enumerates sweep and run statuses without defining or linking them; explain where to retrieve the sweep ID after initialization (CLI output, UI location).signal-handling-sweep-runs.mdx: add an example SLURM launch script for the PID-file pattern; reference table should cover the "called right afterinit()AND inside the handler" pattern; clarify the relationship betweenwandb.finish(exit_code=...)andsys.exit(128 + signum); link to a concrete locks/coordination pattern; call out Windows/macOS behavior if--forward-signalsis POSIX-only; link or screenshot for the Cancel UI control; cover interaction withwandb.init(resume=...)so requeued runs continue under the same run ID.start-sweep-agents.mdx: explain whatwandb.teardown()does and why it's required before starting a new run; add a brief "why" for the "Random and Bayesian searches run indefinitely" warning; consider rendering the "Where:" list as a description list.sweep-config-keys.mdx: line 172 commented-out MDX block in thecommandsection — restore a default-command example or remove; add example YAML snippets forearly_terminateandcommand; resolve the commented stub at lines 29–37 (per-key sections forprogram,entity,project,description,name); resolve the line-100 commented "this paper. [LINK]" placeholder; clarify the terse${envvar}description.troubleshoot-sweeps.mdx: confirm whether prerequisites belong on this troubleshooting page; consider linking the intro to the main Sweeps overview.useful-resources.mdx: the## selfm-anagedheading (line 32) is garbled and content (XGBoost how-to) doesn't match — needs IA decision; line 23 orphan author attribution (two adjacent links with no connector) needs a consistent pattern; line 34 vague intro "solve real-world problems with W&B" should be made concrete; line 41 signposting sentence may be redundant with the paragraph that follows.visualize-sweep-results.mdx: customization paragraph mentions an Edit panel modal without describing its contents (axis fields, smoothing, range, grouping); confirm Title Case link text ("Scatter Plots", "Parameter Importance") matches destination page titles.walkthrough.mdx: angle-bracket placeholders (<sweep_id>,<function>,<count>) in the multiprocessing example don't match CoreWeave convention ([SWEEP-ID],[FUNCTION],[COUNT]with a preceding "Replace …" sentence); confirmCtrl+Cstop behavior across platforms (especially Windows/Jupyter); add an explicit success/outcome statement at the end of the tutorial.Style/citation edge cases
useful-resources.mdx: line 13 Hyperband citation places punctuation inside the link brackets and quotes (academic convention) — confirm against the docs site's preferred convention; Title Case link text in the Sweeps experiments list reproduces actual W&B Report titles — if the org prefers sentence case, the source titles themselves would need to change.How to review