Loading...
Loading...
AI SDLC security testing workflow. Use when an AI assistant is asked for OWASP review, security testing, abuse-case analysis, authz/authn review, input validation review, secret exposure review, or security-focused validation of a diff, endpoint, workflow, or subsystem. Supports `--quick-flow` for fast assumption-driven execution and `--full-flow` for question-driven verified execution.
npx skill4agent add mikegorelikoff/ai-sdlc-harness ai-sdlc-security-testingInternal AI SDLC skill, not client-facing by default. Every rule below is important to follow. None of it can be skipped. Before producing the final artifact, confirm required inputs, target audience, missing facts, output format, and constraints when they are unclear. Do not invent missing information. Ask concise clarification questions when required inputs are absent.
ai-sdlc-security-testingTBDNot providedAssumption--quick-flow--full-flow--full-flow--quick-flow--quick-flowdecision-log.md--quick-flow--full-flow--full-flow--full-flowspecs-refiniment/<feature-name>/<file.md>ai-sdlc-handoff/v1resultblockersnext_requirednext_optionalreasoncommandexpected_artifactsummary.txt*-summary.txt_ai_sdlcspecs-refiniment/<feature-name>/decision-log.mdspecs/<feature-name>/decision-log.md# Decision Log
| ID | Date | Status | Owner | Decision | Context/Evidence | Options Considered | Affected Artifacts | Validation/Trace Links |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| DEC-001 | YYYY-MM-DD | proposed / accepted / superseded / rejected | role or name | concise decision | source facts, artifact links, or evidence | option A; option B; recommended default | affected docs, tasks, code, tests, or rollout notes | requirement IDs, test IDs, validation commands, PRs, commits, or tickets |specs/specs/specs-refiniment/<feature-name>/<file.md>specs-refiniment/<feature-name>/<file.md>specs/specs-refiniment/<feature-name>/_ai_sdlc/state.toonspecs/<feature-name>/_ai_sdlc/state.toonpython3 skills/_shared/state_machine.py check --feature <feature-name> --skill <this-skill-name> --workspace <refinement|implementation> --quick-flow|--full-flowbegincomplete--artifacts <path>--decision-ref DEC-###--full-flow--quick-flow--assumption "..."--decision-ref DEC-###decision-log.mdpython3 skills/_shared/state_machine.py status --feature <feature-name> --workspace <refinement|implementation> --format toonstate.toonartifact_metadataai-sdlc-artifact-metadata/v1featureartifactpathworkspaceskillflow_modestate_filedecision_logstatusownercreated_atupdated_attrace_idsrelated_artifactsvalidationmetatagsmetatagsai-sdlcrefinementimplementationdraftreviewapprovedvalidated--quick-flowflow_mode: quick--full-flowflow_mode: fullstatusvalidationtrace_idsrelated_artifactsdecision-log.mdstate.toonspecs-refiniment/_ai_sdlc/specs-index.toonspecs/_ai_sdlc/specs-index.toonspecs-refiniment/specs-index.mdspecs/specs-index.mdpython3 skills/_shared/ai_sdlc_specs_index.py --workspace <refinement|implementation> --quick-flow|--full-flow--quick-flowspecs-index.toon--full-flowspecs-index.toonspecs-index.mdscripts/security_review_matrix.py--quick-flow--full-flowreferences/owasp-backend-checklist.mdscripts/security_review_matrix.py--format toonanchorsnext_readspython3 skills/ai-sdlc-security-testing/scripts/security_review_matrix.py --feature <feature-name> --quick-flow <input.md>...python3 skills/ai-sdlc-security-testing/scripts/security_review_matrix.py --feature <feature-name> --full-flow <input.md>...--section "<section>"--section--finalize--decision-row--emit-template--emit-decision-log-entry--write--quick-flow--full-flowgit status --shortgit diff --statreferences/owasp-backend-checklist.mdtest-cases.mdqa.mdFindings:
- [CRITICAL|HIGH|MEDIUM|LOW] path:line - concise issue statement.
Impact: exploitable outcome.
Evidence: code path, input, state, or missing check.
Fix: concrete remediation.
Verified sources:
- Required when the output uses OWASP or standards-based claims.
- Include the current primary source link and the specific claim it supports.
Open questions:
- Trust-boundary or exploitability question that blocks severity or fix selection.
Validation gaps:
- Missing security test, QA check, or command and why it matters.
Summary:
- Brief security posture summary after findings.Findings:
- [HIGH] internal/transport/http/v1/handlers/transfers.go:142 - Transfer lookup does not verify organization ownership before returning wallet metadata.
Impact: A user with access to one organization could enumerate another organization's provider wallet labels.
Evidence: Handler uses transfer ID from the route and returns provider details before checking org ownership.
Fix: Load the transfer through an organization-scoped query or compare `transfer.OrganizationID` before building the response.Findings:
- None found.
Validation gaps:
- No automated test covers replay of duplicate webhook IDs; add a service-level idempotency test before release.Security looks fine.target unclear$ai-sdlc-code-reviewstandards verification blocked$ai-sdlc-ba$ai-sdlc-qa