degraph 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- degraph-1.0.0/LICENSE +21 -0
- degraph-1.0.0/PKG-INFO +165 -0
- degraph-1.0.0/README.md +127 -0
- degraph-1.0.0/pyproject.toml +64 -0
- degraph-1.0.0/refs/Understand-Anything/LICENSE +21 -0
- degraph-1.0.0/refs/Understand-Anything/README.md +308 -0
- degraph-1.0.0/refs/Understand-Anything/homepage/README.md +43 -0
- degraph-1.0.0/refs/cognee/LICENSE +201 -0
- degraph-1.0.0/refs/cognee/README.md +332 -0
- degraph-1.0.0/refs/cognee/cognee/tasks/codingagents/README.md +120 -0
- degraph-1.0.0/refs/cognee/cognee/tasks/summarization/README.md +102 -0
- degraph-1.0.0/refs/cognee/cognee/tasks/web_scraper/README.md +136 -0
- degraph-1.0.0/refs/cognee/cognee/tests/tasks/translation/README.md +147 -0
- degraph-1.0.0/refs/cognee/cognee-frontend/README.md +36 -0
- degraph-1.0.0/refs/cognee/cognee-mcp/README.md +544 -0
- degraph-1.0.0/refs/cognee/cognee-starter-kit/README.md +101 -0
- degraph-1.0.0/refs/cognee/deployment/helm/README.md +35 -0
- degraph-1.0.0/refs/cognee/distributed/deploy/README.md +199 -0
- degraph-1.0.0/refs/cognee/evals/README.md +73 -0
- degraph-1.0.0/refs/cognee/evals/old/comparative_eval/README.md +40 -0
- degraph-1.0.0/refs/cognee/examples/README.md +85 -0
- degraph-1.0.0/refs/cognee/examples/pocs/disambiguation/README.md +75 -0
- degraph-1.0.0/refs/cognee/licenses/README.md +4 -0
- degraph-1.0.0/refs/cognee/logs/README.md +31 -0
- degraph-1.0.0/refs/decision-graph/README.md +431 -0
- degraph-1.0.0/refs/decision-graph/docs/README.md +119 -0
- degraph-1.0.0/refs/graphiti/LICENSE +201 -0
- degraph-1.0.0/refs/graphiti/README.md +675 -0
- degraph-1.0.0/refs/graphiti/examples/azure-openai/README.md +154 -0
- degraph-1.0.0/refs/graphiti/examples/gliner2/README.md +52 -0
- degraph-1.0.0/refs/graphiti/examples/opentelemetry/README.md +32 -0
- degraph-1.0.0/refs/graphiti/examples/quickstart/README.md +128 -0
- degraph-1.0.0/refs/graphiti/mcp_server/README.md +683 -0
- degraph-1.0.0/refs/graphiti/mcp_server/docker/README.md +264 -0
- degraph-1.0.0/refs/graphiti/mcp_server/tests/README.md +312 -0
- degraph-1.0.0/refs/graphiti/server/README.md +78 -0
- degraph-1.0.0/refs/graphiti/tests/evals/data/longmemeval_data/README.md +3 -0
- degraph-1.0.0/refs/mem0/LICENSE +201 -0
- degraph-1.0.0/refs/mem0/README.md +246 -0
- degraph-1.0.0/refs/mem0/cli/README.md +136 -0
- degraph-1.0.0/refs/mem0/cli/node/README.md +337 -0
- degraph-1.0.0/refs/mem0/cli/python/README.md +349 -0
- degraph-1.0.0/refs/mem0/docs/README.md +32 -0
- degraph-1.0.0/refs/mem0/embedchain/LICENSE +201 -0
- degraph-1.0.0/refs/mem0/embedchain/README.md +125 -0
- degraph-1.0.0/refs/mem0/embedchain/docs/README.md +25 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/api_server/README.md +3 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/chainlit/README.md +17 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/chat-pdf/README.md +32 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/discord_bot/README.md +9 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/mistral-streamlit/README.md +7 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/nextjs/README.md +129 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/private-ai/README.md +26 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/rest-api/README.md +21 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/rest-api/configs/README.md +3 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/sadhguru-ai/README.md +19 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/telegram_bot/README.md +3 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/unacademy-ai/README.md +19 -0
- degraph-1.0.0/refs/mem0/embedchain/examples/whatsapp_bot/README.md +3 -0
- degraph-1.0.0/refs/mem0/evaluation/README.md +198 -0
- degraph-1.0.0/refs/mem0/examples/yt-assistant-chrome/README.md +88 -0
- degraph-1.0.0/refs/mem0/mem0-plugin/README.md +178 -0
- degraph-1.0.0/refs/mem0/mem0-plugin/skills/mem0/LICENSE +189 -0
- degraph-1.0.0/refs/mem0/mem0-plugin/skills/mem0/README.md +73 -0
- degraph-1.0.0/refs/mem0/mem0-ts/README.md +64 -0
- degraph-1.0.0/refs/mem0/mem0-ts/src/oss/README.md +177 -0
- degraph-1.0.0/refs/mem0/openclaw/LICENSE +201 -0
- degraph-1.0.0/refs/mem0/openclaw/README.md +372 -0
- degraph-1.0.0/refs/mem0/openmemory/README.md +168 -0
- degraph-1.0.0/refs/mem0/openmemory/api/README.md +60 -0
- degraph-1.0.0/refs/mem0/server/README.md +126 -0
- degraph-1.0.0/refs/mem0/skills/README.md +49 -0
- degraph-1.0.0/refs/mem0/skills/mem0/LICENSE +189 -0
- degraph-1.0.0/refs/mem0/skills/mem0/README.md +91 -0
- degraph-1.0.0/refs/mem0/skills/mem0-cli/LICENSE +189 -0
- degraph-1.0.0/refs/mem0/skills/mem0-cli/README.md +102 -0
- degraph-1.0.0/refs/mem0/skills/mem0-integrate/LICENSE +189 -0
- degraph-1.0.0/refs/mem0/skills/mem0-integrate/README.md +89 -0
- degraph-1.0.0/refs/mem0/skills/mem0-test-integration/LICENSE +189 -0
- degraph-1.0.0/refs/mem0/skills/mem0-test-integration/README.md +81 -0
- degraph-1.0.0/refs/mem0/skills/mem0-vercel-ai-sdk/LICENSE +189 -0
- degraph-1.0.0/refs/mem0/skills/mem0-vercel-ai-sdk/README.md +87 -0
- degraph-1.0.0/refs/mem0/vercel-ai-sdk/README.md +234 -0
- degraph-1.0.0/refs/memgpt/LICENSE +190 -0
- degraph-1.0.0/refs/memgpt/README.md +122 -0
- degraph-1.0.0/refs/memgpt/certs/README.md +9 -0
- degraph-1.0.0/refs/memgpt/letta/local_llm/README.md +3 -0
- degraph-1.0.0/refs/memgpt/letta/plugins/README.md +22 -0
- degraph-1.0.0/refs/memgpt/sandbox/resources/server/README.md +15 -0
- degraph-1.0.0/src/deg/__init__.py +7 -0
- degraph-1.0.0/src/deg/cli.py +469 -0
- degraph-1.0.0/src/deg/compiler.py +143 -0
- degraph-1.0.0/src/deg/constraints.py +294 -0
- degraph-1.0.0/src/deg/contradiction.py +199 -0
- degraph-1.0.0/src/deg/dismissed.py +45 -0
- degraph-1.0.0/src/deg/embeddings.py +192 -0
- degraph-1.0.0/src/deg/graph.py +584 -0
- degraph-1.0.0/src/deg/ingest.py +175 -0
- degraph-1.0.0/src/deg/integrity.py +287 -0
- degraph-1.0.0/src/deg/maintenance.py +391 -0
- degraph-1.0.0/src/deg/mcp_server.py +190 -0
- degraph-1.0.0/src/deg/retrieval.py +276 -0
- degraph-1.0.0/src/deg/schemas.py +117 -0
- degraph-1.0.0/src/deg/setup.py +207 -0
- degraph-1.0.0/src/deg/skill/SKILL.md +256 -0
- degraph-1.0.0/src/deg/skill/deg_rules.yaml +17 -0
- degraph-1.0.0/src/deg/skill/hooks.json +39 -0
- degraph-1.0.0/src/deg/skill/mcp.json +9 -0
- degraph-1.0.0/src/deg/staleness.py +138 -0
- degraph-1.0.0/src/deg/state.py +47 -0
- degraph-1.0.0/src/deg/temporal.py +62 -0
- degraph-1.0.0/src/deg/triggers.py +80 -0
- degraph-1.0.0/src/deg/trust.py +242 -0
degraph-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rahul Kumar
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
degraph-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: degraph
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Decision-Evidence Graph: traceable, challengeable, temporal decision provenance for AI agents
|
|
5
|
+
Project-URL: Homepage, https://github.com/rkstu/deg
|
|
6
|
+
Project-URL: Repository, https://github.com/rkstu/deg
|
|
7
|
+
Project-URL: Issues, https://github.com/rkstu/deg/issues
|
|
8
|
+
Author-email: Rahul Kumar <rahulkc.dev@gmail.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: adr,ai-agents,architecture-decision-records,claude,context,cursor,decisions,knowledge-graph,mcp,memory,provenance,session-memory,temporal
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
21
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
22
|
+
Classifier: Typing :: Typed
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Requires-Dist: click>=8.0
|
|
25
|
+
Requires-Dist: pydantic>=2.0
|
|
26
|
+
Requires-Dist: pyyaml>=6.0
|
|
27
|
+
Provides-Extra: all
|
|
28
|
+
Requires-Dist: deg[graph,mcp,search]; extra == 'all'
|
|
29
|
+
Provides-Extra: graph
|
|
30
|
+
Requires-Dist: networkx>=3.0; extra == 'graph'
|
|
31
|
+
Provides-Extra: mcp
|
|
32
|
+
Requires-Dist: mcp>=1.0; extra == 'mcp'
|
|
33
|
+
Provides-Extra: search
|
|
34
|
+
Requires-Dist: faiss-cpu>=1.7; extra == 'search'
|
|
35
|
+
Requires-Dist: numpy>=1.24; extra == 'search'
|
|
36
|
+
Requires-Dist: sentence-transformers>=2.2; extra == 'search'
|
|
37
|
+
Description-Content-Type: text/markdown
|
|
38
|
+
|
|
39
|
+
# DEG — Decision-Evidence Graph
|
|
40
|
+
|
|
41
|
+
Persistent decision memory for AI agents. DEG records WHY decisions were made, WHAT alternatives were rejected, and WHEN to reconsider — across sessions, with full provenance. It integrates as a Claude Code skill (via MCP + hooks) so decisions are captured and queried automatically, with zero manual documentation maintenance.
|
|
42
|
+
|
|
43
|
+
## Quick Start
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install deg[mcp]
|
|
47
|
+
cd my-project
|
|
48
|
+
deg init --goal "Build a fraud detector" --phase "Research"
|
|
49
|
+
deg setup
|
|
50
|
+
# Restart Claude Code — DEG is now active
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## What Happens After Setup
|
|
54
|
+
|
|
55
|
+
Claude Code will automatically:
|
|
56
|
+
|
|
57
|
+
- Record decisions with evidence, alternatives, and reconsider-if triggers
|
|
58
|
+
- Surface stale decisions when triggers fire (time-based, metric drift, dependency changes)
|
|
59
|
+
- Trace provenance chains when you ask "why did we choose X?"
|
|
60
|
+
- Challenge decisions when new evidence contradicts them
|
|
61
|
+
- Hand off session state so the next session starts with full context
|
|
62
|
+
|
|
63
|
+
You don't invoke DEG manually. It runs reflexively via hooks and MCP tools.
|
|
64
|
+
|
|
65
|
+
## Core Operations
|
|
66
|
+
|
|
67
|
+
| Operation | Description |
|
|
68
|
+
|-----------|-------------|
|
|
69
|
+
| `status()` | Project state, stale alerts, and next actions |
|
|
70
|
+
| `decide()` | Record a decision with evidence, alternatives, and reconsider_if |
|
|
71
|
+
| `evidence()` | Record a finding with source, confidence, and temporal validity |
|
|
72
|
+
| `search(query)` | Hybrid semantic + keyword + graph-walk retrieval |
|
|
73
|
+
| `trace(id)` | Full upstream provenance chain (BFS) |
|
|
74
|
+
| `challenge(id)` | Check validity, triggers, evidence health, and alternatives |
|
|
75
|
+
| `impact(id)` | Downstream cascade — all affected nodes |
|
|
76
|
+
| `continue_research(id)` | Next searches, open questions, and look_for directives |
|
|
77
|
+
| `close_session()` | Save state for the next session |
|
|
78
|
+
| `compile()` | Incremental YAML-to-JSONL+FAISS compilation |
|
|
79
|
+
|
|
80
|
+
## CLI Commands
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
deg init Initialize a DEG project (creates decisions/, evidence/, .deg/)
|
|
84
|
+
deg setup Configure Claude Code skill (CLAUDE.md + MCP + hooks)
|
|
85
|
+
deg status Show project state and stale alerts
|
|
86
|
+
deg decide Record a decision interactively
|
|
87
|
+
deg evidence Record evidence interactively
|
|
88
|
+
deg search Search the decision graph
|
|
89
|
+
deg trace Trace provenance for a node
|
|
90
|
+
deg challenge Challenge a decision's validity
|
|
91
|
+
deg impact Show downstream impact of a node
|
|
92
|
+
deg continue Show next steps for a research thread
|
|
93
|
+
deg close Close session and save state
|
|
94
|
+
deg compile Force recompilation of all sources
|
|
95
|
+
deg export Export graph as JSON/DOT/Mermaid
|
|
96
|
+
deg serve Start MCP server (for non-Claude clients)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## MCP Tools
|
|
100
|
+
|
|
101
|
+
DEG exposes 9 tools via MCP for any compatible AI client:
|
|
102
|
+
|
|
103
|
+
| Tool | Purpose |
|
|
104
|
+
|------|---------|
|
|
105
|
+
| `deg_status` | Get project state and alerts |
|
|
106
|
+
| `deg_decide` | Record a decision |
|
|
107
|
+
| `deg_evidence` | Record evidence |
|
|
108
|
+
| `deg_search` | Query the decision graph |
|
|
109
|
+
| `deg_trace` | Get provenance chain |
|
|
110
|
+
| `deg_challenge` | Challenge a decision |
|
|
111
|
+
| `deg_impact` | Get downstream cascade |
|
|
112
|
+
| `deg_continue_research` | Get next research steps |
|
|
113
|
+
| `deg_close_session` | Save session state |
|
|
114
|
+
|
|
115
|
+
## How It Works
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
decisions/ YAML frontmatter markdown (human-readable, git-friendly)
|
|
119
|
+
evidence/ Same format for findings, measurements, sources
|
|
120
|
+
.deg/
|
|
121
|
+
index.jsonl Compiled node index
|
|
122
|
+
graph.jsonl Edge list
|
|
123
|
+
embeddings.faiss IDMap2(FlatL2) vector index
|
|
124
|
+
state.yaml Session handoff state
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Architecture:
|
|
128
|
+
|
|
129
|
+
1. Decisions and evidence are stored as markdown files with YAML frontmatter
|
|
130
|
+
2. `deg compile` incrementally hashes and indexes them into `.deg/` (content-hash dedup, ~100x embedding savings)
|
|
131
|
+
3. Claude accesses the graph via MCP tools during conversation
|
|
132
|
+
4. Hooks auto-fire `deg status` on session start and `deg close` on session end
|
|
133
|
+
5. Retrieval is hybrid: semantic (FAISS) + keyword (BM25-like) + graph walk (Personalized PageRank)
|
|
134
|
+
6. DEG itself makes zero LLM calls — all intelligence comes from the host agent
|
|
135
|
+
|
|
136
|
+
Latency: status 0.6ms, decide/evidence 22ms, search 6ms, trace/impact <1ms.
|
|
137
|
+
|
|
138
|
+
## Ecosystem
|
|
139
|
+
|
|
140
|
+
DEG handles decision provenance. For full agent context, pair with:
|
|
141
|
+
|
|
142
|
+
- **Understand-Anything** — code structure graph (replaces architecture docs)
|
|
143
|
+
- **TinyFish** — web research with source tracking
|
|
144
|
+
- **Probe-Ratchet** — deterministic experiment loops with automatic evidence capture
|
|
145
|
+
- **ML-Intern** — deep literature research agent (feeds evidence into DEG)
|
|
146
|
+
|
|
147
|
+
Together with DEG, these replace all manually-maintained .md files except a minimal CLAUDE.md.
|
|
148
|
+
|
|
149
|
+
## Install Options
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
pip install deg[mcp] # Recommended: MCP server + CLI + hooks
|
|
153
|
+
pip install deg # Minimal: CLI only, no MCP
|
|
154
|
+
pip install deg[all] # Full: adds local FAISS semantic search
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Requirements
|
|
158
|
+
|
|
159
|
+
- Python 3.10+
|
|
160
|
+
- Claude Code (or any MCP-compatible client)
|
|
161
|
+
- No API keys needed — DEG makes zero external calls
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
MIT
|
degraph-1.0.0/README.md
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# DEG — Decision-Evidence Graph
|
|
2
|
+
|
|
3
|
+
Persistent decision memory for AI agents. DEG records WHY decisions were made, WHAT alternatives were rejected, and WHEN to reconsider — across sessions, with full provenance. It integrates as a Claude Code skill (via MCP + hooks) so decisions are captured and queried automatically, with zero manual documentation maintenance.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install deg[mcp]
|
|
9
|
+
cd my-project
|
|
10
|
+
deg init --goal "Build a fraud detector" --phase "Research"
|
|
11
|
+
deg setup
|
|
12
|
+
# Restart Claude Code — DEG is now active
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## What Happens After Setup
|
|
16
|
+
|
|
17
|
+
Claude Code will automatically:
|
|
18
|
+
|
|
19
|
+
- Record decisions with evidence, alternatives, and reconsider-if triggers
|
|
20
|
+
- Surface stale decisions when triggers fire (time-based, metric drift, dependency changes)
|
|
21
|
+
- Trace provenance chains when you ask "why did we choose X?"
|
|
22
|
+
- Challenge decisions when new evidence contradicts them
|
|
23
|
+
- Hand off session state so the next session starts with full context
|
|
24
|
+
|
|
25
|
+
You don't invoke DEG manually. It runs reflexively via hooks and MCP tools.
|
|
26
|
+
|
|
27
|
+
## Core Operations
|
|
28
|
+
|
|
29
|
+
| Operation | Description |
|
|
30
|
+
|-----------|-------------|
|
|
31
|
+
| `status()` | Project state, stale alerts, and next actions |
|
|
32
|
+
| `decide()` | Record a decision with evidence, alternatives, and reconsider_if |
|
|
33
|
+
| `evidence()` | Record a finding with source, confidence, and temporal validity |
|
|
34
|
+
| `search(query)` | Hybrid semantic + keyword + graph-walk retrieval |
|
|
35
|
+
| `trace(id)` | Full upstream provenance chain (BFS) |
|
|
36
|
+
| `challenge(id)` | Check validity, triggers, evidence health, and alternatives |
|
|
37
|
+
| `impact(id)` | Downstream cascade — all affected nodes |
|
|
38
|
+
| `continue_research(id)` | Next searches, open questions, and look_for directives |
|
|
39
|
+
| `close_session()` | Save state for the next session |
|
|
40
|
+
| `compile()` | Incremental YAML-to-JSONL+FAISS compilation |
|
|
41
|
+
|
|
42
|
+
## CLI Commands
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
deg init Initialize a DEG project (creates decisions/, evidence/, .deg/)
|
|
46
|
+
deg setup Configure Claude Code skill (CLAUDE.md + MCP + hooks)
|
|
47
|
+
deg status Show project state and stale alerts
|
|
48
|
+
deg decide Record a decision interactively
|
|
49
|
+
deg evidence Record evidence interactively
|
|
50
|
+
deg search Search the decision graph
|
|
51
|
+
deg trace Trace provenance for a node
|
|
52
|
+
deg challenge Challenge a decision's validity
|
|
53
|
+
deg impact Show downstream impact of a node
|
|
54
|
+
deg continue Show next steps for a research thread
|
|
55
|
+
deg close Close session and save state
|
|
56
|
+
deg compile Force recompilation of all sources
|
|
57
|
+
deg export Export graph as JSON/DOT/Mermaid
|
|
58
|
+
deg serve Start MCP server (for non-Claude clients)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## MCP Tools
|
|
62
|
+
|
|
63
|
+
DEG exposes 9 tools via MCP for any compatible AI client:
|
|
64
|
+
|
|
65
|
+
| Tool | Purpose |
|
|
66
|
+
|------|---------|
|
|
67
|
+
| `deg_status` | Get project state and alerts |
|
|
68
|
+
| `deg_decide` | Record a decision |
|
|
69
|
+
| `deg_evidence` | Record evidence |
|
|
70
|
+
| `deg_search` | Query the decision graph |
|
|
71
|
+
| `deg_trace` | Get provenance chain |
|
|
72
|
+
| `deg_challenge` | Challenge a decision |
|
|
73
|
+
| `deg_impact` | Get downstream cascade |
|
|
74
|
+
| `deg_continue_research` | Get next research steps |
|
|
75
|
+
| `deg_close_session` | Save session state |
|
|
76
|
+
|
|
77
|
+
## How It Works
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
decisions/ YAML frontmatter markdown (human-readable, git-friendly)
|
|
81
|
+
evidence/ Same format for findings, measurements, sources
|
|
82
|
+
.deg/
|
|
83
|
+
index.jsonl Compiled node index
|
|
84
|
+
graph.jsonl Edge list
|
|
85
|
+
embeddings.faiss IDMap2(FlatL2) vector index
|
|
86
|
+
state.yaml Session handoff state
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Architecture:
|
|
90
|
+
|
|
91
|
+
1. Decisions and evidence are stored as markdown files with YAML frontmatter
|
|
92
|
+
2. `deg compile` incrementally hashes and indexes them into `.deg/` (content-hash dedup, ~100x embedding savings)
|
|
93
|
+
3. Claude accesses the graph via MCP tools during conversation
|
|
94
|
+
4. Hooks auto-fire `deg status` on session start and `deg close` on session end
|
|
95
|
+
5. Retrieval is hybrid: semantic (FAISS) + keyword (BM25-like) + graph walk (Personalized PageRank)
|
|
96
|
+
6. DEG itself makes zero LLM calls — all intelligence comes from the host agent
|
|
97
|
+
|
|
98
|
+
Latency: status 0.6ms, decide/evidence 22ms, search 6ms, trace/impact <1ms.
|
|
99
|
+
|
|
100
|
+
## Ecosystem
|
|
101
|
+
|
|
102
|
+
DEG handles decision provenance. For full agent context, pair with:
|
|
103
|
+
|
|
104
|
+
- **Understand-Anything** — code structure graph (replaces architecture docs)
|
|
105
|
+
- **TinyFish** — web research with source tracking
|
|
106
|
+
- **Probe-Ratchet** — deterministic experiment loops with automatic evidence capture
|
|
107
|
+
- **ML-Intern** — deep literature research agent (feeds evidence into DEG)
|
|
108
|
+
|
|
109
|
+
Together with DEG, these replace all manually-maintained .md files except a minimal CLAUDE.md.
|
|
110
|
+
|
|
111
|
+
## Install Options
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
pip install deg[mcp] # Recommended: MCP server + CLI + hooks
|
|
115
|
+
pip install deg # Minimal: CLI only, no MCP
|
|
116
|
+
pip install deg[all] # Full: adds local FAISS semantic search
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Requirements
|
|
120
|
+
|
|
121
|
+
- Python 3.10+
|
|
122
|
+
- Claude Code (or any MCP-compatible client)
|
|
123
|
+
- No API keys needed — DEG makes zero external calls
|
|
124
|
+
|
|
125
|
+
## License
|
|
126
|
+
|
|
127
|
+
MIT
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "degraph"
|
|
3
|
+
version = "1.0.0"
|
|
4
|
+
description = "Decision-Evidence Graph: traceable, challengeable, temporal decision provenance for AI agents"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
license = "MIT"
|
|
8
|
+
authors = [{name = "Rahul Kumar", email = "rahulkc.dev@gmail.com"}]
|
|
9
|
+
keywords = [
|
|
10
|
+
"decisions", "provenance", "ai-agents", "memory", "mcp",
|
|
11
|
+
"knowledge-graph", "architecture-decision-records", "adr",
|
|
12
|
+
"claude", "cursor", "context", "session-memory", "temporal",
|
|
13
|
+
]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"License :: OSI Approved :: MIT License",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3.10",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Programming Language :: Python :: 3.13",
|
|
23
|
+
"Topic :: Software Development :: Documentation",
|
|
24
|
+
"Topic :: Software Development :: Quality Assurance",
|
|
25
|
+
"Typing :: Typed",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
dependencies = [
|
|
29
|
+
"pyyaml>=6.0",
|
|
30
|
+
"pydantic>=2.0",
|
|
31
|
+
"click>=8.0",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[project.optional-dependencies]
|
|
35
|
+
search = [
|
|
36
|
+
"sentence-transformers>=2.2",
|
|
37
|
+
"faiss-cpu>=1.7",
|
|
38
|
+
"numpy>=1.24",
|
|
39
|
+
]
|
|
40
|
+
graph = [
|
|
41
|
+
"networkx>=3.0",
|
|
42
|
+
]
|
|
43
|
+
mcp = [
|
|
44
|
+
"mcp>=1.0",
|
|
45
|
+
]
|
|
46
|
+
all = ["deg[search,graph,mcp]"]
|
|
47
|
+
|
|
48
|
+
[project.urls]
|
|
49
|
+
Homepage = "https://github.com/rkstu/deg"
|
|
50
|
+
Repository = "https://github.com/rkstu/deg"
|
|
51
|
+
Issues = "https://github.com/rkstu/deg/issues"
|
|
52
|
+
|
|
53
|
+
[project.scripts]
|
|
54
|
+
deg = "deg.cli:main"
|
|
55
|
+
|
|
56
|
+
[build-system]
|
|
57
|
+
requires = ["hatchling"]
|
|
58
|
+
build-backend = "hatchling.build"
|
|
59
|
+
|
|
60
|
+
[tool.hatch.build.targets.wheel]
|
|
61
|
+
packages = ["src/deg"]
|
|
62
|
+
|
|
63
|
+
[tool.hatch.build.targets.sdist]
|
|
64
|
+
include = ["src/deg/**", "README.md", "LICENSE"]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yuxiang Lin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|