tribunal-kit 3.0.0 → 3.1.0
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 +99 -99
- package/.agent/GEMINI.md +52 -52
- package/.agent/agents/accessibility-reviewer.md +187 -220
- package/.agent/agents/ai-code-reviewer.md +199 -233
- package/.agent/agents/backend-specialist.md +215 -238
- package/.agent/agents/code-archaeologist.md +161 -181
- package/.agent/agents/database-architect.md +184 -207
- package/.agent/agents/debugger.md +191 -218
- package/.agent/agents/dependency-reviewer.md +103 -136
- package/.agent/agents/devops-engineer.md +218 -238
- package/.agent/agents/documentation-writer.md +201 -221
- package/.agent/agents/explorer-agent.md +160 -180
- package/.agent/agents/frontend-reviewer.md +160 -194
- package/.agent/agents/frontend-specialist.md +248 -237
- package/.agent/agents/game-developer.md +48 -52
- package/.agent/agents/logic-reviewer.md +116 -149
- package/.agent/agents/mobile-developer.md +200 -223
- package/.agent/agents/mobile-reviewer.md +162 -195
- package/.agent/agents/orchestrator.md +181 -211
- package/.agent/agents/penetration-tester.md +157 -174
- package/.agent/agents/performance-optimizer.md +183 -203
- package/.agent/agents/performance-reviewer.md +178 -211
- package/.agent/agents/product-manager.md +142 -162
- package/.agent/agents/product-owner.md +6 -25
- package/.agent/agents/project-planner.md +142 -162
- package/.agent/agents/qa-automation-engineer.md +225 -242
- package/.agent/agents/security-auditor.md +174 -194
- package/.agent/agents/seo-specialist.md +193 -213
- package/.agent/agents/sql-reviewer.md +161 -194
- package/.agent/agents/supervisor-agent.md +184 -203
- package/.agent/agents/swarm-worker-contracts.md +17 -17
- package/.agent/agents/swarm-worker-registry.md +46 -46
- package/.agent/agents/test-coverage-reviewer.md +160 -193
- package/.agent/agents/test-engineer.md +0 -21
- package/.agent/agents/type-safety-reviewer.md +175 -208
- package/.agent/patterns/generator.md +9 -9
- package/.agent/patterns/inversion.md +12 -12
- package/.agent/patterns/pipeline.md +9 -9
- package/.agent/patterns/reviewer.md +13 -13
- package/.agent/patterns/tool-wrapper.md +9 -9
- package/.agent/rules/GEMINI.md +63 -63
- package/.agent/scripts/compress_skills.py +167 -0
- package/.agent/scripts/consolidate_skills.py +173 -0
- package/.agent/scripts/deep_compress.py +202 -0
- package/.agent/scripts/minify_context.py +80 -0
- package/.agent/scripts/security_scan.py +1 -1
- package/.agent/scripts/strip_tribunal.py +41 -0
- package/.agent/skills/agent-organizer/SKILL.md +92 -126
- package/.agent/skills/agentic-patterns/SKILL.md +0 -70
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +126 -160
- package/.agent/skills/api-patterns/SKILL.md +123 -215
- package/.agent/skills/api-security-auditor/SKILL.md +143 -177
- package/.agent/skills/app-builder/SKILL.md +326 -50
- package/.agent/skills/app-builder/templates/SKILL.md +13 -15
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
- package/.agent/skills/appflow-wireframe/SKILL.md +87 -121
- package/.agent/skills/architecture/SKILL.md +82 -252
- package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
- package/.agent/skills/bash-linux/SKILL.md +120 -154
- package/.agent/skills/behavioral-modes/SKILL.md +8 -69
- package/.agent/skills/brainstorming/SKILL.md +428 -104
- package/.agent/skills/building-native-ui/SKILL.md +143 -174
- package/.agent/skills/clean-code/SKILL.md +323 -360
- package/.agent/skills/code-review-checklist/SKILL.md +0 -62
- package/.agent/skills/config-validator/SKILL.md +107 -141
- package/.agent/skills/csharp-developer/SKILL.md +468 -528
- package/.agent/skills/database-design/SKILL.md +104 -369
- package/.agent/skills/deployment-procedures/SKILL.md +111 -145
- package/.agent/skills/devops-engineer/SKILL.md +295 -332
- package/.agent/skills/devops-incident-responder/SKILL.md +79 -113
- package/.agent/skills/doc.md +5 -5
- package/.agent/skills/documentation-templates/SKILL.md +19 -63
- package/.agent/skills/edge-computing/SKILL.md +123 -157
- package/.agent/skills/extract-design-system/SKILL.md +100 -134
- package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
- package/.agent/skills/frontend-design/SKILL.md +151 -499
- package/.agent/skills/game-design-expert/SKILL.md +71 -105
- package/.agent/skills/game-engineering-expert/SKILL.md +88 -122
- package/.agent/skills/geo-fundamentals/SKILL.md +89 -124
- package/.agent/skills/github-operations/SKILL.md +279 -314
- package/.agent/skills/gsap-expert/SKILL.md +119 -826
- package/.agent/skills/i18n-localization/SKILL.md +104 -138
- package/.agent/skills/intelligent-routing/SKILL.md +159 -127
- package/.agent/skills/lint-and-validate/SKILL.md +8 -52
- package/.agent/skills/llm-engineering/SKILL.md +344 -357
- package/.agent/skills/local-first/SKILL.md +120 -154
- package/.agent/skills/mcp-builder/SKILL.md +84 -118
- package/.agent/skills/mobile-design/SKILL.md +213 -219
- package/.agent/skills/motion-engineering/SKILL.md +184 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
- package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
- package/.agent/skills/observability/SKILL.md +293 -330
- package/.agent/skills/parallel-agents/SKILL.md +88 -122
- package/.agent/skills/performance-profiling/SKILL.md +217 -254
- package/.agent/skills/plan-writing/SKILL.md +84 -118
- package/.agent/skills/platform-engineer/SKILL.md +89 -123
- package/.agent/skills/playwright-best-practices/SKILL.md +128 -162
- package/.agent/skills/powershell-windows/SKILL.md +112 -146
- package/.agent/skills/python-patterns/SKILL.md +7 -35
- package/.agent/skills/python-pro/SKILL.md +148 -754
- package/.agent/skills/react-specialist/SKILL.md +123 -827
- package/.agent/skills/readme-builder/SKILL.md +15 -85
- package/.agent/skills/realtime-patterns/SKILL.md +269 -304
- package/.agent/skills/red-team-tactics/SKILL.md +10 -51
- package/.agent/skills/rust-pro/SKILL.md +623 -701
- package/.agent/skills/seo-fundamentals/SKILL.md +120 -154
- package/.agent/skills/server-management/SKILL.md +156 -190
- package/.agent/skills/shadcn-ui-expert/SKILL.md +172 -206
- package/.agent/skills/skill-creator/SKILL.md +18 -58
- package/.agent/skills/sql-pro/SKILL.md +579 -633
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
- package/.agent/skills/swiftui-expert/SKILL.md +142 -176
- package/.agent/skills/systematic-debugging/SKILL.md +84 -118
- package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
- package/.agent/skills/tdd-workflow/SKILL.md +103 -137
- package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
- package/.agent/skills/testing-patterns/SKILL.md +512 -573
- package/.agent/skills/trend-researcher/SKILL.md +30 -71
- package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
- package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
- package/.agent/skills/vue-expert/SKILL.md +127 -866
- package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
- package/.agent/skills/web-accessibility-auditor/SKILL.md +159 -193
- package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
- package/.agent/skills/webapp-testing/SKILL.md +111 -145
- package/.agent/skills/whimsy-injector/SKILL.md +58 -132
- package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
- package/.agent/workflows/api-tester.md +151 -151
- package/.agent/workflows/audit.md +127 -138
- package/.agent/workflows/brainstorm.md +110 -110
- package/.agent/workflows/changelog.md +112 -112
- package/.agent/workflows/create.md +124 -124
- package/.agent/workflows/debug.md +165 -189
- package/.agent/workflows/deploy.md +180 -189
- package/.agent/workflows/enhance.md +128 -151
- package/.agent/workflows/fix.md +114 -135
- package/.agent/workflows/generate.md +12 -4
- package/.agent/workflows/migrate.md +160 -160
- package/.agent/workflows/orchestrate.md +168 -168
- package/.agent/workflows/performance-benchmarker.md +114 -123
- package/.agent/workflows/plan.md +173 -173
- package/.agent/workflows/preview.md +80 -80
- package/.agent/workflows/refactor.md +161 -183
- package/.agent/workflows/review-ai.md +101 -129
- package/.agent/workflows/review.md +116 -116
- package/.agent/workflows/session.md +94 -94
- package/.agent/workflows/status.md +79 -79
- package/.agent/workflows/strengthen-skills.md +138 -139
- package/.agent/workflows/swarm.md +179 -179
- package/.agent/workflows/test.md +189 -211
- package/.agent/workflows/tribunal-backend.md +93 -113
- package/.agent/workflows/tribunal-database.md +94 -115
- package/.agent/workflows/tribunal-frontend.md +95 -118
- package/.agent/workflows/tribunal-full.md +92 -133
- package/.agent/workflows/tribunal-mobile.md +94 -119
- package/.agent/workflows/tribunal-performance.md +109 -133
- package/.agent/workflows/ui-ux-pro-max.md +122 -143
- package/package.json +1 -1
- package/.agent/skills/api-patterns/api-style.md +0 -42
- package/.agent/skills/api-patterns/auth.md +0 -24
- package/.agent/skills/api-patterns/documentation.md +0 -26
- package/.agent/skills/api-patterns/graphql.md +0 -41
- package/.agent/skills/api-patterns/rate-limiting.md +0 -31
- package/.agent/skills/api-patterns/response.md +0 -37
- package/.agent/skills/api-patterns/rest.md +0 -40
- package/.agent/skills/api-patterns/security-testing.md +0 -122
- package/.agent/skills/api-patterns/trpc.md +0 -41
- package/.agent/skills/api-patterns/versioning.md +0 -22
- package/.agent/skills/app-builder/agent-coordination.md +0 -71
- package/.agent/skills/app-builder/feature-building.md +0 -53
- package/.agent/skills/app-builder/project-detection.md +0 -34
- package/.agent/skills/app-builder/scaffolding.md +0 -118
- package/.agent/skills/app-builder/tech-stack.md +0 -40
- package/.agent/skills/architecture/context-discovery.md +0 -43
- package/.agent/skills/architecture/examples.md +0 -94
- package/.agent/skills/architecture/pattern-selection.md +0 -68
- package/.agent/skills/architecture/patterns-reference.md +0 -50
- package/.agent/skills/architecture/trade-off-analysis.md +0 -77
- package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
- package/.agent/skills/database-design/database-selection.md +0 -43
- package/.agent/skills/database-design/indexing.md +0 -39
- package/.agent/skills/database-design/migrations.md +0 -48
- package/.agent/skills/database-design/optimization.md +0 -36
- package/.agent/skills/database-design/orm-selection.md +0 -30
- package/.agent/skills/database-design/schema-design.md +0 -56
- package/.agent/skills/frontend-design/animation-guide.md +0 -331
- package/.agent/skills/frontend-design/color-system.md +0 -329
- package/.agent/skills/frontend-design/decision-trees.md +0 -418
- package/.agent/skills/frontend-design/motion-graphics.md +0 -306
- package/.agent/skills/frontend-design/typography-system.md +0 -363
- package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
- package/.agent/skills/frontend-design/visual-effects.md +0 -383
- package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
- package/.agent/skills/mobile-design/decision-trees.md +0 -516
- package/.agent/skills/mobile-design/mobile-backend.md +0 -491
- package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
- package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
- package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
- package/.agent/skills/mobile-design/mobile-performance.md +0 -767
- package/.agent/skills/mobile-design/mobile-testing.md +0 -356
- package/.agent/skills/mobile-design/mobile-typography.md +0 -433
- package/.agent/skills/mobile-design/platform-android.md +0 -666
- package/.agent/skills/mobile-design/platform-ios.md +0 -561
- package/.agent/skills/mobile-design/touch-psychology.md +0 -537
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
deep_compress.py - Deep surgical compression for .agent/ markdown files (skills, agents, workflows).
|
|
4
|
+
Targets: repetitive boilerplate, verbose code comments, redundant example sections.
|
|
5
|
+
Safe: never removes H1/H2 headers, never removes HALLUCINATION TRAP lines, never removes code blocks entirely.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import os, re, sys
|
|
9
|
+
|
|
10
|
+
BASE_DIRS = ['.agent/skills', '.agent/agents', '.agent/workflows']
|
|
11
|
+
|
|
12
|
+
# ─── SECTION REMOVAL ─────────────────────────────────────────────────────────
|
|
13
|
+
# These are globally covered by GEMINI.md — strip from all files
|
|
14
|
+
|
|
15
|
+
REMOVE_SECTIONS = [
|
|
16
|
+
r'(?ms)^## 🏛️ Tribunal Integration.*?(?=^## |\Z)',
|
|
17
|
+
r'(?ms)^## Tribunal Integration.*?(?=^## |\Z)',
|
|
18
|
+
r'(?ms)^### ✅ Pre-Flight Self-Audit.*?(?=^### |^## |\Z)',
|
|
19
|
+
r'(?ms)^## Pre-Flight Self-Audit.*?(?=^## |\Z)',
|
|
20
|
+
r'(?ms)^## Cross-Workflow Navigation.*?(?=^## |\Z)',
|
|
21
|
+
r'(?ms)^## LLM Traps.*?(?=^## |\Z)',
|
|
22
|
+
r'(?ms)^## VBC Protocol.*?(?=^## |\Z)',
|
|
23
|
+
r'(?ms)^## Output Format\n```[\s\S]*?```\n',
|
|
24
|
+
r'(?ms)^## 🤖 LLM-Specific Traps.*?(?=^## |\Z)', # covered in GEMINI.md
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
# ─── VERBOSE COMMENT REMOVAL IN CODE BLOCKS ──────────────────────────────────
|
|
28
|
+
# Removes lines that just restate the concept being shown — pure padding
|
|
29
|
+
|
|
30
|
+
VERBOSE_COMMENT_PATTERNS = [
|
|
31
|
+
# e.g. "// Any HTML or SVG element can be prefixed with `motion.`"
|
|
32
|
+
r"(?m)^(\s*)//\s*(?:Any HTML or SVG element|motion\.div, motion\.span|The MAGIC of|This is the key performance|The pattern that|Compound components share|Note that children|The action receives|Children inherit the|Import first|Parent controls when|It's always motion)\b[^\n]*\n",
|
|
33
|
+
# e.g. "# TypedDict gives you autocomplete..."
|
|
34
|
+
r"(?m)^(\s*)#\s*(?:TypedDict gives you|Usage:|Note:|Return user|Return None|Automatically)\b[^\n]*\n",
|
|
35
|
+
# Obvious standalone "// Usage:" label inside code blocks
|
|
36
|
+
r"(?m)^\s*//\s*Usage:\s*\n(?=\s*[<{])",
|
|
37
|
+
r"(?m)^\s*#\s*Usage:\s*\n(?=\s*[{])",
|
|
38
|
+
# "// When server responds..." style obvious follow-on comment
|
|
39
|
+
r"(?m)^\s*//\s*When (?:server responds|a component|React can interrupt|the React Compiler)[^\n]*\n",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
# ─── CHATTY SENTENCE REMOVAL BEFORE FIRST CODE BLOCK ─────────────────────────
|
|
43
|
+
# Removes motivational opener sentences: "X is a paradigm shift. If you..."
|
|
44
|
+
|
|
45
|
+
def strip_chatty_openers(content):
|
|
46
|
+
"""Remove 2-3 sentence filler paragraphs between H1 and first ---"""
|
|
47
|
+
return re.sub(
|
|
48
|
+
r'(^# .+\n)\n.{60,}\n.{30,}\n(?:\n---)',
|
|
49
|
+
r'\1\n---',
|
|
50
|
+
content,
|
|
51
|
+
flags=re.MULTILINE
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
# ─── COLLAPSE NESTED IDENTICAL EXAMPLES ──────────────────────────────────────
|
|
55
|
+
# Many files have "// Legacy" vs "// Modern" comments — compress to 1 block
|
|
56
|
+
|
|
57
|
+
def compress_legacy_modern_blocks(content):
|
|
58
|
+
"""Convert // LEGACY + // MODERN dual examples into compact diff-style"""
|
|
59
|
+
# Pattern: code block with ❌ LEGACY followed immediately by ✅ MODERN
|
|
60
|
+
pattern = re.compile(
|
|
61
|
+
r'```(\w+)\n((?:.*\n)*?.*// ❌ LEGACY[^\n]*\n(?:.*\n)*?)```\n\n```\w+\n((?:.*\n)*?.*// ✅ MODERN[^\n]*\n(?:.*\n)*?)```',
|
|
62
|
+
re.MULTILINE
|
|
63
|
+
)
|
|
64
|
+
# Only compress if the whole block is < 30 lines total
|
|
65
|
+
def compress(m):
|
|
66
|
+
total_lines = m.group(2).count('\n') + m.group(3).count('\n')
|
|
67
|
+
if total_lines > 28:
|
|
68
|
+
return m.group(0) # too big to safely merge — leave alone
|
|
69
|
+
lang = m.group(1)
|
|
70
|
+
legacy = m.group(2).strip()
|
|
71
|
+
modern = m.group(3).strip()
|
|
72
|
+
return f'```{lang}\n// ❌ LEGACY\n{legacy}\n\n// ✅ MODERN\n{modern}\n```'
|
|
73
|
+
return pattern.sub(compress, content)
|
|
74
|
+
|
|
75
|
+
# ─── STRIP EMPTY COMMENT LINES ───────────────────────────────────────────────
|
|
76
|
+
def strip_empty_comments(content):
|
|
77
|
+
"""Remove lines that are ONLY // or #"""
|
|
78
|
+
content = re.sub(r'(?m)^\s*//\s*$\n', '', content)
|
|
79
|
+
content = re.sub(r'(?m)^\s*#\s*$\n', '', content)
|
|
80
|
+
return content
|
|
81
|
+
|
|
82
|
+
# ─── TRIM REPEATED RULES (dedup consecutive bullet points in same section) ───
|
|
83
|
+
def dedup_bullet_points(content):
|
|
84
|
+
"""Remove exact duplicate bullet point lines (often copy-pasted across sections)."""
|
|
85
|
+
lines = content.split('\n')
|
|
86
|
+
seen_bullets = {}
|
|
87
|
+
output = []
|
|
88
|
+
for i, line in enumerate(lines):
|
|
89
|
+
stripped = line.strip()
|
|
90
|
+
if stripped.startswith(('✅', '❌', '- ✅', '- ❌')):
|
|
91
|
+
if stripped in seen_bullets and i - seen_bullets[stripped] < 80:
|
|
92
|
+
continue # skip duplicate within 80 lines
|
|
93
|
+
seen_bullets[stripped] = i
|
|
94
|
+
output.append(line)
|
|
95
|
+
return '\n'.join(output)
|
|
96
|
+
|
|
97
|
+
# ─── COLLAPSE BLANKS ─────────────────────────────────────────────────────────
|
|
98
|
+
def collapse_blanks(content):
|
|
99
|
+
return re.sub(r'\n{3,}', '\n\n', content)
|
|
100
|
+
|
|
101
|
+
# ─── REMOVE REDUNDANT IMPORTS IN COMMENTS ────────────────────────────────────
|
|
102
|
+
# Some files have // import { x } from "y" repeated in every example
|
|
103
|
+
|
|
104
|
+
def compress_import_repetition(content):
|
|
105
|
+
"""If same import line appears in 3+ separate code blocks, add a note and strip repetitions."""
|
|
106
|
+
import_line = re.compile(r'import \{[^}]+\} from "[^"]+";')
|
|
107
|
+
matches = import_line.findall(content)
|
|
108
|
+
freq = {}
|
|
109
|
+
for m in matches:
|
|
110
|
+
freq[m] = freq.get(m, 0) + 1
|
|
111
|
+
|
|
112
|
+
for imp, count in freq.items():
|
|
113
|
+
if count >= 4:
|
|
114
|
+
# First occurrence: keep it. Subsequent ones: replace with comment
|
|
115
|
+
first_done = [False]
|
|
116
|
+
def replacer(m, imp=imp, first_done=first_done):
|
|
117
|
+
if m.group(0) == imp:
|
|
118
|
+
if not first_done[0]:
|
|
119
|
+
first_done[0] = True
|
|
120
|
+
return m.group(0)
|
|
121
|
+
return f'// {imp} ← (already imported above)'
|
|
122
|
+
return m.group(0)
|
|
123
|
+
content = import_line.sub(replacer, content)
|
|
124
|
+
return content
|
|
125
|
+
|
|
126
|
+
# ─── MAIN PIPELINE ──────────────────────────────────────────────────────────
|
|
127
|
+
|
|
128
|
+
def compress_file(path):
|
|
129
|
+
with open(path, 'r', encoding='utf-8', errors='ignore') as f:
|
|
130
|
+
original = f.read()
|
|
131
|
+
|
|
132
|
+
content = original
|
|
133
|
+
|
|
134
|
+
# 1. Strip global boilerplate sections
|
|
135
|
+
for pattern in REMOVE_SECTIONS:
|
|
136
|
+
content = re.sub(pattern, '', content)
|
|
137
|
+
|
|
138
|
+
# 2. Strip chatty openers
|
|
139
|
+
content = strip_chatty_openers(content)
|
|
140
|
+
|
|
141
|
+
# 3. Compress legacy/modern dual blocks
|
|
142
|
+
content = compress_legacy_modern_blocks(content)
|
|
143
|
+
|
|
144
|
+
# 4. Verbose inline code comment removal
|
|
145
|
+
for pattern in VERBOSE_COMMENT_PATTERNS:
|
|
146
|
+
content = re.sub(pattern, '', content)
|
|
147
|
+
|
|
148
|
+
# 5. Strip empty comment lines
|
|
149
|
+
content = strip_empty_comments(content)
|
|
150
|
+
|
|
151
|
+
# 6. Deduplicate bullet points
|
|
152
|
+
content = dedup_bullet_points(content)
|
|
153
|
+
|
|
154
|
+
# 7. Collapse 3+ blank lines
|
|
155
|
+
content = collapse_blanks(content)
|
|
156
|
+
|
|
157
|
+
# Write back only if changed
|
|
158
|
+
if content.strip() != original.strip():
|
|
159
|
+
with open(path, 'w', encoding='utf-8') as f:
|
|
160
|
+
f.write(content.strip() + '\n')
|
|
161
|
+
|
|
162
|
+
return len(original), len(content)
|
|
163
|
+
|
|
164
|
+
def main():
|
|
165
|
+
total_orig = 0
|
|
166
|
+
total_new = 0
|
|
167
|
+
file_results = []
|
|
168
|
+
|
|
169
|
+
for base in BASE_DIRS:
|
|
170
|
+
if not os.path.exists(base):
|
|
171
|
+
continue
|
|
172
|
+
for root, _, files in os.walk(base):
|
|
173
|
+
for fname in files:
|
|
174
|
+
if fname.endswith('.md'):
|
|
175
|
+
path = os.path.join(root, fname)
|
|
176
|
+
orig, new = compress_file(path)
|
|
177
|
+
total_orig += orig
|
|
178
|
+
total_new += new
|
|
179
|
+
saved = orig - new
|
|
180
|
+
if saved > 200:
|
|
181
|
+
rel = os.path.relpath(path, '.')
|
|
182
|
+
file_results.append((saved, rel))
|
|
183
|
+
|
|
184
|
+
file_results.sort(reverse=True)
|
|
185
|
+
|
|
186
|
+
saved_total = total_orig - total_new
|
|
187
|
+
pct = saved_total / total_orig * 100 if total_orig else 0
|
|
188
|
+
|
|
189
|
+
print(f"\n{'='*58}")
|
|
190
|
+
print(f" Deep Compression Complete")
|
|
191
|
+
print(f"{'='*58}")
|
|
192
|
+
print(f" Original : {total_orig:,} bytes ({total_orig//1024}KB)")
|
|
193
|
+
print(f" After : {total_new:,} bytes ({total_new//1024}KB)")
|
|
194
|
+
print(f" Saved : {saved_total:,} bytes ({saved_total//1024}KB) — {pct:.1f}%")
|
|
195
|
+
print(f"\n Top savings:")
|
|
196
|
+
for saved, path in file_results[:20]:
|
|
197
|
+
skill = '/'.join(path.replace('\\','/').split('/')[-2:])
|
|
198
|
+
print(f" -{saved//1024:2}KB {skill}")
|
|
199
|
+
print()
|
|
200
|
+
|
|
201
|
+
if __name__ == '__main__':
|
|
202
|
+
main()
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import re
|
|
3
|
+
|
|
4
|
+
def minify_markdown(file_path):
|
|
5
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
|
6
|
+
content = f.read()
|
|
7
|
+
|
|
8
|
+
original_len = len(content)
|
|
9
|
+
|
|
10
|
+
# 1. Strip repetitive Output Format templates (These are huge and the LLM already knows how to output the Tribunal format from GEMINI.md)
|
|
11
|
+
content = re.sub(r'## Output Format\n\n```[\s\S]*?```\n', '', content)
|
|
12
|
+
|
|
13
|
+
# 2. Convert bloated Cross-Workflow Navigation tables to dense YAML lists
|
|
14
|
+
# Find tables under Cross-Workflow Navigation
|
|
15
|
+
def replace_table_with_list(match):
|
|
16
|
+
table_text = match.group(0)
|
|
17
|
+
lines = table_text.strip().split('\n')
|
|
18
|
+
out = []
|
|
19
|
+
for line in lines:
|
|
20
|
+
if line.startswith('|') and not line.startswith('|:') and not line.startswith('| After'):
|
|
21
|
+
parts = [p.strip() for p in line.split('|') if p.strip()]
|
|
22
|
+
if len(parts) >= 2:
|
|
23
|
+
out.append(f"- {parts[0]} -> {parts[1]}")
|
|
24
|
+
return "\n".join(out) + "\n"
|
|
25
|
+
|
|
26
|
+
content = re.sub(r'## Cross-Workflow Navigation\n\n\|.*?\|[\s\S]*?(?=\n## |\Z)', lambda m: '## Cross-Workflow Navigation\n' + replace_table_with_list(m), content)
|
|
27
|
+
|
|
28
|
+
# 3. Collapse multiple empty lines into a single one
|
|
29
|
+
content = re.sub(r'\n{3,}', '\n\n', content)
|
|
30
|
+
|
|
31
|
+
# 4. Remove padding from remaining tables to save space tokens
|
|
32
|
+
def unpad_table(match):
|
|
33
|
+
line = match.group(0)
|
|
34
|
+
# remove spaces around |
|
|
35
|
+
line = re.sub(r'\s+\|\s+', '|', line)
|
|
36
|
+
line = re.sub(r'\|\s+', '|', line)
|
|
37
|
+
line = re.sub(r'\s+\|', '|', line)
|
|
38
|
+
return line
|
|
39
|
+
content = re.sub(r'^\|.+|$', unpad_table, content, flags=re.MULTILINE)
|
|
40
|
+
|
|
41
|
+
# 5. Remove conversational blockquotes > if they don't contain WARNING/NOTE/IMPORTANT
|
|
42
|
+
def remove_conversational_quotes(match):
|
|
43
|
+
text = match.group(0)
|
|
44
|
+
if '⚠️' in text or 'WARNING' in text or 'CRITICAL' in text or '!' in text:
|
|
45
|
+
return text
|
|
46
|
+
# Otherwise just return the text without quote
|
|
47
|
+
return text.replace('> ', '').replace('>', '')
|
|
48
|
+
content = re.sub(r'^>.*$', remove_conversational_quotes, content, flags=re.MULTILINE)
|
|
49
|
+
|
|
50
|
+
# 6. Dense Examples (convert ❌ Bad: and ✅ Good: blocks to single lines)
|
|
51
|
+
content = content.replace('\n❌ Bad:', ' ❌')
|
|
52
|
+
content = content.replace('\n✅ Good:', ' ✅')
|
|
53
|
+
|
|
54
|
+
with open(file_path, 'w', encoding='utf-8') as f:
|
|
55
|
+
f.write(content)
|
|
56
|
+
|
|
57
|
+
return original_len, len(content)
|
|
58
|
+
|
|
59
|
+
def main():
|
|
60
|
+
agent_dir = os.path.join('.agent')
|
|
61
|
+
total_original = 0
|
|
62
|
+
total_new = 0
|
|
63
|
+
|
|
64
|
+
for root, _, files in os.walk(agent_dir):
|
|
65
|
+
for file in files:
|
|
66
|
+
if file.endswith('.md'):
|
|
67
|
+
file_path = os.path.join(root, file)
|
|
68
|
+
orig, new = minify_markdown(file_path)
|
|
69
|
+
total_original += orig
|
|
70
|
+
total_new += new
|
|
71
|
+
|
|
72
|
+
saved = total_original - total_new
|
|
73
|
+
percent = (saved / total_original * 100) if total_original > 0 else 0
|
|
74
|
+
print(f"Minification Complete.")
|
|
75
|
+
print(f"Original size: {total_original} bytes")
|
|
76
|
+
print(f"New size: {total_new} bytes")
|
|
77
|
+
print(f"Saved: {saved} bytes ({percent:.1f}%)")
|
|
78
|
+
|
|
79
|
+
if __name__ == '__main__':
|
|
80
|
+
main()
|
|
@@ -32,7 +32,7 @@ BOLD = "\033[1m"
|
|
|
32
32
|
RESET = "\033[0m"
|
|
33
33
|
|
|
34
34
|
SOURCE_EXTENSIONS = {".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".java", ".rb"}
|
|
35
|
-
SKIP_DIRS = {"node_modules", ".git", "dist", "build", "__pycache__", ".agent", ".next", "vendor"}
|
|
35
|
+
SKIP_DIRS = {"node_modules", ".git", "dist", "build", "__pycache__", ".agent", ".next", "vendor", "coverage", "lcov-report", ".nyc_output", "test-results", ".jest-cache"}
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
@dataclass
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import re
|
|
3
|
+
|
|
4
|
+
def strip_boilerplate(file_path):
|
|
5
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
|
6
|
+
content = f.read()
|
|
7
|
+
|
|
8
|
+
original_len = len(content)
|
|
9
|
+
|
|
10
|
+
# Regex to find everything from "## 🏛️ Tribunal Integration" (or without emojis) to the end of the file or next major H1
|
|
11
|
+
# Often it appears at the end of agents
|
|
12
|
+
content = re.sub(r'## 🏛️ Tribunal Integration[\s\S]*?(?=\n# |\Z)', '', content)
|
|
13
|
+
content = re.sub(r'## Tribunal Integration[\s\S]*?(?=\n# |\Z)', '', content)
|
|
14
|
+
|
|
15
|
+
# Strip Cross-Workflow Navigation since GEMINI.md has global handling
|
|
16
|
+
content = re.sub(r'## Cross-Workflow Navigation[\s\S]*?(?=\n# |\Z)', '', content)
|
|
17
|
+
|
|
18
|
+
# Strip What the Maker Is Not Allowed to Do (it's in GEMINI.md)
|
|
19
|
+
content = re.sub(r'## What the Maker Is Not Allowed to Do[\s\S]*?(?=\n# |\Z)', '', content)
|
|
20
|
+
|
|
21
|
+
with open(file_path, 'w', encoding='utf-8') as f:
|
|
22
|
+
f.write(content.strip() + '\n')
|
|
23
|
+
|
|
24
|
+
return original_len, len(content)
|
|
25
|
+
|
|
26
|
+
def main():
|
|
27
|
+
dirs_to_check = ['.agent/agents', '.agent/workflows']
|
|
28
|
+
total_stripped = 0
|
|
29
|
+
|
|
30
|
+
for d in dirs_to_check:
|
|
31
|
+
if not os.path.exists(d): continue
|
|
32
|
+
for file in os.listdir(d):
|
|
33
|
+
if file.endswith('.md'):
|
|
34
|
+
file_path = os.path.join(d, file)
|
|
35
|
+
orig, new = strip_boilerplate(file_path)
|
|
36
|
+
total_stripped += (orig - new)
|
|
37
|
+
|
|
38
|
+
print(f"Stripped {total_stripped} bytes of repetitive boilerplate.")
|
|
39
|
+
|
|
40
|
+
if __name__ == '__main__':
|
|
41
|
+
main()
|
|
@@ -1,126 +1,92 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agent-organizer
|
|
3
|
-
description: Master Agent orchestration framework. Coordination of sub-agents, workflow definitions, delegation patterns, state management across conversations, memory distillation, and execution loops. Use when assembling multi-agent systems or managing complex agent-to-agent architectures.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version: 2.0.0
|
|
6
|
-
last-updated: 2026-04-02
|
|
7
|
-
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Agent Organizer — Multi-Agent Orchestration Mastery
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
|
50
|
-
├─> [Dispatches:
|
|
51
|
-
| (Worker
|
|
52
|
-
|
|
|
53
|
-
|
|
54
|
-
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
2. **Recovery Gate (After 3 Failures):** "The database migration script has failed 3 times. I am halting. How would you like to proceed?"
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## 🤖 LLM-Specific Traps (Agent Organization)
|
|
98
|
-
|
|
99
|
-
1. **The Context Dump:** Sending highly-specialized worker agents the entire chat transcript. Workers become confused by the broader goals instead of focusing on their localized task.
|
|
100
|
-
2. **Infinite Loops:** Having two agents argue with each other (e.g., Code Generator vs Linter) infinitely. The Organizer MUST implement a hard limit (e.g., max 3 iterations) before halting and escalating to the human.
|
|
101
|
-
3. **God-Agent Regression:** The Organizer attempting to write the code itself instead of actively routing the request to the designated `python-pro` or `react-specialist`.
|
|
102
|
-
4. **Vague Instructions:** Delegating tasks with "Fix the UI" instead of "Review `src/Header.tsx` and adjust padding to standard 4px increments."
|
|
103
|
-
5. **Loss of Task Tracking:** Delegating multiple tasks in parallel and forgetting to update the central tracking `task.md` file, leading to redundant work or dropped constraints.
|
|
104
|
-
6. **Premature Completion:** The Supervisor telling the user the workflow is finished before the individual worker agents have successfully returned positive exit signals.
|
|
105
|
-
7. **Ignoring Worker Feedback:** A worker agent returns `BLOCKED` due to missing dependencies, and the Supervisor blindly continues executing the next dependent step in the workflow.
|
|
106
|
-
8. **Format Mixing:** Expecting natural language responses from a worker, but feeding it into a CLI script that expects structured JSON parameters.
|
|
107
|
-
9. **No Fallback State:** Dispatching a worker to modify files without snapshotting/branching. If the worker hallucinates, there is no easy rollback.
|
|
108
|
-
10. **Bypassing the Socratic Gate:** Autonomous agents deciding on major architectural pivots without seeking explicit human confirmation first.
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## 🏛️ Tribunal Integration
|
|
113
|
-
|
|
114
|
-
### ✅ Pre-Flight Self-Audit
|
|
115
|
-
```
|
|
116
|
-
✅ Are instructions sent to worker agents localized, stripped of unnecessary global context?
|
|
117
|
-
✅ Has a strict maximum-iteration limit been defined to prevent infinite agent argument loops?
|
|
118
|
-
✅ Is the global state properly documented and maintained within the `task.md` file?
|
|
119
|
-
✅ Did the Organizer strictly act as a router rather than assuming execution duties?
|
|
120
|
-
✅ Are worker agent responses processed using strict formatting (e.g., JSON schemas)?
|
|
121
|
-
✅ Have human-in-the-loop Approval Gates been enforced prior to destructive actions?
|
|
122
|
-
✅ Are dependencies formally mapped (e.g., Backend Worker must finish before Frontend Worker begins)?
|
|
123
|
-
✅ Are worker failure states (`BLOCKED`, `ERROR`) explicitly caught and handled by the Supervisor?
|
|
124
|
-
✅ Does the system gracefully halt and explicitly prompt the user after 3 sequential execution failures?
|
|
125
|
-
✅ Did I ensure the worker relies on explicitly designated skills/manifests rather than generalized knowledge?
|
|
126
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: agent-organizer
|
|
3
|
+
description: Master Agent orchestration framework. Coordination of sub-agents, workflow definitions, delegation patterns, state management across conversations, memory distillation, and execution loops. Use when assembling multi-agent systems or managing complex agent-to-agent architectures.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
last-updated: 2026-04-02
|
|
7
|
+
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Agent Organizer — Multi-Agent Orchestration Mastery
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. The Delegation Sub-Agent Pattern
|
|
15
|
+
|
|
16
|
+
Agents should defer specific domain problems to specialized sub-agents.
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
// Define the payload contract the Worker Agent expects
|
|
20
|
+
{
|
|
21
|
+
"taskId": "task-auth-migration-01",
|
|
22
|
+
"workerRole": "api-security-auditor",
|
|
23
|
+
"isolatedContext": {
|
|
24
|
+
"filesToScan": ["src/login.ts", "src/middleware.ts"],
|
|
25
|
+
"objective": "Identify unprotected mass assignments"
|
|
26
|
+
},
|
|
27
|
+
"requiredOutputFormat": "json_list"
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Delegation Rules:
|
|
32
|
+
1. **Never pass full histories:** Do not pass the entire conversation history to a worker sub-agent. Extract only the exact files and goal context required. (Context Window Budgeting).
|
|
33
|
+
2. **Clear Boundaries:** If the worker is fixing CSS, it must not invent logic for the database.
|
|
34
|
+
3. **Structured Handoff:** The parent agent requests JSON from the worker, parses it, and then acts. Let machines talk to machines through syntax, not prose.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. Execution Loops (Supervisor Pattern)
|
|
39
|
+
|
|
40
|
+
A Supervisor decides *who* works and *when*, but does not execute the work.
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
[User Request: "Add OAuth and secure it"]
|
|
44
|
+
|
|
|
45
|
+
[Supervisor Agent analyzing required skills...]
|
|
46
|
+
|
|
|
47
|
+
├─> [Dispatches: authentication-best-practices]
|
|
48
|
+
| (Worker builds OAuth implementation)
|
|
49
|
+
|
|
|
50
|
+
├─> [Dispatches: api-security-auditor]
|
|
51
|
+
| (Worker reviews implementation against OWASP)
|
|
52
|
+
|
|
|
53
|
+
[Supervisor Agent synthesizes findings]
|
|
54
|
+
|
|
|
55
|
+
[Action Executed / Git Commit]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Handoff Signals
|
|
59
|
+
A worker must return definitive state signals when yielding control:
|
|
60
|
+
- `COMPLETE`: Goal achieved. Final diff generated.
|
|
61
|
+
- `BLOCKED`: Missing context (e.g., "I need the `.env` schema").
|
|
62
|
+
- `ERROR`: Script failed, requires manual Supervisor intervention.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 3. Session State Management (Memory)
|
|
67
|
+
|
|
68
|
+
Agents lose memory across boundaries. The Organizer must explicitly persist context.
|
|
69
|
+
|
|
70
|
+
1. **Short-Term Context:** Maintained natively in the active LLM context window.
|
|
71
|
+
2. **Task State:** Maintained locally in `task.md`. Workers check-in and check-out checkboxes.
|
|
72
|
+
3. **Long-Term Memory:** "Knowledge Items" (KIs). Distilling massive conversations down into a single `learnings.json` file injected on subsequent startups.
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
<!-- task.md (The Global Execution State) -->
|
|
76
|
+
# Current Objective: Build Chat Feature
|
|
77
|
+
- [x] Initialize websocket connection
|
|
78
|
+
- [/] (Worker: frontend-specialist) Build Chat UI component
|
|
79
|
+
- [ ] (Worker: realtime-patterns) Implement presence sync
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 4. The Human-in-the-Loop (Socratic Gate)
|
|
85
|
+
|
|
86
|
+
Automation without oversight is reckless. The Organizer manages when to pause and query the human.
|
|
87
|
+
|
|
88
|
+
**Mandatory Gates:**
|
|
89
|
+
1. **Approval Gate (Before Execution):** "I have drafted the architecture plan. Do you approve execution?"
|
|
90
|
+
2. **Recovery Gate (After 3 Failures):** "The database migration script has failed 3 times. I am halting. How would you like to proceed?"
|
|
91
|
+
|
|
92
|
+
---
|
|
@@ -9,9 +9,6 @@ applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
|
9
9
|
|
|
10
10
|
# Agentic Patterns
|
|
11
11
|
|
|
12
|
-
> An agent is a loop. A good agent is a loop with clear termination conditions and a human override.
|
|
13
|
-
> An agent without guardrails is a liability, not a feature.
|
|
14
|
-
|
|
15
12
|
---
|
|
16
13
|
|
|
17
14
|
## The Agent Loop
|
|
@@ -265,71 +262,4 @@ VBC status: PENDING → VERIFIED
|
|
|
265
262
|
Evidence: [link to terminal output, test result, or file diff]
|
|
266
263
|
```
|
|
267
264
|
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## 🏛️ Tribunal Integration (Anti-Hallucination)
|
|
272
|
-
|
|
273
|
-
**Slash command: `/review-ai`**
|
|
274
|
-
**Active reviewers: `logic` · `security` · `ai-code-reviewer`**
|
|
275
|
-
|
|
276
|
-
### ❌ Forbidden AI Tropes in Agentic Systems
|
|
277
|
-
|
|
278
|
-
1. **Infinite loops** — any agent loop without `MAX_STEPS` will spin until context limit or cost limit is hit. Always define a hard cap.
|
|
279
|
-
2. **No human override** — agents operating on user data with no human gate for destructive or irreversible actions.
|
|
280
|
-
3. **Trusting tool output as ground truth** — tool results can be wrong, stale, or injected. Always validate before acting on them.
|
|
281
|
-
4. **Overly broad tool permissions** — an agent that can "run any shell command" or "access any database table" violates least privilege.
|
|
282
|
-
5. **No cost cap** — `Promise.all(100 tasks × $0.10 each)` = $10 surprise bill per trigger. Set cost limits at the session level.
|
|
283
|
-
|
|
284
|
-
### ✅ Pre-Flight Self-Audit
|
|
285
|
-
|
|
286
|
-
```
|
|
287
|
-
✅ Is there a hard MAX_STEPS limit on every agent loop?
|
|
288
|
-
✅ Are irreversible actions gated behind human approval?
|
|
289
|
-
✅ Are tool results validated before being acted upon?
|
|
290
|
-
✅ Does each agent follow least-privilege tool access (not "all tools")?
|
|
291
|
-
✅ Is there a per-session token and cost cap?
|
|
292
|
-
✅ Is there an output guardrail checking for hallucinated citations or schema violations?
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
## 🤖 LLM-Specific Traps
|
|
299
|
-
|
|
300
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
301
|
-
|
|
302
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
303
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
304
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
305
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
306
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
307
|
-
|
|
308
265
|
---
|
|
309
|
-
|
|
310
|
-
## 🏛️ Tribunal Integration (Anti-Hallucination)
|
|
311
|
-
|
|
312
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
313
|
-
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
314
|
-
|
|
315
|
-
### ❌ Forbidden AI Tropes
|
|
316
|
-
|
|
317
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
318
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
319
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
320
|
-
|
|
321
|
-
### ✅ Pre-Flight Self-Audit
|
|
322
|
-
|
|
323
|
-
Review these questions before confirming output:
|
|
324
|
-
```
|
|
325
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
326
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
327
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
328
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
332
|
-
|
|
333
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
334
|
-
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
335
|
-
- ✅ **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.
|