Metadata-Version: 2.4
Name: eforge
Version: 1.0.5
Summary: Codebase observation graph and mapping tools
Project-URL: Repository, https://github.com/NT9V/forge
License: MIT
Keywords: codebase,developer-tools,graph,mapping,observation
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.11
Requires-Dist: click>=8.1
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Provides-Extra: full
Requires-Dist: mcp>=1.0.0; extra == 'full'
Requires-Dist: rich>=13.0; extra == 'full'
Requires-Dist: ruamel-yaml>=0.18.0; extra == 'full'
Description-Content-Type: text/markdown

# eforge

Codebase observation graph for developers.
Map your codebase. Track concepts. Find relationships.

## Install

```bash
pip install eforge
```

## No setup needed

Just start adding nodes. `.forge/observations/` is created
automatically on first use.

```bash
cd your-project
eforge node add "AuthSystem" --kind concept/feature -y
eforge node add "auth.py" --kind core/file \
  --file src/auth.py -y
eforge node link "AuthSystem" "auth.py" \
  --rel housed-in \
  --note "core auth logic" -y
eforge node show "AuthSystem"
```

## Commands

```text
eforge node     add, show, list, find, link,
                note, tag, mark, edit, inspect
eforge schema   list, show, create, edit,
                validate, copy, restore
eforge error    lookup, search, list, stats
```

## Your own schemas

eforge ships with built-in schemas for common node types.
Add project-specific schemas without touching forge:

```bash
eforge schema create game/canvas
```

This creates `.eforge/schemas/domain/game/canvas.yaml`.
Your schema is immediately available:

```bash
eforge node add "PixelCanvas" --kind game/canvas
# SchemaPrompt uses YOUR schema properties
```

Schema search order:

1. `.eforge/schemas/` (your project)
2. forge built-ins

Built-in kinds: `concept/feature`, `core/file`, `ui/screen`, `ui/variant`,
`ui/component`, `architecture/session`, `architecture/boundary`, `data/model`,
`data/table`, `data/rpc`, `code/class`, `code/function`, `code/module`

## Node types

```text
concept/feature planned features, systems, capabilities
core/file       source files
```

## Relationship types

```text
housed-in       concept → file
relates-to      concept → concept
depends-on      A needs B
implements      code implements concept
raises          code raises error
```

## Storage

```text
.eforge/schemas/           project type schemas
.forge/observations/
  nodes/                   one yaml per node
  .cache/                  SQLite index (auto-rebuilt)
```

## No AI required

Works without any AI assistant.
Map your codebase manually, one node at a time.
