app
adom-gchat — Google Chat CLI
Public Made by Adomby adom
Post to Google Chat from any Adom container. Webhook-based, org-customizable.
← 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.
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.");