Skip to content

Commit 69e23c7

Browse files
committed
docs: use plain hyphens instead of em dashes in prose
1 parent 9541882 commit 69e23c7

20 files changed

Lines changed: 111 additions & 111 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Rationale layer over [CodeGraph](https://github.com/colbymchenry/codegraph): explains *why* code exists, not just what it does.
44

5-
For each chunk of code, WhyGraph collects evidence from git history and GitHub commits, blame, PRs, the issues those PRs closed then serves it to AI editors over MCP, plus an on-demand rationale card (purpose, why, constraints, tradeoffs, risks) with a persistent cache.
5+
For each chunk of code, WhyGraph collects evidence from git history and GitHub - commits, blame, PRs, the issues those PRs closed - then serves it to AI editors over MCP, plus an on-demand rationale card (purpose, why, constraints, tradeoffs, risks) with a persistent cache.
66

77
> **📖 Full documentation → <https://mtrdesign.github.io/whygraph/>**
88
>

docs/deploy/docker.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ image against the current directory:
2121
docker run --rm -v "$PWD:/workspace" -w /workspace ghcr.io/mtrdesign/whygraph whygraph "$@"
2222
```
2323

24-
The container is **ephemeral per command** no compose, no `docker exec`, nothing to start or stop.
24+
The container is **ephemeral per command** - no compose, no `docker exec`, nothing to start or stop.
2525
Each invocation is a fresh process against the repo you're standing in.
2626

27-
- **Everything's in the image** Python and WhyGraph, `git`, the GitHub CLI, and Node with the
27+
- **Everything's in the image** - Python and WhyGraph, `git`, the GitHub CLI, and Node with the
2828
CodeGraph CLI. CodeGraph indexes from the in-image binary, so there's no docker-in-docker.
2929
- **Per-project config just works.** Each command reads the current repo's own `whygraph.toml`,
3030
`.whygraph/`, and `.codegraph/`.
@@ -52,12 +52,12 @@ whygraph init --agent claude # writes .mcp.json (also: --agent cursor / vsco
5252

5353
The generated config launches `whygraph-mcp` by bare command name. Your editor resolves it to the
5454
shim, which starts a per-session container speaking MCP over stdio. It reads the repo's `.whygraph/`
55-
and `.codegraph/` over the same `/workspace` mount the scan writes to so the editor and the scan
55+
and `.codegraph/` over the same `/workspace` mount the scan writes to - so the editor and the scan
5656
share one source of truth on disk.
5757

5858
## Build the image yourself
5959

60-
Building locally instead of pulling say, while developing:
60+
Building locally instead of pulling - say, while developing:
6161

6262
```bash
6363
docker build -f docker/whygraph/Dockerfile -t whygraph:latest .

docs/deploy/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ they differ in who's driving.
99

1010
---
1111

12-
Install the Docker shim, then `init` and `scan` your repos and wire your editor no Python or
12+
Install the Docker shim, then `init` and `scan` your repos and wire your editor - no Python or
1313
Node on the host. This is the default install.
1414

1515
[:octicons-arrow-right-24: Run with Docker](docker.md)
@@ -18,13 +18,13 @@ they differ in who's driving.
1818

1919
---
2020

21-
A containerized `whygraph-mcp` endpoint that real applications not just editors connect to
21+
A containerized `whygraph-mcp` endpoint that real applications - not just editors - connect to
2222
for git-based analysis of a target repo.
2323

2424
[:octicons-arrow-right-24: WhyGraph as a service](service.md)
2525

2626
</div>
2727

2828
Most people start with the local tool. Reach for the service model when you're building an
29-
application that needs the *why* behind code a review bot, an onboarding assistant, an internal
29+
application that needs the *why* behind code - a review bot, an onboarding assistant, an internal
3030
portal.

docs/deploy/service.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Editors aren't the only thing that can talk to WhyGraph. The MCP server is a plain stdio program, so
44
any application that speaks MCP can connect to it for git-based analysis of a target repo. Think of a
55
review bot, an onboarding assistant, or an internal dev portal that needs the *why* behind a chunk of
6-
code not just the code.
6+
code - not just the code.
77

88
This page covers that model: a containerized `whygraph-mcp` endpoint a third-party app drives over
99
MCP, reading the same on-disk data your scan produces.
@@ -27,17 +27,17 @@ flowchart LR
2727

2828
The consuming app gets the full read surface over MCP:
2929

30-
- **Evidence** `whygraph_evidence_for` and `whygraph_area_history` for the commits, PRs, and issues
30+
- **Evidence** - `whygraph_evidence_for` and `whygraph_area_history` for the commits, PRs, and issues
3131
behind a path or symbol.
32-
- **Rationale** `whygraph_rationale_brief` for a structured why-this-exists card.
33-
- **Resources** `whygraph://commit/{sha}`, `whygraph://pr/{number}`, `whygraph://issue/{number}`,
32+
- **Rationale** - `whygraph_rationale_brief` for a structured why-this-exists card.
33+
- **Resources** - `whygraph://commit/{sha}`, `whygraph://pr/{number}`, `whygraph://issue/{number}`,
3434
and `whygraph://repo/overview`.
3535

3636
See the [MCP surface reference](../reference/mcp.md) for exact signatures.
3737

3838
## Scan first
3939

40-
The server reads cached data it doesn't crawl on demand. So the target repo must be scanned before
40+
The server reads cached data - it doesn't crawl on demand. So the target repo must be scanned before
4141
an app connects, or the tools have nothing to return.
4242

4343
```bash
@@ -76,14 +76,14 @@ What the app needs depends on what it asks for:
7676
`[llm.*]` table.
7777

7878
!!! info "Tokens never live in the image"
79-
Pass credentials at run time via env or the gitignored `whygraph.toml` never bake them into a
79+
Pass credentials at run time via env or the gitignored `whygraph.toml` - never bake them into a
8080
built image. This matches WhyGraph's own invariant for the Docker shim.
8181

8282
## Current scope
8383

8484
Today the server speaks MCP over **stdio, one session per process**. There's no long-running HTTP
85-
endpoint yet each connection is its own `docker run`. A persistent server mode with an HTTP MCP
85+
endpoint yet - each connection is its own `docker run`. A persistent server mode with an HTTP MCP
8686
transport is on the [roadmap](../roadmap.md), not built.
8787

88-
For now, model your integration as "spawn a session, run the tools you need, let it exit" the same
88+
For now, model your integration as "spawn a session, run the tools you need, let it exit" - the same
8989
lifecycle an editor uses, driven by your app instead.

docs/getting-started/index.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Getting Started
22

33
WhyGraph is a rationale layer over [CodeGraph](https://github.com/colbymchenry/codegraph). CodeGraph
4-
maps what your code *is* symbols, callers, callees. WhyGraph adds *why* it exists, drawn from the
4+
maps what your code *is* - symbols, callers, callees. WhyGraph adds *why* it exists, drawn from the
55
history around it.
66

7-
For each chunk of code, it collects evidence from git and GitHub commits, blame, pull requests, the
8-
issues those PRs closed and links it together. Then it exposes that evidence to your AI editor over
7+
For each chunk of code, it collects evidence from git and GitHub - commits, blame, pull requests, the
8+
issues those PRs closed - and links it together. Then it exposes that evidence to your AI editor over
99
MCP, plus an on-demand rationale card (purpose, why, constraints, tradeoffs, risks) that it caches.
1010

1111
You install WhyGraph once, then wire it into each repo you want it to analyze. It speaks MCP, so any
@@ -25,17 +25,17 @@ its own history on top.
2525

2626
## Prerequisites
2727

28-
You don't need all of these most are optional, and the phases that depend on them skip cleanly when
28+
You don't need all of these - most are optional, and the phases that depend on them skip cleanly when
2929
they're missing.
3030

31-
- **[uv](https://docs.astral.sh/uv/)** *or* **Docker** uv for a native install, or Docker alone for
31+
- **[uv](https://docs.astral.sh/uv/)** *or* **Docker** - uv for a native install, or Docker alone for
3232
the [container install](installation.md). With Docker, you need nothing else on your host.
33-
- **git** your repo history is the primary evidence source.
34-
- **Docker** *(native installs only)* when no `codegraph` binary is on `PATH`, `whygraph scan` runs
33+
- **git** - your repo history is the primary evidence source.
34+
- **Docker** *(native installs only)* - when no `codegraph` binary is on `PATH`, `whygraph scan` runs
3535
CodeGraph inside the WhyGraph image to index the repo.
36-
- **[`gh` CLI](https://cli.github.com/)**, authenticated only for GitHub repos, and only if you
36+
- **[`gh` CLI](https://cli.github.com/)**, authenticated - only for GitHub repos, and only if you
3737
enable the remote crawl. Without it, the GitHub phase is skipped.
38-
- **`claude` CLI** *or* an LLM API key for per-commit descriptions and rationale cards. Both phases
38+
- **`claude` CLI** *or* an LLM API key - for per-commit descriptions and rationale cards. Both phases
3939
skip cleanly if neither is available.
4040

4141
Ready to install?
@@ -46,15 +46,15 @@ Ready to install?
4646

4747
---
4848

49-
Docker, PyPI, GitHub, or a local checkout pick the path that fits.
49+
Docker, PyPI, GitHub, or a local checkout - pick the path that fits.
5050

5151
[:octicons-arrow-right-24: Install WhyGraph](installation.md)
5252

5353
- :material-rocket-launch:{ .lg .middle } __Quickstart__
5454

5555
---
5656

57-
Init, scan, wire an editor the happy path in four commands.
57+
Init, scan, wire an editor - the happy path in four commands.
5858

5959
[:octicons-arrow-right-24: Quickstart](quickstart.md)
6060

docs/getting-started/installation.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# Installation
22

3-
WhyGraph follows a one-global-install, use-anywhere model like `npx`, but for Python. You install
3+
WhyGraph follows a one-global-install, use-anywhere model - like `npx`, but for Python. You install
44
the package once; that puts `whygraph` and `whygraph-mcp` on your `PATH`. Then
55
`whygraph init --agent <name>` wires each project so its editor can launch the MCP server.
66

77
Pick the path that fits where you are.
88

99
=== "Docker (recommended)"
1010

11-
The host needs **only Docker** no Python, Node, `gh`, or CodeGraph. A tiny shim runs everything
11+
The host needs **only Docker** - no Python, Node, `gh`, or CodeGraph. A tiny shim runs everything
1212
inside one published image.
1313

1414
```bash
@@ -30,7 +30,7 @@ Pick the path that fits where you are.
3030

3131
=== "GitHub"
3232

33-
Install straight from the repo latest `main`, a feature branch, or a tag:
33+
Install straight from the repo - latest `main`, a feature branch, or a tag:
3434

3535
```bash
3636
# Latest from main:

docs/getting-started/quickstart.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ whygraph init
1212
```
1313

1414
This creates `.whygraph/whygraph.db`, writes a commented `whygraph.example.toml`, and adds the right
15-
`.gitignore` entries. It's idempotent run it again any time. It does *not* index CodeGraph yet;
15+
`.gitignore` entries. It's idempotent - run it again any time. It does *not* index CodeGraph yet;
1616
that's the next step.
1717

1818
## 2. Scan
@@ -29,7 +29,7 @@ evidence WhyGraph serves.
2929
A fresh scan stays git-only and needs no token, because `[scan].provider` defaults to `"off"`. To
3030
pull PRs and issues, set `provider = "github"` (or `"auto"`) in `whygraph.toml`.
3131

32-
For a fast, offline pass no remote calls, no LLM skip both phases:
32+
For a fast, offline pass - no remote calls, no LLM - skip both phases:
3333

3434
```bash
3535
whygraph scan --no-remote --no-llm-descriptions
@@ -47,7 +47,7 @@ whygraph init --agent claude
4747
```
4848

4949
That writes `.mcp.json` at the repo root and copies the bundled assets into `.claude/`. Other agents
50-
work the same way `--agent cursor`, `--agent vscode`, `--agent codex`. See
50+
work the same way - `--agent cursor`, `--agent vscode`, `--agent codex`. See
5151
[Wiring your editor](../guide/editors.md) for each one's config path.
5252

5353
## 4. Sanity-check the server
@@ -56,7 +56,7 @@ work the same way — `--agent cursor`, `--agent vscode`, `--agent codex`. See
5656
whygraph-mcp # Ctrl-C to exit
5757
```
5858

59-
If it launches without error, your editor can launch it too. That's it ask your assistant why a
59+
If it launches without error, your editor can launch it too. That's it - ask your assistant why a
6060
function exists, and WhyGraph answers from history.
6161

6262
## Where to next

docs/guide/concepts.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ the pull requests that merged it, and the issues those PRs closed. WhyGraph coll
1212

1313
You reach evidence two ways, because there are two questions to ask:
1414

15-
- **`whygraph_evidence_for`** "which commits authored *these specific lines*?" Line-blame-driven and
15+
- **`whygraph_evidence_for`** - "which commits authored *these specific lines*?" Line-blame-driven and
1616
anchored to HEAD. Best when you have a precise range or a symbol.
17-
- **`whygraph_area_history`** "which commits ever touched *this file*, or anything that became this
17+
- **`whygraph_area_history`** - "which commits ever touched *this file*, or anything that became this
1818
file?" It walks the rename chain, so it reaches code that's since been deleted, moved, or fully
19-
rewritten commits that blame physically can't surface.
19+
rewritten - commits that blame physically can't surface.
2020

2121
The two reinforce each other. Evidence keeps line-level precision; area history reaches further back.
2222

@@ -25,22 +25,22 @@ The two reinforce each other. Evidence keeps line-level precision; area history
2525
A rationale card is WhyGraph's answer to "why does this exist?" It takes the evidence bundle, hands it
2626
to the configured LLM, and gets back a structured card with exactly five fields:
2727

28-
- **purpose** what this code is for.
29-
- **why** why it was written this way.
30-
- **constraints** what it must preserve.
31-
- **tradeoffs** what was given up, and for what.
32-
- **risks** what could break if you change it.
28+
- **purpose** - what this code is for.
29+
- **why** - why it was written this way.
30+
- **constraints** - what it must preserve.
31+
- **tradeoffs** - what was given up, and for what.
32+
- **risks** - what could break if you change it.
3333

34-
The card comes back with provenance too `model`, `provider`, `cached_at` and an `evidence_count`
34+
The card comes back with provenance too - `model`, `provider`, `cached_at` - and an `evidence_count`
3535
summarizing how many commits, PRs, and issues fed it.
3636

3737
!!! note "Five fields, nothing more"
38-
A card carries those five narrative fields and nothing else no extra score or rating. The
38+
A card carries those five narrative fields and nothing else - no extra score or rating. The
3939
rationale is the evidence-grounded explanation, full stop.
4040

4141
### Caching
4242

43-
Cards are **persistently cached**, keyed by content the target, the evidence bundle, the provider,
43+
Cards are **persistently cached**, keyed by content - the target, the evidence bundle, the provider,
4444
and the model. Generate a card once and the next identical lookup is a sub-second database read. Change
4545
the underlying code (so the evidence shifts) and the next call regenerates. You pay the LLM cost only
4646
when something actually changed.
@@ -51,9 +51,9 @@ WhyGraph sits on top of CodeGraph and stays out of its lane:
5151

5252
| Layer | Owns |
5353
|---|---|
54-
| **CodeGraph** | "what's connected to what" callers, callees, `find_symbols`, type hierarchy |
55-
| **WhyGraph** | "why it exists and when it changed" evidence, rationale, area history |
54+
| **CodeGraph** | "what's connected to what" - callers, callees, `find_symbols`, type hierarchy |
55+
| **WhyGraph** | "why it exists and when it changed" - evidence, rationale, area history |
5656

5757
When you target a symbol by `qualified_name`, WhyGraph asks CodeGraph to resolve it to a file and line
58-
range, then layers its own history on top. It exposes no graph-traversal tools of its own for that,
58+
range, then layers its own history on top. It exposes no graph-traversal tools of its own - for that,
5959
call CodeGraph directly.

docs/guide/editors.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ whygraph init --agent claude
1111

1212
## Supported agents
1313

14-
Four agents are supported. **All of them are project-scoped** the config file is written or merged
14+
Four agents are supported. **All of them are project-scoped** - the config file is written or merged
1515
inside the repo, so you can commit it and every teammate's editor picks it up.
1616

1717
| `--agent` | Editor | Config file |
@@ -24,7 +24,7 @@ inside the repo, so you can commit it and every teammate's editor picks it up.
2424
Run `whygraph init --list-agents` to print these paths for your own checkout.
2525

2626
The generated config launches `whygraph-mcp` by bare command name, so the same checked-in file works
27-
for everyone who has WhyGraph installed no absolute paths to scrub.
27+
for everyone who has WhyGraph installed - no absolute paths to scrub.
2828

2929
## Claude Code assets
3030

docs/guide/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# User Guide
22

3-
You've scanned a repo and wired an editor. This guide explains how the pieces fit together and how
3+
You've scanned a repo and wired an editor. This guide explains how the pieces fit together - and how
44
to get the most out of each.
55

66
The flow is simple. You **scan** a repo to build the evidence database and refresh the CodeGraph

0 commit comments

Comments
 (0)