feat(plugin): Scribe replaces native memory by instruction; tighten project-scope discipline
Direction change (operator, see plan task #755 work-log): the plugin must NOT depend on disabling a native Claude function to work. It earns its place by steering behavior, not by toggling autoMemoryEnabled. Memory doctrine (no dual-write): - using-scribe SKILL.md gains "Scribe holds these functions — don't keep a second copy": route rules/recall/planning to Scribe, don't also write them to native auto-memory, never instruct disabling a native function, and accept a "Scribe-shaped hole" if the plugin is removed (recover over time). - mcp/server.py _INSTRUCTIONS: drop the paragraph that told the model to create/refresh a "rules live in Scribe" pointer in CLAUDE.md / ~/.claude memory. That was an active dual-write instruction; the SessionStart hook is the bridge now. Replaced with the no-dual-write / no-settings-dependency doctrine. Supersedes plan #755 Phase 6 ("set autoMemoryEnabled:false"). Project-scope discipline (stop cross-project bleed): - using-scribe SKILL.md gains "Stay inside the active project's scope": pass project_id to every read, only reference/offer work on the in-scope project, ask before switching. - _INSTRUCTIONS scope bullet extended from reads to referencing/offering, and flags get_recent as cross-project. - get_recent docstring gains a scope note steering to scoped list_* when a project is active. plugin.json 0.1.4 -> 0.1.5 so clients' caches actually refresh (re-shipping under the same version does not bust the cache). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,10 @@ async def get_recent(days: int = 7, limit: int = 25) -> dict:
|
||||
Returns:
|
||||
{"items": [{"id", "type", "title", "updated_at"}], "total": int}
|
||||
Sorted by updated_at descending.
|
||||
|
||||
Scope note: this spans ALL projects and takes no project filter. When a
|
||||
project is in scope, prefer list_tasks(project_id=...) /
|
||||
list_notes(project_id=...) so you don't surface other projects' activity.
|
||||
"""
|
||||
uid = current_user_id()
|
||||
days = max(1, min(days, 90))
|
||||
|
||||
Reference in New Issue
Block a user