# Repository Ability Registry The Repository Ability Registry maps repositories from usefulness to implementation: ```text 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: ```bash python3 -m venv .venv . .venv/bin/activate python -m pip install -e ".[dev]" ``` Run tests: ```bash pytest ``` Run the API: ```bash 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 ```bash 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: ```bash 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: ```bash 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: ```bash 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: ```bash 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.