A canon is only urged on a shape that could be it, the ledger can say what looks wrong, and the agent is the judge #173

Merged
bvandeusen merged 7 commits from dev into main 2026-09-20 23:07:04 -04:00
2 changed files with 20 additions and 25 deletions
Showing only changes of commit e87bcfa48c - Show all commits
+1 -1
View File
@@ -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"
},
+19 -24
View File
@@ -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.