loudmouth-ai 0.1.0 → 0.2.0
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/README.md +148 -77
- package/dist/build-info.json +3 -3
- package/extensions/package.json +6 -0
- package/package.json +1 -1
- package/skills/autopilot/SKILL.md +179 -0
- package/skills/goals/SKILL.md +189 -0
- package/skills/wordpress/SKILL.md +232 -0
- package/extensions/bluebubbles/clawdbot.plugin.json +0 -11
- package/extensions/bluebubbles/index.ts +0 -20
- package/extensions/bluebubbles/package.json +0 -33
- package/extensions/bluebubbles/src/accounts.ts +0 -80
- package/extensions/bluebubbles/src/actions.test.ts +0 -651
- package/extensions/bluebubbles/src/actions.ts +0 -403
- package/extensions/bluebubbles/src/attachments.test.ts +0 -346
- package/extensions/bluebubbles/src/attachments.ts +0 -282
- package/extensions/bluebubbles/src/channel.ts +0 -399
- package/extensions/bluebubbles/src/chat.test.ts +0 -462
- package/extensions/bluebubbles/src/chat.ts +0 -354
- package/extensions/bluebubbles/src/config-schema.ts +0 -51
- package/extensions/bluebubbles/src/media-send.ts +0 -168
- package/extensions/bluebubbles/src/monitor.test.ts +0 -2140
- package/extensions/bluebubbles/src/monitor.ts +0 -2101
- package/extensions/bluebubbles/src/onboarding.ts +0 -340
- package/extensions/bluebubbles/src/probe.ts +0 -127
- package/extensions/bluebubbles/src/reactions.test.ts +0 -393
- package/extensions/bluebubbles/src/reactions.ts +0 -183
- package/extensions/bluebubbles/src/runtime.ts +0 -14
- package/extensions/bluebubbles/src/send.test.ts +0 -809
- package/extensions/bluebubbles/src/send.ts +0 -418
- package/extensions/bluebubbles/src/targets.test.ts +0 -184
- package/extensions/bluebubbles/src/targets.ts +0 -323
- package/extensions/bluebubbles/src/types.ts +0 -127
- package/extensions/copilot-proxy/README.md +0 -24
- package/extensions/copilot-proxy/clawdbot.plugin.json +0 -11
- package/extensions/copilot-proxy/index.ts +0 -142
- package/extensions/copilot-proxy/package.json +0 -11
- package/extensions/google-antigravity-auth/README.md +0 -24
- package/extensions/google-antigravity-auth/clawdbot.plugin.json +0 -11
- package/extensions/google-antigravity-auth/index.ts +0 -437
- package/extensions/google-antigravity-auth/package.json +0 -11
- package/extensions/google-gemini-cli-auth/README.md +0 -35
- package/extensions/google-gemini-cli-auth/clawdbot.plugin.json +0 -11
- package/extensions/google-gemini-cli-auth/index.ts +0 -91
- package/extensions/google-gemini-cli-auth/oauth.test.ts +0 -228
- package/extensions/google-gemini-cli-auth/oauth.ts +0 -580
- package/extensions/google-gemini-cli-auth/package.json +0 -11
- package/extensions/googlechat/clawdbot.plugin.json +0 -11
- package/extensions/googlechat/index.ts +0 -20
- package/extensions/googlechat/package.json +0 -39
- package/extensions/googlechat/src/accounts.ts +0 -133
- package/extensions/googlechat/src/actions.ts +0 -162
- package/extensions/googlechat/src/api.test.ts +0 -62
- package/extensions/googlechat/src/api.ts +0 -259
- package/extensions/googlechat/src/auth.ts +0 -113
- package/extensions/googlechat/src/channel.ts +0 -580
- package/extensions/googlechat/src/monitor.test.ts +0 -27
- package/extensions/googlechat/src/monitor.ts +0 -900
- package/extensions/googlechat/src/onboarding.ts +0 -278
- package/extensions/googlechat/src/runtime.ts +0 -14
- package/extensions/googlechat/src/targets.test.ts +0 -35
- package/extensions/googlechat/src/targets.ts +0 -55
- package/extensions/googlechat/src/types.config.ts +0 -3
- package/extensions/googlechat/src/types.ts +0 -73
- package/extensions/imessage/clawdbot.plugin.json +0 -11
- package/extensions/imessage/index.ts +0 -18
- package/extensions/imessage/package.json +0 -11
- package/extensions/imessage/src/channel.ts +0 -294
- package/extensions/imessage/src/runtime.ts +0 -14
- package/extensions/line/clawdbot.plugin.json +0 -11
- package/extensions/line/index.ts +0 -20
- package/extensions/line/package.json +0 -29
- package/extensions/line/src/card-command.ts +0 -338
- package/extensions/line/src/channel.logout.test.ts +0 -96
- package/extensions/line/src/channel.sendPayload.test.ts +0 -308
- package/extensions/line/src/channel.ts +0 -773
- package/extensions/line/src/runtime.ts +0 -14
- package/extensions/matrix/CHANGELOG.md +0 -54
- package/extensions/matrix/clawdbot.plugin.json +0 -11
- package/extensions/matrix/index.ts +0 -18
- package/extensions/matrix/package.json +0 -36
- package/extensions/matrix/src/actions.ts +0 -185
- package/extensions/matrix/src/channel.directory.test.ts +0 -56
- package/extensions/matrix/src/channel.ts +0 -417
- package/extensions/matrix/src/config-schema.ts +0 -62
- package/extensions/matrix/src/directory-live.ts +0 -175
- package/extensions/matrix/src/group-mentions.ts +0 -61
- package/extensions/matrix/src/matrix/accounts.test.ts +0 -83
- package/extensions/matrix/src/matrix/accounts.ts +0 -63
- package/extensions/matrix/src/matrix/actions/client.ts +0 -53
- package/extensions/matrix/src/matrix/actions/messages.ts +0 -120
- package/extensions/matrix/src/matrix/actions/pins.ts +0 -70
- package/extensions/matrix/src/matrix/actions/reactions.ts +0 -84
- package/extensions/matrix/src/matrix/actions/room.ts +0 -88
- package/extensions/matrix/src/matrix/actions/summary.ts +0 -77
- package/extensions/matrix/src/matrix/actions/types.ts +0 -84
- package/extensions/matrix/src/matrix/actions.ts +0 -15
- package/extensions/matrix/src/matrix/active-client.ts +0 -11
- package/extensions/matrix/src/matrix/client/config.ts +0 -165
- package/extensions/matrix/src/matrix/client/create-client.ts +0 -127
- package/extensions/matrix/src/matrix/client/logging.ts +0 -35
- package/extensions/matrix/src/matrix/client/runtime.ts +0 -4
- package/extensions/matrix/src/matrix/client/shared.ts +0 -169
- package/extensions/matrix/src/matrix/client/storage.ts +0 -131
- package/extensions/matrix/src/matrix/client/types.ts +0 -34
- package/extensions/matrix/src/matrix/client.test.ts +0 -57
- package/extensions/matrix/src/matrix/client.ts +0 -9
- package/extensions/matrix/src/matrix/credentials.ts +0 -103
- package/extensions/matrix/src/matrix/deps.ts +0 -57
- package/extensions/matrix/src/matrix/format.test.ts +0 -34
- package/extensions/matrix/src/matrix/format.ts +0 -22
- package/extensions/matrix/src/matrix/index.ts +0 -11
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +0 -58
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +0 -68
- package/extensions/matrix/src/matrix/monitor/direct.ts +0 -105
- package/extensions/matrix/src/matrix/monitor/events.ts +0 -103
- package/extensions/matrix/src/matrix/monitor/handler.ts +0 -645
- package/extensions/matrix/src/matrix/monitor/index.ts +0 -279
- package/extensions/matrix/src/matrix/monitor/location.ts +0 -83
- package/extensions/matrix/src/matrix/monitor/media.test.ts +0 -103
- package/extensions/matrix/src/matrix/monitor/media.ts +0 -113
- package/extensions/matrix/src/matrix/monitor/mentions.ts +0 -31
- package/extensions/matrix/src/matrix/monitor/replies.ts +0 -96
- package/extensions/matrix/src/matrix/monitor/room-info.ts +0 -58
- package/extensions/matrix/src/matrix/monitor/rooms.ts +0 -43
- package/extensions/matrix/src/matrix/monitor/threads.ts +0 -64
- package/extensions/matrix/src/matrix/monitor/types.ts +0 -39
- package/extensions/matrix/src/matrix/poll-types.test.ts +0 -22
- package/extensions/matrix/src/matrix/poll-types.ts +0 -157
- package/extensions/matrix/src/matrix/probe.ts +0 -70
- package/extensions/matrix/src/matrix/send/client.ts +0 -63
- package/extensions/matrix/src/matrix/send/formatting.ts +0 -92
- package/extensions/matrix/src/matrix/send/media.ts +0 -220
- package/extensions/matrix/src/matrix/send/targets.test.ts +0 -102
- package/extensions/matrix/src/matrix/send/targets.ts +0 -144
- package/extensions/matrix/src/matrix/send/types.ts +0 -109
- package/extensions/matrix/src/matrix/send.test.ts +0 -172
- package/extensions/matrix/src/matrix/send.ts +0 -255
- package/extensions/matrix/src/onboarding.ts +0 -432
- package/extensions/matrix/src/outbound.ts +0 -53
- package/extensions/matrix/src/resolve-targets.ts +0 -89
- package/extensions/matrix/src/runtime.ts +0 -14
- package/extensions/matrix/src/tool-actions.ts +0 -160
- package/extensions/matrix/src/types.ts +0 -95
- package/extensions/mattermost/clawdbot.plugin.json +0 -11
- package/extensions/mattermost/index.ts +0 -18
- package/extensions/mattermost/package.json +0 -25
- package/extensions/mattermost/src/channel.test.ts +0 -43
- package/extensions/mattermost/src/channel.ts +0 -339
- package/extensions/mattermost/src/config-schema.ts +0 -56
- package/extensions/mattermost/src/group-mentions.ts +0 -14
- package/extensions/mattermost/src/mattermost/accounts.ts +0 -115
- package/extensions/mattermost/src/mattermost/client.ts +0 -208
- package/extensions/mattermost/src/mattermost/index.ts +0 -9
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -150
- package/extensions/mattermost/src/mattermost/monitor.ts +0 -921
- package/extensions/mattermost/src/mattermost/probe.ts +0 -70
- package/extensions/mattermost/src/mattermost/send.ts +0 -217
- package/extensions/mattermost/src/normalize.ts +0 -38
- package/extensions/mattermost/src/onboarding-helpers.ts +0 -42
- package/extensions/mattermost/src/onboarding.ts +0 -187
- package/extensions/mattermost/src/runtime.ts +0 -14
- package/extensions/mattermost/src/types.ts +0 -50
- package/extensions/msteams/CHANGELOG.md +0 -51
- package/extensions/msteams/clawdbot.plugin.json +0 -11
- package/extensions/msteams/index.ts +0 -18
- package/extensions/msteams/package.json +0 -36
- package/extensions/msteams/src/attachments/download.ts +0 -206
- package/extensions/msteams/src/attachments/graph.ts +0 -319
- package/extensions/msteams/src/attachments/html.ts +0 -76
- package/extensions/msteams/src/attachments/payload.ts +0 -22
- package/extensions/msteams/src/attachments/shared.ts +0 -235
- package/extensions/msteams/src/attachments/types.ts +0 -37
- package/extensions/msteams/src/attachments.test.ts +0 -424
- package/extensions/msteams/src/attachments.ts +0 -18
- package/extensions/msteams/src/channel.directory.test.ts +0 -46
- package/extensions/msteams/src/channel.ts +0 -436
- package/extensions/msteams/src/conversation-store-fs.test.ts +0 -88
- package/extensions/msteams/src/conversation-store-fs.ts +0 -155
- package/extensions/msteams/src/conversation-store-memory.ts +0 -45
- package/extensions/msteams/src/conversation-store.ts +0 -41
- package/extensions/msteams/src/directory-live.ts +0 -179
- package/extensions/msteams/src/errors.test.ts +0 -46
- package/extensions/msteams/src/errors.ts +0 -158
- package/extensions/msteams/src/file-consent-helpers.test.ts +0 -234
- package/extensions/msteams/src/file-consent-helpers.ts +0 -73
- package/extensions/msteams/src/file-consent.ts +0 -122
- package/extensions/msteams/src/graph-chat.ts +0 -52
- package/extensions/msteams/src/graph-upload.ts +0 -445
- package/extensions/msteams/src/inbound.test.ts +0 -67
- package/extensions/msteams/src/inbound.ts +0 -38
- package/extensions/msteams/src/index.ts +0 -4
- package/extensions/msteams/src/media-helpers.test.ts +0 -186
- package/extensions/msteams/src/media-helpers.ts +0 -77
- package/extensions/msteams/src/messenger.test.ts +0 -245
- package/extensions/msteams/src/messenger.ts +0 -460
- package/extensions/msteams/src/monitor-handler/inbound-media.ts +0 -123
- package/extensions/msteams/src/monitor-handler/message-handler.ts +0 -629
- package/extensions/msteams/src/monitor-handler.ts +0 -166
- package/extensions/msteams/src/monitor-types.ts +0 -5
- package/extensions/msteams/src/monitor.ts +0 -290
- package/extensions/msteams/src/onboarding.ts +0 -432
- package/extensions/msteams/src/outbound.ts +0 -47
- package/extensions/msteams/src/pending-uploads.ts +0 -87
- package/extensions/msteams/src/policy.test.ts +0 -210
- package/extensions/msteams/src/policy.ts +0 -202
- package/extensions/msteams/src/polls-store-memory.ts +0 -30
- package/extensions/msteams/src/polls-store.test.ts +0 -40
- package/extensions/msteams/src/polls.test.ts +0 -72
- package/extensions/msteams/src/polls.ts +0 -299
- package/extensions/msteams/src/probe.test.ts +0 -57
- package/extensions/msteams/src/probe.ts +0 -99
- package/extensions/msteams/src/reply-dispatcher.ts +0 -128
- package/extensions/msteams/src/resolve-allowlist.ts +0 -277
- package/extensions/msteams/src/runtime.ts +0 -14
- package/extensions/msteams/src/sdk-types.ts +0 -19
- package/extensions/msteams/src/sdk.ts +0 -33
- package/extensions/msteams/src/send-context.ts +0 -156
- package/extensions/msteams/src/send.ts +0 -489
- package/extensions/msteams/src/sent-message-cache.test.ts +0 -16
- package/extensions/msteams/src/sent-message-cache.ts +0 -41
- package/extensions/msteams/src/storage.ts +0 -22
- package/extensions/msteams/src/store-fs.ts +0 -80
- package/extensions/msteams/src/token.ts +0 -19
- package/extensions/nextcloud-talk/clawdbot.plugin.json +0 -11
- package/extensions/nextcloud-talk/index.ts +0 -18
- package/extensions/nextcloud-talk/package.json +0 -30
- package/extensions/nextcloud-talk/src/accounts.ts +0 -154
- package/extensions/nextcloud-talk/src/channel.ts +0 -404
- package/extensions/nextcloud-talk/src/config-schema.ts +0 -78
- package/extensions/nextcloud-talk/src/format.ts +0 -79
- package/extensions/nextcloud-talk/src/inbound.ts +0 -336
- package/extensions/nextcloud-talk/src/monitor.ts +0 -246
- package/extensions/nextcloud-talk/src/normalize.ts +0 -31
- package/extensions/nextcloud-talk/src/onboarding.ts +0 -341
- package/extensions/nextcloud-talk/src/policy.ts +0 -175
- package/extensions/nextcloud-talk/src/room-info.ts +0 -111
- package/extensions/nextcloud-talk/src/runtime.ts +0 -14
- package/extensions/nextcloud-talk/src/send.ts +0 -206
- package/extensions/nextcloud-talk/src/signature.ts +0 -67
- package/extensions/nextcloud-talk/src/types.ts +0 -179
- package/extensions/nostr/CHANGELOG.md +0 -46
- package/extensions/nostr/README.md +0 -136
- package/extensions/nostr/clawdbot.plugin.json +0 -11
- package/extensions/nostr/index.ts +0 -69
- package/extensions/nostr/package.json +0 -31
- package/extensions/nostr/src/channel.test.ts +0 -141
- package/extensions/nostr/src/channel.ts +0 -342
- package/extensions/nostr/src/config-schema.ts +0 -90
- package/extensions/nostr/src/metrics.ts +0 -464
- package/extensions/nostr/src/nostr-bus.fuzz.test.ts +0 -544
- package/extensions/nostr/src/nostr-bus.integration.test.ts +0 -452
- package/extensions/nostr/src/nostr-bus.test.ts +0 -199
- package/extensions/nostr/src/nostr-bus.ts +0 -741
- package/extensions/nostr/src/nostr-profile-http.test.ts +0 -378
- package/extensions/nostr/src/nostr-profile-http.ts +0 -500
- package/extensions/nostr/src/nostr-profile-import.test.ts +0 -120
- package/extensions/nostr/src/nostr-profile-import.ts +0 -259
- package/extensions/nostr/src/nostr-profile.fuzz.test.ts +0 -479
- package/extensions/nostr/src/nostr-profile.test.ts +0 -410
- package/extensions/nostr/src/nostr-profile.ts +0 -242
- package/extensions/nostr/src/nostr-state-store.test.ts +0 -128
- package/extensions/nostr/src/nostr-state-store.ts +0 -226
- package/extensions/nostr/src/runtime.ts +0 -14
- package/extensions/nostr/src/seen-tracker.ts +0 -271
- package/extensions/nostr/src/types.test.ts +0 -161
- package/extensions/nostr/src/types.ts +0 -99
- package/extensions/nostr/test/setup.ts +0 -5
- package/extensions/open-prose/README.md +0 -25
- package/extensions/open-prose/clawdbot.plugin.json +0 -11
- package/extensions/open-prose/index.ts +0 -5
- package/extensions/open-prose/package.json +0 -11
- package/extensions/open-prose/skills/prose/LICENSE +0 -21
- package/extensions/open-prose/skills/prose/SKILL.md +0 -318
- package/extensions/open-prose/skills/prose/alt-borges.md +0 -141
- package/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -358
- package/extensions/open-prose/skills/prose/alts/borges.md +0 -360
- package/extensions/open-prose/skills/prose/alts/folk.md +0 -322
- package/extensions/open-prose/skills/prose/alts/homer.md +0 -346
- package/extensions/open-prose/skills/prose/alts/kafka.md +0 -373
- package/extensions/open-prose/skills/prose/compiler.md +0 -2967
- package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -4
- package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -6
- package/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -17
- package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -14
- package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -17
- package/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -25
- package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -32
- package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -27
- package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -43
- package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -51
- package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -48
- package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -23
- package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -19
- package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -19
- package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -36
- package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -71
- package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -35
- package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -51
- package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -63
- package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -86
- package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -114
- package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -100
- package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -105
- package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -37
- package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -1572
- package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -218
- package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -42
- package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -145
- package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -168
- package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -204
- package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -296
- package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -237
- package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -1474
- package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -455
- package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -277
- package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -32
- package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -38
- package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -46
- package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -50
- package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -261
- package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -159
- package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -637
- package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -148
- package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -225
- package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -356
- package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -445
- package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -210
- package/extensions/open-prose/skills/prose/examples/README.md +0 -391
- package/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -22
- package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -18
- package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -17
- package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -223
- package/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -951
- package/extensions/open-prose/skills/prose/guidance/patterns.md +0 -700
- package/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -180
- package/extensions/open-prose/skills/prose/help.md +0 -143
- package/extensions/open-prose/skills/prose/lib/README.md +0 -105
- package/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -215
- package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -174
- package/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -250
- package/extensions/open-prose/skills/prose/lib/inspector.prose +0 -196
- package/extensions/open-prose/skills/prose/lib/profiler.prose +0 -460
- package/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -275
- package/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -118
- package/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -93
- package/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -243
- package/extensions/open-prose/skills/prose/primitives/session.md +0 -587
- package/extensions/open-prose/skills/prose/prose.md +0 -1235
- package/extensions/open-prose/skills/prose/state/filesystem.md +0 -478
- package/extensions/open-prose/skills/prose/state/in-context.md +0 -380
- package/extensions/open-prose/skills/prose/state/postgres.md +0 -875
- package/extensions/open-prose/skills/prose/state/sqlite.md +0 -572
- package/extensions/qwen-portal-auth/README.md +0 -24
- package/extensions/qwen-portal-auth/clawdbot.plugin.json +0 -11
- package/extensions/qwen-portal-auth/index.ts +0 -127
- package/extensions/qwen-portal-auth/oauth.ts +0 -190
- package/extensions/signal/clawdbot.plugin.json +0 -11
- package/extensions/signal/index.ts +0 -18
- package/extensions/signal/package.json +0 -11
- package/extensions/signal/src/channel.ts +0 -312
- package/extensions/signal/src/runtime.ts +0 -14
- package/extensions/telegram/clawdbot.plugin.json +0 -11
- package/extensions/telegram/index.ts +0 -18
- package/extensions/telegram/package.json +0 -11
- package/extensions/telegram/src/channel.ts +0 -478
- package/extensions/telegram/src/runtime.ts +0 -14
- package/extensions/tlon/README.md +0 -5
- package/extensions/tlon/clawdbot.plugin.json +0 -11
- package/extensions/tlon/index.ts +0 -18
- package/extensions/tlon/package.json +0 -30
- package/extensions/tlon/src/channel.ts +0 -379
- package/extensions/tlon/src/config-schema.test.ts +0 -32
- package/extensions/tlon/src/config-schema.ts +0 -43
- package/extensions/tlon/src/monitor/discovery.ts +0 -71
- package/extensions/tlon/src/monitor/history.ts +0 -87
- package/extensions/tlon/src/monitor/index.ts +0 -501
- package/extensions/tlon/src/monitor/processed-messages.test.ts +0 -24
- package/extensions/tlon/src/monitor/processed-messages.ts +0 -38
- package/extensions/tlon/src/monitor/utils.ts +0 -83
- package/extensions/tlon/src/onboarding.ts +0 -213
- package/extensions/tlon/src/runtime.ts +0 -14
- package/extensions/tlon/src/targets.ts +0 -79
- package/extensions/tlon/src/types.ts +0 -85
- package/extensions/tlon/src/urbit/auth.ts +0 -18
- package/extensions/tlon/src/urbit/http-api.ts +0 -36
- package/extensions/tlon/src/urbit/send.test.ts +0 -38
- package/extensions/tlon/src/urbit/send.ts +0 -127
- package/extensions/tlon/src/urbit/sse-client.test.ts +0 -41
- package/extensions/tlon/src/urbit/sse-client.ts +0 -367
- package/extensions/twitch/CHANGELOG.md +0 -21
- package/extensions/twitch/README.md +0 -89
- package/extensions/twitch/clawdbot.plugin.json +0 -9
- package/extensions/twitch/index.ts +0 -20
- package/extensions/twitch/package.json +0 -20
- package/extensions/twitch/src/access-control.test.ts +0 -489
- package/extensions/twitch/src/access-control.ts +0 -154
- package/extensions/twitch/src/actions.ts +0 -173
- package/extensions/twitch/src/client-manager-registry.ts +0 -115
- package/extensions/twitch/src/config-schema.ts +0 -82
- package/extensions/twitch/src/config.test.ts +0 -88
- package/extensions/twitch/src/config.ts +0 -116
- package/extensions/twitch/src/monitor.ts +0 -257
- package/extensions/twitch/src/onboarding.test.ts +0 -311
- package/extensions/twitch/src/onboarding.ts +0 -411
- package/extensions/twitch/src/outbound.test.ts +0 -373
- package/extensions/twitch/src/outbound.ts +0 -186
- package/extensions/twitch/src/plugin.test.ts +0 -39
- package/extensions/twitch/src/plugin.ts +0 -274
- package/extensions/twitch/src/probe.test.ts +0 -198
- package/extensions/twitch/src/probe.ts +0 -118
- package/extensions/twitch/src/resolver.ts +0 -137
- package/extensions/twitch/src/runtime.ts +0 -14
- package/extensions/twitch/src/send.test.ts +0 -289
- package/extensions/twitch/src/send.ts +0 -136
- package/extensions/twitch/src/status.test.ts +0 -270
- package/extensions/twitch/src/status.ts +0 -176
- package/extensions/twitch/src/token.test.ts +0 -171
- package/extensions/twitch/src/token.ts +0 -87
- package/extensions/twitch/src/twitch-client.test.ts +0 -574
- package/extensions/twitch/src/twitch-client.ts +0 -277
- package/extensions/twitch/src/types.ts +0 -141
- package/extensions/twitch/src/utils/markdown.ts +0 -92
- package/extensions/twitch/src/utils/twitch.ts +0 -78
- package/extensions/twitch/test/setup.ts +0 -7
- package/extensions/voice-call/CHANGELOG.md +0 -72
- package/extensions/voice-call/README.md +0 -134
- package/extensions/voice-call/clawdbot.plugin.json +0 -601
- package/extensions/voice-call/index.ts +0 -497
- package/extensions/voice-call/package.json +0 -16
- package/extensions/voice-call/src/cli.ts +0 -300
- package/extensions/voice-call/src/config.test.ts +0 -204
- package/extensions/voice-call/src/config.ts +0 -493
- package/extensions/voice-call/src/core-bridge.ts +0 -196
- package/extensions/voice-call/src/manager/context.ts +0 -21
- package/extensions/voice-call/src/manager/events.ts +0 -177
- package/extensions/voice-call/src/manager/lookup.ts +0 -33
- package/extensions/voice-call/src/manager/outbound.ts +0 -248
- package/extensions/voice-call/src/manager/state.ts +0 -50
- package/extensions/voice-call/src/manager/store.ts +0 -88
- package/extensions/voice-call/src/manager/timers.ts +0 -86
- package/extensions/voice-call/src/manager/twiml.ts +0 -9
- package/extensions/voice-call/src/manager.test.ts +0 -108
- package/extensions/voice-call/src/manager.ts +0 -876
- package/extensions/voice-call/src/media-stream.test.ts +0 -97
- package/extensions/voice-call/src/media-stream.ts +0 -393
- package/extensions/voice-call/src/providers/base.ts +0 -67
- package/extensions/voice-call/src/providers/index.ts +0 -10
- package/extensions/voice-call/src/providers/mock.ts +0 -168
- package/extensions/voice-call/src/providers/plivo.test.ts +0 -28
- package/extensions/voice-call/src/providers/plivo.ts +0 -504
- package/extensions/voice-call/src/providers/stt-openai-realtime.ts +0 -311
- package/extensions/voice-call/src/providers/telnyx.ts +0 -364
- package/extensions/voice-call/src/providers/tts-openai.ts +0 -264
- package/extensions/voice-call/src/providers/twilio/api.ts +0 -45
- package/extensions/voice-call/src/providers/twilio/webhook.ts +0 -29
- package/extensions/voice-call/src/providers/twilio.test.ts +0 -64
- package/extensions/voice-call/src/providers/twilio.ts +0 -595
- package/extensions/voice-call/src/response-generator.ts +0 -171
- package/extensions/voice-call/src/runtime.ts +0 -205
- package/extensions/voice-call/src/telephony-audio.ts +0 -88
- package/extensions/voice-call/src/telephony-tts.ts +0 -95
- package/extensions/voice-call/src/tunnel.ts +0 -331
- package/extensions/voice-call/src/types.ts +0 -272
- package/extensions/voice-call/src/utils.ts +0 -12
- package/extensions/voice-call/src/voice-mapping.ts +0 -65
- package/extensions/voice-call/src/webhook-security.test.ts +0 -233
- package/extensions/voice-call/src/webhook-security.ts +0 -446
- package/extensions/voice-call/src/webhook.ts +0 -490
- package/extensions/whatsapp/clawdbot.plugin.json +0 -11
- package/extensions/whatsapp/index.ts +0 -18
- package/extensions/whatsapp/package.json +0 -11
- package/extensions/whatsapp/src/channel.ts +0 -500
- package/extensions/whatsapp/src/runtime.ts +0 -14
- package/extensions/zalo/CHANGELOG.md +0 -55
- package/extensions/zalo/README.md +0 -50
- package/extensions/zalo/clawdbot.plugin.json +0 -11
- package/extensions/zalo/index.ts +0 -20
- package/extensions/zalo/package.json +0 -33
- package/extensions/zalo/src/accounts.ts +0 -71
- package/extensions/zalo/src/actions.ts +0 -62
- package/extensions/zalo/src/api.ts +0 -206
- package/extensions/zalo/src/channel.directory.test.ts +0 -35
- package/extensions/zalo/src/channel.ts +0 -394
- package/extensions/zalo/src/config-schema.ts +0 -24
- package/extensions/zalo/src/monitor.ts +0 -760
- package/extensions/zalo/src/monitor.webhook.test.ts +0 -70
- package/extensions/zalo/src/onboarding.ts +0 -405
- package/extensions/zalo/src/probe.ts +0 -46
- package/extensions/zalo/src/proxy.ts +0 -18
- package/extensions/zalo/src/runtime.ts +0 -14
- package/extensions/zalo/src/send.ts +0 -117
- package/extensions/zalo/src/status-issues.ts +0 -50
- package/extensions/zalo/src/token.ts +0 -55
- package/extensions/zalo/src/types.ts +0 -42
- package/extensions/zalouser/CHANGELOG.md +0 -33
- package/extensions/zalouser/README.md +0 -221
- package/extensions/zalouser/clawdbot.plugin.json +0 -11
- package/extensions/zalouser/index.ts +0 -32
- package/extensions/zalouser/package.json +0 -33
- package/extensions/zalouser/src/accounts.ts +0 -117
- package/extensions/zalouser/src/channel.test.ts +0 -17
- package/extensions/zalouser/src/channel.ts +0 -641
- package/extensions/zalouser/src/config-schema.ts +0 -27
- package/extensions/zalouser/src/monitor.ts +0 -574
- package/extensions/zalouser/src/onboarding.ts +0 -488
- package/extensions/zalouser/src/probe.ts +0 -28
- package/extensions/zalouser/src/runtime.ts +0 -14
- package/extensions/zalouser/src/send.ts +0 -150
- package/extensions/zalouser/src/status-issues.test.ts +0 -58
- package/extensions/zalouser/src/status-issues.ts +0 -81
- package/extensions/zalouser/src/tool.ts +0 -156
- package/extensions/zalouser/src/types.ts +0 -102
- package/extensions/zalouser/src/zca.ts +0 -208
- package/skills/1password/SKILL.md +0 -53
- package/skills/1password/references/cli-examples.md +0 -29
- package/skills/1password/references/get-started.md +0 -17
- package/skills/apple-notes/SKILL.md +0 -50
- package/skills/apple-reminders/SKILL.md +0 -67
- package/skills/bear-notes/SKILL.md +0 -79
- package/skills/bird/SKILL.md +0 -197
- package/skills/blogwatcher/SKILL.md +0 -46
- package/skills/blucli/SKILL.md +0 -27
- package/skills/bluebubbles/SKILL.md +0 -39
- package/skills/camsnap/SKILL.md +0 -25
- package/skills/canvas/SKILL.md +0 -189
- package/skills/clawdhub/SKILL.md +0 -53
- package/skills/coding-agent/SKILL.md +0 -278
- package/skills/discord/SKILL.md +0 -475
- package/skills/eightctl/SKILL.md +0 -29
- package/skills/food-order/SKILL.md +0 -41
- package/skills/gemini/SKILL.md +0 -23
- package/skills/gifgrep/SKILL.md +0 -47
- package/skills/github/SKILL.md +0 -48
- package/skills/gog/SKILL.md +0 -92
- package/skills/goplaces/SKILL.md +0 -30
- package/skills/himalaya/SKILL.md +0 -217
- package/skills/himalaya/references/configuration.md +0 -174
- package/skills/himalaya/references/message-composition.md +0 -182
- package/skills/imsg/SKILL.md +0 -25
- package/skills/local-places/SERVER_README.md +0 -101
- package/skills/local-places/SKILL.md +0 -91
- package/skills/local-places/pyproject.toml +0 -27
- package/skills/local-places/src/local_places/__init__.py +0 -2
- package/skills/local-places/src/local_places/google_places.py +0 -314
- package/skills/local-places/src/local_places/main.py +0 -65
- package/skills/local-places/src/local_places/schemas.py +0 -107
- package/skills/mcporter/SKILL.md +0 -38
- package/skills/model-usage/SKILL.md +0 -45
- package/skills/model-usage/references/codexbar-cli.md +0 -28
- package/skills/model-usage/scripts/model_usage.py +0 -310
- package/skills/nano-banana-pro/SKILL.md +0 -30
- package/skills/nano-banana-pro/scripts/generate_image.py +0 -169
- package/skills/nano-pdf/SKILL.md +0 -20
- package/skills/notion/SKILL.md +0 -156
- package/skills/obsidian/SKILL.md +0 -55
- package/skills/openai-image-gen/SKILL.md +0 -71
- package/skills/openai-image-gen/scripts/gen.py +0 -240
- package/skills/openai-whisper/SKILL.md +0 -19
- package/skills/openai-whisper-api/SKILL.md +0 -43
- package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
- package/skills/openhue/SKILL.md +0 -30
- package/skills/oracle/SKILL.md +0 -105
- package/skills/ordercli/SKILL.md +0 -47
- package/skills/peekaboo/SKILL.md +0 -153
- package/skills/sag/SKILL.md +0 -62
- package/skills/session-logs/SKILL.md +0 -105
- package/skills/sherpa-onnx-tts/SKILL.md +0 -49
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
- package/skills/skill-creator/SKILL.md +0 -371
- package/skills/skill-creator/license.txt +0 -202
- package/skills/skill-creator/scripts/init_skill.py +0 -378
- package/skills/skill-creator/scripts/package_skill.py +0 -111
- package/skills/skill-creator/scripts/quick_validate.py +0 -101
- package/skills/slack/SKILL.md +0 -144
- package/skills/songsee/SKILL.md +0 -29
- package/skills/sonoscli/SKILL.md +0 -26
- package/skills/spotify-player/SKILL.md +0 -34
- package/skills/summarize/SKILL.md +0 -67
- package/skills/things-mac/SKILL.md +0 -61
- package/skills/tmux/SKILL.md +0 -121
- package/skills/tmux/scripts/find-sessions.sh +0 -112
- package/skills/tmux/scripts/wait-for-text.sh +0 -83
- package/skills/trello/SKILL.md +0 -84
- package/skills/video-frames/SKILL.md +0 -29
- package/skills/video-frames/scripts/frame.sh +0 -81
- package/skills/voice-call/SKILL.md +0 -35
- package/skills/wacli/SKILL.md +0 -42
- package/skills/weather/SKILL.md +0 -49
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
# Architect By Simulation
|
|
2
|
-
#
|
|
3
|
-
# A documentation and specification development pattern where a persistent
|
|
4
|
-
# architect agent designs a system through simulated implementation phases.
|
|
5
|
-
# Each phase produces a handoff document that the next phase builds upon,
|
|
6
|
-
# culminating in complete specification documents.
|
|
7
|
-
#
|
|
8
|
-
# Key principles:
|
|
9
|
-
# - Thinking/deduction framework: "Implement" by reasoning through design
|
|
10
|
-
# - Serial pipeline with handoffs: Each phase reads previous phase's output
|
|
11
|
-
# - Persistent architect: Maintains master plan and synthesizes learnings
|
|
12
|
-
# - User checkpoint: Get plan approval BEFORE executing the pipeline
|
|
13
|
-
# - Simulation as implementation: The spec IS the deliverable
|
|
14
|
-
#
|
|
15
|
-
# Example use cases:
|
|
16
|
-
# - Designing a new feature's architecture before coding
|
|
17
|
-
# - Creating database schema specifications
|
|
18
|
-
# - Planning API designs with examples
|
|
19
|
-
# - Documenting system integration patterns
|
|
20
|
-
|
|
21
|
-
input feature: "The feature or system to architect"
|
|
22
|
-
input context_files: "Comma-separated list of files to read for context"
|
|
23
|
-
input output_dir: "Directory for the BUILD_PLAN and phase handoffs"
|
|
24
|
-
|
|
25
|
-
# ============================================================================
|
|
26
|
-
# Agent Definitions
|
|
27
|
-
# ============================================================================
|
|
28
|
-
|
|
29
|
-
# The Architect: Maintains the master plan and synthesizes across phases
|
|
30
|
-
agent architect:
|
|
31
|
-
model: opus
|
|
32
|
-
persist: true
|
|
33
|
-
prompt: """You are a software architect who designs systems by simulating their
|
|
34
|
-
implementation. You NEVER write production code—you write specifications,
|
|
35
|
-
schemas, and documentation that serve as the blueprint.
|
|
36
|
-
|
|
37
|
-
Your approach:
|
|
38
|
-
- Break complex designs into discrete phases
|
|
39
|
-
- Each phase explores one dimension of the design space
|
|
40
|
-
- Synthesize learnings from each phase into a coherent whole
|
|
41
|
-
- Be honest about trade-offs and alternatives considered
|
|
42
|
-
- Write specifications that are precise enough to implement from
|
|
43
|
-
|
|
44
|
-
You maintain context across all phases. Reference previous handoffs explicitly."""
|
|
45
|
-
|
|
46
|
-
# Phase Agent: Executes a single phase of the design
|
|
47
|
-
agent phase-executor:
|
|
48
|
-
model: opus
|
|
49
|
-
prompt: """You are a design analyst executing one phase of an architecture plan.
|
|
50
|
-
|
|
51
|
-
Your responsibilities:
|
|
52
|
-
1. Read the BUILD_PLAN to understand your phase's goals
|
|
53
|
-
2. Read previous phase handoffs to understand what's been decided
|
|
54
|
-
3. Analyze your assigned dimension of the design
|
|
55
|
-
4. Make concrete decisions with rationale
|
|
56
|
-
5. Create a handoff document for the next phase
|
|
57
|
-
|
|
58
|
-
Your handoff document must include:
|
|
59
|
-
- Summary of what was analyzed
|
|
60
|
-
- Decisions made with rationale
|
|
61
|
-
- Open questions resolved
|
|
62
|
-
- Recommendations for the next phase
|
|
63
|
-
|
|
64
|
-
Be thorough but focused on YOUR phase's scope."""
|
|
65
|
-
|
|
66
|
-
# Reviewer: Validates specifications before finalization
|
|
67
|
-
agent reviewer:
|
|
68
|
-
model: sonnet
|
|
69
|
-
prompt: """You are a technical reviewer validating architecture specifications.
|
|
70
|
-
|
|
71
|
-
Check for:
|
|
72
|
-
- Internal consistency (do all parts agree?)
|
|
73
|
-
- Completeness (are there gaps?)
|
|
74
|
-
- Feasibility (can this actually be built?)
|
|
75
|
-
- Trade-off honesty (are downsides acknowledged?)
|
|
76
|
-
- Clarity (could a developer implement from this?)
|
|
77
|
-
|
|
78
|
-
Be constructive. Flag issues but also acknowledge good decisions."""
|
|
79
|
-
|
|
80
|
-
# ============================================================================
|
|
81
|
-
# Block Definitions
|
|
82
|
-
# ============================================================================
|
|
83
|
-
|
|
84
|
-
# Gather context from specified files
|
|
85
|
-
block gather-context(files):
|
|
86
|
-
let context = session "Read and summarize the context files"
|
|
87
|
-
prompt: """Read these files and extract the key information relevant to
|
|
88
|
-
designing a new component that integrates with them:
|
|
89
|
-
|
|
90
|
-
Files: {files}
|
|
91
|
-
|
|
92
|
-
For each file, note:
|
|
93
|
-
- What it does
|
|
94
|
-
- Key interfaces/patterns
|
|
95
|
-
- Integration points
|
|
96
|
-
- Constraints or conventions to follow"""
|
|
97
|
-
|
|
98
|
-
# Execute a single phase with handoff
|
|
99
|
-
block execute-phase(phase_number, phase_name, previous_handoffs):
|
|
100
|
-
let result = session: phase-executor
|
|
101
|
-
prompt: """Execute Phase {phase_number}: {phase_name}
|
|
102
|
-
|
|
103
|
-
Read the BUILD_PLAN.md in {output_dir} for your phase's tasks.
|
|
104
|
-
Read previous handoff files to understand decisions made so far.
|
|
105
|
-
|
|
106
|
-
Previous handoffs: {previous_handoffs}
|
|
107
|
-
|
|
108
|
-
Create your handoff document with:
|
|
109
|
-
- What you analyzed
|
|
110
|
-
- Decisions made (with rationale)
|
|
111
|
-
- Trade-offs considered
|
|
112
|
-
- Recommendations for next phase
|
|
113
|
-
|
|
114
|
-
Write the handoff to: {output_dir}/phase-{phase_number}-handoff.md"""
|
|
115
|
-
context: previous_handoffs
|
|
116
|
-
|
|
117
|
-
# Synthesize all handoffs into cohesive spec
|
|
118
|
-
block synthesize-spec(all_handoffs, spec_path):
|
|
119
|
-
let spec = resume: architect
|
|
120
|
-
prompt: """Synthesize all phase handoffs into the final specification document.
|
|
121
|
-
|
|
122
|
-
Handoffs to synthesize: {all_handoffs}
|
|
123
|
-
|
|
124
|
-
The specification should:
|
|
125
|
-
- Follow the structure of similar docs in the codebase
|
|
126
|
-
- Incorporate all decisions from the phases
|
|
127
|
-
- Present a coherent, implementable design
|
|
128
|
-
- Include examples and code samples where relevant
|
|
129
|
-
|
|
130
|
-
Write the final spec to: {spec_path}"""
|
|
131
|
-
context: all_handoffs
|
|
132
|
-
|
|
133
|
-
# ============================================================================
|
|
134
|
-
# Main Workflow: Architect By Simulation
|
|
135
|
-
# ============================================================================
|
|
136
|
-
|
|
137
|
-
# Phase 1: Context Gathering
|
|
138
|
-
# --------------------------
|
|
139
|
-
# Understand the existing system before designing additions
|
|
140
|
-
|
|
141
|
-
let context = do gather-context(context_files)
|
|
142
|
-
|
|
143
|
-
# Phase 2: Create Master Plan
|
|
144
|
-
# ---------------------------
|
|
145
|
-
# Architect breaks down the design into phases
|
|
146
|
-
|
|
147
|
-
let master_plan = session: architect
|
|
148
|
-
prompt: """Create a BUILD_PLAN for designing: {feature}
|
|
149
|
-
|
|
150
|
-
Based on this context: {context}
|
|
151
|
-
|
|
152
|
-
Structure the plan as a series of phases, where each phase explores one
|
|
153
|
-
dimension of the design. For example:
|
|
154
|
-
- Phase 1: Use Case Analysis (when is this needed vs alternatives)
|
|
155
|
-
- Phase 2: Interface Design (how users/systems interact with it)
|
|
156
|
-
- Phase 3: Data Model (what state is stored and how)
|
|
157
|
-
- Phase 4: Integration Points (how it connects to existing systems)
|
|
158
|
-
- Phase 5: Error Handling (failure modes and recovery)
|
|
159
|
-
- etc.
|
|
160
|
-
|
|
161
|
-
For each phase, specify:
|
|
162
|
-
- Goal (one sentence)
|
|
163
|
-
- Tasks (numbered list of what to analyze)
|
|
164
|
-
- Decisions to make
|
|
165
|
-
- Handoff requirements
|
|
166
|
-
|
|
167
|
-
Write the plan to: {output_dir}/BUILD_PLAN.md
|
|
168
|
-
|
|
169
|
-
Also create a list of phase names for the execution loop."""
|
|
170
|
-
context: context
|
|
171
|
-
|
|
172
|
-
# Phase 3: User Reviews the Plan
|
|
173
|
-
# ------------------------------
|
|
174
|
-
# Get human approval BEFORE executing the pipeline
|
|
175
|
-
|
|
176
|
-
let plan_summary = session "Summarize the plan for user review"
|
|
177
|
-
prompt: """Summarize the BUILD_PLAN in a concise format for user review:
|
|
178
|
-
|
|
179
|
-
1. Number of phases
|
|
180
|
-
2. What each phase will analyze
|
|
181
|
-
3. Expected deliverables
|
|
182
|
-
4. Open questions that need user input before proceeding
|
|
183
|
-
|
|
184
|
-
Ask: "Review this plan. Should I proceed with executing all phases?"""""
|
|
185
|
-
context: master_plan
|
|
186
|
-
|
|
187
|
-
input user_approval: "User reviews the plan and confirms to proceed"
|
|
188
|
-
|
|
189
|
-
# Phase 4: Serial Pipeline Execution
|
|
190
|
-
# ----------------------------------
|
|
191
|
-
# Each phase builds on the previous, creating handoffs
|
|
192
|
-
|
|
193
|
-
let phase_names = session "Extract phase names from master plan"
|
|
194
|
-
prompt: "Extract just the phase names as a numbered list from this plan"
|
|
195
|
-
context: master_plan
|
|
196
|
-
|
|
197
|
-
# Execute phases serially, each building on previous handoffs
|
|
198
|
-
let accumulated_handoffs = ""
|
|
199
|
-
|
|
200
|
-
for phase_name, index in phase_names:
|
|
201
|
-
let handoff = do execute-phase(index, phase_name, accumulated_handoffs)
|
|
202
|
-
|
|
203
|
-
# Architect synthesizes learnings after each phase
|
|
204
|
-
resume: architect
|
|
205
|
-
prompt: """Phase {index} ({phase_name}) is complete.
|
|
206
|
-
|
|
207
|
-
Review the handoff and update your understanding of the design.
|
|
208
|
-
Note any adjustments needed to the remaining phases.
|
|
209
|
-
Track open questions that need resolution."""
|
|
210
|
-
context: handoff
|
|
211
|
-
|
|
212
|
-
# Accumulate handoffs for next phase
|
|
213
|
-
accumulated_handoffs = "{accumulated_handoffs}\n\n---\n\n{handoff}"
|
|
214
|
-
|
|
215
|
-
# Phase 5: Review and Validation
|
|
216
|
-
# ------------------------------
|
|
217
|
-
# Independent review before finalizing
|
|
218
|
-
|
|
219
|
-
let review = session: reviewer
|
|
220
|
-
prompt: """Review the complete design across all phase handoffs.
|
|
221
|
-
|
|
222
|
-
Check for:
|
|
223
|
-
- Consistency across phases
|
|
224
|
-
- Gaps in the design
|
|
225
|
-
- Unclear specifications
|
|
226
|
-
- Missing trade-off analysis
|
|
227
|
-
|
|
228
|
-
Provide a review summary with:
|
|
229
|
-
- Overall assessment (ready / needs revision)
|
|
230
|
-
- Critical issues (must fix)
|
|
231
|
-
- Minor issues (nice to fix)
|
|
232
|
-
- Commendations (good decisions)"""
|
|
233
|
-
context: accumulated_handoffs
|
|
234
|
-
|
|
235
|
-
# If review found critical issues, architect revises
|
|
236
|
-
if **review found critical issues that need addressing**:
|
|
237
|
-
let revisions = resume: architect
|
|
238
|
-
prompt: """The review identified issues that need addressing.
|
|
239
|
-
|
|
240
|
-
Review feedback: {review}
|
|
241
|
-
|
|
242
|
-
Revise the relevant phase handoffs to address:
|
|
243
|
-
1. Critical issues (required)
|
|
244
|
-
2. Minor issues (if straightforward)
|
|
245
|
-
|
|
246
|
-
Document what was changed and why."""
|
|
247
|
-
context: { accumulated_handoffs, review }
|
|
248
|
-
|
|
249
|
-
# Update accumulated handoffs with revisions
|
|
250
|
-
accumulated_handoffs = "{accumulated_handoffs}\n\n---\n\nREVISIONS:\n{revisions}"
|
|
251
|
-
|
|
252
|
-
# Phase 6: Final Spec Generation
|
|
253
|
-
# ------------------------------
|
|
254
|
-
# Synthesize everything into the deliverable
|
|
255
|
-
|
|
256
|
-
let final_spec = do synthesize-spec(accumulated_handoffs, "{output_dir}/SPEC.md")
|
|
257
|
-
|
|
258
|
-
# Phase 7: Index Registration
|
|
259
|
-
# ---------------------------
|
|
260
|
-
# Update any index files that need to reference the new spec
|
|
261
|
-
|
|
262
|
-
if **the spec should be registered in an index file**:
|
|
263
|
-
let registration = session "Register spec in index"
|
|
264
|
-
prompt: """The new specification has been created at: {output_dir}/SPEC.md
|
|
265
|
-
|
|
266
|
-
Identify any index files (README.md, SKILL.md, etc.) that should reference
|
|
267
|
-
this new spec and add appropriate entries.
|
|
268
|
-
|
|
269
|
-
Follow the existing format in those files."""
|
|
270
|
-
context: final_spec
|
|
271
|
-
|
|
272
|
-
# Final Output
|
|
273
|
-
# ------------
|
|
274
|
-
|
|
275
|
-
output spec = final_spec
|
|
276
|
-
output handoffs = accumulated_handoffs
|
|
277
|
-
output review = review
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# RLM: Self-Refinement
|
|
2
|
-
# Recursive improvement until quality threshold
|
|
3
|
-
|
|
4
|
-
input artifact: "The artifact to refine"
|
|
5
|
-
input criteria: "Quality criteria"
|
|
6
|
-
|
|
7
|
-
agent evaluator:
|
|
8
|
-
model: sonnet
|
|
9
|
-
prompt: "Score 0-100 against criteria. List specific issues."
|
|
10
|
-
|
|
11
|
-
agent refiner:
|
|
12
|
-
model: opus
|
|
13
|
-
prompt: "Make targeted improvements. Preserve what works."
|
|
14
|
-
|
|
15
|
-
block refine(content, depth):
|
|
16
|
-
if depth <= 0:
|
|
17
|
-
output content
|
|
18
|
-
|
|
19
|
-
let eval = session: evaluator
|
|
20
|
-
prompt: "Evaluate against: {criteria}"
|
|
21
|
-
context: content
|
|
22
|
-
|
|
23
|
-
if **score >= 85**:
|
|
24
|
-
output content
|
|
25
|
-
|
|
26
|
-
let improved = session: refiner
|
|
27
|
-
prompt: "Fix the identified issues"
|
|
28
|
-
context: { artifact: content, evaluation: eval }
|
|
29
|
-
|
|
30
|
-
output do refine(improved, depth - 1)
|
|
31
|
-
|
|
32
|
-
output result = do refine(artifact, 5)
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# RLM: Divide and Conquer
|
|
2
|
-
# Handle inputs 100x beyond context limits
|
|
3
|
-
|
|
4
|
-
input corpus: "Large corpus to analyze"
|
|
5
|
-
input query: "What to find or compute"
|
|
6
|
-
|
|
7
|
-
agent chunker:
|
|
8
|
-
model: haiku
|
|
9
|
-
prompt: "Split at semantic boundaries into 4-8 chunks."
|
|
10
|
-
|
|
11
|
-
agent analyzer:
|
|
12
|
-
model: sonnet
|
|
13
|
-
prompt: "Extract information relevant to the query."
|
|
14
|
-
|
|
15
|
-
agent synthesizer:
|
|
16
|
-
model: opus
|
|
17
|
-
prompt: "Combine partial results. Reconcile conflicts."
|
|
18
|
-
|
|
19
|
-
block process(data, depth):
|
|
20
|
-
if **data under 50k characters** or depth <= 0:
|
|
21
|
-
output session: analyzer
|
|
22
|
-
prompt: "{query}"
|
|
23
|
-
context: data
|
|
24
|
-
|
|
25
|
-
let chunks = session: chunker
|
|
26
|
-
prompt: "Split this corpus"
|
|
27
|
-
context: data
|
|
28
|
-
|
|
29
|
-
let partials = []
|
|
30
|
-
parallel for chunk in chunks:
|
|
31
|
-
let result = do process(chunk, depth - 1)
|
|
32
|
-
partials = partials + [result]
|
|
33
|
-
|
|
34
|
-
output session: synthesizer
|
|
35
|
-
prompt: "Synthesize for: {query}"
|
|
36
|
-
context: partials
|
|
37
|
-
|
|
38
|
-
output answer = do process(corpus, 4)
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# RLM: Filter and Recurse
|
|
2
|
-
# Cheap screening before expensive deep analysis
|
|
3
|
-
|
|
4
|
-
input documents: "Collection of documents to search"
|
|
5
|
-
input question: "Question requiring multi-source evidence"
|
|
6
|
-
|
|
7
|
-
agent screener:
|
|
8
|
-
model: haiku
|
|
9
|
-
prompt: "Quick relevance check. Err toward inclusion."
|
|
10
|
-
|
|
11
|
-
agent investigator:
|
|
12
|
-
model: opus
|
|
13
|
-
prompt: "Deep analysis. Extract specific evidence with citations."
|
|
14
|
-
|
|
15
|
-
agent reasoner:
|
|
16
|
-
model: opus
|
|
17
|
-
prompt: "Synthesize into answer. Chain reasoning. Cite sources."
|
|
18
|
-
|
|
19
|
-
block search(docs, q, depth):
|
|
20
|
-
if **docs is empty** or depth <= 0:
|
|
21
|
-
output []
|
|
22
|
-
|
|
23
|
-
let relevant = session: screener
|
|
24
|
-
prompt: "Find documents relevant to: {q}"
|
|
25
|
-
context: docs
|
|
26
|
-
|
|
27
|
-
let evidence = relevant | pmap:
|
|
28
|
-
session: investigator
|
|
29
|
-
prompt: "Extract evidence for: {q}"
|
|
30
|
-
context: item
|
|
31
|
-
|
|
32
|
-
let gaps = session "What aspects of '{q}' still lack evidence?"
|
|
33
|
-
context: evidence
|
|
34
|
-
|
|
35
|
-
if **significant gaps remain**:
|
|
36
|
-
let refined = session "Refine query to target: {gaps}"
|
|
37
|
-
let more = do search(docs, refined, depth - 1)
|
|
38
|
-
output evidence + more
|
|
39
|
-
|
|
40
|
-
output evidence
|
|
41
|
-
|
|
42
|
-
let all_evidence = do search(documents, question, 3)
|
|
43
|
-
|
|
44
|
-
output answer = session: reasoner
|
|
45
|
-
prompt: "Answer: {question}"
|
|
46
|
-
context: all_evidence
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# RLM: Pairwise Analysis
|
|
2
|
-
# O(n²) tasks through batched pair processing
|
|
3
|
-
# Base LLMs: <1% accuracy. RLMs: 58%. (OOLONG-Pairs benchmark)
|
|
4
|
-
|
|
5
|
-
input items: "Items to compare pairwise"
|
|
6
|
-
input relation: "Relationship to identify"
|
|
7
|
-
|
|
8
|
-
agent comparator:
|
|
9
|
-
model: sonnet
|
|
10
|
-
prompt: "Analyze relationship. Return: {pair, relation, strength, evidence}."
|
|
11
|
-
|
|
12
|
-
agent mapper:
|
|
13
|
-
model: opus
|
|
14
|
-
prompt: "Build relationship map. Identify clusters and anomalies."
|
|
15
|
-
|
|
16
|
-
block pairs(list):
|
|
17
|
-
let result = []
|
|
18
|
-
for i, a in list:
|
|
19
|
-
for j, b in list:
|
|
20
|
-
if j > i:
|
|
21
|
-
result = result + [{first: a, second: b}]
|
|
22
|
-
output result
|
|
23
|
-
|
|
24
|
-
block analyze(items, rel, depth):
|
|
25
|
-
let all_pairs = do pairs(items)
|
|
26
|
-
|
|
27
|
-
if **fewer than 100 pairs** or depth <= 0:
|
|
28
|
-
output all_pairs | pmap:
|
|
29
|
-
session: comparator
|
|
30
|
-
prompt: "Analyze {rel}"
|
|
31
|
-
context: item
|
|
32
|
-
|
|
33
|
-
let batches = session "Split into batches of ~25 pairs"
|
|
34
|
-
context: all_pairs
|
|
35
|
-
|
|
36
|
-
let results = []
|
|
37
|
-
parallel for batch in batches:
|
|
38
|
-
let batch_results = batch | pmap:
|
|
39
|
-
session: comparator
|
|
40
|
-
prompt: "Analyze {rel}"
|
|
41
|
-
context: item
|
|
42
|
-
results = results + batch_results
|
|
43
|
-
|
|
44
|
-
output results
|
|
45
|
-
|
|
46
|
-
let relationships = do analyze(items, relation, 2)
|
|
47
|
-
|
|
48
|
-
output map = session: mapper
|
|
49
|
-
prompt: "Build {relation} map"
|
|
50
|
-
context: { items, relationships }
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
# /run Endpoint UX Test
|
|
2
|
-
#
|
|
3
|
-
# A multi-agent observation protocol for qualitative UX testing of the
|
|
4
|
-
# OpenProse /run endpoint. Two concurrent observers watch the execution
|
|
5
|
-
# from different perspectives and synthesize feedback.
|
|
6
|
-
#
|
|
7
|
-
# Unlike correctness testing, this focuses on user experience quality:
|
|
8
|
-
# - How does the execution FEEL to a user?
|
|
9
|
-
# - What's confusing, surprising, or delightful?
|
|
10
|
-
# - Where are the rough edges?
|
|
11
|
-
#
|
|
12
|
-
# Key patterns demonstrated:
|
|
13
|
-
# - Parallel observers with different responsibilities
|
|
14
|
-
# - Persistent agents with memory for continuous synthesis
|
|
15
|
-
# - Loop-based polling with timing control
|
|
16
|
-
# - Final synthesis across multiple observation streams
|
|
17
|
-
|
|
18
|
-
input test_program: "The OpenProse program to execute for testing"
|
|
19
|
-
input api_url: "API base URL (e.g., https://api.openprose.com or http://localhost:3001)"
|
|
20
|
-
input auth_token: "Bearer token for authentication"
|
|
21
|
-
|
|
22
|
-
# ============================================================================
|
|
23
|
-
# Agent Definitions: The Observation Team
|
|
24
|
-
# ============================================================================
|
|
25
|
-
|
|
26
|
-
# WebSocket Observer: Watches the real-time execution stream
|
|
27
|
-
agent ws_observer:
|
|
28
|
-
model: opus
|
|
29
|
-
persist: true
|
|
30
|
-
prompt: """You are a UX researcher observing an OpenProse program execution.
|
|
31
|
-
|
|
32
|
-
Your job is to watch the WebSocket execution stream and evaluate the experience
|
|
33
|
-
from a USER's perspective - not as an engineer checking correctness.
|
|
34
|
-
|
|
35
|
-
Focus on:
|
|
36
|
-
- Latency and responsiveness (does it FEEL fast?)
|
|
37
|
-
- Clarity of status transitions (does the user know what's happening?)
|
|
38
|
-
- Quality of streamed events (are they informative? overwhelming? sparse?)
|
|
39
|
-
- Error messages (helpful or cryptic?)
|
|
40
|
-
- Overall flow (smooth or jarring?)
|
|
41
|
-
|
|
42
|
-
Log your raw observations, then periodically synthesize into user feedback.
|
|
43
|
-
Think: "If I were a first-time user, what would I think right now?"
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
# File Explorer Monitor: Watches the filesystem during execution
|
|
47
|
-
agent file_observer:
|
|
48
|
-
model: opus
|
|
49
|
-
persist: true
|
|
50
|
-
prompt: """You are a UX researcher monitoring the file system during execution.
|
|
51
|
-
|
|
52
|
-
Your job is to observe how the filesystem changes as a program runs, evaluating
|
|
53
|
-
whether the state management would make sense to a user browsing files.
|
|
54
|
-
|
|
55
|
-
Focus on:
|
|
56
|
-
- Directory structure clarity (can a user understand what's where?)
|
|
57
|
-
- File naming conventions (self-documenting or cryptic?)
|
|
58
|
-
- State file contents (readable? useful for debugging?)
|
|
59
|
-
- Timing of file creation/modification (predictable?)
|
|
60
|
-
- What a file browser UI should show
|
|
61
|
-
|
|
62
|
-
You will poll periodically and note changes between snapshots.
|
|
63
|
-
"""
|
|
64
|
-
|
|
65
|
-
# Synthesis Agent: Combines observations into action items
|
|
66
|
-
agent synthesizer:
|
|
67
|
-
model: opus
|
|
68
|
-
prompt: """You are a senior UX researcher synthesizing observations from
|
|
69
|
-
multiple sources into prioritized, actionable feedback.
|
|
70
|
-
|
|
71
|
-
Your output should be:
|
|
72
|
-
1. Correlated findings (where did both observers notice the same thing?)
|
|
73
|
-
2. Prioritized action items (high/medium/low)
|
|
74
|
-
3. Specific quotes/evidence supporting each finding
|
|
75
|
-
4. Recommendations that are concrete and implementable
|
|
76
|
-
|
|
77
|
-
Be direct. "The loading state is confusing" not "Consider potentially improving..."
|
|
78
|
-
"""
|
|
79
|
-
|
|
80
|
-
# ============================================================================
|
|
81
|
-
# Block Definitions: Observation Operations
|
|
82
|
-
# ============================================================================
|
|
83
|
-
|
|
84
|
-
# Initialize the execution and get connection details
|
|
85
|
-
block setup_execution(program, api_url, token):
|
|
86
|
-
let execution_info = session "Execute POST /run"
|
|
87
|
-
prompt: """Make a POST request to {api_url}/run with:
|
|
88
|
-
- Header: Authorization: Bearer {token}
|
|
89
|
-
- Header: Content-Type: application/json
|
|
90
|
-
- Body: {"program": <the program below>}
|
|
91
|
-
|
|
92
|
-
Program to execute:
|
|
93
|
-
```
|
|
94
|
-
{program}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Return the response JSON containing executionId, environmentId, and wsUrl.
|
|
98
|
-
Also note the response time and any issues with the request."""
|
|
99
|
-
permissions:
|
|
100
|
-
network: ["{api_url}/*"]
|
|
101
|
-
|
|
102
|
-
output execution_info = execution_info
|
|
103
|
-
|
|
104
|
-
# WebSocket observation loop - runs until execution completes
|
|
105
|
-
block observe_websocket(ws_url, token, program):
|
|
106
|
-
let connection = session: ws_observer
|
|
107
|
-
prompt: """Connect to the WebSocket at:
|
|
108
|
-
{ws_url}&token={token}
|
|
109
|
-
|
|
110
|
-
Once connected, send the execute message:
|
|
111
|
-
{"type":"execute","program":<the program>}
|
|
112
|
-
|
|
113
|
-
Program:
|
|
114
|
-
```
|
|
115
|
-
{program}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Log your initial connection experience:
|
|
119
|
-
- How long did connection take?
|
|
120
|
-
- Any handshake issues?
|
|
121
|
-
- First message received?"""
|
|
122
|
-
|
|
123
|
-
loop until **execution completed (received status: completed/failed/aborted)**:
|
|
124
|
-
resume: ws_observer
|
|
125
|
-
prompt: """Continue observing the WebSocket stream.
|
|
126
|
-
|
|
127
|
-
Log each message you receive with:
|
|
128
|
-
- Timestamp
|
|
129
|
-
- Message type
|
|
130
|
-
- Key content
|
|
131
|
-
- Your interpretation as a user
|
|
132
|
-
|
|
133
|
-
After every 3-5 messages, add a synthesis entry:
|
|
134
|
-
- What would a user be thinking right now?
|
|
135
|
-
- Positive observations
|
|
136
|
-
- Concerning observations"""
|
|
137
|
-
|
|
138
|
-
# Final synthesis from this observer
|
|
139
|
-
output ws_feedback = resume: ws_observer
|
|
140
|
-
prompt: """The execution has completed. Write your final assessment:
|
|
141
|
-
|
|
142
|
-
1. Total duration and event count
|
|
143
|
-
2. Status transitions observed
|
|
144
|
-
3. What worked well from a UX perspective
|
|
145
|
-
4. Pain points and confusion
|
|
146
|
-
5. Top 3 recommendations"""
|
|
147
|
-
|
|
148
|
-
# File explorer polling loop - checks every ~10 seconds
|
|
149
|
-
block observe_filesystem(env_id, api_url, token):
|
|
150
|
-
let initial_tree = session: file_observer
|
|
151
|
-
prompt: """Fetch the initial file tree:
|
|
152
|
-
GET {api_url}/environments/{env_id}/files/tree?depth=3
|
|
153
|
-
Authorization: Bearer {token}
|
|
154
|
-
|
|
155
|
-
Log what you see:
|
|
156
|
-
- Directory structure
|
|
157
|
-
- Any existing .prose/ state
|
|
158
|
-
- Baseline for comparison"""
|
|
159
|
-
permissions:
|
|
160
|
-
network: ["{api_url}/*"]
|
|
161
|
-
|
|
162
|
-
let snapshot_count = 0
|
|
163
|
-
|
|
164
|
-
loop until **websocket observer signals completion** (max: 30):
|
|
165
|
-
let snapshot_count = snapshot_count + 1
|
|
166
|
-
|
|
167
|
-
resume: file_observer
|
|
168
|
-
prompt: """Snapshot #{snapshot_count}: Fetch the current file tree and compare to previous.
|
|
169
|
-
|
|
170
|
-
GET {api_url}/environments/{env_id}/files/tree?depth=3
|
|
171
|
-
|
|
172
|
-
Log:
|
|
173
|
-
- What's NEW since last snapshot
|
|
174
|
-
- What's MODIFIED since last snapshot
|
|
175
|
-
- Any interesting files to read
|
|
176
|
-
- Your interpretation of what the execution is doing
|
|
177
|
-
|
|
178
|
-
If you see interesting state files (.prose/runs/*/state.md, bindings/, etc.),
|
|
179
|
-
read them and comment on their clarity.
|
|
180
|
-
|
|
181
|
-
Note: This is snapshot #{snapshot_count}. Aim for ~10 second intervals."""
|
|
182
|
-
permissions:
|
|
183
|
-
network: ["{api_url}/*"]
|
|
184
|
-
|
|
185
|
-
# Final synthesis from this observer
|
|
186
|
-
output file_feedback = resume: file_observer
|
|
187
|
-
prompt: """The execution has completed. Write your final filesystem assessment:
|
|
188
|
-
|
|
189
|
-
1. Total snapshots taken
|
|
190
|
-
2. Directories and files created during execution
|
|
191
|
-
3. State file clarity (could a user understand them?)
|
|
192
|
-
4. What the file browser UI should highlight
|
|
193
|
-
5. Top 3 recommendations"""
|
|
194
|
-
|
|
195
|
-
# ============================================================================
|
|
196
|
-
# Main Workflow: The UX Test
|
|
197
|
-
# ============================================================================
|
|
198
|
-
|
|
199
|
-
# Phase 1: Setup
|
|
200
|
-
# --------------
|
|
201
|
-
# Execute the test program via POST /run
|
|
202
|
-
|
|
203
|
-
let exec = do setup_execution(test_program, api_url, auth_token)
|
|
204
|
-
|
|
205
|
-
session "Log test configuration"
|
|
206
|
-
prompt: """Create a test log entry with:
|
|
207
|
-
- Test started: (current timestamp)
|
|
208
|
-
- API URL: {api_url}
|
|
209
|
-
- Execution ID: (from exec)
|
|
210
|
-
- Environment ID: (from exec)
|
|
211
|
-
- WebSocket URL: (from exec)
|
|
212
|
-
- Program being tested: (first 100 chars of test_program)"""
|
|
213
|
-
context: exec
|
|
214
|
-
|
|
215
|
-
# Phase 2: Parallel Observation
|
|
216
|
-
# -----------------------------
|
|
217
|
-
# Launch both observers concurrently
|
|
218
|
-
|
|
219
|
-
parallel:
|
|
220
|
-
ws_results = do observe_websocket(exec.wsUrl, auth_token, test_program)
|
|
221
|
-
file_results = do observe_filesystem(exec.environmentId, api_url, auth_token)
|
|
222
|
-
|
|
223
|
-
# Phase 3: Synthesis
|
|
224
|
-
# ------------------
|
|
225
|
-
# Combine observations into prioritized action items
|
|
226
|
-
|
|
227
|
-
output action_items = session: synthesizer
|
|
228
|
-
prompt: """Synthesize the observations from both agents into a unified UX assessment.
|
|
229
|
-
|
|
230
|
-
WebSocket Observer Findings:
|
|
231
|
-
{ws_results}
|
|
232
|
-
|
|
233
|
-
File Explorer Observer Findings:
|
|
234
|
-
{file_results}
|
|
235
|
-
|
|
236
|
-
Create a final report with:
|
|
237
|
-
|
|
238
|
-
## Test Summary
|
|
239
|
-
- Duration, event count, snapshot count
|
|
240
|
-
- Overall UX grade (A-F)
|
|
241
|
-
|
|
242
|
-
## Correlated Findings
|
|
243
|
-
(Where did BOTH observers notice the same thing?)
|
|
244
|
-
|
|
245
|
-
## Action Items
|
|
246
|
-
|
|
247
|
-
### High Priority
|
|
248
|
-
(Issues that significantly harm user experience)
|
|
249
|
-
|
|
250
|
-
### Medium Priority
|
|
251
|
-
(Noticeable issues that should be addressed)
|
|
252
|
-
|
|
253
|
-
### Low Priority / Nice-to-Have
|
|
254
|
-
(Polish items)
|
|
255
|
-
|
|
256
|
-
## Evidence
|
|
257
|
-
(Specific quotes and observations supporting each finding)
|
|
258
|
-
|
|
259
|
-
## Recommendations
|
|
260
|
-
(Concrete, implementable suggestions)"""
|
|
261
|
-
context: { ws_results, file_results, exec }
|