Gladiator Plugin
Continuous learning. Observes tool failures and prompts reflection at session end to evolve rules, hooks, and skills.
Hooks
| Hook |
When |
Action |
| PostToolUse(Bash|Edit|Write) |
After tool failure |
Observes the error pattern (silent on success) |
| Stop |
Session ending |
Prompts reflection if unprocessed observations exist |
Commands
| Command |
Description |
/review-gladiator [topic] |
Batch learn from accumulated observations and session history |
Workflows
Observe (automatic via hooks)
Tool failures trigger observation automatically:
gladiator_observe(
summary: "<what failed and how it was fixed>",
context: {error, tool, before, after},
tags: ["error", "<tool_name>"]
)
Reflect (standalone)
gladiator_reflect() — cluster observations into recommendations
- For each recommendation: read the existing artifact (if overlap detected)
- Propose UPDATE to existing artifact, not a new duplicate
- Present to user with reasoning
- Apply changes one at a time after approval
Reflect (with siblings)
- If historian active: enrich reflection with broader context
search_conversations("project or topic") — related past work
get_error_solutions("specific error") — for error clusters
find_tool_patterns("tool name") — for tool workflow clusters
gladiator_reflect() — cluster observations
- If oracle active: for each recommendation involving new artifacts
search("cluster tag") — check if best-in-class solution already exists
- Install existing solution instead of reinventing
- Present enriched recommendations: pattern + history + available tools
- Apply changes one at a time after approval
Batch Review (/review-gladiator)
- If historian active:
list_recent_sessions() to get session refs
gladiator_observe(source: "conversation", session_ref: <ref>) for relevant sessions
gladiator_reflect() to cluster all observations
- If oracle active: search for existing solutions before creating new
- Present recommendations to user
Sibling Synergy
| Sibling |
Value |
How |
| Historian |
Past solutions enrich reflection |
get_error_solutions(), search_conversations(), find_tool_patterns() |
| Oracle |
Existing tools found before creating new |
Search oracle for best-in-class solutions during reflection |
| Praetorian |
n/a |
Gladiator has its own persistence |
| Vigil |
n/a |
Different concerns (files vs patterns) |
Observation Templates
| Situation |
Call |
| Tool failure (auto) |
gladiator_observe(summary, context={error, tool, before, after}, tags=["error", tool]) |
| User correction |
gladiator_observe(summary, context={before, after}, tags=["correction"]) |
| Convention found |
gladiator_observe(summary, tags=["convention", "domain"]) |
| Decision made |
gladiator_observe(summary, tags=["architecture", "decision"]) |
Requires
claude mcp add gladiator -- npx claude-gladiator-mcp
1---2name: claude-gladiator3description: Continuous learning — hooks observe failures and prompt reflection, sibling synergy deepens analysis with history and tool discovery4---5
6# Gladiator Plugin
7
8Continuous learning. Observes tool failures and prompts reflection at session end to evolve rules, hooks, and skills.
9
10## Hooks
11
12| Hook | When | Action |
13|------|------|--------|
14| **PostToolUse(Bash\|Edit\|Write)** | After tool failure | Observes the error pattern (silent on success) |
15| **Stop** | Session ending | Prompts reflection if unprocessed observations exist |
16
17## Commands
18
19| Command | Description |
20|---------|-------------|
21| `/review-gladiator [topic]` | Batch learn from accumulated observations and session history |
22
23## Workflows
24
25### Observe (automatic via hooks)
26
27Tool failures trigger observation automatically:
28```
29gladiator_observe(
30 summary: "<what failed and how it was fixed>",
31 context: {error, tool, before, after},
32 tags: ["error", "<tool_name>"]
33)
34```
35
36### Reflect (standalone)
37
381. `gladiator_reflect()` — cluster observations into recommendations
392. For each recommendation: read the existing artifact (if overlap detected)
403. Propose UPDATE to existing artifact, not a new duplicate
414. Present to user with reasoning
425. Apply changes one at a time after approval
43
44### Reflect (with siblings)
45
461. If **historian** active: enrich reflection with broader context
47 - `search_conversations("project or topic")` — related past work
48 - `get_error_solutions("specific error")` — for error clusters
49 - `find_tool_patterns("tool name")` — for tool workflow clusters
502. `gladiator_reflect()` — cluster observations
513. If **oracle** active: for each recommendation involving new artifacts
52 - `search("cluster tag")` — check if best-in-class solution already exists
53 - Install existing solution instead of reinventing
544. Present enriched recommendations: pattern + history + available tools
555. Apply changes one at a time after approval
56
57### Batch Review (/review-gladiator)
58
591. If **historian** active: `list_recent_sessions()` to get session refs
602. `gladiator_observe(source: "conversation", session_ref: <ref>)` for relevant sessions
613. `gladiator_reflect()` to cluster all observations
624. If **oracle** active: search for existing solutions before creating new
635. Present recommendations to user
64
65## Sibling Synergy
66
67| Sibling | Value | How |
68|---------|-------|-----|
69| **Historian** | Past solutions enrich reflection | `get_error_solutions()`, `search_conversations()`, `find_tool_patterns()` |
70| **Oracle** | Existing tools found before creating new | Search oracle for best-in-class solutions during reflection |
71| **Praetorian** | n/a | Gladiator has its own persistence |
72| **Vigil** | n/a | Different concerns (files vs patterns) |
73
74## Observation Templates
75
76| Situation | Call |
77|-----------|------|
78| Tool failure (auto) | `gladiator_observe(summary, context={error, tool, before, after}, tags=["error", tool])` |
79| User correction | `gladiator_observe(summary, context={before, after}, tags=["correction"])` |
80| Convention found | `gladiator_observe(summary, tags=["convention", "domain"])` |
81| Decision made | `gladiator_observe(summary, tags=["architecture", "decision"])` |
82
83## Requires
84
85```
86claude mcp add gladiator -- npx claude-gladiator-mcp
87```