{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "teams-channel-post-writer",
  "built": "2026-10-26",
  "control_level": 2,
  "control_level_label": "L2 本地",
  "capabilities": [
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "restrict_working_directory"
    ],
    "admin": [
      "keep_operation_logs"
    ]
  },
  "evidence": [
    {
      "file": "本地工作目录",
      "summary": "File read/write & artifact generation: The draft is written to a local Markdown file by the agent (not by any bundled script): SKILL.md instructs 'Save the final post to you"
    }
  ],
  "verification": {
    "method": "第二遍独立复核（找茬视角）：①glob 清点目录全部文件（含隐藏），确认无 scripts/ 与可执行文件；②逐字读 assets/post-template.md（916 字节全覆盖）与 references/writing-guidelines.md 全文，核对与 SKILL.md 九步流程是否一一对应；③对全目录做安全 token 终扫（urllib/requests/socket/subprocess/eval/exec/os.system/base64/token/secret/.env/~/）并检查 >200 字符无空格长行——零命中；④重新逐条提取『外部资源/工具』候选，确认除『去查官方文档』这一无端点要求外无第二项；⑤核对 marketplace 关键词与正文实际内容是否相符；⑥git 核对 pin commit 与目录最后一次提交。",
    "second_pass": [
      {
        "item": "是否真的没有可执行资产（找反例：隐藏脚本、打包物、内联代码块）",
        "status": "ok",
        "detail": "glob/find 结果仅 3 个 .md 文件；全目录 grep '.py|.sh|#!/|subprocess|urllib|requests|eval(|exec(' 零命中；三个文件中的代码块全部是 Markdown 结构示例（如 '1. What is it? (with release date)'）。无隐藏资产。"
      },
      {
        "item": "『外部资源/工具』是否只有一项（是否漏掉了隐含依赖）",
        "status": "ok",
        "detail": "第一遍只列了『官方文档/changelog（无固定端点）』。第二遍重新逐行核对：SKILL.md 提到 tree/ls 之类工具？无；提到任何 CLI？无；提到任何 URL 或域名？无（grep 'http' 全目录零命中）；提到任何包？无。规范里的外部资源要求是『Link to authoritative external resources when applicable』，由使用者填。结论：外部依赖仅此一项，且无端点可列。"
      },
      {
        "item": "模板与规范是否真的和 SKILL.md 的九步一致（防止文档内部互相矛盾）",
        "status": "ok",
        "detail": "逐项对应：九步的 1-9 全部在 post-template.md 有对应占位（标题/New in [Tool] ([Date])/What is it?/📝Normal+⭐Better/Why use it? + 4 Benefit/Example prompts ×3/Key settings 3 档/Try it next time/Learn more）；规范文件的 Feature Announcements 5 段与 Best Practices 6 段模式是同一结构的两种裁剪，不冲突。"
      },
      {
        "item": "marketplace 关键词是否与正文内容相符",
        "status": "discrepancy",
        "detail": ".claude-plugin/marketplace.json 中该条目 keywords 含 'adaptive-cards'，但全目录 grep 'adaptive'（不分大小写）在 SKILL.md、assets/post-template.md、references/writing-guidelines.md 中零命中：正文只教 Markdown 排版（emoji/粗体/代码块/列表），从未涉及 Microsoft Adaptive Card 的 JSON schema 或发送方式。即登记词超出实际内容，属 marketplace 元数据的轻微夸大；相应地『发到 Teams』这一步在 skill 内没有任何机制或指引（只写 Markdown 文件、由人自行粘贴）。"
      },
      {
        "item": "『Save the final post』这一步是否有落盘机制（是否只是文字要求）",
        "status": "ok",
        "detail": "确认为纯文字要求，无脚本执行：SKILL.md 第 5 步只写 'Save the final post to your team's documentation location with a descriptive filename like \"Claude Code Tips.md\" or \"[Topic Name].md\"'，落盘动作由宿主的文件写入工具完成。因此 security.file_writes 记的是 agent 级行为而非 skill 代码行为，已在字段中如此标注。"
      },
      {
        "item": "pin commit 与 skill.path 是否与任务书一致",
        "status": "ok",
        "detail": "git rev-parse HEAD = d5c4678cb5d4fd6acc9c922690df035dbd33d247；目录位于仓库根，相对路径 teams-channel-post-writer；本目录最后提交 878f947（2026-09-07）。GitHub API 复核 MIT / stars 1392 / pushed 2026-09-15T09:30:04Z。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247",
    "sha256": "9aefc4bf9f7ae3afdd56d80379fa16d7c045e98243b79e02dc0646ad2bdf066f",
    "reviewed_by": null,
    "reviewed_at": null
  },
  "assessed_at": "2026-10-25",
  "method_version": "2.0",
  "mirror": {
    "archive": "https://skillpub.pages.dev/r2/v/2026-09-15/teams-channel-post-writer.tar.gz",
    "sha256": "9aefc4bf9f7ae3afdd56d80379fa16d7c045e98243b79e02dc0646ad2bdf066f",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  },
  "original": {
    "github": "https://github.com/daymade/claude-code-skills/tree/main/teams-channel-post-writer",
    "path": "teams-channel-post-writer",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  }
}