parrat 0.1.0-beta.5
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.
- package/README.md +116 -0
- package/assets/parrat-logo-dark.png +0 -0
- package/assets/parrat-logo-light.png +0 -0
- package/assets/parrat-name-dark.png +0 -0
- package/assets/parrat-name-light.png +0 -0
- package/dist/index.js +2056 -0
- package/dist/index.js.map +1 -0
- package/examples/custom-skill/README.md +25 -0
- package/examples/custom-skill/index.ts +87 -0
- package/package.json +69 -0
package/README.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/parrat-logo-dark.png">
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset="assets/parrat-logo-light.png">
|
|
5
|
+
<img src="assets/parrat-logo-light.png" width="80" alt="Parrat" />
|
|
6
|
+
</picture><br />
|
|
7
|
+
<picture>
|
|
8
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/parrat-name-dark.png">
|
|
9
|
+
<source media="(prefers-color-scheme: light)" srcset="assets/parrat-name-light.png">
|
|
10
|
+
<img src="assets/parrat-name-light.png" width="160" alt="Parrat" />
|
|
11
|
+
</picture>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">AI-powered root cause analysis for data incidents.</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="https://www.npmjs.com/package/parrat"><img src="https://img.shields.io/npm/v/parrat" alt="npm version" /></a>
|
|
18
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="Apache 2.0" /></a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
Smart engineers shouldn't spend their evenings chasing breakage across vendor walls. Parrat puts the toil where it belongs: on the agent, not the human.
|
|
24
|
+
|
|
25
|
+
Parrat is an open-source CLI that uses Claude to investigate data incidents. Point it at your data stack, describe the problem, and get a root cause in under 90 seconds — with a full audit trail.
|
|
26
|
+
|
|
27
|
+
**Validated across 11 live investigations with 100% correct root causes at an average cost of $0.07 per investigation.**
|
|
28
|
+
|
|
29
|
+
## How it works
|
|
30
|
+
|
|
31
|
+
Parrat runs **Skills** — pre-codified investigation playbooks that reason across your stack using a deliberately thin set of tools. Each Skill gives Claude access to only the tools it needs for that specific investigation, producing predictable, auditable reasoning paths.
|
|
32
|
+
|
|
33
|
+
Every run writes to an append-only audit log. Every run is replayable.
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
parrat run freshness-investigation
|
|
37
|
+
parrat run metric-drop-rca
|
|
38
|
+
parrat run lineage-analysis
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Skills
|
|
42
|
+
|
|
43
|
+
| Skill | What it investigates |
|
|
44
|
+
|---|---|
|
|
45
|
+
| `freshness-investigation` | Why is this source stale? Which downstream models are at risk? |
|
|
46
|
+
| `metric-drop-rca` | Why did this metric drop? Which upstream model caused it? |
|
|
47
|
+
| `lineage-analysis` | What does this model depend on, and what depends on it? |
|
|
48
|
+
|
|
49
|
+
## Prerequisites
|
|
50
|
+
|
|
51
|
+
- Node.js 20+
|
|
52
|
+
- [dbt-mcp](https://github.com/dbt-labs/dbt-mcp) running and accessible
|
|
53
|
+
- `ANTHROPIC_API_KEY` (set in environment or `.env` file)
|
|
54
|
+
|
|
55
|
+
## Install
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install -g parrat
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Configure
|
|
62
|
+
|
|
63
|
+
Create a `parrat.config.yaml` in your project root:
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
mcp:
|
|
67
|
+
command: uvx
|
|
68
|
+
args: ["dbt-mcp"]
|
|
69
|
+
|
|
70
|
+
skills:
|
|
71
|
+
freshness-investigation:
|
|
72
|
+
enabled: true
|
|
73
|
+
metric-drop-rca:
|
|
74
|
+
enabled: true
|
|
75
|
+
lineage-analysis:
|
|
76
|
+
enabled: true
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
See [`examples/snowflake/`](examples/snowflake/) for a complete configuration example.
|
|
80
|
+
|
|
81
|
+
## Verify your setup
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
parrat doctor
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This checks Node version, API key, config file, and dbt-mcp connectivity before you run your first investigation.
|
|
88
|
+
|
|
89
|
+
## Run an investigation
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
parrat run freshness-investigation
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Parrat reads your data stack, reasons about what broke, and returns a structured root cause with confidence rating. The full reasoning chain is logged to `.parrat/audit.jsonl`.
|
|
96
|
+
|
|
97
|
+
## Replay any investigation
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
parrat replay <run_id>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Every investigation is replayable — every tool call, every Claude turn, input tokens, output tokens, cost, and duration.
|
|
104
|
+
|
|
105
|
+
## Examples
|
|
106
|
+
|
|
107
|
+
- [`examples/snowflake/`](examples/snowflake/) — configuration for Snowflake + dbt
|
|
108
|
+
- [`examples/custom-skill/`](examples/custom-skill/) — write your own investigation Skill in TypeScript
|
|
109
|
+
|
|
110
|
+
## License
|
|
111
|
+
|
|
112
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
Built by [Raguvind Tharanitharan](https://raguvind.com).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|