tribunal-kit 4.2.0 → 4.3.1
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.
- package/.agent/ARCHITECTURE.md +21 -14
- package/.agent/agents/swarm-worker-contracts.md +5 -5
- package/.agent/agents/ui-ux-auditor.md +292 -0
- package/.agent/rules/GEMINI.md +8 -8
- package/.agent/scripts/__pycache__/_colors.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/_utils.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/case_law_manager.cpython-311.pyc +0 -0
- package/.agent/scripts/_colors.js +18 -0
- package/.agent/scripts/_utils.js +42 -0
- package/.agent/scripts/auto_preview.js +197 -0
- package/.agent/scripts/bundle_analyzer.js +290 -0
- package/.agent/scripts/case_law_manager.js +684 -0
- package/.agent/scripts/checklist.js +266 -0
- package/.agent/scripts/colors.js +17 -0
- package/.agent/scripts/compress_skills.js +141 -0
- package/.agent/scripts/consolidate_skills.js +149 -0
- package/.agent/scripts/context_broker.js +609 -0
- package/.agent/scripts/deep_compress.js +150 -0
- package/.agent/scripts/dependency_analyzer.js +272 -0
- package/.agent/scripts/graph_builder.js +199 -0
- package/.agent/scripts/graph_zoom.js +154 -0
- package/.agent/scripts/inner_loop_validator.js +465 -0
- package/.agent/scripts/lint_runner.js +187 -0
- package/.agent/scripts/minify_context.js +100 -0
- package/.agent/scripts/patch_skills_meta.js +156 -0
- package/.agent/scripts/patch_skills_output.js +244 -0
- package/.agent/scripts/schema_validator.js +297 -0
- package/.agent/scripts/security_scan.js +303 -0
- package/.agent/scripts/session_manager.js +276 -0
- package/.agent/scripts/skill_evolution.js +644 -0
- package/.agent/scripts/skill_integrator.js +313 -0
- package/.agent/scripts/strengthen_skills.js +193 -0
- package/.agent/scripts/strip_tribunal.js +47 -0
- package/.agent/scripts/swarm_dispatcher.js +360 -0
- package/.agent/scripts/test_runner.js +193 -0
- package/.agent/scripts/utils.js +32 -0
- package/.agent/scripts/verify_all.js +256 -0
- package/.agent/skills/agent-organizer/SKILL.md +12 -4
- package/.agent/skills/agentic-patterns/SKILL.md +12 -4
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +12 -4
- package/.agent/skills/api-patterns/SKILL.md +209 -201
- package/.agent/skills/api-security-auditor/SKILL.md +12 -4
- package/.agent/skills/app-builder/SKILL.md +12 -4
- package/.agent/skills/app-builder/templates/SKILL.md +76 -68
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +1 -1
- package/.agent/skills/appflow-wireframe/SKILL.md +12 -4
- package/.agent/skills/architecture/SKILL.md +12 -4
- package/.agent/skills/authentication-best-practices/SKILL.md +12 -4
- package/.agent/skills/bash-linux/SKILL.md +12 -4
- package/.agent/skills/behavioral-modes/SKILL.md +12 -4
- package/.agent/skills/brainstorming/SKILL.md +12 -4
- package/.agent/skills/building-native-ui/SKILL.md +12 -4
- package/.agent/skills/clean-code/SKILL.md +12 -4
- package/.agent/skills/code-review-checklist/SKILL.md +12 -4
- package/.agent/skills/config-validator/SKILL.md +12 -4
- package/.agent/skills/csharp-developer/SKILL.md +12 -4
- package/.agent/skills/data-validation-schemas/SKILL.md +290 -282
- package/.agent/skills/database-design/SKILL.md +202 -194
- package/.agent/skills/deployment-procedures/SKILL.md +12 -4
- package/.agent/skills/devops-engineer/SKILL.md +12 -4
- package/.agent/skills/devops-incident-responder/SKILL.md +12 -4
- package/.agent/skills/doc.md +1 -1
- package/.agent/skills/documentation-templates/SKILL.md +12 -4
- package/.agent/skills/edge-computing/SKILL.md +12 -4
- package/.agent/skills/error-resilience/SKILL.md +390 -382
- package/.agent/skills/extract-design-system/SKILL.md +12 -4
- package/.agent/skills/framer-motion-expert/SKILL.md +206 -199
- package/.agent/skills/frontend-design/SKILL.md +163 -155
- package/.agent/skills/game-design-expert/SKILL.md +12 -4
- package/.agent/skills/game-engineering-expert/SKILL.md +12 -4
- package/.agent/skills/geo-fundamentals/SKILL.md +12 -4
- package/.agent/skills/github-operations/SKILL.md +12 -4
- package/.agent/skills/gsap-core/SKILL.md +54 -48
- package/.agent/skills/gsap-frameworks/SKILL.md +54 -48
- package/.agent/skills/gsap-performance/SKILL.md +54 -48
- package/.agent/skills/gsap-plugins/SKILL.md +54 -48
- package/.agent/skills/gsap-react/SKILL.md +54 -48
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +54 -48
- package/.agent/skills/gsap-timeline/SKILL.md +54 -48
- package/.agent/skills/gsap-utils/SKILL.md +54 -48
- package/.agent/skills/i18n-localization/SKILL.md +12 -4
- package/.agent/skills/intelligent-routing/SKILL.md +41 -33
- package/.agent/skills/knowledge-graph/SKILL.md +36 -0
- package/.agent/skills/lint-and-validate/SKILL.md +12 -4
- package/.agent/skills/llm-engineering/SKILL.md +12 -4
- package/.agent/skills/local-first/SKILL.md +12 -4
- package/.agent/skills/mcp-builder/SKILL.md +12 -4
- package/.agent/skills/mobile-design/SKILL.md +225 -217
- package/.agent/skills/monorepo-management/SKILL.md +296 -288
- package/.agent/skills/motion-engineering/SKILL.md +195 -187
- package/.agent/skills/nextjs-react-expert/SKILL.md +196 -188
- package/.agent/skills/nodejs-best-practices/SKILL.md +12 -4
- package/.agent/skills/observability/SKILL.md +12 -4
- package/.agent/skills/parallel-agents/SKILL.md +12 -4
- package/.agent/skills/performance-profiling/SKILL.md +12 -4
- package/.agent/skills/plan-writing/SKILL.md +12 -4
- package/.agent/skills/platform-engineer/SKILL.md +12 -4
- package/.agent/skills/playwright-best-practices/SKILL.md +12 -4
- package/.agent/skills/powershell-windows/SKILL.md +12 -4
- package/.agent/skills/project-idioms/SKILL.md +12 -4
- package/.agent/skills/python-patterns/SKILL.md +12 -4
- package/.agent/skills/python-pro/SKILL.md +285 -277
- package/.agent/skills/react-specialist/SKILL.md +239 -231
- package/.agent/skills/readme-builder/SKILL.md +12 -4
- package/.agent/skills/realtime-patterns/SKILL.md +12 -4
- package/.agent/skills/red-team-tactics/SKILL.md +12 -4
- package/.agent/skills/rust-pro/SKILL.md +12 -4
- package/.agent/skills/seo-fundamentals/SKILL.md +12 -4
- package/.agent/skills/server-management/SKILL.md +12 -4
- package/.agent/skills/shadcn-ui-expert/SKILL.md +12 -4
- package/.agent/skills/skill-creator/SKILL.md +12 -4
- package/.agent/skills/sql-pro/SKILL.md +12 -4
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +12 -4
- package/.agent/skills/swiftui-expert/SKILL.md +12 -4
- package/.agent/skills/systematic-debugging/SKILL.md +12 -4
- package/.agent/skills/tailwind-patterns/SKILL.md +12 -4
- package/.agent/skills/tdd-workflow/SKILL.md +12 -4
- package/.agent/skills/test-result-analyzer/SKILL.md +12 -4
- package/.agent/skills/testing-patterns/SKILL.md +12 -4
- package/.agent/skills/trend-researcher/SKILL.md +12 -4
- package/.agent/skills/typescript-advanced/SKILL.md +297 -289
- package/.agent/skills/ui-ux-pro-max/SKILL.md +12 -4
- package/.agent/skills/ui-ux-researcher/SKILL.md +12 -4
- package/.agent/skills/vue-expert/SKILL.md +237 -229
- package/.agent/skills/vulnerability-scanner/SKILL.md +12 -4
- package/.agent/skills/web-accessibility-auditor/SKILL.md +12 -4
- package/.agent/skills/web-design-guidelines/SKILL.md +12 -4
- package/.agent/skills/webapp-testing/SKILL.md +12 -4
- package/.agent/skills/whimsy-injector/SKILL.md +12 -4
- package/.agent/skills/workflow-optimizer/SKILL.md +12 -4
- package/.agent/workflows/audit.md +6 -6
- package/.agent/workflows/deploy.md +1 -1
- package/.agent/workflows/generate.md +23 -6
- package/.agent/workflows/session.md +5 -5
- package/.agent/workflows/swarm.md +2 -2
- package/README.md +242 -186
- package/bin/tribunal-kit.js +297 -57
- package/package.json +81 -77
- package/scripts/changelog.js +167 -0
- package/scripts/sync-version.js +81 -0
- package/scripts/validate-payload.js +73 -0
- package/.agent/scripts/__pycache__/auto_preview.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
- package/.agent/scripts/auto_preview.py +0 -180
- package/.agent/scripts/bundle_analyzer.py +0 -259
- package/.agent/scripts/case_law_manager.py +0 -755
- package/.agent/scripts/checklist.py +0 -209
- package/.agent/scripts/compress_skills.py +0 -167
- package/.agent/scripts/consolidate_skills.py +0 -173
- package/.agent/scripts/deep_compress.py +0 -202
- package/.agent/scripts/dependency_analyzer.py +0 -247
- package/.agent/scripts/lint_runner.py +0 -188
- package/.agent/scripts/minify_context.py +0 -80
- package/.agent/scripts/patch_skills_meta.py +0 -177
- package/.agent/scripts/patch_skills_output.py +0 -285
- package/.agent/scripts/schema_validator.py +0 -279
- package/.agent/scripts/security_scan.py +0 -224
- package/.agent/scripts/session_manager.py +0 -261
- package/.agent/scripts/skill_evolution.py +0 -563
- package/.agent/scripts/skill_integrator.py +0 -234
- package/.agent/scripts/strengthen_skills.py +0 -220
- package/.agent/scripts/strip_tribunal.py +0 -41
- package/.agent/scripts/swarm_dispatcher.py +0 -350
- package/.agent/scripts/test_runner.py +0 -192
- package/.agent/scripts/test_swarm_dispatcher.py +0 -163
- package/.agent/scripts/verify_all.py +0 -195
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* verify_all.js — Full pre-deploy validation suite for the Tribunal Agent Kit.
|
|
4
|
+
*
|
|
5
|
+
* Runs comprehensive checks before any production deployment.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* node .agent/scripts/verify_all.js
|
|
9
|
+
* node .agent/scripts/verify_all.js --skip build,deps
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
'use strict';
|
|
13
|
+
|
|
14
|
+
const fs = require('fs');
|
|
15
|
+
const path = require('path');
|
|
16
|
+
const { execFileSync } = require('child_process');
|
|
17
|
+
|
|
18
|
+
// ━━━ ANSI colors ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
|
+
const RED = '\x1b[91m';
|
|
20
|
+
const GREEN = '\x1b[92m';
|
|
21
|
+
const YELLOW = '\x1b[93m';
|
|
22
|
+
const BLUE = '\x1b[94m';
|
|
23
|
+
const BOLD = '\x1b[1m';
|
|
24
|
+
const RESET = '\x1b[0m';
|
|
25
|
+
|
|
26
|
+
const RESULTS = [];
|
|
27
|
+
|
|
28
|
+
function section(title) {
|
|
29
|
+
console.log(`\n${BOLD}${BLUE}━━━ ${title} ━━━${RESET}`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function ok(label, note) {
|
|
33
|
+
const msg = `${GREEN}✅ ${label}${RESET}` + (note ? ` ${YELLOW}(${note})${RESET}` : '');
|
|
34
|
+
console.log(` ${msg}`);
|
|
35
|
+
RESULTS.push({ label, passed: true, note: note || '' });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function fail(label, note) {
|
|
39
|
+
const noteStr = note ? `\n ${note}` : '';
|
|
40
|
+
console.log(` ${RED}❌ ${label}${RESET}${noteStr}`);
|
|
41
|
+
RESULTS.push({ label, passed: false, note: note || '' });
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function skip(label, reason) {
|
|
45
|
+
console.log(` ${YELLOW}⏭️ ${label} — ${reason}${RESET}`);
|
|
46
|
+
RESULTS.push({ label, passed: true, note: `skipped: ${reason}` });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Run a shell command and return true if it exits with code 0.
|
|
51
|
+
*/
|
|
52
|
+
function run(label, cmd, cwd) {
|
|
53
|
+
try {
|
|
54
|
+
const isWindows = process.platform === 'win32';
|
|
55
|
+
let bin = cmd[0];
|
|
56
|
+
if (isWindows && (bin === 'npm' || bin === 'npx')) bin += '.cmd';
|
|
57
|
+
|
|
58
|
+
execFileSync(bin, cmd.slice(1), {
|
|
59
|
+
cwd,
|
|
60
|
+
stdio: 'pipe',
|
|
61
|
+
timeout: 120000,
|
|
62
|
+
encoding: 'utf8',
|
|
63
|
+
});
|
|
64
|
+
ok(label);
|
|
65
|
+
return true;
|
|
66
|
+
} catch (err) {
|
|
67
|
+
if (err.code === 'ENOENT') {
|
|
68
|
+
skip(label, 'tool not installed — skipping');
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (err.killed) {
|
|
72
|
+
fail(label, 'timed out after 120s');
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
const output = ((err.stdout || '') + (err.stderr || '')).trim();
|
|
76
|
+
fail(label, output ? output.slice(0, 500) : 'non-zero exit code');
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Scan source files for obviously hardcoded credentials.
|
|
84
|
+
*/
|
|
85
|
+
function scanSecrets(cwd) {
|
|
86
|
+
const patterns = ['password=', 'secret=', 'api_key=', 'private_key=', 'auth_token='];
|
|
87
|
+
const found = [];
|
|
88
|
+
const skipDirs = new Set(['node_modules', '.git', 'dist', '__pycache__', '.agent']);
|
|
89
|
+
|
|
90
|
+
function walk(dir) {
|
|
91
|
+
let entries;
|
|
92
|
+
try { entries = fs.readdirSync(dir, { withFileTypes: true }); } catch { return; }
|
|
93
|
+
|
|
94
|
+
for (const entry of entries) {
|
|
95
|
+
const fullPath = path.join(dir, entry.name);
|
|
96
|
+
if (entry.isDirectory()) {
|
|
97
|
+
if (!skipDirs.has(entry.name)) walk(fullPath);
|
|
98
|
+
} else if (entry.isFile()) {
|
|
99
|
+
if (!/\.(ts|js|tsx|jsx|py)$/.test(entry.name)) continue;
|
|
100
|
+
|
|
101
|
+
let content;
|
|
102
|
+
try { content = fs.readFileSync(fullPath, 'utf8'); } catch { continue; }
|
|
103
|
+
|
|
104
|
+
const lines = content.split('\n');
|
|
105
|
+
for (let i = 0; i < lines.length; i++) {
|
|
106
|
+
const low = lines[i].toLowerCase().trim();
|
|
107
|
+
const hasPattern = patterns.some(p => low.includes(p));
|
|
108
|
+
if (hasPattern && !low.startsWith('#') && low.includes('=')) {
|
|
109
|
+
const rel = path.relative(cwd, fullPath);
|
|
110
|
+
found.push(`${rel}:${i + 1}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
walk(cwd);
|
|
118
|
+
|
|
119
|
+
if (found.length > 0) {
|
|
120
|
+
fail('Secret scan', found.slice(0, 5).join('\n '));
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
ok('Secret scan — no hardcoded credentials found');
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Check if there's a package.json to run npm commands against.
|
|
130
|
+
*/
|
|
131
|
+
function hasNpm(cwd) {
|
|
132
|
+
return fs.existsSync(path.join(cwd, 'package.json'));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Run all verification checks. Returns number of failures.
|
|
138
|
+
*/
|
|
139
|
+
function verifyAll(cwd, skipped) {
|
|
140
|
+
let failures = 0;
|
|
141
|
+
|
|
142
|
+
section('1 — Secret Scan');
|
|
143
|
+
if (!skipped.includes('secrets')) {
|
|
144
|
+
if (!scanSecrets(cwd)) failures++;
|
|
145
|
+
} else {
|
|
146
|
+
skip('Secret scan', 'skipped by flag');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
section('2 — TypeScript');
|
|
150
|
+
if (!skipped.includes('typescript')) {
|
|
151
|
+
if (hasNpm(cwd)) {
|
|
152
|
+
if (!run('tsc --noEmit', ['npx', 'tsc', '--noEmit'], cwd)) failures++;
|
|
153
|
+
} else {
|
|
154
|
+
skip('TypeScript', 'no package.json found in project');
|
|
155
|
+
}
|
|
156
|
+
} else {
|
|
157
|
+
skip('TypeScript', 'skipped by flag');
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
section('3 — ESLint');
|
|
161
|
+
if (!skipped.includes('lint')) {
|
|
162
|
+
if (hasNpm(cwd)) {
|
|
163
|
+
if (!run('ESLint', ['npx', 'eslint', '.', '--max-warnings=0'], cwd)) failures++;
|
|
164
|
+
} else {
|
|
165
|
+
skip('ESLint', 'no package.json found in project');
|
|
166
|
+
}
|
|
167
|
+
} else {
|
|
168
|
+
skip('ESLint', 'skipped by flag');
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
section('4 — Unit Tests');
|
|
172
|
+
if (!skipped.includes('tests')) {
|
|
173
|
+
if (hasNpm(cwd)) {
|
|
174
|
+
if (!run('Test suite', ['npm', 'test', '--', '--passWithNoTests'], cwd)) failures++;
|
|
175
|
+
} else {
|
|
176
|
+
skip('Tests', 'no package.json found in project');
|
|
177
|
+
}
|
|
178
|
+
} else {
|
|
179
|
+
skip('Tests', 'skipped by flag');
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
section('5 — Build');
|
|
183
|
+
if (!skipped.includes('build')) {
|
|
184
|
+
if (hasNpm(cwd)) {
|
|
185
|
+
if (!run('npm run build', ['npm', 'run', 'build'], cwd)) failures++;
|
|
186
|
+
} else {
|
|
187
|
+
skip('Build', 'no package.json found in project');
|
|
188
|
+
}
|
|
189
|
+
} else {
|
|
190
|
+
skip('Build', 'skipped by flag');
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
section('6 — Dependency Audit');
|
|
194
|
+
if (!skipped.includes('deps')) {
|
|
195
|
+
if (hasNpm(cwd)) {
|
|
196
|
+
if (!run('npm audit', ['npm', 'audit', '--audit-level=high'], cwd)) failures++;
|
|
197
|
+
} else {
|
|
198
|
+
skip('Dependency audit', 'no package.json found in project');
|
|
199
|
+
}
|
|
200
|
+
} else {
|
|
201
|
+
skip('Dependency audit', 'skipped by flag');
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// ━━━ Summary ━━━
|
|
205
|
+
console.log(`\n${BOLD}━━━ Summary ━━━${RESET}`);
|
|
206
|
+
for (const { label, passed, note } of RESULTS) {
|
|
207
|
+
const status = passed ? `${GREEN}✅${RESET}` : `${RED}❌${RESET}`;
|
|
208
|
+
const noteStr = (!passed && note) ? ` ${YELLOW}(${note})${RESET}` : '';
|
|
209
|
+
console.log(` ${status} ${label}${noteStr}`);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
console.log();
|
|
213
|
+
if (failures === 0) {
|
|
214
|
+
console.log(`${GREEN}${BOLD}All checks passed — safe to deploy.${RESET}`);
|
|
215
|
+
} else {
|
|
216
|
+
console.log(`${RED}${BOLD}${failures} check(s) failed — fix before deploying.${RESET}`);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return failures;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Parse CLI arguments manually (no external dependencies).
|
|
225
|
+
*/
|
|
226
|
+
function parseArgs(argv) {
|
|
227
|
+
const args = { skip: [] };
|
|
228
|
+
const raw = argv.slice(2);
|
|
229
|
+
|
|
230
|
+
for (let i = 0; i < raw.length; i++) {
|
|
231
|
+
if (raw[i] === '--skip' && raw[i + 1]) {
|
|
232
|
+
args.skip = raw[++i].split(',').map(s => s.trim().toLowerCase()).filter(Boolean);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return args;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
function main() {
|
|
240
|
+
const args = parseArgs(process.argv);
|
|
241
|
+
const cwd = process.cwd();
|
|
242
|
+
|
|
243
|
+
console.log(`${BOLD}Tribunal — verify_all.js${RESET}`);
|
|
244
|
+
console.log(`Project: ${cwd}\n`);
|
|
245
|
+
|
|
246
|
+
const failures = verifyAll(cwd, args.skip);
|
|
247
|
+
process.exit(failures > 0 ? 1 : 0);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
// ━━━ Exports for testing & programmatic use ━━━
|
|
252
|
+
module.exports = { verifyAll, scanSecrets, hasNpm };
|
|
253
|
+
|
|
254
|
+
if (require.main === module) {
|
|
255
|
+
main();
|
|
256
|
+
}
|
|
@@ -102,7 +102,7 @@ Automation without oversight is reckless. The Organizer manages when to pause an
|
|
|
102
102
|
|
|
103
103
|
---
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
|
|
106
106
|
|
|
107
107
|
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
108
108
|
|
|
@@ -114,7 +114,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
|
|
119
119
|
**Slash command: `/review` or `/tribunal-full`**
|
|
120
120
|
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
@@ -125,7 +125,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
125
125
|
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
126
126
|
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
|
|
129
129
|
|
|
130
130
|
Review these questions before confirming output:
|
|
131
131
|
```
|
|
@@ -139,4 +139,12 @@ Review these questions before confirming output:
|
|
|
139
139
|
|
|
140
140
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
141
141
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
142
|
-
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
142
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
## Pre-Flight Checklist
|
|
146
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
147
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
148
|
+
|
|
149
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
150
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
@@ -267,7 +267,7 @@ Evidence: [link to terminal output, test result, or file diff]
|
|
|
267
267
|
|
|
268
268
|
---
|
|
269
269
|
|
|
270
|
-
|
|
270
|
+
|
|
271
271
|
|
|
272
272
|
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
273
273
|
|
|
@@ -279,7 +279,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
279
279
|
|
|
280
280
|
---
|
|
281
281
|
|
|
282
|
-
|
|
282
|
+
|
|
283
283
|
|
|
284
284
|
**Slash command: `/review` or `/tribunal-full`**
|
|
285
285
|
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
@@ -290,7 +290,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
290
290
|
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
291
291
|
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
292
292
|
|
|
293
|
-
|
|
293
|
+
|
|
294
294
|
|
|
295
295
|
Review these questions before confirming output:
|
|
296
296
|
```
|
|
@@ -304,4 +304,12 @@ Review these questions before confirming output:
|
|
|
304
304
|
|
|
305
305
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
306
306
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
307
|
-
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
307
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
## Pre-Flight Checklist
|
|
311
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
312
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
313
|
+
|
|
314
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
315
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
@@ -136,7 +136,7 @@ Many injections occur because the LLM includes malicious data in its output, whi
|
|
|
136
136
|
|
|
137
137
|
---
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
|
|
140
140
|
|
|
141
141
|
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
142
142
|
|
|
@@ -148,7 +148,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
148
148
|
|
|
149
149
|
---
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
|
|
152
152
|
|
|
153
153
|
**Slash command: `/review` or `/tribunal-full`**
|
|
154
154
|
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
@@ -159,7 +159,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
159
159
|
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
160
160
|
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
|
|
163
163
|
|
|
164
164
|
Review these questions before confirming output:
|
|
165
165
|
```
|
|
@@ -173,4 +173,12 @@ Review these questions before confirming output:
|
|
|
173
173
|
|
|
174
174
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
175
175
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
176
|
-
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
176
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
## Pre-Flight Checklist
|
|
180
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
181
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
182
|
+
|
|
183
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
184
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|