{"data":{"skill":{"slug":"allra-fintech-allra-test-writing","name":"allra-test-writing","icon":"📦","repo":"https://github.com/Allra-Fintech/allra-ai-skills/tree/main/backend-plugin/skills/test-writing","status":"approved","author":"Allra-Fintech","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"c3b3917b-2d87-430b-8d6a-4fa67c1b76f2","skill_id":"f612a711-105e-4890-b62c-97cb6e084268","version":9,"content_hash":"v3:31bc7611b504c197d3e993aef7943461c871616f:055c8e0eb4acec6369a882178470a55026709aec8dc739ed208eb5202195233b:7be9c6bc7c19f9c3acdf40bede0241d41ae2a4e65ab56188915d15cb99266dc6:736b696c6c732f616c6c72612d66696e746563682f616c6c72612d746573742d77726974696e67:f1d6b6d8fb245f388aaaadd542c83aa1","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 87 static alerts are false positives caused by Markdown backticks, fenced code samples, safe test method names, and documented test commands. The skill is a testing guide with no executable scripts, automatic command execution, system reconnaissance, or prompt injection.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":46,"line_start":39},{"file":"SKILL.md","line_end":58,"line_start":46},{"file":"SKILL.md","line_end":96,"line_start":58},{"file":"SKILL.md","line_end":104,"line_start":96},{"file":"SKILL.md","line_end":127,"line_start":104},{"file":"SKILL.md","line_end":133,"line_start":127},{"file":"SKILL.md","line_end":150,"line_start":133},{"file":"SKILL.md","line_end":152,"line_start":150},{"file":"SKILL.md","line_end":158,"line_start":152},{"file":"SKILL.md","line_end":171,"line_start":158},{"file":"SKILL.md","line_end":177,"line_start":171},{"file":"SKILL.md","line_end":190,"line_start":177},{"file":"SKILL.md","line_end":196,"line_start":190},{"file":"SKILL.md","line_end":217,"line_start":196},{"file":"SKILL.md","line_end":223,"line_start":217},{"file":"SKILL.md","line_end":237,"line_start":223},{"file":"SKILL.md","line_end":243,"line_start":237},{"file":"SKILL.md","line_end":262,"line_start":243},{"file":"SKILL.md","line_end":274,"line_start":262},{"file":"SKILL.md","line_end":299,"line_start":274},{"file":"SKILL.md","line_end":303,"line_start":299},{"file":"SKILL.md","line_end":305,"line_start":303},{"file":"SKILL.md","line_end":334,"line_start":305},{"file":"SKILL.md","line_end":350,"line_start":334},{"file":"SKILL.md","line_end":373,"line_start":350},{"file":"SKILL.md","line_end":381,"line_start":373},{"file":"SKILL.md","line_end":387,"line_start":381},{"file":"SKILL.md","line_end":390,"line_start":387},{"file":"SKILL.md","line_end":394,"line_start":390},{"file":"SKILL.md","line_end":398,"line_start":394},{"file":"SKILL.md","line_end":404,"line_start":398},{"file":"SKILL.md","line_end":411,"line_start":404},{"file":"SKILL.md","line_end":414,"line_start":411},{"file":"SKILL.md","line_end":418,"line_start":414},{"file":"SKILL.md","line_end":422,"line_start":418},{"file":"SKILL.md","line_end":428,"line_start":422},{"file":"SKILL.md","line_end":437,"line_start":428},{"file":"SKILL.md","line_end":440,"line_start":437},{"file":"SKILL.md","line_end":444,"line_start":440},{"file":"SKILL.md","line_end":451,"line_start":444},{"file":"SKILL.md","line_end":461,"line_start":451},{"file":"SKILL.md","line_end":464,"line_start":461},{"file":"SKILL.md","line_end":466,"line_start":464},{"file":"SKILL.md","line_end":474,"line_start":466},{"file":"SKILL.md","line_end":478,"line_start":474},{"file":"SKILL.md","line_end":492,"line_start":478},{"file":"SKILL.md","line_end":500,"line_start":492},{"file":"SKILL.md","line_end":516,"line_start":500},{"file":"SKILL.md","line_end":522,"line_start":516}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":781,"audit_model":"codex","audited_at":"2026-07-23T05:22:00.35+00:00","created_at":"2026-07-24T05:58:50.023673+00:00","static_findings":[{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**주의**: 아래 테스트 헬퍼는 Allra 표준 템플릿에서 제공됩니다. 프로젝트에 이러한 헬퍼가 없는 경우, Spring Boot 기본 테스트 어노테이션(`@SpringBootT","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":46,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":58,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":96,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":104,"severity":"medium","line_start":96},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":127,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:127:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":133,"severity":"medium","line_start":127},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":150,"severity":"medium","line_start":133},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":152,"severity":"medium","line_start":150},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**참고**: 외부 연동(결제 게이트웨이, 외부 API)은 `@MockBean`으로 처리","category":"external_commands","line_end":158,"severity":"medium","line_start":152},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":171,"severity":"medium","line_start":158},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":177,"severity":"medium","line_start":171},{"id":"external_commands:SKILL.md:177:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":190,"severity":"medium","line_start":177},{"id":"external_commands:SKILL.md:190:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":196,"severity":"medium","line_start":190},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":217,"severity":"medium","line_start":196},{"id":"external_commands:SKILL.md:217:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":223,"severity":"medium","line_start":217},{"id":"external_commands:SKILL.md:223:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":237,"severity":"medium","line_start":223},{"id":"external_commands:SKILL.md:237:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":243,"severity":"medium","line_start":237},{"id":"external_commands:SKILL.md:243:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":262,"severity":"medium","line_start":243},{"id":"external_commands:SKILL.md:262:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":274,"severity":"medium","line_start":262},{"id":"external_commands:SKILL.md:274:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":299,"severity":"medium","line_start":274},{"id":"external_commands:SKILL.md:299:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":303,"severity":"medium","line_start":299},{"id":"external_commands:SKILL.md:303:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**중요**: IntegrationTest에서도 외부 시스템은 `@MockBean`으로 처리","category":"external_commands","line_end":305,"severity":"medium","line_start":303},{"id":"external_commands:SKILL.md:305:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":334,"severity":"medium","line_start":305},{"id":"external_commands:SKILL.md:334:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":350,"severity":"medium","line_start":334},{"id":"external_commands:SKILL.md:350:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":373,"severity":"medium","line_start":350},{"id":"external_commands:SKILL.md:373:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":381,"severity":"medium","line_start":373},{"id":"external_commands:SKILL.md:381:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":387,"severity":"medium","line_start":381},{"id":"external_commands:SKILL.md:387:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":390,"severity":"medium","line_start":387},{"id":"external_commands:SKILL.md:390:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**주의**: 가장 무거움, 외부 API는 `@MockBean` 사용","category":"external_commands","line_end":394,"severity":"medium","line_start":390},{"id":"external_commands:SKILL.md:394:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":398,"severity":"medium","line_start":394},{"id":"external_commands:SKILL.md:398:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":404,"severity":"medium","line_start":398},{"id":"external_commands:SKILL.md:404:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":411,"severity":"medium","line_start":404},{"id":"external_commands:SKILL.md:411:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":414,"severity":"medium","line_start":411},{"id":"external_commands:SKILL.md:414:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**주의**: Service는 `@MockBean` 필수","category":"external_commands","line_end":418,"severity":"medium","line_start":414},{"id":"external_commands:SKILL.md:418:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":422,"severity":"medium","line_start":418},{"id":"external_commands:SKILL.md:422:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":428,"severity":"medium","line_start":422},{"id":"external_commands:SKILL.md:428:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":437,"severity":"medium","line_start":428},{"id":"external_commands:SKILL.md:437:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":440,"severity":"medium","line_start":437},{"id":"external_commands:SKILL.md:440:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**주의**: Spring Context 없음, `@Autowired` 불가","category":"external_commands","line_end":444,"severity":"medium","line_start":440},{"id":"external_commands:SKILL.md:444:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":451,"severity":"medium","line_start":444},{"id":"external_commands:SKILL.md:451:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":461,"severity":"medium","line_start":451},{"id":"external_commands:SKILL.md:461:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```gradle","category":"external_commands","line_end":464,"severity":"medium","line_start":461},{"id":"external_commands:SKILL.md:464:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":466,"severity":"medium","line_start":464},{"id":"external_commands:SKILL.md:466:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```xml","category":"external_commands","line_end":474,"severity":"medium","line_start":466},{"id":"external_commands:SKILL.md:474:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":478,"severity":"medium","line_start":474},{"id":"external_commands:SKILL.md:478:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":492,"severity":"medium","line_start":478},{"id":"external_commands:SKILL.md:492:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":500,"severity":"medium","line_start":492},{"id":"external_commands:SKILL.md:500:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":516,"severity":"medium","line_start":500},{"id":"external_commands:SKILL.md:516:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":522,"severity":"medium","line_start":516},{"id":"external_commands:SKILL.md:522:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":543,"severity":"medium","line_start":522},{"id":"external_commands:SKILL.md:543:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":551,"severity":"medium","line_start":543},{"id":"external_commands:SKILL.md:551:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":561,"severity":"medium","line_start":551},{"id":"external_commands:SKILL.md:561:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":565,"severity":"medium","line_start":561},{"id":"external_commands:SKILL.md:565:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":574,"severity":"medium","line_start":565},{"id":"external_commands:SKILL.md:574:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":582,"severity":"medium","line_start":574},{"id":"external_commands:SKILL.md:582:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":588,"severity":"medium","line_start":582},{"id":"external_commands:SKILL.md:588:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":592,"severity":"medium","line_start":588},{"id":"external_commands:SKILL.md:592:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":601,"severity":"medium","line_start":592},{"id":"external_commands:SKILL.md:601:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":609,"severity":"medium","line_start":601},{"id":"external_commands:SKILL.md:609:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":631,"severity":"medium","line_start":609},{"id":"external_commands:SKILL.md:631:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":635,"severity":"medium","line_start":631},{"id":"external_commands:SKILL.md:635:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":665,"severity":"medium","line_start":635},{"id":"external_commands:SKILL.md:665:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":669,"severity":"medium","line_start":665},{"id":"external_commands:SKILL.md:669:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```java","category":"external_commands","line_end":694,"severity":"medium","line_start":669},{"id":"external_commands:SKILL.md:694:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":721,"severity":"medium","line_start":694},{"id":"external_commands:SKILL.md:721:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] 메서드명이 `메서드_시나리오_결과` 패턴인가?","category":"external_commands","line_end":758,"severity":"medium","line_start":721},{"id":"external_commands:SKILL.md:758:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":762,"severity":"medium","line_start":758},{"id":"external_commands:SKILL.md:762:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":766,"severity":"medium","line_start":762},{"id":"external_commands:SKILL.md:766:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":770,"severity":"medium","line_start":766},{"id":"blocker:SKILL.md:111:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void apply_DecreasesAmount_Success() {","category":"blocker","line_end":111,"severity":"low","line_start":111},{"id":"blocker:SKILL.md:137:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void apply_PaymentFails_RollbackAll() {","category":"blocker","line_end":137,"severity":"low","line_start":137},{"id":"blocker:SKILL.md:162:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void createContract_CreatesAllRelatedData() {","category":"blocker","line_end":162,"severity":"low","line_start":162},{"id":"blocker:SKILL.md:181:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void registerAccount_Duplicate_ThrowsException() {","category":"blocker","line_end":181,"severity":"low","line_start":181},{"id":"blocker:SKILL.md:200:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void contractWorkflow_FullCycle() {","category":"blocker","line_end":200,"severity":"low","line_start":200},{"id":"blocker:SKILL.md:227:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void completeContract_PublishesEvent() {","category":"blocker","line_end":227,"severity":"low","line_start":227},{"id":"blocker:SKILL.md:247:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void createOrder_FullWorkflow() {","category":"blocker","line_end":247,"severity":"low","line_start":247},{"id":"blocker:SKILL.md:287:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void calculateDiscount_VipUser_10Percent() {","category":"blocker","line_end":287,"severity":"low","line_start":287},{"id":"blocker:SKILL.md:320:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void processPayment_Success() {","category":"blocker","line_end":320,"severity":"low","line_start":320},{"id":"blocker:SKILL.md:447:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void activate_Success() {","category":"blocker","line_end":447,"severity":"low","line_start":447},{"id":"blocker:SKILL.md:503:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void createUser_Success() {","category":"blocker","line_end":503,"severity":"low","line_start":503},{"id":"blocker:SKILL.md:555:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"// void 메서드","category":"blocker","line_end":555,"severity":"low","line_start":555},{"id":"blocker:SKILL.md:596:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void createUser_ValidRequest_Success()","category":"blocker","line_end":596,"severity":"low","line_start":596},{"id":"blocker:SKILL.md:600:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void findById_UserNotFound_ThrowsException()","category":"blocker","line_end":600,"severity":"low","line_start":600},{"id":"blocker:SKILL.md:619:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void getUser_Success() throws Exception {","category":"blocker","line_end":619,"severity":"low","line_start":619},{"id":"blocker:SKILL.md:648:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void findById_Success() {","category":"blocker","line_end":648,"severity":"low","line_start":648},{"id":"blocker:SKILL.md:678:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"void findActiveUsers_Success() {","category":"blocker","line_end":678,"severity":"low","line_start":678}],"finding_verdicts":[{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"The backticks format Spring annotation names in prose. They are Markdown syntax and cannot execute a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"The matched backticks are a Markdown code fence for a test-helper decision diagram. No command execution is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"The matched backticks close a Markdown diagram block. They are documentation delimiters, not shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"The matched backticks open a Markdown decision flowchart. The block contains explanatory text rather than executable shell code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"The matched backticks close a Markdown flowchart. No Ruby or shell evaluation mechanism exists in this documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"This is the opening fence for a Java integration-test example. Markdown fences do not execute their contents.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:127:ruby-shell-backtick-execution","reason":"This line closes a fenced Java example. It is static documentation with no command invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","reason":"This is the opening fence for a Java rollback-test example. It does not invoke Ruby or a shell.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","reason":"This line closes a fenced Java example. The backticks only delimit Markdown.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","reason":"The backticks format the @MockBean annotation in prose. No command or dynamic execution is involved.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","reason":"This opens a fenced Java database-consistency example. It is inert documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","reason":"This closes a Java example block. The Markdown delimiter cannot execute a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:177:ruby-shell-backtick-execution","reason":"This opens a fenced Java constraint-test example. It contains no shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:190:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The backticks are Markdown structure only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","reason":"This opens a fenced Java workflow-test example. No command interpreter is used.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:217:ruby-shell-backtick-execution","reason":"This closes a Java example block. It is a documentation delimiter, not executable syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:223:ruby-shell-backtick-execution","reason":"This opens a fenced Java event-test example. The skill does not execute fenced content.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:237:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. There is no shell command invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:243:ruby-shell-backtick-execution","reason":"This opens a fenced Java order-workflow example. It is static sample code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:262:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. Markdown backticks are not evaluated as Ruby or shell syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:274:ruby-shell-backtick-execution","reason":"This opens a fenced Java Mockito unit-test example. It does not execute external commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:299:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The match is only a Markdown delimiter.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:303:ruby-shell-backtick-execution","reason":"The backticks format the @MockBean annotation in guidance about mocking external systems. No command runs.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:305:ruby-shell-backtick-execution","reason":"This opens a fenced Java payment-test example. The code is illustrative and contains no shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:334:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. It is inert Markdown syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:350:ruby-shell-backtick-execution","reason":"The matched backticks delimit a plain-text checklist. The content is test-selection guidance, not a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:373:ruby-shell-backtick-execution","reason":"This closes a Markdown checklist block. No command interpreter or executable script is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:381:ruby-shell-backtick-execution","reason":"This opens a fenced Java helper-class example. It is static documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:387:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The backticks only control Markdown rendering.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:390:ruby-shell-backtick-execution","reason":"The backticks format the @MockBean annotation in prose. The line recommends isolating external APIs rather than invoking them.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:394:ruby-shell-backtick-execution","reason":"This opens a fenced Java repository-test helper example. There is no external command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:398:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. It is Markdown syntax only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:404:ruby-shell-backtick-execution","reason":"This opens a fenced Java controller-test helper example. The example cannot execute through the Markdown file.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:411:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. No Ruby or shell execution occurs.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:414:ruby-shell-backtick-execution","reason":"The backticks format @MockBean in controller-test guidance. This is annotation documentation, not a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:418:ruby-shell-backtick-execution","reason":"This opens a fenced Java Redis-test helper example. It is static sample code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:422:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The delimiter has no execution behavior.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:428:ruby-shell-backtick-execution","reason":"This opens a fenced Java Mockito helper example. No shell process is created.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:437:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The match is a Markdown fence only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:440:ruby-shell-backtick-execution","reason":"The backticks format @Autowired in prose explaining that it is unavailable. No command execution is possible.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:444:ruby-shell-backtick-execution","reason":"This opens a fenced Java domain-test example. It is documentation rather than executable skill code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:451:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. No external command mechanism exists.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:461:ruby-shell-backtick-execution","reason":"This opens a Gradle dependency snippet. It declares a test dependency and does not run a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:464:ruby-shell-backtick-execution","reason":"This closes a fenced Gradle configuration snippet. The backticks are inert.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:466:ruby-shell-backtick-execution","reason":"This opens a Maven dependency snippet. It is declarative XML documentation, not command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:474:ruby-shell-backtick-execution","reason":"This closes a fenced XML dependency snippet. It cannot invoke a shell.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:478:ruby-shell-backtick-execution","reason":"This opens a fenced Java Fixture Monkey example. The skill only presents sample code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:492:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The match is not executable syntax in Markdown.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:500:ruby-shell-backtick-execution","reason":"This opens a fenced Java Given-When-Then example. It contains no shell invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:516:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. It is Markdown formatting.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:522:ruby-shell-backtick-execution","reason":"This opens a fenced Java AssertJ example. Assertions shown in documentation do not execute automatically.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:543:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. No command execution exists.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:551:ruby-shell-backtick-execution","reason":"This opens a fenced Java Mockito setup example. It is static code documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:561:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The backticks are not evaluated.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:565:ruby-shell-backtick-execution","reason":"This opens a fenced Java Mockito verification example. It does not invoke external commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:574:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. It is only a Markdown delimiter.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:582:ruby-shell-backtick-execution","reason":"This opens a fenced Java naming example. The sample declarations are not executed.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:588:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. No shell or Ruby runtime is involved.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:592:ruby-shell-backtick-execution","reason":"This opens a fenced Java test-method naming example. It is static documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:601:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The matched token cannot execute a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:609:ruby-shell-backtick-execution","reason":"This opens a fenced Java controller-test example. It contains normal MockMvc test code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:631:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. No external process is launched.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:635:ruby-shell-backtick-execution","reason":"This opens a fenced Java service-test example. It is illustrative source code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:665:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. The Markdown fence is inert.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:669:ruby-shell-backtick-execution","reason":"This opens a fenced Java repository-test example. It does not invoke Ruby or shell commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:694:ruby-shell-backtick-execution","reason":"This closes a fenced Java example. It has no execution behavior.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:721:ruby-shell-backtick-execution","reason":"The backticks format a test-method naming convention in a checklist. They are inline Markdown syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:758:ruby-shell-backtick-execution","reason":"This opens a fenced Bash block containing documented Gradle test commands. The skill does not execute the commands automatically.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:762:ruby-shell-backtick-execution","reason":"This closes the documented Gradle command block. The Markdown delimiter is not command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:766:ruby-shell-backtick-execution","reason":"This opens a fenced Bash block containing documented Maven test commands. There is no automatic execution or untrusted input.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:111:system-reconnaissance","reason":"The match is a Java test method named apply_DecreasesAmount_Success. It performs no system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:137:system-reconnaissance","reason":"The match is a Java rollback test method declaration. It does not inspect the host or environment.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:162:system-reconnaissance","reason":"The match is a Java test method for related database records. No reconnaissance command or API is present.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:181:system-reconnaissance","reason":"The match is a Java test method for a duplicate-account constraint. It does not collect system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:200:system-reconnaissance","reason":"The match is a Java workflow test method declaration. No host reconnaissance occurs.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:227:system-reconnaissance","reason":"The match is a Java event-publication test method. It contains no system discovery behavior.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:247:system-reconnaissance","reason":"The match is a Java order-workflow test method. It does not query host details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:287:system-reconnaissance","reason":"The match is a Java discount-calculation test method. No reconnaissance operation is present.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:320:system-reconnaissance","reason":"The match is a Java payment test method declaration. It does not inspect the system.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:447:system-reconnaissance","reason":"The match is a Java domain test method named activate_Success. No system command or discovery call exists.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:503:system-reconnaissance","reason":"The match is a Java user-creation test method. It contains no reconnaissance behavior.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:555:system-reconnaissance","reason":"The match is a comment describing Mockito handling for void methods. It is not executable reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:596:system-reconnaissance","reason":"The match is an incomplete Java test-method naming example. It cannot inspect the environment.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:600:system-reconnaissance","reason":"The match is an incomplete Java test-method naming example for an exception case. No reconnaissance is present.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:619:system-reconnaissance","reason":"The match is a Java controller test method declaration. It does not collect system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:648:system-reconnaissance","reason":"The match is a Java service test method declaration. No system discovery action exists.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:678:system-reconnaissance","reason":"The match is a Java repository test method declaration. It does not perform host reconnaissance.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"31bc7611b504c197d3e993aef7943461c871616f","subject_content_hash":"055c8e0eb4acec6369a882178470a55026709aec8dc739ed208eb5202195233b","subject_tree_hash":"7be9c6bc7c19f9c3acdf40bede0241d41ae2a4e65ab56188915d15cb99266dc6","subject_plugin_path":"skills/allra-fintech/allra-test-writing","audit_payload_hash":"f1d6b6d8fb245f388aaaadd542c83aa1","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"31bc7611b504c197d3e993aef7943461c871616f","contentHash":"055c8e0eb4acec6369a882178470a55026709aec8dc739ed208eb5202195233b","treeHash":"7be9c6bc7c19f9c3acdf40bede0241d41ae2a4e65ab56188915d15cb99266dc6","pluginPath":"skills/allra-fintech/allra-test-writing","auditPayloadHash":"f1d6b6d8fb245f388aaaadd542c83aa1"},"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/allra-fintech-allra-test-writing/audits/9/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}}