tribunal 1.2.2__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.
- tribunal-1.2.2/LICENSE +21 -0
- tribunal-1.2.2/PKG-INFO +423 -0
- tribunal-1.2.2/README.md +395 -0
- tribunal-1.2.2/installer/__init__.py +4 -0
- tribunal-1.2.2/installer/__main__.py +6 -0
- tribunal-1.2.2/installer/cli.py +323 -0
- tribunal-1.2.2/installer/config.py +55 -0
- tribunal-1.2.2/installer/context.py +33 -0
- tribunal-1.2.2/installer/downloads.py +364 -0
- tribunal-1.2.2/installer/errors.py +32 -0
- tribunal-1.2.2/installer/platform_utils.py +83 -0
- tribunal-1.2.2/installer/steps/__init__.py +23 -0
- tribunal-1.2.2/installer/steps/base.py +42 -0
- tribunal-1.2.2/installer/steps/claude_file_helpers.py +205 -0
- tribunal-1.2.2/installer/steps/claude_files.py +389 -0
- tribunal-1.2.2/installer/steps/config_files.py +31 -0
- tribunal-1.2.2/installer/steps/dependencies.py +276 -0
- tribunal-1.2.2/installer/steps/deps_claude.py +201 -0
- tribunal-1.2.2/installer/steps/deps_npm.py +174 -0
- tribunal-1.2.2/installer/steps/deps_playwright.py +111 -0
- tribunal-1.2.2/installer/steps/deps_ui.py +79 -0
- tribunal-1.2.2/installer/steps/deps_utils.py +28 -0
- tribunal-1.2.2/installer/steps/deps_vexor.py +141 -0
- tribunal-1.2.2/installer/steps/finalize.py +155 -0
- tribunal-1.2.2/installer/steps/prerequisites.py +237 -0
- tribunal-1.2.2/installer/steps/project_init.py +60 -0
- tribunal-1.2.2/installer/steps/shell_config.py +157 -0
- tribunal-1.2.2/installer/steps/vscode_extensions.py +134 -0
- tribunal-1.2.2/installer/tests/__init__.py +0 -0
- tribunal-1.2.2/installer/tests/conftest.py +3 -0
- tribunal-1.2.2/installer/tests/unit/__init__.py +0 -0
- tribunal-1.2.2/installer/tests/unit/steps/__init__.py +0 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_claude_files.py +913 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_config_files.py +14 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_dependencies.py +867 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_dependencies_playwright.py +254 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_finalize.py +116 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_prerequisites.py +346 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_project_init.py +136 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_shell_config.py +180 -0
- tribunal-1.2.2/installer/tests/unit/steps/test_vscode_extensions.py +100 -0
- tribunal-1.2.2/installer/tests/unit/test_base.py +72 -0
- tribunal-1.2.2/installer/tests/unit/test_cli.py +234 -0
- tribunal-1.2.2/installer/tests/unit/test_cli_wrapper.py +83 -0
- tribunal-1.2.2/installer/tests/unit/test_config.py +67 -0
- tribunal-1.2.2/installer/tests/unit/test_context.py +90 -0
- tribunal-1.2.2/installer/tests/unit/test_downloads.py +375 -0
- tribunal-1.2.2/installer/tests/unit/test_errors.py +28 -0
- tribunal-1.2.2/installer/tests/unit/test_install_sh.py +235 -0
- tribunal-1.2.2/installer/tests/unit/test_platform_utils.py +86 -0
- tribunal-1.2.2/installer/tests/unit/test_ui.py +73 -0
- tribunal-1.2.2/installer/ui.py +324 -0
- tribunal-1.2.2/launcher/__init__.py +3 -0
- tribunal-1.2.2/launcher/__main__.py +5 -0
- tribunal-1.2.2/launcher/access.py +440 -0
- tribunal-1.2.2/launcher/access_policy.py +142 -0
- tribunal-1.2.2/launcher/banner.py +54 -0
- tribunal-1.2.2/launcher/build.py +297 -0
- tribunal-1.2.2/launcher/bundle.py +140 -0
- tribunal-1.2.2/launcher/cli.py +675 -0
- tribunal-1.2.2/launcher/config.py +207 -0
- tribunal-1.2.2/launcher/context.py +184 -0
- tribunal-1.2.2/launcher/repair.py +70 -0
- tribunal-1.2.2/launcher/session.py +137 -0
- tribunal-1.2.2/launcher/skills/__init__.py +49 -0
- tribunal-1.2.2/launcher/skills/_project_detector.py +250 -0
- tribunal-1.2.2/launcher/skills/_scanner.py +103 -0
- tribunal-1.2.2/launcher/skills/_templates.py +125 -0
- tribunal-1.2.2/launcher/skills/analyze_cmd.py +66 -0
- tribunal-1.2.2/launcher/skills/create_cmd.py +42 -0
- tribunal-1.2.2/launcher/skills/doctor_cmd.py +74 -0
- tribunal-1.2.2/launcher/skills/init_cmd.py +53 -0
- tribunal-1.2.2/launcher/skills/list_cmd.py +49 -0
- tribunal-1.2.2/launcher/skills/show_cmd.py +37 -0
- tribunal-1.2.2/launcher/statusline/__init__.py +10 -0
- tribunal-1.2.2/launcher/statusline/__main__.py +16 -0
- tribunal-1.2.2/launcher/statusline/formatter.py +52 -0
- tribunal-1.2.2/launcher/statusline/providers.py +109 -0
- tribunal-1.2.2/launcher/statusline/widgets.py +66 -0
- tribunal-1.2.2/launcher/tests/__init__.py +1 -0
- tribunal-1.2.2/launcher/tests/conftest.py +3 -0
- tribunal-1.2.2/launcher/tests/unit/__init__.py +1 -0
- tribunal-1.2.2/launcher/tests/unit/skills/__init__.py +3 -0
- tribunal-1.2.2/launcher/tests/unit/skills/test_cli.py +100 -0
- tribunal-1.2.2/launcher/tests/unit/skills/test_create_cmd.py +60 -0
- tribunal-1.2.2/launcher/tests/unit/skills/test_detector.py +137 -0
- tribunal-1.2.2/launcher/tests/unit/skills/test_doctor.py +94 -0
- tribunal-1.2.2/launcher/tests/unit/skills/test_init_cmd.py +72 -0
- tribunal-1.2.2/launcher/tests/unit/skills/test_scanner.py +119 -0
- tribunal-1.2.2/launcher/tests/unit/skills/test_templates.py +80 -0
- tribunal-1.2.2/launcher/tests/unit/test_access.py +473 -0
- tribunal-1.2.2/launcher/tests/unit/test_banner.py +74 -0
- tribunal-1.2.2/launcher/tests/unit/test_cli.py +383 -0
- tribunal-1.2.2/launcher/tests/unit/test_config.py +253 -0
- tribunal-1.2.2/launcher/tests/unit/test_context.py +184 -0
- tribunal-1.2.2/launcher/tests/unit/test_model.py +255 -0
- tribunal-1.2.2/launcher/tests/unit/test_repair.py +155 -0
- tribunal-1.2.2/launcher/tests/unit/test_session.py +210 -0
- tribunal-1.2.2/launcher/tests/unit/test_statusline_stdin.py +126 -0
- tribunal-1.2.2/launcher/tests/unit/test_statusline_widgets.py +323 -0
- tribunal-1.2.2/launcher/tests/unit/test_uninstall.py +205 -0
- tribunal-1.2.2/launcher/tests/unit/test_updater.py +225 -0
- tribunal-1.2.2/launcher/tests/unit/test_worktree.py +470 -0
- tribunal-1.2.2/launcher/tests/unit/test_wrapper.py +712 -0
- tribunal-1.2.2/launcher/uninstall.py +211 -0
- tribunal-1.2.2/launcher/updater.py +130 -0
- tribunal-1.2.2/launcher/wizard.py +215 -0
- tribunal-1.2.2/launcher/worktree.py +365 -0
- tribunal-1.2.2/launcher/wrapper.py +285 -0
- tribunal-1.2.2/pyproject.toml +132 -0
- tribunal-1.2.2/setup.cfg +4 -0
- tribunal-1.2.2/tribunal.egg-info/PKG-INFO +423 -0
- tribunal-1.2.2/tribunal.egg-info/SOURCES.txt +115 -0
- tribunal-1.2.2/tribunal.egg-info/dependency_links.txt +1 -0
- tribunal-1.2.2/tribunal.egg-info/entry_points.txt +2 -0
- tribunal-1.2.2/tribunal.egg-info/requires.txt +9 -0
- tribunal-1.2.2/tribunal.egg-info/top_level.txt +2 -0
tribunal-1.2.2/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 thebotclub (https://thebotclub.ai)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
tribunal-1.2.2/PKG-INFO
ADDED
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tribunal
|
|
3
|
+
Version: 1.2.2
|
|
4
|
+
Summary: Tribunal — Enterprise-grade Claude Code enhancement layer. TDD enforcement, quality gates, and a shared vault of rules, agents, and hooks.
|
|
5
|
+
Author-email: thebotclub <info@thebotclub.ai>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/thebotclub/tribunal
|
|
8
|
+
Project-URL: Repository, https://github.com/thebotclub/tribunal
|
|
9
|
+
Project-URL: Bug Tracker, https://github.com/thebotclub/tribunal/issues
|
|
10
|
+
Keywords: claude-code,tdd,quality-gates,ai-coding,tribunal
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Requires-Python: >=3.12
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: rich>=14.0.0
|
|
20
|
+
Requires-Dist: setuptools>=61.0
|
|
21
|
+
Provides-Extra: dev
|
|
22
|
+
Requires-Dist: ruff>=0.12.3; extra == "dev"
|
|
23
|
+
Requires-Dist: basedpyright>=1.32.1; extra == "dev"
|
|
24
|
+
Requires-Dist: pytest>=8.3.3; extra == "dev"
|
|
25
|
+
Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
|
|
26
|
+
Requires-Dist: pytest-asyncio>=0.24.0; extra == "dev"
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
<div align="center">
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
_____ __ _ _________ __ __ ______ __
|
|
33
|
+
/ ___// /__(_) / / __(_)__ / /___/ / / ____/___ ____/ /__
|
|
34
|
+
\__ \/ //_/ / / / /_/ / _ \/ / __ / / / / __ \/ __ / _ \
|
|
35
|
+
___/ / ,< / / / / __/ / __/ / /_/ / / /___/ /_/ / /_/ / __/
|
|
36
|
+
/____/_/|_/_/_/_/_/ /_/\___/_/\__,_/ \____/\____/\__,_/\___/
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Claude Code is powerful. Tribunal makes it reliable.
|
|
40
|
+
|
|
41
|
+
Start a task, grab a coffee, come back to production-grade code.</br>
|
|
42
|
+
**Tests enforced. Context preserved. Quality automated.**
|
|
43
|
+
|
|
44
|
+
[Website](https://thebotclub.ai) · [License](LICENSE)
|
|
45
|
+
|
|
46
|
+
<br>
|
|
47
|
+
|
|
48
|
+
<p align="center">
|
|
49
|
+
<img src="demo.gif" alt="Tribunal Demo" width="800">
|
|
50
|
+
</p>
|
|
51
|
+
|
|
52
|
+
<br>
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# macOS / Linux (recommended)
|
|
56
|
+
brew tap koshaji/tribunal https://github.com/koshaji/tribunal
|
|
57
|
+
brew install tribunal
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Or via the universal installer:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
curl -fsSL https://raw.githubusercontent.com/koshaji/tribunal/main/install.sh | bash
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Works on macOS, Linux, and Windows (WSL2).**
|
|
67
|
+
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## Requirements
|
|
74
|
+
|
|
75
|
+
- **Node.js** (v18+) or **Bun** — required for the worker service hooks
|
|
76
|
+
- **Python** 3.12 — required for hook scripts
|
|
77
|
+
- **uv** — Python package runner used by hooks
|
|
78
|
+
|
|
79
|
+
## Who is this for?
|
|
80
|
+
|
|
81
|
+
- **Professional developers using Claude Code** who want reliable, production-grade output
|
|
82
|
+
- **Teams that need TDD enforcement, code review, and quality gates automated**
|
|
83
|
+
- **Anyone tired of context degradation** on long coding sessions
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Before & After
|
|
88
|
+
|
|
89
|
+
| Without Tribunal | With Tribunal |
|
|
90
|
+
| --------------------------- | --------------------------------------------------------------- |
|
|
91
|
+
| Writes code, skips tests | TDD enforced — RED, GREEN, REFACTOR on every change |
|
|
92
|
+
| No quality gates | Hooks auto-lint, format, and type-check on every file edit |
|
|
93
|
+
| Context degrades mid-task | Endless Mode preserves state across automatic session handoffs |
|
|
94
|
+
| Every session starts cold | Persistent memory carries knowledge between sessions |
|
|
95
|
+
| Hope it works | 4 verification sub-agents perform independent code review |
|
|
96
|
+
| No codebase understanding | Production-tested rules loaded into every session |
|
|
97
|
+
| One-size-fits-all advice | Coding standards activated conditionally by file type |
|
|
98
|
+
| Changes mixed into branch | Isolated worktrees — review and squash merge when verified |
|
|
99
|
+
| Manual tool wiring | 5 MCP servers + 3 language servers pre-configured |
|
|
100
|
+
| Requires constant oversight | Start a task, walk away, come back to verified results |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Why This Approach Works
|
|
105
|
+
|
|
106
|
+
Most AI coding frameworks add complexity — more agents, more scaffolding, more configuration — but the output quality doesn't scale with the machinery. Extra layers burn tokens, increase latency, and introduce new failure modes.
|
|
107
|
+
|
|
108
|
+
**Tribunal optimizes for output quality, not system complexity.** No learning curve, no project scaffolding, no state files to manage. Install it, run `tribunal`, and the quality guardrails are already active — hooks, TDD, type checking, formatting — enforced automatically on every edit.
|
|
109
|
+
|
|
110
|
+
The system stays fast because it stays focused. Quick mode is direct execution with zero overhead. `/spec` adds structured planning only when you need it. Both modes share the same quality hooks and hand off cleanly across sessions with Endless Mode.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Getting Started
|
|
115
|
+
|
|
116
|
+
### Prerequisites
|
|
117
|
+
|
|
118
|
+
An active Claude subscription is required.
|
|
119
|
+
|
|
120
|
+
### Install
|
|
121
|
+
|
|
122
|
+
#### Option 1 — Homebrew (macOS / Linux, recommended)
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
brew tap koshaji/tribunal https://github.com/koshaji/tribunal
|
|
126
|
+
brew install tribunal
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Then `cd` into your project folder and run `tribunal`.
|
|
130
|
+
|
|
131
|
+
#### Option 2 — Universal installer (macOS, Linux, WSL2)
|
|
132
|
+
|
|
133
|
+
`cd` into your project folder, then run:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
curl -fsSL https://raw.githubusercontent.com/koshaji/tribunal/main/install.sh | bash
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Choose **Local** (Homebrew-based, macOS/Linux/WSL2) or **Dev Container** (isolated, any OS).
|
|
140
|
+
|
|
141
|
+
To install a specific version (see [releases](https://github.com/koshaji/tribunal/releases)):
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
export VERSION=1.2.0
|
|
145
|
+
curl -fsSL https://raw.githubusercontent.com/koshaji/tribunal/main/install.sh | bash
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
<details>
|
|
149
|
+
<summary><b>What the installer does</b></summary>
|
|
150
|
+
|
|
151
|
+
8-step installer with progress tracking, rollback on failure, and idempotent re-runs:
|
|
152
|
+
|
|
153
|
+
1. **Prerequisites** — Checks Homebrew, Node.js, Python 3.12+, uv, git
|
|
154
|
+
2. **Dependencies** — Installs Vexor, playwright-cli, mcp-cli, Claude Code
|
|
155
|
+
3. **Shell integration** — Auto-configures bash, fish, zsh with `tribunal` alias
|
|
156
|
+
4. **Config & Claude files** — Sets up `.claude/` plugin, rules, commands, hooks, MCP servers
|
|
157
|
+
5. **VS Code extensions** — Installs recommended extensions for your stack
|
|
158
|
+
6. **Dev Container** — Auto-setup with all tools pre-configured
|
|
159
|
+
7. **Automated updater** — Checks for updates on launch with release notes and one-key upgrade
|
|
160
|
+
8. **Cross-platform** — macOS, Linux, Windows (WSL2)
|
|
161
|
+
|
|
162
|
+
</details>
|
|
163
|
+
|
|
164
|
+
### First Run
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
tribunal # Launch Tribunal
|
|
168
|
+
> /sync # Analyze your codebase, generate project-specific rules and skills
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**What to expect on first run:**
|
|
172
|
+
|
|
173
|
+
When you type `tribunal`, the CLI loads your config, starts the MCP server workers, and launches Claude Code with Tribunal's hooks and rules active. You'll see the Tribunal banner, then Claude is ready to chat.
|
|
174
|
+
|
|
175
|
+
**First thing to do: run `/sync`**
|
|
176
|
+
|
|
177
|
+
This analyzes your project and gets Tribunal ready for your stack:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
> /sync
|
|
181
|
+
🔍 Analyzing codebase: my-project/
|
|
182
|
+
- Languages: Python, TypeScript
|
|
183
|
+
- Frameworks: FastAPI, React
|
|
184
|
+
📦 Building semantic search index...
|
|
185
|
+
- Indexed: 342 files
|
|
186
|
+
📝 Generating project-specific rules...
|
|
187
|
+
- Rule: python-type-hints (activated for .py files)
|
|
188
|
+
- Rule: react-best-practices (activated for .tsx files)
|
|
189
|
+
✓ Ready to work
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Run `/sync` once after install, then again when your dependencies or architecture change.
|
|
193
|
+
|
|
194
|
+
→ See [docs/EXAMPLES.md](docs/EXAMPLES.md) for walkthroughs of common workflows.
|
|
195
|
+
|
|
196
|
+
### Team Vault (optional)
|
|
197
|
+
|
|
198
|
+
Share rules, commands, and skills across your team via a private Git repo:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
> /vault # Push/pull shared assets
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Two Modes
|
|
207
|
+
|
|
208
|
+
### Quick Mode — Direct execution
|
|
209
|
+
|
|
210
|
+
Just chat. No plan file, no approval gate. All quality hooks and TDD enforcement still apply.
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
tribunal
|
|
214
|
+
> Fix the null pointer bug in user.py
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### /spec — Spec-driven development
|
|
218
|
+
|
|
219
|
+
For complex features, refactoring, or anything you want to review before implementation:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
tribunal
|
|
223
|
+
> /spec "Add user authentication with OAuth and JWT tokens"
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
Plan → Approve → Implement → Verify → Done
|
|
228
|
+
│ ↑ ↓
|
|
229
|
+
│ └─ Loop──┘
|
|
230
|
+
▼
|
|
231
|
+
Task 1 (TDD)
|
|
232
|
+
▼
|
|
233
|
+
Task 2 (TDD)
|
|
234
|
+
▼
|
|
235
|
+
Task 3 (TDD)
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
<details>
|
|
239
|
+
<summary><b>Plan Phase</b></summary>
|
|
240
|
+
|
|
241
|
+
1. Explores codebase with semantic search (Vexor)
|
|
242
|
+
2. Asks clarifying questions before committing to a design
|
|
243
|
+
3. Writes spec to `docs/plans/` with scope, tasks, and definition of done
|
|
244
|
+
4. **plan-verifier** + **plan-challenger** sub-agents independently validate the plan
|
|
245
|
+
5. Auto-fixes issues found by verifiers
|
|
246
|
+
6. Waits for your approval — you can edit the plan first
|
|
247
|
+
|
|
248
|
+
</details>
|
|
249
|
+
|
|
250
|
+
<details>
|
|
251
|
+
<summary><b>Implement Phase</b></summary>
|
|
252
|
+
|
|
253
|
+
1. Creates an isolated git worktree on a dedicated branch (optional — main branch stays clean)
|
|
254
|
+
2. Implements each task with strict TDD (RED → GREEN → REFACTOR)
|
|
255
|
+
3. Quality hooks auto-lint, format, and type-check every file edit
|
|
256
|
+
4. Runs full test suite after each task to catch regressions
|
|
257
|
+
|
|
258
|
+
</details>
|
|
259
|
+
|
|
260
|
+
<details>
|
|
261
|
+
<summary><b>Verify Phase</b></summary>
|
|
262
|
+
|
|
263
|
+
1. Runs full test suite — unit, integration, and E2E
|
|
264
|
+
2. Type checking and linting across the entire project
|
|
265
|
+
3. Executes actual program to verify real-world behavior
|
|
266
|
+
4. **spec-reviewer-compliance** + **spec-reviewer-quality** sub-agents perform independent code review
|
|
267
|
+
5. Auto-fixes all findings, then re-verifies until clean
|
|
268
|
+
6. Loops back to implementation if structural issues remain
|
|
269
|
+
7. On success, shows diff summary and offers to squash merge worktree back to main
|
|
270
|
+
|
|
271
|
+
</details>
|
|
272
|
+
|
|
273
|
+
### Smart Model Routing
|
|
274
|
+
|
|
275
|
+
Tribunal automatically selects the right model for each phase — deeper reasoning where it matters, faster execution where it doesn't:
|
|
276
|
+
|
|
277
|
+
| Phase | Model | Why |
|
|
278
|
+
| --------------------- | ------ | ----------------------------------------------------------- |
|
|
279
|
+
| **Planning** | Opus | Deep reasoning for architecture and spec design |
|
|
280
|
+
| **Plan Verification** | Opus | Catching gaps and requirement mismatches before implementation |
|
|
281
|
+
| **Implementation** | Sonnet | Fast, cost-effective code generation guided by a clear spec |
|
|
282
|
+
| **Code Verification** | Opus | Independent review requires the same reasoning depth as planning |
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Quality Enforcement
|
|
287
|
+
|
|
288
|
+
Hooks fire automatically at every stage of development — no manual invocation required:
|
|
289
|
+
|
|
290
|
+
- **File checker** — Scans for secrets, runs language-specific linters (Python/TS/Go), auto-fixes formatting on every save
|
|
291
|
+
- **TDD enforcer** — Blocks implementation edits without a prior failing test; uses a dependency graph to suggest the right test file
|
|
292
|
+
- **Context monitor** — Warns at 80% context usage, forces Endless Mode handoff at 90%
|
|
293
|
+
- **Spec stop guard** — Prevents Claude from calling it done while a spec is still in progress
|
|
294
|
+
- **Tool redirect** — Routes web/search calls to MCP alternatives; enforces sub-agent spawn limit (5/session)
|
|
295
|
+
|
|
296
|
+
4 verification sub-agents (plan-verifier, plan-challenger, spec-reviewer-compliance, spec-reviewer-quality) run automatically during `/spec` to catch gaps, challenge assumptions, and review code quality independently.
|
|
297
|
+
|
|
298
|
+
**Endless Mode:** Monitors context usage in real-time. Saves session state to `~/.tribunal/sessions/` so the next session picks up exactly where you left off. Avoids starting new `/spec` phases when context is high — hands off cleanly instead.
|
|
299
|
+
|
|
300
|
+
For the full hooks reference, see [docs/FEATURES.md](docs/FEATURES.md#quality-enforcement-hooks).
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## What's Included
|
|
305
|
+
|
|
306
|
+
- **4 slash commands:** `/spec`, `/sync`, `/learn`, `/vault`
|
|
307
|
+
- **22 built-in rules** across quality enforcement, context & memory, language standards, tool integration, and development workflow
|
|
308
|
+
- **13 conditional coding standards** — activated by file type, not loaded globally (zero context waste)
|
|
309
|
+
- **5 MCP servers** pre-configured: Context7, mem-search, web-search, grep-mcp, web-fetch
|
|
310
|
+
- **3 language servers (LSP)** auto-installed: basedpyright (Python), vtsls (TypeScript), gopls (Go)
|
|
311
|
+
|
|
312
|
+
→ How it works: **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)**
|
|
313
|
+
→ Full tables, rule lists, and CLI reference: **[docs/FEATURES.md](docs/FEATURES.md)**
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## CLI Reference
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
tribunal # Launch Tribunal (alias: sfc)
|
|
321
|
+
tribunal status # Show access and session status
|
|
322
|
+
tribunal activate <key> # Activate on this machine
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
All commands support `--json` for structured output. For the full command reference (skills, worktrees, context, Endless Mode), see [docs/FEATURES.md](docs/FEATURES.md#cli-reference).
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Tribunal Console
|
|
330
|
+
|
|
331
|
+
Access the web-based console at **http://localhost:41777** for a real-time view of persistent memory, session tracking, and observation history across sessions.
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Privacy
|
|
336
|
+
|
|
337
|
+
**Your code never leaves your machine through Tribunal.** All development tools — vector search (Vexor), persistent memory (Tribunal Console), session state, hooks — run entirely locally. No code, filenames, or project content is transmitted.
|
|
338
|
+
|
|
339
|
+
The only external calls are for access verification and Claude Code's own communication with Anthropic's API using your subscription.
|
|
340
|
+
|
|
341
|
+
For the full data flow diagram, auth token storage details, and responsible disclosure contact, see [docs/SECURITY.md](docs/SECURITY.md).
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Acknowledgments
|
|
346
|
+
|
|
347
|
+
Tribunal builds on the foundation laid by two projects:
|
|
348
|
+
|
|
349
|
+
- **[Claude Pilot](https://github.com/maxritter/claude-pilot)** by Max Ritter — the open-source project that pioneered the spec-driven development workflow, TDD enforcement hooks, Endless Mode, and the quality automation architecture that Tribunal inherits and extends. Tribunal started as a fork of Claude Pilot and has since evolved with its own features, but the core ideas — `/spec`, `/sync`, worktree isolation, verification sub-agents, persistent memory — originated there.
|
|
350
|
+
|
|
351
|
+
- **[SummonAI Kit](https://summonaikit.com/)** — a toolkit for enhancing AI coding agents with codebase-aware skills and subagents. SummonAI Kit's approach to analyzing codebases and generating tailored configurations helped shape early ideas behind Tribunal's conditional coding standards and skill system.
|
|
352
|
+
|
|
353
|
+
Both projects sit on top of **[Claude Code](https://github.com/anthropics/claude-code)** by Anthropic — the agentic coding tool whose hooks, commands, and plugin architecture make everything possible.
|
|
354
|
+
|
|
355
|
+
## License
|
|
356
|
+
|
|
357
|
+
Tribunal is proprietary software owned by Tribunal Pty Ltd. See the [LICENSE](LICENSE) file for full terms.
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
<div align="center">
|
|
362
|
+
|
|
363
|
+
**Claude Code is powerful. Tribunal makes it reliable.**
|
|
364
|
+
|
|
365
|
+
</div>
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
## Enterprise Installation
|
|
370
|
+
|
|
371
|
+
### Docker
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
# Pull and run the latest release
|
|
375
|
+
docker pull ghcr.io/thebotclub/tribunal:latest
|
|
376
|
+
|
|
377
|
+
# Run with your project mounted
|
|
378
|
+
docker run -it --rm \
|
|
379
|
+
-v ~/.claude:/root/.claude \
|
|
380
|
+
-v ~/.tribunal:/root/.tribunal \
|
|
381
|
+
-v $(pwd):/workspace \
|
|
382
|
+
-w /workspace \
|
|
383
|
+
ghcr.io/thebotclub/tribunal
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Or build locally:
|
|
387
|
+
```bash
|
|
388
|
+
docker build -t tribunal .
|
|
389
|
+
docker run -it --rm -v $(pwd):/workspace -w /workspace tribunal
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### .deb Package (Ubuntu/Debian)
|
|
393
|
+
|
|
394
|
+
Download the `.deb` from the [latest release](https://github.com/thebotclub/tribunal/releases/latest):
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
wget https://github.com/thebotclub/tribunal/releases/latest/download/tribunal-tribunal_<version>_amd64.deb
|
|
398
|
+
sudo dpkg -i tribunal-tribunal_<version>_amd64.deb
|
|
399
|
+
tribunal --help
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Self-contained Tarball
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
wget https://github.com/thebotclub/tribunal/releases/latest/download/tribunal-<version>-linux-x86_64.tar.gz
|
|
406
|
+
tar xzf tribunal-*.tar.gz
|
|
407
|
+
cd tribunal-*/
|
|
408
|
+
./tribunal --help
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### Air-gapped Deployment
|
|
412
|
+
|
|
413
|
+
For environments without internet access, use the bundle command:
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
tribunal bundle --output tribunal-bundle.tar.gz
|
|
417
|
+
# Transfer bundle to air-gapped machine, then:
|
|
418
|
+
tar xzf tribunal-bundle.tar.gz
|
|
419
|
+
cd tribunal-bundle/
|
|
420
|
+
bash offline-install.sh
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
See [docs/ENTERPRISE_INSTALL.md](docs/ENTERPRISE_INSTALL.md) for full air-gapped installation instructions.
|