Content
71%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 is exceptionally concrete — complete CLI documentation with flags, exit codes and a test-file format, skill-specific risk-scoring tables, ATLAS mappings, and executable workflows with explicit decision gates. It is dragged down by a layer of textbook attack definitions Claude already knows and by referencing a scanner script and ATLAS coverage file that are not present in the bundle, breaking every workflow command as delivered.
Suggestions
Cut the opening definition sentences in each threat section ('Prompt injection occurs when...', 'Model inversion attacks reconstruct...', 'Data poisoning attacks insert...') and tighten the generic Guardrail Design Patterns and detection-signal lists to only the controls this skill's finding types map to — Claude already knows these attack classes.
Ship the referenced bundle files: scripts/ai_threat_scanner.py and references/atlas-coverage.md are invoked or cited throughout the body but absent from the bundle, leaving every workflow command and the ATLAS deep-dive unreachable.
Close Workflow 2 with an explicit verification step — re-run the scanner after guardrail implementation and require exit code 0 (or overall_risk below medium) before sign-off, completing the validate-fix-retry loop.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Each threat section opens with a textbook definition Claude already knows — 'Prompt injection occurs when adversarial input overrides the model's system prompt', 'Model inversion attacks reconstruct training data from model outputs', 'Data poisoning attacks insert malicious examples into training data' — and the Guardrail Design Patterns and detection-signal lists restate standard practice. The signature/risk/ATLAS tables and CLI documentation are lean and skill-specific, so the body is mostly efficient with a trimmable layer of known-concept explanation — anchor 3, not anchor 4's 'minor instances', and not anchor 2 since the padded passages are brief and anchored to skill-specific data. | 3 / 5 |
Actionability | The scanner CLI is documented copy-paste ready across five invocations with every flag shown ('--target-type llm --access-level gray-box --test-file prompts.json --authorized --json', '--scope prompt-injection,jailbreak', '--list-patterns'), plus a concrete test-file JSON example, an exit-code table, and worked decision criteria ('Exit code 2 = block deployment; fix critical findings first'). The CI gate block ('RISK=$(jq -r '.overall_risk' ...); if [ "${RISK}" = "critical" ]; then ... exit 1') is executable end to end and the examples cover the common cases — anchor 5; anchor 4's 'minor gaps' would understate the completeness of the written commands. | 5 / 5 |
Workflow Clarity | The three workflows are clearly phased and numbered with explicit checkpoints — Workflow 1 ends in a decision gate keyed to exit codes, Workflow 3 enforces a blocking condition in CI. However there is no re-run/verify loop after guardrail implementation (Workflow 2 Phase 3 ends at 'add tool approval gates' without re-scanning to confirm risk reduction), so 'clear sequence with most checkpoints present; minor validation gaps' (anchor 4) is the best fit; anchor 5 requires explicit feedback loops for error recovery, and anchor 3 would understate how explicit the existing checkpoints are. | 4 / 5 |
Progressive Disclosure | In-document structure is good — a table of contents, well-sectioned tables, and a clearly signaled one-level reference ('Full ATLAS technique coverage reference: references/atlas-coverage.md'). However the bundle contains no references/, scripts/, or assets/ directories: neither references/atlas-coverage.md nor scripts/ai_threat_scanner.py — which every workflow invokes — actually exists, so the disclosure structure cannot deliver its referenced content. Organization and signaling are clearly better than anchor 2's 'minimal structure' or 'buried references', but the dangling paths hold this at anchor 3 ('could be better organized' against the actual bundle structure). | 3 / 5 |
Total | 15 / 20 Passed |