Skip to main content

Git-native, graph-backed project memory for humans and coding agents

Project description

Whyloom

Whyloom weaves code, decisions, constraints, and history into a living project-memory graph

Your codebase remembers why.

Whyloom is a Git-native, graph-backed project memory for a single codebase. It connects implementation facts to the decisions, constraints, rejected alternatives, and operational lessons that explain them, then gives humans and coding agents fast, task-specific context.

The problem

Teams increasingly delegate both implementation and design reasoning to coding agents. The code survives, but much of the reasoning disappears into chat histories, compaction summaries, pull requests, and individual memory.

The next agent can inspect what the code does but often cannot determine:

  • why the implementation took this shape;
  • which constraints must remain true;
  • which alternatives were rejected and why;
  • which decision superseded an older one;
  • what an incident taught the project;
  • which context matters for the task at hand.

Long context windows and semantic search do not solve this reliably. They can return related information without reconstructing the project's meaning.

The product

Whyloom maintains two connected forms of project knowledge:

  1. Canonical project records in Git — concise Markdown records for decisions, constraints, architecture, incidents, and terminology.
  2. A generated local graph — files, symbols, records, and typed relationships indexed for fast, bounded traversal.

The repository remains the source of truth. The graph is disposable and can always be rebuilt.

Code + project records
        ↓
Incremental indexer
        ↓
Local rationale graph
        ↓
Task-specific context for humans and agents

Install

Install the isolated CLI from PyPI:

uv tool install whyloom
whyloom install

whyloom install registers both the ongoing whyloom skill and the one-time whyloom-bootstrap skill. With no platform option, it installs into every detected supported assistant and falls back to the generic Agent Skills location.

Choose a platform or commit the skills with a project explicitly:

whyloom install --platform codex
whyloom install --platform claude
whyloom install --platform copilot
whyloom install --platform agents

whyloom install --platform copilot --project --root .
Platform Personal skills Project skills
Codex ~/.codex/skills/ .agents/skills/
Claude ~/.claude/skills/ .claude/skills/
GitHub Copilot ~/.copilot/skills/ .github/skills/
Agent Skills ~/.agents/skills/ .agents/skills/

Project-scoped Copilot skills work with Copilot coding agent, Copilot CLI, and agent mode in VS Code. To remove only directories managed by Whyloom:

whyloom uninstall --platform copilot

Until the first PyPI release is available, install directly from GitHub:

uv tool install git+https://github.com/rafaelolsr/whyloom.git

Core workflow

whyloom init
whyloom index
whyloom explain src/auth/token_service.py
whyloom context "change refresh-token rotation"
whyloom impact decisions/0007-token-storage.md
whyloom reflect --task-summary "describe the durable project learning"
whyloom validate
whyloom doctor
  • init adds the canonical project-memory structure.
  • index extracts code structure and links it to project records.
  • explain answers what a path or symbol does and why it exists.
  • context builds a compact evidence bundle for a task.
  • impact shows the code and records affected by a change.
  • reflect proposes new or updated records after work is completed.
  • validate detects broken links, stale records, and contradictory active constraints.
  • doctor verifies that configuration, records, index, and validation are ready.

Bootstrap an existing codebase

Use the separate bootstrap workflow when a repository has code but little reliable project reasoning:

whyloom bootstrap --root . --json

This indexes the repository and writes a bounded evidence manifest plus a review report under .whyloom/cache/bootstrap/. It does not change canonical records. Invoke the portable whyloom-bootstrap skill to inspect that evidence and create proposed records with explicit confidence, citations, and open questions.

Inferred rationale is never authoritative. A human must review it before changing its status to accepted or implemented.

Trust model

Whyloom separates implementation truth from project intent:

  • code is the source of truth for implementation;
  • tests are the source of truth for observed behavior;
  • accepted project records are the source of truth for intent and rationale;
  • the generated index is a cache, never an authority;
  • agent-generated knowledge enters as a proposal and requires normal Git review before becoming accepted truth.

Whyloom stores concise rationale and evidence, not private model chain-of-thought.

MVP

The first release proves one claim:

Linking decisions and constraints directly to code through a local graph gives agents more useful context, faster, than reading undifferentiated documentation.

The MVP includes:

  • Markdown records with YAML frontmatter;
  • nodes for files, symbols, decisions, and constraints;
  • typed links between records and implementation;
  • incremental local indexing;
  • full-text retrieval plus bounded graph traversal;
  • init, index, explain, context, impact, reflect, and validate commands;
  • a portable Claude Code/Codex-style skill that invokes the CLI;
  • fixtures and an A/B evaluation against plain repository documentation.

The MVP does not include a hosted service, accounts, cross-repository knowledge, a web dashboard, automatic acceptance of agent-authored records, or enterprise governance.

Repository documents

  • RATIONALE.md — why this should exist and how the hypothesis will be tested.
  • DESCRIPTION.md — users, workflows, requirements, and MVP boundaries.
  • STRUCTURE.md — repository layout, graph model, components, and command contracts.

Status

Beta CLI ready for real codebase pilots. The CLI initializes a repository, parses canonical records, incrementally indexes Python files into SQLite, retrieves bounded task context, explains and traces impact, validates record drift, and creates human-governed reflection proposals. The included skill and evaluation fixture exercise the same public command contract.

Development

uv sync --extra dev
uv run pytest -q
uv run whyloom index --json
uv run whyloom context "change graph storage safely" --json
uv run whyloom doctor --json
uv run python evals/runner.py

For agent calls, add --compact to context to return only governing record references, relevant files, warnings, and unresolved questions.

See docs/PRODUCTION_READINESS.md for guarantees, release gates, and explicit beta limits.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whyloom-0.4.0.tar.gz (34.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whyloom-0.4.0-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file whyloom-0.4.0.tar.gz.

File metadata

  • Download URL: whyloom-0.4.0.tar.gz
  • Upload date:
  • Size: 34.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whyloom-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e6f9e452f2fa1eb13cf5262fc731076957c0ae5083ca296149bd8ba6753ed16a
MD5 70709eb976235ca74644b94505423eef
BLAKE2b-256 732c275c087c75c1eb6f1cda6e504bdbd07096766b78ae295e7d457bad1f8235

See more details on using hashes here.

Provenance

The following attestation bundles were made for whyloom-0.4.0.tar.gz:

Publisher: release.yml on rafaelolsr/whyloom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whyloom-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: whyloom-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whyloom-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c19574ede6ed71486deba3d37e01d94e6c6ff58b308e77ceb9c107f80783390c
MD5 ac8864b4e0f1deb9d036c03efc93070f
BLAKE2b-256 07a411bb551396c8f42bb27cadaeda7b57c7767ed953a4a011fe125827e3b863

See more details on using hashes here.

Provenance

The following attestation bundles were made for whyloom-0.4.0-py3-none-any.whl:

Publisher: release.yml on rafaelolsr/whyloom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page