claude_swarm 1.0.0 β 1.0.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.
- checksums.yaml +4 -4
- data/.claude/commands/release.md +1 -1
- data/.claude/hooks/lint-code-files.rb +65 -0
- data/.rubocop.yml +22 -2
- data/CHANGELOG.md +21 -1
- data/CLAUDE.md +1 -1
- data/CONTRIBUTING.md +69 -0
- data/README.md +27 -2
- data/Rakefile +71 -3
- data/analyze_coverage.rb +94 -0
- data/docs/v2/CHANGELOG.swarm_cli.md +43 -0
- data/docs/v2/CHANGELOG.swarm_memory.md +379 -0
- data/docs/v2/CHANGELOG.swarm_sdk.md +362 -0
- data/docs/v2/README.md +308 -0
- data/docs/v2/guides/claude-code-agents.md +262 -0
- data/docs/v2/guides/complete-tutorial.md +3088 -0
- data/docs/v2/guides/getting-started.md +1456 -0
- data/docs/v2/guides/memory-adapters.md +998 -0
- data/docs/v2/guides/plugins.md +816 -0
- data/docs/v2/guides/quick-start-cli.md +1745 -0
- data/docs/v2/guides/rails-integration.md +1902 -0
- data/docs/v2/guides/swarm-memory.md +599 -0
- data/docs/v2/reference/cli.md +729 -0
- data/docs/v2/reference/ruby-dsl.md +2154 -0
- data/docs/v2/reference/yaml.md +1835 -0
- data/docs-team-swarm.yml +2222 -0
- data/examples/learning-assistant/assistant.md +7 -0
- data/examples/learning-assistant/example-memories/concept-example.md +90 -0
- data/examples/learning-assistant/example-memories/experience-example.md +66 -0
- data/examples/learning-assistant/example-memories/fact-example.md +76 -0
- data/examples/learning-assistant/example-memories/memory-index.md +78 -0
- data/examples/learning-assistant/example-memories/skill-example.md +168 -0
- data/examples/learning-assistant/learning_assistant.rb +34 -0
- data/examples/learning-assistant/learning_assistant.yml +20 -0
- data/examples/v2/dsl/01_basic.rb +44 -0
- data/examples/v2/dsl/02_core_parameters.rb +59 -0
- data/examples/v2/dsl/03_capabilities.rb +71 -0
- data/examples/v2/dsl/04_llm_parameters.rb +56 -0
- data/examples/v2/dsl/05_advanced_flags.rb +73 -0
- data/examples/v2/dsl/06_permissions.rb +80 -0
- data/examples/v2/dsl/07_mcp_server.rb +62 -0
- data/examples/v2/dsl/08_swarm_hooks.rb +53 -0
- data/examples/v2/dsl/09_agent_hooks.rb +67 -0
- data/examples/v2/dsl/10_all_agents_hooks.rb +67 -0
- data/examples/v2/dsl/11_delegation.rb +60 -0
- data/examples/v2/dsl/12_complete_integration.rb +137 -0
- data/examples/v2/file_tools_swarm.yml +102 -0
- data/examples/v2/hooks/01_basic_hooks.rb +133 -0
- data/examples/v2/hooks/02_usage_tracking.rb +201 -0
- data/examples/v2/hooks/03_production_monitoring.rb +429 -0
- data/examples/v2/hooks/agent_stop_exit_0.yml +21 -0
- data/examples/v2/hooks/agent_stop_exit_1.yml +21 -0
- data/examples/v2/hooks/agent_stop_exit_2.yml +26 -0
- data/examples/v2/hooks/multiple_hooks_all_pass.yml +37 -0
- data/examples/v2/hooks/multiple_hooks_first_fails.yml +37 -0
- data/examples/v2/hooks/multiple_hooks_second_fails.yml +37 -0
- data/examples/v2/hooks/multiple_hooks_warnings.yml +37 -0
- data/examples/v2/hooks/post_tool_use_exit_0.yml +24 -0
- data/examples/v2/hooks/post_tool_use_exit_1.yml +24 -0
- data/examples/v2/hooks/post_tool_use_exit_2.yml +24 -0
- data/examples/v2/hooks/post_tool_use_multi_matcher_exit_0.yml +26 -0
- data/examples/v2/hooks/post_tool_use_multi_matcher_exit_1.yml +26 -0
- data/examples/v2/hooks/post_tool_use_multi_matcher_exit_2.yml +26 -0
- data/examples/v2/hooks/pre_tool_use_exit_0.yml +24 -0
- data/examples/v2/hooks/pre_tool_use_exit_1.yml +24 -0
- data/examples/v2/hooks/pre_tool_use_exit_2.yml +24 -0
- data/examples/v2/hooks/pre_tool_use_multi_matcher_exit_0.yml +26 -0
- data/examples/v2/hooks/pre_tool_use_multi_matcher_exit_1.yml +26 -0
- data/examples/v2/hooks/pre_tool_use_multi_matcher_exit_2.yml +27 -0
- data/examples/v2/hooks/swarm_summary.sh +44 -0
- data/examples/v2/hooks/user_prompt_exit_0.yml +21 -0
- data/examples/v2/hooks/user_prompt_exit_1.yml +21 -0
- data/examples/v2/hooks/user_prompt_exit_2.yml +21 -0
- data/examples/v2/hooks/validate_bash.rb +59 -0
- data/examples/v2/multi_directory_permissions.yml +221 -0
- data/examples/v2/node_context_demo.rb +127 -0
- data/examples/v2/node_workflow.rb +173 -0
- data/examples/v2/path_resolution_demo.rb +216 -0
- data/examples/v2/simple-swarm-v2.rb +90 -0
- data/examples/v2/simple-swarm-v2.yml +62 -0
- data/examples/v2/swarm.yml +71 -0
- data/examples/v2/swarm_with_hooks.yml +61 -0
- data/examples/v2/swarm_with_hooks_simple.yml +25 -0
- data/examples/v2/think_tool_demo.rb +62 -0
- data/exe/swarm +6 -0
- data/lib/claude_swarm/claude_mcp_server.rb +0 -6
- data/lib/claude_swarm/cli.rb +10 -3
- data/lib/claude_swarm/commands/ps.rb +19 -20
- data/lib/claude_swarm/commands/show.rb +1 -1
- data/lib/claude_swarm/configuration.rb +10 -12
- data/lib/claude_swarm/mcp_generator.rb +10 -1
- data/lib/claude_swarm/orchestrator.rb +73 -49
- data/lib/claude_swarm/system_utils.rb +37 -11
- data/lib/claude_swarm/version.rb +1 -1
- data/lib/claude_swarm/worktree_manager.rb +1 -0
- data/lib/claude_swarm/yaml_loader.rb +22 -0
- data/lib/claude_swarm.rb +7 -3
- data/lib/swarm_cli/cli.rb +201 -0
- data/lib/swarm_cli/command_registry.rb +61 -0
- data/lib/swarm_cli/commands/mcp_serve.rb +130 -0
- data/lib/swarm_cli/commands/mcp_tools.rb +148 -0
- data/lib/swarm_cli/commands/migrate.rb +55 -0
- data/lib/swarm_cli/commands/run.rb +173 -0
- data/lib/swarm_cli/config_loader.rb +97 -0
- data/lib/swarm_cli/formatters/human_formatter.rb +711 -0
- data/lib/swarm_cli/formatters/json_formatter.rb +51 -0
- data/lib/swarm_cli/interactive_repl.rb +918 -0
- data/lib/swarm_cli/mcp_serve_options.rb +44 -0
- data/lib/swarm_cli/mcp_tools_options.rb +59 -0
- data/lib/swarm_cli/migrate_options.rb +54 -0
- data/lib/swarm_cli/migrator.rb +132 -0
- data/lib/swarm_cli/options.rb +151 -0
- data/lib/swarm_cli/ui/components/agent_badge.rb +33 -0
- data/lib/swarm_cli/ui/components/content_block.rb +120 -0
- data/lib/swarm_cli/ui/components/divider.rb +57 -0
- data/lib/swarm_cli/ui/components/panel.rb +62 -0
- data/lib/swarm_cli/ui/components/usage_stats.rb +70 -0
- data/lib/swarm_cli/ui/formatters/cost.rb +49 -0
- data/lib/swarm_cli/ui/formatters/number.rb +58 -0
- data/lib/swarm_cli/ui/formatters/text.rb +77 -0
- data/lib/swarm_cli/ui/formatters/time.rb +73 -0
- data/lib/swarm_cli/ui/icons.rb +59 -0
- data/lib/swarm_cli/ui/renderers/event_renderer.rb +188 -0
- data/lib/swarm_cli/ui/state/agent_color_cache.rb +45 -0
- data/lib/swarm_cli/ui/state/depth_tracker.rb +40 -0
- data/lib/swarm_cli/ui/state/spinner_manager.rb +170 -0
- data/lib/swarm_cli/ui/state/usage_tracker.rb +62 -0
- data/lib/swarm_cli/version.rb +5 -0
- data/lib/swarm_cli.rb +44 -0
- data/lib/swarm_memory/adapters/base.rb +141 -0
- data/lib/swarm_memory/adapters/filesystem_adapter.rb +845 -0
- data/lib/swarm_memory/chat_extension.rb +34 -0
- data/lib/swarm_memory/cli/commands.rb +306 -0
- data/lib/swarm_memory/core/entry.rb +37 -0
- data/lib/swarm_memory/core/frontmatter_parser.rb +108 -0
- data/lib/swarm_memory/core/metadata_extractor.rb +68 -0
- data/lib/swarm_memory/core/path_normalizer.rb +75 -0
- data/lib/swarm_memory/core/semantic_index.rb +244 -0
- data/lib/swarm_memory/core/storage.rb +288 -0
- data/lib/swarm_memory/core/storage_read_tracker.rb +63 -0
- data/lib/swarm_memory/dsl/builder_extension.rb +40 -0
- data/lib/swarm_memory/dsl/memory_config.rb +113 -0
- data/lib/swarm_memory/embeddings/embedder.rb +36 -0
- data/lib/swarm_memory/embeddings/informers_embedder.rb +152 -0
- data/lib/swarm_memory/errors.rb +21 -0
- data/lib/swarm_memory/integration/cli_registration.rb +30 -0
- data/lib/swarm_memory/integration/configuration.rb +43 -0
- data/lib/swarm_memory/integration/registration.rb +31 -0
- data/lib/swarm_memory/integration/sdk_plugin.rb +531 -0
- data/lib/swarm_memory/optimization/analyzer.rb +244 -0
- data/lib/swarm_memory/optimization/defragmenter.rb +863 -0
- data/lib/swarm_memory/prompts/memory.md.erb +109 -0
- data/lib/swarm_memory/prompts/memory_assistant.md.erb +181 -0
- data/lib/swarm_memory/prompts/memory_researcher.md.erb +281 -0
- data/lib/swarm_memory/prompts/memory_retrieval.md.erb +78 -0
- data/lib/swarm_memory/search/semantic_search.rb +112 -0
- data/lib/swarm_memory/search/text_search.rb +42 -0
- data/lib/swarm_memory/search/text_similarity.rb +80 -0
- data/lib/swarm_memory/skills/meta/deep-learning.md +101 -0
- data/lib/swarm_memory/skills/meta/deep-learning.yml +14 -0
- data/lib/swarm_memory/tools/load_skill.rb +313 -0
- data/lib/swarm_memory/tools/memory_defrag.rb +382 -0
- data/lib/swarm_memory/tools/memory_delete.rb +99 -0
- data/lib/swarm_memory/tools/memory_edit.rb +185 -0
- data/lib/swarm_memory/tools/memory_glob.rb +160 -0
- data/lib/swarm_memory/tools/memory_grep.rb +247 -0
- data/lib/swarm_memory/tools/memory_multi_edit.rb +281 -0
- data/lib/swarm_memory/tools/memory_read.rb +123 -0
- data/lib/swarm_memory/tools/memory_write.rb +231 -0
- data/lib/swarm_memory/utils.rb +50 -0
- data/lib/swarm_memory/version.rb +5 -0
- data/lib/swarm_memory.rb +166 -0
- data/lib/swarm_sdk/agent/RETRY_LOGIC.md +127 -0
- data/lib/swarm_sdk/agent/builder.rb +461 -0
- data/lib/swarm_sdk/agent/chat/context_tracker.rb +314 -0
- data/lib/swarm_sdk/agent/chat/hook_integration.rb +372 -0
- data/lib/swarm_sdk/agent/chat/logging_helpers.rb +116 -0
- data/lib/swarm_sdk/agent/chat/system_reminder_injector.rb +152 -0
- data/lib/swarm_sdk/agent/chat.rb +1159 -0
- data/lib/swarm_sdk/agent/context.rb +112 -0
- data/lib/swarm_sdk/agent/context_manager.rb +309 -0
- data/lib/swarm_sdk/agent/definition.rb +556 -0
- data/lib/swarm_sdk/claude_code_agent_adapter.rb +205 -0
- data/lib/swarm_sdk/configuration.rb +296 -0
- data/lib/swarm_sdk/context_compactor/metrics.rb +147 -0
- data/lib/swarm_sdk/context_compactor/token_counter.rb +106 -0
- data/lib/swarm_sdk/context_compactor.rb +340 -0
- data/lib/swarm_sdk/hooks/adapter.rb +359 -0
- data/lib/swarm_sdk/hooks/context.rb +197 -0
- data/lib/swarm_sdk/hooks/definition.rb +80 -0
- data/lib/swarm_sdk/hooks/error.rb +29 -0
- data/lib/swarm_sdk/hooks/executor.rb +146 -0
- data/lib/swarm_sdk/hooks/registry.rb +147 -0
- data/lib/swarm_sdk/hooks/result.rb +150 -0
- data/lib/swarm_sdk/hooks/shell_executor.rb +254 -0
- data/lib/swarm_sdk/hooks/tool_call.rb +35 -0
- data/lib/swarm_sdk/hooks/tool_result.rb +62 -0
- data/lib/swarm_sdk/log_collector.rb +51 -0
- data/lib/swarm_sdk/log_stream.rb +69 -0
- data/lib/swarm_sdk/markdown_parser.rb +75 -0
- data/lib/swarm_sdk/model_aliases.json +5 -0
- data/lib/swarm_sdk/models.json +1 -0
- data/lib/swarm_sdk/models.rb +120 -0
- data/lib/swarm_sdk/node/agent_config.rb +49 -0
- data/lib/swarm_sdk/node/builder.rb +439 -0
- data/lib/swarm_sdk/node/transformer_executor.rb +248 -0
- data/lib/swarm_sdk/node_context.rb +170 -0
- data/lib/swarm_sdk/node_orchestrator.rb +384 -0
- data/lib/swarm_sdk/permissions/config.rb +239 -0
- data/lib/swarm_sdk/permissions/error_formatter.rb +121 -0
- data/lib/swarm_sdk/permissions/path_matcher.rb +35 -0
- data/lib/swarm_sdk/permissions/validator.rb +173 -0
- data/lib/swarm_sdk/permissions_builder.rb +122 -0
- data/lib/swarm_sdk/plugin.rb +147 -0
- data/lib/swarm_sdk/plugin_registry.rb +101 -0
- data/lib/swarm_sdk/prompts/base_system_prompt.md.erb +243 -0
- data/lib/swarm_sdk/providers/openai_with_responses.rb +582 -0
- data/lib/swarm_sdk/result.rb +97 -0
- data/lib/swarm_sdk/swarm/agent_initializer.rb +334 -0
- data/lib/swarm_sdk/swarm/all_agents_builder.rb +140 -0
- data/lib/swarm_sdk/swarm/builder.rb +586 -0
- data/lib/swarm_sdk/swarm/mcp_configurator.rb +151 -0
- data/lib/swarm_sdk/swarm/tool_configurator.rb +419 -0
- data/lib/swarm_sdk/swarm.rb +982 -0
- data/lib/swarm_sdk/tools/bash.rb +274 -0
- data/lib/swarm_sdk/tools/clock.rb +44 -0
- data/lib/swarm_sdk/tools/delegate.rb +164 -0
- data/lib/swarm_sdk/tools/document_converters/base_converter.rb +83 -0
- data/lib/swarm_sdk/tools/document_converters/docx_converter.rb +99 -0
- data/lib/swarm_sdk/tools/document_converters/html_converter.rb +101 -0
- data/lib/swarm_sdk/tools/document_converters/pdf_converter.rb +78 -0
- data/lib/swarm_sdk/tools/document_converters/xlsx_converter.rb +194 -0
- data/lib/swarm_sdk/tools/edit.rb +150 -0
- data/lib/swarm_sdk/tools/glob.rb +158 -0
- data/lib/swarm_sdk/tools/grep.rb +228 -0
- data/lib/swarm_sdk/tools/image_extractors/docx_image_extractor.rb +43 -0
- data/lib/swarm_sdk/tools/image_extractors/pdf_image_extractor.rb +163 -0
- data/lib/swarm_sdk/tools/image_formats/tiff_builder.rb +65 -0
- data/lib/swarm_sdk/tools/multi_edit.rb +232 -0
- data/lib/swarm_sdk/tools/path_resolver.rb +43 -0
- data/lib/swarm_sdk/tools/read.rb +251 -0
- data/lib/swarm_sdk/tools/registry.rb +93 -0
- data/lib/swarm_sdk/tools/scratchpad/scratchpad_list.rb +96 -0
- data/lib/swarm_sdk/tools/scratchpad/scratchpad_read.rb +76 -0
- data/lib/swarm_sdk/tools/scratchpad/scratchpad_write.rb +91 -0
- data/lib/swarm_sdk/tools/stores/read_tracker.rb +61 -0
- data/lib/swarm_sdk/tools/stores/scratchpad_storage.rb +224 -0
- data/lib/swarm_sdk/tools/stores/storage.rb +148 -0
- data/lib/swarm_sdk/tools/stores/todo_manager.rb +65 -0
- data/lib/swarm_sdk/tools/think.rb +95 -0
- data/lib/swarm_sdk/tools/todo_write.rb +216 -0
- data/lib/swarm_sdk/tools/web_fetch.rb +261 -0
- data/lib/swarm_sdk/tools/write.rb +117 -0
- data/lib/swarm_sdk/utils.rb +50 -0
- data/lib/swarm_sdk/version.rb +5 -0
- data/lib/swarm_sdk.rb +157 -0
- data/llm.v2.txt +13407 -0
- data/rubocop/cop/security/no_reflection_methods.rb +47 -0
- data/rubocop/cop/security/no_ruby_llm_logger.rb +32 -0
- data/swarm_cli.gemspec +57 -0
- data/swarm_memory.gemspec +28 -0
- data/swarm_sdk.gemspec +41 -0
- data/team.yml +1 -1
- data/team_full.yml +1875 -0
- data/{team_v2.yml β team_sdk.yml} +121 -52
- metadata +247 -4
- data/EXAMPLES.md +0 -164
data/EXAMPLES.md
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
## Draft use case
|
|
2
|
-
|
|
3
|
-
Imagine you're working in the storefront-web repository. Page load times doubled yesterday. You're not sure why.
|
|
4
|
-
|
|
5
|
-
To investigate today you'd use a generalized Claude. It has access to dozens of MCP tools. Tools to read data from BigQuery. Tools to crawl repositories. Tools to checkout code it needs. Tools for GitHub interactions. Tools for Kafka. Tools for file operations.
|
|
6
|
-
|
|
7
|
-
You need to query BigQuery to pinpoint when the performance degraded. You also need to check recent gem upgrades. But Claude doesn't know which gem repositories to look at. You have to provide context about where to find gem source code. You have to guide it through vendor directories or gem installation paths.
|
|
8
|
-
|
|
9
|
-
Claude might be able to do this. But with dozens of MCP tools loaded and lots of context it can be overwhelmed and unfocused. It struggles to pick the right tools. It struggles to understand which repos to read. It struggles to keep context in mind while switching between data analysis and code exploration.
|
|
10
|
-
|
|
11
|
-
## Enter Claude-Swarm
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
Without Swarm: With Claude-Swarm:
|
|
15
|
-
|
|
16
|
-
ββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββ
|
|
17
|
-
β You β β You β
|
|
18
|
-
ββββββββββββββββ¬ββββββββββββββββ ββββββββββββββββ¬βββββββββββββββββββ
|
|
19
|
-
β β
|
|
20
|
-
v v
|
|
21
|
-
ββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββ
|
|
22
|
-
β Generalized Claude β β Coordinator β
|
|
23
|
-
β β β β
|
|
24
|
-
β [30+ MCP Tools] β β [Task delegation] β
|
|
25
|
-
β β’ BigQuery tools β ββββββββββββββββ¬βββββββββββββββββββ
|
|
26
|
-
β β’ File tools β β
|
|
27
|
-
β β’ Git tools β ββββββββββββββββΌβββββββββββββββββββ
|
|
28
|
-
β β’ GitHub tools β β β β
|
|
29
|
-
β β’ Kafka tools β v v v
|
|
30
|
-
β β’ ... β ββββββββββ ββββββββββ ββββββββββ
|
|
31
|
-
β β βData β βCode β βPR β
|
|
32
|
-
β Overwhelmed & β βExpert β βExpert β βExpert β
|
|
33
|
-
β Context switching β β[BQ] β β[Files] β β[GitHub]β
|
|
34
|
-
ββββββββββββββββββββββββββββββββ ββββββββββ ββββββββββ ββββββββββ
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Claude-swarm is one AI that can hire specialist AIs. Each specialist lives in one domain. You talk to the manager not the specialists. Manager coordinates and gives you answers.
|
|
38
|
-
|
|
39
|
-
It's NOT multiple AIs running at once. It's ONE AI with "summon expert" superpowers. Experts appear and answer questions. Then they disappear.
|
|
40
|
-
|
|
41
|
-
## Three Key Features
|
|
42
|
-
|
|
43
|
-
### Domain Isolation
|
|
44
|
-
- Data expert can pull BigQuery and performance metrics
|
|
45
|
-
- Code expert lives in gem source directory
|
|
46
|
-
- PR Expert only cares about writing a quality PR
|
|
47
|
-
- Each expert focused on their domain. Each expert with custom context and prompts.
|
|
48
|
-
|
|
49
|
-
### Selective Tool Access
|
|
50
|
-
- Data expert ONLY gets BigQuery and Kafka tools (prompt it with best practices and context for querying)
|
|
51
|
-
- Code expert ONLY gets file and git tools. It instantiates in a specific repo (Prompt it and provide it special context)
|
|
52
|
-
- PR expert ONLY gets PR/GH tools. Can prompt it with best practices for PR submissions/context
|
|
53
|
-
|
|
54
|
-
### Coordinated Intelligence
|
|
55
|
-
- You ask one question
|
|
56
|
-
- Get answers from multiple domains, each with specialized context and prompts
|
|
57
|
-
- "Why are pages loading slowly?"
|
|
58
|
-
- Data expert finds timing spike at 2pm yesterday
|
|
59
|
-
- Code expert finds the problem
|
|
60
|
-
- Code expert fixes the problem
|
|
61
|
-
- PR Expert creates the PR with your specifications
|
|
62
|
-
|
|
63
|
-
## Example Configuration
|
|
64
|
-
|
|
65
|
-
```yaml
|
|
66
|
-
version: 1
|
|
67
|
-
swarm:
|
|
68
|
-
name: "Performance Investigation"
|
|
69
|
-
main: coordinator
|
|
70
|
-
instances:
|
|
71
|
-
coordinator:
|
|
72
|
-
description: "Lead developer coordinating performance investigation"
|
|
73
|
-
directory: ~/storefront-web
|
|
74
|
-
connections: [data_expert, code_expert, pr_expert]
|
|
75
|
-
prompt: |
|
|
76
|
-
You are a senior lead developer coordinating a performance investigation team.
|
|
77
|
-
Your role is to delegate tasks to specialists and synthesize their findings.
|
|
78
|
-
|
|
79
|
-
When investigating performance issues:
|
|
80
|
-
1. Start with data_expert to identify when/where problems occurred
|
|
81
|
-
2. Use code_expert to analyze code changes and identify root causes
|
|
82
|
-
3. Use pr_expert to implement fixes via pull requests
|
|
83
|
-
|
|
84
|
-
Always provide clear, actionable summaries to the user.
|
|
85
|
-
|
|
86
|
-
data_expert:
|
|
87
|
-
description: "Analyzes performance metrics and data"
|
|
88
|
-
directory: ~/analysis
|
|
89
|
-
tools: [data_mcp_portal_find_tables, data_mcp_portal_query]
|
|
90
|
-
prompt: |
|
|
91
|
-
You are a data analyst specializing in web performance metrics.
|
|
92
|
-
You have access to BigQuery and performance monitoring data.
|
|
93
|
-
|
|
94
|
-
When analyzing performance issues:
|
|
95
|
-
- Always use partition filters (date-based) to limit query scope
|
|
96
|
-
- Look for correlations between timing spikes and deployments
|
|
97
|
-
- Focus on p95/p99 latencies, not just averages
|
|
98
|
-
- Identify affected user segments and geographic regions
|
|
99
|
-
|
|
100
|
-
Provide specific timestamps and quantified impact metrics.
|
|
101
|
-
|
|
102
|
-
code_expert:
|
|
103
|
-
description: "Analyzes code, dependencies, and implementations"
|
|
104
|
-
directory: ~/gems/http-client
|
|
105
|
-
tools: [read, grep, glob, git]
|
|
106
|
-
prompt: |
|
|
107
|
-
You are a senior Ruby developer specializing in performance optimization.
|
|
108
|
-
You work primarily with gems, dependencies, and low-level implementations.
|
|
109
|
-
|
|
110
|
-
When investigating performance issues:
|
|
111
|
-
- Check recent version changes in Gemfile.lock
|
|
112
|
-
- Look for connection pooling, caching, and resource management patterns
|
|
113
|
-
- Identify blocking I/O operations and inefficient algorithms
|
|
114
|
-
- Consider memory allocation and garbage collection impacts
|
|
115
|
-
|
|
116
|
-
Focus on actionable code-level fixes and configuration changes.
|
|
117
|
-
|
|
118
|
-
pr_expert:
|
|
119
|
-
description: "Creates high-quality pull requests"
|
|
120
|
-
directory: ~/storefront-web
|
|
121
|
-
tools: [read, write, gh_cli, git]
|
|
122
|
-
prompt: |
|
|
123
|
-
You are a senior developer focused on creating excellent pull requests.
|
|
124
|
-
|
|
125
|
-
For performance fixes:
|
|
126
|
-
- Write clear, specific titles: "Fix: Enable HTTP connection pooling for 40% latency reduction"
|
|
127
|
-
- Include before/after performance metrics in description
|
|
128
|
-
- Add links to supporting data analysis
|
|
129
|
-
- Include deployment considerations and rollback plans
|
|
130
|
-
- Add relevant reviewers based on affected systems
|
|
131
|
-
|
|
132
|
-
Always follow the team's PR template and coding standards.
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## Investigation and Fix Flow
|
|
136
|
-
|
|
137
|
-
**You:** "Why are pages loading slowly?"
|
|
138
|
-
|
|
139
|
-
**Coordinator asks data_expert:** "When did latency spike and what's the impact?"
|
|
140
|
-
|
|
141
|
-
**Data expert:**
|
|
142
|
-
```sql
|
|
143
|
-
-- Query shows latency spike at 2:15 PM yesterday
|
|
144
|
-
-- P95 response time increased from 250ms to 890ms
|
|
145
|
-
-- Affecting 15% of traffic, primarily checkout flows
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Coordinator asks code_expert:** "What changed around 2:15 PM yesterday that could cause this?"
|
|
149
|
-
|
|
150
|
-
**Code expert:**
|
|
151
|
-
```ruby
|
|
152
|
-
# Gemfile.lock shows http-client gem updated from 3.1.9 to 3.2.0 at 2:14 PM
|
|
153
|
-
# Version 3.2.0 changelog: "Removed automatic connection pooling for thread safety"
|
|
154
|
-
# Now creates new HTTP connection per request instead of reusing connections
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
**Coordinator:** "The http-client gem update removed connection pooling, causing 3x latency increase during checkout."
|
|
158
|
-
|
|
159
|
-
**You:** "Fix this and create a PR"
|
|
160
|
-
|
|
161
|
-
**Code expert:** "Two options: downgrade to 3.1.9 or configure explicit pooling with `pool_size: 10` in initializer"
|
|
162
|
-
|
|
163
|
-
**PR expert:** "Created PR #1234: 'Fix: Enable HTTP connection pooling for 40% latency reduction' with performance benchmarks and rollback plan"
|
|
164
|
-
|