stravinsky 0.2.67__py3-none-any.whl → 0.4.66__py3-none-any.whl
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.
Potentially problematic release.
This version of stravinsky might be problematic. Click here for more details.
- mcp_bridge/__init__.py +1 -1
- mcp_bridge/auth/__init__.py +16 -6
- mcp_bridge/auth/cli.py +202 -11
- mcp_bridge/auth/oauth.py +1 -2
- mcp_bridge/auth/openai_oauth.py +4 -7
- mcp_bridge/auth/token_store.py +112 -11
- mcp_bridge/cli/__init__.py +1 -1
- mcp_bridge/cli/install_hooks.py +503 -107
- mcp_bridge/cli/session_report.py +0 -3
- mcp_bridge/config/MANIFEST_SCHEMA.md +305 -0
- mcp_bridge/config/README.md +276 -0
- mcp_bridge/config/__init__.py +2 -2
- mcp_bridge/config/hook_config.py +247 -0
- mcp_bridge/config/hooks_manifest.json +138 -0
- mcp_bridge/config/rate_limits.py +317 -0
- mcp_bridge/config/skills_manifest.json +128 -0
- mcp_bridge/hooks/HOOKS_SETTINGS.json +17 -4
- mcp_bridge/hooks/__init__.py +19 -4
- mcp_bridge/hooks/agent_reminder.py +4 -4
- mcp_bridge/hooks/auto_slash_command.py +5 -5
- mcp_bridge/hooks/budget_optimizer.py +2 -2
- mcp_bridge/hooks/claude_limits_hook.py +114 -0
- mcp_bridge/hooks/comment_checker.py +3 -4
- mcp_bridge/hooks/compaction.py +2 -2
- mcp_bridge/hooks/context.py +2 -1
- mcp_bridge/hooks/context_monitor.py +2 -2
- mcp_bridge/hooks/delegation_policy.py +85 -0
- mcp_bridge/hooks/directory_context.py +3 -3
- mcp_bridge/hooks/edit_recovery.py +3 -2
- mcp_bridge/hooks/edit_recovery_policy.py +49 -0
- mcp_bridge/hooks/empty_message_sanitizer.py +2 -2
- mcp_bridge/hooks/events.py +160 -0
- mcp_bridge/hooks/git_noninteractive.py +4 -4
- mcp_bridge/hooks/keyword_detector.py +8 -10
- mcp_bridge/hooks/manager.py +43 -22
- mcp_bridge/hooks/notification_hook.py +13 -6
- mcp_bridge/hooks/parallel_enforcement_policy.py +67 -0
- mcp_bridge/hooks/parallel_enforcer.py +5 -5
- mcp_bridge/hooks/parallel_execution.py +22 -10
- mcp_bridge/hooks/post_tool/parallel_validation.py +103 -0
- mcp_bridge/hooks/pre_compact.py +8 -9
- mcp_bridge/hooks/pre_tool/agent_spawn_validator.py +115 -0
- mcp_bridge/hooks/preemptive_compaction.py +2 -3
- mcp_bridge/hooks/routing_notifications.py +80 -0
- mcp_bridge/hooks/rules_injector.py +11 -19
- mcp_bridge/hooks/session_idle.py +4 -4
- mcp_bridge/hooks/session_notifier.py +4 -4
- mcp_bridge/hooks/session_recovery.py +4 -5
- mcp_bridge/hooks/stravinsky_mode.py +1 -1
- mcp_bridge/hooks/subagent_stop.py +1 -3
- mcp_bridge/hooks/task_validator.py +2 -2
- mcp_bridge/hooks/tmux_manager.py +7 -8
- mcp_bridge/hooks/todo_delegation.py +4 -1
- mcp_bridge/hooks/todo_enforcer.py +180 -10
- mcp_bridge/hooks/tool_messaging.py +113 -10
- mcp_bridge/hooks/truncation_policy.py +37 -0
- mcp_bridge/hooks/truncator.py +1 -2
- mcp_bridge/metrics/cost_tracker.py +115 -0
- mcp_bridge/native_search.py +93 -0
- mcp_bridge/native_watcher.py +118 -0
- mcp_bridge/notifications.py +150 -0
- mcp_bridge/orchestrator/enums.py +11 -0
- mcp_bridge/orchestrator/router.py +165 -0
- mcp_bridge/orchestrator/state.py +32 -0
- mcp_bridge/orchestrator/visualization.py +14 -0
- mcp_bridge/orchestrator/wisdom.py +34 -0
- mcp_bridge/prompts/__init__.py +1 -8
- mcp_bridge/prompts/dewey.py +1 -1
- mcp_bridge/prompts/planner.py +2 -4
- mcp_bridge/prompts/stravinsky.py +53 -31
- mcp_bridge/proxy/__init__.py +0 -0
- mcp_bridge/proxy/client.py +70 -0
- mcp_bridge/proxy/model_server.py +157 -0
- mcp_bridge/routing/__init__.py +43 -0
- mcp_bridge/routing/config.py +250 -0
- mcp_bridge/routing/model_tiers.py +135 -0
- mcp_bridge/routing/provider_state.py +261 -0
- mcp_bridge/routing/task_classifier.py +190 -0
- mcp_bridge/server.py +542 -59
- mcp_bridge/server_tools.py +738 -6
- mcp_bridge/tools/__init__.py +40 -25
- mcp_bridge/tools/agent_manager.py +616 -697
- mcp_bridge/tools/background_tasks.py +13 -17
- mcp_bridge/tools/code_search.py +70 -53
- mcp_bridge/tools/continuous_loop.py +0 -1
- mcp_bridge/tools/dashboard.py +19 -0
- mcp_bridge/tools/find_code.py +296 -0
- mcp_bridge/tools/init.py +1 -0
- mcp_bridge/tools/list_directory.py +42 -0
- mcp_bridge/tools/lsp/__init__.py +12 -5
- mcp_bridge/tools/lsp/manager.py +471 -0
- mcp_bridge/tools/lsp/tools.py +723 -207
- mcp_bridge/tools/model_invoke.py +1195 -273
- mcp_bridge/tools/mux_client.py +75 -0
- mcp_bridge/tools/project_context.py +1 -2
- mcp_bridge/tools/query_classifier.py +406 -0
- mcp_bridge/tools/read_file.py +84 -0
- mcp_bridge/tools/replace.py +45 -0
- mcp_bridge/tools/run_shell_command.py +38 -0
- mcp_bridge/tools/search_enhancements.py +347 -0
- mcp_bridge/tools/semantic_search.py +3627 -0
- mcp_bridge/tools/session_manager.py +0 -2
- mcp_bridge/tools/skill_loader.py +0 -1
- mcp_bridge/tools/task_runner.py +5 -7
- mcp_bridge/tools/templates.py +3 -3
- mcp_bridge/tools/tool_search.py +331 -0
- mcp_bridge/tools/write_file.py +29 -0
- mcp_bridge/update_manager.py +585 -0
- mcp_bridge/update_manager_pypi.py +297 -0
- mcp_bridge/utils/cache.py +82 -0
- mcp_bridge/utils/process.py +71 -0
- mcp_bridge/utils/session_state.py +51 -0
- mcp_bridge/utils/truncation.py +76 -0
- stravinsky-0.4.66.dist-info/METADATA +517 -0
- stravinsky-0.4.66.dist-info/RECORD +198 -0
- {stravinsky-0.2.67.dist-info → stravinsky-0.4.66.dist-info}/entry_points.txt +1 -0
- stravinsky_claude_assets/HOOKS_INTEGRATION.md +316 -0
- stravinsky_claude_assets/agents/HOOKS.md +437 -0
- stravinsky_claude_assets/agents/code-reviewer.md +210 -0
- stravinsky_claude_assets/agents/comment_checker.md +580 -0
- stravinsky_claude_assets/agents/debugger.md +254 -0
- stravinsky_claude_assets/agents/delphi.md +495 -0
- stravinsky_claude_assets/agents/dewey.md +248 -0
- stravinsky_claude_assets/agents/explore.md +1198 -0
- stravinsky_claude_assets/agents/frontend.md +472 -0
- stravinsky_claude_assets/agents/implementation-lead.md +164 -0
- stravinsky_claude_assets/agents/momus.md +464 -0
- stravinsky_claude_assets/agents/research-lead.md +141 -0
- stravinsky_claude_assets/agents/stravinsky.md +730 -0
- stravinsky_claude_assets/commands/delphi.md +9 -0
- stravinsky_claude_assets/commands/dewey.md +54 -0
- stravinsky_claude_assets/commands/git-master.md +112 -0
- stravinsky_claude_assets/commands/index.md +49 -0
- stravinsky_claude_assets/commands/publish.md +86 -0
- stravinsky_claude_assets/commands/review.md +73 -0
- stravinsky_claude_assets/commands/str/agent_cancel.md +70 -0
- stravinsky_claude_assets/commands/str/agent_list.md +56 -0
- stravinsky_claude_assets/commands/str/agent_output.md +92 -0
- stravinsky_claude_assets/commands/str/agent_progress.md +74 -0
- stravinsky_claude_assets/commands/str/agent_retry.md +94 -0
- stravinsky_claude_assets/commands/str/cancel.md +51 -0
- stravinsky_claude_assets/commands/str/clean.md +97 -0
- stravinsky_claude_assets/commands/str/continue.md +38 -0
- stravinsky_claude_assets/commands/str/index.md +199 -0
- stravinsky_claude_assets/commands/str/list_watchers.md +96 -0
- stravinsky_claude_assets/commands/str/search.md +205 -0
- stravinsky_claude_assets/commands/str/start_filewatch.md +136 -0
- stravinsky_claude_assets/commands/str/stats.md +71 -0
- stravinsky_claude_assets/commands/str/stop_filewatch.md +89 -0
- stravinsky_claude_assets/commands/str/unwatch.md +42 -0
- stravinsky_claude_assets/commands/str/watch.md +45 -0
- stravinsky_claude_assets/commands/strav.md +53 -0
- stravinsky_claude_assets/commands/stravinsky.md +292 -0
- stravinsky_claude_assets/commands/verify.md +60 -0
- stravinsky_claude_assets/commands/version.md +5 -0
- stravinsky_claude_assets/hooks/README.md +248 -0
- stravinsky_claude_assets/hooks/comment_checker.py +193 -0
- stravinsky_claude_assets/hooks/context.py +38 -0
- stravinsky_claude_assets/hooks/context_monitor.py +153 -0
- stravinsky_claude_assets/hooks/dependency_tracker.py +73 -0
- stravinsky_claude_assets/hooks/edit_recovery.py +46 -0
- stravinsky_claude_assets/hooks/execution_state_tracker.py +68 -0
- stravinsky_claude_assets/hooks/notification_hook.py +103 -0
- stravinsky_claude_assets/hooks/notification_hook_v2.py +96 -0
- stravinsky_claude_assets/hooks/parallel_execution.py +241 -0
- stravinsky_claude_assets/hooks/parallel_reinforcement.py +106 -0
- stravinsky_claude_assets/hooks/parallel_reinforcement_v2.py +112 -0
- stravinsky_claude_assets/hooks/pre_compact.py +123 -0
- stravinsky_claude_assets/hooks/ralph_loop.py +173 -0
- stravinsky_claude_assets/hooks/session_recovery.py +263 -0
- stravinsky_claude_assets/hooks/stop_hook.py +89 -0
- stravinsky_claude_assets/hooks/stravinsky_metrics.py +164 -0
- stravinsky_claude_assets/hooks/stravinsky_mode.py +146 -0
- stravinsky_claude_assets/hooks/subagent_stop.py +98 -0
- stravinsky_claude_assets/hooks/todo_continuation.py +111 -0
- stravinsky_claude_assets/hooks/todo_delegation.py +96 -0
- stravinsky_claude_assets/hooks/tool_messaging.py +281 -0
- stravinsky_claude_assets/hooks/truncator.py +23 -0
- stravinsky_claude_assets/rules/deployment_safety.md +51 -0
- stravinsky_claude_assets/rules/integration_wiring.md +89 -0
- stravinsky_claude_assets/rules/pypi_deployment.md +220 -0
- stravinsky_claude_assets/rules/stravinsky_orchestrator.md +32 -0
- stravinsky_claude_assets/settings.json +152 -0
- stravinsky_claude_assets/skills/chrome-devtools/SKILL.md +81 -0
- stravinsky_claude_assets/skills/sqlite/SKILL.md +77 -0
- stravinsky_claude_assets/skills/supabase/SKILL.md +74 -0
- stravinsky_claude_assets/task_dependencies.json +34 -0
- stravinsky-0.2.67.dist-info/METADATA +0 -284
- stravinsky-0.2.67.dist-info/RECORD +0 -76
- {stravinsky-0.2.67.dist-info → stravinsky-0.4.66.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Research librarian - docs, OSS implementations, GitHub examples.
|
|
3
|
+
---
|
|
4
|
+
# Dewey - Research Librarian
|
|
5
|
+
|
|
6
|
+
Invokes the dewey agent (gemini-3-flash) for multi-source research.
|
|
7
|
+
|
|
8
|
+
Equivalent to oh-my-opencode's `librarian` agent.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/dewey <research question>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Capabilities
|
|
17
|
+
|
|
18
|
+
- Official documentation lookup (Context7)
|
|
19
|
+
- GitHub code search (grep.app)
|
|
20
|
+
- Web search for best practices (Exa)
|
|
21
|
+
- OSS implementation examples with permalinks
|
|
22
|
+
- Multi-repository analysis
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
Spawn the dewey agent for comprehensive research:
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
stravinsky_agent_spawn(
|
|
30
|
+
prompt="""$ARGUMENTS
|
|
31
|
+
|
|
32
|
+
Research this topic using ALL available sources:
|
|
33
|
+
1. Official documentation via Context7
|
|
34
|
+
2. GitHub code examples via grep.app
|
|
35
|
+
3. Web search for current best practices via Exa
|
|
36
|
+
4. Clone relevant repos if needed for deep analysis
|
|
37
|
+
|
|
38
|
+
REQUIREMENTS:
|
|
39
|
+
- Provide GitHub permalinks for code citations
|
|
40
|
+
- Include version/date context
|
|
41
|
+
- Synthesize findings with evidence links
|
|
42
|
+
- Note any conflicting information""",
|
|
43
|
+
agent_type="dewey",
|
|
44
|
+
description="Research: $ARGUMENTS"
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The dewey agent uses gemini-3-flash and has access to:
|
|
49
|
+
- `MCP_DOCKER_web_search_exa` - Real-time web search
|
|
50
|
+
- `context7_query-docs` - Official library documentation
|
|
51
|
+
- `gh` CLI - GitHub operations
|
|
52
|
+
- `grep_search` / `ast_grep_search` - Code search
|
|
53
|
+
|
|
54
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Git Master Skill
|
|
2
|
+
|
|
3
|
+
Atomic commits with conventional format and smart history search.
|
|
4
|
+
|
|
5
|
+
## Invocation
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/git-master <command>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
|
|
13
|
+
### commit - Smart Atomic Commit
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
/git-master commit
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Workflow:
|
|
20
|
+
1. Run `git status` and `git diff --staged`
|
|
21
|
+
2. Analyze changes to determine commit type
|
|
22
|
+
3. Generate conventional commit message
|
|
23
|
+
4. Create atomic commit
|
|
24
|
+
|
|
25
|
+
**Commit Types** (Conventional Commits):
|
|
26
|
+
- `feat`: New feature
|
|
27
|
+
- `fix`: Bug fix
|
|
28
|
+
- `docs`: Documentation only
|
|
29
|
+
- `style`: Formatting, no code change
|
|
30
|
+
- `refactor`: Code restructuring
|
|
31
|
+
- `perf`: Performance improvement
|
|
32
|
+
- `test`: Adding/updating tests
|
|
33
|
+
- `chore`: Build, config, dependencies
|
|
34
|
+
|
|
35
|
+
**Message Format**:
|
|
36
|
+
```
|
|
37
|
+
<type>(<scope>): <description>
|
|
38
|
+
|
|
39
|
+
[optional body]
|
|
40
|
+
|
|
41
|
+
[optional footer]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### search - History Search
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
/git-master search <pattern>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Find commits matching a pattern:
|
|
51
|
+
- By message: `/git-master search "fix auth"`
|
|
52
|
+
- By file: `/git-master search --file src/auth.py`
|
|
53
|
+
- By author: `/git-master search --author david`
|
|
54
|
+
- By date: `/git-master search --since "1 week ago"`
|
|
55
|
+
|
|
56
|
+
### split - Split Large Changes
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
/git-master split
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
When staged changes are too large:
|
|
63
|
+
1. Analyze logical groupings
|
|
64
|
+
2. Suggest split points
|
|
65
|
+
3. Create multiple atomic commits
|
|
66
|
+
|
|
67
|
+
### amend - Smart Amend
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
/git-master amend
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Safely amend the last commit:
|
|
74
|
+
1. Verify commit hasn't been pushed
|
|
75
|
+
2. Verify you're the author
|
|
76
|
+
3. Add staged changes to last commit
|
|
77
|
+
4. Update message if requested
|
|
78
|
+
|
|
79
|
+
## Rules
|
|
80
|
+
|
|
81
|
+
1. **Atomic Commits**: One logical change per commit
|
|
82
|
+
2. **Conventional Format**: Always use conventional commits
|
|
83
|
+
3. **No Secrets**: Block commits containing secrets
|
|
84
|
+
4. **Pre-push Check**: Verify before push to main/master
|
|
85
|
+
|
|
86
|
+
## Examples
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Smart commit with auto-generated message
|
|
90
|
+
/git-master commit
|
|
91
|
+
|
|
92
|
+
# Search for auth-related commits
|
|
93
|
+
/git-master search "auth"
|
|
94
|
+
|
|
95
|
+
# Find commits that modified a specific file
|
|
96
|
+
/git-master search --file mcp_bridge/auth/oauth.py
|
|
97
|
+
|
|
98
|
+
# Split large staged changes
|
|
99
|
+
/git-master split
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Safety Checks
|
|
103
|
+
|
|
104
|
+
Before committing, Git Master checks for:
|
|
105
|
+
- Exposed secrets (API keys, tokens, passwords)
|
|
106
|
+
- Debug/test code that shouldn't be committed
|
|
107
|
+
- Large binary files
|
|
108
|
+
- Merge conflict markers
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
$ARGUMENTS: command (required) - The git-master command to execute
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Index Project for Semantic Search
|
|
2
|
+
|
|
3
|
+
Index the current project for natural language code search using Ollama embeddings.
|
|
4
|
+
|
|
5
|
+
## What This Does
|
|
6
|
+
|
|
7
|
+
Creates a vector database for semantic code search that enables queries like:
|
|
8
|
+
- "find authentication logic"
|
|
9
|
+
- "error handling in API endpoints"
|
|
10
|
+
- "database connection pooling"
|
|
11
|
+
|
|
12
|
+
## Related Commands
|
|
13
|
+
|
|
14
|
+
- `/str:watch` - Start automatic file watching for background reindexing
|
|
15
|
+
- `/str:unwatch` - Stop file watcher
|
|
16
|
+
- `/str:cancel` - Cancel ongoing indexing operation
|
|
17
|
+
- `/str:clean` - Delete indexes to free disk space
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
Ensure Ollama is installed and the embedding model is available:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Install Ollama (if not already installed)
|
|
25
|
+
brew install ollama
|
|
26
|
+
|
|
27
|
+
# Pull the lightweight embedding model (274MB, recommended)
|
|
28
|
+
ollama pull nomic-embed-text
|
|
29
|
+
|
|
30
|
+
# Or for better accuracy (670MB):
|
|
31
|
+
ollama pull mxbai-embed-large
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Indexing
|
|
35
|
+
|
|
36
|
+
Use the `semantic_index` MCP tool to index the current project:
|
|
37
|
+
|
|
38
|
+
**Parameters:**
|
|
39
|
+
- `project_path`: "." (current directory)
|
|
40
|
+
- `provider`: "ollama" (free, local)
|
|
41
|
+
- `force`: false (only index new/changed files)
|
|
42
|
+
|
|
43
|
+
After indexing, you can use `semantic_search` with natural language queries.
|
|
44
|
+
|
|
45
|
+
**Check index status:** Use `semantic_stats` to view indexed files and metadata.
|
|
46
|
+
|
|
47
|
+
## Re-indexing
|
|
48
|
+
|
|
49
|
+
Run `/index` again to incrementally update the index with new or modified files. Use `force=true` to rebuild the entire index from scratch.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Bump version, publish to PyPI, and upgrade local installation
|
|
3
|
+
allowed-tools: Bash, Read, Edit
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Publish Stravinsky
|
|
7
|
+
|
|
8
|
+
Publish a new version to PyPI and upgrade local installation.
|
|
9
|
+
|
|
10
|
+
## ⚡ Quick Start (Recommended)
|
|
11
|
+
|
|
12
|
+
**The user runs `./deploy.sh` manually** - This is a complete deployment script that handles:
|
|
13
|
+
|
|
14
|
+
1. ✅ **Version consistency checks** - Verifies `pyproject.toml` and `mcp_bridge/__init__.py` match
|
|
15
|
+
2. ✅ **Git commit** - Auto-commits version changes if only version files modified
|
|
16
|
+
3. ✅ **Push to repo** - Pushes commits to origin/main
|
|
17
|
+
4. ✅ **Clean build** - Removes old artifacts, builds only current version
|
|
18
|
+
5. ✅ **Publish to PyPI** - Uploads wheel and tarball with API token
|
|
19
|
+
6. ✅ **Create git tag** - Tags the release (e.g., v0.4.13)
|
|
20
|
+
7. ✅ **Push tag to repo** - Pushes tag with `git push origin v0.4.X` (NOT --tags)
|
|
21
|
+
8. ✅ **Deployment verification** - Waits 10s and checks PyPI for new version
|
|
22
|
+
|
|
23
|
+
**Your role:**
|
|
24
|
+
- Help bump the version in `pyproject.toml` and `mcp_bridge/__init__.py` if requested
|
|
25
|
+
- Tell the user to run `./deploy.sh` - that's it!
|
|
26
|
+
- **NEVER** run the deployment yourself - the script must run in the user's terminal for interactive prompts
|
|
27
|
+
|
|
28
|
+
## Manual Workflow (Legacy)
|
|
29
|
+
|
|
30
|
+
If the user prefers manual control:
|
|
31
|
+
|
|
32
|
+
1. **Bump version** in pyproject.toml (patch by default, or specify: major, minor, patch)
|
|
33
|
+
2. **Commit** the version bump
|
|
34
|
+
3. **Tag** with version
|
|
35
|
+
4. **Push** to trigger GitHub Actions publish workflow
|
|
36
|
+
5. **Wait** for PyPI to update (~60 seconds)
|
|
37
|
+
6. **Upgrade** local uv tool installation
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
/publish # Bump patch version (0.2.56 -> 0.2.57)
|
|
43
|
+
/publish minor # Bump minor version (0.2.56 -> 0.3.0)
|
|
44
|
+
/publish major # Bump major version (0.2.56 -> 1.0.0)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Implementation
|
|
48
|
+
|
|
49
|
+
Execute the following steps:
|
|
50
|
+
|
|
51
|
+
### Step 1: Get current version
|
|
52
|
+
```bash
|
|
53
|
+
grep "^version" pyproject.toml
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Step 2: Calculate new version
|
|
57
|
+
Parse the current version and increment based on argument (default: patch).
|
|
58
|
+
|
|
59
|
+
### Step 3: Update pyproject.toml
|
|
60
|
+
Edit the version line to the new version.
|
|
61
|
+
|
|
62
|
+
### Step 4: Commit and tag
|
|
63
|
+
```bash
|
|
64
|
+
git add pyproject.toml
|
|
65
|
+
git commit -m "chore: bump version to X.Y.Z for PyPI release"
|
|
66
|
+
git tag vX.Y.Z
|
|
67
|
+
git push origin main --tags
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Step 5: Wait for PyPI
|
|
71
|
+
```bash
|
|
72
|
+
echo "Waiting 60s for PyPI publish..."
|
|
73
|
+
sleep 60
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Step 6: Upgrade local installation
|
|
77
|
+
```bash
|
|
78
|
+
uv tool upgrade stravinsky
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Step 7: Verify
|
|
82
|
+
```bash
|
|
83
|
+
uv tool list | grep stravinsky
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
IMPORTANT: Always complete ALL steps. The local upgrade is critical - never skip it.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: (⚠️ DEPRECATED) Fast security and quality code review. Use code-reviewer native subagent instead.
|
|
3
|
+
---
|
|
4
|
+
# /review (⚠️ DEPRECATED)
|
|
5
|
+
|
|
6
|
+
**Status**: Deprecated. Use the **Native Subagent** (`.claude/agents/code-reviewer.md`) instead.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Perform a thorough code review on recent changes before committing.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/review [scope: staged|unstaged|branch|file]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Default: Reviews both staged and unstaged changes.
|
|
18
|
+
|
|
19
|
+
## Review Checklist
|
|
20
|
+
|
|
21
|
+
### Security
|
|
22
|
+
- [ ] No hardcoded secrets or credentials
|
|
23
|
+
- [ ] Input validation on user data
|
|
24
|
+
- [ ] SQL injection prevention (parameterized queries)
|
|
25
|
+
- [ ] XSS prevention (output encoding)
|
|
26
|
+
- [ ] No command injection vulnerabilities
|
|
27
|
+
|
|
28
|
+
### Performance
|
|
29
|
+
- [ ] No N+1 query patterns
|
|
30
|
+
- [ ] Appropriate use of caching
|
|
31
|
+
- [ ] No unnecessary loops or iterations
|
|
32
|
+
- [ ] Efficient data structures
|
|
33
|
+
|
|
34
|
+
### Code Quality
|
|
35
|
+
- [ ] Clear, descriptive names
|
|
36
|
+
- [ ] Single responsibility principle
|
|
37
|
+
- [ ] No code duplication
|
|
38
|
+
- [ ] Appropriate error handling
|
|
39
|
+
- [ ] No commented-out code
|
|
40
|
+
|
|
41
|
+
### Testing
|
|
42
|
+
- [ ] New code has tests
|
|
43
|
+
- [ ] Edge cases covered
|
|
44
|
+
- [ ] Tests are meaningful (not just coverage)
|
|
45
|
+
|
|
46
|
+
## Instructions
|
|
47
|
+
|
|
48
|
+
Review recent code changes:
|
|
49
|
+
|
|
50
|
+
1. Get the diff:
|
|
51
|
+
```bash
|
|
52
|
+
git diff HEAD # unstaged changes
|
|
53
|
+
git diff --cached # staged changes
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
2. Analyze each changed file for:
|
|
57
|
+
- Security vulnerabilities (OWASP top 10)
|
|
58
|
+
- Performance issues
|
|
59
|
+
- Code style and maintainability
|
|
60
|
+
- Missing error handling
|
|
61
|
+
- Missing tests
|
|
62
|
+
|
|
63
|
+
3. Provide specific, actionable feedback:
|
|
64
|
+
- File and line number
|
|
65
|
+
- Issue description
|
|
66
|
+
- Suggested fix
|
|
67
|
+
|
|
68
|
+
4. Categorize issues by severity:
|
|
69
|
+
- CRITICAL: Must fix before merge
|
|
70
|
+
- WARNING: Should fix/m
|
|
71
|
+
- SUGGESTION: Nice to have
|
|
72
|
+
|
|
73
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Cancel a running background agent
|
|
3
|
+
allowed-tools: mcp__stravinsky__agent_cancel
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cancel Background Agent
|
|
7
|
+
|
|
8
|
+
Stop a running background agent immediately.
|
|
9
|
+
|
|
10
|
+
## What This Does
|
|
11
|
+
|
|
12
|
+
Terminates a running agent and cleans up resources. The agent's status will change to "cancelled" and no further work will be done.
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
# Cancel a specific agent
|
|
18
|
+
agent_cancel(task_id="task_001")
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Parameters
|
|
22
|
+
|
|
23
|
+
- `task_id`: The task ID from `agent_spawn`
|
|
24
|
+
|
|
25
|
+
## When to Cancel
|
|
26
|
+
|
|
27
|
+
- **Agent stuck**: Agent is taking too long or appears hung
|
|
28
|
+
- **Wrong task**: Accidentally spawned wrong agent or wrong prompt
|
|
29
|
+
- **Task no longer needed**: Requirements changed, agent work is obsolete
|
|
30
|
+
- **Resource management**: Too many agents running, need to free up slots
|
|
31
|
+
|
|
32
|
+
## Example Workflow
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
# 1. Spawn multiple agents
|
|
36
|
+
task_1 = agent_spawn(agent_type="explore", prompt="Find X", description="Task 1")
|
|
37
|
+
task_2 = agent_spawn(agent_type="dewey", prompt="Research Y", description="Task 2")
|
|
38
|
+
task_3 = agent_spawn(agent_type="delphi", prompt="Review Z", description="Task 3")
|
|
39
|
+
|
|
40
|
+
# 2. Check progress
|
|
41
|
+
agent_list(show_all=False)
|
|
42
|
+
|
|
43
|
+
# 3. Cancel slow/stuck agent
|
|
44
|
+
agent_cancel(task_id=task_1["task_id"])
|
|
45
|
+
|
|
46
|
+
# 4. Wait for remaining agents
|
|
47
|
+
result_2 = agent_output(task_id=task_2["task_id"], block=True)
|
|
48
|
+
result_3 = agent_output(task_id=task_3["task_id"], block=True)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Output
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
✅ Cancelled agent task_001 (explore - Find X)
|
|
55
|
+
Agent stopped gracefully
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Notes
|
|
59
|
+
|
|
60
|
+
- **Graceful shutdown**: Agent completes current tool call before stopping
|
|
61
|
+
- **No partial results**: Cancelled agents don't return partial work
|
|
62
|
+
- **Safe operation**: No data loss or corruption
|
|
63
|
+
- **Cannot uncancelled**: Once cancelled, use `agent_retry` to restart with same prompt
|
|
64
|
+
|
|
65
|
+
## Related Commands
|
|
66
|
+
|
|
67
|
+
- `/str:agent_list` - List all agents
|
|
68
|
+
- `/str:agent_retry` - Retry cancelled/failed agent
|
|
69
|
+
- `/str:agent_progress` - Monitor agent before cancelling
|
|
70
|
+
- `/str:agent_output` - Get results from completed agents
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: List all background agents (running, completed, failed)
|
|
3
|
+
allowed-tools: mcp__stravinsky__agent_list
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# List Background Agents
|
|
7
|
+
|
|
8
|
+
Show overview of all background agents spawned with `agent_spawn`, including their status, task IDs, and descriptions.
|
|
9
|
+
|
|
10
|
+
## What This Does
|
|
11
|
+
|
|
12
|
+
Returns a formatted table showing:
|
|
13
|
+
- **Task ID**: Unique identifier for each agent
|
|
14
|
+
- **Agent Type**: explore, dewey, frontend, delphi, etc.
|
|
15
|
+
- **Status**: running, completed, failed
|
|
16
|
+
- **Description**: Short description of the task
|
|
17
|
+
- **Model**: Which model the agent is using
|
|
18
|
+
- **Duration**: How long the agent has been running/ran
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
# Show all agents (default)
|
|
24
|
+
agent_list(show_all=True)
|
|
25
|
+
|
|
26
|
+
# Show only running agents
|
|
27
|
+
agent_list(show_all=False)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Example Output
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Background Agents (3 total, 1 running):
|
|
34
|
+
|
|
35
|
+
┌──────────┬─────────┬───────────┬──────────────────────┬────────┬──────────┐
|
|
36
|
+
│ Task ID │ Type │ Status │ Description │ Model │ Duration │
|
|
37
|
+
├──────────┼─────────┼───────────┼──────────────────────┼────────┼──────────┤
|
|
38
|
+
│ task_001 │ explore │ running │ Find auth code │ Gemini │ 2m 15s │
|
|
39
|
+
│ task_002 │ dewey │ completed │ Research JWT docs │ Gemini │ 1m 30s │
|
|
40
|
+
│ task_003 │ delphi │ failed │ Architecture review │ GPT-5 │ 3m 45s │
|
|
41
|
+
└──────────┴─────────┴───────────┴──────────────────────┴────────┴──────────┘
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Use Cases
|
|
45
|
+
|
|
46
|
+
- **Monitor parallel agents**: Check progress of multiple spawned agents
|
|
47
|
+
- **Debugging**: Find failed agents and retry
|
|
48
|
+
- **Status check**: See what's currently running
|
|
49
|
+
- **Task tracking**: Get task IDs for `agent_output` and `agent_progress`
|
|
50
|
+
|
|
51
|
+
## Related Commands
|
|
52
|
+
|
|
53
|
+
- `/str:agent_progress` - Monitor real-time agent logs
|
|
54
|
+
- `/str:agent_output` - Get agent results
|
|
55
|
+
- `/str:agent_cancel` - Stop running agent
|
|
56
|
+
- `/str:agent_retry` - Retry failed agent
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Get output from a background agent (block until complete or return immediately)
|
|
3
|
+
allowed-tools: mcp__stravinsky__agent_output
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Get Agent Output
|
|
7
|
+
|
|
8
|
+
Retrieve the final output from a background agent spawned with `agent_spawn`.
|
|
9
|
+
|
|
10
|
+
## What This Does
|
|
11
|
+
|
|
12
|
+
Returns the agent's final response. Can either:
|
|
13
|
+
- **Block**: Wait for agent to finish and return result
|
|
14
|
+
- **Non-blocking**: Return immediately with current status
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
# Block until agent completes (RECOMMENDED for collecting results)
|
|
20
|
+
agent_output(task_id="task_001", block=True)
|
|
21
|
+
|
|
22
|
+
# Check status without blocking
|
|
23
|
+
agent_output(task_id="task_001", block=False)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Parameters
|
|
27
|
+
|
|
28
|
+
- `task_id`: The task ID from `agent_spawn` (e.g., "task_001")
|
|
29
|
+
- `block`: Whether to wait for completion (default: False)
|
|
30
|
+
|
|
31
|
+
## Example Workflow
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
# 1. Spawn agents in parallel
|
|
35
|
+
task_1 = agent_spawn(
|
|
36
|
+
agent_type="explore",
|
|
37
|
+
prompt="Find authentication code",
|
|
38
|
+
description="Auth search"
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
task_2 = agent_spawn(
|
|
42
|
+
agent_type="dewey",
|
|
43
|
+
prompt="Research JWT best practices",
|
|
44
|
+
description="JWT research"
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
# 2. Collect results (blocks until both complete)
|
|
48
|
+
result_1 = agent_output(task_id=task_1["task_id"], block=True)
|
|
49
|
+
result_2 = agent_output(task_id=task_2["task_id"], block=True)
|
|
50
|
+
|
|
51
|
+
# 3. Process results
|
|
52
|
+
print(result_1)
|
|
53
|
+
print(result_2)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Output Format
|
|
57
|
+
|
|
58
|
+
### Running Agent (block=False)
|
|
59
|
+
```
|
|
60
|
+
Agent task_001 is still running (2m 15s elapsed)
|
|
61
|
+
Use agent_progress(task_id="task_001") to monitor logs
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Completed Agent
|
|
65
|
+
```
|
|
66
|
+
[Agent Response]
|
|
67
|
+
Found authentication code in the following files:
|
|
68
|
+
- mcp_bridge/auth/oauth.py
|
|
69
|
+
- mcp_bridge/auth/token_store.py
|
|
70
|
+
...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Failed Agent
|
|
74
|
+
```
|
|
75
|
+
Agent task_003 failed with error:
|
|
76
|
+
Error: Connection timeout to GPT API
|
|
77
|
+
Use agent_retry(task_id="task_003") to retry
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Use Cases
|
|
81
|
+
|
|
82
|
+
- **Parallel collection**: Block on multiple agents to collect all results
|
|
83
|
+
- **Status polling**: Check agent status without blocking
|
|
84
|
+
- **Error handling**: Get error messages from failed agents
|
|
85
|
+
- **Result synthesis**: Combine outputs from multiple agents
|
|
86
|
+
|
|
87
|
+
## Related Commands
|
|
88
|
+
|
|
89
|
+
- `/str:agent_list` - List all agents
|
|
90
|
+
- `/str:agent_progress` - Monitor real-time logs
|
|
91
|
+
- `/str:agent_retry` - Retry failed agent
|
|
92
|
+
- `/str:agent_cancel` - Stop running agent
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Monitor real-time logs from a running background agent
|
|
3
|
+
allowed-tools: mcp__stravinsky__agent_progress
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monitor Agent Progress
|
|
7
|
+
|
|
8
|
+
Stream real-time logs from a running background agent to see what it's doing.
|
|
9
|
+
|
|
10
|
+
## What This Does
|
|
11
|
+
|
|
12
|
+
Shows the last N lines of an agent's execution log, including:
|
|
13
|
+
- Tool calls being made
|
|
14
|
+
- Reasoning/thinking steps
|
|
15
|
+
- Error messages
|
|
16
|
+
- Current status
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
# Show last 20 lines (default)
|
|
22
|
+
agent_progress(task_id="task_001")
|
|
23
|
+
|
|
24
|
+
# Show last 50 lines
|
|
25
|
+
agent_progress(task_id="task_001", lines=50)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Parameters
|
|
29
|
+
|
|
30
|
+
- `task_id`: The task ID from `agent_spawn`
|
|
31
|
+
- `lines`: Number of log lines to show (default: 20)
|
|
32
|
+
|
|
33
|
+
## Example Output
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Progress for agent task_001 (explore - Find auth code):
|
|
37
|
+
Status: running (2m 15s)
|
|
38
|
+
|
|
39
|
+
[2026-01-11 04:00:15] Starting agent task_001 (explore)
|
|
40
|
+
[2026-01-11 04:00:16] Tool call: semantic_search(query="authentication logic")
|
|
41
|
+
[2026-01-11 04:00:18] Found 5 results in semantic search
|
|
42
|
+
[2026-01-11 04:00:19] Tool call: read_file(path="mcp_bridge/auth/oauth.py")
|
|
43
|
+
[2026-01-11 04:00:20] Analyzing OAuth implementation...
|
|
44
|
+
[2026-01-11 04:00:21] Tool call: read_file(path="mcp_bridge/auth/token_store.py")
|
|
45
|
+
[2026-01-11 04:00:22] Found keyring storage implementation
|
|
46
|
+
[2026-01-11 04:00:23] Synthesizing findings...
|
|
47
|
+
[2026-01-11 04:00:24] Agent completed successfully
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Use Cases
|
|
51
|
+
|
|
52
|
+
- **Debug long-running agents**: See what's taking so long
|
|
53
|
+
- **Monitor progress**: Check if agent is making progress
|
|
54
|
+
- **Spot errors**: Catch errors early before completion
|
|
55
|
+
- **Learn patterns**: See what tools agents use and in what order
|
|
56
|
+
|
|
57
|
+
## Monitoring Multiple Agents
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
# List all running agents
|
|
61
|
+
agent_list(show_all=False)
|
|
62
|
+
|
|
63
|
+
# Check progress of each
|
|
64
|
+
agent_progress(task_id="task_001")
|
|
65
|
+
agent_progress(task_id="task_002")
|
|
66
|
+
agent_progress(task_id="task_003")
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Related Commands
|
|
70
|
+
|
|
71
|
+
- `/str:agent_list` - List all agents
|
|
72
|
+
- `/str:agent_output` - Get final results
|
|
73
|
+
- `/str:agent_cancel` - Stop agent
|
|
74
|
+
- `/str:agent_retry` - Retry failed agent
|