Commit
eeco-claude-plugin
fix(hooks): briefer passes --if-initialized so it's silent in non-eeco repos
The bundled SessionStart briefer now runs `eeco hooks session-emit --if-initialized`, so it emits only inside an initialized eeco workspace. A repo that merely has a README/CHANGELOG no longer triggers it, making the v0.2.0 "silent in non-eeco repos" claim true. Requires eeco >= v1.15.0 (older binaries ignore the flag and keep the previous docs-driven behavior).
modified .claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "eeco",
"version": "0.2.0",
"version": "0.2.1",
"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 CHANGELOG.md
@@ -7,6 +7,18 @@ 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.1] - 2026-05-30
### Fixed
- The bundled **SessionStart briefer** is now truly silent in non-eeco
repos. It passes `eeco hooks session-emit --if-initialized`, so the brief
emits only inside an initialized eeco workspace — a repo that merely has a
`README.md`/`CHANGELOG.md` no longer triggers it. Makes the v0.2.0
"emits nothing in a non-eeco repo" claim accurate. **Requires eeco ≥
v1.15.0**; older binaries silently ignore the flag and keep the previous
(docs-driven) behavior.
## [0.2.0] - 2026-05-30
### Added
@@ -33,5 +45,6 @@ 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.1]: https://github.com/ajhahnde/eeco-claude-plugin/compare/v0.2.0...v0.2.1
[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
@@ -56,13 +56,14 @@ From inside Claude Code:
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.
`eeco hooks session-emit --if-initialized` 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.
in a non-eeco repo (it only briefs inside an initialized eeco workspace —
requires eeco ≥ v1.15.0 for that gate), 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
modified hooks/hooks.json
@@ -4,7 +4,7 @@
{
"matcher": "startup|resume|clear",
"hooks": [
{ "type": "command", "command": "eeco hooks session-emit", "timeout": 10 }
{ "type": "command", "command": "eeco hooks session-emit --if-initialized", "timeout": 10 }
]
}
]