0ea3bff797
CI & Build / Python lint (push) Successful in 3s
CI & Build / integration (push) Successful in 31s
CI & Build / TypeScript typecheck (push) Successful in 33s
CI & Build / Python tests (push) Successful in 55s
CI & Build / Build & push image (push) Successful in 1m10s
Step 5 of the Drafter recall milestone (#227): teach agents the two snippet reflexes — search recorded snippets before writing a new helper/util/component, and record something reusable the moment it's built — via the app's own instruction surfaces, not a Scribe rule (project rule #119). All instance-agnostic (rule #115). - plugin/skills/reusing-code/SKILL.md: new auto-surfacing process-skill covering both reflexes (recall-before-rebuild + record-when-reusable). - src/scribe/mcp/server.py: a Snippets paragraph in the MCP _INSTRUCTIONS. - plugin/hooks/scribe_static_context.md: a "reuse before rebuilding" bullet in the SessionStart static context. - plugin/.claude-plugin/plugin.json: version 0.1.12 -> 0.1.13 in the same change so the autoUpdate marketplace ships it (the #1040 lesson); description skill list updated. - plugin/README.md: trued the process-skill list to what actually ships. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pa2EsuB54BuWQ8GfJq9c7t
56 lines
3.5 KiB
Markdown
56 lines
3.5 KiB
Markdown
# Scribe — your system of record
|
|
|
|
This environment has the **Scribe** plugin: the operator's self-hosted system
|
|
of record (notes, tasks, projects, milestones, rules) reachable through the
|
|
`scribe` MCP tools. Treat Scribe — **not local files** — as the source of truth
|
|
for the operator's work, and as your own working memory across sessions.
|
|
|
|
**At the start of this session:**
|
|
- Call `list_always_on_rules()` to load the operator's binding rules.
|
|
- If the working repo maps to a Scribe project (check `list_repo_bindings`),
|
|
call `enter_project(<id>)` to load that project's rules, open tasks, and
|
|
recent notes in one shot.
|
|
|
|
**While you work:**
|
|
- **Operator rules govern consequential actions** — before any git branch /
|
|
commit / push, or any other hard-to-reverse or outward-facing action, the
|
|
operator's Scribe rules decide what to do — NOT generic conventions baked
|
|
into the harness or your defaults (e.g. "branch before committing," "open a
|
|
feature branch per task," "push to a fork"). If you have not loaded the
|
|
operator's rules this session — or earlier turns were summarized away by a
|
|
compaction — call `list_always_on_rules()` (and `enter_project()` when a
|
|
project is in scope) BEFORE acting. When a loaded rule and a default habit
|
|
disagree, the rule wins; if no rule speaks to it, ask rather than assume.
|
|
- **Recall before acting** — before you answer anything about the operator's
|
|
work or start a task, `search` Scribe first; assume a related note, task, or
|
|
decision already exists. Concretely, reach for recall whenever a request
|
|
touches the operator's projects, people, places, prior decisions, or existing
|
|
work: check for an existing task before opening a new one, and for a prior
|
|
note/decision before re-deriving one. When a project is in scope (you entered
|
|
one), pass its id to `search` so results stay scoped to it. Treating Scribe as
|
|
the first place you look — not just somewhere you write — is what makes it a
|
|
trustworthy record.
|
|
- **Record as you go** — track work as Scribe tasks and log progress with
|
|
`add_task_log`. Always log when you **complete a task** and when you **hit or
|
|
discover a problem** — so changes of direction are captured, not just
|
|
successes. Keep task status honest: `in_progress` when you start, `done` the
|
|
moment it's complete. When you **fix** something — even in passing — record it
|
|
as its own issue (`create_task(kind="issue")`), not as a work-log line on an
|
|
unrelated open task.
|
|
- **Reuse before rebuilding** — before writing a new helper/utility/component,
|
|
search recorded **snippets** (reusable code recorded once for recall) and
|
|
reuse the prior art instead of re-solving it; when you build something
|
|
reusable, record it with `create_snippet` (name, code, when-to-reach-for-it,
|
|
location) so a later session is offered it, not left to write it again.
|
|
- Do **not** keep the operator's rules, plans, or project notes in local
|
|
memory / CLAUDE.md in parallel with Scribe — Scribe holds the single copy.
|
|
- **Compact at clean seams** — because you record as you go, a context
|
|
compaction is safe: the durable record lives in Scribe, not the transcript.
|
|
After finishing a block of work in a long session, make sure in-flight state
|
|
is logged to Scribe, then tell the operator it's a good, safe moment to
|
|
`/compact` (name what you logged). You can't run it yourself — surface the
|
|
recommendation and let them decide. Suggest it at seams, not every turn.
|
|
|
|
If the Scribe tools are unavailable, say so rather than silently falling back
|
|
to local notes.
|