aiscope 0.1.1

DevTools for your AI coding tools' memory. See what Cursor, Claude Code, and Copilot actually remember about your project — and where they disagree.
# Your first scan

Let's walk through a realistic Copilot-only repo and look at what aiscope
finds. No setup beyond `cargo install`.

## The repo

```
my-repo/
└── .github/
    ├── copilot-instructions.md
    ├── instructions/
    │   ├── python.instructions.md      ← applyTo: **/*.py
    │   └── typescript.instructions.md  ← applyTo: **/*.ts
    ├── prompts/
    │   └── unit-test.prompt.md
    └── agents/
        └── reviewer.agent.md           ← tools: [read, search]
```

Plus an `apps/web/AGENTS.md` with the web-team's conventions.

## Run it

```bash
aiscope --diag .
```

Sample output:

```text
aiscope · 6 sources · 18 statements · 159 tokens · 14 conflicts (4 high)

─── conflict 1 ───
  × agent tool mismatch: .github/instructions/python.instructions.md says
    "use the bash tool" but agent reviewer excludes it
   ╭─[.github/agents/reviewer.agent.md:8:1]
 8 │ You are a code reviewer. Use snake_case in Python feedback…
   · ─────────────────────────────────────
   ╰────
  help: add the tool to the agent's `tools:` allowlist, or change the instruction

─── conflict 2 ───
  × camelCase disagrees with snake_case
   ╭─[.github/copilot-instructions.md:5:1]
 5 │ - Use **camelCase** for variables and functions.
   · ─────────────────────────────────────
   ╰────
  help: the other side: .github/instructions/python.instructions.md:7: …
```

## What just happened

- aiscope discovered **all 5 sources** in the Copilot-only repo plus the
  path-scoped `apps/web/AGENTS.md`.
- It noticed the **agent's `tools:` allowlist** excludes `bash` but an
  instruction says to use it — flagged as `AgentToolMismatch` (HIGH).
- The **root `copilot-instructions.md`** has no `applyTo`, so it applies
  everywhere — and overlaps with `python.instructions.md` (which scopes to
  `**/*.py`). Their `camelCase` vs `snake_case` clash is HIGH.
- `python.instructions.md` and `typescript.instructions.md` also disagree on
  naming, but their globs **don't overlap** (`**/*.py` vs `**/*.ts`) — so
  that pair is demoted to **Low** with a `(scopes don't overlap)` note.

That last point is what makes aiscope worth running: it doesn't just shout
about every cross-file disagreement — it filters out false alarms based on
**actual scope overlap**.

## Try the TUI

```bash
aiscope .
```

Press `c` to filter to conflicts only. Press `q` to quit.

## Try the summary card

```bash
aiscope --card scan.png .
```

Drop `scan.png` into your PR description.

## Where to next

- [Conflict kinds]../concepts/conflict-kinds.md — what each diagnostic means
- [Scope and applyTo]../concepts/scope.md — the false-alarm filter
- [GitHub Actions]../ci/github-actions.md — gate every PR with `aiscope check`