skills/gws-chat-tasks/SKILL.md
Pulls messages from active Google Chat spaces from the last 24 hours, identifies tasks via @mentions and contextual inference, and posts a plain-text digest to a designated Chat space.
npx skillsauth add rdfitted/claude-code-setup gws-chat-tasksInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a task extraction specialist. When invoked, you scan active Google Chat spaces from the last 24 hours, identify action items and tasks, and post a plain-text digest to a designated Chat space.
Triggered by /gws-chat-tasks or when the user asks to "pull chat tasks", "generate task report from chat", or "what are today's tasks from Chat".
tog-nyc.comspaces/AAQAWXk1z60 (Task Manager)export GOOGLE_WORKSPACE_CLI_CONFIG_DIR="D:/Code Projects/TOG Automations/.config/gws"
PowerShell: $env:GOOGLE_WORKSPACE_CLI_CONFIG_DIR = "D:\Code Projects\TOG Automations\.config\gws"export GOOGLE_WORKSPACE_CLI_CONFIG_DIR="D:/Code Projects/TOG Automations/.config/gws"
gws chat spaces list --params '{"pageSize": 100}'
Extract all space names (format: spaces/XXXXXXXX). Skip the digest space spaces/AAQAWXk1z60.
For each space, fetch messages since 24h ago:
CUTOFF=$(date -u -d '24 hours ago' '+%Y-%m-%dT%H:%M:%SZ' 2>/dev/null || date -u -v-24H '+%Y-%m-%dT%H:%M:%SZ')
gws chat spaces messages list --params "{\"parent\": \"spaces/XXXXXXXX\", \"pageSize\": 100, \"filter\": \"createTime > \\\"${CUTOFF}\\\"\"}"
Skip any space that returns zero messages.
Pass 1 — Explicit (pattern matching):
@[name] mentions + action language ("please", "can you", "need you to", "follow up")TODO:, ACTION:, TASK:, - [ ]Mark these as confidence: "explicit".
Pass 2 — Inferred (contextual):
Mark these as confidence: "inferred".
For each task capture: task, assignee (or "Unassigned"), due (or "Not specified"), source_space, source_message (short quote), confidence, sender.
Post a plain-text digest to spaces/AAQAWXk1z60. Google Chat supports *bold* and _italic_ only — no tables, no HTML.
Message format:
*Daily Task Digest -- {DATE}*
{N} tasks found across {Y} active spaces ({A} explicit, {B} inferred). {C} unassigned.
*By Space:*
- {Space Name}: {N} tasks
- ...
*All Tasks:*
- [{Assignee}] {task} -- {source_space}{due != "Not specified" ? " (due: {due})" : ""}
- ...
Important: Use only ASCII characters in the message body — no emoji, no Unicode bullets. Use -- instead of em-dash. Pass the message via --json (not --body):
gws chat spaces messages create \
--params '{"parent": "spaces/AAQAWXk1z60"}' \
--json "{\"text\": \"<message>\"}"
TODO (Future): Switch to service account + domain-wide delegation (
service-account-key.jsonalready in.config/gws/) to cover spaces[email protected]is not a member of, giving full org-wide task visibility.
- Spaces scanned: X (Y active today)
- Tasks found: Z (A explicit, B inferred)
- Unassigned: C
- Posted to Chat: Task Manager (spaces/AAQAWXk1z60) ✓
gws auth login in PowerShellchat.messages, chat.messages.create, chat.spaces.readonlydevelopment
Restore from the Kopia backup repo in one of two opinionated modes. **wikis** (frequent, default) syncs per-project `.ai-docs/` directories from backup to local project trees — used to move compound-knowledge wikis between machines via the backup drive as sneakernet. **full** (rare) restores all sources to original paths for greenfield machine rebuild. Use when the user says "restore wikis", "sync wikis from backup", "pull the wikis", "I plugged in the backup drive on this machine", "rebuild this machine", "greenfield restore", or "restore everything". For ad-hoc single-file restores, use `backup-ops restore` instead.
documentation
# /bp-iterate Iterate the Fitted Business Plan(s). Manages the **internal canonical** and the **external partner/investor variant**, snapshot-on-version-bump lineage, redaction enforcement between variants, and cross-document coupling. ## When this runs - User says `/bp-iterate`, "iterate the BP," "bump the BP," "update the business plan," "version up the BP," "create / update / refresh the external variant" - A material trigger fires per the BP's own Iteration Log (first 2 new closes / fundi
tools
Run Kopia-based backups of key Windows files and config to an external drive. Use when the user says "back up", "run a backup", "snapshot", "the backup drive is plugged in", or wants to set up / configure backups for the first time. Handles initial repo setup, drive detection by volume label, source enumeration, and snapshot creation with structured exclusions.
testing
Secondary backup operations against the Kopia repo — verify integrity, run maintenance/prune, mirror to a second destination, restore files/folders, or run a quick top-up snapshot of hot directories. Use when the user says "verify backups", "check backup integrity", "prune old snapshots", "restore from backup", "mirror backups to cloud", "quick backup", "top up the backup", or asks about backup health. For the primary backup run, use the `backup` skill instead.