crucible-mcp 0.1.0__tar.gz → 0.3.0__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.
Files changed (46) hide show
  1. crucible_mcp-0.3.0/PKG-INFO +153 -0
  2. crucible_mcp-0.3.0/README.md +136 -0
  3. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/pyproject.toml +2 -1
  4. crucible_mcp-0.3.0/src/crucible/cli.py +1635 -0
  5. crucible_mcp-0.3.0/src/crucible/hooks/__init__.py +15 -0
  6. crucible_mcp-0.3.0/src/crucible/hooks/precommit.py +660 -0
  7. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/knowledge/loader.py +70 -1
  8. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/models.py +15 -0
  9. crucible_mcp-0.3.0/src/crucible/server.py +1429 -0
  10. crucible_mcp-0.3.0/src/crucible/skills/__init__.py +23 -0
  11. crucible_mcp-0.3.0/src/crucible/skills/loader.py +281 -0
  12. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/tools/delegation.py +96 -10
  13. crucible_mcp-0.3.0/src/crucible/tools/git.py +317 -0
  14. crucible_mcp-0.3.0/src/crucible_mcp.egg-info/PKG-INFO +153 -0
  15. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible_mcp.egg-info/SOURCES.txt +10 -0
  16. crucible_mcp-0.3.0/tests/test_cli.py +833 -0
  17. crucible_mcp-0.3.0/tests/test_full_review.py +484 -0
  18. crucible_mcp-0.3.0/tests/test_git.py +389 -0
  19. crucible_mcp-0.3.0/tests/test_hooks_cli.py +234 -0
  20. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/tests/test_integration.py +4 -4
  21. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/tests/test_knowledge.py +109 -0
  22. crucible_mcp-0.3.0/tests/test_precommit.py +579 -0
  23. crucible_mcp-0.3.0/tests/test_server.py +205 -0
  24. crucible_mcp-0.3.0/tests/test_skills_loader.py +425 -0
  25. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/tests/test_tools.py +59 -0
  26. crucible_mcp-0.1.0/PKG-INFO +0 -158
  27. crucible_mcp-0.1.0/README.md +0 -141
  28. crucible_mcp-0.1.0/src/crucible/cli.py +0 -523
  29. crucible_mcp-0.1.0/src/crucible/server.py +0 -376
  30. crucible_mcp-0.1.0/src/crucible_mcp.egg-info/PKG-INFO +0 -158
  31. crucible_mcp-0.1.0/tests/test_cli.py +0 -230
  32. crucible_mcp-0.1.0/tests/test_server.py +0 -60
  33. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/setup.cfg +0 -0
  34. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/__init__.py +0 -0
  35. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/domain/__init__.py +0 -0
  36. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/domain/detection.py +0 -0
  37. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/errors.py +0 -0
  38. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/knowledge/__init__.py +0 -0
  39. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/synthesis/__init__.py +0 -0
  40. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible/tools/__init__.py +0 -0
  41. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible_mcp.egg-info/dependency_links.txt +0 -0
  42. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible_mcp.egg-info/entry_points.txt +0 -0
  43. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible_mcp.egg-info/requires.txt +0 -0
  44. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/src/crucible_mcp.egg-info/top_level.txt +0 -0
  45. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/tests/test_detection.py +0 -0
  46. {crucible_mcp-0.1.0 → crucible_mcp-0.3.0}/tests/test_skills.py +0 -0
