crucible-mcp 0.2.0__py3-none-any.whl → 0.4.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crucible-mcp
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Code review MCP server for Claude. Not affiliated with Atlassian.
5
5
  Author: be.nvy
6
6
  License-Expression: MIT
@@ -17,7 +17,9 @@ Requires-Dist: ruff>=0.3; extra == "dev"
17
17
 
18
18
  # Crucible
19
19
 
20
- Load your coding patterns into Claude Code.
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.
21
23
 
22
24
  ```
23
25
  ├── Personas: Domain-specific thinking (how to approach problems)
@@ -26,7 +28,12 @@ Load your coding patterns into Claude Code.
26
28
  └── Context-aware: Loads relevant skills based on what you're working on
27
29
  ```
28
30
 
29
- **Personas for domains. Knowledge for patterns. All customizable.**
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
30
37
 
31
38
  > Not affiliated with Atlassian's Crucible.
32
39
 
@@ -73,20 +80,33 @@ Code → Detect Domain → Load Personas + Knowledge → Claude with YOUR patter
73
80
 
74
81
  | Tool | Purpose |
75
82
  |------|---------|
76
- | `quick_review(path)` | Run analysis, return findings + domains |
77
- | `get_principles(topic)` | Load engineering knowledge |
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 |
78
87
  | `delegate_*` | Direct tool access (semgrep, ruff, slither, bandit) |
79
88
  | `check_tools()` | Show installed analysis tools |
80
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
+
81
95
  ## CLI
82
96
 
83
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
+
84
103
  crucible skills list # List all skills
85
- crucible skills show <skill> # Show which version is active
86
104
  crucible skills init <skill> # Copy to .crucible/ for customization
87
105
 
88
106
  crucible knowledge list # List all knowledge files
89
107
  crucible knowledge init <file> # Copy for customization
108
+
109
+ crucible hooks install # Install pre-commit hook
90
110
  ```
91
111
 
92
112
  See [ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full flow.
@@ -135,6 +155,6 @@ See [KNOWLEDGE.md](docs/KNOWLEDGE.md) for topics covered.
135
155
 
136
156
  ```bash
137
157
  pip install -e ".[dev]"
138
- pytest # Run tests (494 tests)
158
+ pytest # Run tests (509 tests)
139
159
  ruff check src/ --fix # Lint
140
160
  ```
@@ -1,22 +1,28 @@
1
- crucible/__init__.py,sha256=ZLZQWKmjTHaeeDijcOl3xmaEgoI2W3a8FCFwcieZGv0,77
2
- crucible/cli.py,sha256=eCOHbV1jn9SdjtRVB8-PnHah0e-mkrxSOFjMYpMTUCY,51651
1
+ crucible/__init__.py,sha256=M4v_CsJVOdiAAPgmd54mxkkbnes8e5ifMznDuOJhzzY,77
2
+ crucible/cli.py,sha256=8rmzsh92h1kFSCFBGfd50pKWTdd7r2c3W_klk9c5JnY,60527
3
3
  crucible/errors.py,sha256=HrX_yvJEhXJoKodXGo_iY9wqx2J3ONYy0a_LbrVC5As,819
4
4
  crucible/models.py,sha256=jaxbiPc1E7bJxKPLadZe1dbSJdq-WINsxjveeSNNqeg,2066
5
- crucible/server.py,sha256=GnT_wT9QJE5gAQYmYzSIuaj5hG2hKfOrHHK104tPtqA,34493
5
+ crucible/server.py,sha256=rzSi1sfuu1o5CpjMUgxFjJB6zjra9-M9WFmmelmORWA,43817
6
6
  crucible/domain/__init__.py,sha256=2fsoB5wH2Pl3vtGRt4voYOSZ04-zLoW8pNq6nvzVMgU,118
7
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
8
12
  crucible/hooks/__init__.py,sha256=k5oEWhTJKEQi-QWBfTbp1p6HaKg55_wVCBVD5pZzdqw,271
9
13
  crucible/hooks/precommit.py,sha256=OAwvjEACopcrTmWmZMO0S8TqZkvFY_392pJBFCHGSaQ,21561
10
14
  crucible/knowledge/__init__.py,sha256=unb7kyO1MtB3Zt-TGx_O8LE79KyrGrNHoFFHgUWUvGU,40
11
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
12
18
  crucible/skills/__init__.py,sha256=L3heXWF0T3aR9yYLFphs1LNlkxAFSPkPuRFMH-S1taI,495
13
19
  crucible/skills/loader.py,sha256=iC0_V1s6CIse5NXyFGtpLbON8xDxYh8xXmHH7hAX5O0,8642
14
20
  crucible/synthesis/__init__.py,sha256=CYrkZG4bdAjp8XdOh1smfKscd3YU5lZlaDLGwLE9c-0,46
15
21
  crucible/tools/__init__.py,sha256=gFRThTk1E-fHzpe8bB5rtBG6Z6G-ysPzjVEHfKGbEYU,400
16
22
  crucible/tools/delegation.py,sha256=_x1y76No3qkmGjjROVvMx1pSKKwU59aRu5R-r07lVFU,12871
17
23
  crucible/tools/git.py,sha256=EmxRUt0jSFLa_mm_2Czt5rHdiFC0YK9IpaPDfRwlXVo,10051
18
- crucible_mcp-0.2.0.dist-info/METADATA,sha256=Jcnnfw7AxZ-vtqNNOCR9j43MaRxzvXn6oW05nR1wccI,3890
19
- crucible_mcp-0.2.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
20
- crucible_mcp-0.2.0.dist-info/entry_points.txt,sha256=18BZaH1OlFSFYtKuHq0Z8yYX8Wmx7Ikfqay-P00ZX3Q,83
21
- crucible_mcp-0.2.0.dist-info/top_level.txt,sha256=4hzuFgqbFPOO-WiU_DYxTm8VYIxTXh7Wlp0gRcWR0Cs,9
22
- crucible_mcp-0.2.0.dist-info/RECORD,,
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,,