Decision Graph banner
vietqtran vietqtran

Decision Graph

AI community

Description

Decision memory layer for AI-assisted codebases — trả lời 'logic nghiệp vụ này có từ bao giờ, ai quyết, vì sao'. Markdown là nguồn sự thật, SQLite FTS5 để search, MCP server cho AI agent.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

decision-graph

**English** · [Tiếng Việt](README.vi.md)

[![CI](https://github.com/vietqtran/decision-graph/actions/workflows/ci.yml/badge.svg)](https://github.com/vietqtran/decision-graph/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)

**Decision memory for codebases worked on by AI agents.**

A code graph tells you *what* the code does. `decision-graph` tells you *why it is that way* — when a business rule appeared, who decided it, what alternatives were rejected, and whether the decision still holds.

`git blame` gives you a commit message. It does not tell you that a customer's CTO asked for a second approval tier in a meeting, that a separate module was considered and rejected as unmergeable, or that the threshold was lowered six months later by someone else.

Language- and framework-agnostic. Works in any repo.

Why

The pain is sharpest when one base product is extended per customer — but it shows up anywhere business logic accumulates:

  • An agent "improves" a rule that was deliberately written that way for one tenant.
  • Nobody remembers whether an odd-looking branch is a bug or a requirement.
  • The same rejected approach gets proposed again every few months.
  • Decisions live in Slack threads, ticket comments, and people's heads.

AI agents make this worse, because they have no implicit memory of the last six months of meetings — but they *will* follow a written record if one exists.

Design principles

  • Markdown is the source of truth. One .md file per decision, in git, reviewable in a PR.
  • SQLite is only an index. Delete decisions/_index/ and rebuild any time.
  • Agents may not invent decided_by. An agent can only create a draft; promoting it to active requires a human.
  • Recording is a side effect of coding, not a chore to remember — hooks prompt at the r