From dfa83f1f5fb3b03c4237954c14941b1150487d8d Mon Sep 17 00:00:00 2001 From: lmjabreu Date: Thu, 18 Jun 2026 00:02:56 +0100 Subject: [PATCH 1/2] docs(thread): document group IDs in --notify help text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `tdc thread reply/create --notify` already accepts custom group IDs (partitioned via resolveNotifyIds → groups), but the help text only mentioned "user IDs". Since Comms group IDs are non-numeric base58 strings that look nothing like user IDs, the capability was effectively undiscoverable from --help. Mention groups in both option descriptions and add a group-notify example to the reply command's existing example block (alongside --close / --file). No behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/commands/thread/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/thread/index.ts b/src/commands/thread/index.ts index c5dab3c..8fead5f 100644 --- a/src/commands/thread/index.ts +++ b/src/commands/thread/index.ts @@ -50,7 +50,7 @@ Examples: withUnvalidatedChoices( new Option( '--notify ', - 'Notification recipients: EVERYONE, EVERYONE_IN_THREAD, or comma-separated user IDs (default: EVERYONE_IN_THREAD)', + 'Notification recipients: EVERYONE, EVERYONE_IN_THREAD, or comma-separated user and/or group IDs (default: EVERYONE_IN_THREAD)', ), ['EVERYONE', 'EVERYONE_IN_THREAD'], ), @@ -68,6 +68,7 @@ Examples: tdc thread reply 12345 "Sounds good!" echo "Long reply" | tdc thread reply 12345 tdc thread reply 12345 "Done" --close --json + tdc thread reply 12345 "Heads up" --notify 67890,Cbzzm11ZeYZoJYD4a6rti tdc thread reply 12345 "See attached" --file ./diagram.png tdc thread reply 12345 --file ./a.png --file ./b.pdf`, ) @@ -76,7 +77,7 @@ Examples: thread .command('create [content]') .description('Create a new thread in a channel') - .option('--notify <recipients>', 'Comma-separated user IDs to notify') + .option('--notify <recipients>', 'Comma-separated user and/or group IDs to notify') .option( '--unarchive', 'Unarchive after creation so the thread appears in your Inbox (overrides userSettings.unarchiveNewThreads when false)', From 0e3d2fbd6b3402b8d6578da14e85698c6619175c Mon Sep 17 00:00:00 2001 From: lmjabreu <hello@lmjabreu.com> Date: Thu, 18 Jun 2026 07:49:43 +0100 Subject: [PATCH 2/2] docs(skill): sync SKILL_CONTENT --notify examples with group support Per AGENTS.md, src/lib/skills/content.ts must track command-description and example changes. The reply/create --notify examples said "users" only; make them mention groups and add a group-notify example (base58 group ID next to a numeric user ID). Regenerated skills/comms-cli/SKILL.md via `sync:skill`; check:skill-sync passes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --- skills/comms-cli/SKILL.md | 7 ++++--- src/lib/skills/content.ts | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/skills/comms-cli/SKILL.md b/skills/comms-cli/SKILL.md index 8e6fe8c..bb3a864 100644 --- a/skills/comms-cli/SKILL.md +++ b/skills/comms-cli/SKILL.md @@ -90,14 +90,15 @@ tdc thread view <ref> --raw # Show raw markdown tdc thread create <channel-ref> "Title" "content" # Create a new thread tdc thread create <channel-ref> "Title" "content" --json # Create and return as JSON tdc thread create <channel-ref> "Title" "content" --json --full # Include all thread fields -tdc thread create <channel-ref> "Title" "content" --notify 123,456 # Notify specific users +tdc thread create <channel-ref> "Title" "content" --notify 123,456 # Notify specific users and/or groups by ID tdc thread create <channel-ref> "Title" "content" --unarchive # Land thread in author's Inbox (overrides default Comms auto-archive) tdc thread create <channel-ref> "Title" "content" --no-unarchive # Force archive even when userSettings.unarchiveNewThreads=true tdc thread create <channel-ref> "Title" "content" --dry-run # Preview without posting tdc thread create <channel-ref> "Title" --file ./a.png # Attach a file (repeatable; content optional) tdc thread reply <ref> "content" # Post a comment (notifies EVERYONE_IN_THREAD by default) tdc thread reply <ref> "content" --notify EVERYONE # Notify all workspace members -tdc thread reply <ref> "content" --notify 123,id:456 # Notify specific user IDs +tdc thread reply <ref> "content" --notify 123,id:456 # Notify specific users by ID +tdc thread reply <ref> "content" --notify 123,Cbzzm11ZeYZoJYD4a6rti # Notify a user and a group (group IDs are base58, not numeric) tdc thread reply <ref> "content" --json # Post and return comment as JSON tdc thread reply <ref> "content" --json --full # Include all comment fields tdc thread reply <ref> "content" --close # Reply and close the thread @@ -128,7 +129,7 @@ tdc thread update <ref> "New body" --json # Update and return { id, content } a tdc thread update <ref> "New body" --json --full # Update and return full thread as JSON ``` -Default `--notify` for reply is EVERYONE_IN_THREAD, which may notify more people than intended. Before posting, confirm with the user whether specific people should be notified instead (via `--notify <user-ids>`). Options: EVERYONE, EVERYONE_IN_THREAD, or comma-separated ID refs. +Default `--notify` for reply is EVERYONE_IN_THREAD, which may notify more people than intended. Before posting, confirm with the user whether specific people should be notified instead (via `--notify <ids>`). Options: EVERYONE, EVERYONE_IN_THREAD, or comma-separated user and/or group IDs. `--notify` automatically resolves IDs: group IDs are routed to the `groups` API field, user IDs to `recipients`. No special syntax needed. diff --git a/src/lib/skills/content.ts b/src/lib/skills/content.ts index 0335927..973f373 100644 --- a/src/lib/skills/content.ts +++ b/src/lib/skills/content.ts @@ -94,14 +94,15 @@ tdc thread view <ref> --raw # Show raw markdown tdc thread create <channel-ref> "Title" "content" # Create a new thread tdc thread create <channel-ref> "Title" "content" --json # Create and return as JSON tdc thread create <channel-ref> "Title" "content" --json --full # Include all thread fields -tdc thread create <channel-ref> "Title" "content" --notify 123,456 # Notify specific users +tdc thread create <channel-ref> "Title" "content" --notify 123,456 # Notify specific users and/or groups by ID tdc thread create <channel-ref> "Title" "content" --unarchive # Land thread in author's Inbox (overrides default Comms auto-archive) tdc thread create <channel-ref> "Title" "content" --no-unarchive # Force archive even when userSettings.unarchiveNewThreads=true tdc thread create <channel-ref> "Title" "content" --dry-run # Preview without posting tdc thread create <channel-ref> "Title" --file ./a.png # Attach a file (repeatable; content optional) tdc thread reply <ref> "content" # Post a comment (notifies EVERYONE_IN_THREAD by default) tdc thread reply <ref> "content" --notify EVERYONE # Notify all workspace members -tdc thread reply <ref> "content" --notify 123,id:456 # Notify specific user IDs +tdc thread reply <ref> "content" --notify 123,id:456 # Notify specific users by ID +tdc thread reply <ref> "content" --notify 123,Cbzzm11ZeYZoJYD4a6rti # Notify a user and a group (group IDs are base58, not numeric) tdc thread reply <ref> "content" --json # Post and return comment as JSON tdc thread reply <ref> "content" --json --full # Include all comment fields tdc thread reply <ref> "content" --close # Reply and close the thread @@ -132,7 +133,7 @@ tdc thread update <ref> "New body" --json # Update and return { id, content } a tdc thread update <ref> "New body" --json --full # Update and return full thread as JSON \`\`\` -Default \`--notify\` for reply is EVERYONE_IN_THREAD, which may notify more people than intended. Before posting, confirm with the user whether specific people should be notified instead (via \`--notify <user-ids>\`). Options: EVERYONE, EVERYONE_IN_THREAD, or comma-separated ID refs. +Default \`--notify\` for reply is EVERYONE_IN_THREAD, which may notify more people than intended. Before posting, confirm with the user whether specific people should be notified instead (via \`--notify <ids>\`). Options: EVERYONE, EVERYONE_IN_THREAD, or comma-separated user and/or group IDs. \`--notify\` automatically resolves IDs: group IDs are routed to the \`groups\` API field, user IDs to \`recipients\`. No special syntax needed.