geethob 0.1.0 → 0.1.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.
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "hemant1996",
3
+ "description": "Hemant Bangar's Claude Code plugins.",
4
+ "owner": { "name": "Hemant Bangar" },
5
+ "plugins": [
6
+ {
7
+ "name": "geethob",
8
+ "source": { "source": "url", "url": "https://github.com/hemant1996/geethob.git" },
9
+ "description": "Turn git history into prose narrative. CLI + skill, local-only, BYO API key."
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "geethob",
3
+ "description": "Turn git history into prose narrative. Use when the user asks 'what changed in this repo,' 'summarize these commits,' 'narrate the history of <feature>,' or 'what did <person> ship last week.' Local-only, BYO API key.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Hemant Bangar"
7
+ },
8
+ "homepage": "https://github.com/hemant1996/geethob",
9
+ "repository": "https://github.com/hemant1996/geethob",
10
+ "license": "MIT",
11
+ "keywords": ["git", "github", "narrative", "changelog", "ai", "claude", "skill"]
12
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+
3
+ ## v0.1.1
4
+
5
+ - Slim the npm package from ~70 MB to ~700 KB by excluding the compiled Bun binary (`dist/geethob`) from the published tarball. The binary still ships via GitHub Releases for the single-binary install path; npm users only need the JS bundle.
6
+ - Ship the Claude Code plugin manifest (`.claude-plugin/`) and the bundled skill (`skills/narrate/`) inside the npm package, so a global install also lights up the plugin path once Claude Code's HTTPS-source bug lands a fix.
7
+ - Include `assets/logo.svg` in the package so README rendering doesn't 404 if viewed from the npm tarball.
8
+
9
+ ## v0.1.0
10
+
11
+ Initial release.
12
+
13
+ - `geethob story <scope>` — narrate the history of a local path or a public GitHub repo (`<owner>/<name>` form).
14
+ - `geethob digest --since 7d` — narrate recent activity for the current working tree, a single remote repo (`--repo`), or a GitHub user (`--author`, falls back to public events when no local repo applies).
15
+ - `geethob configure` — write `~/.config/geethob/config.toml` (mode 0600) with an Anthropic API key. Skipped automatically when `ANTHROPIC_API_KEY` is in the environment.
16
+ - Single-binary builds for macOS arm64, macOS x64, Linux x64 via `bun build --compile`.
17
+ - npm package (`bun add -g geethob` or `npm install -g geethob`) for Node ≥20.
18
+ - Claude Code skill via `skill/install.sh` and `skill/SKILL.md`.
19
+ - Hard cap of 200 commits per invocation (`--max-commits` to override), plus a token-budget pass that sheds oldest commits when the assembled prompt would exceed 150K tokens.
20
+ - Six documented exit codes (0 success, 1 usage, 2 no-git, 3 no-key, 4 model error, 5 GitHub auth/rate).
@@ -0,0 +1,55 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="256" height="256" role="img" aria-label="geethob logo: a smiling speech-bubble blob with a tiny git-graph inside">
2
+ <title>geethob</title>
3
+ <defs>
4
+ <linearGradient id="bodyGrad" x1="0" y1="0" x2="0" y2="1">
5
+ <stop offset="0%" stop-color="#FFB199"/>
6
+ <stop offset="100%" stop-color="#FF7A7A"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- speech-bubble blob body -->
11
+ <path d="
12
+ M 56 36
13
+ C 100 16, 156 16, 200 36
14
+ C 232 56, 240 96, 232 132
15
+ C 224 172, 188 200, 144 204
16
+ L 132 232
17
+ L 116 204
18
+ C 72 200, 36 172, 28 132
19
+ C 20 96, 28 56, 56 36
20
+ Z"
21
+ fill="url(#bodyGrad)"
22
+ stroke="#3D2B3D"
23
+ stroke-width="6"
24
+ stroke-linejoin="round"/>
25
+
26
+ <!-- left eye (smiling, commit-node shaped) -->
27
+ <circle cx="96" cy="110" r="10" fill="#FFFAF5"/>
28
+ <circle cx="98" cy="112" r="5" fill="#3D2B3D"/>
29
+
30
+ <!-- right eye -->
31
+ <circle cx="160" cy="110" r="10" fill="#FFFAF5"/>
32
+ <circle cx="162" cy="112" r="5" fill="#3D2B3D"/>
33
+
34
+ <!-- cheek dots (subtle warmth) -->
35
+ <circle cx="70" cy="140" r="6" fill="#FF5A5A" opacity="0.35"/>
36
+ <circle cx="186" cy="140" r="6" fill="#FF5A5A" opacity="0.35"/>
37
+
38
+ <!-- happy smile -->
39
+ <path d="M 100 152 Q 128 174, 156 152"
40
+ fill="none"
41
+ stroke="#3D2B3D"
42
+ stroke-width="6"
43
+ stroke-linecap="round"/>
44
+
45
+ <!-- tiny git-graph above the head: three commit nodes connected by a curve -->
46
+ <path d="M 86 64 Q 128 44, 170 64"
47
+ fill="none"
48
+ stroke="#3D2B3D"
49
+ stroke-width="4"
50
+ stroke-linecap="round"
51
+ opacity="0.85"/>
52
+ <circle cx="86" cy="64" r="6" fill="#FFFAF5" stroke="#3D2B3D" stroke-width="3"/>
53
+ <circle cx="128" cy="50" r="6" fill="#FFFAF5" stroke="#3D2B3D" stroke-width="3"/>
54
+ <circle cx="170" cy="64" r="6" fill="#FFFAF5" stroke="#3D2B3D" stroke-width="3"/>
55
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geethob",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Turn git history into prose narrative. Open-source CLI + AI-harness skill.",
5
5
  "type": "module",
6
6
  "module": "src/cli.ts",
@@ -8,10 +8,14 @@
8
8
  "geethob": "./dist/cli.js"
9
9
  },
