ajhahn.de
← eeco-claude-plugin commits

Commit

eeco-claude-plugin

feat(hooks): bundle SessionStart briefer

Add hooks/hooks.json so installing the plugin auto-injects eeco's
deterministic, no-AI-spend project brief at session start via
`eeco hooks session-emit` (startup, resume, clear). The hook makes no
AI call, emits nothing in a non-eeco repo, and no-ops when eeco is not on
PATH. Bump plugin to v0.2.0; document install=consent in the README; add
hooks/hooks.json to CI validity and existence checks.

ajhahnde · May 2026 · 400ff57c12b3c345da2c924d1c91ad564882f894 · view on GitHub →

modified .claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "eeco",
"version": "0.1.0",
"version": "0.2.0",
"description": "Claude Code commands for eeco — assemble the context brief, run the no-AI-spend knowledge search, and file friction reports straight from the binary.",
"author": {
"name": "Anton Hahn"
modified .github/workflows/ci.yml
@@ -16,6 +16,7 @@ jobs:
run: |
jq empty .claude-plugin/plugin.json
jq empty .claude-plugin/marketplace.json
jq empty hooks/hooks.json
- name: Check required files exist
run: |
@@ -25,3 +26,4 @@ jobs:
test -f commands/go.md
test -f commands/ask.md
test -f commands/report-bug.md
test -f hooks/hooks.json
modified CHANGELOG.md
@@ -7,6 +7,17 @@ The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This plugin
follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.2.0] - 2026-05-30
### Added
- A bundled **SessionStart briefer** hook (`hooks/hooks.json`). On session
startup, resume, or clear it runs `eeco hooks session-emit` and injects
eeco's deterministic, no-AI-spend project brief as context. It makes no AI
call, emits nothing in a non-eeco repo, and no-ops when `eeco` is not on
`PATH`. Claude Code activates the hook when the plugin is enabled
(install = consent); disabling or uninstalling the plugin removes it.
## [0.1.0] - 2026-05-30
### Added
@@ -22,4 +33,5 @@ follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
`/plugin install eeco@ajhahnde`).
- Requires the `eeco` binary on `PATH`; the plugin bundles no binary.
[0.2.0]: https://github.com/ajhahnde/eeco-claude-plugin/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/ajhahnde/eeco-claude-plugin/releases/tag/v0.1.0
modified README.md
@@ -14,9 +14,10 @@
---
This plugin adds three user-triggered slash commands to Claude Code that shell
out to the [`eeco`](https://github.com/ajhahnde/eeco) binary. It bundles no
binary and makes no AI calls of its own — each command runs `eeco` locally and
This plugin connects Claude Code to the [`eeco`](https://github.com/ajhahnde/eeco)
binary: three user-triggered slash commands and a SessionStart briefer that
grounds each session in your project's deterministic context. It bundles no
binary and makes no AI calls of its own — everything runs `eeco` locally and
brings its output into your conversation.
## Prerequisites
@@ -51,6 +52,22 @@ From inside Claude Code:
through `--note TEXT`, `--cmd CMD`. Example:
`/eeco:report-bug --note "brief was slow" --cmd "eeco go"`.
## What installing wires up
Beyond the slash commands, installing this plugin activates a **SessionStart
briefer**: at the start of a session (startup, resume, or clear) it runs
`eeco hooks session-emit` and injects eeco's deterministic, no-AI-spend project
brief as context — so Claude begins each session already grounded in your
knowledge layer.
The briefer is read-only and quiet: it makes **no AI call**, emits **nothing**
in a non-eeco repo, and no-ops harmlessly when `eeco` isn't on your `PATH`. It
never blocks or slows a session.
**Install = consent.** Claude Code activates a plugin's bundled hooks when you
enable the plugin — there is no separate per-hook prompt. Disabling or
uninstalling the plugin removes the hook.
## Feedback
Hit a rough edge? Use **`/eeco:report-bug`** — it records the friction locally
added hooks/hooks.json
@@ -0,0 +1,12 @@
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume|clear",
"hooks": [
{ "type": "command", "command": "eeco hooks session-emit", "timeout": 10 }
]
}
]
}
}