A platform that analyzes utility characteristics of git repositories maping scope, abilities, capabilities, features into a searchable, inspectable description tree that reveals what the code can do and how it does it.
Find a file
2026-04-25 22:37:06 +02:00
migrations Milestone 2’s core deterministic scanner path 2026-04-25 22:32:05 +02:00
src/repo_registry Git ingestion part of Milestone 2 2026-04-25 22:37:06 +02:00
tests Git ingestion part of Milestone 2 2026-04-25 22:37:06 +02:00
wiki added initial concept documents 2026-04-25 21:15:17 +02:00
workplans Added codex generated workplan 2026-04-25 21:33:20 +02:00
.gitignore Initial commit 2026-04-25 19:02:19 +00:00
LICENSE Initial commit 2026-04-25 19:02:19 +00:00
pyproject.toml Milestone 0 plus the manual-registry spine from Milestone 1 2026-04-25 22:00:26 +02:00
README.md Git ingestion part of Milestone 2 2026-04-25 22:37:06 +02:00

Repository Ability Registry

The Repository Ability Registry maps repositories from usefulness to implementation:

Ability -> Capability -> Feature -> Evidence -> Code location

The first implementation slice is a Python registry core plus FastAPI HTTP API for manual repository profiles. It deliberately separates the manual/canonical registry path from the later analyzer pipeline.

Local Development

Create an environment and install dependencies:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev]"

Run tests:

pytest

Run the API:

uvicorn repo_registry.web_api.app:app --reload

The API creates a local SQLite database at var/repo-registry.sqlite3 by default.

First API Loop

curl -X POST http://127.0.0.1:8000/repos \
  -H 'content-type: application/json' \
  -d '{"name":"MailRouter","url":"https://example.com/mail-router.git"}'

Then add abilities, capabilities, features, and evidence under that repository and inspect:

curl http://127.0.0.1:8000/repos/1/ability-map
curl 'http://127.0.0.1:8000/search?q=classify'

Deterministic Analysis

For local development, repository URLs may be local filesystem paths. Git URLs, including file:// URLs, are cloned into var/checkouts before scanning. Trigger a deterministic scan:

curl -X POST http://127.0.0.1:8000/repos/1/analysis-runs \
  -H 'content-type: application/json' \
  -d '{}'

Or override the scan source path explicitly:

curl -X POST http://127.0.0.1:8000/repos/1/analysis-runs \
  -H 'content-type: application/json' \
  -d '{"source_path":"/path/to/repository"}'

Inspect recorded facts:

curl http://127.0.0.1:8000/repos/1/analysis-runs
curl http://127.0.0.1:8000/repos/1/observed-facts

The deterministic scanner records observed facts only: languages, documentation files, examples, tests, package manifests, configuration files, framework hints, and likely API/CLI interfaces.