You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Copy file name to clipboardExpand all lines: ASSURANCE-CASE.md
+18-18Lines changed: 18 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,8 +19,8 @@ Archgate is a CLI tool that enforces Architecture Decision Records (ADRs) as exe
19
19
Archgate does **not**:
20
20
21
21
- 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/))
24
24
- Require network access for core functionality (`archgate check` is fully offline)
25
25
26
26
### 1.2 Threat Categories
@@ -83,32 +83,32 @@ Archgate does **not**:
83
83
└─────────────┘
84
84
```
85
85
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.
87
87
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.
89
89
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.
91
91
92
92
## 3. Secure Design Principles Applied
93
93
94
94
### 3.1 Least Privilege
95
95
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.
99
99
100
100
### 3.2 Defense in Depth
101
101
102
102
Two independent layers protect against malicious rules:
103
103
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:
105
105
- Imports of `node:fs`, `child_process`, `net`, `http`, `vm`, and other system modules
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.
112
112
113
113
### 3.3 Input Validation
114
114
@@ -124,7 +124,7 @@ Two independent layers protect against malicious rules:
124
124
125
125
### 3.5 Minimal Attack Surface
126
126
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`.
128
128
-**No daemon or server mode.** The CLI runs as a short-lived process. The MCP server uses stdio transport (no network listener).
129
129
-**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).
130
130
@@ -152,7 +152,7 @@ Two independent layers protect against malicious rules:
| 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`). |
156
156
| Source code exposure | Rules are read-only. `archgate check` output contains only violation messages (file paths and line numbers), not file contents. |
157
157
| Error messages | Error output uses `logError()` (ARCH-002) which writes structured messages to stderr. Stack traces are only shown with `--verbose`. |
158
158
@@ -171,7 +171,7 @@ Two independent layers protect against malicious rules:
171
171
-**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.
172
172
-**OpenSSF Scorecard** runs weekly via GitHub Actions, publishing results to the GitHub Security tab.
173
173
-**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.
175
175
176
176
### 5.2 Manual Verification
177
177
@@ -181,8 +181,8 @@ Two independent layers protect against malicious rules:
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Thank you for your interest in contributing to Archgate CLI! We welcome all kind
6
6
7
7
## Architecture Decision Records (ADRs)
8
8
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.**
10
10
11
11
### Quick reference
12
12
@@ -29,7 +29,7 @@ bun run src/cli.ts adr list
29
29
bun run src/cli.ts adr show ARCH-001
30
30
```
31
31
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.**
33
33
34
34
## Quick Start
35
35
@@ -199,8 +199,8 @@ git rebase --signoff HEAD~N # where N is the number of commits to sign
199
199
200
200
## Guidelines
201
201
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)
204
204
- Follow the existing code style and conventions
205
205
- Write clear, descriptive commit messages using [Conventional Commits](https://www.conventionalcommits.org/)
Copy file name to clipboardExpand all lines: README.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,16 +13,16 @@
13
13
14
14
---
15
15
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.
17
17
18
18
**Write an ADR once. Enforce it everywhere.**
19
19
20
20
## How it works
21
21
22
22
Archgate has two layers:
23
23
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.
26
26
27
27
```
28
28
.archgate/
@@ -33,7 +33,7 @@ Archgate has two layers:
33
33
└── ARCH-002-error-handling.rules.ts
34
34
```
35
35
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.
37
37
38
38
**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.
39
39
@@ -64,7 +64,7 @@ Each ADR can have a companion `.rules.ts` file that exports automated checks. Se
64
64
65
65
## Supercharge with AI plugins
66
66
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.
68
68
>
69
69
> Plugins are available for [**Claude Code**](https://cli.archgate.dev/guides/claude-code-plugin/) and [**Cursor**](https://cli.archgate.dev/guides/cursor-integration/).
70
70
>
@@ -73,11 +73,11 @@ Each ADR can have a companion `.rules.ts` file that exports automated checks. Se
73
73
> archgate init # installs the plugin automatically
74
74
>```
75
75
>
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.
77
77
78
78
## Documentation
79
79
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.
Copy file name to clipboardExpand all lines: ROADMAP.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,20 +6,20 @@ This document describes what Archgate intends to build, improve, and explicitly
6
6
7
7
## Vision
8
8
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.
10
10
11
11
## What's Done (Phases 0–2.5)
12
12
13
13
These phases are complete and stable:
14
14
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
23
23
24
24
## In Progress: Ecosystem Growth (Phase 3)
25
25
@@ -40,9 +40,9 @@ These phases are complete and stable:
40
40
41
41
### Starter ADR Sets
42
42
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
46
46
47
47
### Documentation & Community
48
48
@@ -57,7 +57,7 @@ These are explicit non-goals for the foreseeable future:
57
57
-**Become a linter.** Archgate orchestrates enforcement (including linting) but will not compete with ESLint, Biome, or Oxlint on code style rules.
58
58
-**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.
59
59
-**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.
61
61
-**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.
0 commit comments