<!-- codebeacon:start -->
# Project Context

## Lookup strategy

> A pre-built index lives in `.codebeacon/`. Use the 3-step lookup below
> before reaching for Glob or Grep.

> **Repo type:** `single` — Single-project repo.

### Step 1 — codebeacon wiki
Routes, controllers, services, entities.
```
.codebeacon/wiki/index.md                    ← global index
.codebeacon/wiki/{project}/controllers/{Name}.md  ← controller logic
.codebeacon/wiki/{project}/services/{Name}.md     ← service methods
.codebeacon/wiki/{project}/entities/{Name}.md     ← data models
.codebeacon/wiki/routes.md                   ← all API routes across projects
```

### Step 2 — obsidian notes
Class-level detail (methods, fields, incoming/outgoing edges) the wiki omits.
Look up by class name — replace `{project}` with the relevant folder:
```
.codebeacon/obsidian/{project}/{ClassName}.md
```

| Project | Notes | Example |
| --- | --- | --- |
| codebeacon | 413 services, 3 entities | `affected_from_paths.py.md` |

### Step 3 — source file
Open the paths surfaced by Steps 1–2.

---

## Projects

| Project | Framework | Routes | Services | Entities | Components |
| --- | --- | --- | --- | --- | --- |
| codebeacon | python | 5 | 413 | 3 | 0 |

---

## Common Commands

### codebeacon (python)
```bash
# see project README  # build
# see project README  # run
# see project README  # all tests
```

---

## Architecture

**codebeacon**: **python** · python
  Routes: 5 | Services: 413 | Entities: 3 | Components: 0

## High-Impact Files

Changes here affect many other files:

- `codebeacon/common/safety.py` (imported by 9 files)
- `codebeacon/discover/detector.py` (imported by 6 files)
- `codebeacon/wiki/generator.py` (imported by 6 files)
- `codebeacon/affected.py` (imported by 5 files)
- `codebeacon/common/symbols.py` (imported by 5 files)

---

_Generated by [codebeacon](https://github.com/codebeacon/codebeacon) · 2026-06-11_
<!-- codebeacon:end -->
