Skip to content

docs: consolidate voice/writing-style guidance into the brand MCP (rebase of #19777) - #20664

Draft
CamSoper wants to merge 5 commits into
masterfrom
claude/rebase-resolve-conflicts-5yzksk
Draft

docs: consolidate voice/writing-style guidance into the brand MCP (rebase of #19777)#20664
CamSoper wants to merge 5 commits into
masterfrom
claude/rebase-resolve-conflicts-5yzksk

Conversation

@CamSoper

@CamSoper CamSoper commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Proposed changes

Rebase of #19777 onto current master, with the merge conflicts resolved. #19777's branch was based on fc0063b9 (~900 commits back) and had gone dirty; this branch replays its four commits on top of master and adds one follow-up commit for consistency fallout.

Same intent as #19777: make the Pulumi brand guide (public pulumi-brand MCP server at https://brand.pulumi.com/mcp) the source of truth for voice and writing style, have STYLE-GUIDE.md and the content skills consult it rather than restate it, and add a precedence rule (brand guide wins on overlap).

Conflicted files and how each was resolved

File Resolution
.vale.ini Kept master's Google.Headings rationale (it now describes Pulumi.HeadingSentenceCase, which didn't exist when #19777 was written); added #19777's brand source-of-truth comment and the new Google.Quotes = NO.
.github/workflows/claude-code-review.yml Kept master's allowed_bots (now includes workprentice) and its model flags (--model claude-opus-5 --effort low, not the branch's claude-opus-4-8); took the branch's claude_args --mcp-config block-scalar form and its MCP tools in --allowed-tools.
.github/workflows/content-review-article.yml Same shape: master's claude_args model flags, applied[] verdict-schema prompt text, and broad-Bash rationale comment; the branch's --mcp-config wiring and MCP tools.
STYLE-GUIDE.md Took the branch's rewrite (defer voice/style to the brand guide, keep only Hugo/repo mechanics), preserving master's newer additive content: the Cross-reference sections section, the Brand assets note under Images, and the descriptive-image-filename bullet.

Two substantive divergences from master that need a call — please confirm before this goes ready

These are the points where master moved in the opposite direction from #19777 after the branch was cut. I resolved both toward #19777's intent, since that's what the PR is for, but they're the author's decision, not mine:

  1. Precedence. Master's STYLE-GUIDE.md grew a "Brand guidelines" section putting this guide first ("When this guide and the brand guidelines diverge, this guide wins here"). docs: consolidate voice/writing-style guidance into the brand MCP #19777 reverses that — brand guide wins. Master's section is dropped here.
  2. Heading case. Master added a "Title vs. headings" note arguing that Title Case for the H1 is in keeping with the brand guide (H1 = page title, not a heading). docs: consolidate voice/writing-style guidance into the brand MCP #19777 says sentence case at every level. The AGENTS.md hunk auto-merged to docs: consolidate voice/writing-style guidance into the brand MCP #19777's wording, so leaving master's note in STYLE-GUIDE.md would have made the two files contradict each other — the note is dropped.

styles/Pulumi/HeadingSentenceCase.yml still scopes enforcement to H2+; only its comment (and the matching .vale.ini comment) changed, so no existing Title Case H1 starts getting flagged. Migrating H1s is a separate decision.

Verification

Unreleased product version (optional)

N/A

Related issues (optional)

Supersedes #19777 — that PR can be closed if this one is taken, or these commits force-pushed onto its branch instead.

🤖 Generated with Claude Code

https://claude.ai/code/session_015KpCy5B47c2oNqEeX1Znwx


Generated by Claude Code

cnunciato and others added 5 commits August 3, 2026 18:36
Make the Pulumi brand guide (served by the public pulumi-brand MCP server)
the source of truth for voice and writing-style, and have the docs
STYLE-GUIDE and content skills consult it instead of restating it.

- STYLE-GUIDE.md: trim to Hugo/repo mechanics + a pointer to the brand
  guide's voice/writing-style sections; add a precedence rule (the brand
  guide wins on any overlap, including social/SEO/AEO).
- AGENTS.md: point content rules at the brand guide; standardize headings
  on sentence case at every level; precedence rule.
- glow-up: require the pulumi-brand MCP (fail loud if unreachable) and
  defer voice/prose/terminology to it.
- prose-patterns: source-of-truth note pointing at brand writing-style.
- new-doc / new-blog-post: suggest sentence-case titles; point at the guide.
- .vale.ini: put punctuation outside quotes; note the sentence-case standard.
- claude-code-review.yml / content-review-article.yml: wire the public brand
  MCP (mcp_config + get_guidelines/search_guidelines) so CI review can
  consult voice/writing-style.

SEO and social guidance intentionally stay in this repo's skills for now.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… input)

The pinned anthropics/claude-code-action@v1 rejects a top-level mcp_config
input (logged 'Unexpected input(s) mcp_config' and ignored it). v1 expects
custom MCP servers in claude_args via --mcp-config; the config merges with
the action's built-in GitHub MCP server. Move the pulumi-brand HTTP server
there and keep its tools in --allowed-tools.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The 'Upload Claude execution log' step pointed at a hardcoded temp path
(/home/runner/work/_temp/claude-execution-output.json) that claude-code-action@v1
no longer writes, so with if-no-files-found:ignore it silently uploaded
nothing — losing per-tool spend telemetry and any visibility into MCP usage.
Point it at the action's `execution_file` output instead. The stream-JSON
log's system/init message lists mcp_servers + connection status, which also
lets us confirm the brand MCP connects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The execution_file output renders empty under the pinned claude-code-action@v1,
and an empty upload-artifact path fails the step. Restore the original harmless
no-op path; execution-log observability is a separate follow-up.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fallout from rebasing onto master: Pulumi.HeadingSentenceCase and its
.vale.ini entry both described Title Case H1 as the convention, which now
contradicts AGENTS.md and STYLE-GUIDE.md. Restate the comments as what the
scoping actually is — sentence case is the standard at every level; the rule
stays scoped to H2+ so it doesn't flag the backlog of Title Case front-matter
titles. No rule behavior changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015KpCy5B47c2oNqEeX1Znwx
@pulumi-bot

Copy link
Copy Markdown
Collaborator

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants