@godmode-team/godmode 1.7.2 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +94 -46
  2. package/README.md +195 -36
  3. package/assets/agent-roster/competitor-watch.md +40 -0
  4. package/assets/agent-roster/content-writer.md +35 -53
  5. package/assets/agent-roster/godmode-builder.md +2 -2
  6. package/assets/agent-roster/inbox-manager.md +38 -0
  7. package/assets/agent-roster/meeting-prep.md +40 -16
  8. package/assets/agent-roster/skill-optimizer.md +50 -0
  9. package/assets/agent-roster/weekly-review.md +42 -0
  10. package/assets/skills/autoresearch.md +1 -1
  11. package/assets/skills/pattern-scout.md +1 -1
  12. package/assets/skills/visual-qa.md +128 -0
  13. package/dist/godmode-ui/aeo.html +1 -1
  14. package/dist/godmode-ui/assets/brain-tab-B1CYwAJ7.js +402 -0
  15. package/dist/godmode-ui/assets/connections-tab-Cuv4eW0d.js +91 -0
  16. package/dist/godmode-ui/assets/ctrl-settings-COfcdhha.js +5 -0
  17. package/dist/godmode-ui/assets/dashboards-tab-7hHXzWPp.js +137 -0
  18. package/dist/godmode-ui/assets/index-DcYipcbm.js +1994 -0
  19. package/dist/godmode-ui/assets/index-DmEmOd0w.css +1 -0
  20. package/dist/godmode-ui/assets/lit-core-CTInmNPB.js +3 -0
  21. package/dist/godmode-ui/assets/markdown-i_gIkIP3.js +59 -0
  22. package/dist/godmode-ui/assets/second-brain-tab-DkFatLwl.js +350 -0
  23. package/dist/godmode-ui/assets/setup-BnLadXY9.js +1 -0
  24. package/dist/godmode-ui/assets/team-tab-Q3icI_Q-.js +296 -0
  25. package/dist/godmode-ui/assets/today-tab-C6lIMzgY.js +209 -0
  26. package/dist/godmode-ui/assets/views-settings-B2UFEtoi.js +4643 -0
  27. package/dist/godmode-ui/assets/work-tab-DwU559Bx.js +1 -0
  28. package/dist/godmode-ui/assets/workspaces-vzpIVgdl.js +718 -0
  29. package/dist/godmode-ui/index.html +11 -5
  30. package/dist/index.js +1658 -36092
  31. package/dist/mcp-entry.js +1272 -0
  32. package/dist/standalone.js +1917 -0
  33. package/openclaw.plugin.json +36 -7
  34. package/package.json +27 -13
  35. package/scripts/godmode-gateway.service +41 -0
  36. package/scripts/install-systemd.sh +99 -0
  37. package/skill-cards/adversarial-board.md +63 -0
  38. package/skill-cards/autoresearch.md +39 -0
  39. package/skill-cards/bill-review.md +26 -0
  40. package/skill-cards/calendar.md +32 -0
  41. package/skill-cards/code-quality.md +31 -0
  42. package/skill-cards/competitor-scan.md +26 -0
  43. package/skill-cards/content-generation.md +26 -0
  44. package/skill-cards/context-deep-dive.md +65 -0
  45. package/skill-cards/cron-workflows.md +33 -0
  46. package/skill-cards/dashboards.md +38 -0
  47. package/skill-cards/delegate.md +57 -0
  48. package/skill-cards/files.md +38 -0
  49. package/skill-cards/godmode-builder.md +58 -0
  50. package/skill-cards/inbox-sweep.md +26 -0
  51. package/skill-cards/integrations.md +40 -0
  52. package/skill-cards/life-admin.md +26 -0
  53. package/skill-cards/meetings.md +42 -0
  54. package/skill-cards/meta-problem-solver.md +52 -0
  55. package/skill-cards/people.md +39 -0
  56. package/skill-cards/personal-brand.md +71 -0
  57. package/skill-cards/project-orchestrator.md +97 -0
  58. package/skill-cards/project-pipeline.md +78 -0
  59. package/skill-cards/proof-editor.md +28 -0
  60. package/skill-cards/quality-gate.md +57 -0
  61. package/skill-cards/quarterly-review.md +26 -0
  62. package/skill-cards/queue.md +40 -0
  63. package/skill-cards/screenpipe.md +49 -0
  64. package/skill-cards/second-brain.md +46 -0
  65. package/skill-cards/standup-prep.md +26 -0
  66. package/skill-cards/tasks.md +34 -0
  67. package/skill-cards/visual-qa.md +56 -0
  68. package/skill-cards/workspace-memory.md +51 -0
  69. package/skill-cards/x-twitter.md +37 -0
  70. package/dist/godmode-ui/assets/dashboards-CrT3s0NG.js +0 -1
  71. package/dist/godmode-ui/assets/index-BtwTHiwI.js +0 -9353
  72. package/dist/godmode-ui/assets/index-xiAdnGJD.css +0 -1
  73. package/dist/godmode-ui/assets/options-QuHclvvX.js +0 -1
  74. package/dist/godmode-ui/assets/second-brain-ghSM5E6X.js +0 -1
  75. package/dist/godmode-ui/assets/setup-CWjMtnE4.js +0 -1
  76. package/dist/godmode-ui/consciousness-icon-64.png +0 -0
  77. package/dist/godmode-ui/consciousness-icon.png +0 -0
  78. package/dist/godmode-ui/godmode-logo.png +0 -0
@@ -0,0 +1,57 @@
1
+ ---
2
+ domain: quality-gate
3
+ triggers: review, check, validate, qa, quality, verify, fact check, before sending, before publishing, is this good, proofread, double check
4
+ tools: queue_add
5
+ name: godmode-quality-gate
6
+ version: 1.0.0
7
+ description: "Reviews and validates work before publishing or sending"
8
+ keywords: ["review", "check", "validate", "qa", "quality"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+ ## When to Use
13
+ - After any agent completes work that will be published, sent, or acted on
14
+ - When the user asks you to validate or review something
15
+ - Automatically for high-stakes outputs (ads, client deliverables, public content)
16
+ - When an agent's trust score is below 6/10 — route through QA before delivering
17
+
18
+ ## Quality Gate Routing
19
+ Match the right reviewer to the content type:
20
+
21
+ | Content Type | Reviewer | When |
22
+ |---|---|---|
23
+ | Marketing copy, ads, VSLs, emails, landing pages | `qa-copy-reviewer` | Always for client-facing content |
24
+ | Research, analysis, reports with factual claims | `qa-fact-checker` | Always for research outputs |
25
+ | General agent output, mixed content | `qa-reviewer` | When unsure or for general QA |
26
+
27
+ ## How to Use
28
+ 1. When an agent finishes, check: is this output going to be published, sent to a client, or acted on?
29
+ 2. If yes → queue a review with the appropriate QA agent before delivering to the user
30
+ 3. Include the original task description AND the agent's output in the QA queue item description
31
+ 4. If the QA agent returns FAIL → send corrections back to the original agent, re-run, re-review
32
+ 5. If PASS → deliver to user's inbox with the confidence tag from the review
33
+
34
+ ## Queue Item Format for QA
35
+ ```
36
+ Title: QA Review: [original task title]
37
+ Description:
38
+ ## Original Task
39
+ [paste the original task description]
40
+
41
+ ## Agent Output to Review
42
+ [paste the agent's output]
43
+
44
+ ## Review Instructions
45
+ Review this output against your checklist. Be thorough.
46
+ ```
47
+
48
+ ## When to Skip QA
49
+ - Internal notes and research the user asked for casually
50
+ - Quick answers the user will obviously verify themselves
51
+ - Draft iterations the user is actively co-editing in Proof
52
+ - When the user explicitly says "just give me a rough draft" or "skip the review"
53
+
54
+ ## Tips
55
+ - The QA loop should be invisible to the user — they just see better output
56
+ - If an agent keeps failing QA, that's a signal to update its persona with corrections
57
+ - QA agents also get scored in the inbox — the feedback loop applies to reviewers too
@@ -0,0 +1,26 @@
1
+ ---
2
+ domain: quarterly-review
3
+ triggers: quarterly review, quarter goals, quarterly, how did the quarter go, quarter recap, quarterly report, quarter priorities, next quarter, q1, q2, q3, q4
4
+ tools: queue_add
5
+ name: godmode-quarterly-review
6
+ version: 1.0.0
7
+ description: "Runs quarterly goal reviews, recaps, and priority planning"
8
+ keywords: ["quarterly review", "quarter goals", "quarterly", "how did the quarter go", "quarter recap"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+
13
+ # Quarterly Review — Goals, Metrics & Priorities
14
+
15
+ When the user asks about quarterly goals, performance, or wants to plan the next quarter — route to the quarterly-review skill.
16
+
17
+ ## How to Use
18
+ 1. Use `queue_add` with skill `quarterly-review`, taskType `analysis`, persona `executive-briefer`
19
+ 2. The skill reviews: goal status, key metrics, wins, misses, patterns
20
+ 3. Output: 1-page executive brief with next-quarter priorities (3 goals + start/stop/continue)
21
+
22
+ ## When to Trigger
23
+ - "How did this quarter go?"
24
+ - "Let's do a quarterly review"
25
+ - "Plan next quarter's goals"
26
+ - Runs automatically at quarter boundaries via cron
@@ -0,0 +1,40 @@
1
+ ---
2
+ domain: queue
3
+ triggers: queue, delegate, background, agent, run this, can you do, draft, research for me, write this up, code review, research, deep dive
4
+ tools: queue_add, queue_check, queue_action
5
+ name: godmode-queue
6
+ version: 1.0.0
7
+ description: "Manages the background agent queue for delegated tasks"
8
+ keywords: ["queue", "delegate", "background", "agent", "run this"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+ ## When to Use
13
+ - User wants work done in the background (research, drafting, code review, analysis)
14
+ - Complex tasks that benefit from a dedicated agent with a full context window
15
+ - Anything that takes more than a quick chat response
16
+
17
+ ## How to Use
18
+ - `queue_add` tool — { title, description, taskType, persona?, priority? }
19
+ - `queue_check` tool — check status of queued items
20
+ - `queue_action` tool — { id, action } — approve, reject, retry, or remove a queue item
21
+
22
+ ## Workflow
23
+ 1. Scope the work clearly in the description — be specific about deliverables
24
+ 2. Pick the right taskType: research | coding | creative | analysis | review | ops | task
25
+ 3. The system matches a persona from the agent-roster based on taskType
26
+ 4. User gets notified when output is ready for review
27
+ 5. User approves, rejects (with feedback → lesson), or edits
28
+
29
+ ## Gotchas
30
+ - ALWAYS confirm with the user before queuing — "Want me to queue that up?"
31
+ - The description IS the agent's prompt — make it detailed and specific
32
+ - Don't queue trivial things — if you can answer in chat, just answer
33
+ - Queue items need approval before they're "done" — remind user to review
34
+ - If rejected, the feedback becomes a lesson for future runs
35
+
36
+ ## Tips
37
+ - Frame queue items like a senior engineer writing a perfect ticket
38
+ - Include context: who is this for, what's the goal, what format is expected
39
+ - For research: specify what sources to check, what to ignore, depth expected
40
+ - For creative: include tone, audience, length, examples of good output
@@ -0,0 +1,49 @@
1
+ ---
2
+ domain: screenpipe
3
+ triggers: screenpipe, screen capture, ambient memory, screen recording, screen history, what was on my screen, what was I looking at, screen recall
4
+ tools: ingestion.screenpipeStatus, ingestion.screenpipeConfigure, ingestion.screenpipeToggle, ingestion.runPipeline, secondBrain.search
5
+ name: godmode-screenpipe
6
+ version: 1.0.0
7
+ description: "Manages Screenpipe ambient memory — screen & audio capture, setup, and recall"
8
+ keywords: ["screenpipe", "screen", "capture", "ambient", "recall"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+ ## When to Use
13
+ - User mentions Screenpipe (setup, status, configuration, troubleshooting)
14
+ - User asks "what was on my screen" or wants to recall something they saw
15
+ - User wants to configure blocked apps, retention, or privacy settings
16
+ - Screenpipe shows as offline in the Engine panel
17
+
18
+ ## How to Use
19
+ - `ingestion.screenpipeStatus` — check if Screenpipe is running, get current config
20
+ - `ingestion.screenpipeConfigure` — { enabled?, blockedApps?, retention?, privacy? } — update settings
21
+ - `ingestion.screenpipeToggle` — quick enable/disable toggle
22
+ - `ingestion.runPipeline` — { pipeline: "screenpipe-hourly" } — manually trigger ingestion
23
+ - `secondBrain.search` — search for Screenpipe-captured content in the vault
24
+
25
+ ## Setup Flow
26
+ 1. Check status: `ingestion.screenpipeStatus`
27
+ 2. If not installed: "Install with `brew install screenpipe` (macOS) or download from screenpi.pe"
28
+ 3. If installed but not running: "Start with `screenpipe` in terminal"
29
+ 4. If running but not enabled: `ingestion.screenpipeToggle` to enable
30
+ 5. Configure blocked apps (e.g., banking, health apps) via `ingestion.screenpipeConfigure`
31
+
32
+ ## Architecture
33
+ - Screenpipe runs locally on the user's machine (localhost:3030)
34
+ - GodMode ingests screen/audio data via hourly → daily → weekly → monthly compression
35
+ - Summaries are stored in memory/screenpipe/ and forwarded to Honcho
36
+ - Entity extraction pulls out people, decisions, URLs from screen activity
37
+ - All data stays local — no cloud upload
38
+
39
+ ## Gotchas
40
+ - Screenpipe must be running as a separate process — GodMode doesn't start it
41
+ - Default API URL is localhost:3030, override with SCREENPIPE_API_URL env var
42
+ - Privacy: configure blockedApps to exclude sensitive apps (banking, medical)
43
+ - The ingestion pipeline runs hourly — recent screen data may not be indexed yet
44
+
45
+ ## Tips
46
+ - When user asks about Screenpipe, ALWAYS check status first with ingestion.screenpipeStatus
47
+ - Never evaluate whether Screenpipe is "worth using" — it's already integrated. Help configure it.
48
+ - If offline, guide the user to start it, don't suggest alternatives
49
+ - Frame privacy controls positively: "Let's make sure sensitive apps are excluded"
@@ -0,0 +1,46 @@
1
+ ---
2
+ domain: second-brain
3
+ triggers: vault, note, notes, obsidian, search, find, look up, brain, knowledge, what do we know, remember, screenpipe, screen recall
4
+ tools: secondBrain.search, secondBrain.identity, secondBrain.memoryBank, secondBrain.memoryBankEntry
5
+ name: godmode-second-brain
6
+ version: 1.0.0
7
+ description: "Searches and manages the Memory vault knowledge base"
8
+ keywords: ["vault", "note", "notes", "obsidian", "search"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+ ## When to Use
13
+ - User asks about a person, company, project, or any stored knowledge
14
+ - You need context about something and memory results above are insufficient
15
+ - Looking up past research, meeting notes, or project details
16
+ - ANY time you're about to ask the user for info — search here first
17
+
18
+ ## How to Use
19
+ - `secondBrain.search` — { query, scope?, limit? } — hybrid QMD 2.0 search (semantic + BM25 + LLM reranking) across the vault. Scopes: "all" (default), "sessions", or vault collection. Falls back to file walk if QMD unavailable.
20
+ - `secondBrain.identity` — read USER.md and SOUL.md identity files
21
+ - `secondBrain.memoryBank` — list all people/company files
22
+ - `secondBrain.memoryBankEntry` — { name } — get a specific person/company file
23
+
24
+ ## Vault Structure (PARA)
25
+ - 00-Inbox/ — unsorted captures, queue outputs land here
26
+ - 01-Daily/ — daily briefs (YYYY-MM-DD.md)
27
+ - 02-Projects/ — active project notes
28
+ - 03-Areas/ — ongoing areas of responsibility
29
+ - 04-Resources/ — research, references
30
+ - 06-Brain/ — People/, Companies/, Knowledge/ files
31
+ - 08-Identity/ — USER.md, SOUL.md
32
+ - 99-System/ — system files, agent-roster, skill-cards
33
+
34
+ ## Gotchas
35
+ - Search uses QMD 2.0 hybrid retrieval (semantic + full-text + reranking) — natural language queries work best but keywords also work via BM25
36
+ - People files are in 06-Brain/People/ — search by name
37
+ - If search returns nothing, try broader terms or different phrasing
38
+ - Vault is the source of truth for long-term knowledge — memory is for conversational context
39
+ - All searches are logged to retrieval-log.jsonl for trajectory analysis
40
+ - Screenpipe ambient memory (screen/audio captures) feeds into the vault via hourly ingestion — use `ingestion.screenpipeStatus` for status, `secondBrain.search` to query captured content
41
+
42
+ ## Tips
43
+ - When user mentions a person, immediately search for their people file
44
+ - Cross-reference meeting attendees with people files before meeting prep
45
+ - For "what do we know about X" — search vault, then summarize findings
46
+ - Don't quote raw vault content — synthesize it naturally into conversation
@@ -0,0 +1,26 @@
1
+ ---
2
+ domain: standup-prep
3
+ triggers: standup, stand up, standup prep, what did I do yesterday, morning prep, daily prep, what's on my plate, morning summary, daily summary
4
+ tools: queue_add, calendar.events.today, tasks.list
5
+ name: godmode-standup-prep
6
+ version: 1.0.0
7
+ description: "Prepares daily standup summaries and morning briefings"
8
+ keywords: ["standup", "stand up", "standup prep", "what did I do yesterday", "morning prep"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+
13
+ # Standup Prep — Daily Morning Summary
14
+
15
+ When the user wants a standup summary or morning briefing — route to the daily-standup-prep skill.
16
+
17
+ ## How to Use
18
+ 1. Use `queue_add` with skill `daily-standup-prep`, taskType `analysis`, persona `meeting-prep`
19
+ 2. The skill reviews yesterday's activity, today's calendar, and due tasks
20
+ 3. Output: Yesterday / Today / Blockers format — readable in 30 seconds
21
+
22
+ ## When to Trigger
23
+ - "What did I do yesterday?"
24
+ - "Prep my standup"
25
+ - "What's on my plate today?"
26
+ - Runs automatically weekdays 8am via cron
@@ -0,0 +1,34 @@
1
+ ---
2
+ domain: tasks
3
+ triggers: task, todo, to-do, remind, reminder, overdue, priority, priorities, what should i, what do i need, i need to, need to get done, focus on, save
4
+ tools: tasks.list, tasks.add, tasks.update
5
+ name: godmode-tasks
6
+ version: 1.0.0
7
+ description: "Manages tasks, to-dos, reminders, and priorities"
8
+ keywords: ["task", "todo", "to-do", "remind", "reminder"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+ ## When to Use
13
+ - User asks about their tasks, to-dos, priorities, what to work on
14
+ - Overdue task surfacing — proactively mention when tasks are past due
15
+ - Adding, completing, or updating tasks
16
+
17
+ ## How to Use
18
+ - `tasks.list` — all tasks with status, dueDate, workspace
19
+ - `tasks.add` — { title, dueDate?, workspace?, status? }
20
+ - `tasks.update` — { id, status?, title?, dueDate? }
21
+ - Priorities from today's daily brief are often already injected above — check there FIRST
22
+
23
+ ## Gotchas
24
+ - Tasks are a flat list — no subtasks, no hierarchy, no boards. This is intentional.
25
+ - For complex projects, create a markdown artifact instead of 20 subtasks
26
+ - Status values: "pending" | "in-progress" | "done" | "archived"
27
+ - dueDate format: YYYY-MM-DD string, not a Date object
28
+ - Don't create duplicate tasks — call tasks.list first to check
29
+
30
+ ## Tips
31
+ - When user says "I need to...", create the task immediately — don't ask for confirmation
32
+ - Surface overdue tasks naturally in conversation, don't nag
33
+ - Cross-reference with daily brief priorities when suggesting what to work on next
34
+ - For big projects, suggest: "Want me to draft a project plan as a markdown artifact?"
@@ -0,0 +1,56 @@
1
+ ---
2
+ domain: visual-qa
3
+ triggers: qa, visual qa, screenshot, ui check, does it look right, check the ui, visual test, ui test, screenshot tabs, visual review
4
+ tools: queue_add
5
+ ---
6
+
7
+ # Visual QA — Screenshot-Based UI Testing
8
+
9
+ Automated visual inspection of every GodMode tab using `agent-browser`.
10
+
11
+ ## When to Use
12
+ - After any agent session that modified files in `ui/src/`
13
+ - Before merging a branch with UI changes
14
+ - When the user asks "does it look right" or "check the UI"
15
+ - After overnight builder agent sessions that touched the frontend
16
+ - Before any release
17
+
18
+ ## How to Use
19
+
20
+ Route to `godmode-builder` persona with the `visual-qa` skill:
21
+
22
+ ```
23
+ queue_add({
24
+ title: "Visual QA — post-merge UI check",
25
+ description: "Run visual-qa skill. Screenshot all tabs, check for regressions.",
26
+ skill: "visual-qa",
27
+ priority: "high"
28
+ })
29
+ ```
30
+
31
+ The builder agent runs `./scripts/visual-qa.sh`, which:
32
+ 1. Builds the project (`pnpm build && pnpm build:ui`)
33
+ 2. Starts the Vite dev server on port 5175
34
+ 3. Opens each tab in a real browser via `agent-browser`
35
+ 4. Takes annotated screenshots + accessibility snapshots
36
+ 5. Runs basic health checks (blank pages, error elements)
37
+ 6. Generates a report at `.qa-reports/<timestamp>/REPORT.md`
38
+ 7. Kills the dev server
39
+
40
+ ## What It Catches
41
+ - White-screen tabs (build broke something)
42
+ - Missing interactive elements (buttons, inputs disappeared)
43
+ - Error banners visible in the DOM
44
+ - Empty tabs that should have content
45
+ - Layout regressions visible in screenshots
46
+
47
+ ## What It Doesn't Catch
48
+ - Subtle styling regressions (needs baseline comparison — future)
49
+ - Backend-dependent content (needs running gateway)
50
+ - Mobile responsiveness (runs at default viewport)
51
+
52
+ ## Tips
53
+ - Use `--skip-build` if you just built: `./scripts/visual-qa.sh --skip-build`
54
+ - Use `--tabs chat,today` to check only specific tabs
55
+ - Screenshots are annotated with element labels — match them to the accessibility snapshot
56
+ - Reports accumulate in `.qa-reports/` — add to `.gitignore`
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: workspace-memory
3
+ domain: memory
4
+ triggers:
5
+ - share memory
6
+ - workspace memory
7
+ - team memory
8
+ - publish to workspace
9
+ - shared knowledge
10
+ ---
11
+
12
+ # Workspace Memory — Publish Rules
13
+
14
+ You have the `capture_thought` tool with a `scope` parameter. By default, all memory is **personal**. You may publish to a workspace when the information is clearly relevant to that team.
15
+
16
+ ## What to Publish (scope: workspace ID)
17
+
18
+ - Project decisions and rationale
19
+ - Technical discoveries relevant to the team
20
+ - Client/customer requirements and feedback
21
+ - Process documentation and workflows
22
+ - Meeting outcomes and action items (non-sensitive)
23
+ - Shared research findings
24
+
25
+ ## What NEVER to Publish (keep scope: personal)
26
+
27
+ - Compensation, salary, equity, or benefits discussions
28
+ - Performance reviews or feedback about individuals
29
+ - Personal opinions about coworkers or management
30
+ - HR matters, disciplinary issues, or complaints
31
+ - Content the user marked as private, confidential, or off-record
32
+ - Personal health, finances, or relationship matters
33
+ - Login credentials, API keys, or secrets
34
+
35
+ ## Decision Framework
36
+
37
+ When in doubt: **keep it personal.** The user can always ask you to share something later. You cannot un-share.
38
+
39
+ Ask yourself: "Would the user be comfortable if every workspace member saw this?" If the answer isn't a clear yes, keep it personal.
40
+
41
+ ## How to Use
42
+
43
+ ```
44
+ // Personal (default — no scope needed)
45
+ capture_thought({ topic: "salary-research", content: "..." })
46
+
47
+ // Workspace-scoped (explicitly published)
48
+ capture_thought({ topic: "api-conventions", content: "...", scope: "patient-autopilot" })
49
+ ```
50
+
51
+ When you publish to a workspace, mention it in chat: "I saved that to the PA workspace memory so the team has it."
@@ -0,0 +1,37 @@
1
+ ---
2
+ domain: x-twitter
3
+ triggers: twitter, tweet, tweets, tweeted, x.com, timeline, trending, what's happening, social, post, thread, bookmark, bookmarks, saying, discussions, draft a post, draft a tweet
4
+ tools: x_read, x.search, x.readTweet, x.readThread, x.userTimeline, x.bookmarks
5
+ name: godmode-x-twitter
6
+ version: 1.0.0
7
+ description: "Reads timelines, searches tweets, and drafts posts for X/Twitter"
8
+ keywords: ["twitter", "tweet", "tweets", "tweeted", "x.com"]
9
+ author: godmode-team
10
+ clawhub: true
11
+ ---
12
+ ## When to Use
13
+ - User asks about tweets, threads, Twitter/X content
14
+ - Searching for what people are saying about a topic
15
+ - Reading a specific tweet or thread URL
16
+ - Checking bookmarks or someone's timeline
17
+
18
+ ## How to Use
19
+ - `x_read` tool — versatile: read tweets, threads, articles, search, bookmarks
20
+ - Actions: search, readTweet, readThread, userTimeline, readArticle, bookmarks
21
+ - `x.search` method — { query, maxResults? } — search X for topics
22
+ - `x.readTweet` — { tweetId } — read a single tweet
23
+ - `x.readThread` — { tweetId } — read a full thread
24
+ - `x.userTimeline` — { username, maxResults? } — recent posts from a user
25
+ - `x.bookmarks` — user's saved tweets
26
+
27
+ ## Gotchas
28
+ - Requires XAI_API_KEY in ~/.openclaw/.env — if missing, check integrations.status
29
+ - Uses Grok API (grok-4-1-fast-non-reasoning) under the hood
30
+ - Rate limits apply — don't make rapid sequential calls
31
+ - Tweet IDs are strings, not numbers
32
+ - Some tweets may be protected/unavailable
33
+
34
+ ## Tips
35
+ - When user shares an x.com URL, extract the tweet ID and read it automatically
36
+ - For research tasks, combine X search with vault search for full context
37
+ - Summarize threads concisely — don't dump raw tweet text
@@ -1 +0,0 @@
1
- async function s(r,d){if(!r.client||!r.connected){r.dashboardsError="Not connected to gateway";return}r.dashboardsLoading=!0,r.dashboardsError=null;try{const a=await r.client.request("dashboards.list",d?{scope:d}:{});r.dashboardsList=a.dashboards,r.activeDashboardId=a.activeDashboard}catch(a){r.dashboardsError=a instanceof Error?a.message:"Failed to load dashboards"}finally{r.dashboardsLoading=!1}}async function i(r,d){if(!r.client||!r.connected){r.dashboardsError="Not connected to gateway";return}r.dashboardsLoading=!0,r.dashboardsError=null;try{const a=await r.client.request("dashboards.get",{id:d});r.activeDashboardId=d,r.activeDashboardManifest=a.manifest,r.activeDashboardHtml=a.html}catch(a){r.dashboardsError=a instanceof Error?a.message:"Failed to load dashboard"}finally{r.dashboardsLoading=!1}}async function e(r,d){if(!r.client||!r.connected)return;const a=(r.dashboardsList??[]).find(o=>o.id===d);if(!a)return;const n=!a.pinned;try{await r.client.request("dashboards.save",{id:a.id,title:a.title,description:a.description,scope:a.scope,pinned:n}),a.pinned=n,r.dashboardsList=[...r.dashboardsList??[]]}catch(o){r.dashboardsError=o instanceof Error?o.message:"Failed to toggle pin"}}async function c(r,d){if(!r.client||!r.connected)return!1;try{return await r.client.request("dashboards.remove",{id:d}),r.dashboardsList=(r.dashboardsList??[]).filter(a=>a.id!==d),r.activeDashboardId===d&&(r.activeDashboardId=null,r.activeDashboardHtml=null,r.activeDashboardManifest=null),!0}catch(a){return r.dashboardsError=a instanceof Error?a.message:"Failed to delete dashboard",!1}}export{c as deleteDashboard,i as loadDashboard,s as loadDashboards,e as toggleDashboardPin};