docs: remove all em dashes and fix remaining positioning leads#412
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughDocumentation-only PR standardizing punctuation, list formatting, suppression guidance, telemetry/privacy wording, installer/plugin behavior, and example message punctuation across English, localized docs, public corpus, and shim READMEs. ChangesDocumentation Restructuring and Clarity Improvements
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests (beta)
|
Deploying archgate-cli with
|
| Latest commit: |
73331c0
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://eabd9320.archgate-cli.pages.dev |
| Branch Preview URL: | https://docs-style-guide-em-dash-swe.archgate-cli.pages.dev |
…ng leads Full sweep of en, pt-BR, and nb docs content, astro config, llms.txt, README, ROADMAP, CONTRIBUTING, and ASSURANCE-CASE. Em dashes replaced with periods, commas, colons, or parentheses per writing-style-guide-en.md. Also fixes llms.txt positioning: header leads with "enterprise-grade linting and guardrails", "AI-aware governance" renamed to "AI-aware guardrails", domains description aligned to "scope and enforce rules", and ROADMAP vision sentence tightened. Shim READMEs synced from updated root README. Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
1cafe67 to
d1e1248
Compare
There was a problem hiding this comment.
Actionable comments posted: 13
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
README.md (1)
67-76: 🧹 Nitpick | 🔵 TrivialREADME plugins section: no navigation/discoverability break; optional SEO link improvement
The individual plugin guide pages still exist and are wired into the docs site navigation (docs/astro.config.mjs sidebar slugs) and linked from other docs entry points like docs/src/content/docs/index.mdx and getting-started pages—so removing the explicit plugin list/login/init examples from README.md shouldn’t orphan those guides.
Optional: README.md now only links directly to the Claude Code guide (“Get started with plugins” points to /guides/claude-code-plugin/). If you want the Cursor/VS Code/Copilot guides to be more discoverable from the README (SEO / quick scanning), add additional links or point to a central plugins/integrations landing page.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 67 - 76, Summary: The README "Plugins" section currently only links to the Claude Code guide and removes discoverability for other editor integrations; restore or centralize plugin links to improve navigation/SEO. Update the plugins paragraph (the block that currently says "Plugins are available for Claude Code and Cursor" and shows the archgate login/init example and the "Get started with plugins" CTA) to either (A) add explicit links for the other integration guides (e.g., Cursor, VS Code, Copilot) alongside the Claude Code link and keep the login/init snippet, or (B) replace the single Claude Code CTA with a single link to a central "Plugins / Integrations" landing page that aggregates all guides, and keep or remove the archgate login/init example as you prefer; ensure the visible anchor text matches existing guide slugs (e.g., "Get started with plugins" → /guides/claude-code-plugin/ or the central landing) so searches and sidebar navigation remain effective.docs/public/llms-full.txt (1)
5654-5663:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd the missing
node:pathimports in the pasted examples.These snippets use
basename,join, andrelativewithout importing them, so the examples do not compile as written. Please add the corresponding imports in each affected snippet.
docs/public/llms-full.txt#L5654-L5663: importbasename.docs/public/llms-full.txt#L6884-L6901: importjoin.docs/public/llms-full.txt#L7008-L7022: importrelative.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/public/llms-full.txt` around lines 5654 - 5663, Add missing node:path imports for the examples: in docs/public/llms-full.txt (5654-5663) add an import for basename (e.g., import { basename } from "node:path") so the "kebab-case-filenames" rule's check function can call basename; in docs/public/llms-full.txt (6884-6901) add an import for join (e.g., import { join } from "node:path") for the snippet that uses join; and in docs/public/llms-full.txt (7008-7022) add an import for relative (e.g., import { relative } from "node:path") for the snippet that calls relative. Ensure each import is placed with the other imports in the same snippet so the examples compile.docs/src/content/docs/pt-br/reference/rule-api.mdx (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix Portuguese gender agreement: "um flag" → "uma flag".
Per LanguageTool, the word "flag" (borrowed from English) is treated as feminine in Portuguese; the article should be "uma" not "um".
✏️ Proposed fix
- `repo_is_git` e um flag `repo_public`. Para repositórios confir... + `repo_is_git` e uma flag `repo_public`. Para repositórios confir...🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/src/content/docs/pt-br/reference/rule-api.mdx` at line 26, Change the incorrect masculine article "um flag" to the feminine form "uma flag" in the sentence describing rule file exports (the sentence containing the phrase "um flag"); keep the rest of the sentence and the inline code (`rules`, `satisfies RuleSet`) intact.Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/public/llms-full.txt`:
- Around line 1-3: CI indicates the generated corpus is stale; rerun the
generator command (bun run docs/scripts/generate-llms-full.ts) to regenerate
llms-full.txt and commit the updated file so docs/public/llms-full.txt matches
the generator output.
- Around line 5787-5790: The code uses
ctx.glob("node_modules/{*,@*/*}/package.json") which only finds top-level
packages and therefore misses transitive (nested) dependencies; change the scan
in the pkgFiles assignment to use a recursive pattern or a directory walk that
finds all package.json files under node_modules (for example use a recursive
glob like "**/node_modules/**/package.json" or implement a recursive filesystem
walk) so that pkgFiles truly contains package.json for both direct and
transitive packages; update the code path that consumes pkgFiles (pkgFiles
variable / any downstream loop) accordingly to handle the results from the
recursive search.
In `@docs/src/content/docs/examples/no-unapproved-deps.mdx`:
- Line 52: The docs example uses "No package.json, nothing to check" but the
ARCH-006 rule comment currently reads "return; // No package.json — nothing to
check"; update the comment in ARCH-006-dependency-policy.rules.ts to replace the
em-dash with a comma so it reads "return; // No package.json, nothing to check"
(no change needed in the docs snippet).
In `@docs/src/content/docs/examples/wrapper-enforcement.mdx`:
- Line 55: Update the example message in
docs/src/content/docs/examples/wrapper-enforcement.mdx so it matches the current
rule text: change the string that reads "Do not access process.platform
directly. Use isWindows(), isMacOS(), or isLinux() from src/helpers/platform.ts
instead." to include getPlatformInfo() as the rule does, e.g. "Do not access
process.platform directly. Use isWindows(), isMacOS(), isLinux(), or
getPlatformInfo() from src/helpers/platform.ts instead." Ensure the phrase and
listed helper names (isWindows, isMacOS, isLinux, getPlatformInfo) exactly match
the rule's message so the docs and .archgate rule remain consistent.
In `@docs/src/content/docs/pt-br/examples/no-banned-api.mdx`:
- Line 10: Insert a comma before the disjunctive conjunction "mas" in the
sentence that currently reads "Algumas APIs funcionam corretamente em uma
plataforma mas falham em outra." so it becomes "Algumas APIs funcionam
corretamente em uma plataforma, mas falham em outra."; update the surrounding
sentence that mentions the Bun shell API (`Bun.$`) accordingly to preserve
spacing and punctuation.
In `@docs/src/content/docs/pt-br/examples/no-banned-imports.mdx`:
- Line 10: Update the sentence "Equipes frequentemente banem bibliotecas pesadas
ou depreciadas em favor de alternativas mais leves ou nativas." by inserting a
comma before the final disjunctive to read "...alternativas mais leves, ou
nativas." so it conforms to the requested AP/Oxford-style consistency.
In `@docs/src/content/docs/pt-br/examples/no-todo-comments.mdx`:
- Line 44: Update the Portuguese violation message template to use parentheses
instead of a hyphen: replace the template literal message
`${match.content.trim()} - resolve before merging` with `${match.content.trim()}
(resolve before merging)` so it matches the English version and keeps locales
consistent.
In `@docs/src/content/docs/pt-br/examples/page-component-constraints.mdx`:
- Line 6: Update the sentence in page-component-constraints to remove the
redundant phrase "em tamanho": replace "Garanta que componentes de página sejam
wrappers finos de layout, pequenos em tamanho e livres de lógica de busca de
dados." with "Garanta que componentes de página sejam wrappers finos de layout,
pequenos e livres de lógica de busca de dados." to simplify the wording.
In `@docs/src/content/docs/pt-br/examples/wrapper-enforcement.mdx`:
- Around line 54-56: Replace the English violation message string currently
assigned to the "message" field (the one referencing process.platform and helper
functions) with the provided Portuguese translation: "Não acesse
process.platform diretamente. Use isWindows(), isMacOS() ou isLinux() de
src/helpers/platform.ts em vez disso." — keep the same punctuation and quotation
style and leave the rest of the rule object (including the file: m.file
reference and helper function names isWindows(), isMacOS(), isLinux())
unchanged.
In `@docs/src/content/docs/pt-br/reference/telemetry.mdx`:
- Line 43: Replace the pleonastic phrase in the sentence that currently reads "O
evento `project_initialized` é suprimido junto com todos os outros:" by removing
"junto com" and rephrasing for clarity — e.g. change it to "O evento
`project_initialized` é suprimido, assim como todos os outros:" or "O evento
`project_initialized` é suprimido juntamente com os demais:" so the sentence is
not redundant; update the text where that exact string appears.
- Around line 125-127: The three linked helper files are currently run together
on one line; split them into a proper bullet list so each entry is its own line.
In docs/src/content/docs/pt-br/reference/telemetry.mdx replace the single
combined line with three separate list items referencing
src/helpers/telemetry.ts (rastreamento de eventos PostHog),
src/helpers/sentry.ts (captura de erros Sentry), and
src/helpers/telemetry-config.ts (configuração e lógica de desativação) so each
link appears on its own line as a distinct bullet.
- Line 65: Fix the double closing punctuation and clarify the email wording in
the sentence that reads "Nenhuma informação pessoal: nenhum nome de usuário,
email ou endereço IP. Owners e nomes de repositórios..." by removing the
duplicated ")" after the cross-reference and replacing "email" with the clearer
phrase "endereço de email" (or keep "email" but ensure agreement with "um" if
you choose to keep shorter form); ensure punctuation around the cross-reference
is a single closing parenthesis and the sentence reads smoothly without double
punctuation.
- Around line 14-21: No item que lista provedores de CI (o trecho "incluindo
provedor: GitHub Actions / GitLab CI / CircleCI / etc."), adicione a vírgula
antes de "etc." para ficar "CircleCI, etc."; corrija a pontuação duplicada no
trecho que contém "truncado em 16 caracteres hex, não reversível)" removendo o
parêntese extra e ajustando a sequência para "truncado em 16 caracteres hex, não
reversível, e o nome do branch padrão" (ou similar) para evitar "))"; e corrija
a concordância de gênero no trecho que diz "um flag" para "uma flag" (encontrado
na frase que descreve "apenas a presença da flag, nunca valores").
---
Outside diff comments:
In `@docs/public/llms-full.txt`:
- Around line 5654-5663: Add missing node:path imports for the examples: in
docs/public/llms-full.txt (5654-5663) add an import for basename (e.g., import {
basename } from "node:path") so the "kebab-case-filenames" rule's check function
can call basename; in docs/public/llms-full.txt (6884-6901) add an import for
join (e.g., import { join } from "node:path") for the snippet that uses join;
and in docs/public/llms-full.txt (7008-7022) add an import for relative (e.g.,
import { relative } from "node:path") for the snippet that calls relative.
Ensure each import is placed with the other imports in the same snippet so the
examples compile.
In `@docs/src/content/docs/pt-br/reference/rule-api.mdx`:
- Line 26: Change the incorrect masculine article "um flag" to the feminine form
"uma flag" in the sentence describing rule file exports (the sentence containing
the phrase "um flag"); keep the rest of the sentence and the inline code
(`rules`, `satisfies RuleSet`) intact.
In `@README.md`:
- Around line 67-76: Summary: The README "Plugins" section currently only links
to the Claude Code guide and removes discoverability for other editor
integrations; restore or centralize plugin links to improve navigation/SEO.
Update the plugins paragraph (the block that currently says "Plugins are
available for Claude Code and Cursor" and shows the archgate login/init example
and the "Get started with plugins" CTA) to either (A) add explicit links for the
other integration guides (e.g., Cursor, VS Code, Copilot) alongside the Claude
Code link and keep the login/init snippet, or (B) replace the single Claude Code
CTA with a single link to a central "Plugins / Integrations" landing page that
aggregates all guides, and keep or remove the archgate login/init example as you
prefer; ensure the visible anchor text matches existing guide slugs (e.g., "Get
started with plugins" → /guides/claude-code-plugin/ or the central landing) so
searches and sidebar navigation remain effective.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: c9857ff7-259f-40e2-a1ce-2a00621c8fb6
📒 Files selected for processing (74)
ASSURANCE-CASE.mdCONTRIBUTING.mdREADME.mdROADMAP.mddocs/astro.config.mjsdocs/public/llms-full.txtdocs/public/llms.txtdocs/src/content/docs/concepts/domains.mdxdocs/src/content/docs/concepts/rules.mdxdocs/src/content/docs/examples/clean-architecture-layers.mdxdocs/src/content/docs/examples/license-compatibility.mdxdocs/src/content/docs/examples/monorepo-task-runner.mdxdocs/src/content/docs/examples/no-banned-api.mdxdocs/src/content/docs/examples/no-banned-imports.mdxdocs/src/content/docs/examples/no-barrel-files.mdxdocs/src/content/docs/examples/no-todo-comments.mdxdocs/src/content/docs/examples/no-unapproved-deps.mdxdocs/src/content/docs/examples/page-component-constraints.mdxdocs/src/content/docs/examples/spdx-license-headers.mdxdocs/src/content/docs/examples/wrapper-enforcement.mdxdocs/src/content/docs/getting-started/installation.mdxdocs/src/content/docs/getting-started/quick-start.mdxdocs/src/content/docs/guides/ci-integration.mdxdocs/src/content/docs/guides/importing-adrs.mdxdocs/src/content/docs/guides/opencode-integration.mdxdocs/src/content/docs/guides/writing-rules.mdxdocs/src/content/docs/index.mdxdocs/src/content/docs/nb/concepts/rules.mdxdocs/src/content/docs/nb/examples/clean-architecture-layers.mdxdocs/src/content/docs/nb/examples/license-compatibility.mdxdocs/src/content/docs/nb/examples/monorepo-task-runner.mdxdocs/src/content/docs/nb/examples/no-banned-api.mdxdocs/src/content/docs/nb/examples/no-todo-comments.mdxdocs/src/content/docs/nb/examples/no-unapproved-deps.mdxdocs/src/content/docs/nb/examples/wrapper-enforcement.mdxdocs/src/content/docs/nb/guides/writing-rules.mdxdocs/src/content/docs/nb/index.mdxdocs/src/content/docs/nb/reference/rule-api.mdxdocs/src/content/docs/pt-br/concepts/domains.mdxdocs/src/content/docs/pt-br/concepts/rules.mdxdocs/src/content/docs/pt-br/examples/clean-architecture-layers.mdxdocs/src/content/docs/pt-br/examples/license-compatibility.mdxdocs/src/content/docs/pt-br/examples/monorepo-task-runner.mdxdocs/src/content/docs/pt-br/examples/no-banned-api.mdxdocs/src/content/docs/pt-br/examples/no-banned-imports.mdxdocs/src/content/docs/pt-br/examples/no-barrel-files.mdxdocs/src/content/docs/pt-br/examples/no-todo-comments.mdxdocs/src/content/docs/pt-br/examples/no-unapproved-deps.mdxdocs/src/content/docs/pt-br/examples/page-component-constraints.mdxdocs/src/content/docs/pt-br/examples/spdx-license-headers.mdxdocs/src/content/docs/pt-br/examples/wrapper-enforcement.mdxdocs/src/content/docs/pt-br/getting-started/installation.mdxdocs/src/content/docs/pt-br/getting-started/quick-start.mdxdocs/src/content/docs/pt-br/guides/ci-integration.mdxdocs/src/content/docs/pt-br/guides/importing-adrs.mdxdocs/src/content/docs/pt-br/guides/writing-rules.mdxdocs/src/content/docs/pt-br/index.mdxdocs/src/content/docs/pt-br/reference/adr-schema.mdxdocs/src/content/docs/pt-br/reference/cli/adr.mdxdocs/src/content/docs/pt-br/reference/rule-api.mdxdocs/src/content/docs/pt-br/reference/telemetry.mdxdocs/src/content/docs/pt-br/studies/sentry-pr-review-friction-and-adr-pack.mdxdocs/src/content/docs/reference/adr-schema.mdxdocs/src/content/docs/reference/cli/adr.mdxdocs/src/content/docs/reference/cli/init.mdxdocs/src/content/docs/reference/cli/plugin.mdxdocs/src/content/docs/reference/privacy-policy.mdxdocs/src/content/docs/reference/rule-api.mdxdocs/src/content/docs/reference/telemetry.mdxshims/go/README.mdshims/maven/README.mdshims/nuget/Archgate.Tool/README.mdshims/pypi/README.mdshims/rubygem/README.md
There was a problem hiding this comment.
Actionable comments posted: 4
♻️ Duplicate comments (4)
docs/src/content/docs/pt-br/examples/no-banned-imports.mdx (1)
10-10:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUnresolved: Missing comma before final disjunctive "ou" (previously flagged).
This issue was flagged in a past review comment but remains unfixed. Portuguese grammar recommends a comma before the final disjunctive "ou" for clarity in enumerations of alternatives.
Change:
Equipes frequentemente banem bibliotecas pesadas ou depreciadas em favor de alternativas mais leves ou nativas.to:
Equipes frequentemente banem bibliotecas pesadas ou depreciadas em favor de alternativas mais leves, ou nativas.✏️ Proposed fix
-Equipes frequentemente banem bibliotecas pesadas ou depreciadas em favor de alternativas mais leves ou nativas. Esta regra usa uma configuracao orientada a dados: um array de objetos especificando o padrao regex, o nome da biblioteca e a alternativa recomendada. +Equipes frequentemente banem bibliotecas pesadas ou depreciadas em favor de alternativas mais leves, ou nativas. Esta regra usa uma configuracao orientada a dados: um array de objetos especificando o padrao regex, o nome da biblioteca e a alternativa recomendada.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/src/content/docs/pt-br/examples/no-banned-imports.mdx` at line 10, Update the sentence that reads "Equipes frequentemente banem bibliotecas pesadas ou depreciadas em favor de alternativas mais leves ou nativas." by inserting a comma before the final disjunctive: change it to "Equipes frequentemente banem bibliotecas pesadas ou depreciadas em favor de alternativas mais leves, ou nativas." to satisfy Portuguese punctuation rules.docs/src/content/docs/pt-br/examples/no-banned-api.mdx (1)
10-10:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUnresolved: Missing comma before disjunctive "mas" (previously flagged).
This issue was flagged in a past review comment but remains unfixed. Portuguese grammar requires a comma before the disjunctive conjunction "mas" in this type of compound sentence.
Change:
Algumas APIs funcionam corretamente em uma plataforma mas falham em outra.to:
Algumas APIs funcionam corretamente em uma plataforma, mas falham em outra.✏️ Proposed fix
-Algumas APIs funcionam corretamente em uma plataforma mas falham em outra. Por exemplo, a API shell do Bun (`Bun.$`) trava no Windows devido a deadlocks de pipe. +Algumas APIs funcionam corretamente em uma plataforma, mas falham em outra. Por exemplo, a API shell do Bun (`Bun.$`) trava no Windows devido a deadlocks de pipe.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/src/content/docs/pt-br/examples/no-banned-api.mdx` at line 10, The sentence "Algumas APIs funcionam corretamente em uma plataforma mas falham em outra." is missing a comma before the disjunctive "mas"; update that sentence to insert the comma so it reads "Algumas APIs funcionam corretamente em uma plataforma, mas falham em outra." ensuring the rest of the paragraph remains unchanged.docs/src/content/docs/pt-br/reference/telemetry.mdx (1)
43-43:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winSimplify pleonastic phrase on line 43.
"Suprimido junto com todos os outros" contains redundancy. Prior feedback suggested simplification like "suprimido quando você desativa a telemetria" or "suprimido juntamente com os demais" for clarity.
✏️ Proposed fix
- O evento `project_initialized` é suprimido junto com todos os outros: + O evento `project_initialized` é suprimido quando você desativa a telemetria:🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/src/content/docs/pt-br/reference/telemetry.mdx` at line 43, The phrase "suprimido junto com todos os outros" on line 43 is pleonastic; replace it with a simpler, clearer alternative such as "suprimido quando você desativa a telemetria" or "suprimido juntamente com os demais" so the sentence reads smoothly (keep the surrounding sentence "O evento `project_initialized` é ..." intact).docs/public/llms-full.txt (1)
1-3:⚠️ Potential issue | 🟠 Major | ⚡ Quick winRegenerate the generated artifact.
CI still reports
docs/public/llms-full.txtis out of date. Please rerunbun run docs/scripts/generate-llms-full.tsand commit the regenerated output.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/public/llms-full.txt` around lines 1 - 3, Regenerate the out-of-date artifact by running the documented generator and committing the result: execute "bun run docs/scripts/generate-llms-full.ts" (or run the script at docs/scripts/generate-llms-full.ts directly), verify docs/public/llms-full.txt is updated, and commit the regenerated file to the branch.Source: Pipeline failures
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/public/llms-full.txt`:
- Around line 5141-5142: Update the two bullets that overstate exclusions:
change the "**No personal information**" bullet to clarify that sensitive
personal data (passwords, secrets) and direct identifiers like emails/IPs are
not sent, but explicitly allow the one-time project_initialized event to include
repo_owner/repo_name for public repos; and change the "**No file content**"
bullet to state that ADRs, source code, and absolute file contents/paths are not
included while noting that crash reports/stack traces may contain relative file
paths in traces—modify the two lines that start with "**No personal
information**" and "**No file content**" accordingly to mirror actual payload
behavior.
In `@docs/src/content/docs/examples/no-unapproved-deps.mdx`:
- Line 52: The ARCH-006 rule comment uses an em-dash but the docs example uses a
comma; update the ARCH-006 rule comment text (the comment labelled "ARCH-006" in
ARCH-006-dependency-policy.rules.ts) to replace "No package.json — nothing to
check" with "No package.json, nothing to check" so the rule comment matches the
docs example.
In `@docs/src/content/docs/pt-br/reference/telemetry.mdx`:
- Line 20: Fix three punctuation/gender issues in the telemetry docs: on the
sentence containing "conforme [Anonimização de IP](`#anonimização-de-ip`))" remove
the extra closing parenthesis so it ends with a single ")" (or reword so only
one closing parenthesis appears), on the sentence containing "um flag
repo_public" change "um" to "uma" so it reads "uma flag repo_public", and remove
the extra closing parenthesis in both occurrences that end with
"...repositório)). Repositórios" so they end with a single ")" before the period
(i.e., "...repositório). Repositórios").
In `@docs/src/content/docs/reference/telemetry.mdx`:
- Line 26: The two mentions of which hosts are considered for public repo
detection are inconsistent: update the text so the platform list is identical in
the "init" event description and the "Repo identity" section; locate the "init"
event sentence referencing "GitHub / GitLab / Bitbucket" and the "Repo identity"
heading/sentence that lists "GitHub, GitLab, Bitbucket, or Azure DevOps" and
either add Azure DevOps to the init description or remove it from the Repo
identity sentence so both lines match exactly and reflect the true supported
hosts.
---
Duplicate comments:
In `@docs/public/llms-full.txt`:
- Around line 1-3: Regenerate the out-of-date artifact by running the documented
generator and committing the result: execute "bun run
docs/scripts/generate-llms-full.ts" (or run the script at
docs/scripts/generate-llms-full.ts directly), verify docs/public/llms-full.txt
is updated, and commit the regenerated file to the branch.
In `@docs/src/content/docs/pt-br/examples/no-banned-api.mdx`:
- Line 10: The sentence "Algumas APIs funcionam corretamente em uma plataforma
mas falham em outra." is missing a comma before the disjunctive "mas"; update
that sentence to insert the comma so it reads "Algumas APIs funcionam
corretamente em uma plataforma, mas falham em outra." ensuring the rest of the
paragraph remains unchanged.
In `@docs/src/content/docs/pt-br/examples/no-banned-imports.mdx`:
- Line 10: Update the sentence that reads "Equipes frequentemente banem
bibliotecas pesadas ou depreciadas em favor de alternativas mais leves ou
nativas." by inserting a comma before the final disjunctive: change it to
"Equipes frequentemente banem bibliotecas pesadas ou depreciadas em favor de
alternativas mais leves, ou nativas." to satisfy Portuguese punctuation rules.
In `@docs/src/content/docs/pt-br/reference/telemetry.mdx`:
- Line 43: The phrase "suprimido junto com todos os outros" on line 43 is
pleonastic; replace it with a simpler, clearer alternative such as "suprimido
quando você desativa a telemetria" or "suprimido juntamente com os demais" so
the sentence reads smoothly (keep the surrounding sentence "O evento
`project_initialized` é ..." intact).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 8ee10723-55c4-4a1c-8053-5edf8a48d65f
📒 Files selected for processing (74)
ASSURANCE-CASE.mdCONTRIBUTING.mdREADME.mdROADMAP.mddocs/astro.config.mjsdocs/public/llms-full.txtdocs/public/llms.txtdocs/src/content/docs/concepts/domains.mdxdocs/src/content/docs/concepts/rules.mdxdocs/src/content/docs/examples/clean-architecture-layers.mdxdocs/src/content/docs/examples/license-compatibility.mdxdocs/src/content/docs/examples/monorepo-task-runner.mdxdocs/src/content/docs/examples/no-banned-api.mdxdocs/src/content/docs/examples/no-banned-imports.mdxdocs/src/content/docs/examples/no-barrel-files.mdxdocs/src/content/docs/examples/no-todo-comments.mdxdocs/src/content/docs/examples/no-unapproved-deps.mdxdocs/src/content/docs/examples/page-component-constraints.mdxdocs/src/content/docs/examples/spdx-license-headers.mdxdocs/src/content/docs/examples/wrapper-enforcement.mdxdocs/src/content/docs/getting-started/installation.mdxdocs/src/content/docs/getting-started/quick-start.mdxdocs/src/content/docs/guides/ci-integration.mdxdocs/src/content/docs/guides/importing-adrs.mdxdocs/src/content/docs/guides/opencode-integration.mdxdocs/src/content/docs/guides/writing-rules.mdxdocs/src/content/docs/index.mdxdocs/src/content/docs/nb/concepts/rules.mdxdocs/src/content/docs/nb/examples/clean-architecture-layers.mdxdocs/src/content/docs/nb/examples/license-compatibility.mdxdocs/src/content/docs/nb/examples/monorepo-task-runner.mdxdocs/src/content/docs/nb/examples/no-banned-api.mdxdocs/src/content/docs/nb/examples/no-todo-comments.mdxdocs/src/content/docs/nb/examples/no-unapproved-deps.mdxdocs/src/content/docs/nb/examples/wrapper-enforcement.mdxdocs/src/content/docs/nb/guides/writing-rules.mdxdocs/src/content/docs/nb/index.mdxdocs/src/content/docs/nb/reference/rule-api.mdxdocs/src/content/docs/pt-br/concepts/domains.mdxdocs/src/content/docs/pt-br/concepts/rules.mdxdocs/src/content/docs/pt-br/examples/clean-architecture-layers.mdxdocs/src/content/docs/pt-br/examples/license-compatibility.mdxdocs/src/content/docs/pt-br/examples/monorepo-task-runner.mdxdocs/src/content/docs/pt-br/examples/no-banned-api.mdxdocs/src/content/docs/pt-br/examples/no-banned-imports.mdxdocs/src/content/docs/pt-br/examples/no-barrel-files.mdxdocs/src/content/docs/pt-br/examples/no-todo-comments.mdxdocs/src/content/docs/pt-br/examples/no-unapproved-deps.mdxdocs/src/content/docs/pt-br/examples/page-component-constraints.mdxdocs/src/content/docs/pt-br/examples/spdx-license-headers.mdxdocs/src/content/docs/pt-br/examples/wrapper-enforcement.mdxdocs/src/content/docs/pt-br/getting-started/installation.mdxdocs/src/content/docs/pt-br/getting-started/quick-start.mdxdocs/src/content/docs/pt-br/guides/ci-integration.mdxdocs/src/content/docs/pt-br/guides/importing-adrs.mdxdocs/src/content/docs/pt-br/guides/writing-rules.mdxdocs/src/content/docs/pt-br/index.mdxdocs/src/content/docs/pt-br/reference/adr-schema.mdxdocs/src/content/docs/pt-br/reference/cli/adr.mdxdocs/src/content/docs/pt-br/reference/rule-api.mdxdocs/src/content/docs/pt-br/reference/telemetry.mdxdocs/src/content/docs/pt-br/studies/sentry-pr-review-friction-and-adr-pack.mdxdocs/src/content/docs/reference/adr-schema.mdxdocs/src/content/docs/reference/cli/adr.mdxdocs/src/content/docs/reference/cli/init.mdxdocs/src/content/docs/reference/cli/plugin.mdxdocs/src/content/docs/reference/privacy-policy.mdxdocs/src/content/docs/reference/rule-api.mdxdocs/src/content/docs/reference/telemetry.mdxshims/go/README.mdshims/maven/README.mdshims/nuget/Archgate.Tool/README.mdshims/pypi/README.mdshims/rubygem/README.md
- Fix em dash in ARCH-006 rule comment (no-unapproved-deps) - Fix em dash in ARCH-009 rule message (no-direct-process-platform) - Align wrapper-enforcement example with actual rule message (add getPlatformInfo) - pt-br: comma before "mas", parentheses in no-todo-comments, remove pleonasm - pt-br: translate wrapper-enforcement violation message to Portuguese - pt-br: fix telemetry gender agreement, comma before etc, remove pleonasm - Sync 20 nb/pt-br locale files to match EN sentence restructuring - Regenerate llms-full.txt Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (4)
docs/public/llms-full.txt (3)
5787-5790:⚠️ Potential issue | 🟠 Major | ⚡ Quick winUse a recursive node_modules scan here.
node_modules/{*,@*/*}/package.jsononly reaches first-level packages, so this example still misses nested transitive dependencies even though the text says “direct AND transitive.” Switch to a recursive glob or directory walk, and update the later “Scan transitives” guidance to match.♻️ Proposed fix
- const pkgFiles = await ctx.glob("node_modules/{*,@*/*}/package.json"); + const pkgFiles = await ctx.glob("node_modules/**/package.json");🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/public/llms-full.txt` around lines 5787 - 5790, The glob used to collect packages only matches top-level modules; change the scan in the code that sets pkgFiles (the ctx.glob call) to use a recursive pattern or a directory-walk so nested/transitive packages are included (e.g., switch to a recursive glob like node_modules/**/package.json or implement a recursive walk in the helper used by ctx.glob), and update the later “Scan transitives” guidance text so it accurately reflects that the example now scans nested node_modules rather than only first-level packages.
5141-5142:⚠️ Potential issue | 🟠 Major | ⚡ Quick winNarrow the file-content claim.
src/cli.ts-style relative paths can still appear in crash stack traces, so “no file paths” overstates the privacy guarantee. Reword this to exclude ADR/source contents and absolute paths, while allowing relative paths in error reports.🔒️ Proposed fix
- **No file content**: no ADR content, source code, or file paths + **No file content**: no ADR content, source code, or absolute file contents/paths; crash traces may still include relative file paths🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/public/llms-full.txt` around lines 5141 - 5142, Replace the current "No file content" bullet that broadly bans "file paths" with a narrower statement: say that ADR content and source code are never shared, absolute paths are not included, but clarify that relative paths (for example "src/cli.ts") may appear in crash stack traces and are therefore permitted in error reports; update the sentence text accordingly so it reads like a single concise bullet reflecting this narrower privacy guarantee.
1-3:⚠️ Potential issue | 🟠 Major | ⚡ Quick winRegenerate the generated corpus.
CI still reports this artifact as out of date, so the checked-in
llms-full.txtdoes not match generator output. Please rerunbun run docs/scripts/generate-llms-full.tsand commit the regenerated file.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/public/llms-full.txt` around lines 1 - 3, Regenerate the out-of-date corpus by running the generator script and committing the result: run "bun run docs/scripts/generate-llms-full.ts" to produce an updated llms-full.txt and replace the checked-in docs/public/llms-full.txt with the generated output, then stage and commit the regenerated file so CI no longer reports the artifact as out of date.Source: Pipeline failures
docs/src/content/docs/pt-br/reference/telemetry.mdx (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix remaining double-punctuation pattern.
The markdown cross-reference creates a
)).pattern (link-closing-paren + parenthetical-closing-paren + period) that LanguageTool flags as double punctuation. While technically valid, it's visually awkward. Restructure to avoid nested parentheses.✏️ Suggested fix
Restructure the cross-reference to avoid the nested-paren pattern:
-... nome do repositório (veja [Identidade do repositório](`#identidade-do-repositório`)). Repositórios privados +... nome do repositório. Veja [Identidade do repositório](`#identidade-do-repositório`) para detalhes. Repositórios privadosOr keep it inline with a simpler connector:
-... nome do repositório (veja [Identidade do repositório](`#identidade-do-repositório`)). Repositórios privados +... nome do repositório; consulte [Identidade do repositório](`#identidade-do-repositório`). Repositórios privados🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/src/content/docs/pt-br/reference/telemetry.mdx` at line 26, The sentence describing the `init` event produces a nested-parentheses pattern at the cross-reference; edit the sentence in docs/src/content/docs/pt-br/reference/telemetry.mdx to remove the nested `)).` by rephrasing the link to "Identidade do repositório" without inline parentheses—for example, end the clause with "veja Identidade do repositório." or "veja 'Identidade do repositório'."—so the sentence about project_initialized still mentions the repo bucket, `repo_is_git`, `repo_public` and the remote URL/owner/name for public repos but avoids nested punctuation.Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/src/content/docs/pt-br/reference/privacy-policy.mdx`:
- Around line 1-3: CI reports oxfmt formatting errors in the changed markdown
file; run oxfmt (without --check) on the file
docs/src/content/docs/pt-br/reference/privacy-policy.mdx to auto-fix the
formatting, stage and commit the updated file, and push the commit so CI can
re-run; no code changes beyond the automated oxfmt reformat are needed.
---
Duplicate comments:
In `@docs/public/llms-full.txt`:
- Around line 5787-5790: The glob used to collect packages only matches
top-level modules; change the scan in the code that sets pkgFiles (the ctx.glob
call) to use a recursive pattern or a directory-walk so nested/transitive
packages are included (e.g., switch to a recursive glob like
node_modules/**/package.json or implement a recursive walk in the helper used by
ctx.glob), and update the later “Scan transitives” guidance text so it
accurately reflects that the example now scans nested node_modules rather than
only first-level packages.
- Around line 5141-5142: Replace the current "No file content" bullet that
broadly bans "file paths" with a narrower statement: say that ADR content and
source code are never shared, absolute paths are not included, but clarify that
relative paths (for example "src/cli.ts") may appear in crash stack traces and
are therefore permitted in error reports; update the sentence text accordingly
so it reads like a single concise bullet reflecting this narrower privacy
guarantee.
- Around line 1-3: Regenerate the out-of-date corpus by running the generator
script and committing the result: run "bun run
docs/scripts/generate-llms-full.ts" to produce an updated llms-full.txt and
replace the checked-in docs/public/llms-full.txt with the generated output, then
stage and commit the regenerated file so CI no longer reports the artifact as
out of date.
In `@docs/src/content/docs/pt-br/reference/telemetry.mdx`:
- Line 26: The sentence describing the `init` event produces a
nested-parentheses pattern at the cross-reference; edit the sentence in
docs/src/content/docs/pt-br/reference/telemetry.mdx to remove the nested `)).`
by rephrasing the link to "Identidade do repositório" without inline
parentheses—for example, end the clause with "veja Identidade do repositório."
or "veja 'Identidade do repositório'."—so the sentence about project_initialized
still mentions the repo bucket, `repo_is_git`, `repo_public` and the remote
URL/owner/name for public repos but avoids nested punctuation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 093b0fa5-bb5a-48d5-bfa3-6f0f3f80c5c6
📒 Files selected for processing (31)
.archgate/adrs/ARCH-006-dependency-policy.rules.ts.archgate/adrs/ARCH-009-platform-detection-helper.rules.tsdocs/public/llms-full.txtdocs/src/content/docs/examples/wrapper-enforcement.mdxdocs/src/content/docs/nb/concepts/domains.mdxdocs/src/content/docs/nb/examples/no-banned-imports.mdxdocs/src/content/docs/nb/examples/no-barrel-files.mdxdocs/src/content/docs/nb/examples/no-todo-comments.mdxdocs/src/content/docs/nb/examples/page-component-constraints.mdxdocs/src/content/docs/nb/examples/spdx-license-headers.mdxdocs/src/content/docs/nb/examples/wrapper-enforcement.mdxdocs/src/content/docs/nb/getting-started/installation.mdxdocs/src/content/docs/nb/getting-started/quick-start.mdxdocs/src/content/docs/nb/guides/ci-integration.mdxdocs/src/content/docs/nb/guides/importing-adrs.mdxdocs/src/content/docs/nb/guides/opencode-integration.mdxdocs/src/content/docs/nb/reference/adr-schema.mdxdocs/src/content/docs/nb/reference/cli/adr.mdxdocs/src/content/docs/nb/reference/cli/init.mdxdocs/src/content/docs/nb/reference/cli/plugin.mdxdocs/src/content/docs/nb/reference/privacy-policy.mdxdocs/src/content/docs/nb/reference/telemetry.mdxdocs/src/content/docs/pt-br/examples/no-banned-api.mdxdocs/src/content/docs/pt-br/examples/no-todo-comments.mdxdocs/src/content/docs/pt-br/examples/page-component-constraints.mdxdocs/src/content/docs/pt-br/examples/wrapper-enforcement.mdxdocs/src/content/docs/pt-br/guides/opencode-integration.mdxdocs/src/content/docs/pt-br/reference/cli/init.mdxdocs/src/content/docs/pt-br/reference/cli/plugin.mdxdocs/src/content/docs/pt-br/reference/privacy-policy.mdxdocs/src/content/docs/pt-br/reference/telemetry.mdx
- Tighten telemetry privacy bullets: "no usernames" overstated (public repos send repo_owner), "no file paths" overstated (Sentry stack traces may include relative paths) - Fix platform list inconsistency: add Azure DevOps to init event description (line 26) matching the Repo Identity section (line 35) - Fix double-paren patterns in pt-br telemetry (restructured cross-refs to use semicolons instead of nested parentheses) - Mirror all three fixes in pt-br and nb telemetry - Fix oxfmt formatting on pt-br/reference/privacy-policy.mdx - Regenerate llms-full.txt Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
Code Coverage
Full HTML report available in workflow artifacts. Per-directory breakdown
|
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
docs/public/llms-full.txt (2)
5787-5828:⚠️ Potential issue | 🟠 Major | ⚡ Quick winMake the dependency scan actually recursive.
node_modules/{*,@*/*}/package.jsononly reaches first-level packages, so this example does not really scan transitive dependencies even though the prose says it does. The customization note is also stale: it still referencesallDeps, which is no longer used.♻️ Proposed fix
- const pkgFiles = await ctx.glob("node_modules/{*,@*/*}/package.json"); + const pkgFiles = await ctx.glob("node_modules/**/package.json");🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/public/llms-full.txt` around lines 5787 - 5828, The glob used to collect package.json files (currently assigned to pkgFiles via ctx.glob("node_modules/{*,@*/*}/package.json")) only finds top-level packages; change it to a recursive pattern such as ctx.glob("node_modules/**/package.json") so depResults (the Promise.all over pkgFiles) truly scans transitive deps, and keep the existing try/catch and reporting logic (the loop that checks result.license and calls ctx.report.violation) unchanged. Also update the surrounding prose/customization note to remove the stale reference to allDeps and to accurately state that the rule scans transitive packages when using the recursive glob.
1-3:⚠️ Potential issue | 🟠 Major | ⚡ Quick winRegenerate the generated corpus.
CI is still reporting this checked-in artifact as out of date, so
docs/public/llms-full.txtno longer matchesbun run docs/scripts/generate-llms-full.ts. Please regenerate and commit the output.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/public/llms-full.txt` around lines 1 - 3, CI reports the checked-in generated corpus is out of date; run the generation script (bun run docs/scripts/generate-llms-full.ts) to regenerate the LLMS corpus and commit the updated output so the checked-in artifact matches the generator output.Source: Pipeline failures
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/src/content/docs/reference/telemetry.mdx`:
- Line 65: The current sentence makes an absolute claim ("No personal
information") then contradicts it by allowing repo_owner/repo_name in the
project_initialized event; update the wording to remove the absolute claim and
clearly scope what is and isn't collected: replace the sentence that starts with
"No personal information" with a non-absolute statement that lists examples not
collected (e.g., emails, passwords, secrets, IP addresses), and then explicitly
state that the one-time project_initialized event may include repo_owner and
repo_name only for repositories that the host has confirmed are public (see the
"Repo identity" section), while private and self-hosted repos never have
identity shared. Ensure the new text mentions the project_initialized event and
the repo_owner/repo_name fields so readers can find the related details.
---
Duplicate comments:
In `@docs/public/llms-full.txt`:
- Around line 5787-5828: The glob used to collect package.json files (currently
assigned to pkgFiles via ctx.glob("node_modules/{*,@*/*}/package.json")) only
finds top-level packages; change it to a recursive pattern such as
ctx.glob("node_modules/**/package.json") so depResults (the Promise.all over
pkgFiles) truly scans transitive deps, and keep the existing try/catch and
reporting logic (the loop that checks result.license and calls
ctx.report.violation) unchanged. Also update the surrounding prose/customization
note to remove the stale reference to allDeps and to accurately state that the
rule scans transitive packages when using the recursive glob.
- Around line 1-3: CI reports the checked-in generated corpus is out of date;
run the generation script (bun run docs/scripts/generate-llms-full.ts) to
regenerate the LLMS corpus and commit the updated output so the checked-in
artifact matches the generator output.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 088fcf88-a95b-44f5-bf87-ba15cbc2994c
📒 Files selected for processing (5)
docs/public/llms-full.txtdocs/src/content/docs/nb/reference/telemetry.mdxdocs/src/content/docs/pt-br/reference/privacy-policy.mdxdocs/src/content/docs/pt-br/reference/telemetry.mdxdocs/src/content/docs/reference/telemetry.mdx
Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
|
All three remaining CodeRabbit comments addressed in 73331c0:
|
Summary
Full em-dash sweep across all public content per
writing-style-guide-en.md/writing-style-guide.md("Em dashes are banned. No exceptions."):archgate checkenforces parity)Also fixes remaining positioning inconsistencies in
docs/public/llms.txt:Test plan
archgate checkpasses (0 errors, 0 warnings)bun run buildsucceeds (169 pages, llms-full.txt regenerated)grep -r "—" docs/src/content *.mdreturns zero hits (excluding CHANGELOG.md)Summary by CodeRabbit