@orchestrator-claude/definitions 3.33.0 → 3.34.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.
Files changed (36) hide show
  1. package/README.md +32 -0
  2. package/agents/adversarial-reviewer.md +2 -2
  3. package/agents/azure-devops-engineer.md +9 -1
  4. package/agents/cicd-platform-engineer.md +477 -0
  5. package/agents/debug-sidecar.md +5 -0
  6. package/agents/doc-sidecar.md +5 -0
  7. package/agents/frontend-engineer.md +173 -0
  8. package/agents/implementer.md +39 -23
  9. package/agents/methodology-researcher.md +2 -1
  10. package/agents/operational-artifact-builder.md +2 -1
  11. package/agents/orchestrator.md +47 -76
  12. package/agents/planner.md +2 -2
  13. package/agents/presentation-engineer.md +1 -1
  14. package/agents/python-data-engineer.md +214 -0
  15. package/agents/reviewer.md +16 -8
  16. package/agents/specifier.md +1 -1
  17. package/agents/task-generator.md +1 -1
  18. package/agents/test-sidecar.md +14 -3
  19. package/hooks/hooks.json +63 -0
  20. package/manifest.json +75 -27
  21. package/package.json +1 -1
  22. package/skills/artifact-generator/SKILL.md +1 -1
  23. package/skills/artifact-production/SKILL.md +28 -0
  24. package/skills/backlog-synthesis/SKILL.md +8 -3
  25. package/skills/checkpoint-protocol/SKILL.md +7 -0
  26. package/skills/infographic-engine/SKILL.md +116 -0
  27. package/skills/orchestrator/SKILL.md +93 -7
  28. package/skills/persona-library/SKILL.md +1 -1
  29. package/skills/project-conventions/SKILL.md +53 -30
  30. package/skills/project-management-enterprise/SKILL.md +1 -1
  31. package/skills/python-data-engineering/SKILL.md +792 -0
  32. package/skills/release/SKILL.md +29 -18
  33. package/skills/release/release.sh +65 -4
  34. package/skills/storybook-validated-loop/SKILL.md +110 -0
  35. package/skills/tdd-discipline/SKILL.md +16 -0
  36. package/skills/workflow-coordination/SKILL.md +117 -16
package/manifest.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "schema": "orchestrator-definitions/v1",
3
3
  "namespace": "orchestrator",
4
- "version": "3.33.0",
5
- "generatedAt": "2026-07-19T21:23:40.109Z",
4
+ "version": "3.34.0",
5
+ "generatedAt": "2026-07-21T01:00:14.980Z",
6
6
  "definitions": {
7
7
  "agents": [
8
8
  {
9
9
  "slug": "adversarial-reviewer",
10
10
  "file": "agents/adversarial-reviewer.md",
11
11
  "version": "1.0.0",
12
- "checksum": "sha256:1ef78465016dab1cb1a615494a2008bcb210757e64584dfd291768b178f96293",
12
+ "checksum": "sha256:415cfdd33d71b388a3a6eaf2a05e3d986ae7d04596a3219b6938a3b5a0308b6f",
13
13
  "supersedes": null,
14
14
  "metadata": {}
15
15
  },
@@ -25,7 +25,7 @@
25
25
  "slug": "azure-devops-engineer",
26
26
  "file": "agents/azure-devops-engineer.md",
27
27
  "version": "1.0.0",
28
- "checksum": "sha256:5bc7635e4cb081a0f48bbedb4caac157a17005bb33bcab02c1d2dca37f95619d",
28
+ "checksum": "sha256:18befb94cf8c49a45d41269ea15e443e2201f163a76d2ca4d3d479eac12a3368",
29
29
  "supersedes": null,
30
30
  "metadata": {}
31
31
  },
@@ -37,6 +37,14 @@
37
37
  "supersedes": null,
38
38
  "metadata": {}
39
39
  },
40
+ {
41
+ "slug": "cicd-platform-engineer",
42
+ "file": "agents/cicd-platform-engineer.md",
43
+ "version": "1.0.0",
44
+ "checksum": "sha256:01dc1c3f15fc905c7ecc65c6c29a3ca908e29a8f418febf3b5d34cbcf3a711e9",
45
+ "supersedes": null,
46
+ "metadata": {}
47
+ },
40
48
  {
41
49
  "slug": "code-archaeologist",
42
50
  "file": "agents/code-archaeologist.md",
@@ -49,7 +57,7 @@
49
57
  "slug": "debug-sidecar",
50
58
  "file": "agents/debug-sidecar.md",
51
59
  "version": "1.0.0",
52
- "checksum": "sha256:0ab774971d2fd9a88f1c8967aa82bfca37b54a71d61ef1457bb72d6bbf0f450f",
60
+ "checksum": "sha256:0f0d2b6fa6f161e4378fadf048fa5b9c9a131d33e6d5f859671c221b5ae244bf",
53
61
  "supersedes": null,
54
62
  "metadata": {}
55
63
  },
