From 8c9ca45479b0bbbfc1f1c481110a76afcd6cd46a Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 3 Jun 2026 10:42:23 -0400 Subject: [PATCH] feat(mcp): instruct agents to keep a Scribe-rules pointer in host memory When a project subscribes to a rulebook, the agent should ensure the host's persistent memory carries a pointer that engineering/workflow rules live in Scribe (loaded via list_always_on_rules / enter_project), plus a one-line note of the current project's work. Pairs with the existing 'don't duplicate rules into memory' directive: memory holds the pointer + project context, Scribe holds the rules. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/fabledassistant/mcp/server.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/fabledassistant/mcp/server.py b/src/fabledassistant/mcp/server.py index 79de92b..d6b1a5b 100644 --- a/src/fabledassistant/mcp/server.py +++ b/src/fabledassistant/mcp/server.py @@ -68,6 +68,19 @@ creating a rule, call list_always_on_rules and list_rules(project_id=...) to avoid duplicates. Coordinate with the operator on whether a new rule belongs in a project, an existing rulebook+topic, or a new rulebook. +That boundary cuts the other way too. Because rules are pull-only, a fresh +session won't reach for them unless its always-loaded context says to. So +when the current project subscribes to a rulebook (enter_project / +get_project reports subscribed_rulebooks), make sure the host's persistent +memory — the CLAUDE.md / AGENTS.md / ~/.claude memory the client loads at +startup — carries a short pointer: that the engineering and workflow rules +for this work live in Scribe and must be loaded via list_always_on_rules (or +enter_project when a project is in scope), plus a one-line note of what the +current project is and what is in flight. Add or refresh that pointer when +it's missing or stale; never copy the rules' content into memory — the +pointer plus project context is the whole job. This is what lets the next +session reach for Scribe instead of trusting a stale local copy. + When you are working on a specific project, call enter_project(project_id) ONCE at session start (or whenever the active project changes). It returns the project, its applicable_rules + project_rules + subscribed_rulebooks, milestone