tribunal-kit 4.5.0 → 4.6.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/.shared/ui-ux-pro-max/README.md +4 -4
- package/.agent/ARCHITECTURE.md +279 -277
- package/.agent/GEMINI.md +127 -121
- package/.agent/agents/accessibility-reviewer.md +187 -187
- package/.agent/agents/ai-code-reviewer.md +199 -199
- package/.agent/agents/api-architect.md +71 -66
- package/.agent/agents/backend-specialist.md +219 -215
- package/.agent/agents/cloud-engineer.md +98 -0
- package/.agent/agents/code-archaeologist.md +168 -161
- package/.agent/agents/database-architect.md +184 -184
- package/.agent/agents/db-latency-auditor.md +213 -216
- package/.agent/agents/debugger.md +198 -191
- package/.agent/agents/dependency-reviewer.md +106 -103
- package/.agent/agents/devops-engineer.md +218 -218
- package/.agent/agents/documentation-writer.md +209 -201
- package/.agent/agents/explorer-agent.md +167 -160
- package/.agent/agents/frontend-reviewer.md +162 -160
- package/.agent/agents/frontend-specialist.md +257 -248
- package/.agent/agents/game-developer.md +48 -48
- package/.agent/agents/logic-reviewer.md +118 -116
- package/.agent/agents/mobile-developer.md +197 -200
- package/.agent/agents/mobile-reviewer.md +159 -162
- package/.agent/agents/orchestrator.md +187 -181
- package/.agent/agents/penetration-tester.md +160 -157
- package/.agent/agents/performance-optimizer.md +183 -183
- package/.agent/agents/performance-reviewer.md +178 -178
- package/.agent/agents/precedence-reviewer.md +251 -250
- package/.agent/agents/product-manager.md +149 -142
- package/.agent/agents/product-owner.md +81 -80
- package/.agent/agents/project-planner.md +152 -142
- package/.agent/agents/qa-automation-engineer.md +216 -225
- package/.agent/agents/resilience-reviewer.md +88 -88
- package/.agent/agents/schema-reviewer.md +67 -67
- package/.agent/agents/security-auditor.md +180 -174
- package/.agent/agents/seo-specialist.md +188 -193
- package/.agent/agents/sql-reviewer.md +159 -161
- package/.agent/agents/supervisor-agent.md +173 -184
- package/.agent/agents/swarm-worker-contracts.md +170 -166
- package/.agent/agents/swarm-worker-registry.md +92 -92
- package/.agent/agents/system-architect.md +85 -0
- package/.agent/agents/test-coverage-reviewer.md +158 -160
- package/.agent/agents/test-engineer.md +118 -118
- package/.agent/agents/throughput-optimizer.md +291 -299
- package/.agent/agents/type-safety-reviewer.md +182 -175
- package/.agent/agents/ui-ux-auditor.md +300 -292
- package/.agent/agents/vitals-reviewer.md +223 -223
- package/.agent/mcp_config.json +37 -40
- package/.agent/patterns/generator.md +11 -9
- package/.agent/patterns/inversion.md +14 -12
- package/.agent/patterns/pipeline.md +11 -9
- package/.agent/patterns/reviewer.md +15 -13
- package/.agent/patterns/tool-wrapper.md +11 -9
- package/.agent/routing_index.json +654 -0
- package/.agent/rules/GEMINI.md +358 -352
- package/.agent/scripts/compile_router.py +112 -0
- package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
- package/.agent/scripts/strengthen_skills.js +1 -1
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
- package/.agent/skills/agent-organizer/SKILL.md +156 -150
- package/.agent/skills/agentic-patterns/SKILL.md +313 -315
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
- package/.agent/skills/api-patterns/SKILL.md +253 -247
- package/.agent/skills/api-security-auditor/SKILL.md +195 -193
- package/.agent/skills/app-builder/SKILL.md +573 -572
- package/.agent/skills/app-builder/templates/SKILL.md +108 -115
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
- package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
- package/.agent/skills/architecture/SKILL.md +226 -219
- package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
- package/.agent/skills/backend-security-expert/SKILL.md +16 -2
- package/.agent/skills/bash-linux/SKILL.md +179 -179
- package/.agent/skills/behavioral-modes/SKILL.md +239 -223
- package/.agent/skills/brainstorming/SKILL.md +498 -486
- package/.agent/skills/browser-native-ai/SKILL.md +57 -4
- package/.agent/skills/building-native-ui/SKILL.md +202 -202
- package/.agent/skills/cicd-pro/SKILL.md +442 -0
- package/.agent/skills/clean-code/SKILL.md +400 -381
- package/.agent/skills/cloud-architect/SKILL.md +439 -0
- package/.agent/skills/code-review-checklist/SKILL.md +203 -194
- package/.agent/skills/config-validator/SKILL.md +165 -165
- package/.agent/skills/containerization-pro/SKILL.md +452 -0
- package/.agent/skills/csharp-developer/SKILL.md +518 -518
- package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
- package/.agent/skills/database-design/SKILL.md +247 -240
- package/.agent/skills/deployment-procedures/SKILL.md +172 -169
- package/.agent/skills/devops-engineer/SKILL.md +345 -345
- package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
- package/.agent/skills/doc.md +209 -177
- package/.agent/skills/documentation-templates/SKILL.md +291 -279
- package/.agent/skills/edge-computing/SKILL.md +183 -181
- package/.agent/skills/error-resilience/SKILL.md +411 -428
- package/.agent/skills/extract-design-system/SKILL.md +160 -158
- package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
- package/.agent/skills/frontend-design/SKILL.md +208 -201
- package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
- package/.agent/skills/game-design-expert/SKILL.md +132 -129
- package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
- package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
- package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
- package/.agent/skills/git-pro/SKILL.md +435 -0
- package/.agent/skills/github-operations/SKILL.md +335 -329
- package/.agent/skills/gsap-core/SKILL.md +319 -308
- package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
- package/.agent/skills/gsap-performance/SKILL.md +139 -133
- package/.agent/skills/gsap-plugins/SKILL.md +486 -480
- package/.agent/skills/gsap-react/SKILL.md +202 -189
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
- package/.agent/skills/gsap-timeline/SKILL.md +165 -161
- package/.agent/skills/gsap-utils/SKILL.md +344 -338
- package/.agent/skills/harness-protocol/SKILL.md +48 -0
- package/.agent/skills/i18n-localization/SKILL.md +174 -163
- package/.agent/skills/intelligent-routing/SKILL.md +202 -246
- package/.agent/skills/knowledge-graph/SKILL.md +60 -52
- package/.agent/skills/lint-and-validate/SKILL.md +261 -261
- package/.agent/skills/llm-engineering/SKILL.md +400 -394
- package/.agent/skills/local-first/SKILL.md +178 -178
- package/.agent/skills/mcp-builder/SKILL.md +143 -142
- package/.agent/skills/mobile-design/SKILL.md +272 -263
- package/.agent/skills/monorepo-management/SKILL.md +335 -334
- package/.agent/skills/motion-engineering/SKILL.md +266 -234
- package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
- package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
- package/.agent/skills/observability/SKILL.md +343 -343
- package/.agent/skills/parallel-agents/SKILL.md +143 -146
- package/.agent/skills/performance-profiling/SKILL.md +259 -267
- package/.agent/skills/plan-writing/SKILL.md +150 -142
- package/.agent/skills/platform-engineer/SKILL.md +148 -147
- package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
- package/.agent/skills/powershell-windows/SKILL.md +162 -162
- package/.agent/skills/project-idioms/SKILL.md +137 -137
- package/.agent/skills/python-patterns/SKILL.md +260 -259
- package/.agent/skills/python-pro/SKILL.md +324 -323
- package/.agent/skills/react-specialist/SKILL.md +305 -277
- package/.agent/skills/readme-builder/SKILL.md +310 -300
- package/.agent/skills/realtime-patterns/SKILL.md +323 -319
- package/.agent/skills/red-team-tactics/SKILL.md +231 -218
- package/.agent/skills/rust-pro/SKILL.md +671 -673
- package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
- package/.agent/skills/server-management/SKILL.md +218 -214
- package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
- package/.agent/skills/skill-creator/SKILL.md +87 -86
- package/.agent/skills/sql-pro/SKILL.md +629 -629
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
- package/.agent/skills/swiftui-expert/SKILL.md +204 -201
- package/.agent/skills/system-design-pro/SKILL.md +345 -0
- package/.agent/skills/systematic-debugging/SKILL.md +153 -142
- package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
- package/.agent/skills/tdd-workflow/SKILL.md +169 -161
- package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
- package/.agent/skills/testing-patterns/SKILL.md +566 -579
- package/.agent/skills/trend-researcher/SKILL.md +243 -237
- package/.agent/skills/typescript-advanced/SKILL.md +336 -335
- package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
- package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
- package/.agent/skills/vue-expert/SKILL.md +294 -275
- package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
- package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
- package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
- package/.agent/skills/webapp-testing/SKILL.md +167 -169
- package/.agent/skills/webgpu-performance/SKILL.md +56 -2
- package/.agent/skills/whimsy-injector/SKILL.md +346 -325
- package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
- package/.agent/workflows/acf.md +141 -0
- package/.agent/workflows/api-tester.md +176 -151
- package/.agent/workflows/audit.md +150 -127
- package/.agent/workflows/brainstorm.md +134 -110
- package/.agent/workflows/changelog.md +140 -112
- package/.agent/workflows/create.md +168 -124
- package/.agent/workflows/debug.md +190 -165
- package/.agent/workflows/deploy.md +201 -180
- package/.agent/workflows/enhance.md +154 -128
- package/.agent/workflows/fix.md +136 -114
- package/.agent/workflows/generate.md +198 -183
- package/.agent/workflows/marathon.md +37 -11
- package/.agent/workflows/migrate.md +184 -160
- package/.agent/workflows/orchestrate.md +192 -168
- package/.agent/workflows/performance-benchmarker.md +135 -114
- package/.agent/workflows/plan.md +196 -173
- package/.agent/workflows/preview.md +103 -80
- package/.agent/workflows/refactor.md +192 -161
- package/.agent/workflows/review-ai.md +125 -101
- package/.agent/workflows/review.md +141 -116
- package/.agent/workflows/session.md +122 -94
- package/.agent/workflows/status.md +101 -79
- package/.agent/workflows/strengthen-skills.md +164 -138
- package/.agent/workflows/super-prompt.md +24 -0
- package/.agent/workflows/swarm.md +193 -179
- package/.agent/workflows/test.md +211 -189
- package/.agent/workflows/tribunal-backend.md +136 -105
- package/.agent/workflows/tribunal-database.md +122 -95
- package/.agent/workflows/tribunal-frontend.md +221 -96
- package/.agent/workflows/tribunal-full.md +129 -100
- package/.agent/workflows/tribunal-mobile.md +122 -95
- package/.agent/workflows/tribunal-performance.md +136 -110
- package/.agent/workflows/tribunal-speed.md +209 -183
- package/.agent/workflows/ui-ux-pro-max.md +145 -122
- package/README.md +107 -55
- package/bin/mcp-server.js +159 -0
- package/bin/tribunal-kit.js +105 -29
- package/bin/wrapper.js +16 -7
- package/mcp_config.json +9 -0
- package/package.json +94 -86
- package/scripts/changelog.js +4 -3
- package/scripts/validate-payload.js +6 -1
- package/scripts/postinstall.js +0 -127
|
@@ -1,319 +1,315 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agentic-patterns
|
|
3
|
-
description: AI agent design principles. Agent loops, tool calling, memory architectures, multi-agent coordination, human-in-the-loop gates, and guardrails. Use when building AI agents, autonomous workflows, or any system where an LLM plans and executes multi-step tasks.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
last-updated: 2026-03-12
|
|
7
|
-
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
51
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
→
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
→
|
|
113
|
-
→ Good for: learning from past mistakes, auditability
|
|
114
|
-
|
|
115
|
-
PROCEDURAL MEMORY (system prompt + tools):
|
|
116
|
-
→ How the agent knows to behave and what it can do
|
|
117
|
-
→ Good for: skills, personas, behavior rules
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
```ts
|
|
121
|
-
// External memory: retrieve relevant past context before each turn
|
|
122
|
-
async function buildContext(userId: string, currentQuery: string) {
|
|
123
|
-
const queryEmbedding = await embed(currentQuery);
|
|
124
|
-
|
|
125
|
-
// Retrieve semantically relevant past interactions
|
|
126
|
-
const pastMemories = await vectorDB.search({
|
|
127
|
-
query: queryEmbedding,
|
|
128
|
-
filter: { userId },
|
|
129
|
-
limit: 5,
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
return [
|
|
133
|
-
{ role: 'system', content: systemPrompt },
|
|
134
|
-
// Inject relevant past context — NOT entire history
|
|
135
|
-
{ role: 'system', content: `Relevant past context:\n${pastMemories.map(m => m.content).join('\n')}` },
|
|
136
|
-
{ role: 'user', content: currentQuery },
|
|
137
|
-
];
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## Multi-Agent Coordination Patterns
|
|
144
|
-
|
|
145
|
-
When a task requires multiple specialists:
|
|
146
|
-
|
|
147
|
-
### Supervisor Pattern
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
Supervisor agent ─→ breaks task into subtasks
|
|
151
|
-
│
|
|
152
|
-
├─→ Research agent (reads, gathers information)
|
|
153
|
-
├─→ Writer agent (drafts based on research)
|
|
154
|
-
└─→ Reviewer agent (critiques the draft)
|
|
155
|
-
│
|
|
156
|
-
└─→ Supervisor collects results, makes final decision
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Peer Review Pattern (Anti-Hallucination for Agents)
|
|
160
|
-
|
|
161
|
-
```ts
|
|
162
|
-
// Two independent agents answer the same question — supervisor resolves disagreement
|
|
163
|
-
const [answerA, answerB] = await Promise.all([
|
|
164
|
-
agentA.complete(question),
|
|
165
|
-
agentB.complete(question),
|
|
166
|
-
]);
|
|
167
|
-
|
|
168
|
-
if (answerA.answer === answerB.answer) {
|
|
169
|
-
return answerA; // Agreement — high confidence
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// Disagreement — escalate to human or third tiebreaker
|
|
173
|
-
return await supervisor.resolve(question, answerA, answerB);
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## Human-in-the-Loop Gates
|
|
179
|
-
|
|
180
|
-
The most important agentic pattern. Agents should request human approval before:
|
|
181
|
-
- Deleting data
|
|
182
|
-
- Sending external communications (emails, webhooks)
|
|
183
|
-
- Spending real money (API calls with cost, purchases)
|
|
184
|
-
- Making irreversible changes
|
|
185
|
-
- Acting on low-confidence decisions
|
|
186
|
-
|
|
187
|
-
```ts
|
|
188
|
-
async function agentLoop(task: string) {
|
|
189
|
-
for (let step = 0; step < MAX_STEPS; step++) {
|
|
190
|
-
const planned = await llm.plan(task, history);
|
|
191
|
-
|
|
192
|
-
// ✅ Human gate before irreversible actions
|
|
193
|
-
if (planned.action.isIrreversible) {
|
|
194
|
-
const approved = await requestHumanApproval({
|
|
195
|
-
action: planned.action,
|
|
196
|
-
reason: planned.reasoning,
|
|
197
|
-
confidence: planned.confidence,
|
|
198
|
-
});
|
|
199
|
-
if (!approved) return { reason: 'human_rejected', step };
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
// ✅ Confidence gate — don't act when uncertain
|
|
203
|
-
if (planned.confidence < 0.7) {
|
|
204
|
-
return {
|
|
205
|
-
reason: 'human_escalation',
|
|
206
|
-
message: `Low confidence (${planned.confidence}) on: ${planned.action.description}`,
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
const result = await executeTool(planned.action.tool, planned.action.args);
|
|
211
|
-
history.push({ action: planned.action, result });
|
|
212
|
-
|
|
213
|
-
if (planned.goalReached) break;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
## Guardrails
|
|
221
|
-
|
|
222
|
-
Every production agent needs:
|
|
223
|
-
|
|
224
|
-
```ts
|
|
225
|
-
const guardrails = {
|
|
226
|
-
// Input guardrails — reject bad prompts before they reach the agent
|
|
227
|
-
input: [
|
|
228
|
-
{ check: 'no_prompt_injection', action: 'reject' },
|
|
229
|
-
{ check: 'within_scope', action: 'reject' }, // Off-topic requests
|
|
230
|
-
{ check: 'pii_detection', action: 'redact' }, // Redact before processing
|
|
231
|
-
],
|
|
232
|
-
|
|
233
|
-
// Output guardrails — validate before returning
|
|
234
|
-
output: [
|
|
235
|
-
{ check: 'no_hallucinated_citations', action: 'flag' },
|
|
236
|
-
{ check: 'schema_valid', action: 'retry_once' },
|
|
237
|
-
{ check: 'no_pii_leaked', action: 'reject' },
|
|
238
|
-
],
|
|
239
|
-
|
|
240
|
-
// Resource guardrails — prevent runaway cost/loops
|
|
241
|
-
resource: [
|
|
242
|
-
{ check: 'max_tokens_per_session', limit: 100_000 },
|
|
243
|
-
{ check: 'max_tool_calls_per_session', limit: 50 },
|
|
244
|
-
{ check: 'max_cost_per_session_usd', limit: 1.00 },
|
|
245
|
-
],
|
|
246
|
-
};
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
## Output Format
|
|
252
|
-
|
|
253
|
-
When this skill completes a task, structure your output as:
|
|
254
|
-
|
|
255
|
-
```
|
|
256
|
-
━━━ Agentic Patterns Output ━━━━━━━━━━━━━━━━━━━━━━━━
|
|
257
|
-
Task: [what was performed]
|
|
258
|
-
Result: [outcome summary — one line]
|
|
259
|
-
─────────────────────────────────────────────────
|
|
260
|
-
Checks: ✅ [N passed] · ⚠️ [N warnings] · ❌ [N blocked]
|
|
261
|
-
VBC status: PENDING → VERIFIED
|
|
262
|
-
Evidence: [link to terminal output, test result, or file diff]
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
---
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
273
|
-
|
|
274
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
275
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
276
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
277
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
278
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
285
|
-
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
286
|
-
|
|
287
|
-
### ❌ Forbidden AI Tropes
|
|
288
|
-
|
|
289
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
290
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
291
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
Review these questions before confirming output:
|
|
296
|
-
```
|
|
297
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
298
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
299
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
300
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
304
|
-
|
|
305
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
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.
|
|
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.
|
|
1
|
+
---
|
|
2
|
+
name: agentic-patterns
|
|
3
|
+
description: AI agent design principles. Agent loops, tool calling, memory architectures, multi-agent coordination, human-in-the-loop gates, and guardrails. Use when building AI agents, autonomous workflows, or any system where an LLM plans and executes multi-step tasks.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last-updated: 2026-03-12
|
|
7
|
+
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
+
routing:
|
|
9
|
+
domain: general
|
|
10
|
+
tier: basic
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Agentic Patterns
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## The Agent Loop
|
|
18
|
+
|
|
19
|
+
Every AI agent follows this fundamental pattern:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
PERCEIVE → PLAN → ACT → OBSERVE → (repeat or terminate)
|
|
23
|
+
|
|
24
|
+
1. PERCEIVE — What is the current state? What does the agent know?
|
|
25
|
+
2. PLAN — What action will move toward the goal?
|
|
26
|
+
3. ACT — Execute the tool, call the API, write the file
|
|
27
|
+
4. OBSERVE — What changed? Did the action succeed?
|
|
28
|
+
5. EVALUATE — Goal reached? Continue loop or return?
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### When to Terminate
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
// The three termination conditions — always define all three
|
|
35
|
+
type AgentResult = {
|
|
36
|
+
reason: "goal_reached" | "max_steps_exceeded" | "human_escalation";
|
|
37
|
+
steps: number;
|
|
38
|
+
result: string;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const MAX_STEPS = 10; // Hard cap — never let agents loop indefinitely
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Tool Calling Design
|
|
47
|
+
|
|
48
|
+
Tools are the agent's interface to the real world. Design them defensively:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
// Tool definition — what the LLM sees and how to call it
|
|
52
|
+
const tools = [
|
|
53
|
+
{
|
|
54
|
+
type: "function",
|
|
55
|
+
function: {
|
|
56
|
+
name: "search_database",
|
|
57
|
+
description: "Search the product database. Use this before creating a new record to avoid duplicates.",
|
|
58
|
+
parameters: {
|
|
59
|
+
type: "object",
|
|
60
|
+
properties: {
|
|
61
|
+
query: {
|
|
62
|
+
type: "string",
|
|
63
|
+
description: "Search terms — be specific",
|
|
64
|
+
},
|
|
65
|
+
limit: {
|
|
66
|
+
type: "number",
|
|
67
|
+
description: "Max results to return. Default: 5, max: 20",
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
required: ["query"],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
// Tool executor — validate before running
|
|
77
|
+
async function executeTool(name: string, args: unknown): Promise<string> {
|
|
78
|
+
// Validate args before executing — never trust LLM output directly
|
|
79
|
+
const parsed = ToolArgsSchema.safeParse(args);
|
|
80
|
+
if (!parsed.success) {
|
|
81
|
+
return `Error: Invalid arguments — ${parsed.error.message}`;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Scope check — is this tool allowed for this agent's role?
|
|
85
|
+
if (!agentPermissions.includes(name)) {
|
|
86
|
+
return `Error: Tool '${name}' is not permitted for this agent`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
return await tools[name](parsed.data);
|
|
91
|
+
} catch (err) {
|
|
92
|
+
return `Error: Tool execution failed — ${(err as Error).message}`;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Memory Architecture
|
|
100
|
+
|
|
101
|
+
Agents need different types of memory for different purposes:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
IN-CONTEXT MEMORY (cheapest, shortest-lived):
|
|
105
|
+
→ Current conversation + recent tool outputs
|
|
106
|
+
→ Limited by context window (~100k tokens)
|
|
107
|
+
→ Good for: current task context
|
|
108
|
+
|
|
109
|
+
EXTERNAL SEMANTIC MEMORY (vector search):
|
|
110
|
+
→ Long-term knowledge, past conversations
|
|
111
|
+
→ Unlimited, but retrieval is approximate
|
|
112
|
+
→ Good for: "What did we discuss about this topic before?"
|
|
316
113
|
|
|
114
|
+
EPISODIC MEMORY (structured log):
|
|
115
|
+
→ Exact record of past actions and outcomes
|
|
116
|
+
→ Good for: learning from past mistakes, auditability
|
|
117
|
+
|
|
118
|
+
PROCEDURAL MEMORY (system prompt + tools):
|
|
119
|
+
→ How the agent knows to behave and what it can do
|
|
120
|
+
→ Good for: skills, personas, behavior rules
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
// External memory: retrieve relevant past context before each turn
|
|
125
|
+
async function buildContext(userId: string, currentQuery: string) {
|
|
126
|
+
const queryEmbedding = await embed(currentQuery);
|
|
127
|
+
|
|
128
|
+
// Retrieve semantically relevant past interactions
|
|
129
|
+
const pastMemories = await vectorDB.search({
|
|
130
|
+
query: queryEmbedding,
|
|
131
|
+
filter: { userId },
|
|
132
|
+
limit: 5,
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
return [
|
|
136
|
+
{ role: "system", content: systemPrompt },
|
|
137
|
+
// Inject relevant past context — NOT entire history
|
|
138
|
+
{ role: "system", content: `Relevant past context:\n${pastMemories.map((m) => m.content).join("\n")}` },
|
|
139
|
+
{ role: "user", content: currentQuery },
|
|
140
|
+
];
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Multi-Agent Coordination Patterns
|
|
147
|
+
|
|
148
|
+
When a task requires multiple specialists:
|
|
149
|
+
|
|
150
|
+
### Supervisor Pattern
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Supervisor agent ─→ breaks task into subtasks
|
|
154
|
+
│
|
|
155
|
+
├─→ Research agent (reads, gathers information)
|
|
156
|
+
├─→ Writer agent (drafts based on research)
|
|
157
|
+
└─→ Reviewer agent (critiques the draft)
|
|
158
|
+
│
|
|
159
|
+
└─→ Supervisor collects results, makes final decision
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Peer Review Pattern (Anti-Hallucination for Agents)
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
// Two independent agents answer the same question — supervisor resolves disagreement
|
|
166
|
+
const [answerA, answerB] = await Promise.all([agentA.complete(question), agentB.complete(question)]);
|
|
167
|
+
|
|
168
|
+
if (answerA.answer === answerB.answer) {
|
|
169
|
+
return answerA; // Agreement — high confidence
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Disagreement — escalate to human or third tiebreaker
|
|
173
|
+
return await supervisor.resolve(question, answerA, answerB);
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Human-in-the-Loop Gates
|
|
179
|
+
|
|
180
|
+
The most important agentic pattern. Agents should request human approval before:
|
|
181
|
+
|
|
182
|
+
- Deleting data
|
|
183
|
+
- Sending external communications (emails, webhooks)
|
|
184
|
+
- Spending real money (API calls with cost, purchases)
|
|
185
|
+
- Making irreversible changes
|
|
186
|
+
- Acting on low-confidence decisions
|
|
187
|
+
|
|
188
|
+
```ts
|
|
189
|
+
async function agentLoop(task: string) {
|
|
190
|
+
for (let step = 0; step < MAX_STEPS; step++) {
|
|
191
|
+
const planned = await llm.plan(task, history);
|
|
192
|
+
|
|
193
|
+
// ✅ Human gate before irreversible actions
|
|
194
|
+
if (planned.action.isIrreversible) {
|
|
195
|
+
const approved = await requestHumanApproval({
|
|
196
|
+
action: planned.action,
|
|
197
|
+
reason: planned.reasoning,
|
|
198
|
+
confidence: planned.confidence,
|
|
199
|
+
});
|
|
200
|
+
if (!approved) return { reason: "human_rejected", step };
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// ✅ Confidence gate — don't act when uncertain
|
|
204
|
+
if (planned.confidence < 0.7) {
|
|
205
|
+
return {
|
|
206
|
+
reason: "human_escalation",
|
|
207
|
+
message: `Low confidence (${planned.confidence}) on: ${planned.action.description}`,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const result = await executeTool(planned.action.tool, planned.action.args);
|
|
212
|
+
history.push({ action: planned.action, result });
|
|
213
|
+
|
|
214
|
+
if (planned.goalReached) break;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Guardrails
|
|
222
|
+
|
|
223
|
+
Every production agent needs:
|
|
224
|
+
|
|
225
|
+
```ts
|
|
226
|
+
const guardrails = {
|
|
227
|
+
// Input guardrails — reject bad prompts before they reach the agent
|
|
228
|
+
input: [
|
|
229
|
+
{ check: "no_prompt_injection", action: "reject" },
|
|
230
|
+
{ check: "within_scope", action: "reject" }, // Off-topic requests
|
|
231
|
+
{ check: "pii_detection", action: "redact" }, // Redact before processing
|
|
232
|
+
],
|
|
233
|
+
|
|
234
|
+
// Output guardrails — validate before returning
|
|
235
|
+
output: [
|
|
236
|
+
{ check: "no_hallucinated_citations", action: "flag" },
|
|
237
|
+
{ check: "schema_valid", action: "retry_once" },
|
|
238
|
+
{ check: "no_pii_leaked", action: "reject" },
|
|
239
|
+
],
|
|
240
|
+
|
|
241
|
+
// Resource guardrails — prevent runaway cost/loops
|
|
242
|
+
resource: [
|
|
243
|
+
{ check: "max_tokens_per_session", limit: 100_000 },
|
|
244
|
+
{ check: "max_tool_calls_per_session", limit: 50 },
|
|
245
|
+
{ check: "max_cost_per_session_usd", limit: 1.0 },
|
|
246
|
+
],
|
|
247
|
+
};
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Output Format
|
|
253
|
+
|
|
254
|
+
When this skill completes a task, structure your output as:
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
━━━ Agentic Patterns Output ━━━━━━━━━━━━━━━━━━━━━━━━
|
|
258
|
+
Task: [what was performed]
|
|
259
|
+
Result: [outcome summary — one line]
|
|
260
|
+
─────────────────────────────────────────────────
|
|
261
|
+
Checks: ✅ [N passed] · ⚠️ [N warnings] · ❌ [N blocked]
|
|
262
|
+
VBC status: PENDING → VERIFIED
|
|
263
|
+
Evidence: [link to terminal output, test result, or file diff]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
271
|
+
|
|
272
|
+
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
273
|
+
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
274
|
+
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
275
|
+
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
276
|
+
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
**Slash command: `/review` or `/tribunal-full`**
|
|
281
|
+
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
282
|
+
|
|
283
|
+
### ❌ Forbidden AI Tropes
|
|
284
|
+
|
|
285
|
+
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
286
|
+
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
287
|
+
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
288
|
+
|
|
289
|
+
Review these questions before confirming output:
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
✅ Did I rely ONLY on real, verified tools and methods?
|
|
293
|
+
✅ Is this solution appropriately scoped to the user's constraints?
|
|
294
|
+
✅ Did I handle potential failure modes and edge cases?
|
|
295
|
+
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
299
|
+
|
|
300
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
301
|
+
|
|
302
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
303
|
+
- ✅ **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.
|
|
304
|
+
|
|
305
|
+
## Pre-Flight Checklist
|
|
306
|
+
|
|
307
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
308
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
309
|
+
|
|
310
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
311
|
+
|
|
312
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
317
313
|
|
|
318
314
|
---
|
|
319
315
|
|
|
@@ -343,6 +339,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
343
339
|
### ✅ Pre-Flight Self-Audit
|
|
344
340
|
|
|
345
341
|
Review these questions before confirming output:
|
|
342
|
+
|
|
346
343
|
```
|
|
347
344
|
✅ Did I rely ONLY on real, verified tools and methods?
|
|
348
345
|
✅ Is this solution appropriately scoped to the user's constraints?
|
|
@@ -353,5 +350,6 @@ Review these questions before confirming output:
|
|
|
353
350
|
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
354
351
|
|
|
355
352
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
353
|
+
|
|
356
354
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
357
355
|
- ✅ **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.
|