/fix-finding
Use when the user explicitly asks to fix and verify a validated or plausible security finding. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans.
$ npx -y skills add CoWork-OS/CoWork-OS --skill fix-finding --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/fix-finding
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user explicitly asks to fix and verify a validated or plausible security finding. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans.
SKILL.md
fix-finding.SKILL.mdname: fix-finding
description: Use when the user explicitly asks to fix and verify a validated or plausible security finding. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans.
metadata:
short-description: Fix and verify security findings
Fix Finding
Objective
Turn a security finding into a minimal, validated code change when the issue still exists. If the issue is already fixed, prove that with focused validation and report that no code change was needed. The result should include the fix if one was needed, focused regression tests or another repeatable validation check, proof that normal behavior still works, and proof that the original issue no longer reproduces.
Inputs
Start by extracting any available finding details:
- title and affected component
- vulnerable source, sink, or broken control
- attacker-controlled input
- expected security invariant
- impact and required preconditions
- existing PoC, reproducer, test, or validation evidence
- files and line references
If a critical field is missing, inspect the repository to fill it from code evidence. Ask the user only when the fix would otherwise require guessing a product policy or security invariant.
Note on Runtime Validation
Use this guidance whenever reproducing the finding, running tests, or validating the fix:
- Try hard to make runtime validation run before falling back to code inspection.
- First consult the repository instructions such as `AGENTS.md`, `README.md`, setup docs, test docs, build files, or package-manager metadata for the necessary requirements.
- If dependencies, generated files, services, or local setup are missing, use the repository's documented setup, package manager, build system, or existing test commands to install or generate what is needed.
- Treat setup errors as intermediate blockers to investigate and repair with targeted commands, not as an immediate reason to abandon runtime validation.
- Do not abandon a reproduction, build, test, or validation command just because it takes time when there is output, resource usage, generated artifacts, or other evidence of progress and no hard evidence of failure.
- If a long-running command appears inconclusive, run targeted checks such as process status, recent logs, output file timestamps, resource usage, or test runner status to distinguish progress from a hang before stopping or weakening validation.
Workflow
1. Scope the fix.
- Inspect the affected files and the smallest set of supporting files needed to understand the vulnerable path.
- Identify the narrowest code boundary where the security invariant should be enforced.
- Check for existing helpers, validators, permission checks, sanitizers, policy objects, and test patterns before adding new ones.
2. Reproduce or encode the issue before fixing when feasible.
- Prefer a failing regression test, unit test, integration test, property test, or realistic-interface reproduction.
- Follow the runtime validation guidance above before deciding runtime reproduction is not feasible.
- If runtime reproduction is not feasible, create the strongest bounded static or harness-based validation artifact available and document the proof gap.
- Do not keep a test that exercises unsafe behavior unless it is safe, deterministic, and appropriate for the repository.
- If the issue no longer reproduces before any code changes, investigate whether it was already fixed and preserve the validation evidence.
3. Generate the fix.
- Make the smallest behavior change that enforces the intended invariant.
- Avoid broad refactors; prefer local, established abstractions unless a larger change is required to enforce the security invariant.
- Preserve existing APIs unless changing the API is the security fix.
- Handle error paths explicitly and avoid silently accepting unsafe input.
- Skip code changes when repository evidence and validation show the finding is already fixed.
4. Add repeatable validation.
- Add focused regression coverage that fails on the vulnerable behavior and passes after the fix.
- Include positive coverage for legitimate behavior that should still work.
- Add tests at the lowest level that proves the invariant, plus an interface-level test when the vulnerable path is externally reachable and feasible.
5. Validate the fix works.
- Run the focused tests that cover the changed code.
- Run the original PoC or reproducer, if one exists, and confirm it no longer succeeds.
- Follow the runtime validation guidance above before falling back to code inspection.
- Re-check the original source-to-sink or broken-control path in the fixed code.
- Search nearby call sites or variants that might bypass the new control.
- Confirm the regression test would fail if the fix were removed, when practical.
- Run any relevant unit tests, integration tests, formatter, linter, type checker, package-specific dependency check, and other repository checks normally required for the touched files.
6. Report the outcome with exact commands, results, changed files, and remaining risk.
Completion Checklist
Use this checklist before calling the fix complete:
- The original finding is restated in concrete source/sink/control terms.
- The fix enforces the security invariant at the right boundary.
- A focused regression test or validation artifact covers the exploit condition.
- Legitimate behavior remains covered.
- The original PoC, failing test, or reproduction no longer succeeds.
- Focused tests pass after the fix.
- Runtime validation followed the guidance in "Note on Runtime Validation", including setup repair and long-running command checks when applicable.
- If no code change was made, evidence shows the issue was already fixed or not reproducible in the current code.
- Relevant unit tests, integration tests, formatters, linters, type checks, dependency checks, and other required repository che
Read more
name: fix-finding description: Use when the user explicitly asks to fix and verify a validated or plausible security finding. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans. metadata: short-description: Fix and verify security findings
Fix Finding
Objective
Turn a security finding into a minimal, validated code change when the issue still exists. If the issue is already fixed, prove that with focused validation and report that no code change was needed. The result should include the fix if one was needed, focused regression tests or another repeatable validation check, proof that normal behavior still works, and proof that the original issue no longer reproduces.
Inputs
Start by extracting any available finding details:
- title and affected component
- vulnerable source, sink, or broken control
- attacker-controlled input
- expected security invariant
- impact and required preconditions
- existing PoC, reproducer, test, or validation evidence
- files and line references
If a critical field is missing, inspect the repository to fill it from code evidence. Ask the user only when the fix would otherwise require guessing a product policy or security invariant.
Note on Runtime Validation
Use this guidance whenever reproducing the finding, running tests, or validating the fix:
- Try hard to make runtime validation run before falling back to code inspection.
- First consult the repository instructions such as `AGENTS.md`, `README.md`, setup docs, test docs, build files, or package-manager metadata for the necessary requirements.
- If dependencies, generated files, services, or local setup are missing, use the repository's documented setup, package manager, build system, or existing test commands to install or generate what is needed.
- Treat setup errors as intermediate blockers to investigate and repair with targeted commands, not as an immediate reason to abandon runtime validation.
- Do not abandon a reproduction, build, test, or validation command just because it takes time when there is output, resource usage, generated artifacts, or other evidence of progress and no hard evidence of failure.
- If a long-running command appears inconclusive, run targeted checks such as process status, recent logs, output file timestamps, resource usage, or test runner status to distinguish progress from a hang before stopping or weakening validation.
Workflow
1. Scope the fix.
- Inspect the affected files and the smallest set of supporting files needed to understand the vulnerable path.
- Identify the narrowest code boundary where the security invariant should be enforced.
- Check for existing helpers, validators, permission checks, sanitizers, policy objects, and test patterns before adding new ones.
2. Reproduce or encode the issue before fixing when feasible.
- Prefer a failing regression test, unit test, integration test, property test, or realistic-interface reproduction.
- Follow the runtime validation guidance above before deciding runtime reproduction is not feasible.
- If runtime reproduction is not feasible, create the strongest bounded static or harness-based validation artifact available and document the proof gap.
- Do not keep a test that exercises unsafe behavior unless it is safe, deterministic, and appropriate for the repository.
- If the issue no longer reproduces before any code changes, investigate whether it was already fixed and preserve the validation evidence.
3. Generate the fix.
- Make the smallest behavior change that enforces the intended invariant.
- Avoid broad refactors; prefer local, established abstractions unless a larger change is required to enforce the security invariant.
- Preserve existing APIs unless changing the API is the security fix.
- Handle error paths explicitly and avoid silently accepting unsafe input.
- Skip code changes when repository evidence and validation show the finding is already fixed.
4. Add repeatable validation.
- Add focused regression coverage that fails on the vulnerable behavior and passes after the fix.
- Include positive coverage for legitimate behavior that should still work.
- Add tests at the lowest level that proves the invariant, plus an interface-level test when the vulnerable path is externally reachable and feasible.
5. Validate the fix works.
- Run the focused tests that cover the changed code.
- Run the original PoC or reproducer, if one exists, and confirm it no longer succeeds.
- Follow the runtime validation guidance above before falling back to code inspection.
- Re-check the original source-to-sink or broken-control path in the fixed code.
- Search nearby call sites or variants that might bypass the new control.
- Confirm the regression test would fail if the fix were removed, when practical.
- Run any relevant unit tests, integration tests, formatter, linter, type checker, package-specific dependency check, and other repository checks normally required for the touched files.
6. Report the outcome with exact commands, results, changed files, and remaining risk.
Completion Checklist
Use this checklist before calling the fix complete:
- The original finding is restated in concrete source/sink/control terms.
- The fix enforces the security invariant at the right boundary.
- A focused regression test or validation artifact covers the exploit condition.
- Legitimate behavior remains covered.
- The original PoC, failing test, or reproduction no longer succeeds.
- Focused tests pass after the fix.
- Runtime validation followed the guidance in "Note on Runtime Validation", including setup repair and long-running command checks when applicable.
- If no code change was made, evidence shows the issue was already fixed or not reproducible in the current code.
- Relevant unit tests, integration tests, formatters, linters, type checks, dependency checks, and other required repository che
Local-first personal agentic OS and everything app for coding, knowledge work, web design, automations, and artifacts.
Repo: CoWork-OS/CoWork-OS
Other skills on cowork-os.
- /attack-path-analysis
Use when Codex is already in the attack-path-analysis phase of a security scan or the user explicitly asks to trace a security finding from source to sink and calibrate severity. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans.
Open skill - /deep-security-scan
Use when the user asks for a deep, exhaustive, multi-pass, or variance-reducing repository-wide Codex Security scan. Run repeated independent repository-wide discovery passes with worker-specific threat models, semantically merge candidates, synthesize one canonical validation
Open skill - /finding-discovery
Use when Codex is already in the finding-discovery phase of a security scan or the user explicitly asks to discover candidate security findings in a repository or code change. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans.
Open skill - /security-diff-scan
Use when the user asks for a security review of a pull request, commit, branch diff, working-tree patch, or other Git-backed change set.
Open skill - /security-scan
Use when the user asks for a repository-wide or scoped-path security scan.
Open skill - /threat-model
Use when Codex is already in the threat-modeling phase of a security scan, the user explicitly invokes $threat-model, or the user explicitly asks to create, update, or persist a repository threat model. Do not use as the primary trigger for full PR, commit, branch, patch, or
Open skill

