ruminate 0.0.1

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Finn Bodimeade
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.
package/README.md ADDED
@@ -0,0 +1,81 @@
1
+ # Ruminate
2
+
3
+ Persistent memory and task context for coding agents.
4
+
5
+ ```sh
6
+ npx ruminate init
7
+ ```
8
+
9
+ > **Status:** pre-release. This package currently reserves the name and prints a pointer
10
+ > to [ruminate.so](https://ruminate.so). `init` ships in `0.1.0`.
11
+
12
+ ## What it does
13
+
14
+ Ruminate reads a repository you already have checked out and writes a `.ruminate/`
15
+ directory describing what the project is, how it is built, and how it fits together. That
16
+ directory is plain Markdown, committed alongside your code, so any coding agent — Claude
17
+ Code, Cursor, Codex, whatever comes next — starts with the context a new teammate would
18
+ get on their first day instead of rediscovering it every session. It runs locally, needs
19
+ no account and no API key, and finishes in seconds.
20
+
21
+ ## Demo
22
+
23
+ <!-- asciinema -->
24
+
25
+ ## What gets created
26
+
27
+ ```
28
+ .ruminate/
29
+ ├── project.md # what this is, stack, entrypoints, how to run
30
+ ├── architecture.md # major components and how they relate
31
+ ├── context.md # merged existing agent context (AGENTS.md, CLAUDE.md, …)
32
+ ├── tasks.md # unfinished work, in a shape agents can pick up
33
+ ├── decisions.md # choices worth not relitigating
34
+ └── manifest.json # file hashes, scan timestamp, version
35
+ ```
36
+
37
+ Commit it. It is written for humans and agents to read the same way, with stable headings
38
+ and deterministic ordering, so re-running `init` produces a clean diff rather than churn.
39
+
40
+ ## How it works
41
+
42
+ `ruminate init` resolves your git root, walks the tree while respecting every applicable
43
+ `.gitignore`, and reads your manifests (`package.json`, `pyproject.toml`, `Cargo.toml`,
44
+ `go.mod`, and friends) to identify the stack and entrypoints. It then ranks files by
45
+ import centrality — how much of the codebase depends on them — to find the parts that
46
+ actually matter.
47
+
48
+ Existing agent context files are treated as authoritative. If your repo already has an
49
+ `AGENTS.md`, a `CLAUDE.md`, or `.cursorrules`, what they say wins over anything Ruminate
50
+ infers.
51
+
52
+ Re-running `init` will not overwrite your edits. Ruminate hashes what it wrote, reports
53
+ what has drifted since, and requires `--force` before replacing anything you changed by
54
+ hand.
55
+
56
+ ## Privacy
57
+
58
+ No telemetry. No analytics. No phone-home. The first pass makes no network calls at all
59
+ and requires no API key — everything it produces comes from files already on your disk.
60
+
61
+ ## Requirements
62
+
63
+ Node.js 20 or newer.
64
+
65
+ ## Contributing
66
+
67
+ After a release is published, verify it from the registry rather than from a local
68
+ checkout:
69
+
70
+ ```sh
71
+ scripts/verify-release.sh # defaults to ruminate@latest
72
+ scripts/verify-release.sh ruminate@0.0.1
73
+ ```
74
+
75
+ It runs `npx` against the published package in a clean temp directory with a cold cache,
76
+ so it exercises the registry fetch, the bin shim and the shebang — the path a new user
77
+ actually takes. It exits non-zero and loudly on any failure.
78
+
79
+ ## Licence
80
+
81
+ MIT
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ console.log('ruminate: not released yet — follow along at https://ruminate.so');
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "ruminate",
3
+ "version": "0.0.1",
4
+ "description": "Persistent memory and task context for coding agents",
5
+ "type": "module",
6
+ "bin": { "ruminate": "bin/ruminate.js" },
7
+ "files": ["bin"],
8
+ "keywords": [
9
+ "ai",
10
+ "agents",
11
+ "coding-agent",
12
+ "context",
13
+ "memory",
14
+ "cli",
15
+ "codebase",
16
+ "mcp"
17
+ ],
18
+ "engines": { "node": ">=20" },
19
+ "license": "MIT",
20
+ "author": "Finn Bodimeade",
21
+ "homepage": "https://ruminate.so",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/getruminate/ruminate.git"
25
+ }
26
+ }