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.
Files changed (52) hide show
  1. crucible/cli.py +532 -12
  2. crucible/enforcement/budget.py +179 -0
  3. crucible/enforcement/bundled/error-handling.yaml +84 -0
  4. crucible/enforcement/bundled/security.yaml +123 -0
  5. crucible/enforcement/bundled/smart-contract.yaml +110 -0
  6. crucible/enforcement/compliance.py +486 -0
  7. crucible/enforcement/models.py +71 -1
  8. crucible/hooks/claudecode.py +388 -0
  9. crucible/hooks/precommit.py +117 -25
  10. crucible/knowledge/loader.py +186 -0
  11. crucible/knowledge/principles/API_DESIGN.md +176 -0
  12. crucible/knowledge/principles/COMMITS.md +127 -0
  13. crucible/knowledge/principles/DATABASE.md +138 -0
  14. crucible/knowledge/principles/DOCUMENTATION.md +201 -0
  15. crucible/knowledge/principles/ERROR_HANDLING.md +157 -0
  16. crucible/knowledge/principles/FP.md +162 -0
  17. crucible/knowledge/principles/GITIGNORE.md +218 -0
  18. crucible/knowledge/principles/OBSERVABILITY.md +147 -0
  19. crucible/knowledge/principles/PRECOMMIT.md +201 -0
  20. crucible/knowledge/principles/SECURITY.md +136 -0
  21. crucible/knowledge/principles/SMART_CONTRACT.md +153 -0
  22. crucible/knowledge/principles/SYSTEM_DESIGN.md +153 -0
  23. crucible/knowledge/principles/TESTING.md +129 -0
  24. crucible/knowledge/principles/TYPE_SAFETY.md +170 -0
  25. crucible/review/core.py +78 -7
  26. crucible/server.py +81 -14
  27. crucible/skills/accessibility-engineer/SKILL.md +71 -0
  28. crucible/skills/backend-engineer/SKILL.md +69 -0
  29. crucible/skills/customer-success/SKILL.md +69 -0
  30. crucible/skills/data-engineer/SKILL.md +70 -0
  31. crucible/skills/devops-engineer/SKILL.md +69 -0
  32. crucible/skills/fde-engineer/SKILL.md +69 -0
  33. crucible/skills/formal-verification/SKILL.md +86 -0
  34. crucible/skills/gas-optimizer/SKILL.md +89 -0
  35. crucible/skills/incident-responder/SKILL.md +91 -0
  36. crucible/skills/mev-researcher/SKILL.md +87 -0
  37. crucible/skills/mobile-engineer/SKILL.md +70 -0
  38. crucible/skills/performance-engineer/SKILL.md +68 -0
  39. crucible/skills/product-engineer/SKILL.md +68 -0
  40. crucible/skills/protocol-architect/SKILL.md +83 -0
  41. crucible/skills/security-engineer/SKILL.md +63 -0
  42. crucible/skills/tech-lead/SKILL.md +92 -0
  43. crucible/skills/uiux-engineer/SKILL.md +70 -0
  44. crucible/skills/web3-engineer/SKILL.md +79 -0
  45. crucible/tools/git.py +17 -4
  46. crucible_mcp-1.0.0.dist-info/METADATA +198 -0
  47. crucible_mcp-1.0.0.dist-info/RECORD +66 -0
  48. crucible_mcp-0.4.0.dist-info/METADATA +0 -160
  49. crucible_mcp-0.4.0.dist-info/RECORD +0 -28
  50. {crucible_mcp-0.4.0.dist-info → crucible_mcp-1.0.0.dist-info}/WHEEL +0 -0
  51. {crucible_mcp-0.4.0.dist-info → crucible_mcp-1.0.0.dist-info}/entry_points.txt +0 -0
  52. {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,,