feat(plugin): ship the Scribe Claude Code plugin in-repo (marketplace + plugin)
Per operator: the plugin lives in the app repo so it ships and versions in
lockstep with the app and the /api/plugin/context contract it targets (same
co-location rationale as the former in-repo MCP). A git-cloned marketplace
supports relative plugin sources, so the FabledScribe repo IS the marketplace.
- .claude-plugin/marketplace.json — source ./plugin
- plugin/.claude-plugin/plugin.json — userConfig (base URL, api key, project id)
- plugin/.mcp.json — http scribe server, ${user_config.*} substitution
- plugin/hooks/ — SessionStart push-channel hook (fail-open)
- plugin/skills/using-scribe — bootstrap skill
- plugin/README.md — install via the FabledScribe repo marketplace
Phase 2 of plan #755. Install/userConfig-substitution test pending.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: using-scribe
|
||||
description: Use at the start of any session and before answering questions about the operator's work or starting a task — establishes the Scribe-first reflex (recall before acting, load standing rules, update over duplicate, plan in Scribe not in files).
|
||||
---
|
||||
|
||||
# Using Scribe
|
||||
|
||||
Scribe is the operator's self-hosted second brain (notes, tasks, projects,
|
||||
milestones, events, typed entities) and rulebook, reachable through the bundled
|
||||
`scribe` MCP server. Its value is mostly in what it **already holds** — so make
|
||||
reading it a reflex, not something you wait to be asked for.
|
||||
|
||||
## The reflex
|
||||
|
||||
1. **Recall before acting.** Before answering a question about the operator's
|
||||
work, or starting a task, `search` Scribe (and `list_tasks` / `list_notes`)
|
||||
for prior art — an existing ticket, decision, or dev-log — instead of
|
||||
re-deriving it or opening a duplicate. When a project is in scope, pass its
|
||||
`project_id` so results stay scoped.
|
||||
|
||||
2. **Standing rules are binding.** The SessionStart context lists the operator's
|
||||
always-on rule titles. Treat them as binding. Pull full text with
|
||||
`list_always_on_rules()` or `get_rule(id)` when a rule is about to bite.
|
||||
When a project is in scope, `enter_project(id)` also returns its applicable
|
||||
rules.
|
||||
|
||||
3. **Update over duplicate.** When recording, prefer updating an existing
|
||||
note/rule/task over creating a new one. Search first; revise what's there.
|
||||
|
||||
4. **Plans live in Scribe.** For non-trivial work call `start_planning(project_id,
|
||||
title)` FIRST — the plan body + step checklist live in the `kind=plan` task,
|
||||
progress goes in work-logs (`add_task_log`). Do not write plans/specs to local
|
||||
`.md` files.
|
||||
|
||||
5. **Keep state honest.** Set a task `in_progress` when you start it, `done` the
|
||||
moment it's complete; log progress as you go.
|
||||
|
||||
## Other Scribe process-skills
|
||||
|
||||
This plugin also ships focused process-skills — brainstorming, systematic
|
||||
debugging, test-driven development, writing-plans, verification, receiving code
|
||||
review. Reach for the matching one when its situation arises, the same way you
|
||||
reach for this skill.
|
||||
Reference in New Issue
Block a user