@cleocode/skills 2026.3.76 → 2026.4.2
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/package.json +1 -1
- package/skills/_shared/manifest-operations.md +1 -2
- package/skills/_shared/skill-chaining-patterns.md +3 -7
- package/skills/_shared/subagent-protocol-base.cant +113 -0
- package/skills/ct-cleo/SKILL.md +56 -65
- package/skills/ct-cleo/references/orchestrator-constraints.md +0 -13
- package/skills/ct-cleo/references/session-protocol.md +3 -12
- package/skills/ct-codebase-mapper/SKILL.md +7 -7
- package/skills/ct-grade/SKILL.md +12 -46
- package/skills/ct-grade/agents/scenario-runner.md +11 -21
- package/skills/ct-grade/references/ab-test-methodology.md +14 -14
- package/skills/ct-grade/references/domains.md +72 -74
- package/skills/ct-grade/references/grade-spec.md +8 -11
- package/skills/ct-grade/references/scenario-playbook.md +77 -106
- package/skills/ct-grade-v2-1/SKILL.md +30 -32
- package/skills/ct-grade-v2-1/agents/scenario-runner.md +14 -34
- package/skills/ct-grade-v2-1/grade-viewer/eval-report.md +4 -1
- package/skills/ct-grade-v2-1/references/ab-testing.md +28 -88
- package/skills/ct-grade-v2-1/references/grade-spec-v2.md +5 -5
- package/skills/ct-grade-v2-1/references/playbook-v2.md +115 -183
- package/skills/ct-grade-v2-1/references/token-tracking.md +7 -9
- package/skills/ct-memory/SKILL.md +16 -35
- package/skills/ct-orchestrator/SKILL.md +58 -68
- package/skills/ct-skill-validator/SKILL.md +1 -1
- package/skills/ct-skill-validator/agents/ecosystem-checker.md +2 -2
- package/skills/ct-skill-validator/references/cleo-ecosystem-rules.md +19 -20
- package/skills/manifest.json +1 -1
- package/skills/signaldock-connect/SKILL.md +132 -0
- package/skills/signaldock-connect/assets/agent-card.json +48 -0
- package/skills/signaldock-connect/references/api-endpoints.md +131 -0
- package/skills.json +1 -1
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# Scenario Runner Agent
|
|
2
2
|
|
|
3
|
-
You are a CLEO grade scenario executor. Your job is to run a specific grade playbook scenario using the
|
|
3
|
+
You are a CLEO grade scenario executor. Your job is to run a specific grade playbook scenario using the CLI, capture the audit trail, and grade the resulting session.
|
|
4
4
|
|
|
5
5
|
## Inputs
|
|
6
6
|
|
|
7
7
|
You will receive:
|
|
8
8
|
- `SCENARIO`: Which scenario to run (s1|s2|s3|s4|s5)
|
|
9
|
-
- `INTERFACE`: Which interface to use (mcp|cli)
|
|
10
9
|
- `OUTPUT_DIR`: Where to write results
|
|
11
10
|
- `PROJECT_DIR`: Path to the CLEO project (for cleo-dev)
|
|
12
11
|
- `RUN_NUMBER`: Integer (1, 2, 3...) for repeated runs
|
|
@@ -17,24 +16,18 @@ You will receive:
|
|
|
17
16
|
|
|
18
17
|
Note the ISO timestamp before any operations.
|
|
19
18
|
|
|
20
|
-
### Step 2: Start a graded session
|
|
19
|
+
### Step 2: Start a graded session
|
|
21
20
|
|
|
22
|
-
```
|
|
23
|
-
|
|
21
|
+
```bash
|
|
22
|
+
cleo session start --grade --name "grade-<SCENARIO>-run<RUN>" --scope global
|
|
24
23
|
```
|
|
25
24
|
|
|
26
25
|
Save the returned `sessionId`.
|
|
27
26
|
|
|
28
27
|
### Step 3: Execute scenario operations
|
|
29
28
|
|
|
30
|
-
Follow the exact operation sequence from the scenario playbook.
|
|
31
|
-
|
|
32
|
-
**MCP operations** use the query/mutate gateway:
|
|
33
|
-
```
|
|
34
|
-
query tasks find { "status": "active" }
|
|
35
|
-
```
|
|
29
|
+
Follow the exact operation sequence from the scenario playbook. All operations use the CLI.
|
|
36
30
|
|
|
37
|
-
**CLI operations** use cleo-dev (prefer) or cleo:
|
|
38
31
|
```bash
|
|
39
32
|
cleo-dev find --status active
|
|
40
33
|
```
|
|
@@ -43,15 +36,14 @@ Scenario sequences are in [../references/scenario-playbook.md](../references/sce
|
|
|
43
36
|
|
|
44
37
|
### Step 4: End the session
|
|
45
38
|
|
|
46
|
-
```
|
|
47
|
-
|
|
39
|
+
```bash
|
|
40
|
+
cleo session end
|
|
48
41
|
```
|
|
49
42
|
|
|
50
43
|
### Step 5: Grade the session
|
|
51
44
|
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
# Compatibility alias: query admin grade { "sessionId": "<saved-id>" }
|
|
45
|
+
```bash
|
|
46
|
+
cleo check grade --session "<saved-id>"
|
|
55
47
|
```
|
|
56
48
|
|
|
57
49
|
Save the full GradeResult JSON.
|
|
@@ -60,7 +52,7 @@ Save the full GradeResult JSON.
|
|
|
60
52
|
|
|
61
53
|
Record every operation you executed as a JSONL file. Each line:
|
|
62
54
|
```json
|
|
63
|
-
{"seq": 1, "
|
|
55
|
+
{"seq": 1, "domain": "tasks", "operation": "find", "params": {}, "success": true, "interface": "cli", "timestamp": "..."}
|
|
64
56
|
```
|
|
65
57
|
|
|
66
58
|
### Step 7: Write output files
|
|
@@ -84,10 +76,9 @@ Write to `<OUTPUT_DIR>/<SCENARIO>/arm-<INTERFACE>/`:
|
|
|
84
76
|
**timing.json** — Fill in what you can; orchestrator fills `total_tokens` and `duration_ms`:
|
|
85
77
|
```json
|
|
86
78
|
{
|
|
87
|
-
"arm": "<INTERFACE>",
|
|
88
79
|
"scenario": "<SCENARIO>",
|
|
89
80
|
"run": <RUN_NUMBER>,
|
|
90
|
-
"interface": "
|
|
81
|
+
"interface": "cli",
|
|
91
82
|
"executor_start": "<ISO>",
|
|
92
83
|
"executor_end": "<ISO>",
|
|
93
84
|
"executor_duration_seconds": 0,
|
|
@@ -124,7 +115,6 @@ Do NOT do these during scenario execution — they will lower the grade intentio
|
|
|
124
115
|
When complete, summarize:
|
|
125
116
|
```
|
|
126
117
|
SCENARIO: <id>
|
|
127
|
-
INTERFACE: <interface>
|
|
128
118
|
RUN: <n>
|
|
129
119
|
SESSION_ID: <id>
|
|
130
120
|
TOTAL_SCORE: <n>/100
|
|
@@ -14,10 +14,11 @@ An "arm" is a specific test configuration. In CLEO A/B tests, the two most commo
|
|
|
14
14
|
|
|
15
15
|
| Arm | Typical Config | Example |
|
|
16
16
|
|-----|---------------|---------|
|
|
17
|
-
| A |
|
|
18
|
-
| B |
|
|
17
|
+
| A | Configuration A | Different CLI binary, flags, or prompt setup |
|
|
18
|
+
| B | Configuration B | Alternate setup for comparison |
|
|
19
19
|
|
|
20
|
-
Arms can
|
|
20
|
+
Arms can differ by:
|
|
21
|
+
- CLI binary version (`cleo-dev` vs `cleo`)
|
|
21
22
|
- Session scope (`global` vs `epic:T500`)
|
|
22
23
|
- Tier escalation (with/without `admin.help`)
|
|
23
24
|
- Agent persona (orchestrator vs task-executor)
|
|
@@ -71,10 +72,9 @@ save_json(arm_dir + "/timing.json", timing)
|
|
|
71
72
|
|
|
72
73
|
### Why This Matters
|
|
73
74
|
|
|
74
|
-
Token cost is the primary economic metric for comparing
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
- Score-per-token tells you which interface is more efficient for protocol work
|
|
75
|
+
Token cost is the primary economic metric for comparing configurations:
|
|
76
|
+
- Different configurations may produce different token costs
|
|
77
|
+
- Score-per-token tells you which configuration is more efficient for protocol work
|
|
78
78
|
|
|
79
79
|
### Missing Token Data
|
|
80
80
|
|
|
@@ -98,16 +98,16 @@ If you forgot to capture tokens, you cannot recover them. Mark `total_tokens: nu
|
|
|
98
98
|
| 0-5 pts | Noise level — likely equivalent |
|
|
99
99
|
| 5-15 pts | Meaningful difference — investigate flags |
|
|
100
100
|
| 15-25 pts | Significant — one interface clearly better |
|
|
101
|
-
| 25+ pts | Extreme — likely S5 differential
|
|
101
|
+
| 25+ pts | Extreme — likely S5 differential or protocol gap |
|
|
102
102
|
|
|
103
|
-
### Expected
|
|
103
|
+
### Expected Delta
|
|
104
104
|
|
|
105
105
|
Based on the rubric implementation:
|
|
106
|
-
- S5 Progressive Disclosure:
|
|
106
|
+
- S5 Progressive Disclosure: +20 if agent uses `admin.help` and follows read-before-write discipline
|
|
107
107
|
- S1-S4: approximately equal if agent follows same protocol steps
|
|
108
|
-
-
|
|
108
|
+
- Configuration differences should primarily show up in S5 and token efficiency
|
|
109
109
|
|
|
110
|
-
If delta exceeds 20 points, investigate whether
|
|
110
|
+
If delta exceeds 20 points, investigate whether one arm is skipping protocol steps (session.list, descriptions, etc.).
|
|
111
111
|
|
|
112
112
|
---
|
|
113
113
|
|
|
@@ -119,8 +119,8 @@ The "git tree" metaphor: each A/B run produces a branch in the results tree. Mul
|
|
|
119
119
|
ab_results/
|
|
120
120
|
run-001/ ← first full A/B run
|
|
121
121
|
s4/
|
|
122
|
-
run-01/arm-A/ ← first run,
|
|
123
|
-
run-01/arm-B/ ← first run,
|
|
122
|
+
run-01/arm-A/ ← first run, arm A
|
|
123
|
+
run-01/arm-B/ ← first run, arm B
|
|
124
124
|
run-01/comparison.json
|
|
125
125
|
run-02/arm-A/
|
|
126
126
|
...
|
|
@@ -1,130 +1,128 @@
|
|
|
1
1
|
# CLEO Domain Operation Reference for A/B Testing
|
|
2
2
|
|
|
3
3
|
**Source**: `docs/specs/CLEO-OPERATION-CONSTITUTION.md`
|
|
4
|
-
**Purpose**: Lists the key operations to test in
|
|
4
|
+
**Purpose**: Lists the key operations to test in A/B comparisons.
|
|
5
|
+
|
|
6
|
+
All operations use the CLI (`cleo` / `cleo-dev`). There is no MCP interface.
|
|
5
7
|
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
##
|
|
10
|
+
## CLI Operations by Domain
|
|
9
11
|
|
|
10
12
|
For each domain, these are the canonical operations to test in A/B mode.
|
|
11
|
-
MCP gateway = audit metadata.gateway is `'query'` or `'mutate'` (set by MCP adapter).
|
|
12
|
-
CLI = operations routed through CLI do NOT set metadata.gateway.
|
|
13
13
|
|
|
14
14
|
### tasks (32 operations)
|
|
15
15
|
|
|
16
|
-
| Test Op |
|
|
17
|
-
|
|
18
|
-
| Discovery | `
|
|
19
|
-
| Show detail | `
|
|
20
|
-
| List children | `
|
|
21
|
-
| Create | `
|
|
22
|
-
| Update | `
|
|
23
|
-
| Complete | `
|
|
24
|
-
| Exists check | `
|
|
16
|
+
| Test Op | CLI |
|
|
17
|
+
|---------|-----|
|
|
18
|
+
| Discovery | `cleo-dev find --status active` |
|
|
19
|
+
| Show detail | `cleo-dev show T123` |
|
|
20
|
+
| List children | `cleo-dev list --parent T100` |
|
|
21
|
+
| Create | `cleo-dev add "title" --description "..."` |
|
|
22
|
+
| Update | `cleo-dev update T123 --status active` |
|
|
23
|
+
| Complete | `cleo-dev complete T123` |
|
|
24
|
+
| Exists check | `cleo-dev exists T123` |
|
|
25
25
|
|
|
26
|
-
**Key S2 insight**: `
|
|
26
|
+
**Key S2 insight**: `cleo-dev find` counts toward find:list ratio in the audit log. Always prefer find over list for discovery.
|
|
27
27
|
|
|
28
28
|
### session (19 operations)
|
|
29
29
|
|
|
30
|
-
| Test Op |
|
|
31
|
-
|
|
32
|
-
| Check existing | `
|
|
33
|
-
| Start | `
|
|
34
|
-
| End | `
|
|
35
|
-
| Status | `
|
|
36
|
-
| Record decision | `
|
|
30
|
+
| Test Op | CLI |
|
|
31
|
+
|---------|-----|
|
|
32
|
+
| Check existing | `cleo-dev session list` |
|
|
33
|
+
| Start | `cleo-dev session start --grade --scope global` |
|
|
34
|
+
| End | `cleo-dev session end` |
|
|
35
|
+
| Status | `cleo-dev session status` |
|
|
36
|
+
| Record decision | `cleo-dev session record-decision --decision "..." --rationale "..."` |
|
|
37
37
|
|
|
38
|
-
**Critical**: `session.list`
|
|
38
|
+
**Critical**: `session.list` is what the rubric checks for S1. It must appear as `domain='session', operation='list'` in the audit log.
|
|
39
39
|
|
|
40
|
-
### memory (18 operations)
|
|
40
|
+
### memory (18 operations) -- Tier 1
|
|
41
41
|
|
|
42
|
-
| Test Op |
|
|
43
|
-
|
|
44
|
-
| Search | `
|
|
45
|
-
| Store observation | `
|
|
46
|
-
| Timeline | `
|
|
42
|
+
| Test Op | CLI |
|
|
43
|
+
|---------|-----|
|
|
44
|
+
| Search | `cleo-dev memory find "authentication"` |
|
|
45
|
+
| Store observation | `cleo-dev observe "..."` |
|
|
46
|
+
| Timeline | `cleo-dev memory timeline <id>` |
|
|
47
47
|
|
|
48
48
|
### admin (44 operations)
|
|
49
49
|
|
|
50
|
-
| Test Op |
|
|
51
|
-
|
|
52
|
-
| Dashboard | `
|
|
53
|
-
| Help (S5 key) | `
|
|
54
|
-
| Grade session | `
|
|
55
|
-
| Health check | `
|
|
50
|
+
| Test Op | CLI |
|
|
51
|
+
|---------|-----|
|
|
52
|
+
| Dashboard | `cleo-dev dash` |
|
|
53
|
+
| Help (S5 key) | `cleo-dev help` |
|
|
54
|
+
| Grade session | `cleo-dev check grade --session "<id>"` |
|
|
55
|
+
| Health check | `cleo-dev health` |
|
|
56
56
|
|
|
57
|
-
**Critical for S5**:
|
|
57
|
+
**Critical for S5**: `cleo-dev help` satisfies the `helpCalls` filter in S5 Progressive Disclosure scoring.
|
|
58
58
|
|
|
59
|
-
### pipeline (42 operations)
|
|
59
|
+
### pipeline (42 operations) -- LOOM system
|
|
60
60
|
|
|
61
|
-
| Test Op |
|
|
62
|
-
|
|
63
|
-
| Stage status | `
|
|
64
|
-
| Stage validate | `
|
|
65
|
-
| Manifest list | `
|
|
61
|
+
| Test Op | CLI |
|
|
62
|
+
|---------|-----|
|
|
63
|
+
| Stage status | `cleo-dev pipeline stage.status --epic <id>` |
|
|
64
|
+
| Stage validate | `cleo-dev pipeline stage.validate --epic <id> --stage <stage>` |
|
|
65
|
+
| Manifest list | `cleo-dev manifest list` |
|
|
66
66
|
|
|
67
67
|
### check (19 operations)
|
|
68
68
|
|
|
69
|
-
| Test Op |
|
|
70
|
-
|
|
71
|
-
| Test status | `
|
|
72
|
-
| Protocol check | `
|
|
73
|
-
| Compliance | `
|
|
69
|
+
| Test Op | CLI |
|
|
70
|
+
|---------|-----|
|
|
71
|
+
| Test status | `cleo-dev check test-status` |
|
|
72
|
+
| Protocol check | `cleo-dev check protocol` |
|
|
73
|
+
| Compliance | `cleo-dev check compliance` |
|
|
74
74
|
|
|
75
75
|
### orchestrate (19 operations)
|
|
76
76
|
|
|
77
|
-
| Test Op |
|
|
78
|
-
|
|
79
|
-
| Status | `
|
|
80
|
-
| Waves | `
|
|
77
|
+
| Test Op | CLI |
|
|
78
|
+
|---------|-----|
|
|
79
|
+
| Status | `cleo-dev orchestrator status` |
|
|
80
|
+
| Waves | `cleo-dev orchestrator waves` |
|
|
81
81
|
|
|
82
82
|
### tools (32 operations)
|
|
83
83
|
|
|
84
|
-
| Test Op |
|
|
85
|
-
|
|
86
|
-
| Skill list (S5 key) | `
|
|
87
|
-
| Skill show (S5 key) | `
|
|
84
|
+
| Test Op | CLI |
|
|
85
|
+
|---------|-----|
|
|
86
|
+
| Skill list (S5 key) | `cleo-dev skill list` |
|
|
87
|
+
| Skill show (S5 key) | `cleo-dev skill show ct-cleo` |
|
|
88
88
|
|
|
89
|
-
**S5 note**: `tools.skill.list` and `tools.skill.show`
|
|
89
|
+
**S5 note**: `tools.skill.list` and `tools.skill.show` count toward S5 helpCalls filter.
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
93
|
-
## A/B
|
|
93
|
+
## A/B Configuration Test Examples
|
|
94
94
|
|
|
95
95
|
### Quick A/B: Tasks Domain
|
|
96
96
|
|
|
97
|
-
**Goal**: Compare
|
|
98
|
-
**Operations to execute (both
|
|
99
|
-
1. `session list`
|
|
100
|
-
2. `
|
|
101
|
-
3. `
|
|
102
|
-
4. `session end`
|
|
103
|
-
|
|
104
|
-
**Expected score difference**: MCP ~30/100 vs CLI ~20/100 (S5 is 0 for CLI)
|
|
97
|
+
**Goal**: Compare two configurations for core task operations.
|
|
98
|
+
**Operations to execute (both arms)**:
|
|
99
|
+
1. `cleo-dev session list` -- S1
|
|
100
|
+
2. `cleo-dev find --status active` -- S2
|
|
101
|
+
3. `cleo-dev show <valid-id>` -- S2
|
|
102
|
+
4. `cleo-dev session end` -- S1
|
|
105
103
|
|
|
106
104
|
### Standard A/B: Full Protocol (S4)
|
|
107
105
|
|
|
108
|
-
**Goal**: Full lifecycle scenario through both
|
|
106
|
+
**Goal**: Full lifecycle scenario through both configurations.
|
|
109
107
|
**Operations**: Follow S4 scenario (10 ops including admin.help).
|
|
110
|
-
**Expected**:
|
|
108
|
+
**Expected**: 100/100 for protocol-complete arm
|
|
111
109
|
|
|
112
110
|
### Targeted A/B: S5 Isolation
|
|
113
111
|
|
|
114
112
|
**Goal**: Specifically measure the S5 (progressive disclosure) gap.
|
|
115
|
-
**Operations**
|
|
113
|
+
**Operations** -- same except arm A calls `admin.help`, arm B does not:
|
|
116
114
|
|
|
117
|
-
Arm A (
|
|
118
|
-
```
|
|
119
|
-
|
|
115
|
+
Arm A (with help):
|
|
116
|
+
```bash
|
|
117
|
+
cleo-dev session list && cleo-dev help && cleo-dev find --status active && cleo-dev session end
|
|
120
118
|
```
|
|
121
119
|
|
|
122
|
-
Arm B (
|
|
123
|
-
```
|
|
124
|
-
cleo-dev session list
|
|
120
|
+
Arm B (no help call):
|
|
121
|
+
```bash
|
|
122
|
+
cleo-dev session list && cleo-dev find --status active && cleo-dev session end
|
|
125
123
|
```
|
|
126
124
|
|
|
127
|
-
**Expected**: Arm A S5 = 20/20, Arm B S5 =
|
|
125
|
+
**Expected**: Arm A S5 = 20/20, Arm B S5 = 10/20
|
|
128
126
|
|
|
129
127
|
---
|
|
130
128
|
|
|
@@ -152,19 +152,17 @@ helpCalls = entries where:
|
|
|
152
152
|
OR (domain='tools' AND operation IN ['skill.show','skill.list'])
|
|
153
153
|
OR (domain='skills' AND operation IN ['list','show'])
|
|
154
154
|
|
|
155
|
-
|
|
155
|
+
readOps = entries where operation type is a read (show, find, list, status, etc.)
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
| Points | Condition |
|
|
159
159
|
|--------|-----------|
|
|
160
160
|
| +10 | `helpCalls.length > 0` |
|
|
161
|
-
| +10 | `
|
|
161
|
+
| +10 | `readOps.length > 0` (agent performed read operations before writes) |
|
|
162
162
|
|
|
163
163
|
**Flags on violation:**
|
|
164
164
|
- `No admin.help or skill lookup calls (load ct-cleo for guidance)`
|
|
165
|
-
- `No
|
|
166
|
-
|
|
167
|
-
**Important**: The `metadata.gateway` field equals `'query'` for MCP query operations. CLI operations do not set this field. This is how MCP vs CLI usage is distinguished in the grade.
|
|
165
|
+
- `No read operations before writes (prefer discovery before mutation)`
|
|
168
166
|
|
|
169
167
|
---
|
|
170
168
|
|
|
@@ -218,14 +216,13 @@ interface GradeResult {
|
|
|
218
216
|
|
|
219
217
|
---
|
|
220
218
|
|
|
221
|
-
##
|
|
219
|
+
## S5 Detection
|
|
222
220
|
|
|
223
|
-
The grading system
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
- **Mixed**: Any single MCP query call is enough for the +10
|
|
221
|
+
The grading system awards S5 points based on:
|
|
222
|
+
1. Presence of `admin.help` or skill lookup calls (+10)
|
|
223
|
+
2. Evidence of read-before-write discipline — agent performed discovery operations before mutations (+10)
|
|
227
224
|
|
|
228
|
-
|
|
225
|
+
All operations use the CLI (`cleo` / `cleo-dev`). There is no MCP interface.
|
|
229
226
|
|
|
230
227
|
|
|
231
228
|
## API Surface Update
|