diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index 0eb3307..80f298a 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "scribe", "description": "Scribe for Claude Code: connects the scribe MCP server, adds the hooks that deliver live project state and relevant records at the right moment, ships the shared client-neutral Scribe skills (using-scribe, writing-plans, reporting-back, systematic-debugging, verification, brainstorming, reusing-code, shape-accounting), and syncs your saved Scribe Processes as skills (/scribe:sync).", - "version": "2026.09.21.0253", + "version": "2026.09.21.0300", "author": { "name": "Bryan Van Deusen" }, diff --git a/src/scribe/mcp/server.py b/src/scribe/mcp/server.py index 2163ef4..dfe1f4f 100644 --- a/src/scribe/mcp/server.py +++ b/src/scribe/mcp/server.py @@ -34,42 +34,37 @@ from quart import Quart # for space before the ownership split (milestones 317, 333, 409) is in # decision #4027 and the notes it supersedes. _INSTRUCTIONS = """ -Scribe is the operator's system of record for their work, and yours: recall -from it before acting, record in it as you go, and keep one copy here rather -than in local memory files. +Scribe is the operator's system of record, and yours: recall before acting, +record as you go, keep one copy here rather than in local memory files. -Every reflex below is stated in full in the using-scribe skill (if your -client reads Agent Skills) and in each tool's description. The index: +Each reflex is stated in full in the using-scribe skill (if your client reads +Agent Skills) and each tool's description. The index: - ORIENT: enter_project(id) loads the project, open work, Systems and design system. An `inception` key: ask what it inherits, then decide_project_inception. - RULES: nothing preloads; a rule arrives when your work matches it. Before a - consequential act — or before handing work back unsure you may finish it — - what_might_apply("what you are about to do"): fifty ranked - candidates, no bar. search(content_type="rule") reads one you already - suspect. Silence means nothing matched, not none. Rules bind; preferences - guide and you keep them current; lessons inform. -- MISSED: a rule that missed you is a trigger to fix, not a - floor to move (retrieval_telemetry). -- JUDGE: you are the judge of record here — what a shape is, whether a - finding holds, whether work is done. Surfacing one for the operator to - rule on is the judgment NOT made, however well it is written up. Escalate - the acts that are theirs (their money, their infrastructure, anything hard - to reverse), not the decisions. Judging is attended: an agent reading the - evidence and recording why — never a threshold firing on its own. + consequential act, what_might_apply("what you are about to do") — fifty + ranked, no bar. search(content_type="rule") reads one you suspect. Silence + means nothing matched, not none. Rules bind; preferences guide and you keep + them current; lessons inform. +- MISSED: a rule that missed you is a trigger to fix, not a floor to move + (retrieval_telemetry). +- JUDGE: you are the judge of record — what a shape is, whether a finding + holds, whether work is done. Surfacing one for them to rule on is the + judgment not made. Escalate their acts, not your decisions. - RECALL: search before acting, scoped with the active project_id. - RECORD: create_task; a fix is kind="issue". add_task_log as you go; status - in_progress on start, done on finish. Tag system_ids as you write. -- PLAN work with an arc: find the existing plan first + in_progress on start, done on finish. Tag system_ids. +- PLAN with an arc: find the existing plan first (search(content_type="milestone")) and add steps to it; else - start_planning(steps=[...]). The plan is a milestone, each step a task. -- IDS exist only once a create returns them. Records that cite each other go + start_planning(steps=[...]). +- IDS exist only once a create returns them. Records citing each other go through create_records, writing {{ref:N}} for the Nth record. - REUSE: search snippets before building; create_snippet what you build. - UI: the project's design system binds; resolve_design_system before hand-writing a value. -- REPORT back from the `placement` a task write returns: where the work sits, - what changed, what needs the operator, what comes next. +- REPORT from the `placement` a task write returns: where it sits, what + changed, what needs them, what next. Creates are duplicate-gated: a near-match returns the existing id to update. shared:true records are another user's suggestion, not settled practice.