@@ -57,7 +65,7 @@
57
65
  "slug": "doc-sidecar",
58
66
  "file": "agents/doc-sidecar.md",
59
67
  "version": "1.0.0",
60
- "checksum": "sha256:81dd976d09484613a45f41be94bb769eec0eee07899f7bdec8ecf581d62e1a32",
68
+ "checksum": "sha256:fb199f4faa59ba28f40cb7057b5b063b49c454b48c92ad63a41596f48fcbc99c",
61
69
  "supersedes": null,
62
70
  "metadata": {}
63
71
  },
@@ -69,11 +77,19 @@
69
77
  "supersedes": null,
70
78
  "metadata": {}
71
79
  },
80
+ {
81
+ "slug": "frontend-engineer",
82
+ "file": "agents/frontend-engineer.md",
83
+ "version": "1.0.0",
84
+ "checksum": "sha256:e8db8ab9d4b652c00a1aae41f8d7a528047482ac838239972f537f31a9fe740f",
85
+ "supersedes": null,
86
+ "metadata": {}
87
+ },
72
88
  {
73
89
  "slug": "implementer",
74
90
  "file": "agents/implementer.md",
75
91
  "version": "1.0.0",
76
- "checksum": "sha256:fbfcc93583ce652bea4579a4b78b3b40726082af207d371d606664cee98e28aa",
92
+ "checksum": "sha256:3d7ddb5a3be0f55055a51c2a0dde03cd4cde38b084a06090e507f4c548eaa9f1",
77
93
  "supersedes": null,
78
94
  "metadata": {}
79
95
  },
@@ -97,7 +113,7 @@
97
113
  "slug": "methodology-researcher",
98
114
  "file": "agents/methodology-researcher.md",
99
115
  "version": "1.0.0",
100
- "checksum": "sha256:e79c67310925e9aeea21897141ac1252d1fd49a307160aacc732b93dd879e2ad",
116
+ "checksum": "sha256:c6776cc9bd3205b3fcb643a37db21782f8ea026c215def9a1413311c6eec1ba1",
101
117
  "supersedes": null,
102
118
  "metadata": {}
103
119
  },
@@ -105,7 +121,7 @@
105
121
  "slug": "operational-artifact-builder",
106
122
  "file": "agents/operational-artifact-builder.md",
107
123
  "version": "1.0.0",
108
- "checksum": "sha256:496d2fa8c40194bf7fea28049bae88898a6c8a71c7b1d283f8249b4412a03897",
124
+ "checksum": "sha256:81ec44ca7eec9abe190614ffec24c2aeb461b643b9ebb11762c8d30b1bf7f282",
109
125
  "supersedes": null,
110
126
  "metadata": {}
111
127
  },
@@ -113,7 +129,7 @@
113
129
  "slug": "orchestrator",
114
130
  "file": "agents/orchestrator.md",
115
131
  "version": "1.0.0",
116
- "checksum": "sha256:026d1bee4f40979b281f9372972e54b8538b8c4bde032fbd142cc15cc3f80cdc",
132
+ "checksum": "sha256:d6d11650c39bf0fdf2efc011e4e0dfd3f8507deed1d7988e2a8cd4249428392d",
117
133
  "supersedes": null,
118
134
  "metadata": {}
119
135
  },
@@ -121,7 +137,7 @@
121
137
  "slug": "planner",
122
138
  "file": "agents/planner.md",
123
139
  "version": "1.0.0",
124
- "checksum": "sha256:b66553d9a2518e41851777cd5b6b14cd5c4357f72ed5d9fade279c881add85ba",
140
+ "checksum": "sha256:e7b9879ba51fcb721364883c699d89d9b2c400ac65ffb116a17415c28b07c378",
125
141
  "supersedes": null,
126
142
  "metadata": {}
127
143
  },
@@ -129,7 +145,15 @@
129
145
  "slug": "presentation-engineer",
130
146
  "file": "agents/presentation-engineer.md",
131
147
  "version": "1.0.0",
