crucible-mcp 0.3.0__tar.gz → 0.5.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.
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/PKG-INFO +11 -3
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/README.md +9 -2
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/pyproject.toml +2 -1
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/__init__.py +1 -1
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/cli.py +772 -172
- crucible_mcp-0.5.0/src/crucible/enforcement/__init__.py +40 -0
- crucible_mcp-0.5.0/src/crucible/enforcement/assertions.py +276 -0
- crucible_mcp-0.5.0/src/crucible/enforcement/budget.py +179 -0
- crucible_mcp-0.5.0/src/crucible/enforcement/compliance.py +486 -0
- crucible_mcp-0.5.0/src/crucible/enforcement/models.py +177 -0
- crucible_mcp-0.5.0/src/crucible/enforcement/patterns.py +337 -0
- crucible_mcp-0.5.0/src/crucible/review/__init__.py +23 -0
- crucible_mcp-0.5.0/src/crucible/review/core.py +454 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/server.py +171 -327
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/tools/git.py +17 -4
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible_mcp.egg-info/PKG-INFO +11 -3
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible_mcp.egg-info/SOURCES.txt +10 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible_mcp.egg-info/requires.txt +1 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_cli.py +21 -21
- crucible_mcp-0.5.0/tests/test_compliance.py +617 -0
- crucible_mcp-0.5.0/tests/test_enforcement.py +613 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_full_review.py +41 -41
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_git.py +27 -7
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_hooks_cli.py +1 -1
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_integration.py +4 -4
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_server.py +29 -25
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/setup.cfg +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/domain/__init__.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/domain/detection.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/errors.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/hooks/__init__.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/hooks/precommit.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/knowledge/__init__.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/knowledge/loader.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/models.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/skills/__init__.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/skills/loader.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/synthesis/__init__.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/tools/__init__.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible/tools/delegation.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible_mcp.egg-info/dependency_links.txt +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible_mcp.egg-info/entry_points.txt +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/src/crucible_mcp.egg-info/top_level.txt +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_detection.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_knowledge.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_precommit.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_skills.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_skills_loader.py +0 -0
- {crucible_mcp-0.3.0 → crucible_mcp-0.5.0}/tests/test_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crucible-mcp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Code review MCP server for Claude. Not affiliated with Atlassian.
|
|
5
5
|
Author: be.nvy
|
|
6
6
|
License-Expression: MIT
|
|
@@ -9,6 +9,7 @@ Requires-Python: >=3.11
|
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
Requires-Dist: mcp>=1.0.0
|
|
11
11
|
Requires-Dist: pyyaml>=6.0
|
|
12
|
+
Requires-Dist: anthropic>=0.40.0
|
|
12
13
|
Provides-Extra: dev
|
|
13
14
|
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
14
15
|
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
@@ -17,7 +18,9 @@ Requires-Dist: ruff>=0.3; extra == "dev"
|
|
|
17
18
|
|
|
18
19
|
# Crucible
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
**Your team's standards, applied by Claude, every time.**
|
|
22
|
+
|
|
23
|
+
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
24
|
|
|
22
25
|
```
|
|
23
26
|
├── Personas: Domain-specific thinking (how to approach problems)
|
|
@@ -26,7 +29,12 @@ Load your coding patterns into Claude Code.
|
|
|
26
29
|
└── Context-aware: Loads relevant skills based on what you're working on
|
|
27
30
|
```
|
|
28
31
|
|
|
29
|
-
**
|
|
32
|
+
**Why Crucible?**
|
|
33
|
+
- **Consistency** — Same checklist every time, for every engineer, every session
|
|
34
|
+
- **Automation** — Runs in CI and pre-commit, not just interactively
|
|
35
|
+
- **Institutional knowledge** — Your senior engineer's mental checklist, in the repo
|
|
36
|
+
- **Your context** — Security fundamentals plus *your* auth patterns, *your* conventions, *your* definition of "done"
|
|
37
|
+
- **Cost efficiency** — Filter with free tools first, LLM only on what needs judgment
|
|
30
38
|
|
|
31
39
|
> Not affiliated with Atlassian's Crucible.
|
|
32
40
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Crucible
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Your team's standards, applied by Claude, every time.**
|
|
4
|
+
|
|
5
|
+
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.
|
|
4
6
|
|
|
5
7
|
```
|
|
6
8
|
├── Personas: Domain-specific thinking (how to approach problems)
|
|
@@ -9,7 +11,12 @@ Load your coding patterns into Claude Code.
|
|
|
9
11
|
└── Context-aware: Loads relevant skills based on what you're working on
|
|
10
12
|
```
|
|
11
13
|
|
|
12
|
-
**
|
|
14
|
+
**Why Crucible?**
|
|
15
|
+
- **Consistency** — Same checklist every time, for every engineer, every session
|
|
16
|
+
- **Automation** — Runs in CI and pre-commit, not just interactively
|
|
17
|
+
- **Institutional knowledge** — Your senior engineer's mental checklist, in the repo
|
|
18
|
+
- **Your context** — Security fundamentals plus *your* auth patterns, *your* conventions, *your* definition of "done"
|
|
19
|
+
- **Cost efficiency** — Filter with free tools first, LLM only on what needs judgment
|
|
13
20
|
|
|
14
21
|
> Not affiliated with Atlassian's Crucible.
|
|
15
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "crucible-mcp"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.5.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"
|
|
@@ -11,6 +11,7 @@ keywords = ["mcp", "code-review", "static-analysis", "claude"]
|
|
|
11
11
|
dependencies = [
|
|
12
12
|
"mcp>=1.0.0",
|
|
13
13
|
"pyyaml>=6.0",
|
|
14
|
+
"anthropic>=0.40.0",
|
|
14
15
|
]
|
|
15
16
|
|
|
16
17
|
[project.optional-dependencies]
|