Skip to content

docs: scaffold docs/.style for the prose style guide#25466

Merged
nickvigilante merged 4 commits into
mainfrom
vigilante/docs-180-build-the-docs-style-guide-scaffold-in-docsstyle-private-to
Jun 17, 2026
Merged

docs: scaffold docs/.style for the prose style guide#25466
nickvigilante merged 4 commits into
mainfrom
vigilante/docs-180-build-the-docs-style-guide-scaffold-in-docsstyle-private-to

Conversation

@nickvigilante

@nickvigilante nickvigilante commented May 18, 2026

Copy link
Copy Markdown
Contributor

Adds a private contributor-tooling directory at docs/.style/ that will host the canonical prose style guide and the custom Vale rules used to enforce it. The directory's contents do not deploy to coder.com/docs.

This PR is the scaffold only. The Vale configuration, the rule set, and the per-rule style-guide sections all land in follow-up PRs.

What changes

  • New docs/.style/ directory with:
    • README.md explaining the convention
    • style-guide.md as a table-of-contents scaffold
    • styles/Coder/README.md placeholder so Git tracks the empty Vale rules dir
  • .github/workflows/deploy-docs.yaml: skip the workflow on .style-only pushes, and exclude .style paths from the surgical-reindex git diff on mixed commits. Defense-in-depth on top of the manifest-driven coder.com routing.
  • .github/.linkspector.yml: add docs/.style to excludedDirs
  • AGENTS.md and .claude/docs/DOCS_STYLE_GUIDE.md: cross-link to the new style guide for agents

Verification

  • make pre-commit-light clean (fmt/markdown, lint/markdown, lint/typos, lint/emdash, lint/actions/actionlint, lint/shellcheck).
  • markdown-table-formatter --check and markdownlint-cli2 both process the new files (existing globs are find docs -name '*.md').
  • actionlint clean on the modified workflow.
  • coder.com exclusion works because route discovery and Algolia indexing are manifest-driven; this directory is not in docs/manifest.json. The workflow changes are defense in depth.
Implementation plan and decision log

Decisions

  • Location: docs/.style/ (leading dot, mirrors .github/, .vscode/, .claude/). Vale's StylesPath will be docs/.style/styles/; .vale.ini lands at repo root in a follow-up.
  • Existing public page docs/about/contributing/documentation.md: untouched in this PR. Nick's separate information-architecture rework will redirect it to GitHub at the right time.
  • Placeholder for empty styles/Coder/: real README.md, not .gitkeep. Discoverable on GitHub, lints with the existing tooling, lists the planned starter rules.
  • CONTRIBUTING.md: not touched. It's a 2-line redirect to coder.com/docs/CONTRIBUTING; bloating it would defeat the redirect.
  • .claude/docs/DOCS_STYLE_GUIDE.md: kept as the structure/research companion. A blockquote at the top points at the new canonical prose guide.

coder.com exclusion mechanism (verified by inspection)

Direct inspection of coder/coder.com:

Net result: not adding anything from docs/.style/ to manifest.json is the only thing that has to be true for the exclusion to work. The deploy-docs.yaml tweaks are defense in depth.

