Skip to content

Commit 41df91c

Browse files
committed
docs: restyle README to match the CodeBoarding repo
Match the engine repo's README formatting: plain title + tagline + intro, a `·`-separated links line, language badges, sentence-case section headers, period-terminated bullets, lighter bold, and no emoji legend (drop the centered logo block). Content is unchanged — formatting only.
1 parent 934369a commit 41df91c

1 file changed

Lines changed: 36 additions & 27 deletions

File tree

README.md

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
1-
<div align="center">
2-
<img src="assets/icon.svg" alt="CodeBoarding Logo" height="120" />
1+
# CodeBoarding Visual Architecture Review
32

4-
# CodeBoarding Visual Architecture Review
3+
Review system design on every pull request, not just the diff.
54

6-
Visual system-design review for pull requests. CodeBoarding analyzes the architecture before and after a change, then comments on the PR with an inline Mermaid diagram showing what changed.
7-
</div>
5+
CodeBoarding analyzes your architecture before and after a change, then comments on the PR with an inline Mermaid diagram of what changed — added, modified, and deleted components and the relationships between them. It runs the [CodeBoarding](https://github.com/CodeBoarding/CodeBoarding) engine in CI: static analysis combined with LLM reasoning.
86

9-
## What It Does
7+
[CodeBoarding](https://github.com/CodeBoarding/CodeBoarding) · [Website](https://codeboarding.org) · [Explore examples](https://codeboarding.org/diagrams) · [VS Code extension](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding) · [Discord](https://discord.gg/T5zHTJYFuy)
8+
9+
[![JavaScript](https://img.shields.io/badge/JavaScript-222222?style=flat-square&logo=javascript&logoColor=F7DF1E)](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
10+
[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
11+
[![Java](https://img.shields.io/badge/Java-E76F00?style=flat-square&logo=openjdk&logoColor=white)](https://www.java.com/)
12+
[![Python](https://img.shields.io/badge/Python-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)
13+
[![Go](https://img.shields.io/badge/Go-00ADD8?style=flat-square&logo=go&logoColor=white)](https://go.dev/)
14+
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat-square&logo=php&logoColor=white)](https://www.php.net/)
15+
[![Rust](https://img.shields.io/badge/Rust-000000?style=flat-square&logo=rust&logoColor=white)](https://www.rust-lang.org/)
16+
[![C#](https://custom-icon-badges.demolab.com/badge/C%23-512BD4.svg?style=flat-square&logo=cshrp&logoColor=white)](https://learn.microsoft.com/en-us/dotnet/csharp/)
17+
18+
## What it does
1019

1120
- Builds or reuses a baseline architecture analysis for the PR base.
1221
- Runs incremental analysis on the PR head, then diffs components and relationships.
13-
- Posts a sticky PR comment with an inline Mermaid map — 🟩 added · 🟨 modified · 🟥 deleted (dashed), for both nodes and edges.
22+
- Posts a sticky PR comment with an inline Mermaid map. Green is added, yellow is modified, red (dashed) is deleted, for both nodes and edges.
1423

1524
A PR comment looks like this:
1625

@@ -31,7 +40,7 @@ graph LR
3140
linkStyle 1 stroke:#1f883d,stroke-width:2px;
3241
```
3342

34-
## Usage
43+
## Quick start
3544

3645
Create `.github/workflows/codeboarding.yml`:
3746

@@ -40,7 +49,7 @@ name: CodeBoarding review
4049

4150
on:
4251
pull_request:
43-
# Generate ONCE, when the PR becomes reviewable not on every push, so you
52+
# Generate once, when the PR becomes reviewable, not on every push, so you
4453
# don't spend an LLM job per commit. Use [opened] for strictly creation-only,
4554
# or add `synchronize` to re-run on each push. Refresh anytime with /codeboarding.
4655
types: [opened, reopened, ready_for_review]
@@ -70,15 +79,15 @@ jobs:
7079
llm_api_key: ${{ secrets.OPENROUTER_API_KEY }}
7180
```
7281
73-
Add the API key as a repository secret (**Settings → Secrets and variables → Actions**):
82+
Add the API key as a repository secret (Settings → Secrets and variables → Actions):
7483
7584
```text
7685
OPENROUTER_API_KEY = sk-or-...
7786
```
7887

79-
That's the only required setup — it's passed via `llm_api_key` above. (For local runs with `scripts/run_local.sh`, export `OPENROUTER_API_KEY` as an env var instead.)
88+
That is the only required setup, passed via `llm_api_key` above. For local runs with `scripts/run_local.sh`, export `OPENROUTER_API_KEY` as an environment variable instead.
8089

81-
**Models are optional.** Omit `agent_model` / `parsing_model` to use the engine's default for your provider, or pin them inline or from a repository **variable** (a model name isn't a secret, so use `vars.`, not `secrets.`):
90+
Models are optional. Omit `agent_model` and `parsing_model` to use the engine's default for your provider, or pin them inline or from a repository variable (a model name is not a secret, so use `vars.`, not `secrets.`):
8291

8392
```yaml
8493
with:
@@ -87,25 +96,25 @@ That's the only required setup — it's passed via `llm_api_key` above. (For loc
8796
parsing_model: google/gemini-3-flash-preview # optional
8897
```
8998
90-
**Model format (OpenRouter):** a bare OpenRouter slug (e.g. `anthropic/claude-sonnet-4`)exactly one `/`, **no `openrouter/` prefix** (that's the LiteLLM form; the action rejects it early). Other providers use their own native model ids.
99+
Model format on OpenRouter is a bare slug (e.g. `anthropic/claude-sonnet-4`): exactly one `/`, with no `openrouter/` prefix (that is the LiteLLM form, which the action rejects early). Other providers use their own native model ids.
91100

92101
## Bring your own LLM provider
93102

94-
OpenRouter is the default, but you can use any provider the engine supports — set `llm_provider` and pass that provider's key:
103+
OpenRouter is the default, but you can use any provider the engine supports. Set `llm_provider` and pass that provider's key:
95104

96105
```yaml
97106
with:
98107
llm_provider: anthropic # omit for OpenRouter (default)
99108
llm_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
100109
```
101110

102-
`llm_provider: <name>` hands your key to the engine as `<NAME>_API_KEY`, and the engine auto-selects that provider. Set **exactly one** key per run.
111+
`llm_provider: <name>` hands your key to the engine as `<NAME>_API_KEY`, and the engine auto-selects that provider. Set exactly one key per run.
103112

104-
<details><summary><strong>Supported providers</strong></summary>
113+
<details><summary>Supported providers</summary>
105114

106-
| `llm_provider` | env var the engine reads |
115+
| `llm_provider` | Environment variable the engine reads |
107116
|---|---|
108-
| `openrouter` *(default)* | `OPENROUTER_API_KEY` |
117+
| `openrouter` (default) | `OPENROUTER_API_KEY` |
109118
| `openai` | `OPENAI_API_KEY` |
110119
| `anthropic` | `ANTHROPIC_API_KEY` |
111120
| `google` | `GOOGLE_API_KEY` |
@@ -116,31 +125,31 @@ OpenRouter is the default, but you can use any provider the engine supports —
116125
| `aws_bedrock` | `AWS_BEARER_TOKEN_BEDROCK` |
117126
| `ollama` | `OLLAMA_BASE_URL` |
118127

119-
This table mirrors the engine and may lag it — the source of truth is the engine's provider registry ([`agents/llm_config.py`](https://github.com/CodeBoarding/CodeBoarding/blob/main/agents/llm_config.py)). Any provider it adds that follows the `<NAME>_API_KEY` convention works here with no action change.
128+
This table mirrors the engine and may lag it. The source of truth is the engine's provider registry, [`agents/llm_config.py`](https://github.com/CodeBoarding/CodeBoarding/blob/main/agents/llm_config.py). Any provider it adds that follows the `<NAME>_API_KEY` convention works here with no action change.
120129

121130
</details>
122131

123132
## When it runs
124133

125-
- **PR opened / reopened / marked ready** — generated once (per the `on:` triggers above). It does **not** re-run on every push, so you never spend an LLM job per commit; the comment reflects that point until refreshed.
126-
- **`/codeboarding` comment** — a trusted collaborator (`OWNER`/`MEMBER`/`COLLABORATOR`) regenerates the diagram against the **current** PR head, even if one already exists. It re-runs and updates the same comment in place (the action reacts with 👀). Change the keyword via `trigger_command`.
134+
- On a PR being opened, reopened, or marked ready for review, the diagram is generated once (per the `on:` triggers above). It does not re-run on every push, so you never spend an LLM job per commit; the comment reflects that point until refreshed.
135+
- On a `/codeboarding` comment, a trusted collaborator (`OWNER`, `MEMBER`, or `COLLABORATOR`) regenerates the diagram against the current PR head, even if one already exists. It re-runs and updates the same comment in place. Change the keyword via `trigger_command`.
127136

128-
The command needs the `issue_comment` trigger and runs from your **default branch** (GitHub's rule), so it only works once the workflow is merged there. On-demand runs on fork PRs are refused, so fork code is never analyzed with your secrets.
137+
The command needs the `issue_comment` trigger and runs from your default branch (a GitHub rule), so it only works once the workflow is merged there. On-demand runs on fork PRs are refused, so fork code is never analyzed with your secrets.
129138

130139
## Inputs
131140

132141
| Input | Default | Description |
133142
|---|---|---|
134143
| `llm_api_key` | required | Your LLM provider API key (see `llm_provider`). |
135-
| `llm_provider` | `openrouter` | Provider for the key mapped to `<NAME>_API_KEY` (e.g. `anthropic`, `openai`, `google`). |
136-
| `github_token` | `${{ github.token }}` | Token used to post/update the PR comment. |
144+
| `llm_provider` | `openrouter` | Provider for the key, mapped to `<NAME>_API_KEY` (e.g. `anthropic`, `openai`, `google`). |
145+
| `github_token` | `${{ github.token }}` | Token used to post or update the PR comment. |
137146
| `engine_ref` | `v0.12.0` | CodeBoarding engine ref. Pin for reproducibility. |
138147
| `depth_level` | `1` | Analysis depth, 1 to 3. Higher is slower and richer. |
139148
| `render_depth` | `1` | Display depth for the PR diagram. Keep `1` for a clean top-level view. |
140149
| `diagram_direction` | `LR` | Mermaid direction: `LR`, `TD`, `TB`, `RL`, or `BT`. |
141150
| `changed_only` | `false` | Render only changed components and incident edges. |
142-
| `agent_model` | engine default | Analysis model. Bare OpenRouter slug (e.g. `anthropic/claude-sonnet-4`); empty = engine's per-provider default. |
143-
| `parsing_model` | engine default | Parsing model. Bare OpenRouter slug; empty = engine's per-provider default. |
151+
| `agent_model` | engine default | Analysis model. Bare OpenRouter slug (e.g. `anthropic/claude-sonnet-4`); empty uses the engine's per-provider default. |
152+
| `parsing_model` | engine default | Parsing model. Bare OpenRouter slug; empty uses the engine's per-provider default. |
144153
| `comment_header` | `Architecture review` | Heading for the PR comment. |
145154
| `trigger_command` | `/codeboarding` | Slash command for trusted on-demand runs. |
146155
| `cta_base_url` | empty | Optional click-proxy base URL for editor and extension links. |
@@ -160,7 +169,7 @@ The command needs the `issue_comment` trigger and runs from your **default branc
160169
- Do not use `pull_request_target` for this action. It can expose secrets to PR-head code.
161170
- GitHub renders Mermaid in strict mode, so node click-through links are not supported in the PR diagram.
162171

163-
## Local Testing
172+
## Local testing
164173

165174
Fast path, no LLM calls:
166175

0 commit comments

Comments
 (0)