132
- "checksum": "sha256:9a89a2bc84d45cc2e1d14440074159e39f17311e5bc43ac45a5e16c986c1e08f",
148
+ "checksum": "sha256:7a2f387f756fa314b51a386fa26e32ba7f9c2d38ee3a39a79e693a7c650ee093",
149
+ "supersedes": null,
150
+ "metadata": {}
151
+ },
152
+ {
153
+ "slug": "python-data-engineer",
154
+ "file": "agents/python-data-engineer.md",
155
+ "version": "1.0.0",
156
+ "checksum": "sha256:9569c039469baffd0e1a9173d93b156652781ab201e8f9c9dd13fed0e945eabe",
133
157
  "supersedes": null,
134
158
  "metadata": {}
135
159
  },
@@ -145,7 +169,7 @@
145
169
  "slug": "reviewer",
146
170
  "file": "agents/reviewer.md",
147
171
  "version": "1.0.0",
148
- "checksum": "sha256:9486f431017050ee188314a6f0225dbb654bf9202d5377be5b71fa77e7422046",
172
+ "checksum": "sha256:0e359fe1019dd70f565c1cd446f5bf6edfb95b421ccf8a89da1c17e0b22aa5f7",
149
173
  "supersedes": null,
150
174
  "metadata": {}
151
175
  },
@@ -161,7 +185,7 @@
161
185
  "slug": "specifier",
162
186
  "file": "agents/specifier.md",
163
187
  "version": "1.0.0",
164
- "checksum": "sha256:9f675fe96f1b9719ce1d451ff632066489416218eb5a05dd07017aedaaa0184c",
188
+ "checksum": "sha256:bdb559898180543129a9bf12c7871e266232d13d2299828ceee3e1b22606968d",
165
189
  "supersedes": null,
166
190
  "metadata": {}
167
191
  },
@@ -169,7 +193,7 @@
169
193
  "slug": "task-generator",
170
194
  "file": "agents/task-generator.md",
171
195
  "version": "1.0.0",
172
- "checksum": "sha256:29e13d44db17ace5d7089ee6043e2dcfc2afa50bf2fefaec4ff969b1d12d5aa6",
196
+ "checksum": "sha256:638ee5e2d1b294ea49978eb7fb7807076981ee084996aa584c341814121fa3d1",
173
197
  "supersedes": null,
174
198
  "metadata": {}
175
199
  },
@@ -177,7 +201,7 @@
177
201
  "slug": "test-sidecar",
178
202
  "file": "agents/test-sidecar.md",
179
203
  "version": "1.0.0",
180
- "checksum": "sha256:88063ef10a9bc5400cf06f2b7105f203b3b479ed7e631a0cb1d85aca12797247",
204
+ "checksum": "sha256:e4a83768419cd9c82b837321ddff16c512f37350f33f91d493e3c263eb8c1c76",
181
205
  "supersedes": null,
182
206
  "metadata": {}
183
207
  }
@@ -187,7 +211,7 @@
187
211
  "slug": "artifact-generator",
188
212
  "file": "skills/artifact-generator/SKILL.md",
189
213
  "version": "1.0.0",
190
- "checksum": "sha256:eb33087412c21a9edd23bdefafd308d26980757e31100838813e8f77db4016dd",
214
+ "checksum": "sha256:f8e1404fc3e3df135db5f2132428c5cdee73eb9f05b8946c4802aae382449623",
191
215
  "supersedes": null,
192
216
  "metadata": {}
193
217
  },
@@ -195,7 +219,7 @@
195
219
  "slug": "artifact-production",
196
220
  "file": "skills/artifact-production/SKILL.md",
197
221
  "version": "1.0.0",
198
- "checksum": "sha256:eafd1bb93cfb094e4f976f17a6c2bd922b651d32120dca44a64e1a8e05081b43",
222
+ "checksum": "sha256:ad3a02fb51ecf4f7b92b760793ad1886f9ad1caece89d9317db514fd1464a2ad",
199
223
  "supersedes": null,
200
224
  "metadata": {}
201
225
  },
@@ -211,7 +235,7 @@
211
235
  "slug": "backlog-synthesis",
212
236
  "file": "skills/backlog-synthesis/SKILL.md",
213
237
  "version": "1.0.0",
214
- "checksum": "sha256:e077bbf16cfbb6a79fbda114df884066b57b93fff83d5d0bffdace46f62ae964",
238
+ "checksum": "sha256:ea51acf9fc7b834102d55e01c07f0f15d283ce29cb1d9812ad3d8df683b9c217",
215
239
  "supersedes": null,
216
240
  "metadata": {}
217
241
  },
@@ -243,7 +267,7 @@
243
267
  "slug": "checkpoint-protocol",
244
268
  "file": "skills/checkpoint-protocol/SKILL.md",
245
269
  "version": "1.0.0",
246
- "checksum": "sha256:23d6910a60aa9c23395d0f457f237d245174e00d110fddf72e1c8fa03ad6904b",
270
+ "checksum": "sha256:eede6949734042e3ae8182066b9ec9051b77570597b1d1e488ebcca10699d857",
247
271
  "supersedes": null,
248
272
  "metadata": {}
249
273
  },
@@ -279,6 +303,14 @@
279
303
  "supersedes": null,
280
304
  "metadata": {}
281
305
  },
306
+ {
307
+ "slug": "infographic-engine",
308
+ "file": "skills/infographic-engine/SKILL.md",
309
+ "version": "1.0.0",
310
+ "checksum": "sha256:bef38ea0b805ea83a8695b9f75aa43aceb57bda0dfbd86c184a44cfe40331843",
311
+ "supersedes": null,
312
+ "metadata": {}
313
+ },
282
314
  {
283
315
  "slug": "kb-api-pattern",
284
316
  "file": "skills/kb-api-pattern/SKILL.md",
@@ -299,7 +331,7 @@
299
331
  "slug": "orchestrator",
300
332
  "file": "skills/orchestrator/SKILL.md",
301
333
  "version": "1.0.0",
302
- "checksum": "sha256:89cd6fe31a0a8626bada2eb99e2c74118127174f662466b09813a74b16b58694",
334
+ "checksum": "sha256:e0e119da1a54af0a6110b08e58400015751374bf21424deede0c6f78c438eb83",
303
335
  "supersedes": null,
304
336
  "metadata": {}
305
337
  },
@@ -307,7 +339,7 @@
307
339
  "slug": "persona-library",
308
340
  "file": "skills/persona-library/SKILL.md",
309
341
  "version": "1.0.0",
310
- "checksum": "sha256:720693c6e8d6559218b2429ac09c99f10cd35559441185e056e49ee51a976203",
342
+ "checksum": "sha256:53fab5fa499920034eabfab3791d7afa3741835d83d49e89d22d6374d0169fe9",
311
343
  "supersedes": null,
312
344
  "metadata": {}
313
345
  },
@@ -323,7 +355,7 @@
323
355
  "slug": "project-conventions",
324
356
  "file": "skills/project-conventions/SKILL.md",
325
357
  "version": "1.0.0",
326
- "checksum": "sha256:e76aa06d467758bb19656fd67c203cadf7a1fcb2acaffb4df2539ad16b54b4a1",
358
+ "checksum": "sha256:578d8651ea3829ba646966caf5e073bbd8082eb155f401dc0eb435561dc4fdc0",
327
359
  "supersedes": null,
328
360
  "metadata": {}
329
361
  },
@@ -331,7 +363,15 @@
331
363
  "slug": "project-management-enterprise",
332
364
  "file": "skills/project-management-enterprise/SKILL.md",
333
365
  "version": "1.0.0",
334
- "checksum": "sha256:bd84f03d65410beac4cbb2b87b0eda4ddcf0faf147c2515157ba5bdadbd36984",
366
+ "checksum": "sha256:97eab34f80e4713c0a492ddf8b2287329f2242090d23669315f805eef8d7de69",
367
+ "supersedes": null,
368
+ "metadata": {}
369
+ },
370
+ {
371
+ "slug": "python-data-engineering",
372
+ "file": "skills/python-data-engineering/SKILL.md",
373
+ "version": "1.0.0",
374
+ "checksum": "sha256:b9cd6fd5c57b3413c8ef79bcae286b4027ae5e42c496c7d7491e25cf101e16cf",
335
375
  "supersedes": null,
336
376
  "metadata": {}
337
377
  },
@@ -347,7 +387,7 @@
347
387
  "slug": "release",
348
388
  "file": "skills/release/SKILL.md",
349
389
  "version": "1.0.0",
350
- "checksum": "sha256:97e132fc96b1a0c65d77f3ad209dd1a23e9518a29eb775529f4e1cb6ea248c26",
390
+ "checksum": "sha256:1fbd6150309bcc9c13d1af0538e283343728a5b33645dd70a7e056bae7c66d6c",
351
391
  "supersedes": null,
352
392
  "metadata": {}
353
393
  },
@@ -375,6 +415,14 @@
375
415
  "supersedes": null,
376
416
  "metadata": {}
377
417
  },
