Descopes task #755's Phase 1 push channel to optional and makes the pull path load-bearing.
Why: the SessionStart hook can't reliably deliver a sensitive API token to its subprocess — upstream Claude Code bug anthropics/claude-code#62442 (sensitive plugin userConfig is not persisted and is absent on a normal session). So standing rules can't depend on that push.
Change:plugin/skills/using-scribe/SKILL.md now owns rule-loading actively — description names the first action (list_always_on_rules / enter_project), a new "Do this first" block instructs an explicit pull, and the SessionStart hook is demoted to a bonus, not a precondition. The hook + hooks.json are left in place (they fail-open and resume adding value if #62442 is fixed or the token is made non-sensitive).
Also folds in the already-merged-to-dev removal of the pre-plugin dogfood hook script.
CI note: the paths: filter in .forgejo/workflows/ci.yml does not include plugin/**, so these plugin/skill + script changes legitimately trigger no CI run — there is no typecheck/lint/test/build surface for static skill markdown.
Descopes task #755's Phase 1 push channel to optional and makes the pull path load-bearing.
**Why:** the SessionStart hook can't reliably deliver a *sensitive* API token to its subprocess — upstream Claude Code bug [anthropics/claude-code#62442](https://github.com/anthropics/claude-code/issues/62442) (sensitive plugin `userConfig` is not persisted and is absent on a normal session). So standing rules can't depend on that push.
**Change:** `plugin/skills/using-scribe/SKILL.md` now owns rule-loading actively — description names the first action (`list_always_on_rules` / `enter_project`), a new "Do this first" block instructs an explicit pull, and the SessionStart hook is demoted to a bonus, not a precondition. The hook + `hooks.json` are left in place (they fail-open and resume adding value if #62442 is fixed or the token is made non-sensitive).
Also folds in the already-merged-to-dev removal of the pre-plugin dogfood hook script.
**CI note:** the `paths:` filter in `.forgejo/workflows/ci.yml` does not include `plugin/**`, so these plugin/skill + script changes legitimately trigger no CI run — there is no typecheck/lint/test/build surface for static skill markdown.
Refs #755
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Superseded by the plugin's own SessionStart hook (plugin/hooks/). This root
scripts/ copy read the now-deleted project .mcp.json (dead scribe-dev /
devassistant host), so it could never fire. Single Scribe environment now,
reached only via the Scribe plugin MCP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The SessionStart push channel cannot reliably deliver a sensitive API
token to the hook subprocess (upstream Claude Code bug anthropics/
claude-code#62442 — sensitive plugin userConfig is not persisted and is
absent on a normal session). Stop depending on that push for standing
rules: make the using-scribe bootstrap skill own the load instead.
- description: name the FIRST ACTION (list_always_on_rules + enter_project
when a repo/project is in scope) so it auto-surfaces at session start
- add a 'Do this first' block instructing an active pull; demote the
SessionStart hook to a bonus, not a precondition (it fail-opens and may
be absent)
- reflex step 2: rules come from list_always_on_rules(), not from an
assumed SessionStart injection
The hook + hooks.json are left in place: they fail-open and resume adding
value automatically if #62442 is fixed or the token is made non-sensitive.
Refs #755 (Phase 1: push channel descoped to optional; pull is load-bearing)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Descopes task #755's Phase 1 push channel to optional and makes the pull path load-bearing.
Why: the SessionStart hook can't reliably deliver a sensitive API token to its subprocess — upstream Claude Code bug anthropics/claude-code#62442 (sensitive plugin
userConfigis not persisted and is absent on a normal session). So standing rules can't depend on that push.Change:
plugin/skills/using-scribe/SKILL.mdnow owns rule-loading actively — description names the first action (list_always_on_rules/enter_project), a new "Do this first" block instructs an explicit pull, and the SessionStart hook is demoted to a bonus, not a precondition. The hook +hooks.jsonare left in place (they fail-open and resume adding value if #62442 is fixed or the token is made non-sensitive).Also folds in the already-merged-to-dev removal of the pre-plugin dogfood hook script.
CI note: the
paths:filter in.forgejo/workflows/ci.ymldoes not includeplugin/**, so these plugin/skill + script changes legitimately trigger no CI run — there is no typecheck/lint/test/build surface for static skill markdown.Refs #755
🤖 Generated with Claude Code