CI & Build / Python lint (push) Successful in 4s
CI & Build / Plugin hooks (push) Successful in 12s
CI & Build / integration (push) Successful in 27s
CI & Build / TypeScript typecheck (push) Successful in 35s
CI & Build / Python tests (push) Failing after 42s
CI & Build / Build & push image (push) Skipped
The judgment write path. classify_shapes applies a batch of classifications to a project's live ledger rows — all-or-nothing (#2709's lesson: the whole batch is validated, write-ACL'd, and every snippet target proven readable before any row is touched); rows match by exact (path, symbol), kind narrows, and shapes no live row matches come back as 'unmatched' rather than errors. variant/exempt REQUIRE the reason — the why is the record (note 2786) — and 'unclassified' deliberately withdraws a judgment back to the todo. The 'via' channel is caller-restricted to agent|audit|import; hook and mechanical stay server-internal so a caller can't launder judgment as machinery. list_shapes is the todo query (status=unclassified) with composable filters: path is exact-or-under like recorded locations, snippet_id reads a consumer map, include_vanished reads history; paged with the true total. get_snippet now attaches and — the structured consumer map, filtered to projects the CALLER can read so a shared snippet never side- channels another project's file layout; attached only when non-empty (#2483). Integration tests pin the batch atomicity, ACL gates, filter composition, the consumer map on the MCP pull, and the SET NULL companion: a judgment whose snippet was purged rejoins the todo on the next sync. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
30 lines
901 B
Python
30 lines
901 B
Python
"""MCP tool implementations.
|
|
|
|
Each tool module exposes a `register(mcp)` function that attaches its tools
|
|
to a FastMCP instance. `register_all(mcp)` is the single entry point called
|
|
from `mcp.server.build_mcp_server`.
|
|
"""
|
|
from scribe.mcp.tools import (
|
|
design_systems, milestones, notes, processes, projects, recent, repos, rulebooks, search, shapes,
|
|
snippets, systems, tags, tasks, trash,
|
|
)
|
|
|
|
|
|
def register_all(mcp) -> None:
|
|
"""Register every tool module's tools on the given FastMCP instance."""
|
|
search.register(mcp)
|
|
notes.register(mcp)
|
|
tasks.register(mcp)
|
|
projects.register(mcp)
|
|
milestones.register(mcp)
|
|
systems.register(mcp)
|
|
design_systems.register(mcp)
|
|
tags.register(mcp)
|
|
recent.register(mcp)
|
|
repos.register(mcp)
|
|
processes.register(mcp)
|
|
snippets.register(mcp)
|
|
shapes.register(mcp)
|
|
rulebooks.register(mcp)
|
|
trash.register(mcp)
|