@@ -0,0 +1,153 @@
1
+ Metadata-Version: 2.4
2
+ Name: crucible-mcp
3
+ Version: 0.3.0
4
+ Summary: Code review MCP server for Claude. Not affiliated with Atlassian.
5
+ Author: be.nvy
6
+ License-Expression: MIT
7
+ Keywords: mcp,code-review,static-analysis,claude
8
+ Requires-Python: >=3.11
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: mcp>=1.0.0
11
+ Requires-Dist: pyyaml>=6.0
12
+ Provides-Extra: dev
13
+ Requires-Dist: pytest>=8.0; extra == "dev"
14
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
15
+ Requires-Dist: mypy>=1.8; extra == "dev"
16
+ Requires-Dist: ruff>=0.3; extra == "dev"
17
+
18
+ # Crucible
19
+
20
+ Load your coding patterns into Claude Code.
21
+
22
+ ```
23
+ ├── Personas: Domain-specific thinking (how to approach problems)
24
+ ├── Knowledge: Coding patterns and principles (what to apply)
25
+ ├── Cascade: Project → User → Bundled (customizable at every level)
26
+ └── Context-aware: Loads relevant skills based on what you're working on
27
+ ```
28
+
29
+ **Personas for domains. Knowledge for patterns. All customizable.**
30
+
31
+ > Not affiliated with Atlassian's Crucible.
32
+
33
+ ## Install
34
+
35
+ ```bash
36
+ pip install crucible-mcp
37
+ ```
38
+
39
+ Add to Claude Code (`.mcp.json`):
40
+
41
+ ```json
42
+ {
43
+ "mcpServers": {
44
+ "crucible": {
45
+ "command": "crucible-mcp"
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ With hot reload (recommended for customization):
52
+
53
+ ```json
54
+ {
55
+ "mcpServers": {
56
+ "crucible": {
57
+ "command": "mcpmon",
58
+ "args": ["--watch", "~/.crucible/", "--", "crucible-mcp"]
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## How It Works
65
+
66
+ ```
67
+ Code → Detect Domain → Load Personas + Knowledge → Claude with YOUR patterns
68
+
69
+ .sol file → web3 domain → security-engineer + SMART_CONTRACT.md → Knows your security rules
70
+ ```
71
+
72
+ ## MCP Tools
73
+
74
+ | Tool | Purpose |
75
+ |------|---------|
76
+ | `review(path)` | Full review: analysis + skills + knowledge |
77
+ | `review(mode='staged')` | Review git changes with skills + knowledge |
78
+ | `load_knowledge(files)` | Load specific knowledge files |
79
+ | `get_principles(topic)` | Load engineering knowledge by topic |
80
+ | `delegate_*` | Direct tool access (semgrep, ruff, slither, bandit) |
81
+ | `check_tools()` | Show installed analysis tools |
82
+
83
+ The unified `review` tool supports:
84
+ - **Path-based**: `review(path="src/")` - analyze files/directories
85
+ - **Git-aware**: `review(mode="staged")` - analyze changes (staged, unstaged, branch, commits)
86
+ - **Quick mode**: `review(path, include_skills=false)` - analysis only, no skills/knowledge
87
+
88
+ ## CLI
89
+
90
+ ```bash
91
+ crucible init # Initialize .crucible/ for your project
92
+ crucible review # Review staged changes
93
+ crucible review --mode branch # Review current branch vs main
94
+ crucible ci generate # Generate GitHub Actions workflow
95
+
96
+ crucible skills list # List all skills
97
+ crucible skills init <skill> # Copy to .crucible/ for customization
98
+
99
+ crucible knowledge list # List all knowledge files
100
+ crucible knowledge init <file> # Copy for customization
101
+
102
+ crucible hooks install # Install pre-commit hook
103
+ ```
104
+
105
+ See [ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full flow.
106
+
107
+ ## Customization
108
+
109
+ Override skills and knowledge for your project or personal preferences:
110
+
111
+ ```bash
112
+ # Customize a skill for your project
113
+ crucible skills init security-engineer
114
+ # Creates .crucible/skills/security-engineer/SKILL.md
115
+
116
+ # Add project-specific concerns, team conventions, etc.
117
+ ```
118
+
119
+ Resolution order (first found wins):
120
+ 1. `.crucible/` — Project overrides
121
+ 2. `~/.claude/crucible/` — User preferences
122
+ 3. Bundled — Package defaults
123
+
124
+ See [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) for the full guide.
125
+
126
+ ## What's Included
127
+
128
+ **18 Personas** — Domain-specific thinking: security, performance, accessibility, web3, backend, and more.
129
+
130
+ See [SKILLS.md](docs/SKILLS.md) for the full list.
131
+
132
+ **12 Knowledge Files** — Coding patterns and principles for security, testing, APIs, databases, smart contracts, etc.
133
+
134
+ See [KNOWLEDGE.md](docs/KNOWLEDGE.md) for topics covered.
135
+
136
+ ## Documentation
137
+
138
+ | Doc | What's In It |
139
+ |-----|--------------|
140
+ | [FEATURES.md](docs/FEATURES.md) | Complete feature reference |
141
+ | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | How MCP, tools, skills, and knowledge fit together |
142
+ | [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) | Override skills and knowledge for your project |
143
+ | [SKILLS.md](docs/SKILLS.md) | All 18 personas with triggers and focus areas |
144
+ | [KNOWLEDGE.md](docs/KNOWLEDGE.md) | All 12 knowledge files with topics covered |
145
+ | [CONTRIBUTING.md](docs/CONTRIBUTING.md) | Adding tools, skills, and knowledge |
146
+
147
+ ## Development
148
+
149
+ ```bash
150
+ pip install -e ".[dev]"
151
+ pytest # Run tests (509 tests)
152
+ ruff check src/ --fix # Lint
153
+ ```
@@ -0,0 +1,136 @@
1
+ # Crucible
2
+
3
+ Load your coding patterns into Claude Code.
4
+
5
+ ```
6
+ ├── Personas: Domain-specific thinking (how to approach problems)
7
+ ├── Knowledge: Coding patterns and principles (what to apply)
8
+ ├── Cascade: Project → User → Bundled (customizable at every level)
9
+ └── Context-aware: Loads relevant skills based on what you're working on
10
+ ```
11
+
12
+ **Personas for domains. Knowledge for patterns. All customizable.**
13
+
14
+ > Not affiliated with Atlassian's Crucible.
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ pip install crucible-mcp
20
+ ```
21
+
22
+ Add to Claude Code (`.mcp.json`):
23
+
24
+ ```json
25
+ {
26
+ "mcpServers": {
27
+ "crucible": {
28
+ "command": "crucible-mcp"
29
+ }
30
+ }
31
+ }
32
+ ```
33
+
34
+ With hot reload (recommended for customization):
35
+
36
+ ```json
37
+ {
38
+ "mcpServers": {
39
+ "crucible": {
40
+ "command": "mcpmon",
41
+ "args": ["--watch", "~/.crucible/", "--", "crucible-mcp"]
42
+ }
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## How It Works
48
+
49
+ ```
50
+ Code → Detect Domain → Load Personas + Knowledge → Claude with YOUR patterns
51
+
52
+ .sol file → web3 domain → security-engineer + SMART_CONTRACT.md → Knows your security rules
53
+ ```
54
+
55
+ ## MCP Tools
56
+
57
+ | Tool | Purpose |
58
+ |------|---------|
59
+ | `review(path)` | Full review: analysis + skills + knowledge |
60
+ | `review(mode='staged')` | Review git changes with skills + knowledge |
61
+ | `load_knowledge(files)` | Load specific knowledge files |
62
+ | `get_principles(topic)` | Load engineering knowledge by topic |
63
+ | `delegate_*` | Direct tool access (semgrep, ruff, slither, bandit) |
64
+ | `check_tools()` | Show installed analysis tools |
65
+
66
+ The unified `review` tool supports:
67
+ - **Path-based**: `review(path="src/")` - analyze files/directories
68
+ - **Git-aware**: `review(mode="staged")` - analyze changes (staged, unstaged, branch, commits)
69
+ - **Quick mode**: `review(path, include_skills=false)` - analysis only, no skills/knowledge
70
+
71
+ ## CLI
72
+
73
+ ```bash
74
+ crucible init # Initialize .crucible/ for your project
75
+ crucible review # Review staged changes
76
+ crucible review --mode branch # Review current branch vs main
77
+ crucible ci generate # Generate GitHub Actions workflow
78
+
79
+ crucible skills list # List all skills
80
+ crucible skills init <skill> # Copy to .crucible/ for customization
81
+
82
+ crucible knowledge list # List all knowledge files
83
+ crucible knowledge init <file> # Copy for customization
84
+
85
+ crucible hooks install # Install pre-commit hook
86
+ ```
87
+
88
+ See [ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full flow.
89
+
90
+ ## Customization
91
+
92
+ Override skills and knowledge for your project or personal preferences:
93
+
94
+ ```bash
95
+ # Customize a skill for your project
96
+ crucible skills init security-engineer
97
+ # Creates .crucible/skills/security-engineer/SKILL.md
98
+
99
+ # Add project-specific concerns, team conventions, etc.
100
+ ```
101
+
102
+ Resolution order (first found wins):
103
+ 1. `.crucible/` — Project overrides
104
+ 2. `~/.claude/crucible/` — User preferences
105
+ 3. Bundled — Package defaults
106
+
107
+ See [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) for the full guide.
108
+
109
+ ## What's Included
110
+
111
+ **18 Personas** — Domain-specific thinking: security, performance, accessibility, web3, backend, and more.
112
+
113
+ See [SKILLS.md](docs/SKILLS.md) for the full list.
114
+
115
+ **12 Knowledge Files** — Coding patterns and principles for security, testing, APIs, databases, smart contracts, etc.
116
+
117
+ See [KNOWLEDGE.md](docs/KNOWLEDGE.md) for topics covered.
118
+
119
+ ## Documentation
120
+
121
+ | Doc | What's In It |
122
+ |-----|--------------|
123
+ | [FEATURES.md](docs/FEATURES.md) | Complete feature reference |
124
+ | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | How MCP, tools, skills, and knowledge fit together |
125
+ | [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) | Override skills and knowledge for your project |
126
+ | [SKILLS.md](docs/SKILLS.md) | All 18 personas with triggers and focus areas |
127
+ | [KNOWLEDGE.md](docs/KNOWLEDGE.md) | All 12 knowledge files with topics covered |
128
+ | [CONTRIBUTING.md](docs/CONTRIBUTING.md) | Adding tools, skills, and knowledge |
129
+
130
+ ## Development
131
+
132
+ ```bash
133
+ pip install -e ".[dev]"
134
+ pytest # Run tests (509 tests)
135
+ ruff check src/ --fix # Lint
136
+ ```
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "crucible-mcp"
3
- version = "0.1.0"
3
+ version = "0.3.0"
4
4
  description = "Code review MCP server for Claude. Not affiliated with Atlassian."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -49,3 +49,4 @@ warn_unused_ignores = true
49
49
  [tool.pytest.ini_options]
50
50
  asyncio_mode = "auto"
51
51
  testpaths = ["tests"]
52
+ markers = ["integration: marks tests as integration tests (deselect with '-m \"not integration\"')"]