Content
65%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The body delivers highly actionable, executable guidance — concrete MCP calls, complete YAML templates, auth-field tables, and sensible defaults — but suffers from significant duplication (the same step YAML repeated three times, scanners enumerated twice, a Performance Notes section restating the steps), a duplicate "Step 4" numbering bug, and no validation checkpoint before the pipeline-overwriting MCP update. As a monolithic 485-line single file, it also misses the opportunity to split scanner variants and troubleshooting into reference files.
Suggestions
Deduplicate the YAML: keep one full HarnessSCA template in Step 5 and have Step 6's scenarios reference it (showing only the surrounding stage/execution context) instead of repeating the entire step spec three times; likewise derive the AquaTrivy/Grype/Snyk examples from a single template noting the type, name, and auth differences.
Fix the duplicate step numbering (two steps are both labeled "Step 4", making the "Use the image block generated in Step 4" cross-reference ambiguous) and add an explicit pre-update validation checkpoint, e.g. re-fetch or lint the merged pipeline YAML and show the user the diff before calling harness_update.
Move the per-scanner YAML variants and the Troubleshooting detail into a one-level-deep references/ file (e.g. references/scanners.md and references/troubleshooting.md) to slim SKILL.md into an overview with clearly signaled navigation, and trim the Performance Notes section to only the points not already covered in Steps 3–5.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body avoids explaining known concepts and is information-dense, but contains substantial redundancy: the full HarnessSCA step YAML is repeated three times (Step 5, Step 6 Scenario A, Step 6 Scenario C), the AquaTrivy and Grype examples are near-identical duplicates differing only in type/name, Step 3 enumerates the scanners twice (bullet list plus table), and the 13-bullet "Performance Notes" section largely restates rules already stated in Steps 3–5. This fits "mostly efficient but includes some unnecessary explanation or could be tightened". Not score 2 because no section explains concepts Claude already knows — the padding is structural repetition, not fluff; not score 4 because the duplication (~100+ of ~465 lines) is more than minor. | 3 / 5 |
Actionability | Fully executable guidance throughout: exact MCP tool calls with named parameters (harness_get / harness_update blocks), complete copy-paste YAML step specs per scanner, a scanner-to-auth-field table, the exact secret reference format `<+secrets.getValue("project.<secret_identifier>")>`, the step identifier regex `^[a-zA-Z_][0-9a-zA-Z_]{0,127}$`, and worked user-input examples (public Docker Hub, private ECR, scan-before-deploy) covering the common cases. Not score 4 because there are no missing key details — even defaults (docker_v2/docker.io/latest, mode: orchestration) and failure thresholds are specified. | 5 / 5 |
Workflow Clarity | The 8-step sequence is well ordered with explicit decision points and defaults, but two different steps are both numbered "Step 4" ("Collect Container Image Details" and "Collect Infrastructure Details"), making later cross-references like "Use the image block generated in Step 4" ambiguous, and there is no validation checkpoint before `harness_update` overwrites an existing pipeline's YAML — verification is deferred to the user in Step 8. This matches "steps listed but validation gaps; sequence present but checkpoints missing or implicit". Not score 4 because the duplicate numbering and absent pre-update validation are more than minor gaps; not score 2 because the sequence, branching conditions ("skip for Prisma Cloud / Wiz", "only required when adding a new SecurityTests stage"), and a Troubleshooting section with recovery paths are genuinely clear. | 3 / 5 |
Progressive Disclosure | The skill is a single ~485-line SKILL.md with no references/, scripts/, or assets/ bundle; it has good section headers (Instructions, Examples, Performance Notes, Troubleshooting) but is monolithic — the five per-scanner YAML variants (four of which differ only in type/name/auth fields) and the detailed troubleshooting content would fit better in one-level-deep reference files. This fits "some structure but could be better organized; content that should be separate is inline". Not score 4 because nothing is split out and the file is far too large for the under-50-line simple-skill exception; not score 2 because section organization and navigation within the file are actually good, not minimal. | 3 / 5 |
Total | 14 / 20 Passed |