close
Skip to content

docs: terminology cleanup, surface-map hygiene, and --mcp well-known-id docs - #583

Open
warp-agent-staging[bot] wants to merge 4 commits into
mainfrom
factory/rev-38-docs-audit-findings
Open

docs: terminology cleanup, surface-map hygiene, and --mcp well-known-id docs#583
warp-agent-staging[bot] wants to merge 4 commits into
mainfrom
factory/rev-38-docs-audit-findings

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Rework changes

  • Additional casing fix (direct requester feedback, not a review cycle): restored capitalization of Blocks, Tab Configs/Tab Config, and Launch Configuration wherever the header-case auto-fix had lowercased them across quickstart.mdx, terminal/windows/tab-configs.mdx (6 headings), and terminal/sessions/launch-configurations.mdx (2 headings). Added all of these to PROPER_FEATURE_NAMES in style_lint.py and a matching terminology.md entry for Launch Configuration (Blocks/Tab Configs were already documented there). Re-ran the corpus-wide scan to confirm no other instances remained.
  • Rework cycle 1 (formal code review, "Request changes"): fixed two more sentence-boundary regressions the review caught — factories/integrations/gitlab.mdx ("Factory definitions..." after a stripped MDX comment) and the pricing-faqs.mdx two-question FAQ heading ("...yet. How does billing work?"). Hardened style_lint.py at the source for both bug classes (MDX-comment-hidden sentence boundaries in check_factory_proper_noun, and multi-sentence headers in check_header_case/_to_sentence_case via a new _sentence_start_indices helper), added regression tests, and re-ran the corpus-wide scan to confirm no other files were affected.
    Addressed direct requester feedback from the Slack thread:
  • Restored capitalization of Full Terminal Use, Computer Use, Zero Data Retention (ZDR), and Single Sign-On (SSO) everywhere the header-case auto-fix had incorrectly lowercased them (these weren't caught in the original hand-verification pass). The bare SSO acronym itself was already preserved correctly everywhere; only the spelled-out "Single Sign-On" phrase needed restoring.
  • Made this durable: added all four to PROPER_FEATURE_NAMES in .agents/skills/style_lint/style_lint.py (the header-case sentence-case exception set) and added matching entries to .agents/references/terminology.md, so future style_lint --fix runs stop flagging/fixing them. Re-ran style_lint.py --all and the style_lint test suite to confirm no new false positives.
  • Light polish pass: renamed the new --mcp well-known-id subsection heading to "Passing MCP servers by well-known id" to match the parallel heading style used by its sibling sections on the same page.

Summary

Addresses a low-risk, mechanical subset of findings from the daily docs-audit digest (missing_docs, style_lint, check_for_broken_links), per REV-38:

  1. Terminology cleanup via style_lint.py --fix: blocklistdenylist (3 of 4 findings; see Declined below), MacOSmacOS (0 of 2; see Declined below), ambient agentcloud agent(s) (4/4), bare "Factory"factory (1/1), and 93 header-case (Title Case → sentence case) findings corpus-wide.

  2. Surface-map hygiene in .agents/skills/missing_docs/references/feature_surface_map.md:

    • Repointed the AgentMode/AgentOnboarding GA-flag entries off their deleted doc paths to where that content now lives (agents/index.mdx and the installation/setup quickstart's "Log in to Warp" section).
    • Added a FactoryMcp mapping (factories/factory-mcp.mdx) and a WellKnownMcpIds mapping (see item 3).
    • Added OrchestrationUnifiedStack/WaitForEventsParentRegistration to the internal-flags ignore list — both are internal client-side orchestration event-delivery plumbing with "no user-visible behavior change" per their design specs (warp/specs/QUALITY-928/TECH.md, warp/specs/QUALITY-919/TECH.md).
    • Bulk-added internal entries (with a comment) for the 36 undocumented /factory*, /factory-files/*, /factory-alias/*, and /factory-setup/* API routes — Factory-UI-only backend routes, not part of the released public Oz Agent API.
    • Refreshed references/surface_snapshot.json via --update-snapshot.
  3. New doc content: documented the --mcp <well-known-id> CLI shorthand (FeatureFlag::WellKnownMcpIds, shipped GA — warp/crates/warp_cli/src/mcp.rs:88) in reference/cli/mcp-servers.mdx.

A note on the style_lint --fix diff

I hand-verified the full auto-fix diff (per the ticket's explicit instruction) rather than trusting it blindly, and found the auto-fixer has several real bugs beyond this ticket's scope to fix in the tool itself, so I corrected the affected content instead:

  • It doesn't respect fenced code blocks, so it rewrote a literal macOS app-bundle path (Contents/MacOS/Contents/macOS/, which would have broken the documented command) and edited the wording of a verbatim third-party license text (CDLA Permissive 2.0) reproduced inside a fenced code block.
  • Its header-case heuristic doesn't know about proper nouns/product names, so it lowercased Warp, Git, GitHub, GitLab, Slack, Jira, Linear, Figma, Rust, Docker, Playwright, ChatGPT, Tailwind, Markdown, Finder, Vertex AI, Gemini Enterprise, and Model Context Protocol in dozens of headers. I restored proper-noun casing while keeping the legitimate sentence-case corrections.
  • Its ui-backtick check misidentified non-UI identifiers (a keyboard key, file extensions like .dmg/.command, and JSON/config field names like status_message/detail/imagePullSecrets) as clickable UI elements and bolded them; I reverted those to backticks per the style guide ("Backticks — code, commands, file paths ... config values").
  • apply_fixes replaces the first textual occurrence of a fix's exact string anywhere in the file rather than the specific flagged line, so when the same backtick phrase appeared more than once in a file, the fix landed on the wrong occurrence. Reverted the one instance this caused (platform/self-hosting/troubleshooting.mdx).

Declined findings (kept as-is, not force-fixed)

  • code/code-review.mdx:64 — the "Blocklist" match is inside an actual image filename (Blocklist-with-review-changes.png); renaming the reference without renaming the file would break the image, and renaming the file is out of scope here.
  • support-and-community/privacy-and-security/privacy.mdx:85,87 — declined initially considered, but on inspection these table rows are literal telemetry event descriptions (prose, not code), so they were updated to denylist for consistency with the rest of the same "Exhaustive telemetry table" (which already uses Denylist/Allowlist elsewhere).
  • support-and-community/troubleshooting-and-support/sending-us-feedback.mdx:75,78 — the two "MacOS" occurrences are inside the literal macOS app-bundle path Contents/MacOS/, not prose about the operating system; left as MacOS (see note above).

Out of scope (per the ticket)

The broader 29-page pre-rename terminology sweep, the ~790 unrecognized-term glossary suggestions, the 217 screenshot-width findings, the 8 link-anchor issues, the Oz → Automation Platform rename migration, and 7 pre-existing/unrelated map-hygiene findings for stale /factory/scorers/* and /factory/autofix/* routes (renamed/removed in code, unrelated to this ticket's findings).

Verification

  • python3 .agents/skills/style_lint/style_lint.py --all — the specific blocklist/MacOS/ambient-agent/bare-Factory/header-case findings from the ticket are gone (declined ones noted above). Config-only/pure-copy terminology edits are testing-exempt (config-only / pure-copy category per factory-verification — no automated regression test is meaningful for prose casing) — this lint re-run is the deterministic check.
  • python3 .agents/skills/missing_docs/scripts/audit_docs.py --warp ../warp --warp-server ../warp-server --diffAgentMode/AgentOnboarding no longer flagged as pointing at deleted paths, FactoryMcp/WellKnownMcpIds are mapped, OrchestrationUnifiedStack/WaitForEventsParentRegistration and the 36 routes are internal, and the snapshot is refreshed. Same testing-exempt category (map/snapshot bookkeeping) applies.
  • npm run build passes.
  • python3 .agents/skills/missing_docs/scripts/test_audit_docs.py and test_suggest_reviewers.py pass.
  • python3 .agents/skills/style_lint/test_factory_proper_noun.py, test_hardcoded_var_exemptions.py, and test_platform_determiner.py pass.
  • This is docs-source content/data hygiene, not a rendered client UI change, so no computer_use verification was performed (per the ticket).

Originating thread: https://warpdotdev.slack.com/archives/C09BVK0PL3Y/p1787171871205549

…id docs

Addresses a subset of findings from the daily docs-audit digest
(missing_docs, style_lint, check_for_broken_links):

1. Terminology cleanup via style_lint.py --fix (blocklist -> denylist,
   MacOS -> macOS, ambient agent -> cloud agent(s), bare "Factory" ->
   factory, and 93 header-case findings corpus-wide). Hand-verified the
   full diff and corrected several regressions the auto-fixer introduced
   (it does not respect code fences or word boundaries): it lowercased
   product/proper names (Warp, Git, GitHub, GitLab, Slack, Jira, Linear,
   Figma, Rust, Docker, Playwright, ChatGPT, Tailwind, Markdown, Finder,
   Vertex AI, Gemini Enterprise, Model Context Protocol) in headers,
   mangled a literal macOS app-bundle path (Contents/MacOS/), rewrote
   verbatim third-party license text inside a code fence, bolded
   non-UI identifiers (keyboard keys, file extensions, JSON/config field
   names) it mistook for UI elements, and hit a global first-occurrence
   replace bug that edited the wrong line when the same backtick text
   appeared more than once in a file. Declined 2 low-confidence findings
   that turned out to be false positives (an image filename containing
   "Blocklist", and telemetry-table rows that quote literal event
   description strings still using old terminology in the client code).

2. Surface-map hygiene in feature_surface_map.md: repointed the
   AgentMode/AgentOnboarding GA-flag entries to their current doc
   locations, added a FactoryMcp mapping and a WellKnownMcpIds mapping,
   added OrchestrationUnifiedStack/WaitForEventsParentRegistration to the
   internal-flags ignore list (no user-visible behavior per their design
   specs), and bulk-added internal entries for the 36 undocumented
   /factory*, /factory-files/*, /factory-alias/*, and /factory-setup/*
   API routes (Factory-UI-only backend routes, not part of the released
   public Oz Agent API). Refreshed surface_snapshot.json.

3. Documented the `--mcp <well-known-id>` CLI shorthand
   (FeatureFlag::WellKnownMcpIds, GA) in reference/cli/mcp-servers.mdx.

Testing:
- Re-ran style_lint.py --all: the specific blocklist/MacOS/ambient-agent/
  bare-Factory/header-case findings above are gone (declined findings
  noted in the PR body). Config-only/pure-copy terminology and metadata
  edits are testing-exempt per factory-verification; the lint/audit
  re-runs are the deterministic check.
- Re-ran missing_docs' audit_docs.py --diff: AgentMode/AgentOnboarding no
  longer flagged as pointing at deleted paths, FactoryMcp/WellKnownMcpIds
  are mapped, the two orchestration flags and 36 routes are internal, and
  the snapshot is refreshed.
- npm run build passes.
- python3 .agents/skills/missing_docs/scripts/test_audit_docs.py and
  test_suggest_reviewers.py pass.
- python3 .agents/skills/style_lint/test_*.py pass.

Originating thread: https://warpdotdev.slack.com/archives/C09BVK0PL3Y/p1787171871205549

Co-Authored-By: Warp <agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label Aug 19, 2026
@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
Image docs Ready Ready Preview Aug 20, 2026 12:14am

Request Review

@warp-agent-staging warp-agent-staging Bot added the warpy-factory Opened by the Warp factory agents label Aug 19, 2026
@warp-agent-staging
warp-agent-staging Bot marked this pull request as ready for review August 19, 2026 21:45
@warp-for-oss

warp-for-oss Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

@warp-agent-staging[bot]

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@warp-for-oss warp-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Overview

This PR performs broad docs terminology and sentence-case cleanup, updates missing-docs surface-map/snapshot data, and adds the --mcp well-known ID reference content. I found two diff-backed content regressions from the automated cleanup: one rendered sentence now concatenates after an MDX comment, and one FAQ heading lowercases a new sentence.

Concerns

  • The GitLab factory integration sentence will render without a separating space/capital after the inline MDX comment.
  • The billing FAQ heading changes “How” to lowercase after a sentence boundary.
  • No security findings; no approved spec context was available.

Verdict

Found: 0 critical, 2 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread src/content/docs/factories/integrations/gitlab.mdx Outdated
Comment thread src/content/docs/support-and-community/plans-and-billing/pricing-faqs.mdx Outdated
…etention / Single Sign-On casing

Per direct requester feedback on the PR: the header-case auto-fix from the
previous commit had incorrectly lowercased four more proper terms that
weren't part of the earlier hand-verification pass:
- Full Terminal Use, Computer Use (agent capability feature names)
- Zero Data Retention (ZDR) (Warp's LLM-provider data-retention term)
- Single Sign-On (SSO) (the SSO acronym itself was already correctly
  preserved everywhere; only the spelled-out phrase was affected)

Reverted every header instance of these back to the capitalized form.

Made this durable per the requester's ask:
- Added "Computer Use", "Full Terminal Use", "Zero Data Retention", and
  "Single Sign-On" to PROPER_FEATURE_NAMES in style_lint.py's header-case
  sentence-case exception set, so future audits stop flagging/fixing them.
- Added matching entries to .agents/references/terminology.md (Agent
  concepts section for the two capabilities; Technical terms section for
  ZDR and SSO).

Also did a light polish pass on the rest of the PR diff: renamed the new
--mcp well-known-id subsection heading to "Passing MCP servers by
well-known id" to match the parallel "Passing MCP servers by UUID" /
"...as inline JSON or a file" heading style in the same page.

Testing:
- Re-ran style_lint.py --all: the 4 restored headers are no longer
  flagged, and the style_lint test suite (test_factory_proper_noun.py,
  test_hardcoded_var_exemptions.py, test_platform_determiner.py) still
  passes with no new false positives from the exception additions.
- Re-ran missing_docs' audit_docs.py --category map: unchanged (still
  only the 7 pre-existing, unrelated /factory/scorers|autofix map-hygiene
  findings noted as out of scope in the PR).
- npm run build passes.

Originating thread: https://warpdotdev.slack.com/archives/C09BVK0PL3Y/p1787171871205549

Co-Authored-By: Warp <agent@warp.dev>
Code review requested changes on PR #583, catching a second class of
'the auto-fixer doesn't respect sentence boundaries' bug beyond the one
already found in the previous rework:

1. src/content/docs/factories/integrations/gitlab.mdx — restored
   'Factory definitions hosted in GitLab repositories...' to capitalized.
   This text follows a stripped {/* OPEN QUESTION... */} MDX comment; the
   comment renders to nothing, so this is actually the start of a new
   rendered sentence after the previous one ('Verify before merging.'),
   not a mid-sentence attributive use of 'Factory'. I had manually
   lowercased it in the original implementation, misreading it as
   mid-sentence.

2. src/content/docs/support-and-community/plans-and-billing/pricing-faqs.mdx
   — restored 'How does billing work?' (capitalized) in the two-question
   FAQ heading '...not on a team together yet. How does billing work?'.
   The earlier header-case auto-fix had lowercased 'How' because it only
   ever protects the very first word of a header line, not the first word
   of each sentence within it.

Hardened style_lint.py so both bug classes are fixed at the source, not
just patched in content:
- check_factory_proper_noun now strips {/* ... */} JSX/MDX comments from
  the prose before deciding whether a bare 'Factory' is sentence-initial,
  so a sentence boundary hidden inside a comment is no longer invisible
  to the check.
- Added _sentence_start_indices(), a shared helper that finds every word
  starting a new sentence in a line (index 0, plus any word right after
  one ending in '.', '!', or '?'). check_header_case's title-case counting
  and _to_sentence_case's fix generation both now use it, so a header with
  more than one rendered sentence keeps each sentence's leading capital
  instead of only protecting word index 0.

Added regression tests:
- test_factory_proper_noun.py: a case for the comment-hidden sentence
  boundary, plus a case confirming an adjacent-but-not-preceding comment
  still lets a genuine mid-sentence 'Factory' get flagged.
- test_header_case_sentence_boundary.py (new): cases for a two-sentence
  header that needs partial fixing, and a fix-output check confirming the
  second sentence's capital survives while genuine mid-sentence Title
  Case words still get lowered.

Re-ran style_lint.py --all across the whole corpus after the hardening:
header-case findings dropped from 39 to 16, entirely because previously
correct headers elsewhere in the corpus (unrelated to this PR) were false
positives under the old single-sentence-boundary logic and are no longer
flagged. No further corpus-wide instances of either bug class needed
fixing beyond the two specific ones above.

Testing:
- python3 .agents/skills/style_lint/test_factory_proper_noun.py,
  test_header_case_sentence_boundary.py, test_hardcoded_var_exemptions.py,
  and test_platform_determiner.py all pass.
- python3 .agents/skills/style_lint/style_lint.py --all confirms both
  specific findings are gone and no new false positives appeared.
- python3 .agents/skills/missing_docs/scripts/audit_docs.py --category map
  is unchanged (still only the 7 pre-existing, out-of-scope map-hygiene
  findings).
- npm run build passes.

Originating thread: https://warpdotdev.slack.com/archives/C09BVK0PL3Y/p1787171871205549

Co-Authored-By: Warp <agent@warp.dev>
Per direct requester feedback on the PR: the header-case auto-fix had
lowercased three more proper feature names that weren't part of the
earlier hand-verification passes:
- Blocks (quickstart.mdx)
- Tab Configs / Tab Config (terminal/windows/tab-configs.mdx, 6 headings)
- Launch Configuration (terminal/sessions/launch-configurations.mdx, 2
  headings)

Restored every affected heading to the capitalized form.

Made this durable: added "Blocks", "Block", "Tab Configs", "Tab Config",
"Launch Configuration", and "Launch Configurations" to PROPER_FEATURE_NAMES
in style_lint.py. "Block"/"Blocks" and "Tab Configs" were already
documented as capitalized feature names in terminology.md; added a
matching "Launch Configuration" entry there too, since the docs already
treat it as a proper feature name in body prose (e.g. "Launch
Configurations have been replaced by Tab Configs").

Testing:
- Re-ran style_lint.py --all across the whole corpus: all 9 affected
  headings are no longer flagged, and no other instances of these three
  terms needed fixing.
- python3 .agents/skills/style_lint/test_factory_proper_noun.py,
  test_header_case_sentence_boundary.py, test_hardcoded_var_exemptions.py,
  and test_platform_determiner.py all still pass with no new false
  positives from the new exceptions.
- npm run build passes.

Originating thread: https://warpdotdev.slack.com/archives/C09BVK0PL3Y/p1787171871205549

Co-Authored-By: Warp <agent@warp.dev>

@warp-agent-staging warp-agent-staging Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Verdict: rejected

The current head is not ready to merge. The explicit style_lint.py --all acceptance criterion still fails for three listed findings:

  1. src/content/docs/code/code-review.mdx:64 still emits Blocklist → denylist because the scanner treats the literal image filename Blocklist-with-review-changes.png as prose.
  2. src/content/docs/support-and-community/troubleshooting-and-support/sending-us-feedback.mdx:75 and :78 still emit MacOS → macOS even though both occurrences are inside fenced shell code and must remain literal executable paths.

Please make the scanner context-aware: track complete fenced code blocks for the casing/deprecated-term checks and exclude Markdown image/link destinations while retaining the associated human-visible prose. Then rerun python3 .agents/skills/style_lint/style_lint.py --all to verify these exact findings are absent.

I also verified the new --mcp <well-known-id> section against warp/crates/warp_cli/src/mcp.rs; its documented parsing and server-side resolution behavior are correct. GitHub CI is green.

This is a comment review because GitHub does not permit this account to request changes on its own PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed warpy-factory Opened by the Warp factory agents

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants