Skip to content

Commit 3fdd2e0

Browse files
mpstatonclaude
andcommitted
update(chat, workspace): the crawl verbs join the chat commands palette + slash-shortcut recognition
The chat rail's commands toggle renders a client-side COMMANDS array that only knew /inbox and /promote-snapshot — the crawl capability was chat-legal but undiscoverable. /crawl-links, /crawl-streams, and /crawl-team land in the palette (arg = the org slug, the code chip on the org card), and WORKBENCH_CHAT_VERBS gains the matching VERB RECOGNITION SHORTCUTS plus the slug-shaped-input rule so didi invokes directly instead of asking when given a real slug. Rider on #33. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UvYzx7vDWeafnkAi2nEQeb
1 parent 5252efc commit 3fdd2e0

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

apps/chat/src/ChatSurface.svelte

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,27 @@
3434
summary: 'Emit a snapshot CSV — v(N+1) with corpus_* columns appended',
3535
example: 'Run between augmentation cycles to capture the prior cycle in the spine',
3636
},
37+
// didi crawls (v1.2) — organization.crawl, three targets. The argument
38+
// is the org slug (shown as the code chip on the org card); didi asks
39+
// rather than guessing when given a loose name.
40+
{
41+
verb: '/crawl-links',
42+
insert: '/crawl-links ',
43+
summary: 'didi crawls the web for the org’s identity & social links (candidates only)',
44+
example: '/crawl-links the-aspen-institute',
45+
},
46+
{
47+
verb: '/crawl-streams',
48+
insert: '/crawl-streams ',
49+
summary: 'didi crawls for the org’s pulse streams — blog/newsroom/RSS/newsletters',
50+
example: '/crawl-streams the-aspen-institute',
51+
},
52+
{
53+
verb: '/crawl-team',
54+
insert: '/crawl-team ',
55+
summary: 'didi crawls for relevant team members (selection per the relevance brief)',
56+
example: '/crawl-team the-aspen-institute',
57+
},
3758
];
3859
3960
let commandsOpen = $state<boolean>(false);

services/workspace/src/chat.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,13 @@ organization.crawl — didi crawls the web for one organization. Three targets:
121121
122122
CRAWL DISCIPLINE:
123123
- The crawl returns CANDIDATES only — nothing is written until the operator accepts rows. It is slow (tens of seconds); tell the user it's running.
124-
- Requires an org_slug. If the user names an organization, resolve it via context or ask; never guess a slug.
124+
- Requires an org_slug. If the user names an organization, resolve it via context or ask; never guess a slug. Slug-shaped input (lowercase, hyphenated) IS the slug — use it directly.
125+
126+
VERB RECOGNITION SHORTCUTS:
127+
- "/crawl-links <org-slug>" → chat_invoke organization.crawl with target "links".
128+
- "/crawl-streams <org-slug>" → chat_invoke organization.crawl with target "streams".
129+
- "/crawl-team <org-slug>" → chat_invoke organization.crawl with target "team".
130+
- Natural phrasings ("crawl for relevant pulse streams for X", "find X's team members") map to the same targets — chat_invoke when the org is unambiguous, chat_propose otherwise.
125131
`;
126132

127133
// Slab 3 — active skills. Empty in v0.0.1; cache breakpoint reserved.

0 commit comments

Comments
 (0)