Compare commits

...

6 Commits

Author SHA1 Message Date
394201038a chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-28:
  - update .custodian-brief.md for the-custodian
2026-03-28 01:33:25 +01:00
aa88a53db2 feat(mcp): add create_topic tool
POST /topics/ was already implemented in the REST API but had no MCP
wrapper, so agents couldn't create topics (e.g. inter_hub) via MCP.
Tool follows the same pattern as create_domain.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 01:32:52 +01:00
9d7d1f0647 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-28:
  - update .custodian-brief.md for the-custodian
2026-03-28 01:15:10 +01:00
4549cdd362 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-28:
  - update .custodian-brief.md for the-custodian
2026-03-28 00:59:16 +01:00
a5585de51e chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-28:
  - update .custodian-brief.md for the-custodian
2026-03-28 00:43:43 +01:00
434baf2fa0 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-28:
  - update .custodian-brief.md for the-custodian
2026-03-28 00:28:14 +01:00
2 changed files with 25 additions and 3 deletions

View File

@@ -1,12 +1,15 @@
<!-- custodian-brief: generated by fix-consistency — do not edit manually -->
# Custodian Brief — the-custodian
**Domain:** custodian
**Last synced:** 2026-03-27 23:11 UTC
**Domain:** railiance
**Last synced:** 2026-03-28 00:33 UTC
**State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)*
## Active Workstreams
### Cross-Repo E2E Sandbox Framework
Progress: 8/8 done | workstream_id: `b68de20b-e397-4f97-b1be-ad30711fc2a6`
### FOS Hub Bootstrap — Identity, Hub Extraction, Ops Hub, Fin Hub
Progress: 0/26 done | workstream_id: `293a74fe-a85a-4ad6-8933-23d52a72fe8b`
@@ -61,6 +64,6 @@ Progress: 0/9 done | workstream_id: `9cc32158-2f5c-4ef6-9713-aacce4623d5e`
## MCP Orientation (when available)
If the state-hub MCP server is reachable, call:
`get_domain_summary("custodian")`
`get_domain_summary("railiance")`
This provides richer cross-domain context.
If the MCP call fails, use this file as your orientation source.

View File

@@ -273,6 +273,25 @@ def get_topic(slug: str) -> str:
return json.dumps({"topic": topic_detail, "recent_progress": recent}, indent=2)
@mcp.tool()
def create_topic(slug: str, title: str, domain: str, description: str | None = None) -> str:
"""Create a new topic under an existing domain.
Args:
slug: URL-safe identifier, e.g. "inter_hub" (must be unique).
title: Human-readable name, e.g. "Inter-Hub Federation".
domain: Domain slug the topic belongs to, e.g. "custodian".
description: Optional one-sentence description.
Returns the created TopicRead on success, or an error dict if the slug
already exists or the domain is not found.
"""
payload: dict = {"slug": slug, "title": title, "domain": domain}
if description:
payload["description"] = description
return json.dumps(_post("/topics", payload), indent=2)
@mcp.tool()
def list_tasks(workstream_id: str, status: str | None = None) -> str:
"""List all tasks in a workstream, optionally filtered by status.