10
10
  "files": [
11
- "dist/",
11
+ "dist/cli.js",
12
12
  "skill/",
13
+ "skills/",
14
+ ".claude-plugin/",
15
+ "assets/logo.svg",
13
16
  "README.md",
14
- "LICENSE"
17
+ "LICENSE",
18
+ "CHANGELOG.md"
15
19
  ],
16
20
  "scripts": {
17
21
  "dev": "bun run src/cli.ts",
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: narrate
3
+ description: Turn git history into prose narrative via the geethob CLI. Use when the user asks "what changed in this repo," "summarize these commits," "narrate the history of <feature>," "what did <person> ship last week," or any "tell me the story of …" question against a git repository or a GitHub user. Two modes — `story` (history of a repo/path) and `digest` (a developer's recent activity). Output is prose, not bullet lists.
4
+ ---
5
+
6
+ # narrate (geethob)
7
+
8
+ You have access to the `geethob` CLI, which turns git history into prose narrative. Use it whenever the user asks for a story-grained summary of code changes, instead of reading individual commits or diffs yourself.
9
+
10
+ ## When to invoke
11
+
12
+ Invoke geethob for any of these:
13
+
14
+ - "What changed in `<repo or path>` lately?"
15
+ - "Summarize the last N commits / week / month."
16
+ - "Tell me the story of how `<feature>` was built."
17
+ - "What did `<author>` ship this week?"
18
+ - Before extending an existing feature — pull a narrative of its history first to ground your work.
19
+
20
+ Do **not** invoke geethob for:
21
+
22
+ - Reading a specific PR or diff line-by-line — use `gh pr view` / `git show` instead.
23
+ - File-level code questions ("what does this function do") — read the file directly.
24
+ - Anything outside a git repository.
25
+
26
+ ## Usage
27
+
28
+ The binary lives on the user's `$PATH` as `geethob`. Run it via shell tool.
29
+
30
+ ### `geethob story <scope>`
31
+
32
+ Narrate the history of a path or repo.
33
+
34
+ ```bash
35
+ # Local repo, whole history (capped at 200 commits)
36
+ geethob story /path/to/repo
37
+
38
+ # Local repo, restricted to a subpath
39
+ geethob story /path/to/repo --path src/auth --since 30d
40
+
41
+ # Public GitHub repo
42
+ geethob story bun-sh/bun --max-commits 50
43
+
44
+ # Stream off (one-shot, useful if you're capturing output)
45
+ geethob story . --no-stream
46
+ ```
47
+
48
+ ### `geethob digest`
49
+
50
+ Narrate a developer's recent work.
51
+
52
+ ```bash
53
+ # Current working tree, last 7 days
54
+ geethob digest --since 7d
55
+
56
+ # A single remote repo
57
+ geethob digest --repo facebook/react --since 14d
58
+
59
+ # A specific developer's public activity (when no local repo applies)
60
+ geethob digest --author tj --since 7d
61
+ ```
62
+
63
+ ### `geethob configure`
64
+
65
+ Writes `~/.config/geethob/config.toml` with an Anthropic API key. Skip if `ANTHROPIC_API_KEY` is already in the environment.
66
+
67
+ ## Auth
68
+
69
+ - **Model API:** `ANTHROPIC_API_KEY` env var, or the stored config file.
70
+ - **GitHub (for remote scopes):** `gh auth status` session OR `GH_TOKEN` env var. Optional for `story` against a local clone.
71
+
72
+ ## Exit codes
73
+
74
+ - 0 — Success (including empty commit range, which is not an error)
75
+ - 1 — Usage error
76
+ - 2 — Not a git repo or `git` missing
77
+ - 3 — Missing/invalid Anthropic key
78
+ - 4 — Model API error after one retry
79
+ - 5 — GitHub auth required, rate limited, or repo not found
80
+
81
+ ## Notes for the agent
82
+
83
+ - Output is **prose**, not structured data. Don't post-process it into bullet lists.
84
+ - For long histories, geethob truncates to the most recent N commits and prints a warning. If the user needs older history, they should pass `--since <ref>` or raise `--max-commits`.
85
+ - geethob never sees the full diff — only commit messages + diffstats. This keeps narratives at the story grain. If the user needs line-level analysis, read the diff yourself.
86
+ - The `geethob` binary must already be on `$PATH`. If it's not, suggest the user install it via `npm install -g geethob` or the single-binary download from https://github.com/hemant1996/geethob/releases.
package/dist/geethob DELETED
Binary file