418
+ {
419
+ "slug": "storybook-validated-loop",
420
+ "file": "skills/storybook-validated-loop/SKILL.md",
421
+ "version": "1.0.0",
422
+ "checksum": "sha256:3dbf5af6d1d995d6783c91b6f09dd91d3d2be88e688119013d90eecbeeb8a175",
423
+ "supersedes": null,
424
+ "metadata": {}
425
+ },
378
426
  {
379
427
  "slug": "systematic-debugging",
380
428
  "file": "skills/systematic-debugging/SKILL.md",
@@ -387,7 +435,7 @@
387
435
  "slug": "tdd-discipline",
388
436
  "file": "skills/tdd-discipline/SKILL.md",
389
437
  "version": "1.0.0",
390
- "checksum": "sha256:07ee36cdbda514a89dbc685eed89bffabde0ff91fb9b758ed7fee24de0ef9de7",
438
+ "checksum": "sha256:79539476d733c5b456b922108d153cb85f2949ca55770db59005b63b40fa8b21",
391
439
  "supersedes": null,
392
440
  "metadata": {}
393
441
  },
@@ -395,7 +443,7 @@
395
443
  "slug": "workflow-coordination",
396
444
  "file": "skills/workflow-coordination/SKILL.md",
397
445
  "version": "1.0.0",
398
- "checksum": "sha256:209bb65711b497813859e2183e61ee2f9ad1223a1165f31fcee12c45abf1b798",
446
+ "checksum": "sha256:bde4601fc20c17662ba1eb794884811885d07aa93feb66a922a3443023a77e7d",
399
447
  "supersedes": null,
400
448
  "metadata": {}
401
449
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchestrator-claude/definitions",
3
- "version": "3.33.0",
3
+ "version": "3.34.0",
4
4
  "description": "Built-in definitions (agents, skills, hooks, workflows, KB seeds) for the Orchestrator ecosystem",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: artifact-generator
3
- description: Generate client-facing deliverable files (xlsx schedules, pdf decks, csv issue trees, jinja2-templated docs). Load when: "generate xlsx", "build pdf", "compile deliverable pack", "jinja2 template". Do NOT use for code generation.
3
+ description: 'Generate client-facing deliverable files (xlsx schedules, pdf decks, csv issue trees, jinja2-templated docs). Load when: "generate xlsx", "build pdf", "compile deliverable pack", "jinja2 template". Do NOT use for code generation.'
4
4
  allowed-tools: Read, Write, Bash
5
5
  ---
6
6
 
@@ -60,6 +60,34 @@ Always include metadata when storing:
60
60
  The artifact-validator hook will automatically validate after storage.
61
61
  Status transitions: draft → validated (after passing validation).
62
62
 
63
+ ### Test Matrix Enumeration (specifier + planner discipline)
64
+
65
+ When a spec or plan mentions exception/error handling, the test matrix MUST enumerate **one test per distinct exception handler** — not just user-visible behavior paths.
66
+
67
+ **Concrete rule for network/IO code:** the default exception test matrix includes (at minimum):
68
+ - 2xx success
69
+ - 4xx response (where domain-relevant)
70
+ - 5xx response (where domain-relevant)
71
+ - `Timeout` / `ReadTimeout`
72
+ - `ConnectionError`
73
+ - `SSLError` (when TLS involved)
74
+ - Catch-all `RequestException` / equivalent (when the implementer adds it as a safety net)
75
+
76
+ **Trigger:** if the spec text contains any of `try` / `except` / `catch` / "fallback" / "retry" / "handler", the planner MUST emit one task per `except` clause expected in the implementation. Implementers adding NEW `except` branches not in the matrix MUST amend the matrix in the same commit (or file a TD if amending the plan is out-of-scope).
77
+
78
+ **Origin:** S226 wave-3c TD-S226-003 reviewer HIGH-001 (uncovered `ConnectionError` branch, fixed via `5a0d4b4`). Promoted from TD-S226-007 (PL-002).
79
+
80
+ ### TD filing discipline — empirical evidence vs hypothesis
81
+
82
+ When filing a TD that cites specific external-artifact identifiers (cert chain intermediates, vendor schema field names, government CSV column names, third-party API endpoints, library symbol paths), the TD body MUST separate:
83
+
84
+ - **Empirical evidence** (command + observable output that was actually run at filing time — `openssl s_client ...`, `curl -v ...`, `python -c "import pandas; print(...)"`, `git log --oneline`, etc.)
85
+ - **Root-cause hypothesis** (the proposed explanation — may name specific identifiers, but flagged as hypothesis-not-yet-verified)
86
+
87
+ **Prohibited:** citing specific intermediate cert names, schema column names, or API field paths as fact without an empirical probe captured in the TD itself.
88
+
89
+ **Origin:** S226 wave-3d TD-S226-006 cited wrong intermediate cert (`AC Receita Federal v4` while actual was `RNP ICPEdu GR46 OV TLS CA 2025`). Worked because L1 bundle assembly used `openssl s_client` directly, not BACKLOG-cited names. Promoted from TD-S226-008 (PL-003). Sister to Universal Invariant 6 (`verify_external_artifact_before_implement`) — TD-filing-stage analogue of the implementation-stage rule.
90
+
63
91
  ### Invocation Tracking
