Skip to content

Commit 1cafe67

Browse files
committed
docs: remove all em dashes per style guide and fix llms.txt positioning 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.
1 parent 59c59bc commit 1cafe67

74 files changed

Lines changed: 431 additions & 431 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ASSURANCE-CASE.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ Archgate is a CLI tool that enforces Architecture Decision Records (ADRs) as exe
1919
Archgate does **not**:
2020

2121
- Modify source code or project files during checks
22-
- Store credentials on disk — authentication tokens are managed by the OS credential manager (macOS Keychain, Windows Credential Manager, Linux secret service)
23-
- Send telemetry or source code to external servers (telemetry is opt-in, anonymized, and contains only usage counts see [Telemetry docs](https://cli.archgate.dev/reference/telemetry/))
22+
- Store credentials on disk. Authentication tokens are managed by the OS credential manager (macOS Keychain, Windows Credential Manager, Linux secret service)
23+
- Send telemetry or source code to external servers (telemetry is opt-in, anonymized, and contains only usage counts; see [Telemetry docs](https://cli.archgate.dev/reference/telemetry/))
2424
- Require network access for core functionality (`archgate check` is fully offline)
2525

2626
### 1.2 Threat Categories
@@ -83,32 +83,32 @@ Archgate does **not**:
8383
└─────────────┘
8484
```
8585

86-
**Boundary 1 Rule Sandbox:** `.rules.ts` files are untrusted code. They execute within a restricted context that blocks dangerous APIs and scopes file access to the project root.
86+
**Boundary 1, Rule Sandbox:** `.rules.ts` files are untrusted code. They execute within a restricted context that blocks dangerous APIs and scopes file access to the project root.
8787

88-
**Boundary 2 CLI Process:** The CLI itself runs with the user's permissions. It reads project files and manages its own cache directory (`~/.archgate/`). Authentication tokens are delegated to the OS credential manager. It does not require elevated privileges.
88+
**Boundary 2, CLI Process:** The CLI itself runs with the user's permissions. It reads project files and manages its own cache directory (`~/.archgate/`). Authentication tokens are delegated to the OS credential manager. It does not require elevated privileges.
8989

90-
**Boundary 3 Network:** Network access is only used for binary downloads (install/upgrade), plugin installation (authenticated), and optional anonymized telemetry. No analytics services are contacted. Core functionality (`archgate check`) is fully offline.
90+
**Boundary 3, Network:** Network access is only used for binary downloads (install/upgrade), plugin installation (authenticated), and optional anonymized telemetry. No analytics services are contacted. Core functionality (`archgate check`) is fully offline.
9191

9292
## 3. Secure Design Principles Applied
9393

9494
### 3.1 Least Privilege
9595

96-
- **Rule sandbox is read-only.** The `RuleContext` API exposes `readFile`, `readJSON`, `grep`, `grepFiles`, and `glob` all read-only operations. Rules cannot write files, spawn processes, or access the network.
97-
- **CI jobs use minimal permissions.** The documented CI configuration requests only `contents: read` no secrets, deployment keys, or write permissions ([Security guide](https://cli.archgate.dev/guides/security/)).
98-
- **Credentials are delegated to the OS.** Authentication tokens are stored in the operating system's credential manager (macOS Keychain, Windows Credential Manager, Linux secret service) never written to disk as plain-text files.
96+
- **Rule sandbox is read-only.** The `RuleContext` API exposes `readFile`, `readJSON`, `grep`, `grepFiles`, and `glob`, all read-only operations. Rules cannot write files, spawn processes, or access the network.
97+
- **CI jobs use minimal permissions.** The documented CI configuration requests only `contents: read`, with no secrets, deployment keys, or write permissions ([Security guide](https://cli.archgate.dev/guides/security/)).
98+
- **Credentials are delegated to the OS.** Authentication tokens are stored in the operating system's credential manager (macOS Keychain, Windows Credential Manager, Linux secret service). They are never written to disk as plain-text files.
9999

100100
### 3.2 Defense in Depth
101101

102102
Two independent layers protect against malicious rules:
103103

104-
1. **Static analysis security scanner** Before any `.rules.ts` file is executed, the CLI parses its AST and rejects files containing dangerous patterns:
104+
1. **Static analysis security scanner.** Before any `.rules.ts` file is executed, the CLI parses its AST and rejects files containing dangerous patterns:
105105
- Imports of `node:fs`, `child_process`, `net`, `http`, `vm`, and other system modules
106106
- Bun-specific APIs: `Bun.spawn()`, `Bun.write()`, `Bun.file()`, `Bun.$`
107107
- Network access: `fetch()`
108108
- Code generation: `eval()`, `new Function()`
109109
- Obfuscation patterns: computed property access (`Bun[variable]`), `globalThis` assignment, dynamic `import()`
110110

111-
2. **Runtime sandbox** Even if a pattern bypasses the static scanner, the `RuleContext` API enforces path scoping (blocks `../`, absolute paths, and symlinks) and a 30-second timeout per rule.
111+
2. **Runtime sandbox.** Even if a pattern bypasses the static scanner, the `RuleContext` API enforces path scoping (blocks `../`, absolute paths, and symlinks) and a 30-second timeout per rule.
112112

113113
### 3.3 Input Validation
114114

@@ -124,7 +124,7 @@ Two independent layers protect against malicious rules:
124124

125125
### 3.5 Minimal Attack Surface
126126

127-
- **Minimal dependencies.** The project follows [ARCH-006 (Dependency Policy)](/.archgate/adrs/ARCH-006-dependency-policy.md): prefer Bun built-ins over third-party packages. All runtime dependencies are bundled into the compiled binary — the npm package has zero runtime `dependencies`.
127+
- **Minimal dependencies.** The project follows [ARCH-006 (Dependency Policy)](/.archgate/adrs/ARCH-006-dependency-policy.md): prefer Bun built-ins over third-party packages. All runtime dependencies are bundled into the compiled binary. The npm package has zero runtime `dependencies`.
128128
- **No daemon or server mode.** The CLI runs as a short-lived process. The MCP server uses stdio transport (no network listener).
129129
- **No shell execution.** The CLI never spawns shell commands. Git operations use `git ls-files` via Bun's process API with explicit arguments (no shell interpolation).
130130

@@ -152,7 +152,7 @@ Two independent layers protect against malicious rules:
152152

153153
| Risk | Countermeasure |
154154
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
155-
| Credential leakage | Authentication tokens are stored in the OS credential manager (macOS Keychain, Windows Credential Manager, Linux secret service) never written to disk as plain text. Tokens are never logged. Plugin install passes credentials via authenticated git URLs (not command-line arguments visible in `ps`). |
155+
| Credential leakage | Authentication tokens are stored in the OS credential manager (macOS Keychain, Windows Credential Manager, Linux secret service), never written to disk as plain text. Tokens are never logged. Plugin install passes credentials via authenticated git URLs (not command-line arguments visible in `ps`). |
156156
| Source code exposure | Rules are read-only. `archgate check` output contains only violation messages (file paths and line numbers), not file contents. |
157157
| Error messages | Error output uses `logError()` (ARCH-002) which writes structured messages to stderr. Stack traces are only shown with `--verbose`. |
158158

@@ -171,7 +171,7 @@ Two independent layers protect against malicious rules:
171171
- **CI pipeline** runs on every pull request: lint (Oxlint), typecheck (tsc --build), format check (Oxfmt), test suite (Bun test), ADR compliance check (`archgate check`), and build verification.
172172
- **OpenSSF Scorecard** runs weekly via GitHub Actions, publishing results to the GitHub Security tab.
173173
- **GitHub Security Advisories** are enabled for responsible vulnerability disclosure.
174-
- **Pinned dependencies** — all GitHub Actions use commit SHA pins, not mutable tags.
174+
- **Pinned dependencies.** All GitHub Actions use commit SHA pins, not mutable tags.
175175

176176
### 5.2 Manual Verification
177177

@@ -181,8 +181,8 @@ Two independent layers protect against malicious rules:
181181

182182
## 6. References
183183

184-
- [SECURITY.md](SECURITY.md) Vulnerability reporting policy
185-
- [Security Guide](https://cli.archgate.dev/guides/security/) Full trust model and CI best practices
186-
- [OpenSSF Scorecard](https://securityscorecards.dev/viewer/?uri=github.com/archgate/cli) Automated security analysis
187-
- [ARCH-006: Dependency Policy](/.archgate/adrs/ARCH-006-dependency-policy.md)Minimal dependency governance
188-
- [CII Best Practices Badge](https://www.bestpractices.dev/projects/9981) OpenSSF Best Practices compliance
184+
- [SECURITY.md](SECURITY.md): Vulnerability reporting policy
185+
- [Security Guide](https://cli.archgate.dev/guides/security/): Full trust model and CI best practices
186+
- [OpenSSF Scorecard](https://securityscorecards.dev/viewer/?uri=github.com/archgate/cli): Automated security analysis
187+
- [ARCH-006: Dependency Policy](/.archgate/adrs/ARCH-006-dependency-policy.md): Minimal dependency rules
188+
- [CII Best Practices Badge](https://www.bestpractices.dev/projects/9981): OpenSSF Best Practices compliance

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Thank you for your interest in contributing to Archgate CLI! We welcome all kind
66
77
## Architecture Decision Records (ADRs)
88

9-
Archgate dogfoods itself — the CLI is governed by its own ADRs in `.archgate/adrs/`. **Before writing any code, read the ADRs that apply to the area you're changing.**
9+
Archgate dogfoods itself. The CLI is governed by its own ADRs in `.archgate/adrs/`. **Before writing any code, read the ADRs that apply to the area you're changing.**
1010

1111
### Quick reference
1212

@@ -29,7 +29,7 @@ bun run src/cli.ts adr list
2929
bun run src/cli.ts adr show ARCH-001
3030
```
3131

32-
ADR compliance is enforced automatically `bun run validate` includes an ADR check step that verifies your changes against every rule. **Pull requests that violate an ADR will not pass CI.**
32+
ADR compliance is enforced automatically. `bun run validate` includes an ADR check step that verifies your changes against every rule. **Pull requests that violate an ADR will not pass CI.**
3333

3434
## Quick Start
3535

@@ -199,8 +199,8 @@ git rebase --signoff HEAD~N # where N is the number of commits to sign
199199

200200
## Guidelines
201201

202-
- **Read the ADRs first** all code changes must comply with the project's Architecture Decision Records
203-
- **Sign your commits** all commits must include a `Signed-off-by` line (see DCO section above)
202+
- **Read the ADRs first**: all code changes must comply with the project's Architecture Decision Records
203+
- **Sign your commits**: all commits must include a `Signed-off-by` line (see DCO section above)
204204
- Follow the existing code style and conventions
205205
- Write clear, descriptive commit messages using [Conventional Commits](https://www.conventionalcommits.org/)
206206
- Add tests for new functionality when applicable

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@
1313

1414
---
1515

16-
AI agents write code fast, but they don't know your rules. Archgate turns your team's decisions into executable checks a lint step for architecture, conventions, and AI output. Your agents read the rules before writing code, and `archgate check` blocks what slips through. In CI, in pre-commit hooks, and inside every major AI coding tool.
16+
AI agents write code fast, but they don't know your rules. Archgate turns your team's decisions into executable checks: a lint step for architecture, conventions, and AI output. Your agents read the rules before writing code, and `archgate check` blocks what slips through. In CI, in pre-commit hooks, and inside every major AI coding tool.
1717

1818
**Write an ADR once. Enforce it everywhere.**
1919

2020
## How it works
2121

2222
Archgate has two layers:
2323

24-
1. **ADRs as documents** markdown files with YAML frontmatter stored in `.archgate/adrs/`. Each ADR records a decision: what was decided, why, and what to do and not do.
25-
2. **ADRs as rules** each ADR can have a companion `.rules.ts` file that exports automated checks. Archgate runs these checks against your codebase and reports violations.
24+
1. **ADRs as documents**: markdown files with YAML frontmatter stored in `.archgate/adrs/`. Each ADR records a decision: what was decided, why, and what to do and not do.
25+
2. **ADRs as rules**: each ADR can have a companion `.rules.ts` file that exports automated checks. Archgate runs these checks against your codebase and reports violations.
2626

2727
```
2828
.archgate/
@@ -33,7 +33,7 @@ Archgate has two layers:
3333
└── ARCH-002-error-handling.rules.ts
3434
```
3535

36-
When a rule is violated, `archgate check` reports the file, line, and which ADR was broken. Exit code 1 means violations — wire it into CI and it blocks merges automatically.
36+
When a rule is violated, `archgate check` reports the file, line, and which ADR was broken. Exit code 1 means violations. Wire it into CI and it blocks merges automatically.
3737

3838
**The CLI is free and open source.** Writing ADRs, enforcing rules, running checks in CI, and wiring up pre-commit hooks all work without an account or subscription.
3939

@@ -64,7 +64,7 @@ Each ADR can have a companion `.rules.ts` file that exports automated checks. Se
6464

6565
## Supercharge with AI plugins
6666

67-
> **Make your AI agent architecture-aware.** With the optional editor plugins, your AI coding agent reads ADRs before writing code, validates changes against your rules, and captures new architectural patterns back into ADRs automatically.
67+
> **Make your AI agent architecture-aware.** With the optional editor plugins, your AI coding agent reads ADRs before writing code, validates changes against your rules, and captures new architectural patterns back into ADRs, automatically.
6868
>
6969
> Plugins are available for [**Claude Code**](https://cli.archgate.dev/guides/claude-code-plugin/) and [**Cursor**](https://cli.archgate.dev/guides/cursor-integration/).
7070
>
@@ -73,11 +73,11 @@ Each ADR can have a companion `.rules.ts` file that exports automated checks. Se
7373
> archgate init # installs the plugin automatically
7474
> ```
7575
>
76-
> **[Get started with plugins](https://cli.archgate.dev/guides/claude-code-plugin/)** — the CLI works fully without them, but plugins close the loop between decisions and code.
76+
> **[Get started with plugins](https://cli.archgate.dev/guides/claude-code-plugin/)**. The CLI works fully without them, but plugins close the loop between decisions and code.
7777
7878
## Documentation
7979
80-
Full documentation is available at **[cli.archgate.dev](https://cli.archgate.dev)** including guides for writing ADRs, writing rules, CI integration, editor plugin setup, and the complete CLI reference.
80+
Full documentation is available at **[cli.archgate.dev](https://cli.archgate.dev)**, including guides for writing ADRs, writing rules, CI integration, editor plugin setup, and the complete CLI reference.
8181
8282
## Contributing
8383

ROADMAP.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@ This document describes what Archgate intends to build, improve, and explicitly
66

77
## Vision
88

9-
Archgate becomes the standard linting and guardrails for AI-assisted development. ADRs are the universal format for expressing architectural decisions, and Archgate enforces them automatically across AI tools, CI systems, and teams.
9+
Archgate becomes the standard for linting and guardrails in AI-assisted development. ADRs are the universal format for expressing architectural decisions, and Archgate enforces them automatically across AI tools, CI systems, and teams.
1010

1111
## What's Done (Phases 0–2.5)
1212

1313
These phases are complete and stable:
1414

15-
- **ADR format & lifecycle** create, list, show, update ADRs with YAML frontmatter and companion `.rules.ts` files
16-
- **Check engine** fast, deterministic ADR compliance validation (`archgate check`) with CI annotations, `--staged` support, and JSON output
17-
- **AI integration** MCP server exposing tools and resources for AI agents to consume ADR context
18-
- **Editor plugins** Claude Code, VS Code, Cursor, Copilot CLI, and opencode integrations
19-
- **Documentation site** [cli.archgate.dev](https://cli.archgate.dev) with i18n (English + Brazilian Portuguese)
20-
- **Binary distribution** macOS ARM, Linux x64, Windows x64 via GitHub Releases with npm thin shim, install script, and proto plugin
21-
- **GitHub Actions** `archgate/check-action@v1` and `archgate/setup-action@v1` published
22-
- **Self-governance** the CLI dogfoods 17+ ADRs with executable rules
15+
- **ADR format & lifecycle**: create, list, show, update ADRs with YAML frontmatter and companion `.rules.ts` files
16+
- **Check engine**: fast, deterministic ADR compliance validation (`archgate check`) with CI annotations, `--staged` support, and JSON output
17+
- **AI integration**: MCP server exposing tools and resources for AI agents to consume ADR context
18+
- **Editor plugins**: Claude Code, VS Code, Cursor, Copilot CLI, and opencode integrations
19+
- **Documentation site**: [cli.archgate.dev](https://cli.archgate.dev) with i18n (English + Brazilian Portuguese)
20+
- **Binary distribution**: macOS ARM, Linux x64, Windows x64 via GitHub Releases with npm thin shim, install script, and proto plugin
21+
- **GitHub Actions**: `archgate/check-action@v1` and `archgate/setup-action@v1` published
22+
- **Self-governance**: the CLI dogfoods 17+ ADRs with executable rules
2323

2424
## In Progress: Ecosystem Growth (Phase 3)
2525

@@ -40,9 +40,9 @@ These phases are complete and stable:
4040

4141
### Starter ADR Sets
4242

43-
- **TypeScript** strict tsconfig rules, no `any`, naming conventions
44-
- **Testing** test file co-location, coverage thresholds, fixture patterns
45-
- **API Design** REST naming, error response format, OpenAPI requirements
43+
- **TypeScript**: strict tsconfig rules, no `any`, naming conventions
44+
- **Testing**: test file co-location, coverage thresholds, fixture patterns
45+
- **API Design**: REST naming, error response format, OpenAPI requirements
4646

4747
### Documentation & Community
4848

@@ -57,7 +57,7 @@ These are explicit non-goals for the foreseeable future:
5757
- **Become a linter.** Archgate orchestrates enforcement (including linting) but will not compete with ESLint, Biome, or Oxlint on code style rules.
5858
- **Lock into a single AI tool.** The MCP server and ADR format are tool-agnostic. We will not build features that only work with one AI vendor.
5959
- **Dictate technology stacks.** Archgate governs how you build, not what you build with. ADRs are stack-agnostic by design.
60-
- **Build a code generation tool.** Archgate governs AI-generated code — it does not generate code itself.
60+
- **Build a code generation tool.** Archgate governs AI-generated code. It does not generate code itself.
6161
- **Support pre-1.0 API stability guarantees.** The ADR format and Rule API may have breaking changes before 1.0. We version clearly and document migrations.
6262

6363
## Release Cadence

0 commit comments

Comments
 (0)