Repository navigation
style: apply /style-guide pass to models/track - #2728
johndmulhausen wants to merge 18 commits into
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
📚 Mintlify Preview Links📝 Changed (13 total)📄 Pages (13)
🤖 Generated automatically when Mintlify deployment succeeds |
🔗 Link Checker Results✅ All links are valid! No broken links were detected. Preview: https://wb-21fd5541-style-guide-snippets-includes-20260604-122025.mintlify.site |
ngrayluna
left a comment
There was a problem hiding this comment.
Please split this into two PRs: Sweeps and Snippets.
Also, some of the comments I've applied to integration PR apply here. Apply those changes and re-run?
2039d60 to
4f19936
Compare
Apply recurring style rules from ngrayluna's review of the integrations PR (#2673) to the models/track set: - "preceding" -> "previous" - passive -> active voice; W&B (not `wandb`) as the actor performing actions - third person -> second person (address the reader as "you") - gloss `wandb` as the W&B Python SDK on first mention where context was missing 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 an automated style-guide normalization pass across the models/track documentation set, primarily updating wording, headings, and placeholders, and adding keywords metadata to improve consistency and discoverability.
Changes:
- Added
keywordsfront matter and updated page introductions for clearer scope and navigation. - Standardized voice, terminology, and placeholder formats across examples and procedures.
- Restructured several sections (headings/lists) for more consistent procedural flow.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| models/track/config.mdx | Adds keywords and refines configuration guidance and section structure. |
| models/track/create-an-experiment.mdx | Clarifies the end-to-end experiment workflow; updates headings and phrasing. |
| models/track/environment-variables.mdx | Adds keywords and rewrites environment-variable descriptions for clarity/consistency. |
| models/track/jupyter.mdx | Adds keywords and refines notebook workflows and magic/inline rendering instructions. |
| models/track/limits.mdx | Adds keywords; reorganizes performance/rate-limit guidance and definitions. |
| models/track/log.mdx | Adds keywords; refreshes logging overview language and common workflow descriptions. |
| models/track/log/customize-logging-axes.mdx | Adds keywords; updates placeholders and explanations around custom step metrics. |
| models/track/log/distributed-training.mdx | Adds keywords; refines distributed logging approaches and troubleshooting wording. |
| models/track/log/log-models.mdx | Adds keywords; rewrites model logging/retrieval narrative and placeholder usage. |
| models/track/log/log-summary.mdx | Adds keywords; updates summary-metrics guidance and the Public API retrieval example. |
| models/track/log/log-tables.mdx | Adds keywords; restructures table workflow sections and updates examples/placeholders. |
| models/track/log/media.mdx | Adds keywords; updates prerequisites and improves explanations of media logging. |
| models/track/log/plots.mdx | Adds keywords; reworks headings and adds more contextual framing around plot types. |
| models/track/log/working-with-csv.mdx | Adds keywords; expands intro and refines CSV→Table/Artifact instructions and wording. |
| models/track/project-page.mdx | Adds keywords; refines project tab descriptions and UI instructions; updates SDK snippet. |
| models/track/public-api-guide.mdx | Adds keywords; clarifies import/export narrative and reorganizes some sections. |
| models/track/reproduce_experiments.mdx | Adds keywords; rewrites steps and standardizes placeholder formatting. |
| models/track/workspaces.mdx | Adds keywords and expands intro; refines saved views/templates and API examples language. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Thanks @ngrayluna! Status on both points:
Ready for another look when you have a sec. |
- log/log-summary.mdx: fix Public API example so it runs (add
`api = wandb.Api()`, `import pandas as pd`, `{project_name}` -> `{project}`)
- jupyter.mdx: correct `ipython.display(...)` -> `IPython.display(...)`
- public-api-guide.mdx: remove broken `#overview-tab` anchor link; refer to
the Overview tab without a URL
- project-page.mdx: format the collapsed Python SDK snippet across multiple lines
- log/media.mdx: replace `{DESIRED_MAX}` with a concrete integer
- workspaces.mdx: fix title grammar ("experiments" -> "experiment")
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the only conflict (models/track/log/plots.mdx) by keeping the style-pass rewrite, which already subsumes #2751's tweaks: it drops "quick and easy", removes "Just", and uses W&B as the actor. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Back out the `keywords:` frontmatter that the style-guide pass added to all 18 models/track pages, per the decision to drop auto-generated keywords. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the config.mdx conflict from #2754: - Keep the PR's heading "Set the configuration after your run has finished" (preserves the #set-the-configuration-after-your-run-has-finished anchor that support/models/articles/can-you-group-runs-by-tags.mdx links to) plus the PR's rewritten paragraph. - Retain #2754's new "View config values in the W&B App" section (auto-merged). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the reproduce_experiments.mdx conflict by taking main's version. #2314 restructured the page and documented the new "Reproduce this run" button feature; that content supersedes the PR's style pass on the old structure. Taking the PR's version would drop the new feature (a content regression), so the PR's style edits to this one file are dropped instead. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Address mdlinville's review on models/track/log/media.mdx: prefer `:` over `-` as the separator. Applied to all items in the `boxes` attribute list (corners, label, color, score) for consistency. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply ~38 of ngrayluna's review comments across 6 files: verbatim suggestions plus wording fixes — bare method names to `wandb.Run.log_model()` / `wandb.Run.use_model()`, "The SDK" -> "W&B", "Stops responding" instead of "Becoming unresponsive", condensed table guidance, dropped the stale `#amazon-s3` anchor, and more. Square-bracket placeholders kept per the repo standard. A few API-accuracy items (from_point_cloud, Object3D.from_file) left for SDK confirmation. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the workspaces.mdx conflict: keep #2844's `AriaChatBubbles` component import (it's used later in the file) plus the PR's restyled intro sentence. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the public-api-guide.mdx conflict by keeping main's rewritten "Get paginated data from history" section: it adds the scan_history vs history explanation and the keys param, and corrects the default page_size (500 -> 1000). The PR's style edit to that one paragraph is superseded; the PR's other edits in this file are preserved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the public-api-guide.mdx conflict by following main #2929 ("remove MLflow import guide from public API page"): drop the entire "Import data from MLFlow" section the PR had restyled, since main deliberately removed it and retitled the page "Export and update data". The PR's style edits to the remaining export/update sections are kept. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve public-api-guide.mdx (3 hunks) and workspaces.mdx (1 hunk) by keeping the PR's styled versions: main's sides were older phrasing with no new content (and the "Find the run path" hunk kept the broken #overview-tab self-link the PR already removed). Non-conflicting main edits preserved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve 3-file conflict: - create-an-experiment.mdx: take main's version (main rewrote the page — new "Job types" bullet, corrected link texts to retitled pages, config link). The PR's style pass on the old version is superseded. - config.mdx: keep main's new `allow_val_change` paragraph (took main's side for that hunk); PR style preserved elsewhere. - project-page.mdx: keep the PR's styled version (retains the "stop an active run" typo fix and `0.95`); main only had base text here. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve media.mdx (demo-report sentence) and project-page.mdx (runs sidebar list + trailing blank lines) by keeping the PR's styled versions; main's sides were alternate base phrasing / extra blank lines with no new content. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve config.mdx, log/log-summary.mdx, and public-api-guide.mdx by taking main's versions: main rewrote all three into new tabbed structures (Existing run / Local filesystem / During a run tabs, new examples, reorganized sections). The PR's style pass on the old structure is superseded, so defer to main to preserve its new content. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Readability impactWord-weighted Flesch-Kincaid grade change across 13 changed pages: -0.2 (easier). Lower Flesch-Kincaid grade and higher reading ease both mean easier to read. This check is informational and never blocks a PR. Human readability
AI agent comprehensionRated 0-3 (higher is easier for an agent to parse and act on).
Curated-docs baseline median FK grade by type: conceptual 10.5, procedural 8.8, reference 9.4. |
Resolve distributed-training.mdx: take main's rewritten "track multiple processes to a single run" section (new WANDB_RUN_ID orchestration approach + worker-node example). The PR's style edits to the rest of the file are preserved via auto-merge. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Closing this PR — we're going to re-run the /style-guide pass on |
…2986) ## Summary The `style-guide` skill now reads `AGENTS.md` as a Pass 0 pre-flight for the product and platform facts it can't infer — product and package names, what a directory's content actually is, UI surface names, and which paths hold generated content. Across 27 style PRs, reviewers enforced these facts about ~400 times in line comments, but none of them were written down anywhere, so every style pass guessed, got corrected, and the next pass guessed again. This records the ones that are settled and substantiated. **Prose and style rules were deliberately not added here.** Voice, grammar, punctuation, list and heading form, link form, placeholder form, section naming, and word choice are universal — they must read the same in every docs repo, and they live in the skill. A per-repo prose override would make successive runs oscillate. The [Deliberately not added](#deliberately-not-added-universal-prose-rules) section below lists the candidates rejected on that basis, so you can see the boundary was applied on purpose. This PR also respects the delegation-shell architecture from #2735: no inline style rules come back. ## What's recorded All seven additions go into the existing **W&B-specific conventions not in the skill** list. | Fact | Evidence | |---|---| | **W&B Python SDK** — `wandb` is the W&B Python SDK; full form "the W&B Python SDK (`wandb`)", short form "the `wandb` library" | #2673 (@ngrayluna): *"Would prefer if, on the first mention, call out that `wandb` is the W&B Python SDK."* Applied. | | **Weave UI labels** — 17 names keep UI casing when they label a tab, view, page, table, or panel; lowercase as ordinary nouns | #2739 theme A (@dbrian57, @anastasiaguspan independently, applied verbatim) established that these are capitalized as UI labels. Scoped to label position by corpus census — see [Verification](#verification). | | **Project navigation** — the **project sidebar** (**Weave project sidebar** in Weave docs), not "left sidebar" / "sidebar menu" / "left navigation" | #2739 theme J (@anastasiaguspan: *"In the Weave project sidebar, select Threads"*); #2668 — four suggestions replacing "left sidebar" with "project sidebar", all committed by the reviewer. | | **Sweeps** — W&B Sweeps is the product, an individual one is "a sweep" | #2727 (@mdlinville, `models/sweeps/initialize-sweeps.mdx`): *"I don't think 'a W&B sweep' is a thing. W&B Sweeps is the product and a sweep is what it manages."* Author applied it across all reviewed files. | | **Generated content** — pointer to README.md's table, plus `snippets/_includes/code-examples/`, `snippets/CodeSnippet.jsx`, and `takeru`-marked tables; `weave/cookbooks/` notebook sources | Pass 0 asks `AGENTS.md` which directories hold generated content. It recorded none, and `AGENTS.md` doesn't reference README.md — so a pre-flight that reads "AGENTS.md plus any convention docs it references" never saw that table. | ### Note on a sibling file I only edited `AGENTS.md`, per scope. Two things belong in files I didn't touch: - **README.md's "What files do I edit?" table** lists `/ref/python/` and `/weave/api-reference/`, neither of which exists in the tree — that row set looks stale. I added a cross-reference to the table rather than copying it, so the two files can't drift apart, but the table itself needs an owner's pass. - **`.github/CODEOWNERS`** is a single catch-all line (`* @wandb/docs-team`). That's relevant to the first open question below. ## Deliberately not added (universal prose rules) Each of these was enforced by a wandb reviewer, and each reads identically in any docs repo with different nouns — so it belongs in the skill, not here. Several are already there verbatim. | Rejected candidate | Where it lives | |---|---| | W&B is the actor, not `wandb` (product performs actions, package doesn't) | `3-language-pass.md` — which already uses `wandb` as its own example — and `4-terminology-pass.md` | | Keep product-noun casing in headings, frontmatter `description`, and alt text; leave code identifiers alone | `4-terminology-pass.md`; `7-polish-pass.md` | | Don't normalize a convention the corpus contradicts itself on | `SKILL.md` "When to stop and ask" | | Don't introduce a callout component the docset doesn't already use | `SKILL.md`, `1-context-pass.md`, `2-structure-pass.md`, `8-audit-pass.md` (four places) | | Don't add `keywords` as a side effect of another change | `0-guardrails.md`: *"Never add or remove frontmatter fields."* | | Stop and ask before restyling security, compliance, data-handling, or legal-sensitive wording | `SKILL.md` "When to stop and ask" | | Don't hand-edit generated files; fix them upstream | `0-guardrails.md` "Hard exclusion zones" | | "Jupyter Notebooks" on first mention, short form after | `3-language-pass.md` (first-use expansion). Also unsubstantiated: corpus prefers lowercase "Jupyter notebook" 35 to 18. | | "previous", not "preceding" | `4-terminology-pass.md` word list. Cited as a team decision by two reviewers (#2673, #2684) — still a universal word-choice rule. | | No semicolons in prose | `6-formatting-pass.md`. Raised on #2724. | | "might" for possibility, "may" for permission | `4-terminology-pass.md`. #2739 theme M. | | Avoid "via" and other Latinisms for an ESL audience | `4-terminology-pass.md`. Raised on #2673. | | Bold `**Term**:` lead-ins on definition lists | `6-formatting-pass.md`. 10 instances in #2739 theme D. | | Absolute internal links, no trailing slash | `7-polish-pass.md`. #2687: *"I wonder if the docs skill can be augmented to fix this"* — exactly right, and that's where it went. | | Link text names the destination; one link per destination per page | `7-polish-pass.md`. #2739 theme I, #2727 P1/P2. | | Avoid gerund-subject preambles | `1-context-pass.md`, `3-language-pass.md`. Named twice on #2679. | | Recommendation voice | `SKILL.md`: *"One voice for recommendations: 'we recommend.'"* See open questions. | | Placeholder token form | `6-formatting-pass.md`. See open questions — genuinely contested here. | | Keyword *selection* guidance | Owned by the separate `keywords` skill. | ## Open questions for the team Nothing below is recorded in `AGENTS.md`. A wrong rule in that file is worse than a missing one, since every agent session reads it. **1. What is the web app called?** Highest-value question here. - *"W&B"*: #2737 (open, 85 files) proposes retiring "W&B App", opened as follow-up to #2673 where @ngrayluna wrote *"Did Matt say something about no longer refer to the W&B App as 'W&B App'? I think it has a formal name now."* - *"W&B App"*: @mdlinville on #2723 — *"I believe we used to just say 'W&B App' without 'UI'. Did we change our minds?"* — and the skill's "W&B App UI" was reverted on that basis. Separately @mdlinville noted "W&B UI" was in use to avoid confusion with the iOS app. - Heads-up: **#2737's premise is inaccurate.** It cites `AGENTS.md` as saying the platform is "W&B"; the file says no such thing, before or after this PR. Its only mentions are incidental lowercase "the W&B app". - Corpus today: "W&B App" 266, "App UI" 72, "W&B App UI" 48, "the W&B app" 21. Meanwhile #2739 unified 12 `<Tab title>` labels to "App UI" and that merged. - **Recommendation:** rule before #2737 or any further style pass touches these strings, then record the winner here. **2. `keywords:` — keep or remove?** Nothing about `keywords` is recorded in this PR. - Remove: @ngrayluna, #2673 (*"The ones purposed are random"*, 52 pages), then backed out of #2722 and #2723 with commit messages about *"restoring the description/title-only frontmatter"*. - Keep: @mdlinville 👍'd a `keywords` hunk on #2684; merged #2680 (83 platform pages) and #2774 add them on purpose; #2739 added them to 103 of 141 files with zero objections. - **Note:** an earlier draft recorded "don't add `keywords` as a side effect" as agreed by both camps. It isn't — #2684's 👍 was on an *add*, and #2739's 103-file add merged unopposed. That narrow rule is in any case covered universally by the skill's guardrail against adding frontmatter fields, so nothing is lost by leaving the question open here. - **Recommendation:** one ruling, then either delete the field repo-wide or give it an owner. **3. Recommendation voice: "we recommend" vs "W&B recommends"?** - The skill sets this universally to "we recommend", and #2739 shows two independent Weave reviewers reverting the skill's "W&B recommends" back (@anastasiaguspan on `view-agent-signals.mdx`, @dbrian57 on `evaluation_logger.mdx`). - But @ngrayluna raised the opposite preference on #2721 (open), and this corpus runs the other way: "W&B recommends" 72 vs "we recommend" 16. - **Recommendation:** confirm or change the skill's cross-repo setting. Please don't ask for a local `AGENTS.md` override — that's what makes successive runs oscillate. **4. "This page shows you how to…"** - Against: @ngrayluna on #2673 (twice) and #2668 — *"I was taught to avoid using 'This page shows you...'"*. - For: @mdlinville authored it in a #2722 suggestion and reused it in #2724; defended in #2728. - This is a prose question, so whichever way it lands, the decision belongs in the skill's context pass, not in `AGENTS.md`. **5. Casing of Weave domain objects in prose** — Call, Op, Scorer, Model, Dataset, Evaluation, Thread, Signal, Agent, Trace. - I recorded the **UI-label** rule only. The candidate list asked for these as proper nouns everywhere in prose, and the corpus won't carry it. - Capitalize: #2739 theme A — 12 items, @dbrian57 and @anastasiaguspan independently, applied verbatim, including in frontmatter `description` (`view-call.mdx:3`) and alt text (`view-call.mdx:138`). - Lowercase, per the docset: in `weave/**/*.mdx` prose with code, headings, links, and bold stripped — traces 33 cap / 432 low, calls 69/380, spans 7/127, prompts 4/113, models 29/195, datasets 4/57, evaluations 19/99, scorers 27/73, agents 45/114. Recording the candidate as written would have licensed a ~1,700-instance recapitalization on the strength of 12 comments. - The docset already models the distinction, in `weave/guides/tracking/view-agent-activity.mdx:18`: *"a row of tabs across the top: **Dashboard**, **Agents**, **Conversations**, **Spans**, and **Signals**. … the other tabs let you drill into individual agents, conversations, spans, and signals."* Capitalized as labels, lowercase as nouns, one sentence apart. - **Recommendation:** if you do want the object nouns capitalized, say so explicitly and scope the list — it's a large sweep and reviewers weren't self-consistent (@dbrian57 wrote "Weave Ops" then "Weave ops" one clause later in the same suggestion block). - I excluded **Evaluations** and **Ops** from the recorded label list: "Compare evaluations view" is a distinct lowercase surface label (10 lowercase vs 4 capitalized in label position), and "Ops" has a single bold attestation. **6. Placeholder syntax: `<your_api_key>` or `[YOUR-API-KEY]`?** - Angle brackets: @ngrayluna, #2673 — *"For consistency, remove brackets. (Elsewhere in the docs we use open and close `<` and `>`)"* — the skill's square brackets were reverted across every login block. Their objection on #2724 is substantive, not aesthetic: *"Don't use square brackets since it looks like we expect a list as an input."* - Square brackets: @mdlinville, #2736 — *"I believe we are using square brackets for placeholders"* — reverting `<password>` to `[PASSWORD]` hours after the author cited an angle-bracket convention in the same PR. - Contested even within one reviewer: #2739 has @dbrian57 asking for `[TEAM_NAME]/[PROJECT_NAME]` on one page and `[YOUR-TEAM]/[YOUR-PROJECT]` on another, while @anastasiaguspan wants `[YOUR-TEAM]` uniformly. All three forms are in main. - Placeholder form is a universal-domain rule, so the ruling belongs in the skill. Nothing recorded locally. **7. May `weave/cookbooks/*.mdx` be hand-edited, and what do those pages call themselves?** - README.md lists `/weave/cookbooks/` as generated from `wandb/weave` (*"Edit the code in the source repo, not in `wandb/docs`"*), but the `.ipynb` sources are tracked **in this repo** at `weave/cookbooks/source/`, the Colab links point at `wandb/docs`, and no script in `scripts/` or workflow in `.github/workflows/` regenerates the `.mdx`. Practice contradicts the table: #2739 hand-edited 19 cookbook pages and @dbrian57 committed suggestions straight into them. - The candidate asked to record that these pages call themselves "notebooks" and never "cookbook", "guide", "tutorial", or "demo" — 13 corrections by @dbrian57, the highest-frequency correction in #2739. **I did not record it**, because the merged corpus is split: self-references across those 19 pages run *tutorial* 21, *notebook* 20, *guide* 11, *cookbook* 5, *demo* 1. `Intro_to_Weave_Hello_Trace.mdx:13` has both, reviewer-approved, in adjacent sentences: *"This notebook shows you how to capture your first trace… This tutorial targets developers who are new to Weave."* - **Recommendation:** settle the generated question first. If the directory really is generated, the naming fix belongs upstream and style passes should skip it entirely; if not, fix README.md and then the "notebook" rule can be recorded here. "Cookbook" and "demo" look safe to retire either way. **8. Which pages are actually Eng/Legal-vetted?** The candidate asked for a path list of vetted areas. **I did not record one**, because I couldn't substantiate it and a wrong no-touch zone over ~20 pages is exactly the kind of error that compounds. - The only evidence is one hedged comment from @ngrayluna on #2724 (still open), on `models/runs/delete-runs.mdx`: *"Future: don't touch docs that revolve around data, security, and/or other sensitive info since in all likelihood they … went under careful scrutiny from the Eng Team or Legal."* No path list, and the one page it names is one the reviewer flagged as *un*validated (*"Someone would need to verify this/approve the wording"*) and deleted. - Any path list I could produce would come from a filename grep, not from a reviewer. `platform/hosting/iam/sso.mdx` — the largest candidate — is mostly third-party Azure and Okta click-through steps, not vetted compliance prose. - The instruction to get *"a reviewer from the owning team"* also points at a mechanism that doesn't exist: `.github/CODEOWNERS` is one catch-all line. - The general principle (stop and ask before restyling legally-sensitive wording) is already universal in the skill, so nothing is unprotected today. - **Recommendation:** if specific areas are genuinely vetted, name them and name their reviewers — ideally in CODEOWNERS, where it's enforceable, and I'll mirror the list here. **9. Six live `<Important>` blocks probably aren't rendering.** Same bug class as #2886. `<Important>` has no local definition in `snippets/*.jsx` and isn't registered in `docs.json`, so these bodies may be reaching nobody: - `platform/hosting/self-managed/operator.mdx:1833` - `platform/hosting/iam/access-management/restricted-projects.mdx:69` - `weave/guides/evaluation/scorers.mdx:403` - `weave/guides/tracking/create-call.mdx:175` - `weave/guides/tracking/update-call.mdx:131` - `snippets/_includes/self-managed-mysql-eol-upgrade.mdx:1` (plus its `ja`/`ko`/`fr` copies) Worth a screenshot check the way #2886 did. Not fixed here — this PR only touches `AGENTS.md`, and callout guidance has been removed from it at the maintainer's request. ## Verification Every recorded claim was checked against the tree at `dfba8d0`. Counts exclude localized content (`ja/`, `ko/`, `fr/`, and `snippets/{ja,ko,fr}/`); 1,533 English `.mdx` pages. - **Weave UI labels.** Counted each name in three positions across `weave/**/*.mdx`: as a bold UI label, in surface-label position (name followed by tab/view/page/table/panel/column/button/section), and in generic prose with frontmatter, headings, fenced and inline code, links, and bold spans stripped. **Bold-label usage is capitalized 100% of the time — lowercase count is 0 for all 19 names tested.** That's the settled fact, and it's what the bullet records. Generic prose runs lowercase for 17 of 19, which is why the bullet explicitly says not to recapitalize there. Playground (50 cap / 3 low) is the one name capitalized in prose too; it's in the list either way. - **Project navigation.** "project sidebar" 100 uses across 47 files vs. 41 for all competing forms ("left sidebar" 18, "left navigation"/"left nav" 12, "sidebar menu" 8, "navigation sidebar" 2, "left-hand sidebar" 1) — a clear majority, not a split. Per directory: models 67/6, weave 24/13, inference 4/0, platform 3/16. I then read all 16 platform hits individually, which is where the earlier draft went wrong: **6 of them are third-party consoles**, not W&B team/org chrome — `platform/hosting/iam/sso.mdx:144,158,176,190,194` are Microsoft Entra ID steps and `platform/hosting/monitoring-usage/slack-alerts.mdx:33` is the Slack app config UI. A directory-scoped carve-out would have renamed those, and would have missed W&B non-project surfaces outside `platform/` (`models/runs/tags.mdx:93` "left sidebar of the Run page", `models/track/project-page.mdx:378` org nav). So the exclusions are scoped by *what the surface is*, not by path. `release-notes/` is excluded as dated historical content (4 competing hits). - **W&B Python SDK.** "W&B Python SDK" 110 uses; the full form "the W&B Python SDK (`wandb`)" 11; "the `wandb` library" 47; "`wandb` SDK" 4. The short form in the bullet follows the corpus (47), not the skill's guess. - **Sweeps.** "a W&B sweep" 4 uses, all in `support/`, **0 in the main docset**, vs. "a sweep" 204 and "W&B Sweeps" 47 — roughly 50:1. The comment was pinned to #2727 via the review-comments API. The anti-generalization clause is also counted: "a W&B run" 67, "a W&B artifact" 9, "a W&B report" 7 are live usage, so the rule is scoped to sweeps rather than swept across all three. - **Generated content.** `weave/cookbooks/`: all 19 `.mdx` pages have a matching `.ipynb` under `weave/cookbooks/source/` (29 tracked files there) and all 19 open with an interactive-notebook `<Note>` linking Colab and GitHub. `takeru` markers confirmed at `inference/models.mdx:15,48,56`, `inference/lora.mdx:116`, `inference/lifecycle.mdx:36,49`, `inference/response-settings/reasoning.mdx:21`, `serverless-training/available-models.mdx:11`. `snippets/code-examples/README.md` documents the `wandb/docs-code-eval` sync and calls `snippets/CodeSnippet.jsx` auto-generated; `scripts/sync_code_examples.sh` and the `sync-code-examples` workflow back it up. README.md's anchor `#what-files-do-i-edit` verified. - **Claims I dropped for lack of substantiation:** the Eng/Legal path list (open question 8), the cookbooks self-naming rule (open question 7), the `keywords` no-add process claim (open question 2), and prose-wide Weave capitalization (open question 5). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Anastasia Guspan <happyguspan@gmail.com> Co-authored-by: Anastasia Guspan <aguspan@wandb.com> Co-authored-by: Matt Linville <mlinville@coreweave.com>
Summary
This PR applies the
/style-guideskill (Google Developer Style Guide + CoreWeave conventions) to themodels/trackdocumentation set, normalizing voice, terminology, placeholders, and procedural patterns across 18 files. The run was fully automated; edits are style-only and require human technical review before merge.Files edited
models/track/config.mdxmodels/track/create-an-experiment.mdxmodels/track/environment-variables.mdxmodels/track/jupyter.mdxmodels/track/limits.mdxmodels/track/log.mdxmodels/track/log/customize-logging-axes.mdxmodels/track/log/distributed-training.mdxmodels/track/log/log-models.mdxmodels/track/log/log-summary.mdxmodels/track/log/log-tables.mdxmodels/track/log/media.mdxmodels/track/log/plots.mdxmodels/track/log/working-with-csv.mdxmodels/track/project-page.mdxmodels/track/public-api-guide.mdxmodels/track/reproduce_experiments.mdxmodels/track/workspaces.mdxRecommendations for technical review
Prerequisites
wandb, authenticated session, active project/entity, Python/Jupyter environment, required third-party packages) onconfig.mdx,create-an-experiment.mdx,jupyter.mdx,log-models.mdx,log-tables.mdx,plots.mdx,working-with-csv.mdx, andreproduce_experiments.mdx.jupyter.mdx:wandb.login()is shown without context about credentials or where to obtain an API key outside Colab.limits.mdx: "Performance" is never defined from a user perspective (page load vs. SDK overhead vs. training-loop latency); consider a symptoms→causes mapping in the intro.plots.mdx: The Bokeh example importshello.wavwithout describing or linking it; note that readers must supply their own audio file.project-page.mdx: "Create a project" and "Add notes to a project" don't mention account, team membership, or role requirements.workspaces.mdx: The page is titled "View experiments results" but is entirely about workspaces; reconcile title vs. scope.Verification steps
config.mdx(config saved in Run Overview),create-an-experiment.mdx(artifact location in W&B App),jupyter.mdx(after%%wandb,wandb docker --jupyter),limits.mdx(after workspace reset to manual mode),log-models.mdx(use_modeldirectory verification),log-summary.mdx(afterdefine_metricandrun.summary.update()),log-tables.mdx(table-in-workspace andget()confirmation),plots.mdx(chart appearance per type),working-with-csv.mdx(dashboard URL/click path),project-page.mdx(create/delete/star confirmations),reproduce_experiments.mdx(reproduced-run comparison), andworkspaces.mdx(save/update template confirmation; clarify the "no details" case under "View your workspace template").jupyter.mdx: Briefly explain the difference between%%wandb(cell magic) and%wandb(line magic).limits.mdx: Throughput-examples tables lack interpretation; confirm the video-table last row (500 MB at 0.07/min = 35 MB/min) is intentional given the 40 MB/min target other rows aim for.Technical accuracy
config.mdx:parser.add_argument("-lr", "--learning_rate", type=int, default=0.001, ...)usestype=intwith a0.001default — likely should betype=float.grafana_urlis set to a Markdown-link string; confirm the W&B App's References section actually renders Markdown links in config values.wandb.init()"starts a background process that syncs and logs your data as a run" (line 32), flattening of nested config dictionaries via dot notation (line 54), and auto-loading ofconfig-defaults.yamlfrom the script directory (line 231).environment-variables.mdx:WANDB_DISABLE_GIT(line 48): confirm both latest commit and diff are always captured.WANDB_RUN_ID(line 64): verifywandb(not the user) performs the non-word-character → dash conversion.WANDB_QUIETvs.WANDB_SILENT(lines 65–66): clarify the precise behavioral difference.WANDB_RESUME(line 62): verify semantics ofallowand whetherWANDB_RUN_IDis required only forallowor alsomust.WANDB_DATA_DIR(line 45): confirm "staging artifacts" wording and thatplatformdirs.user_data_diris still the default source.WANDB_ARTIFACT_DIR,WANDB_DIR,WANDB_CACHE_DIR, andWANDB_CONFIG_DIRmatch current SDK behavior.WANDB_DOCKER(line 50): verifywandb docker [IMAGE_NAME]:[TAG] --digestis still the current CLI syntax.wandbas subject — confirm the SDK/library is the actor in each case.jupyter.mdx:wandb.Run.finish()andrun.finish().%%wandbbehavior when a cell runs multiple times (line 41).ipython.display(...)vs. thedisplaysymbol imported on line 76 — verify the inline reference matchesIPython.display.display.run.finish()directly.wandb docker --jupyterstill exists and behaves as described.https://wandb.me/jupyter-interact-colabstill resolves.wandb.init()examples should migrate to the context-manager pattern recommended by the W&B section of the style guide.limits.mdx:RateLimit-Limit/RateLimit-Remainingare scaled 0–1,000.wandb sync [RUN-FILE-PATH]accepts a file path (not a directory).https://wandb.me/log-hf-colabis live.log.mdx:wandb.me/code-save-colabis still canonical for the general Code Saving setting, and confirm the in-product label casing.requirements.txtto the run's Files tab.wandb.run.summary["best_accuracy"](lowercaserun) vs.wandb.Run.log()(uppercaseRun) elsewhere — confirm and apply consistently.wandb.Run.watch(model)to its reference.log/customize-logging-axes.mdx:custom_step : intandmetric_name : intuse theintclass as a value placeholder — semantically misleading. Consider realistic integers (i,i+1) or bracket-style placeholders.i**2).run.define_metric("train/*", step_metric="train/step")— confirm this is the documented signature and clarify that the first argument is the metric name / glob pattern.log/log-models.mdx:ColabLinkURL points to a branch-specific notebook (ken-add-new-model-reg-api). Verify this is stable and not a development fork.wandb.Run.use_model()vs. body uses ofuse_modelandrun.use_model()— confirm canonical form.model.h5; verify HDF5 is still recommended over.keras.run.use_model(...)/run.log_model(...)are canonical vs. module-levelwandb.log_model(...).name = f"…"uses non-PEP 8 spacing around=for a keyword arg.#amazon-s3--gcs--azure-blob-storage-referencesstill matches the target heading intrack-external-files.log/log-summary.mdx:apireferenced withoutapi = wandb.Api(); loop usesproject_namebut the defined variable isproject;pd.DataFramecalled although the import isimport pandas(notas pd).summaryargument vs.define_metric.log/log-tables.mdx:with wandb.init() as run:block inside anotherwandb.init()context — almost certainly a bug.run-[RUN-ID]-[TABLE-NAME]:[TAG]reflects the actual run-scoped artifact naming convention.log/plots.mdx:wandb.plot_table(...)while other examples usewandb.plot.<chart>(...)— confirm both spellings are current.vega_spec_name="carey/new_chart"references a user-specific preset; replace with a placeholder or note it must be replaced.fig = plt.figure()separately" guidance for the empty-plot error is still current.log/working-with-csv.mdx:wandb.init()withblock but the snippet is truncated mid-block (as run:with no body); confirm the partial snippet reads clearly.import wandbandimport pandas as pd— verify intent.wandb.Artifact("iris_artifact", type="dataset")is unscoped; confirm docs recommend fully-qualified artifact names.project-page.mdx:"zoo-wyhak4p0"still matches the current screenshot.reproduce_experiments.mdx:<Tabs>block resets MDX numbering — visual check before merge.[COMMIT-SHA]placeholder previously hinted visually at a Git SHA via 40 characters; confirm the bracketed token is sufficient.workspaces.mdx:[ENTITY-NAME]/[WORKSPACE-URL]; confirm engineering expects bracket-style placeholders in copy/paste samples.Missing content
config.mdx: "below the root" terminology for nested config keys may be unclear; no documentation of precedence/merge behavior acrossrun.config.update(), direct assignment, YAML, and argparse; no callout on which keys can be pinned, character limits, or plain-text vs. Markdown rendering; consider marking or relinking the TF v1 flags section as legacy.create-an-experiment.mdx: image at line 120 usesalt="Quickstart Sweeps Dashboard example"with a Sweeps-specific path on an Experiments page; the<Note>at lines 41–43 may not warrant a notice; confirm "Configure Experiments" / "Log Data During Experiments" link text matches actual page titles; line 85 uses "Learn more about..." instead of the standard "For more information, see..." pattern; decide whether "Run" should be a proper noun.environment-variables.mdx: Singularity section (line 75) lacks a concreteSINGULARITYENV_example; "Run on AWS" (line 79) ends abruptly after the AWS batch link; the Singularity link points to the older LBL project, notapptainer.org/sylabs.io; the heading anchor change#running-on-aws→#run-on-awsis referenced by old slugs inko/,ja/, andfr/translations.jupyter.mdx: the bottom<Note>is used for cross-references and could be a "Next steps" / "Related" section; no guidance on ending a session cleanly or kernel restarts mid-run; bracket placeholders ([USERNAME],[PROJECT], etc.) lack a lead-in; code-fence languagenotebookis not in the CoreWeave standard set (bash,python,yaml,json,text); two long sentences (~36 and ~41 words) could be split.limits.mdx: a commented-out "Metric naming constraints" link is hidden in MDX comments; "Value size" mentionswandb.Mediatypes are "handled differently" without a link; "Metric logging API rate limits" mentions paid vs. free plans without specifying values; three near-identical Multi-tenant Cloud warnings could be consolidated; "Browser considerations" calls out Chrome only; several concepts (Artifacts, offline syncing, public API, GraphQL) lack inline definitions / outbound links; the "Many metrics per run" procedural sentence could be promoted to a bulleted step.log.mdx: title/description vs. body scope mismatch — workflows may belong on subpages; stale commented-out blocks at lines 20–25, 27, and 33–39 referencestep=andcommit=False; document or removecommit=Falsereferences; add a pointer for non-consecutive / out-of-order logging since the doc only states you can't write to a specific history step; consider splitting the 36-word "Compare the best accuracy" sentence; "Best practices and tips" is a single external link to a W&B report.log/customize-logging-axes.mdx: the Globs section (line 76+) is a substantive topic without its own H2; line 97 contains a commented-out Colab link — either restore or remove; alt text (lines 26, 73) contains literal backticks; code comment (line 88) usesw/; inconsistent kwarg spacing (step_metric = custom_stepvs.step_metric="train/step").log/log-models.mdx: no guidance on accepted file types or directory structures forlog_model; no mention of size limits or large-model considerations; no description of howlog_modelinteracts with remote reference URIs (s3://, etc.); no explanation of versioning behavior or auto-generated aliases on repeated calls; no coverage ofuse_modelerror behavior when the artifact doesn't exist; no cross-link to the "link a model to the registry" workflow;:latestalias syntax is used without explanation.log/log-summary.mdx: the list of validsummaryvalues ("min","max","mean","best","last","none") lacks one-line definitions, especially distinguishing"best"(requiresobjective) from"last"(default); the "Run Table" tab procedure (~lines 89–93) doesn't note how to add a summary column that isn't shown by default.log/log-tables.mdx:ArtifactEntrytype is referenced in the JoinedTable args table without definition or link; "Visualize tables" is a single sentence; the 200,000-row override Note could be more specific about which sizes / UI operations cause issues.log/plots.mdx:wandb.plot.line_seriesxs/ys"must match exactly" doesn't clarify shared-x vs. per-line-x auto-detection; confusion-matrix bullet says "either probabilities or predictions but not both," but onlypredsis shown — consider aprobsexample; no cross-link to a quickstart establishingwandb.initbasics.log/working-with-csv.mdx: no explanation of the 200,000-row artifact limit referenced in code comments;define_metricis mentioned but the example usesrun.summary.update()— clarify or remove; link text[Sweeps Hyperparameter Tuning](/models/sweeps/)doesn't match the canonical "Sweeps"; commented-out{% embed %}blocks at lines 11 and 97–99 — remove or restore; inconsistent comment capitalization, an ellipsis, an exclamation, and200000without a thousands separator.project-page.mdx: the line ~329 Python sample is collapsed onto a single line — reformat across multiple lines and separate theimport; placeholder URLs in the Star-a-project tabs mix<team>/<project-name>/<project_name>instead of the CoreWeave-preferred[PLACEHOLDER-NAME]; the Sweeps tab is a single sentence with only a screenshot; Project roles section doesn't enumerate roles or link to a reference; the Workspace tab section doesn't introduce the "Add panels" control referenced later; verify the "Confirm that your project is available." paragraph belongs under Create a project (currently stranded around line 367 pre-edit).reproduce_experiments.mdx: step 7 ("Optional: Create a Python virtual environment.") provides no command or link; step 1's "Name of the run you want to reproduce" prerequisite is never used explicitly in the procedure (only via branch name in the GitHub tab's step 4).workspaces.mdx: line 176 Colab URL contains a typo in the branch name (Update-wandb-workspaces-tuturial); lines 192–205 contain a large JSX-commented block duplicating the active bullet list above it — decide whether to delete; line 244 references "workspace API examples" without API reference detail; line 234 headingCopy a workspace \saved view` to another workspace` uses inline code for a concept (and changing it would break the anchor).How to review