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.
Files changed (117) hide show
  1. tribunal-1.2.2/LICENSE +21 -0
  2. tribunal-1.2.2/PKG-INFO +423 -0
  3. tribunal-1.2.2/README.md +395 -0
  4. tribunal-1.2.2/installer/__init__.py +4 -0
  5. tribunal-1.2.2/installer/__main__.py +6 -0
  6. tribunal-1.2.2/installer/cli.py +323 -0
  7. tribunal-1.2.2/installer/config.py +55 -0
  8. tribunal-1.2.2/installer/context.py +33 -0
  9. tribunal-1.2.2/installer/downloads.py +364 -0
  10. tribunal-1.2.2/installer/errors.py +32 -0
  11. tribunal-1.2.2/installer/platform_utils.py +83 -0
  12. tribunal-1.2.2/installer/steps/__init__.py +23 -0
  13. tribunal-1.2.2/installer/steps/base.py +42 -0
  14. tribunal-1.2.2/installer/steps/claude_file_helpers.py +205 -0
  15. tribunal-1.2.2/installer/steps/claude_files.py +389 -0
  16. tribunal-1.2.2/installer/steps/config_files.py +31 -0
  17. tribunal-1.2.2/installer/steps/dependencies.py +276 -0
  18. tribunal-1.2.2/installer/steps/deps_claude.py +201 -0
  19. tribunal-1.2.2/installer/steps/deps_npm.py +174 -0
  20. tribunal-1.2.2/installer/steps/deps_playwright.py +111 -0
  21. tribunal-1.2.2/installer/steps/deps_ui.py +79 -0
  22. tribunal-1.2.2/installer/steps/deps_utils.py +28 -0
  23. tribunal-1.2.2/installer/steps/deps_vexor.py +141 -0
  24. tribunal-1.2.2/installer/steps/finalize.py +155 -0
  25. tribunal-1.2.2/installer/steps/prerequisites.py +237 -0
  26. tribunal-1.2.2/installer/steps/project_init.py +60 -0
  27. tribunal-1.2.2/installer/steps/shell_config.py +157 -0
  28. tribunal-1.2.2/installer/steps/vscode_extensions.py +134 -0
  29. tribunal-1.2.2/installer/tests/__init__.py +0 -0
  30. tribunal-1.2.2/installer/tests/conftest.py +3 -0
  31. tribunal-1.2.2/installer/tests/unit/__init__.py +0 -0
  32. tribunal-1.2.2/installer/tests/unit/steps/__init__.py +0 -0
  33. tribunal-1.2.2/installer/tests/unit/steps/test_claude_files.py +913 -0
  34. tribunal-1.2.2/installer/tests/unit/steps/test_config_files.py +14 -0
  35. tribunal-1.2.2/installer/tests/unit/steps/test_dependencies.py +867 -0
  36. tribunal-1.2.2/installer/tests/unit/steps/test_dependencies_playwright.py +254 -0
  37. tribunal-1.2.2/installer/tests/unit/steps/test_finalize.py +116 -0
  38. tribunal-1.2.2/installer/tests/unit/steps/test_prerequisites.py +346 -0
  39. tribunal-1.2.2/installer/tests/unit/steps/test_project_init.py +136 -0
  40. tribunal-1.2.2/installer/tests/unit/steps/test_shell_config.py +180 -0
  41. tribunal-1.2.2/installer/tests/unit/steps/test_vscode_extensions.py +100 -0
  42. tribunal-1.2.2/installer/tests/unit/test_base.py +72 -0
  43. tribunal-1.2.2/installer/tests/unit/test_cli.py +234 -0
  44. tribunal-1.2.2/installer/tests/unit/test_cli_wrapper.py +83 -0
  45. tribunal-1.2.2/installer/tests/unit/test_config.py +67 -0
  46. tribunal-1.2.2/installer/tests/unit/test_context.py +90 -0
  47. tribunal-1.2.2/installer/tests/unit/test_downloads.py +375 -0
  48. tribunal-1.2.2/installer/tests/unit/test_errors.py +28 -0
  49. tribunal-1.2.2/installer/tests/unit/test_install_sh.py +235 -0
  50. tribunal-1.2.2/installer/tests/unit/test_platform_utils.py +86 -0
  51. tribunal-1.2.2/installer/tests/unit/test_ui.py +73 -0
  52. tribunal-1.2.2/installer/ui.py +324 -0
  53. tribunal-1.2.2/launcher/__init__.py +3 -0
  54. tribunal-1.2.2/launcher/__main__.py +5 -0
  55. tribunal-1.2.2/launcher/access.py +440 -0
  56. tribunal-1.2.2/launcher/access_policy.py +142 -0
  57. tribunal-1.2.2/launcher/banner.py +54 -0
  58. tribunal-1.2.2/launcher/build.py +297 -0
  59. tribunal-1.2.2/launcher/bundle.py +140 -0
  60. tribunal-1.2.2/launcher/cli.py +675 -0
  61. tribunal-1.2.2/launcher/config.py +207 -0
  62. tribunal-1.2.2/launcher/context.py +184 -0
  63. tribunal-1.2.2/launcher/repair.py +70 -0
  64. tribunal-1.2.2/launcher/session.py +137 -0
  65. tribunal-1.2.2/launcher/skills/__init__.py +49 -0
  66. tribunal-1.2.2/launcher/skills/_project_detector.py +250 -0
  67. tribunal-1.2.2/launcher/skills/_scanner.py +103 -0
  68. tribunal-1.2.2/launcher/skills/_templates.py +125 -0
  69. tribunal-1.2.2/launcher/skills/analyze_cmd.py +66 -0
  70. tribunal-1.2.2/launcher/skills/create_cmd.py +42 -0
  71. tribunal-1.2.2/launcher/skills/doctor_cmd.py +74 -0
  72. tribunal-1.2.2/launcher/skills/init_cmd.py +53 -0
  73. tribunal-1.2.2/launcher/skills/list_cmd.py +49 -0
  74. tribunal-1.2.2/launcher/skills/show_cmd.py +37 -0
  75. tribunal-1.2.2/launcher/statusline/__init__.py +10 -0
  76. tribunal-1.2.2/launcher/statusline/__main__.py +16 -0
  77. tribunal-1.2.2/launcher/statusline/formatter.py +52 -0
  78. tribunal-1.2.2/launcher/statusline/providers.py +109 -0
  79. tribunal-1.2.2/launcher/statusline/widgets.py +66 -0
  80. tribunal-1.2.2/launcher/tests/__init__.py +1 -0
  81. tribunal-1.2.2/launcher/tests/conftest.py +3 -0
  82. tribunal-1.2.2/launcher/tests/unit/__init__.py +1 -0
  83. tribunal-1.2.2/launcher/tests/unit/skills/__init__.py +3 -0
  84. tribunal-1.2.2/launcher/tests/unit/skills/test_cli.py +100 -0
  85. tribunal-1.2.2/launcher/tests/unit/skills/test_create_cmd.py +60 -0
  86. tribunal-1.2.2/launcher/tests/unit/skills/test_detector.py +137 -0
  87. tribunal-1.2.2/launcher/tests/unit/skills/test_doctor.py +94 -0
  88. tribunal-1.2.2/launcher/tests/unit/skills/test_init_cmd.py +72 -0
  89. tribunal-1.2.2/launcher/tests/unit/skills/test_scanner.py +119 -0
  90. tribunal-1.2.2/launcher/tests/unit/skills/test_templates.py +80 -0
  91. tribunal-1.2.2/launcher/tests/unit/test_access.py +473 -0
  92. tribunal-1.2.2/launcher/tests/unit/test_banner.py +74 -0
  93. tribunal-1.2.2/launcher/tests/unit/test_cli.py +383 -0
  94. tribunal-1.2.2/launcher/tests/unit/test_config.py +253 -0
  95. tribunal-1.2.2/launcher/tests/unit/test_context.py +184 -0
  96. tribunal-1.2.2/launcher/tests/unit/test_model.py +255 -0
  97. tribunal-1.2.2/launcher/tests/unit/test_repair.py +155 -0
  98. tribunal-1.2.2/launcher/tests/unit/test_session.py +210 -0
  99. tribunal-1.2.2/launcher/tests/unit/test_statusline_stdin.py +126 -0
  100. tribunal-1.2.2/launcher/tests/unit/test_statusline_widgets.py +323 -0
  101. tribunal-1.2.2/launcher/tests/unit/test_uninstall.py +205 -0
  102. tribunal-1.2.2/launcher/tests/unit/test_updater.py +225 -0
  103. tribunal-1.2.2/launcher/tests/unit/test_worktree.py +470 -0
  104. tribunal-1.2.2/launcher/tests/unit/test_wrapper.py +712 -0
  105. tribunal-1.2.2/launcher/uninstall.py +211 -0
  106. tribunal-1.2.2/launcher/updater.py +130 -0
  107. tribunal-1.2.2/launcher/wizard.py +215 -0
  108. tribunal-1.2.2/launcher/worktree.py +365 -0
  109. tribunal-1.2.2/launcher/wrapper.py +285 -0
  110. tribunal-1.2.2/pyproject.toml +132 -0
  111. tribunal-1.2.2/setup.cfg +4 -0
  112. tribunal-1.2.2/tribunal.egg-info/PKG-INFO +423 -0
  113. tribunal-1.2.2/tribunal.egg-info/SOURCES.txt +115 -0
  114. tribunal-1.2.2/tribunal.egg-info/dependency_links.txt +1 -0
  115. tribunal-1.2.2/tribunal.egg-info/entry_points.txt +2 -0
  116. tribunal-1.2.2/tribunal.egg-info/requires.txt +9 -0
  117. 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.
@@ -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.