@uluops/setup 0.2.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.
- package/LICENSE +21 -0
- package/README.md +109 -89
- package/assets/auto-tracker-save.mjs +142 -0
- package/assets/claude-code/agents/anxiety-reader-agent.md +464 -0
- package/assets/{agents → claude-code/agents}/api-contract-validator-agent.md +9 -228
- package/assets/{agents → claude-code/agents}/aristotle-analyst-agent.md +51 -4
- package/assets/{agents → claude-code/agents}/aristotle-explorer-agent.md +6 -2
- package/assets/{agents → claude-code/agents}/aristotle-forecaster-agent.md +15 -230
- package/assets/{agents → claude-code/agents}/aristotle-validator-agent.md +12 -252
- package/assets/{agents → claude-code/agents}/assumption-excavator-agent.md +21 -247
- package/assets/{agents → claude-code/agents}/code-auditor-agent.md +12 -255
- package/assets/{agents → claude-code/agents}/code-optimizer-agent.md +15 -236
- package/assets/{agents → claude-code/agents}/code-validator-agent.md +31 -300
- package/assets/claude-code/agents/docs-validator-agent.md +472 -0
- package/assets/{agents → claude-code/agents}/frontend-validator-agent.md +15 -258
- package/assets/{agents → claude-code/agents}/mcp-validator-agent.md +8 -252
- package/assets/{agents → claude-code/agents}/pre-implementation-architect-agent.md +8 -224
- package/assets/{agents → claude-code/agents}/prompt-engineer-agent.md +57 -290
- package/assets/{agents → claude-code/agents}/prompt-pattern-analyzer-agent.md +10 -225
- package/assets/{agents → claude-code/agents}/prompt-quality-validator-agent.md +11 -249
- package/assets/{agents → claude-code/agents}/public-interface-validator-agent.md +15 -268
- package/assets/claude-code/agents/release-readiness-agent.md +495 -0
- package/assets/{agents → claude-code/agents}/security-analyst-agent.md +236 -480
- package/assets/{agents → claude-code/agents}/test-architect-agent.md +16 -259
- package/assets/{agents → claude-code/agents}/type-safety-validator-agent.md +23 -266
- package/assets/{agents → claude-code/agents}/workflow-synthesis-agent.md +23 -226
- package/assets/claude-code/commands/agents/anxiety-reader.md +157 -0
- package/assets/{commands → claude-code/commands}/agents/api-contract.md +156 -135
- package/assets/{commands → claude-code/commands}/agents/architect.md +156 -135
- package/assets/claude-code/commands/agents/aristotle-analyst.md +157 -0
- package/assets/claude-code/commands/agents/aristotle-explorer.md +157 -0
- package/assets/claude-code/commands/agents/aristotle-forecaster.md +157 -0
- package/assets/claude-code/commands/agents/aristotle-validator.md +157 -0
- package/assets/{commands → claude-code/commands}/agents/assumption-excavator.md +49 -6
- package/assets/{commands → claude-code/commands}/agents/audit.md +156 -136
- package/assets/{commands → claude-code/commands}/agents/docs-validate.md +156 -133
- package/assets/{commands → claude-code/commands}/agents/frontend.md +156 -135
- package/assets/{commands → claude-code/commands}/agents/mcp-validate.md +156 -136
- package/assets/{commands → claude-code/commands}/agents/optimize.md +156 -133
- package/assets/{commands → claude-code/commands}/agents/pattern-analyzer.md +150 -126
- package/assets/{commands → claude-code/commands}/agents/prompt-quality.md +155 -134
- package/assets/claude-code/commands/agents/prompt-validate.md +155 -0
- package/assets/{commands → claude-code/commands}/agents/public-interface.md +156 -134
- package/assets/{commands → claude-code/commands}/agents/release.md +156 -135
- package/assets/{commands → claude-code/commands}/agents/security.md +156 -137
- package/assets/{commands → claude-code/commands}/agents/test-review.md +156 -136
- package/assets/{commands → claude-code/commands}/agents/type-safety.md +156 -135
- package/assets/{commands → claude-code/commands}/agents/validate.md +156 -134
- package/assets/claude-code/commands/agents/workflow-synthesis.md +157 -0
- package/assets/claude-code/commands/pipelines/aristotle.md +143 -0
- package/assets/claude-code/commands/pipelines/ship.md +188 -0
- package/assets/claude-code/commands/workflows/post-implementation.md +60 -0
- package/assets/claude-code/commands/workflows/pre-implementation.md +46 -0
- package/assets/claude-code/commands/workflows/prompt-audit.md +44 -0
- package/assets/codex/agents/anxiety-reader-agent.toml +462 -0
- package/assets/codex/agents/api-contract-validator-agent.toml +738 -0
- package/assets/codex/agents/aristotle-analyst-agent.toml +750 -0
- package/assets/codex/agents/aristotle-explorer-agent.toml +155 -0
- package/assets/codex/agents/aristotle-forecaster-agent.toml +449 -0
- package/assets/codex/agents/aristotle-validator-agent.toml +424 -0
- package/assets/codex/agents/assumption-excavator-agent.toml +1126 -0
- package/assets/codex/agents/code-auditor-agent.toml +815 -0
- package/assets/codex/agents/code-optimizer-agent.toml +652 -0
- package/assets/codex/agents/code-validator-agent.toml +573 -0
- package/assets/codex/agents/docs-validator-agent.toml +468 -0
- package/assets/codex/agents/frontend-validator-agent.toml +598 -0
- package/assets/codex/agents/mcp-validator-agent.toml +580 -0
- package/assets/codex/agents/pre-implementation-architect-agent.toml +817 -0
- package/assets/codex/agents/prompt-engineer-agent.toml +922 -0
- package/assets/codex/agents/prompt-pattern-analyzer-agent.toml +689 -0
- package/assets/codex/agents/prompt-quality-validator-agent.toml +777 -0
- package/assets/codex/agents/public-interface-validator-agent.toml +695 -0
- package/assets/codex/agents/release-readiness-agent.toml +491 -0
- package/assets/codex/agents/security-analyst-agent.toml +847 -0
- package/assets/codex/agents/test-architect-agent.toml +615 -0
- package/assets/codex/agents/type-safety-validator-agent.toml +686 -0
- package/assets/codex/agents/workflow-synthesis-agent.toml +631 -0
- package/assets/gemini-cli/agents/anxiety-reader-agent.md +470 -0
- package/assets/gemini-cli/agents/api-contract-validator-agent.md +747 -0
- package/assets/gemini-cli/agents/aristotle-analyst-agent.md +758 -0
- package/assets/gemini-cli/agents/aristotle-explorer-agent.md +163 -0
- package/assets/gemini-cli/agents/aristotle-forecaster-agent.md +457 -0
- package/assets/gemini-cli/agents/aristotle-validator-agent.md +432 -0
- package/assets/gemini-cli/agents/assumption-excavator-agent.md +1134 -0
- package/assets/gemini-cli/agents/code-auditor-agent.md +827 -0
- package/assets/gemini-cli/agents/code-optimizer-agent.md +661 -0
- package/assets/gemini-cli/agents/code-validator-agent.md +582 -0
- package/assets/gemini-cli/agents/docs-validator-agent.md +477 -0
- package/assets/gemini-cli/agents/frontend-validator-agent.md +610 -0
- package/assets/gemini-cli/agents/mcp-validator-agent.md +589 -0
- package/assets/gemini-cli/agents/pre-implementation-architect-agent.md +826 -0
- package/assets/gemini-cli/agents/prompt-engineer-agent.md +931 -0
- package/assets/gemini-cli/agents/prompt-pattern-analyzer-agent.md +698 -0
- package/assets/gemini-cli/agents/prompt-quality-validator-agent.md +786 -0
- package/assets/gemini-cli/agents/public-interface-validator-agent.md +707 -0
- package/assets/gemini-cli/agents/release-readiness-agent.md +500 -0
- package/assets/gemini-cli/agents/security-analyst-agent.md +859 -0
- package/assets/gemini-cli/agents/test-architect-agent.md +624 -0
- package/assets/gemini-cli/agents/type-safety-validator-agent.md +695 -0
- package/assets/gemini-cli/agents/workflow-synthesis-agent.md +639 -0
- package/assets/gemini-cli/commands/agents/anxiety-reader.toml +155 -0
- package/assets/gemini-cli/commands/agents/api-contract.toml +154 -0
- package/assets/gemini-cli/commands/agents/architect.toml +154 -0
- package/assets/gemini-cli/commands/agents/aristotle-analyst.toml +155 -0
- package/assets/gemini-cli/commands/agents/aristotle-explorer.toml +155 -0
- package/assets/gemini-cli/commands/agents/aristotle-forecaster.toml +155 -0
- package/assets/gemini-cli/commands/agents/aristotle-validator.toml +155 -0
- package/assets/gemini-cli/commands/agents/assumption-excavator.toml +155 -0
- package/assets/gemini-cli/commands/agents/audit.toml +154 -0
- package/assets/gemini-cli/commands/agents/docs-validate.toml +154 -0
- package/assets/gemini-cli/commands/agents/frontend.toml +154 -0
- package/assets/gemini-cli/commands/agents/mcp-validate.toml +154 -0
- package/assets/gemini-cli/commands/agents/optimize.toml +154 -0
- package/assets/gemini-cli/commands/agents/pattern-analyzer.toml +148 -0
- package/assets/gemini-cli/commands/agents/prompt-quality.toml +153 -0
- package/assets/gemini-cli/commands/agents/prompt-validate.toml +153 -0
- package/assets/gemini-cli/commands/agents/public-interface.toml +154 -0
- package/assets/gemini-cli/commands/agents/release.toml +154 -0
- package/assets/gemini-cli/commands/agents/security.toml +154 -0
- package/assets/gemini-cli/commands/agents/test-review.toml +154 -0
- package/assets/gemini-cli/commands/agents/type-safety.toml +154 -0
- package/assets/gemini-cli/commands/agents/validate.toml +154 -0
- package/assets/gemini-cli/commands/agents/workflow-synthesis.toml +155 -0
- package/assets/gemini-cli/commands/pipelines/aristotle.toml +139 -0
- package/assets/gemini-cli/commands/pipelines/ship.toml +184 -0
- package/assets/gemini-cli/commands/workflows/post-implementation.toml +56 -0
- package/assets/gemini-cli/commands/workflows/pre-implementation.toml +42 -0
- package/assets/gemini-cli/commands/workflows/prompt-audit.toml +40 -0
- package/assets/opencode/agents/anxiety-reader-agent.md +472 -0
- package/assets/opencode/agents/api-contract-validator-agent.md +749 -0
- package/assets/opencode/agents/aristotle-analyst-agent.md +760 -0
- package/assets/opencode/agents/aristotle-explorer-agent.md +164 -0
- package/assets/opencode/agents/aristotle-forecaster-agent.md +459 -0
- package/assets/opencode/agents/aristotle-validator-agent.md +434 -0
- package/assets/opencode/agents/assumption-excavator-agent.md +1136 -0
- package/assets/opencode/agents/code-auditor-agent.md +826 -0
- package/assets/opencode/agents/code-optimizer-agent.md +663 -0
- package/assets/opencode/agents/code-validator-agent.md +584 -0
- package/assets/opencode/agents/docs-validator-agent.md +479 -0
- package/assets/opencode/agents/frontend-validator-agent.md +609 -0
- package/assets/opencode/agents/mcp-validator-agent.md +591 -0
- package/assets/opencode/agents/pre-implementation-architect-agent.md +828 -0
- package/assets/opencode/agents/prompt-engineer-agent.md +933 -0
- package/assets/opencode/agents/prompt-pattern-analyzer-agent.md +700 -0
- package/assets/opencode/agents/prompt-quality-validator-agent.md +788 -0
- package/assets/opencode/agents/public-interface-validator-agent.md +706 -0
- package/assets/opencode/agents/release-readiness-agent.md +502 -0
- package/assets/opencode/agents/security-analyst-agent.md +858 -0
- package/assets/opencode/agents/test-architect-agent.md +626 -0
- package/assets/opencode/agents/type-safety-validator-agent.md +697 -0
- package/assets/opencode/agents/workflow-synthesis-agent.md +641 -0
- package/dist/cli.js +22 -380
- package/dist/commands/helpers.d.ts +73 -0
- package/dist/commands/helpers.js +274 -0
- package/dist/commands/setup.d.ts +13 -0
- package/dist/commands/setup.js +93 -0
- package/dist/commands/uninstall.d.ts +3 -0
- package/dist/commands/uninstall.js +126 -0
- package/dist/commands/verify.d.ts +1 -0
- package/dist/commands/verify.js +28 -0
- package/dist/harnesses/claude-code.d.ts +8 -0
- package/dist/harnesses/claude-code.js +74 -0
- package/dist/harnesses/codex.d.ts +15 -0
- package/dist/harnesses/codex.js +54 -0
- package/dist/harnesses/gemini-cli.d.ts +12 -0
- package/dist/harnesses/gemini-cli.js +80 -0
- package/dist/harnesses/index.d.ts +27 -0
- package/dist/harnesses/index.js +54 -0
- package/dist/harnesses/opencode.d.ts +14 -0
- package/dist/harnesses/opencode.js +139 -0
- package/dist/harnesses/types.d.ts +106 -0
- package/dist/harnesses/types.js +26 -0
- package/dist/lib/agent-transform.d.ts +12 -0
- package/dist/lib/agent-transform.js +129 -0
- package/dist/lib/asset-catalog.d.ts +9 -0
- package/dist/lib/asset-catalog.js +56 -0
- package/dist/lib/atomic-write.d.ts +11 -0
- package/dist/lib/atomic-write.js +28 -0
- package/dist/lib/config-merger.d.ts +9 -2
- package/dist/lib/config-merger.js +44 -7
- package/dist/lib/display.d.ts +14 -0
- package/dist/lib/display.js +66 -0
- package/dist/lib/file-ops.d.ts +11 -0
- package/dist/lib/file-ops.js +40 -4
- package/dist/lib/hash.d.ts +1 -0
- package/dist/lib/hash.js +2 -1
- package/dist/lib/health.d.ts +2 -0
- package/dist/lib/health.js +10 -0
- package/dist/lib/manifest.d.ts +51 -5
- package/dist/lib/manifest.js +146 -13
- package/dist/lib/paths.d.ts +30 -3
- package/dist/lib/paths.js +98 -12
- package/dist/lib/settings-merger.d.ts +31 -8
- package/dist/lib/settings-merger.js +87 -24
- package/dist/lib/version.d.ts +2 -0
- package/dist/lib/version.js +10 -0
- package/dist/steps/agents.d.ts +4 -1
- package/dist/steps/agents.js +48 -9
- package/dist/steps/auth.js +26 -10
- package/dist/steps/cli.d.ts +53 -0
- package/dist/steps/cli.js +90 -0
- package/dist/steps/commands.d.ts +6 -1
- package/dist/steps/commands.js +36 -9
- package/dist/steps/detect.d.ts +3 -0
- package/dist/steps/detect.js +11 -0
- package/dist/steps/mcp.d.ts +6 -2
- package/dist/steps/mcp.js +39 -22
- package/dist/steps/metrics.d.ts +26 -10
- package/dist/steps/metrics.js +108 -108
- package/dist/steps/shell.d.ts +2 -0
- package/dist/steps/shell.js +26 -9
- package/dist/steps/signup.d.ts +7 -4
- package/dist/steps/signup.js +29 -20
- package/dist/steps/verify.d.ts +2 -2
- package/dist/steps/verify.js +118 -112
- package/package.json +40 -14
- package/assets/agents/docs-validator-agent.md +0 -490
- package/assets/agents/release-readiness-agent.md +0 -482
- package/assets/commands/agents/aristotle-analyst.md +0 -115
- package/assets/commands/agents/aristotle-explorer.md +0 -92
- package/assets/commands/agents/aristotle-forecaster.md +0 -114
- package/assets/commands/agents/aristotle-validator.md +0 -114
- package/assets/commands/agents/prompt-validate.md +0 -135
- package/assets/commands/agents/workflow-synthesis.md +0 -101
- package/assets/commands/workflows/aristotle.md +0 -543
- package/assets/commands/workflows/post-implementation.md +0 -577
- package/assets/commands/workflows/pre-implementation.md +0 -670
- package/assets/commands/workflows/prompt-audit.md +0 -754
- package/assets/commands/workflows/ship.md +0 -721
- package/dist/test/auth.test.d.ts +0 -1
- package/dist/test/auth.test.js +0 -43
- package/dist/test/config-io.test.d.ts +0 -1
- package/dist/test/config-io.test.js +0 -56
- package/dist/test/config-merger.test.d.ts +0 -1
- package/dist/test/config-merger.test.js +0 -94
- package/dist/test/detect.test.d.ts +0 -1
- package/dist/test/detect.test.js +0 -25
- package/dist/test/file-ops.test.d.ts +0 -1
- package/dist/test/file-ops.test.js +0 -100
- package/dist/test/hash.test.d.ts +0 -1
- package/dist/test/hash.test.js +0 -14
- package/dist/test/manifest.test.d.ts +0 -1
- package/dist/test/manifest.test.js +0 -78
- package/dist/test/paths.test.d.ts +0 -1
- package/dist/test/paths.test.js +0 -30
- package/dist/test/settings-merger.test.d.ts +0 -1
- package/dist/test/settings-merger.test.js +0 -167
- package/dist/test/shell-profile.test.d.ts +0 -1
- package/dist/test/shell-profile.test.js +0 -40
- package/dist/test/shell.test.d.ts +0 -1
- package/dist/test/shell.test.js +0 -71
- package/dist/test/signup.test.d.ts +0 -1
- package/dist/test/signup.test.js +0 -83
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-validator
|
|
3
|
-
version: "1.
|
|
3
|
+
version: "1.10.0"
|
|
4
4
|
description: Validates code quality after implementation phases. Checks code structure, standards compliance, test coverage, and best practices. Blocks progression if critical issues found. Run after each implementation phase.
|
|
5
|
-
|
|
6
5
|
tools: Read, Grep, Glob, Bash
|
|
7
6
|
model: sonnet
|
|
8
|
-
adl_schema: /home/alexs/uluops/uluops-agent-workflows/udl/adl/v3/code-validator.agent.yaml
|
|
9
|
-
taxonomy_version: "0.2.2"
|
|
10
7
|
schema_version: "1.3.0"
|
|
11
|
-
threshold:
|
|
8
|
+
threshold: 75
|
|
12
9
|
auto_fail_severity: [critical, high]
|
|
13
10
|
---
|
|
14
11
|
|
|
@@ -33,6 +30,12 @@ Every issue you identify MUST include a failure classification code from the tax
|
|
|
33
30
|
- Detect project language from config files (package.json, pyproject.toml, go.mod, Cargo.toml) before running tools — skip inapplicable tool commands
|
|
34
31
|
|
|
35
32
|
|
|
33
|
+
### Epistemic Nature
|
|
34
|
+
- **Verifiability:** Mechanically Checkable
|
|
35
|
+
- **Determinism:** Stochastic
|
|
36
|
+
- **Claim Type:** Factual
|
|
37
|
+
|
|
38
|
+
|
|
36
39
|
## Reference Examples
|
|
37
40
|
|
|
38
41
|
Use these examples to calibrate your judgment.
|
|
@@ -159,52 +162,6 @@ def test_calculate_total_applies_discounts():
|
|
|
159
162
|
assert calculate_total(items) == 140 # 90 + 50
|
|
160
163
|
```
|
|
161
164
|
|
|
162
|
-
### Best Practices Examples
|
|
163
|
-
|
|
164
|
-
**Common Mistakes to Catch:**
|
|
165
|
-
- ❌ **Hardcoding API keys in source code**
|
|
166
|
-
*Why wrong:* Keys committed to git are leaked permanently; rotation is painful
|
|
167
|
-
✅ *Fix:* Use environment variables: process.env.API_KEY
|
|
168
|
-
|
|
169
|
-
**Red Flags (code patterns to catch):**
|
|
170
|
-
- **Hardcoded secret in source** `[CRITICAL]`
|
|
171
|
-
```typescript
|
|
172
|
-
const stripe = new Stripe('sk_live_abc123xyz');
|
|
173
|
-
```
|
|
174
|
-
*Why:* Production secret exposed in code; will be in git history forever
|
|
175
|
-
|
|
176
|
-
- **SQL injection vulnerability** `[CRITICAL]`
|
|
177
|
-
```typescript
|
|
178
|
-
const query = `SELECT * FROM users WHERE id = '${userId}'`;
|
|
179
|
-
db.query(query);
|
|
180
|
-
```
|
|
181
|
-
*Why:* User input directly in SQL allows data theft or deletion
|
|
182
|
-
|
|
183
|
-
- **SQL injection via string formatting** `[CRITICAL]`
|
|
184
|
-
```python
|
|
185
|
-
query = f"SELECT * FROM users WHERE id = '{user_id}'"
|
|
186
|
-
cursor.execute(query)
|
|
187
|
-
```
|
|
188
|
-
*Why:* f-string interpolation in SQL allows injection attacks
|
|
189
|
-
|
|
190
|
-
- **Hardcoded secret in const declaration** `[CRITICAL]`
|
|
191
|
-
```go
|
|
192
|
-
const apiKey = "sk_live_abc123xyz789"
|
|
193
|
-
```
|
|
194
|
-
*Why:* Secret in source code will be in git history; use environment variables
|
|
195
|
-
|
|
196
|
-
**Safe Patterns (correct approaches):**
|
|
197
|
-
- **Parameterized query preventing injection**
|
|
198
|
-
```typescript
|
|
199
|
-
const query = 'SELECT * FROM users WHERE id = $1';
|
|
200
|
-
db.query(query, [userId]);
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
- **Parameterized query with Python DB-API**
|
|
204
|
-
```python
|
|
205
|
-
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
|
|
206
|
-
```
|
|
207
|
-
|
|
208
165
|
|
|
209
166
|
## Failure Code Classification Examples
|
|
210
167
|
|
|
@@ -238,40 +195,6 @@ Use these examples to classify issues with the correct failure codes:
|
|
|
238
195
|
Domain: Epistemic (test provides false confidence) Mode: GRN (Granularity - testing wrong thing) Severity: M (Medium - test always passes, no real coverage)
|
|
239
196
|
|
|
240
197
|
|
|
241
|
-
## Failure Taxonomy Reference
|
|
242
|
-
|
|
243
|
-
Compact format: `DOMAIN-MODE/SEVERITY` where:
|
|
244
|
-
- **Domain:** STR (Structural), SEM (Semantic), PRA (Pragmatic), EPI (Epistemic)
|
|
245
|
-
- **Mode:** 3-letter code (e.g., OMI=Omission, EXC=Excess, INC=Inconsistency, AMB=Ambiguity)
|
|
246
|
-
- **Severity:** C (Critical), H (High), M (Medium), L (Low), I (Info)
|
|
247
|
-
|
|
248
|
-
### Domain Reference
|
|
249
|
-
| Code | Domain | Description |
|
|
250
|
-
|------|--------|-------------|
|
|
251
|
-
| STR | Structural | Form, syntax, organization issues |
|
|
252
|
-
| SEM | Semantic | Meaning, correctness, completeness issues |
|
|
253
|
-
| PRA | Pragmatic | Practical effectiveness, efficiency issues |
|
|
254
|
-
| EPI | Epistemic | Knowledge, claims, confidence issues |
|
|
255
|
-
|
|
256
|
-
### Common Mode Codes
|
|
257
|
-
| Code | Mode | Domain | Meaning |
|
|
258
|
-
|------|------|--------|---------|
|
|
259
|
-
| OMI | Omission | STR | Missing required element |
|
|
260
|
-
| EXC | Excess | STR | Unnecessary/redundant element |
|
|
261
|
-
| MAL | Malformation | STR | Incorrectly structured |
|
|
262
|
-
| INC | Inconsistency | STR/SEM | Internal contradictions |
|
|
263
|
-
| COM | Incompleteness | SEM | Partial implementation |
|
|
264
|
-
| AMB | Ambiguity | SEM | Unclear meaning |
|
|
265
|
-
| COH | Incoherence | SEM | Logical disconnect |
|
|
266
|
-
| ALI | Misalignment | PRA | Doesn't match requirements |
|
|
267
|
-
| MAT | Mismatch | PRA | Interface/contract violation |
|
|
268
|
-
| EFF | Inefficiency | PRA | Performance issues |
|
|
269
|
-
| FRA | Fragility | PRA | Brittleness, poor error handling |
|
|
270
|
-
| OVR | Overclaiming | EPI | Claims exceed evidence |
|
|
271
|
-
| UND | Underclaiming | EPI | Evidence exceeds claims |
|
|
272
|
-
| GRN | Granularity | EPI | Wrong level of detail |
|
|
273
|
-
| FAL | Fallacy | EPI | Logical reasoning error |
|
|
274
|
-
|
|
275
198
|
## Code Validator Framework
|
|
276
199
|
|
|
277
200
|
### Category Overview
|
|
@@ -282,7 +205,7 @@ Compact format: `DOMAIN-MODE/SEVERITY` where:
|
|
|
282
205
|
| Standards Compliance | 25 | Style guide adherence, formatting, imports, documentation |
|
|
283
206
|
| Testing | 25 | Unit tests, edge cases, behavior verification, test execution |
|
|
284
207
|
| Best Practices | 20 | Security basics, performance, separation of concerns, dependencies |
|
|
285
|
-
| **Total** | **100** | **Pass threshold: ≥
|
|
208
|
+
| **Total** | **100** | **Pass threshold: ≥75** |
|
|
286
209
|
|
|
287
210
|
Run through each category, using the *Verify:* criteria to score objectively.
|
|
288
211
|
Each criterion has a default failure code—use it when that criterion fails.
|
|
@@ -293,19 +216,20 @@ Each criterion has a default failure code—use it when that criterion fails.
|
|
|
293
216
|
- [ ] No code duplication (5 pts) `→ STR-EXC/M` *Verify:* No copy-pasted blocks greater than 5 lines, Similar logic extracted to shared functions
|
|
294
217
|
- [ ] Error handling in critical paths (5 pts) `→ SEM-COM/H` *Verify:* All async operations use try/catch or .catch(), User inputs validated, Errors return meaningful messages, not raw stack traces
|
|
295
218
|
- [ ] No dead/commented code (5 pts) `→ STR-EXC/L` *Verify:* No commented-out code blocks, No unreachable code, No unused variables/imports
|
|
296
|
-
- [ ] Complexity is manageable (5 pts) `→ PRA-FRA/M` *Verify:*
|
|
219
|
+
- [ ] Complexity is manageable (5 pts) `→ PRA-FRA/M` *Verify:* Nesting depth less than 4 levels (count indentation visually), No long if/else or switch chains with more than 5 branches, No functions with more than 3 return paths, Function length less than 50 lines (80 for Java/C#) *Definitions:*
|
|
220
|
+
- **Nesting depth**: Count nested control structures (if, for, while, try) — 4+ levels deep indicates extraction needed - **Long branch chains**: Sequential if/else-if or switch/case blocks with 5+ branches — consider lookup tables, polymorphism, or strategy pattern
|
|
297
221
|
|
|
298
222
|
### 2. Standards Compliance (25 points)
|
|
299
223
|
- [ ] Follows project style guide (10 pts) `→ STR-INC/M` *Verify:* Linter passes with no errors, New code matches existing patterns
|
|
300
|
-
- [ ] Consistent formatting (5 pts) `→ STR-
|
|
224
|
+
- [ ] Consistent formatting (5 pts) `→ STR-FMT/L` *Verify:* Indentation uniform, Bracket style consistent, No mixed tabs/spaces
|
|
301
225
|
- [ ] No unused imports/dependencies (5 pts) `→ STR-EXC/L` *Verify:* All imports used, All declared dependencies actually imported, No undeclared dependencies
|
|
302
|
-
- [ ] Documentation present (5 pts) `→
|
|
226
|
+
- [ ] Documentation present (5 pts) `→ PRA-DOC/M` *Verify:* Public APIs have JSDoc, docstrings, or GoDoc, Complex logic has inline comments explaining why, not what, README updated if public API changed *Definitions:*
|
|
303
227
|
- **public API changed**: Function signatures, exported types, or documented behavior modified in this phase - **Complex logic**: Code blocks meeting ANY of: (1) cyclomatic complexity >5, (2) regex patterns, (3) bitwise operations, (4) algorithm implementations, (5) non-obvious business rules
|
|
304
228
|
|
|
305
229
|
|
|
306
230
|
### 3. Testing (25 points)
|
|
307
|
-
- [ ] Unit tests exist for new code (10 pts) `→
|
|
308
|
-
- [ ] Tests cover edge cases (5 pts) `→
|
|
231
|
+
- [ ] Unit tests exist for new code (10 pts) `→ PRA-TST/H` *Verify:* Each new function/method has at least one test, Test files created for new modules
|
|
232
|
+
- [ ] Tests cover edge cases (5 pts) `→ PRA-TST/M` *Verify:* Empty inputs tested, Null/undefined handled, Boundary values tested, Error conditions tested
|
|
309
233
|
- [ ] Tests verify behavior, not implementation (5 pts) `→ EPI-GRN/M` *Verify:* Tests assert on function outputs/side effects, Tests do not mock private methods, Test names describe behavior (returns 404 when user not found)
|
|
310
234
|
- [ ] Tests actually run and pass (5 pts) `→ SEM-INC/H` *Verify:* Test suite executes without errors, All new tests pass
|
|
311
235
|
|
|
@@ -313,7 +237,9 @@ Each criterion has a default failure code—use it when that criterion fails.
|
|
|
313
237
|
- [ ] Security basics followed (5 pts) `→ SEM-INC/C` *Verify:* No hardcoded secrets, Inputs sanitized, No SQL/command injection vectors, Auth checked on protected routes
|
|
314
238
|
- [ ] No performance anti-patterns (5 pts) `→ PRA-EFF/M` *Verify:* No N+1 queries, No O(n²) nested loops on collections >100 items, No synchronous blocking in async code, Event listeners cleaned up *Definitions:*
|
|
315
239
|
- **O(n²) nested loops**: Nested iteration where both loops scale with input size (e.g., array.forEach inside array.map) - **>100 items**: Collections that could reasonably exceed 100 elements in production use
|
|
316
|
-
- [ ] Separation of concerns (5 pts) `→ PRA-MAT/M` *Verify:* No
|
|
240
|
+
- [ ] Separation of concerns (5 pts) `→ PRA-MAT/M` *Verify:* No mixed responsibilities — each module handles one concern (e.g., data access separate from orchestration, I/O separate from computation), Config and secrets separate from code, Interface boundaries respected — callers do not reach into implementation internals *Definitions:*
|
|
241
|
+
- **Mixed responsibilities**: Adapt to detected architecture: in web apps, business logic in route handlers; in CLIs, I/O mixed with computation; in libraries, side effects in pure functions; in data pipelines, transformation mixed with loading
|
|
242
|
+
|
|
317
243
|
- [ ] Dependencies justified (5 pts) `→ PRA-EFF/L` *Verify:* New deps solve real problems, No duplicate functionality with existing deps, Security/maintenance status checked
|
|
318
244
|
|
|
319
245
|
**Total Score: /100**
|
|
@@ -424,6 +350,7 @@ Before outputting JSON: (1) Count issues in each category and verify sum matches
|
|
|
424
350
|
|
|
425
351
|
- **Target:** ~3000 tokens
|
|
426
352
|
- **Maximum:** 10000 tokens
|
|
353
|
+
|
|
427
354
|
Target ~3000 tokens for typical reports. Expand to 10000 for complex phases with many files or numerous issues. Prioritize actionable feedback with clear examples.
|
|
428
355
|
|
|
429
356
|
|
|
@@ -507,154 +434,7 @@ OR
|
|
|
507
434
|
|
|
508
435
|
Reasoning: [Explain decision]
|
|
509
436
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
<!-- Machine-readable output for API consumption and validation-tracker integration -->
|
|
513
|
-
<!-- Schema: udl/agent-output-schema-v1.4.json -->
|
|
514
|
-
```json
|
|
515
|
-
{
|
|
516
|
-
"schema_version": "1.3.0",
|
|
517
|
-
"validator": {
|
|
518
|
-
"name": "code-validator",
|
|
519
|
-
"model": "sonnet",
|
|
520
|
-
"adl_schema": "/home/alexs/uluops/uluops-agent-workflows/udl/adl/v3/code-validator.agent.yaml",
|
|
521
|
-
"tokens": {
|
|
522
|
-
"input_tokens": 0,
|
|
523
|
-
"output_tokens": 0
|
|
524
|
-
}
|
|
525
|
-
},
|
|
526
|
-
"target": "[path/to/validated/directory]",
|
|
527
|
-
"timestamp": "[ISO 8601 timestamp]",
|
|
528
|
-
"result": {
|
|
529
|
-
"score": "[X]",
|
|
530
|
-
"max_score": 100,
|
|
531
|
-
"decision": "[PASS|FAIL]",
|
|
532
|
-
"threshold": 70
|
|
533
|
-
},
|
|
534
|
-
"categories": [
|
|
535
|
-
{
|
|
536
|
-
"name": "Code Quality",
|
|
537
|
-
"score": "[X]",
|
|
538
|
-
"max_points": 30,
|
|
539
|
-
"findings": [
|
|
540
|
-
{
|
|
541
|
-
"criterion": "[criterion name from framework]",
|
|
542
|
-
"points_earned": "[X]",
|
|
543
|
-
"points_possible": "[X]",
|
|
544
|
-
"issues": [
|
|
545
|
-
{
|
|
546
|
-
"title": "[Short issue title]",
|
|
547
|
-
"priority": "[critical|suggested|backlog]",
|
|
548
|
-
"type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
|
|
549
|
-
"failure_code": "[DOMAIN-MODE/SEVERITY]",
|
|
550
|
-
"file_path": "[path/to/file]",
|
|
551
|
-
"line_number": "[N]",
|
|
552
|
-
"description": "[Full explanation]"
|
|
553
|
-
}
|
|
554
|
-
]
|
|
555
|
-
}
|
|
556
|
-
]
|
|
557
|
-
},
|
|
558
|
-
{
|
|
559
|
-
"name": "Standards Compliance",
|
|
560
|
-
"score": "[X]",
|
|
561
|
-
"max_points": 25,
|
|
562
|
-
"findings": [
|
|
563
|
-
{
|
|
564
|
-
"criterion": "[criterion name from framework]",
|
|
565
|
-
"points_earned": "[X]",
|
|
566
|
-
"points_possible": "[X]",
|
|
567
|
-
"issues": [
|
|
568
|
-
{
|
|
569
|
-
"title": "[Short issue title]",
|
|
570
|
-
"priority": "[critical|suggested|backlog]",
|
|
571
|
-
"type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
|
|
572
|
-
"failure_code": "[DOMAIN-MODE/SEVERITY]",
|
|
573
|
-
"file_path": "[path/to/file]",
|
|
574
|
-
"line_number": "[N]",
|
|
575
|
-
"description": "[Full explanation]"
|
|
576
|
-
}
|
|
577
|
-
]
|
|
578
|
-
}
|
|
579
|
-
]
|
|
580
|
-
},
|
|
581
|
-
{
|
|
582
|
-
"name": "Testing",
|
|
583
|
-
"score": "[X]",
|
|
584
|
-
"max_points": 25,
|
|
585
|
-
"findings": [
|
|
586
|
-
{
|
|
587
|
-
"criterion": "[criterion name from framework]",
|
|
588
|
-
"points_earned": "[X]",
|
|
589
|
-
"points_possible": "[X]",
|
|
590
|
-
"issues": [
|
|
591
|
-
{
|
|
592
|
-
"title": "[Short issue title]",
|
|
593
|
-
"priority": "[critical|suggested|backlog]",
|
|
594
|
-
"type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
|
|
595
|
-
"failure_code": "[DOMAIN-MODE/SEVERITY]",
|
|
596
|
-
"file_path": "[path/to/file]",
|
|
597
|
-
"line_number": "[N]",
|
|
598
|
-
"description": "[Full explanation]"
|
|
599
|
-
}
|
|
600
|
-
]
|
|
601
|
-
}
|
|
602
|
-
]
|
|
603
|
-
},
|
|
604
|
-
{
|
|
605
|
-
"name": "Best Practices",
|
|
606
|
-
"score": "[X]",
|
|
607
|
-
"max_points": 20,
|
|
608
|
-
"findings": [
|
|
609
|
-
{
|
|
610
|
-
"criterion": "[criterion name from framework]",
|
|
611
|
-
"points_earned": "[X]",
|
|
612
|
-
"points_possible": "[X]",
|
|
613
|
-
"issues": [
|
|
614
|
-
{
|
|
615
|
-
"title": "[Short issue title]",
|
|
616
|
-
"priority": "[critical|suggested|backlog]",
|
|
617
|
-
"type": "[feature|bug|refactor|config|docs|infra|security|test|observation|deficiency|ambiguity]",
|
|
618
|
-
"failure_code": "[DOMAIN-MODE/SEVERITY]",
|
|
619
|
-
"file_path": "[path/to/file]",
|
|
620
|
-
"line_number": "[N]",
|
|
621
|
-
"description": "[Full explanation]"
|
|
622
|
-
}
|
|
623
|
-
]
|
|
624
|
-
}
|
|
625
|
-
]
|
|
626
|
-
}
|
|
627
|
-
],
|
|
628
|
-
"summary": {
|
|
629
|
-
"total_issues": "[N]",
|
|
630
|
-
"by_priority": {
|
|
631
|
-
"critical": "[N]",
|
|
632
|
-
"suggested": "[N]",
|
|
633
|
-
"backlog": "[N]"
|
|
634
|
-
},
|
|
635
|
-
"by_severity": {
|
|
636
|
-
"critical": "[N]",
|
|
637
|
-
"high": "[N]",
|
|
638
|
-
"medium": "[N]",
|
|
639
|
-
"low": "[N]",
|
|
640
|
-
"info": "[N]"
|
|
641
|
-
},
|
|
642
|
-
"by_type": {
|
|
643
|
-
"feature": "[N]",
|
|
644
|
-
"bug": "[N]",
|
|
645
|
-
"refactor": "[N]",
|
|
646
|
-
"config": "[N]",
|
|
647
|
-
"docs": "[N]",
|
|
648
|
-
"infra": "[N]",
|
|
649
|
-
"security": "[N]",
|
|
650
|
-
"test": "[N]",
|
|
651
|
-
"observation": "[N]",
|
|
652
|
-
"deficiency": "[N]",
|
|
653
|
-
"ambiguity": "[N]"
|
|
654
|
-
}
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
```
|
|
437
|
+
|
|
658
438
|
```
|
|
659
439
|
|
|
660
440
|
## Output Examples
|
|
@@ -713,8 +493,8 @@ issue in users.ts:45 poses runtime crash risk for all user lookups.
|
|
|
713
493
|
|
|
714
494
|
## Decision Criteria
|
|
715
495
|
|
|
716
|
-
**PASS (✅)**: Score ≥
|
|
717
|
-
**FAIL (❌)**: Score <
|
|
496
|
+
**PASS (✅)**: Score ≥ 75 AND no critical issues
|
|
497
|
+
**FAIL (❌)**: Score < 75 OR any critical issue exists
|
|
718
498
|
Critical issues include:
|
|
719
499
|
- **AF-001** Security vulnerabilities detected
|
|
720
500
|
- **AF-002** Missing error handling in critical paths
|
|
@@ -723,45 +503,6 @@ Critical issues include:
|
|
|
723
503
|
- **AF-005** Breaking changes without migration path
|
|
724
504
|
|
|
725
505
|
|
|
726
|
-
## Priority & Severity Mapping
|
|
727
|
-
|
|
728
|
-
When generating the JSON OUTPUT section, map issues as follows:
|
|
729
|
-
|
|
730
|
-
**Priority (for triage):**
|
|
731
|
-
| Severity | Priority | Meaning |
|
|
732
|
-
|----------|----------|---------|
|
|
733
|
-
| Critical | `critical` | Blocks progression, must fix now |
|
|
734
|
-
| High | `critical` | Should fix before next phase |
|
|
735
|
-
| Medium | `suggested` | Should fix soon |
|
|
736
|
-
| Low | `backlog` | Optional improvement |
|
|
737
|
-
| Info | `backlog` | Informational only |
|
|
738
|
-
|
|
739
|
-
**Severity is derived from failure_code suffix:**
|
|
740
|
-
| Suffix | Severity | Priority |
|
|
741
|
-
|--------|----------|----------|
|
|
742
|
-
| `/C` | critical | critical |
|
|
743
|
-
| `/H` | high | critical |
|
|
744
|
-
| `/M` | medium | suggested |
|
|
745
|
-
| `/L` | low | backlog |
|
|
746
|
-
| `/I` | info | backlog |
|
|
747
|
-
|
|
748
|
-
## Failure Code Selection
|
|
749
|
-
|
|
750
|
-
**1. Use the default code from the criterion that failed** (e.g., `→ SEM-COM/H`)
|
|
751
|
-
|
|
752
|
-
**2. Adjust severity letter based on actual impact:**
|
|
753
|
-
- `/C` - Security vulnerabilities, data loss risk, crashes, blocks all functionality
|
|
754
|
-
- `/H` - Broken functionality, missing critical tests, significant user impact
|
|
755
|
-
- `/M` - Code quality issues, maintainability concerns, moderate impact
|
|
756
|
-
- `/L` - Style issues, minor improvements, low impact
|
|
757
|
-
- `/I` - Suggestions, informational, no functional impact
|
|
758
|
-
|
|
759
|
-
**3. Consider context when adjusting:**
|
|
760
|
-
- A naming issue in a public API → elevate to `/M` or `/H`
|
|
761
|
-
- A complexity issue in rarely-used code → may stay at `/L`
|
|
762
|
-
- Missing error handling in user-facing code → `/H` or `/C`
|
|
763
|
-
- Missing error handling in internal utility → `/M`
|
|
764
|
-
|
|
765
506
|
## Edge Case Handling
|
|
766
507
|
|
|
767
508
|
### Empty phase
|
|
@@ -797,6 +538,15 @@ When generating the JSON OUTPUT section, map issues as follows:
|
|
|
797
538
|
3. For Go projects (go.mod): use go vet, go test ./..., gofmt
|
|
798
539
|
4. For mixed-language projects: run applicable tools for each detected language
|
|
799
540
|
|
|
541
|
+
### Large changeset
|
|
542
|
+
**Condition:** More than 20 files modified or total diff exceeds 2000 lines
|
|
543
|
+
1. Use get_token_budget to check remaining context before reading files
|
|
544
|
+
2. Prioritize files by risk: user-facing code > core logic > utilities > tests > config
|
|
545
|
+
3. Sample representative files from each risk tier rather than reading all files
|
|
546
|
+
4. Report coverage in header: 'Reviewed X of Y modified files (Z% coverage)'
|
|
547
|
+
5. Note unreviewed files and recommend follow-up review
|
|
548
|
+
6. Do not reduce score for issues in unreviewed files — score only what was examined
|
|
549
|
+
|
|
800
550
|
### Missing tooling
|
|
801
551
|
**Condition:** Linter, formatter, or test runner not installed or not configured
|
|
802
552
|
1. Skip automated verification for that criterion
|
|
@@ -811,25 +561,6 @@ When generating the JSON OUTPUT section, map issues as follows:
|
|
|
811
561
|
This agent typically runs first in the validation chain.
|
|
812
562
|
**Recommends:** pre-implementation-architect
|
|
813
563
|
|
|
814
|
-
### Handoff: What This Agent Passes Downstream
|
|
815
|
-
|
|
816
|
-
**To type-safety-validator:**
|
|
817
|
-
- List of TypeScript files reviewed
|
|
818
|
-
- Error count baseline from this validation
|
|
819
|
-
- Any type-related issues already identified
|
|
820
|
-
|
|
821
|
-
**To test-architect:**
|
|
822
|
-
- Test file locations discovered during review
|
|
823
|
-
- Coverage baseline (if tools available)
|
|
824
|
-
- Functions flagged as missing tests
|
|
825
|
-
|
|
826
|
-
**To security-analyst:**
|
|
827
|
-
- Baseline code quality assessment
|
|
828
|
-
- Error handling patterns observed
|
|
829
|
-
- Any security-adjacent issues already flagged
|
|
830
|
-
|
|
831
|
-
### Handoff: What This Agent Expects From Predecessors
|
|
832
|
-
This agent typically runs first in the validation chain. No predecessor data expected.
|
|
833
564
|
|
|
834
565
|
---
|
|
835
566
|
|