opendatahub-io/docs-skills/docs-workflow-security-review
Claude Code and agent skill by opendatahub-io/docs-skills
- community
Checking that the SKILL.md file is still in the repository.
Security and PII scan of documentation drafts before publication. Runs the deterministic PII scanner, then applies the docs-review-security checklist for agent-based analysis. Iteration logic is owned by the orchestrator, not this skill.
Install
npx vskill@latest install opendatahub-io/docs-skills/docs-workflow-security-reviewSKILL.md
Security Review Step
Step skill for the docs-orchestrator pipeline. Follows the step skill contract: parse args → run scanner → apply checklist → write output.
Arguments
$1— JIRA ticket ID (required)--base-path <path>— Base output path (e.g.,.agent_workspace/proj-123)
Input
Output
Execution
1. Parse arguments
Extract the ticket ID and --base-path from the args string.
Set the paths:
2. Determine source files
Read the writing step's sidecar at ${BASE_PATH}/writing/step-result.json to determine the writing mode and file list.
If the sidecar exists and `mode` is `"update-in-place"` with a non-empty `files` array:
Build a file list from the files array.
Otherwise (draft mode, missing sidecar, or empty files array):
Set DRAFTS_DIR="${BASE_PATH}/writing" and glob for .adoc, .md, .dita, and .ditamap files.
3. Run PII scanner
Check the exit code. The scanner uses these exit codes:
- 0 — no critical findings (warnings such as URL patterns may still exist in the JSON output)
- 1 — critical findings detected (credentials, private keys — proceed but flag in report)
- 2 — script error (bad paths, unreadable files, invalid arguments)
Do NOT treat exit codes 0 or 1 as script failures — both produce valid JSON output. Exit 0 means no critical findings (but warnings may exist). Exit 1 means critical findings were detected.
Validate the JSON output is well-formed before parsing:
Always parse the JSON to get finding counts — do NOT infer counts from the exit code. Read summary.total_findings, summary.by_severity.critical (default 0), and summary.by_severity.warning (default 0) from $SCANNER_FILE. These are the values to use in the report header.
4. Build report header
Start the review report with the scanner results:
5. Dispatch the security-reviewer agent (Layer 2)
You MUST use the Agent tool to invoke the security-reviewer subagent. Do NOT read the checklist or apply it yourself — the agent reads the source files and the Layer 2 checklist in its own isolated context and appends findings directly to the report, so neither the doc content nor the checklist enters the orchestrator's context.
Agent tool parameters:
subagent_type:docs-skills:security-reviewerdescription:Security Layer 2 review for <TICKET>run_in_background:false(the orchestrator must wait for the reviewer to finish before verifying output)
Prompt (substitute <SOURCE_FILES> with the file list from step 2 and <OUTPUT_FILE> with the report path):
Apply the Layer 2 agent-analysis checklist to the documentation for ticket<TICKET>.Source files — review each of these:<SOURCE_FILES>Report file:<OUTPUT_FILE>— this file already contains the report header and scanner results. Append your findings to its Agent analysis section by editing it in place. Do NOT overwrite the existing content and do NOT write to any other location.After appending all findings, do NOT print the report contents. Print ONLY these two lines:```Written <OUTPUT_FILE>Agent findings: N```
6. Verify output
After the agent completes, verify the review report exists at <OUTPUT_FILE>.
7. Write step-result.json
Do not hand-author the sidecar — a hand-written sidecar drifts from the schema. Run the script, which derives every scanner field from $SCANNER_FILE and sums context_size_bytes from the output folder. Pass --agent-findings from the Agent findings: N line the security-reviewer agent printed (do not read the full report back to recount):
The script writes the conformant step-result.json with scanner_findings, critical_findings, agent_findings, per-category counts, context_size_bytes, and a real wall-clock completed_at. If the script exits non-zero, the sidecar was not written — fix the scanner-results path and re-run; do not substitute a stub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/docs-workflow-security-review/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/opendatahub-io/docs-skills/docs-workflow-security-review)