From f446573c3dd33ac944db5544b87f2500495d9887 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 3 Jun 2026 11:01:55 -0400 Subject: [PATCH] feat(mcp): proactive project bootstrapping at session start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds an always-on _INSTRUCTIONS directive: when work touches Scribe and no project is in scope, search for a related project and propose enter_project (confirm first), or offer to create one (confirm name/goal first) — never silently adopt or create. Pairs with the enter_project handshake and the host-memory pointer directive. Closes scribe task #585. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/fabledassistant/mcp/server.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/fabledassistant/mcp/server.py b/src/fabledassistant/mcp/server.py index bfd1cd3..e360897 100644 --- a/src/fabledassistant/mcp/server.py +++ b/src/fabledassistant/mcp/server.py @@ -89,6 +89,17 @@ summary, open tasks, and recent notes — everything you need to know the lay of the land before mutating. Don't call get_project + get_applicable_rules + a search separately when enter_project already composes them. +Don't wait to be told which project you're in. At the start of a session that +touches Scribe — or the moment work clearly belongs to a project but none is in +scope — bootstrap project context proactively: search for a related existing +project (search / list_projects, matching on the work's subject, the repo or +directory name, and recent activity). If you find a confident match, propose it +and call enter_project once the operator confirms. If nothing matches, offer to +create a project, confirming its name and goal first. Always confirm before +adopting or creating — never do either silently, and never guess a project into +existence. Once a project is in scope, the enter_project handshake and the +host-memory pointer step above both apply. + Plans are tasks with kind=plan, and Scribe is the canonical home for them. When you begin non-trivial work, call start_planning(project_id, title) FIRST — before any brainstorming, design, or plan-writing skill runs. start_planning