← Commit history

2.0.4: preview gate now prints an AUDIENCE CHECK (team-visible spaces vs private DM via adom-google) + WHICH TOOL docs. Personal pings must never land in team spaces.

John Lauer ·f35febd9ec ·2mo ago ·parent 772d09a
7 files changed +38−4
Cargo.lock+1−1
@@ -4,7 +4,7 @@ version = 4  [[package]] name = "adom-gchat"-version = "2.0.3"+version = "2.0.4" dependencies = [  "anyhow",  "clap",
Cargo.toml+1−1
@@ -1,6 +1,6 @@ [package] name = "adom-gchat"-version = "2.0.3"+version = "2.0.4" edition = "2021" description = "Post to Google Chat from any Adom container. Org-customizable." 
README.md+15
@@ -1,5 +1,20 @@ # adom-gchat — Google Chat CLI +## WHICH TOOL? Read this BEFORE sending anything++Webhook spaces are TEAM-VISIBLE. On most orgs (including Adom) they are read by the+ENTIRE COMPANY. Decide by audience, not by tool name:++- Message for the TEAM (announcement, deploy note, alert everyone should see):+  this tool, `adom-gchat send --space <name>`.+- Message for ONE PERSON (a status ping to your user, "done", "need you", any+  personal update): `adom-google chat send --to <their email>`. It resolves their+  private DM; only they see it. That applies even when the user says "gchat me":+  they mean "reach me on Google Chat", not "post to a team space".+- No private channel configured? That is NEVER a reason to post to a team space.+  Use `adom-google` (auto-resolves DMs with zero setup) or tell the user you have+  no private channel, but do not broadcast.+ Post messages to Google Chat spaces from any Adom container. Webhook-based, no OAuth needed. Each org customizes it for their own Google Workspace, then publishes an org-scoped wiki page so teammates auto-discover it.
SKILL.md+16−1
@@ -4,7 +4,7 @@ description: >   Post to Google Chat from any Adom container. Webhook-based, org-   customizable. Each org configures their own spaces and attribution,   then publishes an org-scoped wiki page so their employees auto--  discover it. Use the CLI, not raw curl or webhook URLs.+  discover it. Use the CLI, not raw curl or webhook URLs. TEAM-VISIBLE spaces only: a message meant for ONE person (personal status ping, "gchat me" from your user) belongs in their private DM via adom-google chat send --to <email>, NEVER in a team space.   Trigger words: gchat, google chat, post to chat, team notification,   chat webhook, post to team, send message to space, chat alert,   announce to team, notify team, kel, post to kel.@@ -12,6 +12,21 @@ description: >  # adom-gchat — Google Chat CLI +## WHICH TOOL? Read this BEFORE sending anything++Webhook spaces are TEAM-VISIBLE. On most orgs (including Adom) they are read by the+ENTIRE COMPANY. Decide by audience, not by tool name:++- Message for the TEAM (announcement, deploy note, alert everyone should see):+  this tool, `adom-gchat send --space <name>`.+- Message for ONE PERSON (a status ping to your user, "done", "need you", any+  personal update): `adom-google chat send --to <their email>`. It resolves their+  private DM; only they see it. That applies even when the user says "gchat me":+  they mean "reach me on Google Chat", not "post to a team space".+- No private channel configured? That is NEVER a reason to post to a team space.+  Use `adom-google` (auto-resolves DMs with zero setup) or tell the user you have+  no private channel, but do not broadcast.+ Post messages to Google Chat spaces from any Adom container. Webhook- based, no OAuth needed. Each org customizes it for their own Google Workspace.
bin/adom-gchat
⋯ 1 unchanged line ⋯
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-gchat",-  "version": "2.0.3",+  "version": "2.0.4",   "type": "app",   "description": "Post to Google Chat from any Adom container. Webhook-based, no OAuth. Each org configures its own spaces + attribution, then publishes an org-scoped wiki page so teammates auto-discover it.",   "homepage": "https://wiki.adom.inc/adom/adom-gchat",
src/main.rs+4
@@ -474,6 +474,10 @@ fn main() -> Result<()> {                 println!("---");                 println!("{body}");                 println!("---");+                println!("AUDIENCE CHECK: webhook spaces are TEAM-VISIBLE (often the whole org).");+                println!("AUDIENCE CHECK: if this message is really for ONE person (a status ping, \"done\", \"need you\"),");+                println!("AUDIENCE CHECK: do NOT post it here - use `adom-google chat send --to <their email>` (their private DM).");+                println!("AUDIENCE CHECK: never fall back to a team space just because no private channel is configured.");                 println!("HINT: show this preview to the user and get explicit approval.");                 println!("HINT: once the user says 'yes' / 'send it' / 'post it', re-run with --permission-to-post-given.");                 println!("HINT: do NOT pass --permission-to-post-given without actual user confirmation.");