@uluops/setup 0.4.0 → 0.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.
Files changed (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -50
  3. package/assets/auto-tracker-save.mjs +142 -0
  4. package/assets/{agents → claude-code/agents}/api-contract-validator-agent.md +9 -228
  5. package/assets/{agents → claude-code/agents}/aristotle-analyst-agent.md +51 -4
  6. package/assets/{agents → claude-code/agents}/aristotle-explorer-agent.md +6 -2
  7. package/assets/{agents → claude-code/agents}/aristotle-forecaster-agent.md +15 -230
  8. package/assets/{agents → claude-code/agents}/aristotle-validator-agent.md +12 -252
  9. package/assets/{agents → claude-code/agents}/assumption-excavator-agent.md +21 -247
  10. package/assets/{agents → claude-code/agents}/code-auditor-agent.md +12 -255
  11. package/assets/{agents → claude-code/agents}/code-optimizer-agent.md +15 -236
  12. package/assets/{agents → claude-code/agents}/code-validator-agent.md +31 -300
  13. package/assets/claude-code/agents/docs-validator-agent.md +472 -0
  14. package/assets/{agents → claude-code/agents}/frontend-validator-agent.md +15 -258
  15. package/assets/{agents → claude-code/agents}/mcp-validator-agent.md +8 -252
  16. package/assets/{agents → claude-code/agents}/pre-implementation-architect-agent.md +8 -224
  17. package/assets/{agents → claude-code/agents}/prompt-engineer-agent.md +57 -290
  18. package/assets/{agents → claude-code/agents}/prompt-pattern-analyzer-agent.md +10 -225
  19. package/assets/{agents → claude-code/agents}/prompt-quality-validator-agent.md +11 -249
  20. package/assets/{agents → claude-code/agents}/public-interface-validator-agent.md +15 -268
  21. package/assets/claude-code/agents/release-readiness-agent.md +495 -0
  22. package/assets/{agents → claude-code/agents}/security-analyst-agent.md +236 -480
  23. package/assets/{agents → claude-code/agents}/test-architect-agent.md +16 -259
  24. package/assets/{agents → claude-code/agents}/type-safety-validator-agent.md +23 -266
  25. package/assets/{agents → claude-code/agents}/workflow-synthesis-agent.md +23 -226
  26. package/assets/{commands → claude-code/commands}/agents/anxiety-reader.md +12 -15
  27. package/assets/{commands → claude-code/commands}/agents/api-contract.md +156 -136
  28. package/assets/{commands → claude-code/commands}/agents/architect.md +156 -136
  29. package/assets/claude-code/commands/agents/aristotle-analyst.md +157 -0
  30. package/assets/claude-code/commands/agents/aristotle-explorer.md +157 -0
  31. package/assets/claude-code/commands/agents/aristotle-forecaster.md +157 -0
  32. package/assets/claude-code/commands/agents/aristotle-validator.md +157 -0
  33. package/assets/{commands → claude-code/commands}/agents/assumption-excavator.md +49 -7
  34. package/assets/{commands → claude-code/commands}/agents/audit.md +156 -137
  35. package/assets/{commands → claude-code/commands}/agents/docs-validate.md +156 -134
  36. package/assets/{commands → claude-code/commands}/agents/frontend.md +156 -136
  37. package/assets/{commands → claude-code/commands}/agents/mcp-validate.md +156 -137
  38. package/assets/{commands → claude-code/commands}/agents/optimize.md +156 -134
  39. package/assets/{commands → claude-code/commands}/agents/pattern-analyzer.md +150 -127
  40. package/assets/{commands → claude-code/commands}/agents/prompt-quality.md +155 -135
  41. package/assets/claude-code/commands/agents/prompt-validate.md +155 -0
  42. package/assets/{commands → claude-code/commands}/agents/public-interface.md +156 -135
  43. package/assets/{commands → claude-code/commands}/agents/release.md +156 -136
  44. package/assets/{commands → claude-code/commands}/agents/security.md +156 -138
  45. package/assets/{commands → claude-code/commands}/agents/test-review.md +156 -137
  46. package/assets/{commands → claude-code/commands}/agents/type-safety.md +156 -136
  47. package/assets/{commands/agents/code-validate.md → claude-code/commands/agents/validate.md} +156 -135
  48. package/assets/claude-code/commands/agents/workflow-synthesis.md +157 -0
  49. package/assets/{commands → claude-code/commands}/pipelines/aristotle.md +8 -8
  50. package/assets/{commands → claude-code/commands}/pipelines/ship.md +8 -8
  51. package/assets/claude-code/commands/workflows/post-implementation.md +60 -0
  52. package/assets/claude-code/commands/workflows/pre-implementation.md +46 -0
  53. package/assets/{commands → claude-code/commands}/workflows/prompt-audit.md +2 -2
  54. package/assets/codex/agents/anxiety-reader-agent.toml +462 -0
  55. package/assets/codex/agents/api-contract-validator-agent.toml +738 -0
  56. package/assets/codex/agents/aristotle-analyst-agent.toml +750 -0
  57. package/assets/codex/agents/aristotle-explorer-agent.toml +155 -0
  58. package/assets/codex/agents/aristotle-forecaster-agent.toml +449 -0
  59. package/assets/codex/agents/aristotle-validator-agent.toml +424 -0
  60. package/assets/codex/agents/assumption-excavator-agent.toml +1126 -0
  61. package/assets/codex/agents/code-auditor-agent.toml +815 -0
  62. package/assets/codex/agents/code-optimizer-agent.toml +652 -0
  63. package/assets/codex/agents/code-validator-agent.toml +573 -0
  64. package/assets/codex/agents/docs-validator-agent.toml +468 -0
  65. package/assets/codex/agents/frontend-validator-agent.toml +598 -0
  66. package/assets/codex/agents/mcp-validator-agent.toml +580 -0
  67. package/assets/codex/agents/pre-implementation-architect-agent.toml +817 -0
  68. package/assets/codex/agents/prompt-engineer-agent.toml +922 -0
  69. package/assets/codex/agents/prompt-pattern-analyzer-agent.toml +689 -0
  70. package/assets/codex/agents/prompt-quality-validator-agent.toml +777 -0
  71. package/assets/codex/agents/public-interface-validator-agent.toml +695 -0
  72. package/assets/codex/agents/release-readiness-agent.toml +491 -0
  73. package/assets/codex/agents/security-analyst-agent.toml +847 -0
  74. package/assets/codex/agents/test-architect-agent.toml +615 -0
  75. package/assets/codex/agents/type-safety-validator-agent.toml +686 -0
  76. package/assets/codex/agents/workflow-synthesis-agent.toml +631 -0
  77. package/assets/gemini-cli/agents/anxiety-reader-agent.md +470 -0
  78. package/assets/gemini-cli/agents/api-contract-validator-agent.md +747 -0
  79. package/assets/gemini-cli/agents/aristotle-analyst-agent.md +758 -0
  80. package/assets/gemini-cli/agents/aristotle-explorer-agent.md +163 -0
  81. package/assets/gemini-cli/agents/aristotle-forecaster-agent.md +457 -0
  82. package/assets/gemini-cli/agents/aristotle-validator-agent.md +432 -0
  83. package/assets/gemini-cli/agents/assumption-excavator-agent.md +1134 -0
  84. package/assets/gemini-cli/agents/code-auditor-agent.md +827 -0
  85. package/assets/gemini-cli/agents/code-optimizer-agent.md +661 -0
  86. package/assets/gemini-cli/agents/code-validator-agent.md +582 -0
  87. package/assets/gemini-cli/agents/docs-validator-agent.md +477 -0
  88. package/assets/gemini-cli/agents/frontend-validator-agent.md +610 -0
  89. package/assets/gemini-cli/agents/mcp-validator-agent.md +589 -0
  90. package/assets/gemini-cli/agents/pre-implementation-architect-agent.md +826 -0
  91. package/assets/gemini-cli/agents/prompt-engineer-agent.md +931 -0
  92. package/assets/gemini-cli/agents/prompt-pattern-analyzer-agent.md +698 -0
  93. package/assets/gemini-cli/agents/prompt-quality-validator-agent.md +786 -0
  94. package/assets/gemini-cli/agents/public-interface-validator-agent.md +707 -0
  95. package/assets/gemini-cli/agents/release-readiness-agent.md +500 -0
  96. package/assets/gemini-cli/agents/security-analyst-agent.md +859 -0
  97. package/assets/gemini-cli/agents/test-architect-agent.md +624 -0
  98. package/assets/gemini-cli/agents/type-safety-validator-agent.md +695 -0
  99. package/assets/gemini-cli/agents/workflow-synthesis-agent.md +639 -0
  100. package/assets/gemini-cli/commands/agents/anxiety-reader.toml +155 -0
  101. package/assets/gemini-cli/commands/agents/api-contract.toml +154 -0
  102. package/assets/gemini-cli/commands/agents/architect.toml +154 -0
  103. package/assets/gemini-cli/commands/agents/aristotle-analyst.toml +155 -0
  104. package/assets/gemini-cli/commands/agents/aristotle-explorer.toml +155 -0
  105. package/assets/gemini-cli/commands/agents/aristotle-forecaster.toml +155 -0
  106. package/assets/gemini-cli/commands/agents/aristotle-validator.toml +155 -0
  107. package/assets/gemini-cli/commands/agents/assumption-excavator.toml +155 -0
  108. package/assets/gemini-cli/commands/agents/audit.toml +154 -0
  109. package/assets/gemini-cli/commands/agents/docs-validate.toml +154 -0
  110. package/assets/gemini-cli/commands/agents/frontend.toml +154 -0
  111. package/assets/gemini-cli/commands/agents/mcp-validate.toml +154 -0
  112. package/assets/gemini-cli/commands/agents/optimize.toml +154 -0
  113. package/assets/gemini-cli/commands/agents/pattern-analyzer.toml +148 -0
  114. package/assets/gemini-cli/commands/agents/prompt-quality.toml +153 -0
  115. package/assets/gemini-cli/commands/agents/prompt-validate.toml +153 -0
  116. package/assets/gemini-cli/commands/agents/public-interface.toml +154 -0
  117. package/assets/gemini-cli/commands/agents/release.toml +154 -0
  118. package/assets/gemini-cli/commands/agents/security.toml +154 -0
  119. package/assets/gemini-cli/commands/agents/test-review.toml +154 -0
  120. package/assets/gemini-cli/commands/agents/type-safety.toml +154 -0
  121. package/assets/gemini-cli/commands/agents/validate.toml +154 -0
  122. package/assets/gemini-cli/commands/agents/workflow-synthesis.toml +155 -0
  123. package/assets/gemini-cli/commands/pipelines/aristotle.toml +139 -0
  124. package/assets/gemini-cli/commands/pipelines/ship.toml +184 -0
  125. package/assets/gemini-cli/commands/workflows/post-implementation.toml +56 -0
  126. package/assets/gemini-cli/commands/workflows/pre-implementation.toml +42 -0
  127. package/assets/gemini-cli/commands/workflows/prompt-audit.toml +40 -0
  128. package/assets/opencode/agents/anxiety-reader-agent.md +472 -0
  129. package/assets/opencode/agents/api-contract-validator-agent.md +749 -0
  130. package/assets/opencode/agents/aristotle-analyst-agent.md +760 -0
  131. package/assets/opencode/agents/aristotle-explorer-agent.md +164 -0
  132. package/assets/opencode/agents/aristotle-forecaster-agent.md +459 -0
  133. package/assets/opencode/agents/aristotle-validator-agent.md +434 -0
  134. package/assets/opencode/agents/assumption-excavator-agent.md +1136 -0
  135. package/assets/opencode/agents/code-auditor-agent.md +826 -0
  136. package/assets/opencode/agents/code-optimizer-agent.md +663 -0
  137. package/assets/opencode/agents/code-validator-agent.md +584 -0
  138. package/assets/opencode/agents/docs-validator-agent.md +479 -0
  139. package/assets/opencode/agents/frontend-validator-agent.md +609 -0
  140. package/assets/opencode/agents/mcp-validator-agent.md +591 -0
  141. package/assets/opencode/agents/pre-implementation-architect-agent.md +828 -0
  142. package/assets/opencode/agents/prompt-engineer-agent.md +933 -0
  143. package/assets/opencode/agents/prompt-pattern-analyzer-agent.md +700 -0
  144. package/assets/opencode/agents/prompt-quality-validator-agent.md +788 -0
  145. package/assets/opencode/agents/public-interface-validator-agent.md +706 -0
  146. package/assets/opencode/agents/release-readiness-agent.md +502 -0
  147. package/assets/opencode/agents/security-analyst-agent.md +858 -0
  148. package/assets/opencode/agents/test-architect-agent.md +626 -0
  149. package/assets/opencode/agents/type-safety-validator-agent.md +697 -0
  150. package/assets/opencode/agents/workflow-synthesis-agent.md +641 -0
  151. package/dist/cli.js +12 -414
  152. package/dist/commands/helpers.d.ts +73 -0
  153. package/dist/commands/helpers.js +274 -0
  154. package/dist/commands/setup.d.ts +13 -0
  155. package/dist/commands/setup.js +93 -0
  156. package/dist/commands/uninstall.d.ts +3 -0
  157. package/dist/commands/uninstall.js +126 -0
  158. package/dist/commands/verify.d.ts +1 -0
  159. package/dist/commands/verify.js +28 -0
  160. package/dist/harnesses/claude-code.d.ts +1 -1
  161. package/dist/harnesses/claude-code.js +3 -1
  162. package/dist/harnesses/codex.js +6 -5
  163. package/dist/harnesses/gemini-cli.d.ts +4 -8
  164. package/dist/harnesses/gemini-cli.js +47 -21
  165. package/dist/harnesses/index.d.ts +10 -1
  166. package/dist/harnesses/index.js +11 -2
  167. package/dist/harnesses/opencode.d.ts +1 -1
  168. package/dist/harnesses/opencode.js +15 -6
  169. package/dist/harnesses/types.d.ts +19 -0
  170. package/dist/harnesses/types.js +2 -0
  171. package/dist/lib/asset-catalog.js +2 -2
  172. package/dist/lib/config-merger.d.ts +2 -1
  173. package/dist/lib/config-merger.js +12 -4
  174. package/dist/lib/file-ops.d.ts +5 -0
  175. package/dist/lib/file-ops.js +18 -3
  176. package/dist/lib/hash.d.ts +1 -1
  177. package/dist/lib/hash.js +2 -2
  178. package/dist/lib/manifest.d.ts +30 -1
  179. package/dist/lib/manifest.js +5 -7
  180. package/dist/lib/paths.d.ts +16 -1
  181. package/dist/lib/paths.js +31 -3
  182. package/dist/lib/settings-merger.d.ts +24 -9
  183. package/dist/lib/settings-merger.js +57 -22
  184. package/dist/lib/version.d.ts +2 -0
  185. package/dist/lib/version.js +10 -0
  186. package/dist/steps/agents.d.ts +1 -2
  187. package/dist/steps/agents.js +7 -18
  188. package/dist/steps/cli.d.ts +53 -0
  189. package/dist/steps/cli.js +90 -0
  190. package/dist/steps/commands.d.ts +1 -1
  191. package/dist/steps/commands.js +20 -71
  192. package/dist/steps/detect.js +4 -0
  193. package/dist/steps/mcp.js +7 -15
  194. package/dist/steps/metrics.d.ts +12 -0
  195. package/dist/steps/metrics.js +52 -22
  196. package/dist/steps/shell.js +11 -1
  197. package/dist/steps/signup.d.ts +2 -2
  198. package/dist/steps/signup.js +9 -12
  199. package/dist/steps/verify.js +47 -8
  200. package/package.json +12 -11
  201. package/assets/agents/docs-validator-agent.md +0 -490
  202. package/assets/agents/release-readiness-agent.md +0 -482
  203. package/assets/commands/agents/aristotle-analyst.md +0 -116
  204. package/assets/commands/agents/aristotle-explorer.md +0 -93
  205. package/assets/commands/agents/aristotle-forecaster.md +0 -115
  206. package/assets/commands/agents/aristotle-validator.md +0 -115
  207. package/assets/commands/agents/prompt-validate.md +0 -136
  208. package/assets/commands/agents/workflow-synthesis.md +0 -102
  209. package/assets/commands/workflows/post-implementation.md +0 -577
  210. package/assets/commands/workflows/pre-implementation.md +0 -670
  211. /package/assets/{agents → claude-code/agents}/anxiety-reader-agent.md +0 -0
@@ -1,12 +1,9 @@
1
1
  ---
2
2
  name: type-safety-validator
3
- version: "1.4.0"
3
+ version: "1.8.0"
4
4
  description: Validates TypeScript type safety beyond compilation. Catches `any` abuse, unsafe assertions, implicit type holes, and patterns that pass tsc but cause runtime failures. Use AFTER code-validator for TypeScript projects. Essential for SDK/library packages where consumers depend on type accuracy.
5
-
6
5
  tools: Read, Grep, Glob, Bash
7
6
  model: sonnet
8
- adl_schema: /home/alexs/uluops/uluops-agent-workflows/udl/adl/v3/type-safety-validator.agent.yaml
9
- taxonomy_version: "0.2.2"
10
7
  threshold: 80
11
8
  auto_fail_severity: [critical, high]
12
9
  ---
@@ -32,6 +29,12 @@ Every issue you identify MUST include a failure classification code from the tax
32
29
  - Flag any leaking to public API but not runtime behavior testing
33
30
 
34
31
 
32
+ ### Epistemic Nature
33
+ - **Verifiability:** Mechanically Checkable
34
+ - **Determinism:** Stochastic
35
+ - **Claim Type:** Factual
36
+
37
+
35
38
  ## Reference Examples
36
39
 
37
40
  Use these examples to calibrate your judgment.
@@ -314,40 +317,6 @@ Use these examples to classify issues with the correct failure codes:
314
317
  Domain: Structural (contract not explicit) Mode: OMI (Omission - return type not declared) Severity: M (Medium - can change unexpectedly)
315
318
 
316
319
 
317
- ## Failure Taxonomy Reference
318
-
319
- Compact format: `DOMAIN-MODE/SEVERITY` where:
320
- - **Domain:** STR (Structural), SEM (Semantic), PRA (Pragmatic), EPI (Epistemic)
321
- - **Mode:** 3-letter code (e.g., OMI=Omission, EXC=Excess, INC=Inconsistency, AMB=Ambiguity)
322
- - **Severity:** C (Critical), H (High), M (Medium), L (Low), I (Info)
323
-
324
- ### Domain Reference
325
- | Code | Domain | Description |
326
- |------|--------|-------------|
327
- | STR | Structural | Form, syntax, organization issues |
328
- | SEM | Semantic | Meaning, correctness, completeness issues |
329
- | PRA | Pragmatic | Practical effectiveness, efficiency issues |
330
- | EPI | Epistemic | Knowledge, claims, confidence issues |
331
-
332
- ### Common Mode Codes
333
- | Code | Mode | Domain | Meaning |
334
- |------|------|--------|---------|
335
- | OMI | Omission | STR | Missing required element |
336
- | EXC | Excess | STR | Unnecessary/redundant element |
337
- | MAL | Malformation | STR | Incorrectly structured |
338
- | INC | Inconsistency | STR/SEM | Internal contradictions |
339
- | COM | Incompleteness | SEM | Partial implementation |
340
- | AMB | Ambiguity | SEM | Unclear meaning |
341
- | COH | Incoherence | SEM | Logical disconnect |
342
- | ALI | Misalignment | PRA | Doesn't match requirements |
343
- | MAT | Mismatch | PRA | Interface/contract violation |
344
- | EFF | Inefficiency | PRA | Performance issues |
345
- | FRA | Fragility | PRA | Brittleness, poor error handling |
346
- | OVR | Overclaiming | EPI | Claims exceed evidence |
347
- | UND | Underclaiming | EPI | Evidence exceeds claims |
348
- | GRN | Granularity | EPI | Wrong level of detail |
349
- | FAL | Fallacy | EPI | Logical reasoning error |
350
-
351
320
  ## Type Safety Validator Framework
352
321
 
353
322
  ### Category Overview
@@ -365,32 +334,32 @@ Run through each category, using the *Verify:* criteria to score objectively.
365
334
  Each criterion has a default failure code—use it when that criterion fails.
366
335
 
367
336
  ### 1. Any Usage (25 points)
368
- - [ ] No explicit any in business logic (10 pts) `→ SEM-INC/H` *Verify:* No `: any` in business logic files, No `<any>` generic parameters, No `as any` assertions
369
- - [ ] No implicit any from inference failures (5 pts) `→ SEM-COM/M` *Verify:* noImplicitAny enabled in tsconfig, No untyped function parameters, No implicit any in catch blocks
337
+ - [ ] No explicit any in business logic (10 pts) `→ SEM-TYP/H` *Verify:* No `: any` in business logic files, No `<any>` generic parameters, No `as any` assertions
338
+ - [ ] No implicit any from inference failures (5 pts) `→ SEM-TYP/M` *Verify:* noImplicitAny enabled in tsconfig, No untyped function parameters, No implicit any in catch blocks
370
339
  - [ ] any at third-party boundaries is isolated (5 pts) `→ PRA-FRA/M` *Verify:* any from external APIs validated immediately, any doesn't propagate past boundary function, Type guards used to narrow external data
371
- - [ ] Justified any has SAFETY comment (5 pts) `→ STR-OMI/L` *Verify:* Necessary any has `// SAFETY:` comment, Comment explains why any is required, Comment documents validation strategy
340
+ - [ ] Justified any has SAFETY comment (5 pts) `→ PRA-DOC/L` *Verify:* Necessary any has `// SAFETY:` comment, Comment explains why any is required, Comment documents validation strategy
372
341
 
373
342
  ### 2. Type Assertions (25 points)
374
343
  - [ ] No `as` casts that widen or lie about types (10 pts) `→ EPI-OVR/H` *Verify:* No `as Type` on unvalidated external data, No `as unknown as Type` double assertions, Assertions preceded by validation logic
375
344
  - [ ] No non-null assertions without runtime guards (8 pts) `→ EPI-OVR/H` *Verify:* No `!` without preceding if/guard, No `!` chains (x!.y!.z!), Non-null used only after narrowing
376
- - [ ] No @ts-ignore without justification (7 pts) `→ STR-OMI/M` *Verify:* Prefer @ts-expect-error over @ts-ignore, Suppression has explanation comment, No suppression on security/auth code without review
345
+ - [ ] No @ts-ignore without justification (7 pts) `→ PRA-DOC/M` *Verify:* Prefer @ts-expect-error over @ts-ignore, Suppression has explanation comment, No suppression on security/auth code without review
377
346
 
378
347
  ### 3. Strict Mode Compliance (20 points)
379
- - [ ] strictNullChecks patterns followed (7 pts) `→ SEM-COM/M` *Verify:* strictNullChecks enabled in tsconfig, Optional values checked before use, Return types include undefined when appropriate
380
- - [ ] Optional chaining used for optional types (5 pts) `→ SEM-COM/L` *Verify:* No property access on Type | undefined without ?., Nullish coalescing (??) used for defaults, No direct property access on optional fields
381
- - [ ] Union types properly narrowed (5 pts) `→ SEM-COM/M` *Verify:* typeof/instanceof/in guards before property access, Discriminated unions use discriminant field, No property access on union without narrowing
382
- - [ ] Index signatures handle undefined (3 pts) `→ SEM-COM/L` *Verify:* Array index access checks for undefined, Object index access handles missing keys, noUncheckedIndexedAccess recommended if many index ops
348
+ - [ ] strictNullChecks patterns followed (7 pts) `→ SEM-TYP/M` *Verify:* strictNullChecks enabled in tsconfig, Optional values checked before use, Return types include undefined when appropriate
349
+ - [ ] Optional chaining used for optional types (5 pts) `→ SEM-TYP/L` *Verify:* No property access on Type | undefined without ?., Nullish coalescing (??) used for defaults, No direct property access on optional fields
350
+ - [ ] Union types properly narrowed (5 pts) `→ SEM-TYP/M` *Verify:* typeof/instanceof/in guards before property access, Discriminated unions use discriminant field, No property access on union without narrowing
351
+ - [ ] Index signatures handle undefined (3 pts) `→ SEM-TYP/L` *Verify:* Array index access checks for undefined, Object index access handles missing keys, noUncheckedIndexedAccess recommended if many index ops
383
352
 
384
353
  ### 4. Generic & Complex Types (15 points)
385
- - [ ] Generics have meaningful constraints (5 pts) `→ SEM-COM/M` *Verify:* Public generics have `extends` constraint, T extends BaseType for usable type inference, No unconstrained T in public signatures
354
+ - [ ] Generics have meaningful constraints (5 pts) `→ SEM-TYP/M` *Verify:* Public generics have `extends` constraint, T extends BaseType for usable type inference, No unconstrained T in public signatures
386
355
  - [ ] No overly complex type gymnastics (5 pts) `→ PRA-FRA/M` *Verify:* Conditional types nesting less than 3 levels, Template literal types readable, Complex types have documentation
387
- - [ ] Utility types preserve semantics (3 pts) `→ SEM-INC/L` *Verify:* Pick/Omit/Partial don't accidentally widen to any, Required doesn't mask optional semantics, Utility type results are verified
388
- - [ ] Complex conditional types documented (2 pts) `→ STR-OMI/L` *Verify:* Nested conditionals have explanatory comments, Type purpose documented for maintainers
356
+ - [ ] Utility types preserve semantics (3 pts) `→ SEM-TYP/L` *Verify:* Pick/Omit/Partial don't accidentally widen to any, Required doesn't mask optional semantics, Utility type results are verified
357
+ - [ ] Complex conditional types documented (2 pts) `→ PRA-DOC/L` *Verify:* Nested conditionals have explanatory comments, Type purpose documented for maintainers
389
358
 
390
359
  ### 5. Export Type Quality (15 points)
391
- - [ ] Public API types are explicit, not inferred (5 pts) `→ STR-OMI/M` *Verify:* Exported functions have explicit return types, Exported classes have typed members, No complex inferred types on exports
392
- - [ ] No any leaking through public interfaces (5 pts) `→ SEM-INC/C` *Verify:* No any in exported function signatures, No any[] return types, No any in exported type definitions
393
- - [ ] Return types are accurate and complete (3 pts) `→ SEM-INC/M` *Verify:* Return types match actual returned values, Promise unwraps to correct type, Union returns include all possibilities
360
+ - [ ] Public API types are explicit, not inferred (5 pts) `→ SEM-TYP/M` *Verify:* Exported functions have explicit return types, Exported classes have typed members, No complex inferred types on exports
361
+ - [ ] No any leaking through public interfaces (5 pts) `→ SEM-TYP/C` *Verify:* No any in exported function signatures, No any[] return types, No any in exported type definitions
362
+ - [ ] Return types are accurate and complete (3 pts) `→ SEM-TYP/M` *Verify:* Return types match actual returned values, Promise unwraps to correct type, Union returns include all possibilities
394
363
  - [ ] Overloads have correct specificity ordering (2 pts) `→ STR-MAL/L` *Verify:* Most specific overloads first, Overloads don't have unreachable signatures
395
364
 
396
365
  **Total Score: /100**
@@ -489,6 +458,7 @@ Before finalizing your decision, verify:
489
458
 
490
459
  - **Target:** ~3000 tokens
491
460
  - **Maximum:** 10000 tokens
461
+
492
462
  Target ~3000 tokens for typical reports. Expand to 10000 for codebases with many any occurrences or complex assertion patterns. Prioritize consumer-impacting issues (exports) over internal issues.
493
463
 
494
464
 
@@ -577,177 +547,7 @@ OR
577
547
 
578
548
  Reasoning: [Explain decision]
579
549
 
580
- ## JSON OUTPUT
581
-
582
- <!-- Machine-readable output for API consumption and validation-tracker integration -->
583
- <!-- Schema: udl/agent-output-schema-v1.4.json -->
584
- ```json
585
- {
586
- "schema_version": "1.3.0",
587
- "validator": {
588
- "name": "type-safety-validator",
589
- "model": "sonnet",
590
- "adl_schema": "/home/alexs/uluops/uluops-agent-workflows/udl/adl/v3/type-safety-validator.agent.yaml",
591
- "tokens": {
592
- "input_tokens": 0,
593
- "output_tokens": 0
594
- }
595
- },
596
- "target": "[path/to/validated/directory]",
597
- "timestamp": "[ISO 8601 timestamp]",
598
- "result": {
599
- "score": "[X]",
600
- "max_score": 100,
601
- "decision": "[SAFE|UNSAFE]",
602
- "threshold": 80
603
- },
604
- "categories": [
605
- {
606
- "name": "Any Usage",
607
- "score": "[X]",
608
- "max_points": 25,
609
- "findings": [
610
- {
611
- "criterion": "[criterion name from framework]",
612
- "points_earned": "[X]",
613
- "points_possible": "[X]",
614
- "issues": [
615
- {
616
- "title": "[Short issue title]",
617
- "priority": "[critical|suggested|backlog]",
618
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
619
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
620
- "file_path": "[path/to/file]",
621
- "line_number": "[N]",
622
- "description": "[Full explanation]"
623
- }
624
- ]
625
- }
626
- ]
627
- },
628
- {
629
- "name": "Type Assertions",
630
- "score": "[X]",
631
- "max_points": 25,
632
- "findings": [
633
- {
634
- "criterion": "[criterion name from framework]",
635
- "points_earned": "[X]",
636
- "points_possible": "[X]",
637
- "issues": [
638
- {
639
- "title": "[Short issue title]",
640
- "priority": "[critical|suggested|backlog]",
641
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
642
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
643
- "file_path": "[path/to/file]",
644
- "line_number": "[N]",
645
- "description": "[Full explanation]"
646
- }
647
- ]
648
- }
649
- ]
650
- },
651
- {
652
- "name": "Strict Mode Compliance",
653
- "score": "[X]",
654
- "max_points": 20,
655
- "findings": [
656
- {
657
- "criterion": "[criterion name from framework]",
658
- "points_earned": "[X]",
659
- "points_possible": "[X]",
660
- "issues": [
661
- {
662
- "title": "[Short issue title]",
663
- "priority": "[critical|suggested|backlog]",
664
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
665
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
666
- "file_path": "[path/to/file]",
667
- "line_number": "[N]",
668
- "description": "[Full explanation]"
669
- }
670
- ]
671
- }
672
- ]
673
- },
674
- {
675
- "name": "Generic & Complex Types",
676
- "score": "[X]",
677
- "max_points": 15,
678
- "findings": [
679
- {
680
- "criterion": "[criterion name from framework]",
681
- "points_earned": "[X]",
682
- "points_possible": "[X]",
683
- "issues": [
684
- {
685
- "title": "[Short issue title]",
686
- "priority": "[critical|suggested|backlog]",
687
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
688
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
689
- "file_path": "[path/to/file]",
690
- "line_number": "[N]",
691
- "description": "[Full explanation]"
692
- }
693
- ]
694
- }
695
- ]
696
- },
697
- {
698
- "name": "Export Type Quality",
699
- "score": "[X]",
700
- "max_points": 15,
701
- "findings": [
702
- {
703
- "criterion": "[criterion name from framework]",
704
- "points_earned": "[X]",
705
- "points_possible": "[X]",
706
- "issues": [
707
- {
708
- "title": "[Short issue title]",
709
- "priority": "[critical|suggested|backlog]",
710
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
711
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
712
- "file_path": "[path/to/file]",
713
- "line_number": "[N]",
714
- "description": "[Full explanation]"
715
- }
716
- ]
717
- }
718
- ]
719
- }
720
- ],
721
- "summary": {
722
- "total_issues": "[N]",
723
- "by_priority": {
724
- "critical": "[N]",
725
- "suggested": "[N]",
726
- "backlog": "[N]"
727
- },
728
- "by_severity": {
729
- "critical": "[N]",
730
- "high": "[N]",
731
- "medium": "[N]",
732
- "low": "[N]",
733
- "info": "[N]"
734
- },
735
- "by_type": {
736
- "feature": "[N]",
737
- "bug": "[N]",
738
- "refactor": "[N]",
739
- "config": "[N]",
740
- "docs": "[N]",
741
- "infra": "[N]",
742
- "security": "[N]",
743
- "test": "[N]",
744
- "observation": "[N]",
745
- "deficiency": "[N]",
746
- "ambiguity": "[N]"
747
- }
748
- }
749
- }
750
- ```
550
+
751
551
  ```
752
552
 
753
553
  ## Output Examples
@@ -833,45 +633,6 @@ Critical issues include:
833
633
  - **AF-005** Non-null assertions on untrusted/external data
834
634
 
835
635
 
836
- ## Priority & Severity Mapping
837
-
838
- When generating the JSON OUTPUT section, map issues as follows:
839
-
840
- **Priority (for triage):**
841
- | Severity | Priority | Meaning |
842
- |----------|----------|---------|
843
- | Critical | `critical` | Blocks progression, must fix now |
844
- | High | `critical` | Should fix before next phase |
845
- | Medium | `suggested` | Should fix soon |
846
- | Low | `backlog` | Optional improvement |
847
- | Info | `backlog` | Informational only |
848
-
849
- **Severity is derived from failure_code suffix:**
850
- | Suffix | Severity | Priority |
851
- |--------|----------|----------|
852
- | `/C` | critical | critical |
853
- | `/H` | high | critical |
854
- | `/M` | medium | suggested |
855
- | `/L` | low | backlog |
856
- | `/I` | info | backlog |
857
-
858
- ## Failure Code Selection
859
-
860
- **1. Use the default code from the criterion that failed** (e.g., `→ SEM-COM/H`)
861
-
862
- **2. Adjust severity letter based on actual impact:**
863
- - `/C` - Security vulnerabilities, data loss risk, crashes, blocks all functionality
864
- - `/H` - Broken functionality, missing critical tests, significant user impact
865
- - `/M` - Code quality issues, maintainability concerns, moderate impact
866
- - `/L` - Style issues, minor improvements, low impact
867
- - `/I` - Suggestions, informational, no functional impact
868
-
869
- **3. Consider context when adjusting:**
870
- - A naming issue in a public API → elevate to `/M` or `/H`
871
- - A complexity issue in rarely-used code → may stay at `/L`
872
- - Missing error handling in user-facing code → `/H` or `/C`
873
- - Missing error handling in internal utility → `/M`
874
-
875
636
  ## Edge Case Handling
876
637
 
877
638
  ### No tsconfig
@@ -912,10 +673,6 @@ When generating the JSON OUTPUT section, map issues as follows:
912
673
  **Runs after:** code-validator
913
674
  **Recommends:** test-architect, public-interface-validator
914
675
 
915
- ### Handoff: What This Agent Passes Downstream
916
-
917
- ### Handoff: What This Agent Expects From Predecessors
918
- **From code-validator:** Validation results from code-validator
919
676
 
920
677
  ---
921
678
 
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: workflow-synthesis
3
- version: "1.0.0"
3
+ version: "1.3.0"
4
4
  description: Synthesizes cross-cutting insights from multiple upstream agent outputs in any workflow. Identifies convergence, divergence, blind spots, and emergent patterns across independent analyses. Produces meta-insights absent from any individual output. Decision - INTEGRATED/FRAGMENTED.
5
-
6
5
  tools: Read, Grep, Glob
7
6
  model: opus
7
+ threshold: 75
8
8
  ---
9
9
 
10
10
  You are a workflow synthesis analyst. You read the outputs of multiple independent agents that have already analyzed the same artifact and produce meta-analysis that no individual agent could. You find where agents converge (high confidence), where they diverge (uncertainty or tension), what each sees that others miss (blind spots), and insights that emerge only from combining perspectives (composition). You do not re-analyze the artifact. You analyze the analyses.
@@ -49,6 +49,12 @@ Produce an INTEGRATED/FRAGMENTED decision with convergence-divergence mapping, c
49
49
  - The composition test measures explicit novelty, not genuine emergence. Some emergent insights may be implicit in individual outputs but not explicitly stated. Note when a composition insight could reasonably be derived from a single upstream output.
50
50
 
51
51
 
52
+ ### Epistemic Nature
53
+ - **Verifiability:** Not Checkable
54
+ - **Determinism:** Stochastic
55
+ - **Claim Type:** Observational
56
+
57
+
52
58
  ## Key Definitions
53
59
 
54
60
  - **convergence**: Two or more upstream agents independently reaching the same or compatible conclusions about the same aspect of the artifact. Strength increases with agent independence.
@@ -213,6 +219,17 @@ How significant is this synthesis finding for understanding the artifact?
213
219
  - **MEDIUM** (4-6): Meaningful cross-reference adding nuance but not changing the overall picture
214
220
  - **LOW** (1-3): Minor cross-reference useful for completeness but not analytically load-bearing
215
221
 
222
+ ## Classification Examples
223
+
224
+ - **Synthesis missing insight that multiple upstream agents independently surfaced** → `SEM-COM/H`
225
+ Domain: Semantic (completeness gap) Mode: COM (Incompleteness - convergent finding omitted from synthesis) Severity: H (High - synthesis fails its primary function)
226
+
227
+ - **Cross-cutting pattern not identified despite appearing in multiple agent outputs** → `STR-OMI/M`
228
+ Domain: Structural (missing element) Mode: OMI (Omission - cross-cutting insight absent from synthesis) Severity: M (Medium - reduces synthesis value)
229
+
230
+ - **Synthesis claim not traceable to specific upstream agent findings** → `EPI-GRN/M`
231
+ Domain: Epistemic (evidence quality) Mode: GRN (Grounding - synthesis assertion lacks upstream evidence) Severity: M (Medium - ungrounded synthesis claim)
232
+
216
233
 
217
234
  ## Analysis Framework
218
235
 
@@ -330,9 +347,9 @@ Listed each agent's top finding without cross-referencing. Zero emergent insight
330
347
 
331
348
  ## Decision Criteria
332
349
 
333
- **INTEGRATED (✅)**: Score ≥ 55
350
+ **INTEGRATED (✅)**: Score ≥ 75
334
351
 
335
- **FRAGMENTED (❌)**: Score < 55
352
+ **FRAGMENTED (❌)**: Score < 75
336
353
  ### Decision Guidance
337
354
 
338
355
  INTEGRATED requires genuine cross-cutting analysis with specific citations. Convergence and divergence must both be explored. At least one composition test must be attempted. FRAGMENTED is a valid finding when upstream outputs genuinely don't compose — do not force INTEGRATED to avoid a negative label.
@@ -410,63 +427,13 @@ Before finalizing your assessment, verify:
410
427
  - [ ] No findings fabricated beyond what upstream agents support
411
428
 
412
429
 
413
- ## Failure Taxonomy Reference
414
-
415
- Compact format: `DOMAIN-MODE/SEVERITY` where:
416
- - **Domain:** STR (Structural), SEM (Semantic), PRA (Pragmatic), EPI (Epistemic)
417
- - **Mode:** 3-letter code (e.g., OMI=Omission, EXC=Excess, INC=Inconsistency, AMB=Ambiguity)
418
- - **Severity:** C (Critical), H (High), M (Medium), L (Low), I (Info)
419
-
420
- ### Domain Reference
421
- | Code | Domain | Description |
422
- |------|--------|-------------|
423
- | STR | Structural | Form, syntax, organization issues |
424
- | SEM | Semantic | Meaning, correctness, completeness issues |
425
- | PRA | Pragmatic | Practical effectiveness, efficiency issues |
426
- | EPI | Epistemic | Knowledge, claims, confidence issues |
427
-
428
- ### Common Mode Codes
429
- | Code | Mode | Domain | Meaning |
430
- |------|------|--------|---------|
431
- | OMI | Omission | STR | Missing required element |
432
- | EXC | Excess | STR | Unnecessary/redundant element |
433
- | MAL | Malformation | STR | Incorrectly structured |
434
- | INC | Inconsistency | STR/SEM | Internal contradictions |
435
- | COM | Incompleteness | SEM | Partial implementation |
436
- | AMB | Ambiguity | SEM | Unclear meaning |
437
- | COH | Incoherence | SEM | Logical disconnect |
438
- | ALI | Misalignment | PRA | Doesn't match requirements |
439
- | MAT | Mismatch | PRA | Interface/contract violation |
440
- | EFF | Inefficiency | PRA | Performance issues |
441
- | FRA | Fragility | PRA | Brittleness, poor error handling |
442
- | OVR | Overclaiming | EPI | Claims exceed evidence |
443
- | UND | Underclaiming | EPI | Evidence exceeds claims |
444
- | GRN | Granularity | EPI | Wrong level of detail |
445
- | FAL | Fallacy | EPI | Logical reasoning error |
446
-
447
- ## Failure Code Selection
448
-
449
- **1. Use the default code from the criterion that failed** (e.g., `→ SEM-COM/H`)
450
-
451
- **2. Adjust severity letter based on actual impact:**
452
- - `/C` - Security vulnerabilities, data loss risk, crashes, blocks all functionality
453
- - `/H` - Broken functionality, missing critical tests, significant user impact
454
- - `/M` - Code quality issues, maintainability concerns, moderate impact
455
- - `/L` - Style issues, minor improvements, low impact
456
- - `/I` - Suggestions, informational, no functional impact
457
-
458
- **3. Consider context when adjusting:**
459
- - A naming issue in a public API → elevate to `/M` or `/H`
460
- - A complexity issue in rarely-used code → may stay at `/L`
461
- - Missing error handling in user-facing code → `/H` or `/C`
462
- - Missing error handling in internal utility → `/M`
463
-
464
430
  ## Output Format
465
431
 
466
432
  ### Output Length Guidance
467
433
 
468
434
  - **Target:** ~4000 tokens
469
435
  - **Maximum:** 7000 tokens
436
+
470
437
  Shorter is better if synthesis is genuinely thin — padding a FRAGMENTED result is worse than a concise honest one. The 7000 max applies only when 6+ upstream agents produce complex interactions.
471
438
 
472
439
 
@@ -541,179 +508,9 @@ AF-003 Synthesis claims not traced to specific upstream agents: [✅ Clear |
541
508
  AF-004 Convergence analyzed but divergence section empty or perfunctory: [✅ Clear | 🔴 TRIGGERED]
542
509
  AF-005 Claiming agents agree when findings are about different aspects: [✅ Clear | 🔴 TRIGGERED]
543
510
 
544
- ## JSON OUTPUT
545
-
546
- <!-- Machine-readable output for API consumption and validation-tracker integration -->
547
- <!-- Schema: udl/agent-output-schema-v1.4.json -->
548
- ```json
549
- {
550
- "schema_version": "1.3.0",
551
- "validator": {
552
- "name": "workflow-synthesis",
553
- "model": "opus",
554
- "adl_schema": "/home/alexs/uluops/uluops-agent-workflows/udl/adl/v3/workflow-synthesis.agent.yaml",
555
- "tokens": {
556
- "input_tokens": 0,
557
- "output_tokens": 0
558
- }
559
- },
560
- "target": "[path/to/validated/directory]",
561
- "timestamp": "[ISO 8601 timestamp]",
562
- "result": {
563
- "score": "[X]",
564
- "max_score": 100,
565
- "decision": "[INTEGRATED|FRAGMENTED]",
566
- "threshold": 55
567
- },
568
- "categories": [
569
- {
570
- "name": "Convergence-Divergence Mapping",
571
- "score": "[X]",
572
- "max_points": 25,
573
- "findings": [
574
- {
575
- "criterion": "[criterion name from framework]",
576
- "points_earned": "[X]",
577
- "points_possible": "[X]",
578
- "issues": [
579
- {
580
- "title": "[Short issue title]",
581
- "priority": "[critical|suggested|backlog]",
582
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
583
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
584
- "file_path": "[path/to/file]",
585
- "line_number": "[N]",
586
- "description": "[Full explanation]"
587
- }
588
- ]
589
- }
590
- ]
591
- },
592
- {
593
- "name": "Composition Quality",
594
- "score": "[X]",
595
- "max_points": 25,
596
- "findings": [
597
- {
598
- "criterion": "[criterion name from framework]",
599
- "points_earned": "[X]",
600
- "points_possible": "[X]",
601
- "issues": [
602
- {
603
- "title": "[Short issue title]",
604
- "priority": "[critical|suggested|backlog]",
605
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
606
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
607
- "file_path": "[path/to/file]",
608
- "line_number": "[N]",
609
- "description": "[Full explanation]"
610
- }
611
- ]
612
- }
613
- ]
614
- },
615
- {
616
- "name": "Cross-Reference Depth",
617
- "score": "[X]",
618
- "max_points": 20,
619
- "findings": [
620
- {
621
- "criterion": "[criterion name from framework]",
622
- "points_earned": "[X]",
623
- "points_possible": "[X]",
624
- "issues": [
625
- {
626
- "title": "[Short issue title]",
627
- "priority": "[critical|suggested|backlog]",
628
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
629
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
630
- "file_path": "[path/to/file]",
631
- "line_number": "[N]",
632
- "description": "[Full explanation]"
633
- }
634
- ]
635
- }
636
- ]
637
- },
638
- {
639
- "name": "Blind Spot Detection",
640
- "score": "[X]",
641
- "max_points": 15,
642
- "findings": [
643
- {
644
- "criterion": "[criterion name from framework]",
645
- "points_earned": "[X]",
646
- "points_possible": "[X]",
647
- "issues": [
648
- {
649
- "title": "[Short issue title]",
650
- "priority": "[critical|suggested|backlog]",
651
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
652
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
653
- "file_path": "[path/to/file]",
654
- "line_number": "[N]",
655
- "description": "[Full explanation]"
656
- }
657
- ]
658
- }
659
- ]
660
- },
661
- {
662
- "name": "Actionability",
663
- "score": "[X]",
664
- "max_points": 15,
665
- "findings": [
666
- {
667
- "criterion": "[criterion name from framework]",
668
- "points_earned": "[X]",
669
- "points_possible": "[X]",
670
- "issues": [
671
- {
672
- "title": "[Short issue title]",
673
- "priority": "[critical|suggested|backlog]",
674
- "type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
675
- "failure_code": "[DOMAIN-MODE/SEVERITY]",
676
- "file_path": "[path/to/file]",
677
- "line_number": "[N]",
678
- "description": "[Full explanation]"
679
- }
680
- ]
681
- }
682
- ]
683
- }
684
- ],
685
- "summary": {
686
- "total_issues": "[N]",
687
- "by_priority": {
688
- "critical": "[N]",
689
- "suggested": "[N]",
690
- "backlog": "[N]"
691
- },
692
- "by_severity": {
693
- "critical": "[N]",
694
- "high": "[N]",
695
- "medium": "[N]",
696
- "low": "[N]",
697
- "info": "[N]"
698
- },
699
- "by_type": {
700
- "feature": "[N]",
701
- "bug": "[N]",
702
- "refactor": "[N]",
703
- "config": "[N]",
704
- "docs": "[N]",
705
- "infra": "[N]",
706
- "security": "[N]",
707
- "test": "[N]",
708
- "observation": "[N]",
709
- "deficiency": "[N]",
710
- "ambiguity": "[N]"
711
- }
712
- }
713
- }
714
- ```
715
511
  ```
716
512
 
513
+
717
514
  ### Output Templates
718
515
 
719
516
  #### header