{"id":"cmuxjxt9g1dzfad072ec1fv6g","slug":"teams-app-developer","publicId":"3387db91-84b0-4980-860a-12bcea8cf699","name":"teams-app-developer","description":"Builds, tests, and deploys Microsoft 365 apps and agents for Teams and Copilot. Includes sub-skills for project creation, local testing, cloud deployment, troubleshooting, and Slack-to-Teams migration. USE FOR: Teams agent, bot, tab, message extension, Declarative Agents, Custom Engine Agents, local testing, Agents Playground, Azure resource provision, remote deployment, Slack to Teams migration, cross-platform bot development, Block Kit to Adaptive Cards conversion. DO NOT USE FOR: general web development, non-bot/non-Teams projects.","version":"","author":"microsoft","license":"MIT","compatibility":"","status":"completed","overallGrade":"F","scannerVersion":11,"fileCount":148,"hasSkillMd":true,"hasScripts":false,"hasReferences":false,"hasEvals":false,"hasAssets":false,"sourceType":"github","sourceUrl":"https://github.com/microsoft/skills/tree/main/.github/plugins/microsoft-365-agents-toolkit/skills/teams-app-developer/","createdAt":"2026-10-07T03:32:34.075Z","completedAt":"2026-10-07T03:32:34.072Z","visibility":"public","publishedAt":"2026-08-06T00:12:56.677Z","category":"","frameworks":[],"badgeStatus":"conditional","downloadCount":0,"verdictRationale":{"summary":"Skill failed: 0 hard fails in skill checks.","verdict":"fail","scanners":[{"source":"vettd","weight":1,"verdict":null},{"source":"cisco","weight":0.8,"verdict":"warn"}],"consensus":"warn","warnTriggers":[],"policyVersion":"consensus-v1","hardFailTriggers":[]},"verdictPolicyVersion":"consensus-v1","skillId":"cmsgri9y901wwad077iqnwhun","findings":[{"id":"cmuxjxt9h1dzlad07jfeqf36m","source":"cisco","category":"security","label":"Archive extraction followed by execution","detail":"test-playground/playground.md:14 — An archive is extracted and its contents are then executed. This pattern can deliver and run malicious payloads hidden in archives.","severity":"high","ruleId":"COMPOUND_EXTRACT_EXECUTE","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"9f68a97adc9aa9a34d86cae8a9d45f09","filepath":"test-playground/playground.md"},{"id":"cmuxjxt9g1dziad07pvfnkp1s","source":"cisco","category":"security","label":"Dangerous data flow in command pipeline","detail":"experts/models/oss-openai-compatible-ts.md:1 — Pipeline downloads data from the network and executes it: `curl -fsSL https://ollama.com/install.sh | sh`. This is a remote code execution pattern.","severity":"high","ruleId":"PIPELINE_TAINT_FLOW","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"52dc861a13bf938afd24bcf9da63e60b","filepath":"experts/models/oss-openai-compatible-ts.md"},{"id":"cmuxjxt9h1dzkad07f0ol2fpb","source":"cisco","category":"security","label":"Dangerous data flow in command pipeline","detail":"experts/slack/cli.getting-started.md:1 — Pipeline downloads data from the network and executes it: `curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash`. This is a remote code execution pattern.","severity":"high","ruleId":"PIPELINE_TAINT_FLOW","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"d8725df724a2dc5465621fbd2a4bdf6e","filepath":"experts/slack/cli.getting-started.md"},{"id":"cmuxjxt9g1dzjad07n2cexu9h","source":"cisco","category":"security","label":"Dangerous data flow in command pipeline","detail":"experts/slack/cli.getting-started.md:1 — Pipeline downloads data from the network and executes it: `irm https://downloads.slack-edge.com/slack-cli/install-windows.ps1 | iex`. This is a remote code execution pattern.","severity":"high","ruleId":"PIPELINE_TAINT_FLOW","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"d8725df724a2dc5465621fbd2a4bdf6e","filepath":"experts/slack/cli.getting-started.md"},{"id":"cmuxjxt9h1dzmad07l63l17zo","source":"cisco","category":"security","label":"Dangerous data flow in command pipeline","detail":"troubleshoot/troubleshoot.md:2 — Pipeline downloads data from the network and executes it: `curl -s https://raw.githubusercontent.com/OfficeDev/microsoft-365-agents-toolkit/dev/.github/scripts/install-agentsplayground-linux.sh | bash`. This is a remote code execution pattern.","severity":"high","ruleId":"PIPELINE_TAINT_FLOW","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"c5ff126403ca048388628737677a6da8","filepath":"troubleshoot/troubleshoot.md"},{"id":"cmuxjxt9g1dzgad070vruntbm","source":"cisco","category":"security","label":"Skill package contains many files","detail":". — Skill package contains 148 files. Large file counts increase attack surface and may indicate bundled dependencies or unnecessary content.","severity":"low","ruleId":"EXCESSIVE_FILE_COUNT","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"0e5dbe855e5da49272840d5db00e1a2c","filepath":"."},{"id":"cmuxjxt9g1dzhad07b71khgh1","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":7,"criticalCount":0,"highCount":5},{"source":"vettd","status":"success","verdict":null,"grade":"A","findingCount":0,"criticalCount":0,"highCount":0}],"user":{"name":"Justin Pacella","image":"https://avatars.githubusercontent.com/u/97124458?v=4"},"repository":{"owner":"microsoft","name":"skills"},"freshness":{"status":"verified_unchanged","reason":null,"retryable":false,"renamedTo":null,"lastCheckedAt":"2026-10-22T09:21:40.648Z","lastVerifiedAt":"2026-10-22T09:21:40.648Z","lastChangeDetectedAt":"2026-08-14T15:37:28.695Z","scannedHash":"164d327f3039e037b0ad2cdabeee01e2c6aa6d3f","latestUpstreamHash":"164d327f3039e037b0ad2cdabeee01e2c6aa6d3f","nextCheckDueAt":"2026-10-23T10:33:59.067Z"},"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":1469,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body"}]},"rows":[{"origin":"signal","id":"cmuxjxxw41ex2ad07q65k1gcd","subjectType":"skill_audit","subjectId":"cmuxjxt9g1dzfad072ec1fv6g","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/progressive-disclosure","severity":null,"label":"Progressive disclosure","detail":null,"valueNum":null,"valueText":"absent","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:32:23.000Z","payload":null},{"origin":"signal","id":"cmuxjxu441e65ad07cmf0qdzp","subjectType":"skill_audit","subjectId":"cmuxjxt9g1dzfad072ec1fv6g","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/static-context-tokens","severity":null,"label":"Static context tokens","detail":null,"valueNum":1469,"valueText":null,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body","derivation":null,"confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:32:23.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":"cmuxjxuez1e8kad071k07zqyp","subjectType":"skill_audit","subjectId":"cmuxjxt9g1dzfad072ec1fv6g","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-07T03:32:23.000Z","payload":null},{"origin":"signal","id":"cmuxjxw431ekcad07mr9edih6","subjectType":"skill_audit","subjectId":"cmuxjxt9g1dzfad072ec1fv6g","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-name","severity":null,"label":"Declared skill name","detail":null,"valueNum":null,"valueText":"teams-app-developer","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:32:23.000Z","payload":null}]},{"category":"sentiment","label":"Popularity","form":"unjudged","verdict":null,"rows":[]},{"category":"characteristics","label":"Characteristics","form":"unjudged","verdict":null,"rows":[]}],"signalCount":30,"publisherSupplied":["name","description","author","version","license"]}