{"id":"cmv1pu58ocyt7ad0692xik8xd","slug":"launch-with-aws","publicId":"6f11a9b0-6d6d-4f51-a645-4fe922b76f5f","name":"launch-with-aws","description":"Migrates vibe-coded web applications to AWS. Handles the full workflow from analysis through migration to deployment, producing deployable AWS Blocks infrastructure code. Supports full-stack apps built with vibe-coding platforms (Lovable, Bolt.new, Replit) and frontend web applications and websites: React, Vue, Angular, Next.js, Nuxt, Astro, SvelteKit, Gatsby, Vite, Svelte, Solid, Docusaurus, and others (static sites, SPAs, and SSR frameworks with static export). Triggers on: launch with AWS, launch on AWS, deploy to AWS, migrate to AWS, host my app on AWS, move my app to AWS, transfer my app to AWS. Activates when the user wants to migrate a vibe-coded app or frontend web app to AWS, even if they don't say 'migrate' explicitly.","version":"5","author":"aws","license":"Apache-2.0","compatibility":"","status":"completed","overallGrade":"F","scannerVersion":11,"fileCount":8,"hasSkillMd":true,"hasScripts":true,"hasReferences":true,"hasEvals":false,"hasAssets":false,"sourceType":"github","sourceUrl":"https://github.com/aws/agent-toolkit-for-aws/tree/main/plugins/aws-core/skills/launch-with-aws","createdAt":"2026-10-10T01:28:45.575Z","completedAt":"2026-10-10T01:28:45.572Z","visibility":"public","publishedAt":"2026-08-25T20:14:56.711Z","category":"","frameworks":[],"badgeStatus":"flagged","downloadCount":0,"verdictRationale":{"summary":"Skill failed: 3 hard fails in security or structure checks.","verdict":"fail","scanners":[{"source":"vettd","weight":1,"verdict":"fail"},{"source":"cisco","weight":0.8,"verdict":"fail"}],"consensus":"fail","warnTriggers":["References external URL — review for indirect prompt injection risk"],"policyVersion":"consensus-v1","hardFailTriggers":["PyPI credential file access","netrc credential file access","Cloud credential file access"]},"verdictPolicyVersion":"consensus-v1","skillId":"cmt93t8sa2zvwad09trn60665","findings":[{"id":"cmv1pu58ocytaad06qsecl3zg","source":"vettd","category":"security","label":"Cloud credential file access","detail":"Detected in scripts/launch_config.py:312 — `\"\"\"Return the AWS region from AWS_REGION, AWS_DEFAULT_REGION, or ~/.aws/config.`","severity":"critical","ruleId":"VTD-0005","owaspLlmCategory":null,"intent":"negligent","chainId":null,"fingerprint":"76ea24386fb5acd94f3efff3d065e712","filepath":"scripts/launch_config.py"},{"id":"cmv1pu58ocytnad06k8c352rc","source":"cisco","category":"security","label":"Direct socket connection to external server","detail":"scripts/launch_config.py:151 — Pattern detected: socket.getaddrinfo(","severity":"critical","ruleId":"DATA_EXFIL_SOCKET_CONNECT","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4e8c2fc24990799f9e0794ddb6ef49be","filepath":"scripts/launch_config.py"},{"id":"cmv1pu58ocyt9ad06ab22wc07","source":"vettd","category":"security","label":"netrc credential file access","detail":"Detected in scripts/archive.py:87 — `\".netrc\",`","severity":"critical","ruleId":"VTD-0012","owaspLlmCategory":null,"intent":"negligent","chainId":null,"fingerprint":"835315f12ca16f024883ba2a3243115b","filepath":"scripts/archive.py"},{"id":"cmv1pu58ocyt8ad06akru6yc6","source":"vettd","category":"security","label":"PyPI credential file access","detail":"Detected in scripts/archive.py:88 — `\".pypirc\",`","severity":"critical","ruleId":"VTD-0008","owaspLlmCategory":null,"intent":"negligent","chainId":null,"fingerprint":"1d1f64e0a0f75096b24b58794d8dfc56","filepath":"scripts/archive.py"},{"id":"cmv1pu58ocytead06k4qqyzue","source":"cisco","category":"security","label":"Active instruction acquires and executes remote content","detail":"SKILL.md:24 — SKILL.md contains an operative statement that explicitly coordinates remote content acquisition with execution.","severity":"high","ruleId":"ACTIVE_REMOTE_ACQUIRE_EXECUTE","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"6126e6fa5cdb13f8fee158414033a58e","filepath":"SKILL.md"},{"id":"cmv1pu58ocytgad06ups28w4q","source":"cisco","category":"security","label":"Infinite loop without clear exit condition","detail":"scripts/archive.py:215 — Pattern detected: while True:","severity":"high","ruleId":"RESOURCE_ABUSE_INFINITE_LOOP","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"0d5398ac61102030428cf7844403508a","filepath":"scripts/archive.py"},{"id":"cmv1pu58ocythad0654cnm0h5","source":"cisco","category":"security","label":"Infinite loop without clear exit condition","detail":"scripts/archive.py:450 — Pattern detected: while True:","severity":"high","ruleId":"RESOURCE_ABUSE_INFINITE_LOOP","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"0d5398ac61102030428cf7844403508a","filepath":"scripts/archive.py"},{"id":"cmv1pu58ocytiad06n7pod4vn","source":"cisco","category":"security","label":"Outbound network request primitives that can transmit data externally","detail":"scripts/archive.py:476 — Pattern detected: urllib.request.Request(","severity":"medium","ruleId":"DATA_EXFIL_NETWORK_REQUESTS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"b638fae85d332ee7c7253fdd20462772","filepath":"scripts/archive.py"},{"id":"cmv1pu58ocytjad06dl8hvub3","source":"cisco","category":"security","label":"Outbound network request primitives that can transmit data externally","detail":"scripts/launch_api_client.py:199 — Pattern detected: urllib.request.Request(","severity":"medium","ruleId":"DATA_EXFIL_NETWORK_REQUESTS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"b6facfe4293d48ef135c4a8113372c94","filepath":"scripts/launch_api_client.py"},{"id":"cmv1pu58ocytlad06int3loar","source":"cisco","category":"security","label":"Outbound network request primitives that can transmit data externally","detail":"scripts/launch_api_client.py:206 — Pattern detected: urllib.request.urlopen(","severity":"medium","ruleId":"DATA_EXFIL_NETWORK_REQUESTS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"b6facfe4293d48ef135c4a8113372c94","filepath":"scripts/launch_api_client.py"},{"id":"cmv1pu58ocytbad06a8nhn88w","source":"vettd","category":"security","label":"References external URL — review for indirect prompt injection risk","detail":"External URL(s) detected in SKILL.md — referenced content can change after audit","severity":"medium","ruleId":"VTD-0088","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42638a8b7e9fc5df27449992eaebc724","filepath":"SKILL.md"},{"id":"cmv1pu58ocytkad06wnzexb6y","source":"cisco","category":"security","label":"Sensitive source reaches a network sink","detail":"scripts/launch_api_client.py:206 — Correlated sensitive_environment → network behavior across scripts/launch_api_client.py, scripts/launch_config.py, scripts/launch_with_aws.py.","severity":"medium","ruleId":"CORRELATED_SENSITIVE_NETWORK_FLOW","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"540c980e9ea80188141e310e0b41249e","filepath":"scripts/launch_api_client.py"},{"id":"cmv1pu58ocytcad06y6542vre","source":"cisco","category":"security","label":"Undeclared network usage","detail":"SKILL.md — Skill code uses network libraries but doesn't declare network requirement","severity":"medium","ruleId":"TOOL_ABUSE_UNDECLARED_NETWORK","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"16553ad68e1e8ade5e1f2387f1770caa","filepath":"SKILL.md"},{"id":"cmv1pu58ocytfad06dhlc8j56","source":"cisco","category":"security","label":"Script contacts a destination the documentation never mentions","detail":"scripts/archive.py:101 — Script contacts or configures 'github' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.","severity":"low","ruleId":"UNDECLARED_NETWORK_DESTINATION","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"ae71577530bf385a45e1592d4a54afb0","filepath":"scripts/archive.py"},{"id":"cmv1pu58ocytmad06pinyyxcj","source":"cisco","category":"security","label":"Script contacts a destination the documentation never mentions","detail":"scripts/launch_config.py:47 — Script contacts or configures 'view.awsapps.com' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.","severity":"low","ruleId":"UNDECLARED_NETWORK_DESTINATION","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4652493a4ea3e895a30cf1f4248a080c","filepath":"scripts/launch_config.py"},{"id":"cmv1pu58ocytdad06daaqatxe","source":"cisco","category":"security","label":"Skill does not specify a license","detail":"SKILL.md — Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.","severity":"info","ruleId":"MANIFEST_MISSING_LICENSE","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"592f7ac7731768f0fd0bba83f30850f9","filepath":"SKILL.md"}],"scannerRuns":[{"source":"cisco","status":"success","verdict":null,"grade":"F","findingCount":12,"criticalCount":1,"highCount":4},{"source":"vettd","status":"success","verdict":null,"grade":"F","findingCount":4,"criticalCount":3,"highCount":3}],"user":{"name":"Justin Pacella","image":"https://avatars.githubusercontent.com/u/97124458?v=4"},"repository":{"owner":"aws","name":"agent-toolkit-for-aws"},"freshness":{"status":"verified_unchanged","reason":null,"retryable":false,"renamedTo":null,"lastCheckedAt":"2026-10-22T02:15:39.493Z","lastVerifiedAt":"2026-10-22T02:15:39.493Z","lastChangeDetectedAt":"2026-10-10T08:51:05.047Z","scannedHash":"6ed18446b13fbbab00f4709597ea9f564d09fdbc","latestUpstreamHash":"6ed18446b13fbbab00f4709597ea9f564d09fdbc","nextCheckDueAt":"2026-10-23T01:10:27.668Z"},"signalCategories":[{"category":"safety","label":"Safety","form":"graded","verdict":null,"rows":[]},{"category":"reliability","label":"Reliability & Quality","form":"graded","verdict":null,"rows":[]},{"category":"performance","label":"Performance","form":"measured","verdict":{"form":"measured","magnitudes":[{"ruleId":"performance/static-context-tokens","label":"Static context tokens","value":3040,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body"}]},"rows":[{"origin":"signal","id":"cmv1pu5gncyuoad066issytfb","subjectType":"skill_audit","subjectId":"cmv1pu58ocyt7ad0692xik8xd","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/progressive-disclosure","severity":null,"label":"Progressive disclosure","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-10T01:28:44.000Z","payload":null},{"origin":"signal","id":"cmv1pu5dycytuad060q4g2orx","subjectType":"skill_audit","subjectId":"cmv1pu58ocyt7ad0692xik8xd","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/static-context-tokens","severity":null,"label":"Static context tokens","detail":null,"valueNum":3040,"valueText":null,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body","derivation":null,"confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-10T01:28:44.000Z","payload":null}]},{"category":"cost","label":"Cost","form":"measured","verdict":null,"rows":[]},{"category":"compatibility","label":"Compatibility","form":"unjudged","verdict":{"form":"unjudged"},"rows":[{"origin":"signal","id":"cmv1pu5gtcyuqad06wrgrpfaz","subjectType":"skill_audit","subjectId":"cmv1pu58ocyt7ad0692xik8xd","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/cli-help","severity":null,"label":"CLI help","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-10T01:28:44.000Z","payload":null},{"origin":"signal","id":"cmv1pu5e5cytwad068hvi31nd","subjectType":"skill_audit","subjectId":"cmv1pu58ocyt7ad0692xik8xd","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-environment-assumptions","severity":null,"label":"Declared environment assumptions","detail":null,"valueNum":null,"valueText":"","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-10T01:28:44.000Z","payload":null},{"origin":"signal","id":"cmv1pu5f6cyu8ad06ooior8oz","subjectType":"skill_audit","subjectId":"cmv1pu58ocyt7ad0692xik8xd","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-name","severity":null,"label":"Declared skill name","detail":null,"valueNum":null,"valueText":"launch-with-aws","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-10T01:28:44.000Z","payload":null},{"origin":"signal","id":"cmv1pu5h8cyuuad06el8a25fp","subjectType":"skill_audit","subjectId":"cmv1pu58ocyt7ad0692xik8xd","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/interactive-prompts","severity":"high","label":"Interactive prompts detected","detail":"Agents run in non-interactive shells — replace prompts with CLI flags or stdin","valueNum":null,"valueText":null,"unit":null,"method":null,"derivation":null,"confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-10T01:28:44.000Z","payload":null},{"origin":"signal","id":"cmv1pu5h1cyusad0664c8ed8c","subjectType":"skill_audit","subjectId":"cmv1pu58ocyt7ad0692xik8xd","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/structured-output","severity":null,"label":"Structured output","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-10T01:28:44.000Z","payload":null}]},{"category":"sentiment","label":"Popularity","form":"unjudged","verdict":null,"rows":[]},{"category":"characteristics","label":"Characteristics","form":"unjudged","verdict":null,"rows":[]}],"signalCount":41,"publisherSupplied":["name","description","author","version","license"]}