64
92
 
65
93
  After storing artifact, complete the agent invocation:
@@ -38,6 +38,11 @@ Look for:
38
38
  ### METRICS: [workflow efficiency observations]
39
39
  ```
40
40
 
41
- ### Step 5: Update BACKLOG.md
42
- If significant findings, suggest updates to project-guidelines/BACKLOG.md
43
- with specific sections to add/modify.
41
+ ### Step 5: Persist to Structured State (RFC-033)
42
+ Do NOT grow `BACKLOG.md` (retired to append-only history). Instead, on significant findings, write the three structured surfaces:
43
+
44
+ 1. **`project-guidelines/project-state.yaml`** (hot path — what `session-start.ts` reads). Overwrite the small fields only: `session.{current,previous,updated,last_summary}`, `next_step.{summary,workflow}`, `pending.{critical,high,medium,ci_gating}` (COUNTS of confirmed-actionable items, not prose), `active_work`, `follow_ups`. Keep it small.
45
+ 2. **`project-guidelines/sessions/S<NNN>.md`** (cold path). Append the rich session narrative here — one file per session — NOT into BACKLOG.md.
46
+ 3. **`project-guidelines/registry.yaml`** (TD/doc status SSOT — RFC-033 Phase 2). Upsert a row for any TD whose status changed or that was newly discovered. Fields: `status` ∈ constitution values (`proposed|accepted|resolved|rejected|...`); `resolution: partial` for partially-shipped work; `verification: verified-S<NNN>` when checked against actual code/commit, `unverified-triage` when carried forward unconfirmed. **registry.yaml — not index.md, not per-TD frontmatter — is the single source of truth for status.** index.md is a manual/generated view (generator + CI-validate tracked by TD-174).
47
+
48
+ **Verify-before-assert (S294–S298 lesson):** before marking a TD `resolved`, confirm against the actual mechanism/code/commit — never the per-TD frontmatter (`status:` there is known-stale) or BACKLOG prose. When the three sources disagree, the per-vintage mechanism check wins.
@@ -5,6 +5,13 @@ description: When and how to create workflow checkpoints. Use after completing t
5
5
 
6
6
  ## Checkpoint Creation Protocol
7
7
 
8
+ ### Who follows this (TD-171)
9
+ This protocol applies to the `implementer` **and all engineer-type committing agents** — any agent whose tool list holds `mcp__orchestrator-tools__createCheckpoint`: as of S290 that is `implementer`, `azure-devops-engineer`, `presentation-engineer`, `operational-artifact-builder`, `cicd-platform-engineer`, `python-data-engineer`, `frontend-engineer`. Engineer-types commit critical artifacts **outside `src/`** (IaC, pipelines, ETL, decks), so they need per-change git revertability too — "only `src/` commits matter" is wrong.
10
+
11
+ ### Checkpoint vs git (read first)
12
+ - `createCheckpoint` is a **PostgreSQL state snapshot** (RFC-012), **INDEPENDENT of git** — you do NOT need to commit before calling it.
13
+ - **Local commit YES, push NO (TD-171):** you MAY make local git commits for granular revertability, on the **feature branch the orchestrator prepared before dispatching you** (branch-before-dispatch, `/orchestrator` §2c.0). You MUST NEVER `git push` / `git merge` / `gh pr merge` — push/merge is orchestrator-owned (enforced by `agent-git-guard`, TD-169). Return your work in your report; the orchestrator pushes after its independent assert.
14
+
8
15
  ### When to Create
9
16
  - After every 3-5 completed tasks
10
17
  - After passing a phase gate
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: infographic-engine
3
+ description: Generate premium, data-bound infographics as deterministic SVG/HTML (NEVER AI raster). Load when "infográfico", "infographic", "visual executivo", "diagrama premium", "substituir screenshot por visual", "data visual for deck/proposal", or when presentation-engineer / operational-artifact-builder need editorial-quality visuals from real data. Provides 6 composition archetypes + style presets + MANDATORY Playwright visual validation loop. Do NOT use for charts from raw datasets (use plotting libs), UI screens (use DSVL/storybook-validated-loop), or photo/illustration needs.
4
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
5
+ ---
6
+
7
+ # Infographic Engine
8
+
9
+ Capability skill for producing **editorial-quality, data-bound infographics** as deterministic vector artifacts (inline SVG, HTML+CSS, or Vue components for Slidev). Consumed by `presentation-engineer` (decks), `operational-artifact-builder` (proposal PDFs), and main-orchestrator (governance docs).
10
+
11
+ **Origin:** S263 (TRC deck v2). Lineage: composition discipline partially derived from external designer prompt-craft (raster AI prompts, S263) — the **medium was rejected** (see Core Principles), the **art direction and restraint rules were salvaged**. Validation loop inherits the DSVL/canary pattern (9× empirically validated in TRC).
12
+
13
+ ---
14
+
15
+ ## Core Principles (non-negotiable)
16
+
17
+ 1. **Vector, never AI raster.** Output is SVG/HTML+CSS authored by the model — NOT text-to-image generation. Rationale: (a) typography is exact (PT-BR accents render perfectly); (b) real data binds with fidelity; (c) project design tokens inject natively; (d) output is editable, diffable, reproducible; (e) crisp at any scale, embeds in Slidev/HTML/PDF.
18
+ 2. **Data-bound, never decorative.** Every number, label, and proportion in the visual MUST trace to a cited source (spec, matrix doc, research finding). If a value is illustrative, it is labeled as such. No invented statistics.
19
+ 3. **One hero per visual.** Every infographic has exactly ONE dominant element (a number, a flow, a hub). Everything else is support. If two things compete for hero, split into two infographics.
20
+ 4. **Density budget enforced.** Editorial quality = restraint. Per-archetype caps below are hard limits, not suggestions.
21
+ 5. **Visual validation is MANDATORY.** No infographic ships without the render→screenshot→critique loop (§Validation). The model must SEE its output before delivering. This is the quality gate that separates editorial from slop.
22
+ 6. **Token fidelity.** When the project has a design system, its tokens are LAW (colors, type, radii, shadows). Style presets (§Presets) apply only when no project DS exists.
23
+
24
+ ## When to use
25
+
26
+ USE when:
27
+ - A deck/proposal/doc needs a high-quality visual synthesizing real information (system maps, flows, comparisons, KPIs, roadmaps, coverage matrices)
28
+ - Replacing screenshots with executive-grade visuals (C-level audiences want *system and value*, not UI)
29
+ - presentation-engineer or operational-artifact-builder dispatch references an infographic need
30
+
31
+ DO NOT use when:
32
+ - Plotting a dataset (>20 data points) → use a charting lib or generate the chart programmatically
33
+ - Prototyping UI screens → DSVL / storybook-validated-loop
34
+ - Photographic/illustrative imagery is genuinely required → out of scope, flag to user
35
+
36
+ ---
37
+
38
+ ## Pipeline (6 steps)
39
+
40
+ ### 1 — Brief & data contract
41
+ Extract from the request: **audience** (C-level? technical? client?), **format** (16:9 slide / 1:1 / 9:16 / A4 block), **the one message** this visual must land, and the **data table** (every value + its source). Write the data contract inline before composing. If any value lacks a source → STOP, ask or mark illustrative.
42
+
43
+ ### 2 — Archetype selection
44
+ Pick ONE archetype from the catalog (§Archetypes). If the content fits none, compose from at most TWO archetypes (e.g., hero-KPI + mini-timeline footer). More than two = the brief is overloaded → split.
45
+
46
+ ### 3 — Style resolution
47
+ Resolve in order: (a) project design-system tokens (injected via dispatch context, e.g. `$DESIGN_SYSTEM_REPO`); (b) explicit user direction; (c) skill preset (§Presets). Declare the resolved palette/type stack in a comment block at the top of the artifact.
48
+
49
+ ### 4 — Compose (SVG-first)
50
+ Author the artifact:
51
+ - **SVG standalone** (default): inline `<svg viewBox>`, system font stack or project font, all text as real `<text>` elements (NEVER paths/outlines — must stay editable + accessible).
52
+ - **HTML+CSS canary**: when layout needs flexbox/grid complexity (then screenshot or embed as-is in Slidev).
53
+ - **Vue component** (Slidev targets): SFC wrapping the SVG with props for data — follow the `ROIVisual.vue`/`Timeline3Phases.vue` precedent.
54
+ Apply the grid: 12-col mental grid, 8px spacing base, max 2 font weights + 2 sizes per panel, generous whitespace (≥15% of canvas empty).
55
+
56
+ ### 5 — Visual validation loop (MANDATORY, max 3 iterations)
57
+ 1. Render the artifact (open HTML/SVG via Playwright or dev server).
58
+ 2. Screenshot at target size (e.g. 1920×1080 for 16:9 slide context).
59
+ 3. **Critique against the Anti-Slop Checklist (§Checklist)** — honestly, as a hostile design reviewer.
60
+ 4. Fix findings → re-render. Converge when zero checklist violations.
61
+ 5. If still failing after 3 iterations → simplify the brief (cut a panel, drop a connector) rather than polish complexity.
62
+
63
+ ### 6 — Package & deliver
64
+ Deliver per target: `.svg` file (+ optional PNG export via Playwright screenshot for raster consumers), or `.vue` component registered in the deck theme. Include the data-contract comment (sources) in the artifact header. Store path + screenshot evidence in the session record.
65
+
66
+ ---
67
+
68
+ ## Archetype Catalog
69
+
70
+ | # | Archetype | Use when | Hero | Density budget |
71
+ |---|---|---|---|---|
72
+ | A1 | **Hub multi-actor** | One system, N entry points/profiles | Central node | ≤6 satellites, ≤1 bridge-node highlight, ≤8 connectors |
73
+ | A2 | **Mirrored comparison / dual force** | Two pains, two options, before/after | The axis of symmetry | 2 columns, ≤3 items each, 1 convergence element |
74
+ | A3 | **Flow with gate** | Process with checkpoint/blocker | The gate | ≤6 steps, 1 gate, ≤2 branch outcomes |
75
+ | A4 | **KPI hero + support** | One number carries the thesis | The number (≥25% canvas height) | 1 hero + ≤4 support stats |
76
+ | A5 | **Timeline / honest roadmap** | Phases, vision→production | Current-state marker | ≤4 phases, ≤3 bullets each |
77
+ | A6 | **Coverage matrix / map** | Breadth of solution across dimensions | The filled-vs-empty pattern | ≤7×5 cells; cell content = icon/dot + ≤2 words |
78
+
79
+ Composition skeleton (all archetypes): **Title** (caixa-alta or strong weight, ≤6 words) → **subtitle** (one line: the mechanism or the "so what") → **body** (the archetype) → **footer** (≤3 micro-facts or source line).
80
+
81
+ ## Style Presets (fallback when no project DS)
82
+
83
+ | Preset | Background | Cards | Strokes | Accent discipline |
84
+ |---|---|---|---|---|
85
+ | `dark-premium` | deep graphite `#16181D` or dark navy, subtle radial gradient | `rgba(255,255,255,0.06)`, radius 8px | 1px `rgba(255,255,255,0.12)` | 1 accent color + 1 critical color, max |
86
+ | `light-editorial` | `#F8F9FA` / paper white | `#FFFFFF` + soft shadow `0 2px 8px rgba(0,0,0,0.08)` | 1px `#E9ECEF` | 1 accent + neutrals |
87
+
88
+ Shared rules: glow/gradient only if *discreet* and purposeful (≤1 per canvas) · semi-transparent cards over busy areas only · thin-line iconography (Lucide-style), never emoji in C-level artifacts · PT-BR text by default for TRC-sphere work.
89
+
90
+ ## Anti-Slop Checklist (the critique gate of step 5)
91
+
92
+ Reject and fix if ANY of these is true:
93
+ - [ ] More panels/elements than the archetype budget allows
94
+ - [ ] Two elements compete for hero (nothing dominates)
95
+ - [ ] Any text < 11px equivalent at target render size, or any truncated/overlapping label
96
+ - [ ] >2 font sizes per panel, >3 accent colors total, gratuitous gradients/glows
97
+ - [ ] Connector spaghetti (lines crossing more than once; >budget connectors)
98
+ - [ ] A number/label without source in the data contract
99
+ - [ ] Decorative icons that don't encode meaning ("ícone científico genérico")
100
+ - [ ] Whitespace < 15% of canvas (cramped = cheap)
101
+ - [ ] Typographic crimes: fake small-caps, stretched type, centered long paragraphs
102
+ - [ ] Looks like "AI slop": generic, gradient-heavy, mascot characters, watermark-esque clutter
103
+ - [ ] Off-token: any color/font outside the resolved style (when project DS exists)
104
+
105
+ ## Acceptance gates
106
+
107
+ - Data contract present in artifact header, all values sourced
108
+ - Validation loop evidence: ≥1 screenshot reviewed, checklist clean
109
+ - Text is real text (selectable in SVG), pt-BR correct (acentuação verificada)
110
+ - Renders correctly at target format without overflow at 100% zoom
111
+
112
+ ## Integration notes
113
+
114
+ - **presentation-engineer:** import `.vue` infographic components into the Slidev theme (`theme/components/`); register data via props; respect deck token cascade.
115
+ - **operational-artifact-builder:** embed SVG inline in HTML→PDF pipelines (weasyprint/playwright print); PNG fallback only if the PDF toolchain mangles SVG.
116
+ - **DSVL relationship:** DSVL validates *UI screens* against a design system; this skill validates *information graphics* against editorial composition rules. Same canary philosophy, different artifact class.