deploy-docs.yaml changes (pre-mortem)

  1. Trigger path negation !docs/.style/** skips the workflow on .style-only pushes. GitHub Actions only suppresses when every changed file matches a negation, so mixed commits still trigger.
  2. The git-diff pathspec :(exclude)docs/.style/** drops .style paths from the surgical-reindex payload on mixed commits.

Risks considered:

  • Test contract: .github/workflows/test-deploy-docs-diff.sh only exercises the downstream awk parser, not the git-diff invocation. The exclusion happens at git-diff time; the parser sees the same <status>\0<path>\0 format. No test change needed.
  • First push to a brand-new branch: the workflow falls back to whole-branch reindex when BEFORE_SHA is all zeros. Whole-branch reindex re-extracts records from the manifest, which still excludes .style files because they are not in the manifest.
  • Workflow-dispatch: takes the whole-branch path; same reasoning. Safe.

Why a real README in styles/Coder/ instead of .gitkeep

It explains intent, lists the upcoming rules, and lints with the existing tooling. The cost is one extra Markdown file; the upside is that a contributor browsing GitHub sees the plan without clicking around.


Filed via Coder Agents on Nick's behalf.

Linear: DOCS-180

@github-actions

Copy link
Copy Markdown

Docs preview

📖 View docs preview for docs/.style/README.md

Copy link
Copy Markdown
Contributor Author

/coder-agents-review

Focus areas (in order):

  1. .github/workflows/deploy-docs.yaml trigger filter negation and the surgical-diff pathspec. The pre-mortem in the PR body covers mixed-commit behavior and the test-contract analysis; please verify that reasoning.
  2. The .gitkeep-vs-README.md choice in docs/.style/styles/Coder/. Anything to worry about with how Vale will treat that file once BasedOnStyles = Coder is set in DOCS-40?
  3. Anything else worth catching before this lands.

Filed via Coder Agents on Nick's behalf.

@coder-agents-review coder-agents-review 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.

Clean, well-documented scaffold. The layered exclusion strategy (manifest primary, trigger filter secondary, pathspec tertiary) is properly reasoned and each layer is documented. The pre-mortem covering first-push-to-new-branch and workflow-dispatch edge cases is the kind of analysis that prevents 2 AM debugging. The real README in styles/Coder/ instead of .gitkeep is a good call.

1 P2, 3 P3, 2 Nits, 3 Notes. The P2 and one P3 share a root cause: the blockquote and AGENTS.md bullet prematurely delegate prose authority to an empty scaffold while mischaracterizing the file that actually has the rules. The fix is a transitional note, not a structural change. One P3 is a missing path negation in docs-preview.yaml (this PR's own preview comment demonstrates the 404). One P3 notes the scaffold lacks a cross-reference to the existing deployed guide.

"An agent editing docs/ today reads this bullet, follows the link, gets five 'to be filled in' placeholders, and comes back empty-handed." (Leorio)

🤖 This review was automatically generated with Coder Agents.

Comment thread .claude/docs/DOCS_STYLE_GUIDE.md Outdated
Comment thread AGENTS.md Outdated
Comment thread .github/workflows/deploy-docs.yaml
Comment thread docs/.style/style-guide.md
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread docs/.style/style-guide.md
Comment thread docs/.style/README.md
Comment thread docs/.style/styles/Coder/README.md Outdated
nickvigilante added a commit that referenced this pull request May 18, 2026
Five small fixes from coder-agents-review on PR #25466:

- DEREM-2 (P2): The blockquote in .claude/docs/DOCS_STYLE_GUIDE.md
  pointed readers to a scaffold and away from the Writing Style section
  on the same file. Reframe to a transitional note: keep using the
  Writing Style section below until the prose guide is populated.
- DEREM-3 + DEREM-6 + DEREM-7: Apply the same transitional framing in
  the AGENTS.md bullet, replace the ephemeral 'new style guide' with
  'prose style guide', and drop the misleading 'repo-root' qualifier
  on .claude/docs/.
- DEREM-4: Add 'docs/.style/**' negation to .github/workflows/
  docs-preview.yaml's path filter, and have the first-doc selection
  skip .style/ when picking the preview target on mixed PRs. Folds
  DOCS-184 into this PR.
- DEREM-5: Add a Relationship section to docs/.style/style-guide.md
  that names docs/about/contributing/documentation.md as the public
  summary pending the IA rework redirect.
- DEREM-8: List deploy-docs and docs-preview in the README's 'What
  does not run against this directory' section now that both are
  configured to skip .style.

Refs DOCS-180.

Copy link
Copy Markdown
Contributor Author

Thanks for the review. Resolutions in 7e43962a6e:

Acted on

  • DEREM-2 (P2).claude/docs/DOCS_STYLE_GUIDE.md: replaced the blockquote with a transitional note that keeps the Writing Style section authoritative until the scaffold fills in. Same fix pattern applied to DEREM-3, DEREM-6, and DEREM-7 below since they share the root cause.
  • DEREM-3 (P3)AGENTS.md bullet: now reads "follow the prose style guide once it is populated; until then, use the Writing Style section in .claude/docs/DOCS_STYLE_GUIDE.md." No more premature delegation.
  • DEREM-4 (P3).github/workflows/docs-preview.yaml: added !docs/.style/** to the path filter and a defense-in-depth grep -v '^docs/\.style/' to the first-doc selection. This also supersedes DOCS-184; I'll mark that ticket Duplicate once this PR merges.
  • DEREM-5 (P3)docs/.style/style-guide.md: added a "Relationship to docs/about/contributing/documentation.md" section noting the public page is frozen pending Nick's separate IA-rework redirect.
  • DEREM-6 (Nit)AGENTS.md: replaced "the new style guide" with "the prose style guide" to match the vocabulary the rest of the PR established.
  • DEREM-7 (Nit)AGENTS.md: dropped the misleading "repo-root" qualifier on .claude/docs/DOCS_STYLE_GUIDE.md. Now reads "the existing .claude/docs/DOCS_STYLE_GUIDE.md."
  • DEREM-8 (Note)docs/.style/README.md: added deploy-docs.yaml and docs-preview.yaml to the "What does not run" list so the README is honest about which workflows skip this directory.

Noted only

  • DEREM-1 (Note) — Forward references to .vale.ini are intentional. The scaffold framing and the DOCS-40 links make it clear, and rewording every present-tense reference would just churn for the DOCS-40 follow-up to undo. Leaving as is.
  • DEREM-9 (Note) — Honest enforcement gap acknowledged. DOCS-179 will close it when the parity check ships; until then the imperative in the README is aspirational, which the surrounding language admits to.

Filed via Coder Agents on Nick's behalf.

Copy link
Copy Markdown
Contributor Author

/coder-agents-review

@coder-agents-review coder-agents-review 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.

All R1 findings verified fixed or acknowledged. The P2 blockquote mischaracterization, the docs-preview.yaml gap, the missing cross-reference, the AGENTS.md wording, all cleanly resolved in 7e43962. Hisoka traced the docs-preview.yaml fix through every edge case (mixed PRs, race conditions) and confirmed defense in depth holds at every layer.

Two P4s remain, neither blocking.

DEREM-5's redirect ticket half needs a human decision. The author noted the IA rework is in flight under DOCS-93 but the specific redirect has no dedicated ticket. The text says "An information-architecture rework will redirect that page to this guide" with no link. Every other future-work reference in these files (29 of them) points to a specific Linear ticket. This one alone doesn't. Filing a ticket or explicitly accepting the gap is a call for Nick.

The third-party references table duplication between style-guide.md and documentation.md is real and acknowledged; author will deduplicate when the redirect lands.

"The person debugging a deploy at 2 AM reads these comments and understands the full picture without opening a second file." (Leorio, on the workflow comments)

🤖 This review was automatically generated with Coder Agents.

Comment thread docs/.style/style-guide.md Outdated
Comment thread docs/.style/style-guide.md

Copy link
Copy Markdown
Contributor Author

Status check, ready for human review.

The bot panel approved at R2 (commit 7e43962). Two non-blocking P4 follow-ups raised in that approval are now addressed on top:

  • DEREM-10 (untracked future-work reference) — the IA-rework redirect now points to DOCS-186 explicitly. Filed 2026-05-19. Matches the per-ticket convention used by the other 29 future-work references in this PR.
  • DEREM-11 ("How to use this guide" routes contributors to empty stubs) — the section now opens with a one-sentence scaffold acknowledgment that points direct visitors at docs/about/contributing/documentation.md as a fallback.

Follow-ups landed in 960e4f7. Subsequent commit e8fb18c is a small post-approval cleanup (removed leftover Linear-URL references inside the scaffold prose, since the scaffold is meant to be repo-internal). CI is green.

Looping for human review when convenient.

Generated by Coder Agents on behalf of @nickvigilante.

@github-actions github-actions Bot added the stale This issue is like stale bread. label Jun 6, 2026
@github-actions github-actions Bot closed this Jun 10, 2026
@nickvigilante nickvigilante reopened this Jun 10, 2026
nickvigilante added a commit that referenced this pull request Jun 10, 2026
Five small fixes from coder-agents-review on PR #25466:

- DEREM-2 (P2): The blockquote in .claude/docs/DOCS_STYLE_GUIDE.md
  pointed readers to a scaffold and away from the Writing Style section
  on the same file. Reframe to a transitional note: keep using the
  Writing Style section below until the prose guide is populated.
- DEREM-3 + DEREM-6 + DEREM-7: Apply the same transitional framing in
  the AGENTS.md bullet, replace the ephemeral 'new style guide' with
  'prose style guide', and drop the misleading 'repo-root' qualifier
  on .claude/docs/.
- DEREM-4: Add 'docs/.style/**' negation to .github/workflows/
  docs-preview.yaml's path filter, and have the first-doc selection
  skip .style/ when picking the preview target on mixed PRs. Folds
  DOCS-184 into this PR.
- DEREM-5: Add a Relationship section to docs/.style/style-guide.md
  that names docs/about/contributing/documentation.md as the public
  summary pending the IA rework redirect.
- DEREM-8: List deploy-docs and docs-preview in the README's 'What
  does not run against this directory' section now that both are
  configured to skip .style.

Refs DOCS-180.
@nickvigilante nickvigilante force-pushed the vigilante/docs-180-build-the-docs-style-guide-scaffold-in-docsstyle-private-to branch from e8fb18c to 14eca1f Compare June 10, 2026 12:39
@nickvigilante

Copy link
Copy Markdown
Contributor Author

@tracyjohnsonux @DevelopmentCats Can I get your review on this PR when you get a chance?

@github-actions github-actions Bot removed the stale This issue is like stale bread. label Jun 11, 2026
@nickvigilante nickvigilante requested a review from bpmct June 11, 2026 15:17

@bpmct bpmct left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks solid to me!

nickvigilante added a commit that referenced this pull request Jun 16, 2026
Five small fixes from coder-agents-review on PR #25466:

- DEREM-2 (P2): The blockquote in .claude/docs/DOCS_STYLE_GUIDE.md
  pointed readers to a scaffold and away from the Writing Style section
  on the same file. Reframe to a transitional note: keep using the
  Writing Style section below until the prose guide is populated.
- DEREM-3 + DEREM-6 + DEREM-7: Apply the same transitional framing in
  the AGENTS.md bullet, replace the ephemeral 'new style guide' with
  'prose style guide', and drop the misleading 'repo-root' qualifier
  on .claude/docs/.
- DEREM-4: Add 'docs/.style/**' negation to .github/workflows/
  docs-preview.yaml's path filter, and have the first-doc selection
  skip .style/ when picking the preview target on mixed PRs. Folds
  DOCS-184 into this PR.
- DEREM-5: Add a Relationship section to docs/.style/style-guide.md
  that names docs/about/contributing/documentation.md as the public
  summary pending the IA rework redirect.
- DEREM-8: List deploy-docs and docs-preview in the README's 'What
  does not run against this directory' section now that both are
  configured to skip .style.

Refs DOCS-180.
@nickvigilante nickvigilante force-pushed the vigilante/docs-180-build-the-docs-style-guide-scaffold-in-docsstyle-private-to branch from 14eca1f to c184080 Compare June 16, 2026 15:04
@nickvigilante nickvigilante enabled auto-merge (squash) June 16, 2026 15:05
Adds a private contributor-tooling directory at docs/.style/ that holds:
- README.md explaining the convention and the no-deploy guarantee
- style-guide.md as a scaffold for the canonical prose style guide
- styles/Coder/ as the home for custom Vale rules (filled by follow-ups)

Defense-in-depth tweaks to .github/workflows/deploy-docs.yaml exclude
docs/.style/** from the push trigger and from the surgical-reindex git
diff. coder.com/docs route discovery is already manifest-driven, so
nothing under docs/.style/ becomes a route or an Algolia record.

Also:
- .github/.linkspector.yml: skip external-link checks under docs/.style/
- AGENTS.md: point agents at the new style guide
- .claude/docs/DOCS_STYLE_GUIDE.md: cross-link to the canonical prose
  guide; this file remains the structure/research companion

The Vale configuration that consumes docs/.style/styles/ lands in a
follow-up PR (DOCS-40).

Closes DOCS-180.
Five small fixes from coder-agents-review on PR #25466:

- DEREM-2 (P2): The blockquote in .claude/docs/DOCS_STYLE_GUIDE.md
  pointed readers to a scaffold and away from the Writing Style section
  on the same file. Reframe to a transitional note: keep using the
  Writing Style section below until the prose guide is populated.
- DEREM-3 + DEREM-6 + DEREM-7: Apply the same transitional framing in
  the AGENTS.md bullet, replace the ephemeral 'new style guide' with
  'prose style guide', and drop the misleading 'repo-root' qualifier
  on .claude/docs/.
- DEREM-4: Add 'docs/.style/**' negation to .github/workflows/
  docs-preview.yaml's path filter, and have the first-doc selection
  skip .style/ when picking the preview target on mixed PRs. Folds
  DOCS-184 into this PR.
- DEREM-5: Add a Relationship section to docs/.style/style-guide.md
  that names docs/about/contributing/documentation.md as the public
  summary pending the IA rework redirect.
- DEREM-8: List deploy-docs and docs-preview in the README's 'What
  does not run against this directory' section now that both are
  configured to skip .style.

Refs DOCS-180.
Two prose-only edits on top of the bot's approval at review id
4320487709, both flagged as non-blocking P4s.

DEREM-10: the IA-rework redirect now references DOCS-186 explicitly,
matching the per-ticket convention used by the other 29 future-work
references in the new files.

DEREM-11: the "How to use this guide" section opens with a one-sentence
scaffold acknowledgment that points direct visitors at the public
summary at docs/about/contributing/documentation.md, so a contributor
who lands here without first reading AGENTS.md does not hit empty
sections and bounce.

Verification: make fmt/markdown, make lint/markdown, make lint/emdash
all clean.
Strip Linear ticket links, the Linear project link, and the Linear
references from the prose so the PR reviews cleanly for people who
don't have access to (or don't care about) Linear. Mention follow-up
PRs in plain language where the previous version pointed at specific
tickets.

  - docs/.style/README.md: drop the DOCS-40 link from the Vale
    bullet; rewrite the 'Editing the style guide' section without
    the project link.
  - docs/.style/style-guide.md: rewrite the status note and 'How to
    use this guide' lead-in without 'Linear tickets' wording; drop
    ticket links from every 'Planned coverage' bullet (Voice and
    tone, Word choice, Capitalization and punctuation, Formatting);
    drop DOCS-40/-178/-186 links from Vale enforcement, Editor
    setup, and the public-summary section; change the third-party
    references table separator from ' - ' to a comma to avoid the
    repo's ' -- '-style punctuation lint pattern.
  - docs/.style/styles/Coder/README.md: replace the ticket roadmap
    table with a bullet list of planned rules; drop the
    DOCS-179-tracked parity CI check reference.

No behavior change; this is documentation-only and the structural
content (sections, headings, planned scope) is preserved.
@nickvigilante nickvigilante force-pushed the vigilante/docs-180-build-the-docs-style-guide-scaffold-in-docsstyle-private-to branch from c184080 to 3e26bed Compare June 17, 2026 12:52
@nickvigilante nickvigilante merged commit 182bdc8 into main Jun 17, 2026
34 checks passed
@nickvigilante nickvigilante deleted the vigilante/docs-180-build-the-docs-style-guide-scaffold-in-docsstyle-private-to branch June 17, 2026 13:19
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 17, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants