@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.
- package/LICENSE +94 -46
- package/README.md +195 -36
- package/assets/agent-roster/competitor-watch.md +40 -0
- package/assets/agent-roster/content-writer.md +35 -53
- package/assets/agent-roster/godmode-builder.md +2 -2
- package/assets/agent-roster/inbox-manager.md +38 -0
- package/assets/agent-roster/meeting-prep.md +40 -16
- package/assets/agent-roster/skill-optimizer.md +50 -0
- package/assets/agent-roster/weekly-review.md +42 -0
- package/assets/skills/autoresearch.md +1 -1
- package/assets/skills/pattern-scout.md +1 -1
- package/assets/skills/visual-qa.md +128 -0
- package/dist/godmode-ui/aeo.html +1 -1
- package/dist/godmode-ui/assets/brain-tab-B1CYwAJ7.js +402 -0
- package/dist/godmode-ui/assets/connections-tab-Cuv4eW0d.js +91 -0
- package/dist/godmode-ui/assets/ctrl-settings-COfcdhha.js +5 -0
- package/dist/godmode-ui/assets/dashboards-tab-7hHXzWPp.js +137 -0
- package/dist/godmode-ui/assets/index-DcYipcbm.js +1994 -0
- package/dist/godmode-ui/assets/index-DmEmOd0w.css +1 -0
- package/dist/godmode-ui/assets/lit-core-CTInmNPB.js +3 -0
- package/dist/godmode-ui/assets/markdown-i_gIkIP3.js +59 -0
- package/dist/godmode-ui/assets/second-brain-tab-DkFatLwl.js +350 -0
- package/dist/godmode-ui/assets/setup-BnLadXY9.js +1 -0
- package/dist/godmode-ui/assets/team-tab-Q3icI_Q-.js +296 -0
- package/dist/godmode-ui/assets/today-tab-C6lIMzgY.js +209 -0
- package/dist/godmode-ui/assets/views-settings-B2UFEtoi.js +4643 -0
- package/dist/godmode-ui/assets/work-tab-DwU559Bx.js +1 -0
- package/dist/godmode-ui/assets/workspaces-vzpIVgdl.js +718 -0
- package/dist/godmode-ui/index.html +11 -5
- package/dist/index.js +1658 -36092
- package/dist/mcp-entry.js +1272 -0
- package/dist/standalone.js +1917 -0
- package/openclaw.plugin.json +36 -7
- package/package.json +27 -13
- package/scripts/godmode-gateway.service +41 -0
- package/scripts/install-systemd.sh +99 -0
- package/skill-cards/adversarial-board.md +63 -0
- package/skill-cards/autoresearch.md +39 -0
- package/skill-cards/bill-review.md +26 -0
- package/skill-cards/calendar.md +32 -0
- package/skill-cards/code-quality.md +31 -0
- package/skill-cards/competitor-scan.md +26 -0
- package/skill-cards/content-generation.md +26 -0
- package/skill-cards/context-deep-dive.md +65 -0
- package/skill-cards/cron-workflows.md +33 -0
- package/skill-cards/dashboards.md +38 -0
- package/skill-cards/delegate.md +57 -0
- package/skill-cards/files.md +38 -0
- package/skill-cards/godmode-builder.md +58 -0
- package/skill-cards/inbox-sweep.md +26 -0
- package/skill-cards/integrations.md +40 -0
- package/skill-cards/life-admin.md +26 -0
- package/skill-cards/meetings.md +42 -0
- package/skill-cards/meta-problem-solver.md +52 -0
- package/skill-cards/people.md +39 -0
- package/skill-cards/personal-brand.md +71 -0
- package/skill-cards/project-orchestrator.md +97 -0
- package/skill-cards/project-pipeline.md +78 -0
- package/skill-cards/proof-editor.md +28 -0
- package/skill-cards/quality-gate.md +57 -0
- package/skill-cards/quarterly-review.md +26 -0
- package/skill-cards/queue.md +40 -0
- package/skill-cards/screenpipe.md +49 -0
- package/skill-cards/second-brain.md +46 -0
- package/skill-cards/standup-prep.md +26 -0
- package/skill-cards/tasks.md +34 -0
- package/skill-cards/visual-qa.md +56 -0
- package/skill-cards/workspace-memory.md +51 -0
- package/skill-cards/x-twitter.md +37 -0
- package/dist/godmode-ui/assets/dashboards-CrT3s0NG.js +0 -1
- package/dist/godmode-ui/assets/index-BtwTHiwI.js +0 -9353
- package/dist/godmode-ui/assets/index-xiAdnGJD.css +0 -1
- package/dist/godmode-ui/assets/options-QuHclvvX.js +0 -1
- package/dist/godmode-ui/assets/second-brain-ghSM5E6X.js +0 -1
- package/dist/godmode-ui/assets/setup-CWjMtnE4.js +0 -1
- package/dist/godmode-ui/consciousness-icon-64.png +0 -0
- package/dist/godmode-ui/consciousness-icon.png +0 -0
- 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};
|