{"data":{"skill":{"slug":"cloudai-x-managing-git","name":"managing-git","icon":"📦","repo":"https://github.com/CloudAI-X/claude-workflow/tree/main/skills/managing-git","status":"approved","author":"CloudAI-X","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"87035322-2192-45dc-a732-39fe70a74696","skill_id":"a62149da-928d-4ebe-b59e-8b64e8db184e","version":8,"content_hash":"v3:d11af420e07cd866fe39cfa937efef3223896c06:01fbe6b5e615b24b9cbf1397fe5b0b65ac98604ada3a93fb85027ee52962e6ba:335bb5af8cac9c3601365664767cc20212747267fa7b91ba33408006fdd546fb:736b696c6c732f636c6f756461692d782f6d616e6167696e672d676974:6f6ec1c5dc1a084614f18d5af2811523","risk_level":"medium","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"Most static findings are false positives caused by Markdown fences and inline code formatting, not executable Ruby backtick syntax. I found one contextual risk: the skill documents a destructive Git reset command without explicit confirmation or backup guidance. No prompt injection or data exfiltration intent was found.","remediation":[{"issue":"Destructive reset command lacks safeguards.","severity":"medium","suggestion":"Require explicit user confirmation before git reset --hard, and recommend git status plus backup or stash steps first."},{"issue":"Remote Git operations can change shared repositories.","severity":"low","suggestion":"State that push, pull, rebase, and pull request operations should follow project policy and user confirmation."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":20,"line_start":12},{"file":"SKILL.md","line_end":25,"line_start":20},{"file":"SKILL.md","line_end":29,"line_start":25},{"file":"SKILL.md","line_end":30,"line_start":29},{"file":"SKILL.md","line_end":36,"line_start":30},{"file":"SKILL.md","line_end":44,"line_start":36},{"file":"SKILL.md","line_end":49,"line_start":44},{"file":"SKILL.md","line_end":55,"line_start":49},{"file":"SKILL.md","line_end":60,"line_start":55},{"file":"SKILL.md","line_end":61,"line_start":60},{"file":"SKILL.md","line_end":62,"line_start":61},{"file":"SKILL.md","line_end":63,"line_start":62},{"file":"SKILL.md","line_end":64,"line_start":63},{"file":"SKILL.md","line_end":65,"line_start":64},{"file":"SKILL.md","line_end":66,"line_start":65},{"file":"SKILL.md","line_end":67,"line_start":66},{"file":"SKILL.md","line_end":68,"line_start":67},{"file":"SKILL.md","line_end":71,"line_start":68},{"file":"SKILL.md","line_end":78,"line_start":71},{"file":"SKILL.md","line_end":80,"line_start":78},{"file":"SKILL.md","line_end":85,"line_start":80},{"file":"SKILL.md","line_end":88,"line_start":85},{"file":"SKILL.md","line_end":95,"line_start":88},{"file":"SKILL.md","line_end":101,"line_start":95},{"file":"SKILL.md","line_end":110,"line_start":101},{"file":"SKILL.md","line_end":113,"line_start":110},{"file":"SKILL.md","line_end":128,"line_start":113},{"file":"SKILL.md","line_end":141,"line_start":128},{"file":"SKILL.md","line_end":157,"line_start":141},{"file":"SKILL.md","line_end":160,"line_start":157},{"file":"SKILL.md","line_end":175,"line_start":160},{"file":"SKILL.md","line_end":178,"line_start":175},{"file":"SKILL.md","line_end":191,"line_start":178},{"file":"SKILL.md","line_end":197,"line_start":191},{"file":"SKILL.md","line_end":204,"line_start":197},{"file":"SKILL.md","line_end":206,"line_start":204}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":3,"line_start":3}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Destructive Git Reset Guidance Without Safeguards","locations":[{"file":"SKILL.md","line_end":168,"line_start":168}],"confidence":0.88,"description":"The skill includes git reset --hard HEAD~1 under mistake recovery guidance. This command can discard local changes if an agent runs it without confirmation or backup steps.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The destructive command appears plainly in the documented workflow and has known data-loss behavior. The section does not require explicit confirmation, status checks, or backup before use."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":207,"audit_model":"codex","audited_at":"2026-07-06T07:35:05.955+00:00","created_at":"2026-07-16T17:34:44.749703+00:00","static_findings":[{"id":"external_commands:SKILL.md:12:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":20,"severity":"medium","line_start":12},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":25,"severity":"medium","line_start":20},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":29,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":30,"severity":"medium","line_start":29},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `main` is always deployable","category":"external_commands","line_end":36,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":44,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":49,"severity":"medium","line_start":44},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":55,"severity":"medium","line_start":49},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":60,"severity":"medium","line_start":55},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `feat` | New feature |","category":"external_commands","line_end":61,"severity":"medium","line_start":60},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `fix` | Bug fix |","category":"external_commands","line_end":62,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:62:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `docs` | Documentation only |","category":"external_commands","line_end":63,"severity":"medium","line_start":62},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `style` | Formatting, no logic change |","category":"external_commands","line_end":64,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `refactor` | Code change that neither fixes bug nor adds feature |","category":"external_commands","line_end":65,"severity":"medium","line_start":64},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `perf` | Performance improvement |","category":"external_commands","line_end":66,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `test` | Adding/updating tests |","category":"external_commands","line_end":67,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `chore` | Build process, dependencies |","category":"external_commands","line_end":68,"severity":"medium","line_start":67},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `ci` | CI configuration |","category":"external_commands","line_end":71,"severity":"medium","line_start":68},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":78,"severity":"medium","line_start":71},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":80,"severity":"medium","line_start":78},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":85,"severity":"medium","line_start":80},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":88,"severity":"medium","line_start":85},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":95,"severity":"medium","line_start":88},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":101,"severity":"medium","line_start":95},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":110,"severity":"medium","line_start":101},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":113,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```markdown","category":"external_commands","line_end":128,"severity":"medium","line_start":113},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":141,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":157,"severity":"medium","line_start":141},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":160,"severity":"medium","line_start":157},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":175,"severity":"medium","line_start":160},{"id":"external_commands:SKILL.md:175:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":178,"severity":"medium","line_start":175},{"id":"external_commands:SKILL.md:178:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":191,"severity":"medium","line_start":178},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":197,"severity":"medium","line_start":191},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":204,"severity":"medium","line_start":197},{"id":"external_commands:SKILL.md:204:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":206,"severity":"medium","line_start":204},{"id":"network:SKILL.md:3:python-http-libraries","file":"SKILL.md","pattern":"Python HTTP libraries","snippet":"description: Manages Git workflows including branching, commits, and pull requests. Use when working","category":"network","line_end":3,"severity":"low","line_start":3}],"finding_verdicts":[{"id":"external_commands:SKILL.md:12:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"This is Markdown prose or formatting, not a Ruby shell backtick expression. No executable wrapper or command injection path is present.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:62:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","reason":"This line is a Markdown table entry with inline code formatting for commit type names. It does not execute a command or interpolate untrusted input.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:175:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:178:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:204:ruby-shell-backtick-execution","reason":"This location is a Markdown code fence, not Ruby backtick execution. It is documentation text and does not create a shell execution path.","verdict":"false_positive","confidence":0.94},{"id":"network:SKILL.md:3:python-http-libraries","reason":"The description mentions pull requests, not Python HTTP libraries or outbound network code. No import, API call, or URL appears at this location.","verdict":"false_positive","confidence":0.96}],"semantic_findings":[{"title":"Destructive Git Reset Guidance Without Safeguards","severity":"medium","locations":[{"file":"SKILL.md","line_end":168,"line_start":168}],"confidence":0.88,"description":"The skill includes git reset --hard HEAD~1 under mistake recovery guidance. This command can discard local changes if an agent runs it without confirmation or backup steps.","confidence_reasoning":"The destructive command appears plainly in the documented workflow and has known data-loss behavior. The section does not require explicit confirmation, status checks, or backup before use."}],"subject_marketplace_commit_sha":"d11af420e07cd866fe39cfa937efef3223896c06","subject_content_hash":"01fbe6b5e615b24b9cbf1397fe5b0b65ac98604ada3a93fb85027ee52962e6ba","subject_tree_hash":"335bb5af8cac9c3601365664767cc20212747267fa7b91ba33408006fdd546fb","subject_plugin_path":"skills/cloudai-x/managing-git","audit_payload_hash":"6f6ec1c5dc1a084614f18d5af2811523","confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":"d11af420e07cd866fe39cfa937efef3223896c06","contentHash":"01fbe6b5e615b24b9cbf1397fe5b0b65ac98604ada3a93fb85027ee52962e6ba","treeHash":"335bb5af8cac9c3601365664767cc20212747267fa7b91ba33408006fdd546fb","pluginPath":"skills/cloudai-x/managing-git","auditPayloadHash":"6f6ec1c5dc1a084614f18d5af2811523"},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"medium","confirmedFindingCount":1,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":true}}