crucible-mcp 0.4.0__py3-none-any.whl → 1.0.0__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.
- crucible/cli.py +532 -12
- crucible/enforcement/budget.py +179 -0
- crucible/enforcement/bundled/error-handling.yaml +84 -0
- crucible/enforcement/bundled/security.yaml +123 -0
- crucible/enforcement/bundled/smart-contract.yaml +110 -0
- crucible/enforcement/compliance.py +486 -0
- crucible/enforcement/models.py +71 -1
- crucible/hooks/claudecode.py +388 -0
- crucible/hooks/precommit.py +117 -25
- crucible/knowledge/loader.py +186 -0
- crucible/knowledge/principles/API_DESIGN.md +176 -0
- crucible/knowledge/principles/COMMITS.md +127 -0
- crucible/knowledge/principles/DATABASE.md +138 -0
- crucible/knowledge/principles/DOCUMENTATION.md +201 -0
- crucible/knowledge/principles/ERROR_HANDLING.md +157 -0
- crucible/knowledge/principles/FP.md +162 -0
- crucible/knowledge/principles/GITIGNORE.md +218 -0
- crucible/knowledge/principles/OBSERVABILITY.md +147 -0
- crucible/knowledge/principles/PRECOMMIT.md +201 -0
- crucible/knowledge/principles/SECURITY.md +136 -0
- crucible/knowledge/principles/SMART_CONTRACT.md +153 -0
- crucible/knowledge/principles/SYSTEM_DESIGN.md +153 -0
- crucible/knowledge/principles/TESTING.md +129 -0
- crucible/knowledge/principles/TYPE_SAFETY.md +170 -0
- crucible/review/core.py +78 -7
- crucible/server.py +81 -14
- crucible/skills/accessibility-engineer/SKILL.md +71 -0
- crucible/skills/backend-engineer/SKILL.md +69 -0
- crucible/skills/customer-success/SKILL.md +69 -0
- crucible/skills/data-engineer/SKILL.md +70 -0
- crucible/skills/devops-engineer/SKILL.md +69 -0
- crucible/skills/fde-engineer/SKILL.md +69 -0
- crucible/skills/formal-verification/SKILL.md +86 -0
- crucible/skills/gas-optimizer/SKILL.md +89 -0
- crucible/skills/incident-responder/SKILL.md +91 -0
- crucible/skills/mev-researcher/SKILL.md +87 -0
- crucible/skills/mobile-engineer/SKILL.md +70 -0
- crucible/skills/performance-engineer/SKILL.md +68 -0
- crucible/skills/product-engineer/SKILL.md +68 -0
- crucible/skills/protocol-architect/SKILL.md +83 -0
- crucible/skills/security-engineer/SKILL.md +63 -0
- crucible/skills/tech-lead/SKILL.md +92 -0
- crucible/skills/uiux-engineer/SKILL.md +70 -0
- crucible/skills/web3-engineer/SKILL.md +79 -0
- crucible/tools/git.py +17 -4
- crucible_mcp-1.0.0.dist-info/METADATA +198 -0
- crucible_mcp-1.0.0.dist-info/RECORD +66 -0
- crucible_mcp-0.4.0.dist-info/METADATA +0 -160
- crucible_mcp-0.4.0.dist-info/RECORD +0 -28
- {crucible_mcp-0.4.0.dist-info → crucible_mcp-1.0.0.dist-info}/WHEEL +0 -0
- {crucible_mcp-0.4.0.dist-info → crucible_mcp-1.0.0.dist-info}/entry_points.txt +0 -0
- {crucible_mcp-0.4.0.dist-info → crucible_mcp-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: crucible-mcp
|
|
3
|
-
Version: 0.4.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
|
-
**Your team's standards, applied by Claude, every time.**
|
|
21
|
-
|
|
22
|
-
Claude without context applies generic best practices. Crucible loads *your* patterns—so Claude reviews code the way your team would, not the way the internet would.
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
├── Personas: Domain-specific thinking (how to approach problems)
|
|
26
|
-
├── Knowledge: Coding patterns and principles (what to apply)
|
|
27
|
-
├── Cascade: Project → User → Bundled (customizable at every level)
|
|
28
|
-
└── Context-aware: Loads relevant skills based on what you're working on
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Why Crucible?**
|
|
32
|
-
- **Consistency** — Same checklist every time, for every engineer, every session
|
|
33
|
-
- **Automation** — Runs in CI and pre-commit, not just interactively
|
|
34
|
-
- **Institutional knowledge** — Your senior engineer's mental checklist, in the repo
|
|
35
|
-
- **Your context** — Security fundamentals plus *your* auth patterns, *your* conventions, *your* definition of "done"
|
|
36
|
-
- **Cost efficiency** — Filter with free tools first, LLM only on what needs judgment
|
|
37
|
-
|
|
38
|
-
> Not affiliated with Atlassian's Crucible.
|
|
39
|
-
|
|
40
|
-
## Install
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
pip install crucible-mcp
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Add to Claude Code (`.mcp.json`):
|
|
47
|
-
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"mcpServers": {
|
|
51
|
-
"crucible": {
|
|
52
|
-
"command": "crucible-mcp"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
With hot reload (recommended for customization):
|
|
59
|
-
|
|
60
|
-
```json
|
|
61
|
-
{
|
|
62
|
-
"mcpServers": {
|
|
63
|
-
"crucible": {
|
|
64
|
-
"command": "mcpmon",
|
|
65
|
-
"args": ["--watch", "~/.crucible/", "--", "crucible-mcp"]
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## How It Works
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
Code → Detect Domain → Load Personas + Knowledge → Claude with YOUR patterns
|
|
75
|
-
|
|
76
|
-
.sol file → web3 domain → security-engineer + SMART_CONTRACT.md → Knows your security rules
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## MCP Tools
|
|
80
|
-
|
|
81
|
-
| Tool | Purpose |
|
|
82
|
-
|------|---------|
|
|
83
|
-
| `review(path)` | Full review: analysis + skills + knowledge |
|
|
84
|
-
| `review(mode='staged')` | Review git changes with skills + knowledge |
|
|
85
|
-
| `load_knowledge(files)` | Load specific knowledge files |
|
|
86
|
-
| `get_principles(topic)` | Load engineering knowledge by topic |
|
|
87
|
-
| `delegate_*` | Direct tool access (semgrep, ruff, slither, bandit) |
|
|
88
|
-
| `check_tools()` | Show installed analysis tools |
|
|
89
|
-
|
|
90
|
-
The unified `review` tool supports:
|
|
91
|
-
- **Path-based**: `review(path="src/")` - analyze files/directories
|
|
92
|
-
- **Git-aware**: `review(mode="staged")` - analyze changes (staged, unstaged, branch, commits)
|
|
93
|
-
- **Quick mode**: `review(path, include_skills=false)` - analysis only, no skills/knowledge
|
|
94
|
-
|
|
95
|
-
## CLI
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
crucible init # Initialize .crucible/ for your project
|
|
99
|
-
crucible review # Review staged changes
|
|
100
|
-
crucible review --mode branch # Review current branch vs main
|
|
101
|
-
crucible ci generate # Generate GitHub Actions workflow
|
|
102
|
-
|
|
103
|
-
crucible skills list # List all skills
|
|
104
|
-
crucible skills init <skill> # Copy to .crucible/ for customization
|
|
105
|
-
|
|
106
|
-
crucible knowledge list # List all knowledge files
|
|
107
|
-
crucible knowledge init <file> # Copy for customization
|
|
108
|
-
|
|
109
|
-
crucible hooks install # Install pre-commit hook
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
See [ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full flow.
|
|
113
|
-
|
|
114
|
-
## Customization
|
|
115
|
-
|
|
116
|
-
Override skills and knowledge for your project or personal preferences:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
# Customize a skill for your project
|
|
120
|
-
crucible skills init security-engineer
|
|
121
|
-
# Creates .crucible/skills/security-engineer/SKILL.md
|
|
122
|
-
|
|
123
|
-
# Add project-specific concerns, team conventions, etc.
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Resolution order (first found wins):
|
|
127
|
-
1. `.crucible/` — Project overrides
|
|
128
|
-
2. `~/.claude/crucible/` — User preferences
|
|
129
|
-
3. Bundled — Package defaults
|
|
130
|
-
|
|
131
|
-
See [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) for the full guide.
|
|
132
|
-
|
|
133
|
-
## What's Included
|
|
134
|
-
|
|
135
|
-
**18 Personas** — Domain-specific thinking: security, performance, accessibility, web3, backend, and more.
|
|
136
|
-
|
|
137
|
-
See [SKILLS.md](docs/SKILLS.md) for the full list.
|
|
138
|
-
|
|
139
|
-
**12 Knowledge Files** — Coding patterns and principles for security, testing, APIs, databases, smart contracts, etc.
|
|
140
|
-
|
|
141
|
-
See [KNOWLEDGE.md](docs/KNOWLEDGE.md) for topics covered.
|
|
142
|
-
|
|
143
|
-
## Documentation
|
|
144
|
-
|
|
145
|
-
| Doc | What's In It |
|
|
146
|
-
|-----|--------------|
|
|
147
|
-
| [FEATURES.md](docs/FEATURES.md) | Complete feature reference |
|
|
148
|
-
| [ARCHITECTURE.md](docs/ARCHITECTURE.md) | How MCP, tools, skills, and knowledge fit together |
|
|
149
|
-
| [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) | Override skills and knowledge for your project |
|
|
150
|
-
| [SKILLS.md](docs/SKILLS.md) | All 18 personas with triggers and focus areas |
|
|
151
|
-
| [KNOWLEDGE.md](docs/KNOWLEDGE.md) | All 12 knowledge files with topics covered |
|
|
152
|
-
| [CONTRIBUTING.md](docs/CONTRIBUTING.md) | Adding tools, skills, and knowledge |
|
|
153
|
-
|
|
154
|
-
## Development
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
pip install -e ".[dev]"
|
|
158
|
-
pytest # Run tests (509 tests)
|
|
159
|
-
ruff check src/ --fix # Lint
|
|
160
|
-
```
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
crucible/__init__.py,sha256=M4v_CsJVOdiAAPgmd54mxkkbnes8e5ifMznDuOJhzzY,77
|
|
2
|
-
crucible/cli.py,sha256=8rmzsh92h1kFSCFBGfd50pKWTdd7r2c3W_klk9c5JnY,60527
|
|
3
|
-
crucible/errors.py,sha256=HrX_yvJEhXJoKodXGo_iY9wqx2J3ONYy0a_LbrVC5As,819
|
|
4
|
-
crucible/models.py,sha256=jaxbiPc1E7bJxKPLadZe1dbSJdq-WINsxjveeSNNqeg,2066
|
|
5
|
-
crucible/server.py,sha256=rzSi1sfuu1o5CpjMUgxFjJB6zjra9-M9WFmmelmORWA,43817
|
|
6
|
-
crucible/domain/__init__.py,sha256=2fsoB5wH2Pl3vtGRt4voYOSZ04-zLoW8pNq6nvzVMgU,118
|
|
7
|
-
crucible/domain/detection.py,sha256=TNeLB_VQgS1AsT5BKDf_tIpGa47THrFoRXwU4u54VB0,1797
|
|
8
|
-
crucible/enforcement/__init__.py,sha256=FOaGSrE1SWFPxBJ1L5VoDhQDmlJgRXXs_iiI20wHf2Q,867
|
|
9
|
-
crucible/enforcement/assertions.py,sha256=ay5QvJIr_YaqWYbrJNhbouafJOiy4ZhwiX7E9VAY3s4,8166
|
|
10
|
-
crucible/enforcement/models.py,sha256=aIuxjqZfACpabT2lB1J3LKVzkcc1RTdbr7mAuBEAreU,2435
|
|
11
|
-
crucible/enforcement/patterns.py,sha256=hE4Z-JJ9OBruSFPBDxw_aNaSJbyUPD2SWCEwA1KzDmI,9720
|
|
12
|
-
crucible/hooks/__init__.py,sha256=k5oEWhTJKEQi-QWBfTbp1p6HaKg55_wVCBVD5pZzdqw,271
|
|
13
|
-
crucible/hooks/precommit.py,sha256=OAwvjEACopcrTmWmZMO0S8TqZkvFY_392pJBFCHGSaQ,21561
|
|
14
|
-
crucible/knowledge/__init__.py,sha256=unb7kyO1MtB3Zt-TGx_O8LE79KyrGrNHoFFHgUWUvGU,40
|
|
15
|
-
crucible/knowledge/loader.py,sha256=DD4gqU6xkssaWvEkbymMOu6YtHab7YLEk-tU9cPTeaE,6666
|
|
16
|
-
crucible/review/__init__.py,sha256=Ssva6Yaqcc44AqL9OUMjxypu5R1PPkrmLGk6OKtP15w,547
|
|
17
|
-
crucible/review/core.py,sha256=Yl7NFFrUtzwjonovhv6sP2fDoplosAjxLvi5vASx08o,12671
|
|
18
|
-
crucible/skills/__init__.py,sha256=L3heXWF0T3aR9yYLFphs1LNlkxAFSPkPuRFMH-S1taI,495
|
|
19
|
-
crucible/skills/loader.py,sha256=iC0_V1s6CIse5NXyFGtpLbON8xDxYh8xXmHH7hAX5O0,8642
|
|
20
|
-
crucible/synthesis/__init__.py,sha256=CYrkZG4bdAjp8XdOh1smfKscd3YU5lZlaDLGwLE9c-0,46
|
|
21
|
-
crucible/tools/__init__.py,sha256=gFRThTk1E-fHzpe8bB5rtBG6Z6G-ysPzjVEHfKGbEYU,400
|
|
22
|
-
crucible/tools/delegation.py,sha256=_x1y76No3qkmGjjROVvMx1pSKKwU59aRu5R-r07lVFU,12871
|
|
23
|
-
crucible/tools/git.py,sha256=EmxRUt0jSFLa_mm_2Czt5rHdiFC0YK9IpaPDfRwlXVo,10051
|
|
24
|
-
crucible_mcp-0.4.0.dist-info/METADATA,sha256=hmhKr9GR0M9x0qV-edCMibj8lFrgKb4Bgv-Kx-cJoSY,5168
|
|
25
|
-
crucible_mcp-0.4.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
26
|
-
crucible_mcp-0.4.0.dist-info/entry_points.txt,sha256=18BZaH1OlFSFYtKuHq0Z8yYX8Wmx7Ikfqay-P00ZX3Q,83
|
|
27
|
-
crucible_mcp-0.4.0.dist-info/top_level.txt,sha256=4hzuFgqbFPOO-WiU_DYxTm8VYIxTXh7Wlp0gRcWR0Cs,9
|
|
28
|
-
crucible_mcp-0.4.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|