mcp-coder-utils 0.1.4__tar.gz → 0.1.6__tar.gz
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.
- mcp_coder_utils-0.1.6/.claude/CLAUDE.md +102 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/knowledge_base/refactoring_principles.md +1 -1
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/settings.local.json +35 -35
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/check_branch_status/SKILL.md +0 -1
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/commit_push/SKILL.md +8 -8
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implement_direct/SKILL.md +8 -8
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_new_tasks/SKILL.md +4 -4
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_review/SKILL.md +9 -10
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_review_supervisor/SKILL.md +12 -12
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/issue_analyse/SKILL.md +6 -6
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/issue_approve/SKILL.md +3 -3
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/issue_create/SKILL.md +2 -2
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/issue_update/SKILL.md +9 -9
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/plan_review/SKILL.md +6 -7
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/plan_review_supervisor/SKILL.md +10 -10
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/plan_update/SKILL.md +4 -5
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/rebase/SKILL.md +20 -20
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/rebase/rebase_design.md +2 -2
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.github/workflows/ci.yml +7 -1
- mcp_coder_utils-0.1.6/.github/workflows/notify-downstream.yml +35 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.gitignore +1 -3
- mcp_coder_utils-0.1.6/.large-files-allowlist +9 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.mcp.json +8 -6
- {mcp_coder_utils-0.1.4/src/mcp_coder_utils.egg-info → mcp_coder_utils-0.1.6}/PKG-INFO +2 -2
- mcp_coder_utils-0.1.6/claude.sh +115 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/claude_local.bat +14 -27
- mcp_coder_utils-0.1.6/claude_local.sh +117 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/pyproject.toml +1 -1
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/log_utils.py +117 -108
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/redaction.py +46 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/subprocess_streaming.py +1 -1
- mcp_coder_utils-0.1.6/src/mcp_coder_utils/user_app_data.py +20 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6/src/mcp_coder_utils.egg-info}/PKG-INFO +2 -2
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils.egg-info/SOURCES.txt +8 -1
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils.egg-info/requires.txt +1 -1
- mcp_coder_utils-0.1.6/src/mcp_coder_utils.egg-info/scm_file_list.json +79 -0
- mcp_coder_utils-0.1.6/src/mcp_coder_utils.egg-info/scm_version.json +8 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_log_utils.py +481 -123
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_redaction.py +33 -0
- mcp_coder_utils-0.1.6/tests/test_user_app_data.py +12 -0
- mcp_coder_utils-0.1.6/tools/reinstall_local.sh +122 -0
- mcp_coder_utils-0.1.4/.claude/CLAUDE.md +0 -98
- mcp_coder_utils-0.1.4/.large-files-allowlist +0 -2
- mcp_coder_utils-0.1.4/todo_issues.md +0 -131
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/agents/commit-pusher.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/knowledge_base/planning_principles.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/knowledge_base/python.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/knowledge_base/software_engineering_principles.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/discuss/SKILL.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_approve/SKILL.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_finalise/SKILL.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_needs_rework/SKILL.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/issue_requirements/SKILL.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/plan_approve/SKILL.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.gitattributes +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.github/dependabot.yml +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.github/workflows/approve-command.yml +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.github/workflows/label-new-issues.yml +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.github/workflows/publish.yml +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.importlinter +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.python-version +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/LICENSE +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/README.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/claude.bat +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/docs/architecture/architecture.md +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/setup.cfg +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/__init__.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/fs/__init__.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/fs/path_security.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/fs/read_file.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/fs/text.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/py.typed +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils/subprocess_runner.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils.egg-info/dependency_links.txt +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/src/mcp_coder_utils.egg-info/top_level.txt +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/__init__.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_fs_path_security.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_fs_read_file.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_fs_text.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_subprocess_runner.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_subprocess_runner_real.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tests/test_subprocess_streaming.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tools/read_github_deps.py +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tools/reinstall_local.bat +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tools/ruff_check.bat +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/tools/ruff_check.sh +0 -0
- {mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/vulture_whitelist.py +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
## About this repo
|
|
2
|
+
|
|
3
|
+
`mcp-coder-utils` is a **leaf library**: shared low-level Python helpers (subprocess, logging, fs) used by `mcp-coder`, `mcp-tools-py`, `mcp-workspace`, and `mcp-tools-sql`.
|
|
4
|
+
|
|
5
|
+
**Architectural rules:**
|
|
6
|
+
|
|
7
|
+
- Pure Python, language-agnostic. No ecosystem knowledge (no `pyproject.toml` parsing, no venv, no `.csproj`, no SQL).
|
|
8
|
+
- Zero internal dependencies. Stdlib + pinned third-party libs only.
|
|
9
|
+
- Every public function must have ≥2 real consumers. Single-user helpers stay in the consumer.
|
|
10
|
+
- Public API is stable. Renames and signature changes break every downstream repo.
|
|
11
|
+
|
|
12
|
+
When in doubt, keep it in the consumer until a second consumer needs it.
|
|
13
|
+
|
|
14
|
+
## MCP Tools — mandatory
|
|
15
|
+
|
|
16
|
+
**Do NOT use native Claude Code file tools** (`Read`, `Write`, `Edit`, `Glob`, `Grep`, `Bash`) for any operation that has an MCP equivalent. Always use the `mcp__mcp-workspace__*` tools instead. This applies to all file reading, writing, editing, searching, listing, and git operations.
|
|
17
|
+
|
|
18
|
+
### Tool mapping
|
|
19
|
+
|
|
20
|
+
| Task | MCP tool |
|
|
21
|
+
|------|----------|
|
|
22
|
+
| Read file | `mcp__mcp-workspace__read_file` |
|
|
23
|
+
| Edit file | `mcp__mcp-workspace__edit_file` |
|
|
24
|
+
| Write file | `mcp__mcp-workspace__save_file` |
|
|
25
|
+
| Append to file | `mcp__mcp-workspace__append_file` |
|
|
26
|
+
| Delete file | `mcp__mcp-workspace__delete_this_file` |
|
|
27
|
+
| Move file | `mcp__mcp-workspace__move_file` |
|
|
28
|
+
| List directory | `mcp__mcp-workspace__list_directory` |
|
|
29
|
+
| Search files | `mcp__mcp-workspace__search_files` |
|
|
30
|
+
| Search reference files | `mcp__mcp-workspace__search_reference_files` |
|
|
31
|
+
| Read reference project | `mcp__mcp-workspace__read_reference_file` |
|
|
32
|
+
| List reference dir | `mcp__mcp-workspace__list_reference_directory` |
|
|
33
|
+
| Get reference projects | `mcp__mcp-workspace__get_reference_projects` |
|
|
34
|
+
| Run pytest | `mcp__mcp-tools-py__run_pytest_check` |
|
|
35
|
+
| Run pylint | `mcp__mcp-tools-py__run_pylint_check` |
|
|
36
|
+
| Run mypy | `mcp__mcp-tools-py__run_mypy_check` |
|
|
37
|
+
| Run lint-imports | `mcp__mcp-tools-py__run_lint_imports_check` |
|
|
38
|
+
| Run vulture | `mcp__mcp-tools-py__run_vulture_check` |
|
|
39
|
+
| Format code (black+isort) | `mcp__mcp-tools-py__run_format_code` |
|
|
40
|
+
| Get library source | `mcp__mcp-tools-py__get_library_source` |
|
|
41
|
+
| Refactoring | `mcp__mcp-tools-py__move_symbol`, `move_module`, `rename_symbol`, `list_symbols`, `find_references` |
|
|
42
|
+
| Git (read-only) | `mcp__mcp-workspace__git` |
|
|
43
|
+
| Get base branch | `mcp__mcp-workspace__get_base_branch` |
|
|
44
|
+
| Check file size | `mcp__mcp-workspace__check_file_size` |
|
|
45
|
+
| Check branch status | `mcp__mcp-workspace__check_branch_status` |
|
|
46
|
+
| List GitHub issues | `mcp__mcp-workspace__github_issue_list` |
|
|
47
|
+
| View GitHub issue | `mcp__mcp-workspace__github_issue_view` |
|
|
48
|
+
| View GitHub PR | `mcp__mcp-workspace__github_pr_view` |
|
|
49
|
+
| Search GitHub | `mcp__mcp-workspace__github_search` |
|
|
50
|
+
|
|
51
|
+
### Reference projects
|
|
52
|
+
|
|
53
|
+
Read-only browse via `mcp__mcp-workspace__read_reference_file`:
|
|
54
|
+
|
|
55
|
+
- `mcp_coder` — `mcp_coder` source
|
|
56
|
+
- `mcp-workspace` — `mcp-workspace` source
|
|
57
|
+
- `mcp-config` — `mcp-config` source
|
|
58
|
+
- `mcp-tools-py` — `mcp-tools-py` source
|
|
59
|
+
|
|
60
|
+
## Code quality checks
|
|
61
|
+
|
|
62
|
+
After making code changes, run:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
mcp__mcp-tools-py__run_pylint_check
|
|
66
|
+
mcp__mcp-tools-py__run_pytest_check
|
|
67
|
+
mcp__mcp-tools-py__run_mypy_check
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
All checks must pass before proceeding.
|
|
71
|
+
|
|
72
|
+
**Pytest:** always use `extra_args: ["-n", "auto"]` for parallel execution. No integration test markers — run everything.
|
|
73
|
+
|
|
74
|
+
## Git operations
|
|
75
|
+
|
|
76
|
+
**Prefer MCP tools** for read-only git operations: use `mcp__mcp-workspace__git` with the `command` parameter (log, diff, status, merge_base, show, branch, fetch, rev_parse, ls_tree, ls_files, ls_remote). These run without permission prompts.
|
|
77
|
+
|
|
78
|
+
**Compact diff:** `mcp__mcp-workspace__git` with command `"diff"` includes compact diff by default — detects moved code, collapses unchanged blocks. Use `compact=False` for raw output.
|
|
79
|
+
|
|
80
|
+
**Bash commands** for git operations that have no MCP equivalent:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
git commit / git add
|
|
84
|
+
mcp-coder gh-tool set-status <label> # change issue workflow status label
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Status labels:** use `mcp-coder gh-tool set-status` to change issue workflow status — never use raw `gh issue edit` with label flags.
|
|
88
|
+
|
|
89
|
+
**Before every commit:** run `mcp__mcp-tools-py__run_format_code`, then stage and commit.
|
|
90
|
+
|
|
91
|
+
**Bash discipline:** no `cd` prefix. Don't chain approved with unapproved commands. Run them separately.
|
|
92
|
+
|
|
93
|
+
**Commit messages:** standard format, clear and descriptive. No attribution footers.
|
|
94
|
+
|
|
95
|
+
## Writing style
|
|
96
|
+
|
|
97
|
+
Be concise. If one line works, don't use three.
|
|
98
|
+
|
|
99
|
+
## Asking questions
|
|
100
|
+
|
|
101
|
+
Never use the AskUserQuestion tool. Ask questions as plain text in the chat.
|
|
102
|
+
|
{mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/knowledge_base/refactoring_principles.md
RENAMED
|
@@ -15,7 +15,7 @@ Quick reference for refactoring rules and tools. For detailed process, examples,
|
|
|
15
15
|
1. Plan target structure
|
|
16
16
|
2. Move source code — `move_symbol` / `move_module`
|
|
17
17
|
3. Move tests to mirror new structure
|
|
18
|
-
4. Review diff — `
|
|
18
|
+
4. Review diff — `mcp__mcp-workspace__git_diff` (remaining diff should be imports only)
|
|
19
19
|
5. Run all checks — pytest, pylint, mypy, ruff
|
|
20
20
|
6. Check file sizes — `mcp-coder check file-size --max-lines 750`
|
|
21
21
|
|
|
@@ -39,44 +39,44 @@
|
|
|
39
39
|
"mcp__obsidian-wiki__remove-tags",
|
|
40
40
|
"mcp__obsidian-wiki__rename-tag",
|
|
41
41
|
"mcp__obsidian-wiki__search-vault",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
42
|
+
"mcp__mcp-tools-py__find_references",
|
|
43
|
+
"mcp__mcp-tools-py__get_library_source",
|
|
44
|
+
"mcp__mcp-tools-py__list_symbols",
|
|
45
|
+
"mcp__mcp-tools-py__move_module",
|
|
46
|
+
"mcp__mcp-tools-py__move_symbol",
|
|
47
|
+
"mcp__mcp-tools-py__rename_symbol",
|
|
48
|
+
"mcp__mcp-tools-py__run_format_code",
|
|
49
|
+
"mcp__mcp-tools-py__run_lint_imports_check",
|
|
50
|
+
"mcp__mcp-tools-py__run_mypy_check",
|
|
51
|
+
"mcp__mcp-tools-py__run_pylint_check",
|
|
52
|
+
"mcp__mcp-tools-py__run_pytest_check",
|
|
53
|
+
"mcp__mcp-tools-py__run_ruff_check",
|
|
54
|
+
"mcp__mcp-tools-py__run_vulture_check",
|
|
55
|
+
"mcp__mcp-workspace__append_file",
|
|
56
|
+
"mcp__mcp-workspace__check_branch_status",
|
|
57
|
+
"mcp__mcp-workspace__check_file_size",
|
|
58
|
+
"mcp__mcp-workspace__delete_this_file",
|
|
59
|
+
"mcp__mcp-workspace__edit_file",
|
|
60
|
+
"mcp__mcp-workspace__get_base_branch",
|
|
61
|
+
"mcp__mcp-workspace__get_reference_projects",
|
|
62
|
+
"mcp__mcp-workspace__git",
|
|
63
|
+
"mcp__mcp-workspace__github_issue_list",
|
|
64
|
+
"mcp__mcp-workspace__github_issue_view",
|
|
65
|
+
"mcp__mcp-workspace__github_pr_view",
|
|
66
|
+
"mcp__mcp-workspace__github_search",
|
|
67
|
+
"mcp__mcp-workspace__list_directory",
|
|
68
|
+
"mcp__mcp-workspace__list_reference_directory",
|
|
69
|
+
"mcp__mcp-workspace__move_file",
|
|
70
|
+
"mcp__mcp-workspace__read_file",
|
|
71
|
+
"mcp__mcp-workspace__read_reference_file",
|
|
72
|
+
"mcp__mcp-workspace__save_file",
|
|
73
|
+
"mcp__mcp-workspace__search_files",
|
|
74
|
+
"mcp__mcp-workspace__search_reference_files"
|
|
75
75
|
]
|
|
76
76
|
},
|
|
77
77
|
"enableAllProjectMcpServers": true,
|
|
78
78
|
"enabledMcpjsonServers": [
|
|
79
|
-
"tools-py",
|
|
80
|
-
"workspace"
|
|
79
|
+
"mcp-tools-py",
|
|
80
|
+
"mcp-workspace"
|
|
81
81
|
]
|
|
82
82
|
}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
description: Format code, review changes, commit, and push to remote
|
|
3
3
|
disable-model-invocation: true
|
|
4
4
|
allowed-tools:
|
|
5
|
-
-
|
|
5
|
+
- mcp__mcp-workspace__git
|
|
6
6
|
- "Bash(git add *)"
|
|
7
7
|
- "Bash(git commit *)"
|
|
8
8
|
- "Bash(git push *)"
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
9
|
+
- mcp__mcp-tools-py__run_format_code
|
|
10
|
+
- mcp__mcp-workspace__read_file
|
|
11
|
+
- mcp__mcp-workspace__list_directory
|
|
12
|
+
- mcp__mcp-workspace__search_files
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# Commit and Push Changes
|
|
@@ -17,11 +17,11 @@ allowed-tools:
|
|
|
17
17
|
Follow this process to commit and push your changes:
|
|
18
18
|
|
|
19
19
|
## 1. Format Code
|
|
20
|
-
Use `
|
|
20
|
+
Use `mcp__mcp-tools-py__run_format_code` to format all code (black + isort).
|
|
21
21
|
|
|
22
22
|
## 2. Review Changes
|
|
23
|
-
Use `
|
|
24
|
-
Use `
|
|
23
|
+
Use `mcp__mcp-workspace__git` with command `"status"` to check working directory state.
|
|
24
|
+
Use `mcp__mcp-workspace__git` with command `"diff"` to review the changes.
|
|
25
25
|
|
|
26
26
|
## 3. Stage Changes
|
|
27
27
|
Stage all relevant changes (exclude any files that shouldn't be committed).
|
|
@@ -3,10 +3,10 @@ name: implement-direct
|
|
|
3
3
|
disable-model-invocation: true
|
|
4
4
|
argument-hint: [issue-number]
|
|
5
5
|
allowed-tools:
|
|
6
|
-
-
|
|
6
|
+
- mcp__mcp-workspace__github_issue_view
|
|
7
7
|
- "Bash(mcp-coder gh-tool *)"
|
|
8
|
-
-
|
|
9
|
-
-
|
|
8
|
+
- mcp__mcp-workspace__read_file
|
|
9
|
+
- mcp__mcp-tools-py__run_format_code
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Implement Direct
|
|
@@ -23,7 +23,7 @@ If no issue number is provided:
|
|
|
23
23
|
## Steps
|
|
24
24
|
|
|
25
25
|
1. **Fetch issue details**
|
|
26
|
-
Use `
|
|
26
|
+
Use `mcp__mcp-workspace__github_issue_view` to fetch the issue details.
|
|
27
27
|
Read the issue title, description, and acceptance criteria carefully.
|
|
28
28
|
|
|
29
29
|
2. **Checkout/create issue branch**
|
|
@@ -42,13 +42,13 @@ If no issue number is provided:
|
|
|
42
42
|
- Keep changes focused and minimal — only what the issue requires
|
|
43
43
|
|
|
44
44
|
5. **Run quality checks**
|
|
45
|
-
- `
|
|
46
|
-
- `
|
|
47
|
-
- `
|
|
45
|
+
- `mcp__mcp-tools-py__run_pylint_check` — fix all issues
|
|
46
|
+
- `mcp__mcp-tools-py__run_pytest_check` (with `extra_args: ["-n", "auto"]`) — fix all failures
|
|
47
|
+
- `mcp__mcp-tools-py__run_mypy_check` — fix all issues
|
|
48
48
|
- `./tools/ruff_check.sh` — fix all issues
|
|
49
49
|
|
|
50
50
|
6. **Format code**
|
|
51
|
-
Use `
|
|
51
|
+
Use `mcp__mcp-tools-py__run_format_code` to format all code (black + isort).
|
|
52
52
|
|
|
53
53
|
7. **Update issue status**
|
|
54
54
|
```bash
|
{mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_new_tasks/SKILL.md
RENAMED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
description: Create additional implementation steps after code review findings
|
|
3
3
|
disable-model-invocation: true
|
|
4
4
|
allowed-tools:
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
5
|
+
- mcp__mcp-workspace__read_file
|
|
6
|
+
- mcp__mcp-workspace__save_file
|
|
7
|
+
- mcp__mcp-workspace__edit_file
|
|
8
|
+
- mcp__mcp-workspace__list_directory
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Create Further Implementation Tasks
|
{mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/implementation_review/SKILL.md
RENAMED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Code review of implementation with compact diff analysis
|
|
3
|
-
disable-model-invocation: true
|
|
4
3
|
allowed-tools:
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
4
|
+
- mcp__mcp-workspace__git
|
|
5
|
+
- mcp__mcp-workspace__check_branch_status
|
|
6
|
+
- mcp__mcp-workspace__read_file
|
|
7
|
+
- mcp__mcp-workspace__list_directory
|
|
8
|
+
- mcp__mcp-workspace__search_files
|
|
10
9
|
---
|
|
11
10
|
|
|
12
11
|
# Implementation Review (Code Review)
|
|
13
12
|
|
|
14
13
|
**First, ensure we're up to date:**
|
|
15
|
-
Call `
|
|
16
|
-
Use `
|
|
17
|
-
Call `
|
|
14
|
+
Call `mcp__mcp-workspace__git` with command `"fetch"` and args `["origin"]`.
|
|
15
|
+
Use `mcp__mcp-workspace__git` with command `"status"` to check working directory state.
|
|
16
|
+
Call `mcp__mcp-workspace__check_branch_status`.
|
|
18
17
|
|
|
19
18
|
Confirm and display the current feature branch name.
|
|
20
19
|
|
|
@@ -24,7 +23,7 @@ Confirm and display the current feature branch name.
|
|
|
24
23
|
|
|
25
24
|
## Code Review Request
|
|
26
25
|
|
|
27
|
-
Use `
|
|
26
|
+
Use `mcp__mcp-workspace__git` with command `"diff"` to get the changes to review.
|
|
28
27
|
|
|
29
28
|
No need to run all checks; do not use pylint warnings. Feel free to further analyse any mentioned files and/or the file structure.
|
|
30
29
|
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
description: Autonomous code review — supervisor delegates to engineer subagents with knowledge base
|
|
3
3
|
disable-model-invocation: true
|
|
4
4
|
allowed-tools:
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
5
|
+
- mcp__mcp-workspace__github_issue_view
|
|
6
|
+
- mcp__mcp-workspace__check_branch_status
|
|
7
|
+
- mcp__mcp-workspace__git
|
|
8
|
+
- mcp__mcp-workspace__read_file
|
|
9
|
+
- mcp__mcp-workspace__save_file
|
|
10
|
+
- mcp__mcp-workspace__edit_file
|
|
11
|
+
- mcp__mcp-workspace__list_directory
|
|
12
|
+
- mcp__mcp-tools-py__run_pylint_check
|
|
13
|
+
- mcp__mcp-tools-py__run_pytest_check
|
|
14
|
+
- mcp__mcp-tools-py__run_mypy_check
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
# Automated Implementation Review (Code Review) / using a supervisor agent
|
|
@@ -20,7 +20,7 @@ You are a technical lead supervising a software engineer (subagent). You do not
|
|
|
20
20
|
|
|
21
21
|
**Setup:**
|
|
22
22
|
|
|
23
|
-
1. Read the GitHub issue (call `
|
|
23
|
+
1. Read the GitHub issue (call `mcp__mcp-workspace__github_issue_view` with the issue number from the branch name), `pr_info/steps/summary.md`, and `pr_info/steps/Decisions.md` (if it exists) to understand requirements and design decisions.
|
|
24
24
|
2. Read the knowledge base files:
|
|
25
25
|
- `.claude/knowledge_base/software_engineering_principles.md`
|
|
26
26
|
- `.claude/knowledge_base/python.md`
|
|
@@ -70,6 +70,6 @@ You are a technical lead supervising a software engineer (subagent). You do not
|
|
|
70
70
|
**Status**: {committed / no changes needed}
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
**Subagent instructions:**
|
|
73
|
+
**Subagent instructions:** When launching subagents, instruct them to follow CLAUDE.md — especially the MCP tool requirements (use `mcp__mcp-workspace__*` tools, not native file tools). Also remind them: no `cd` prefix, approved commands only.
|
|
74
74
|
|
|
75
75
|
**Escalation:** If you have questions or are unsure about a significant technical decision, ask the user. For borderline Accept/Skip findings, default to better code quality rather than asking — only escalate when the fix has meaningful scope or risk, not for trivial changes in either direction.
|
|
@@ -3,10 +3,10 @@ description: Analyse GitHub issue requirements, feasibility, and implementation
|
|
|
3
3
|
disable-model-invocation: true
|
|
4
4
|
argument-hint: "<issue-number>"
|
|
5
5
|
allowed-tools:
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
6
|
+
- mcp__mcp-workspace__github_issue_view
|
|
7
|
+
- mcp__mcp-workspace__git
|
|
8
|
+
- mcp__mcp-workspace__read_file
|
|
9
|
+
- mcp__mcp-workspace__list_directory
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Analyse GitHub Issue
|
|
@@ -20,7 +20,7 @@ If no issue number is provided:
|
|
|
20
20
|
1. Read `.vscodeclaude_status.txt` and extract the issue number from the `Issue #NNN` line
|
|
21
21
|
2. If the file doesn't exist or has no issue number, ask the user
|
|
22
22
|
|
|
23
|
-
Fetch the issue using `
|
|
23
|
+
Fetch the issue using `mcp__mcp-workspace__github_issue_view`.
|
|
24
24
|
|
|
25
25
|
## Instructions
|
|
26
26
|
|
|
@@ -43,7 +43,7 @@ During the discussion, actively identify constraints and rationale — the "why"
|
|
|
43
43
|
**Base Branch Handling:**
|
|
44
44
|
If the issue contains a `### Base Branch` section:
|
|
45
45
|
- Display the specified base branch prominently
|
|
46
|
-
- Verify the branch exists using `
|
|
46
|
+
- Verify the branch exists using `mcp__mcp-workspace__git` with command `"ls_remote"` and args `["--heads", "origin", "<branch-name>"]`
|
|
47
47
|
- If the branch does NOT exist, show a clear warning:
|
|
48
48
|
"Warning: Base branch 'X' does not exist on remote. Branch creation will fail."
|
|
49
49
|
- Continue with the analysis (non-blocking error)
|
|
@@ -3,10 +3,10 @@ description: Approve issue to transition to next workflow status
|
|
|
3
3
|
disable-model-invocation: true
|
|
4
4
|
argument-hint: "<issue-number>"
|
|
5
5
|
allowed-tools:
|
|
6
|
-
-
|
|
6
|
+
- mcp__mcp-workspace__github_issue_view
|
|
7
7
|
- "Bash(gh issue comment *)"
|
|
8
8
|
- "Bash(MSYS_NO_PATHCONV=1 gh issue comment *)"
|
|
9
|
-
-
|
|
9
|
+
- mcp__mcp-workspace__read_file
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Approve Issue
|
|
@@ -23,7 +23,7 @@ If no issue number is provided:
|
|
|
23
23
|
|
|
24
24
|
## Instructions
|
|
25
25
|
|
|
26
|
-
1. Fetch the issue to confirm it exists using `
|
|
26
|
+
1. Fetch the issue to confirm it exists using `mcp__mcp-workspace__github_issue_view`.
|
|
27
27
|
|
|
28
28
|
2. Validate that the issue is ready for approval:
|
|
29
29
|
- Issue has been analyzed/discussed
|
|
@@ -4,7 +4,7 @@ disable-model-invocation: true
|
|
|
4
4
|
argument-hint: "<title>"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- "Bash(gh issue create *)"
|
|
7
|
-
-
|
|
7
|
+
- mcp__mcp-workspace__git
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Create GitHub Issue
|
|
@@ -31,7 +31,7 @@ Use cases:
|
|
|
31
31
|
- Features building on existing work
|
|
32
32
|
- Long-running feature branches
|
|
33
33
|
|
|
34
|
-
**Important:** Before specifying a base branch, verify it exists using `
|
|
34
|
+
**Important:** Before specifying a base branch, verify it exists using `mcp__mcp-workspace__git` with command `"ls_remote"` and args `["--heads", "origin", "<branch-name>"]`.
|
|
35
35
|
|
|
36
36
|
If no base branch is needed, omit this section entirely.
|
|
37
37
|
|
|
@@ -4,12 +4,12 @@ disable-model-invocation: true
|
|
|
4
4
|
argument-hint: "<issue-number>"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- "Bash(gh issue edit *)"
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
7
|
+
- mcp__mcp-workspace__github_issue_view
|
|
8
|
+
- mcp__mcp-workspace__save_file
|
|
9
|
+
- mcp__mcp-workspace__delete_this_file
|
|
10
|
+
- mcp__mcp-workspace__read_file
|
|
11
|
+
- mcp__mcp-workspace__list_directory
|
|
12
|
+
- mcp__mcp-workspace__search_files
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# Update GitHub Issue
|
|
@@ -19,7 +19,7 @@ Based on our prior `/issue_analyse` discussion, update the GitHub issue with ref
|
|
|
19
19
|
**Instructions:**
|
|
20
20
|
1. If no issue context is found from prior analysis, respond: "No issue context found. Please run `/issue_analyse <number>` first."
|
|
21
21
|
|
|
22
|
-
2. First, fetch the current issue content using `
|
|
22
|
+
2. First, fetch the current issue content using `mcp__mcp-workspace__github_issue_view`.
|
|
23
23
|
|
|
24
24
|
3. Draft updated issue text with:
|
|
25
25
|
- Clear, concise title
|
|
@@ -27,7 +27,7 @@ Based on our prior `/issue_analyse` discussion, update the GitHub issue with ref
|
|
|
27
27
|
|
|
28
28
|
4. Write the issue body to a temp file (avoids bash escaping issues with markdown):
|
|
29
29
|
```python
|
|
30
|
-
|
|
30
|
+
mcp__mcp-workspace__save_file(file_path="issue_body_temp.md", content=body_content)
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
5. Update the issue using `--body-file`:
|
|
@@ -37,7 +37,7 @@ gh issue edit <issue_number> --title "NEW_TITLE" --body-file issue_body_temp.md
|
|
|
37
37
|
|
|
38
38
|
6. Clean up the temp file:
|
|
39
39
|
```python
|
|
40
|
-
|
|
40
|
+
mcp__mcp-workspace__delete_this_file(file_path="issue_body_temp.md")
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
**Editing Base Branch:**
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Review implementation plan for completeness, simplicity, and risks
|
|
3
|
-
disable-model-invocation: true
|
|
4
3
|
allowed-tools:
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
4
|
+
- mcp__mcp-workspace__git
|
|
5
|
+
- mcp__mcp-workspace__read_file
|
|
6
|
+
- mcp__mcp-workspace__list_directory
|
|
7
|
+
- mcp__mcp-workspace__search_files
|
|
9
8
|
---
|
|
10
9
|
|
|
11
10
|
# Review Implementation Plan
|
|
12
11
|
|
|
13
12
|
**First, ensure we're up to date:**
|
|
14
|
-
Call `
|
|
15
|
-
Use `
|
|
13
|
+
Call `mcp__mcp-workspace__git` with command `"fetch"` and args `["origin"]`.
|
|
14
|
+
Use `mcp__mcp-workspace__git` with command `"status"` to check working directory state.
|
|
16
15
|
|
|
17
16
|
Confirm and display the current feature branch name.
|
|
18
17
|
|
{mcp_coder_utils-0.1.4 → mcp_coder_utils-0.1.6}/.claude/skills/plan_review_supervisor/SKILL.md
RENAMED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
description: Autonomous plan review — supervisor delegates to engineer subagents
|
|
3
3
|
disable-model-invocation: true
|
|
4
4
|
allowed-tools:
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
5
|
+
- mcp__mcp-workspace__github_issue_view
|
|
6
|
+
- mcp__mcp-workspace__read_file
|
|
7
|
+
- mcp__mcp-workspace__save_file
|
|
8
|
+
- mcp__mcp-workspace__edit_file
|
|
9
|
+
- mcp__mcp-workspace__list_directory
|
|
10
|
+
- mcp__mcp-tools-py__run_pylint_check
|
|
11
|
+
- mcp__mcp-tools-py__run_pytest_check
|
|
12
|
+
- mcp__mcp-tools-py__run_mypy_check
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# Automated Plan Review / using a supervisor agent
|
|
@@ -18,7 +18,7 @@ You are a technical lead supervising a software engineer (subagent). You do not
|
|
|
18
18
|
|
|
19
19
|
**Setup:**
|
|
20
20
|
|
|
21
|
-
1. Read the GitHub issue (using `
|
|
21
|
+
1. Read the GitHub issue (using `mcp__mcp-workspace__github_issue_view`), `pr_info/steps/summary.md`, and `pr_info/steps/Decisions.md` (if it exists) to understand requirements and design decisions.
|
|
22
22
|
2. Read the knowledge base files:
|
|
23
23
|
- `.claude/knowledge_base/software_engineering_principles.md`
|
|
24
24
|
- `.claude/knowledge_base/planning_principles.md`
|
|
@@ -65,6 +65,6 @@ You are a technical lead supervising a software engineer (subagent). You do not
|
|
|
65
65
|
**Status**: {committed / no changes needed}
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
**Subagent instructions:**
|
|
68
|
+
**Subagent instructions:** When launching subagents, instruct them to follow CLAUDE.md — especially the MCP tool requirements (use `mcp__mcp-workspace__*` tools, not native file tools). Also remind them: no `cd` prefix, approved commands only.
|
|
69
69
|
|
|
70
70
|
**Escalation:** If you have questions or are unsure about a significant technical decision, ask the user. For borderline improvements, default to simpler plans rather than asking — only escalate when the change affects scope or architecture.
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Update implementation plan files based on discussion
|
|
3
|
-
disable-model-invocation: true
|
|
4
3
|
allowed-tools:
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
4
|
+
- mcp__mcp-workspace__read_file
|
|
5
|
+
- mcp__mcp-workspace__save_file
|
|
6
|
+
- mcp__mcp-workspace__edit_file
|
|
7
|
+
- mcp__mcp-workspace__list_directory
|
|
9
8
|
---
|
|
10
9
|
|
|
11
10
|
# Update Plan Files
|