{"data":{"skill":{"slug":"codewithmukesh-convention-learner","name":"convention-learner","icon":"📦","repo":"https://github.com/codewithmukesh/dotnet-claude-kit/tree/23300897f4d1a276bc475e373ecfe886e43dd7c5/skills/convention-learner","status":"approved","author":"codewithmukesh","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"f68b1975-a1e8-4b04-88af-2a732bf74e3b","skill_id":"1eb81dfa-d618-418f-b2f6-35bdbd86f993","version":1,"content_hash":"v3:79a2b74ba8b6a6a3c05dcf469ad5fe4034b72472:1a4e517eefc68e14f9fb894eca473a68975e2488594f986cf7dcfab61525886d:81f3848202d55ae90fcdd585cb33fc6cd404e2dbb8a313a22f36a634613eca99:736b696c6c732f636f6465776974686d756b6573682f636f6e76656e74696f6e2d6c6561726e6572:212751c70e2aa7ad433f42857f8fc477","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 58 static findings are false positives from Markdown formatting, C# examples, and an illustrative quality table. No evidence found of malicious execution, exfiltration, or prompt injection in SKILL.md. The skill describes project analysis through MCP tools and file reads, with suggested convention documentation and configuration changes.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":19,"line_start":19},{"file":"SKILL.md","line_end":35,"line_start":28},{"file":"SKILL.md","line_end":38,"line_start":35},{"file":"SKILL.md","line_end":46,"line_start":38},{"file":"SKILL.md","line_end":50,"line_start":46},{"file":"SKILL.md","line_end":51,"line_start":50},{"file":"SKILL.md","line_end":51,"line_start":51},{"file":"SKILL.md","line_end":52,"line_start":52},{"file":"SKILL.md","line_end":53,"line_start":53},{"file":"SKILL.md","line_end":72,"line_start":58},{"file":"SKILL.md","line_end":77,"line_start":72},{"file":"SKILL.md","line_end":81,"line_start":77},{"file":"SKILL.md","line_end":82,"line_start":81},{"file":"SKILL.md","line_end":82,"line_start":82},{"file":"SKILL.md","line_end":91,"line_start":87},{"file":"SKILL.md","line_end":93,"line_start":91},{"file":"SKILL.md","line_end":104,"line_start":93},{"file":"SKILL.md","line_end":112,"line_start":104},{"file":"SKILL.md","line_end":114,"line_start":112},{"file":"SKILL.md","line_end":119,"line_start":114},{"file":"SKILL.md","line_end":124,"line_start":119},{"file":"SKILL.md","line_end":125,"line_start":124},{"file":"SKILL.md","line_end":126,"line_start":125},{"file":"SKILL.md","line_end":128,"line_start":126},{"file":"SKILL.md","line_end":131,"line_start":128},{"file":"SKILL.md","line_end":133,"line_start":131},{"file":"SKILL.md","line_end":139,"line_start":133},{"file":"SKILL.md","line_end":143,"line_start":139},{"file":"SKILL.md","line_end":146,"line_start":143},{"file":"SKILL.md","line_end":152,"line_start":146},{"file":"SKILL.md","line_end":155,"line_start":152},{"file":"SKILL.md","line_end":161,"line_start":155},{"file":"SKILL.md","line_end":164,"line_start":161},{"file":"SKILL.md","line_end":167,"line_start":164},{"file":"SKILL.md","line_end":173,"line_start":167},{"file":"SKILL.md","line_end":177,"line_start":173},{"file":"SKILL.md","line_end":179,"line_start":177},{"file":"SKILL.md","line_end":181,"line_start":179},{"file":"SKILL.md","line_end":181,"line_start":181},{"file":"SKILL.md","line_end":187,"line_start":183},{"file":"SKILL.md","line_end":191,"line_start":187},{"file":"SKILL.md","line_end":193,"line_start":191},{"file":"SKILL.md","line_end":197,"line_start":193},{"file":"SKILL.md","line_end":201,"line_start":197},{"file":"SKILL.md","line_end":205,"line_start":201},{"file":"SKILL.md","line_end":207,"line_start":205},{"file":"SKILL.md","line_end":211,"line_start":207}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":243,"audit_model":"codex","audited_at":"2026-10-31T14:11:36.105+00:00","created_at":"2026-10-31T15:52:28.50586+00:00","static_findings":[{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Observe before enforcing** — Never impose conventions without first analyzing the existing code","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Project conventions override generic rules** — If the project uses `*Service` instead of `*Hand","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. **Use MCP tools for analysis** — `get_public_api` reveals naming patterns, `get_project_graph` sh","category":"external_commands","line_end":17,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"5. **Consistency over perfection** — A project with consistent `snake_case` database columns is bett","category":"external_commands","line_end":19,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":35,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":38,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":46,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":50,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Feature folders: `Features/{FeatureName}/` with all files together?","category":"external_commands","line_end":51,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Layer folders: `Controllers/`, `Services/`, `Repositories/` separate?","category":"external_commands","line_end":51,"severity":"medium","line_start":51},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Shared patterns: `Common/`, `Extensions/`, `Middleware/`?","category":"external_commands","line_end":52,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Configuration location: root? `Config/` folder? `Infrastructure/`?","category":"external_commands","line_end":53,"severity":"medium","line_start":53},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":72,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:72:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":77,"severity":"medium","line_start":72},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```markdown","category":"external_commands","line_end":81,"severity":"medium","line_start":77},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Classes: `internal sealed class` (95% of handlers/services)","category":"external_commands","line_end":82,"severity":"medium","line_start":81},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Suffixes: Handlers end in `Handler`, validators in `Validator`","category":"external_commands","line_end":82,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Features: `Features/{Name}/` with command, handler, validator, endpoint in one file","category":"external_commands","line_end":91,"severity":"medium","line_start":87},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Nullable: Enabled globally, no suppressions (`!`) used","category":"external_commands","line_end":93,"severity":"medium","line_start":91},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":104,"severity":"medium","line_start":93},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```csharp","category":"external_commands","line_end":112,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":114,"severity":"medium","line_start":112},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```csharp","category":"external_commands","line_end":119,"severity":"medium","line_start":114},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":124,"severity":"medium","line_start":119},{"id":"external_commands:SKILL.md:124:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":125,"severity":"medium","line_start":124},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"⚠️ Convention violation: CreateOrderHandler is `public class` but project convention","category":"external_commands","line_end":126,"severity":"medium","line_start":125},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"is `internal sealed class` (detected in 12/12 existing handlers).","category":"external_commands","line_end":128,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":131,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"After detecting conventions, suggest `.editorconfig` rules to enforce them automatically:","category":"external_commands","line_end":133,"severity":"medium","line_start":131},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```ini","category":"external_commands","line_end":139,"severity":"medium","line_start":133},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":143,"severity":"medium","line_start":139},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `detect_antipatterns` to track recurring quality issues across sessions.","category":"external_commands","line_end":146,"severity":"medium","line_start":143},{"id":"external_commands:SKILL.md:146:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":152,"severity":"medium","line_start":146},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":155,"severity":"medium","line_start":152},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":161,"severity":"medium","line_start":155},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":164,"severity":"medium","line_start":161},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```markdown","category":"external_commands","line_end":167,"severity":"medium","line_start":164},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":173,"severity":"medium","line_start":167},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":177,"severity":"medium","line_start":173},{"id":"external_commands:SKILL.md:177:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":179,"severity":"medium","line_start":177},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":181,"severity":"medium","line_start":179},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"→ get_public_api reveals: 8/8 handlers are `public class` implementing `IHandler<T>`","category":"external_commands","line_end":181,"severity":"medium","line_start":181},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":187,"severity":"medium","line_start":183},{"id":"external_commands:SKILL.md:187:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":191,"severity":"medium","line_start":187},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":193,"severity":"medium","line_start":191},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":197,"severity":"medium","line_start":193},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":201,"severity":"medium","line_start":197},{"id":"external_commands:SKILL.md:201:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":205,"severity":"medium","line_start":201},{"id":"external_commands:SKILL.md:205:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":207,"severity":"medium","line_start":205},{"id":"external_commands:SKILL.md:207:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":211,"severity":"medium","line_start":207},{"id":"external_commands:SKILL.md:211:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":215,"severity":"medium","line_start":211},{"id":"external_commands:SKILL.md:215:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":218,"severity":"medium","line_start":215},{"id":"external_commands:SKILL.md:218:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":220,"severity":"medium","line_start":218},{"id":"external_commands:SKILL.md:220:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":225,"severity":"medium","line_start":220},{"id":"external_commands:SKILL.md:225:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":241,"severity":"medium","line_start":225},{"id":"blocker:SKILL.md:117:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"public record ProductResponse(Guid Id, string Name, decimal Price);","category":"blocker","line_end":117,"severity":"low","line_start":117},{"id":"blocker:SKILL.md:118:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"// Not: public class ProductResponse { public Guid Id { get; set; } }","category":"blocker","line_end":118,"severity":"low","line_start":118},{"id":"blocker:SKILL.md:159:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| async void | 1 | → same | Medium — one-off fix |","category":"blocker","line_end":159,"severity":"low","line_start":159}],"finding_verdicts":[{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"The backticks mark inline C# class modifiers in prose about matching existing conventions. They do not execute shell or Ruby commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"Inline backticks identify naming suffixes and project configuration files. Precedence applies to coding conventions, not security instructions or command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"The backticks name MCP analysis tools in explanatory prose. No shell invocation or executable backtick expression is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"Markdown backticks format database naming styles for comparison. These are identifiers, not executable commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"This fenced block lists project-structure questions and a project graph analysis tool. The fence is Markdown, not shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"The matched range spans a closing Markdown fence and the next analysis section. It contains no shell or Ruby execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"This Markdown block describes inspecting type names and modifiers with get_public_api. It does not contain executable shell syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"The match joins a Markdown fence to folder-analysis prose. The instruction concerns project structure, with no command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"Backticks format example project folder paths. These are structural conventions, not commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","reason":"The line lists Controllers, Services, and Repositories as folder examples. Markdown path formatting has no execution semantics.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"The backticks delimit shared-folder names in a checklist. No shell or Ruby interpreter is invoked.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","reason":"Config and Infrastructure are example project directories in inline Markdown. There is no command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"The fenced checklist describes reading project configuration settings. It contains no shell commands or instructions to execute those files.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:72:ruby-shell-backtick-execution","reason":"The range spans Markdown fences around configuration inspection and a sample summary. Formatting delimiters are not executable backticks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","reason":"The opening fence explicitly labels a Markdown convention-summary example. The enclosed class modifiers are documentation, not commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"Inline code formats class modifiers and naming suffixes inside an illustrative report. No execution mechanism exists here.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"Handler and Validator are example type-name suffixes. Their Markdown formatting does not invoke external commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","reason":"The range describes feature folders and nullable conventions in a sample report. The backticks only format a path and punctuation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","reason":"The exclamation mark represents C# nullable suppression in documentation. The closing Markdown fence does not execute anything.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","reason":"This range connects a sample-report fence with code-generation guidance. No shell or Ruby execution appears.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"The explicitly labeled C# block illustrates class modifiers and a primary constructor. It is not shell backtick execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","reason":"The match spans adjacent Markdown fences separating C# examples. There is no command between them.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","reason":"The fenced C# example defines a response record and contrasts a mutable class. It contains no process invocation or shell expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"Closing and opening Markdown fences surround code-review guidance. These delimit examples rather than execute commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:124:ruby-shell-backtick-execution","reason":"The opening fence introduces a sample convention-violation message. Inline class modifiers are displayed as text.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","reason":"Backticks highlight contrasting C# accessibility modifiers in review feedback. They are Markdown formatting, not shell substitutions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","reason":"The sample feedback recommends a class-modifier change and closes its display block. No external command is involved.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"The range transitions from sample feedback to proposed editor configuration rules. Its backticks are Markdown delimiters.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","reason":"The text suggests editor configuration rules after observing conventions. Naming a configuration file and opening an INI block does not execute commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","reason":"The INI example sets analyzer and C# style preferences. It contains neither shell commands nor executable configuration hooks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","reason":"This range closes the INI example and names an analysis tool. Markdown fences and tool identifiers are not shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","reason":"The backticks format detect_antipatterns as a tool name. The surrounding text describes tracking code-quality issues.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:146:ruby-shell-backtick-execution","reason":"The block describes solution-level quality analysis and trend questions. HttpClient appears as a code smell, not an instruction to make network requests.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","reason":"The matched fences separate analysis guidance from a sample prioritization table. No shell command appears.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","reason":"The fenced table contains illustrative code-quality counts and priorities. It does not execute any listed anti-pattern.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","reason":"The range separates a sample table from convention-documentation guidance. Its backticks are Markdown fences.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","reason":"The Markdown example recommends TimeProvider instead of DateTime.Now. It documents a coding rule without invoking commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","reason":"The range closes a documentation example and introduces an anti-pattern section. The Markdown fences do not execute.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","reason":"The fenced BAD example warns against imposing generic class modifiers. It contains explanatory text, not shell syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:177:ruby-shell-backtick-execution","reason":"The match spans closing and opening display fences between contrasting examples. There is no executable command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","reason":"This block illustrates using public API analysis to confirm handler conventions. Its C# type references are documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","reason":"Backticks format public class and a generic handler interface in sample analysis output. Neither expression is a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","reason":"The range closes one example and opens guidance about explicit project rules. Markdown fences have no execution semantics.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:187:ruby-shell-backtick-execution","reason":"The BAD example describes incorrectly ignoring a code-style setting. It contains configuration commentary, not external commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","reason":"The backticks are adjacent example fences separating incorrect and correct behavior. There is no shell or Ruby expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","reason":"The example follows an explicit expression-body preference from project settings. It changes coding style, not security authority or command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","reason":"The range connects two explanatory example blocks about project conventions. Its fences are Markdown formatting only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:201:ruby-shell-backtick-execution","reason":"The BAD example warns against forcing layer folders onto a feature-based project. It contains no command or executable script.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:205:ruby-shell-backtick-execution","reason":"The matched range separates folder-organization examples with Markdown fences. No process invocation is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:207:ruby-shell-backtick-execution","reason":"The example describes placing a feature in the existing folder structure. It does not include shell commands or unsafe filesystem operations.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:211:ruby-shell-backtick-execution","reason":"Markdown fences surround a transition to evidence requirements for convention detection. They are not executable backticks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:215:ruby-shell-backtick-execution","reason":"The BAD example warns against inferring a convention from one method. It is a prose example, not shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:218:ruby-shell-backtick-execution","reason":"The range spans display fences separating evidence-quality examples. There are no commands between these delimiters.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:220:ruby-shell-backtick-execution","reason":"The example recommends confirming naming and type-style patterns across multiple files. Its fenced text is not executable shell code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:225:ruby-shell-backtick-execution","reason":"The range includes a closing Markdown fence and a workflow decision table. The final inline reference names another skill without invoking a shell.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:117:system-reconnaissance","reason":"Guid is a C# identifier type in a response record declaration. The line does not query user identities, system information, or host configuration.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:118:system-reconnaissance","reason":"The commented C# class contrasts mutable properties with records. Guid is a property type, not a reconnaissance command.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:159:system-reconnaissance","reason":"This table row counts async void occurrences as a code-quality issue. It performs no system discovery or command execution.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"79a2b74ba8b6a6a3c05dcf469ad5fe4034b72472","subject_content_hash":"1a4e517eefc68e14f9fb894eca473a68975e2488594f986cf7dcfab61525886d","subject_tree_hash":"81f3848202d55ae90fcdd585cb33fc6cd404e2dbb8a313a22f36a634613eca99","subject_plugin_path":"skills/codewithmukesh/convention-learner","audit_payload_hash":"212751c70e2aa7ad433f42857f8fc477","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"79a2b74ba8b6a6a3c05dcf469ad5fe4034b72472","contentHash":"1a4e517eefc68e14f9fb894eca473a68975e2488594f986cf7dcfab61525886d","treeHash":"81f3848202d55ae90fcdd585cb33fc6cd404e2dbb8a313a22f36a634613eca99","pluginPath":"skills/codewithmukesh/convention-learner","auditPayloadHash":"212751c70e2aa7ad433f42857f8fc477"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/codewithmukesh-convention-learner/audits/1/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}