技能日期跟踪实战指南:用 date_added 元数据管理 agentic-awesome-skills 技能集合的生命周期 技能日期跟踪实战指南用 date_added 元数据管理 agentic-awesome-skills 技能集合的生命周期【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,115 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/gh_mirrors/an/agentic-awesome-skills在 agentic-awesome-skills 仓库AAS Core本地 Agent 优先的控制平面聚合了 2,100 个可用的 agentic skills中技能集合的规模持续增长维护者与使用者都需要回答一个基本问题这批技能是什么时候创建或加入集合的答案就藏在每个技能SKILL.md前置元数据frontmatter的date_added字段中。本文以仓库中文维护文档 技能日期跟踪指南 为主体结合 manage_skill_dates.py、generate_skills_report.py 等源码系统讲解date_added的格式规范、批量管理命令、验证器行为、报告生成与 CI/CD 集成方式。读完本文你将掌握一套完整的技能年龄追踪方案能够独立完成从字段编写、批量补录、自动化校验到统计报表产出的全流程。为什么需要 date_added技能集合的可观测性date_added字段允许你在每个技能的前置元数据中记录该技能的创建时间。在 skills-date-tracking.md 中明确列出了它的四类核心用途版本控制了解技能的年龄和成熟度区分久经考验的稳定技能与刚加入的新技能变更日志生成随时间追踪新技能方便按周期产出本月新增技能清单报告分析技能集合的增长曲线评估社区贡献节奏组织按创建日期对技能进行分组例如按季度归档或按版本里程碑梳理。从实现层面看date_added已被完整接入仓库的数据链路。根据 date-tracking-implementation.md当前仓库中该字段的支撑包括验证器 validate_skills.py 检查其格式索引生成脚本 generate_index.py 将其导出到skills_index.jsonnpm run app:setup会把生成的索引复制到apps/web-app/public/skills.json供 Web 应用渲染。这意味着该字段不仅是写给维护者看的注释而是一路贯通到技能索引和 Web 界面的一等公民元数据。格式规范与最小示例date_added使用 ISO 8601 日期格式严格为YYYY-MM-DD例如2024-01-15。它是可选字段但被官方文档列为推荐提供optional, but recommended。在任意技能的SKILL.md前置元数据中加入该字段即可--- name: my-skill-name description: Brief description date_added: 2024-01-15 ---仓库中的真实技能已经普遍采用这一写法例如 ab-testing 技能的前置元数据中即包含date_added: 2026-07-01与name、description、risk、source、license等字段并列。批量管理工具manage_skill_dates.py仓库提供了专门的命令行工具来管理技能日期即 manage_skill_dates.py。它支持四个子命令list、add-missing、add-all、update所有操作都在项目根目录的skills/目录下递归扫描每个含SKILL.md的子目录自动跳过以.开头的隐藏/禁用目录。1. 查看所有技能及其日期python tools/scripts/manage_skill_dates.py list输出示例来自官方文档 Skills with Date Added (example): 2025-02-26 │ recent-skill 2025-02-20 │ another-new-skill 2024-12-15 │ older-skill ... ⏳ Skills without Date Added (example): some-legacy-skill undated-skill ... Coverage: example output only从 list_skills 的实现可以看到已带日期的技能按日期降序排列新技能在前未带日期的技能按名称排序展示末尾输出覆盖率统计Coverage: X/Y (Z%)即带日期技能数占总技能数的百分比——这是衡量补录进度的最直观指标。2. 添加缺失的日期将今天的日期自动填入所有缺少date_added字段的技能python tools/scripts/manage_skill_dates.py add-missing也可以指定一个自定义日期例如批量导入一批历史技能时用统一的上架日期python tools/scripts/manage_skill_dates.py add-missing --date 2026-03-06底层 add_missing_dates 会先通过正则^\d{4}-\d{2}-\d{2}$校验日期格式再遍历技能目录只有元数据中完全不存在date_added键的技能才会被更新已有日期的技能会被跳过并计数最终打印✨ Updated N skills, skipped M that already had dates。3. 添加/更新所有技能若需要一次性为全部技能设置或强制覆盖日期python tools/scripts/manage_skill_dates.py add-all --date 2026-03-06与add-missing不同add_all_dates 不对已有日期做跳过判断而是对每个技能无条件写入指定日期适合在历史数据回填或统一重置场景下使用。4. 更新单个技能只修正某个特定技能的日期python tools/scripts/manage_skill_dates.py update my-skill-name 2026-03-06update_skill_date 会先做同样的日期格式校验再定位skills/skill-name/SKILL.md若技能目录不存在会报❌ Skill not found。工具内部的元数据写回机制理解这三个写操作add-missing/add-all/update共用同一套 update_skill_frontmatter 写回逻辑先用正则^---\s*\n(.*?)\n---提取前置元数据块交给 PyYAML 解析然后合并新元数据再由 reconstruct_frontmatter 按id、name、description、category、risk、source、tags、date_added的优先顺序重排键并序列化回 YAML。这保证了更新日期后关键字段仍然保持在前置元数据块顶部正文内容原样保留不会破坏技能文件的其余结构。此外脚本对路径做了安全约束safe_user_path会将传入路径解析后校验其必须位于当前工作目录仓库根之内防止越界路径操作。脚本依赖_project_paths.find_repo_root自动定位仓库根目录因此只要在仓库任意位置以正确方式调用即可找到skills/目录Windows 下还会强制 UTF-8 输出以保证中文兼容。生成技能统计报告generate_skills_report.py第二个配套工具 generate_skills_report.py 用于产出全量技能的 JSON 报告可直接服务于仪表盘、增长指标和自动化报表。基础用法# 直接打印到标准输出 python tools/scripts/generate_skills_report.py # 保存到文件 python tools/scripts/generate_skills_report.py --output skills_report.json # 按名称排序默认按日期排序 python tools/scripts/generate_skills_report.py --sort name --output sorted_skills.json命令行参数与默认行为如下参数取值默认值说明--output/-o文件路径无打印到 stdoutJSON 报告输出位置--sortdate或namedate排序方式报告结构解读生成的报告包含汇总统计与逐技能明细两个层次示例见 skills-date-tracking.md{ generated_at: 2026-03-06T10:30:00.123456, total_skills: 1234, skills_with_dates: 1200, skills_without_dates: 34, coverage_percentage: 97.2, sorted_by: date, skills: [ { id: recent-skill, name: recent-skill, description: A newly added skill, date_added: 2026-03-06, source: community, risk: safe, category: recent } ] }对照 generate_skills_report 的实现汇总字段generated_at使用datetime.now().isoformat()生成 ISO 时间戳coverage_percentage按skills_with_dates / total_skills * 100四舍五入到一位小数技能明细字段id、name分别回退到目录名date_added若为日期对象会先转 ISO 字符串source、risk缺省为unknowncategory缺省时取id中第一个-前的片段排序逻辑date模式按date_added降序新技能在前缺失日期的技能视作0000-00-00沉底name模式按技能名升序。该报告的典型消费场景包括仪表盘展示、增长指标、自动化报告与数据分析。验证器如何把关捕获非法日期与回归date_added不是写了就算数仓库的验证体系会主动把关。在 validate_skills.py 中可以看到明确的分支逻辑若元数据包含date_added校验其必须是字符串且匹配YYYY-MM-DD正则否则记录错误❌ Invalid date_added format. Must be YYYY-MM-DD若元数据缺失date_added记录提示级信息ℹ️ Missing date_added field (optional, but recommended)即该字段缺失不会导致验证失败但会进入建议清单。这说明date_added是可选但推荐的元数据格式错误会被当作硬性错误拦截而缺失只会产生 advisory 提示与 date-tracking-implementation.md 中date_added是有用元数据但贡献者的准入门槛仍是npm run validate严格校验是遗留数据清理的独立加固目标的定位一致。在 package.json 中确认了相关 npm 脚本# 运行操作验证器格式、内容、安全护栏等 npm run validate # 可选的加固通过把警告升级为错误 npm run validate:strict # 引用验证检查技能内外部引用完整性 npm run validate:references # 运行冒烟测试 npm test这些检查会捕获无效日期、损坏的引用以及相关回归。写入你的工作流创建新技能时无论手动创建还是通过模板生成都应在SKILL.md前置元数据中带上date_added日期为实际创建日--- name: new-awesome-skill description: Does something awesome date_added: 2026-03-06 ---技能结构的完整规范可参考 skill-anatomy.md 与 skill-template.md示例技能见 examples.md。批量导入载入许多技能时当一次性接入大量社区技能时使用批量补录命令用统一的导入日期标记整批技能python tools/scripts/manage_skill_dates.py add-missing --date 2026-03-06这会将指定日期写入所有缺少该字段的技能已带日期的技能保持原样天然适合只补新货、不动存量的导入场景。与 CI/CD 集成把验证与报告生成挂进流水线形成提交即校验、定期出报表的闭环# 在 pre-commit 或 CI 管道中 npm run validate npm run validate:references # 生成统计报告 python tools/scripts/generate_skills_report.py --output reports/skills_report.json在仓库的实际工作流中npm run chain将validate与索引生成、插件兼容性同步、目录构建等串联为一条完整的同步链date_added会随 generate_index.py 同步导出到skills_index.json最终由npm run app:setup复制到apps/web-app/public/skills.json供 Web 应用消费——这意味着 CI 中执行验证命令的同时也在为整条下游数据链路把守格式关口。最佳实践清单官方文档给出了五条维护准则skills-date-tracking.md使用一致的格式始终使用YYYY-MM-DD不要混用MM/DD/YYYY或缺少前导零的写法使用真实日期尽可能反映技能实际创建日期而非随意填写在创建时更新新技能入库当天就写入日期避免事后回溯成本定期验证运行验证器以捕获格式错误防止非法值进入索引查看报告利用生成的 JSON 报告了解集合趋势例如按周/月观察新增量。故障排除Invalid date_added format确保日期严格符合YYYY-MM-DD格式且月份、日期为两位数✅ 正确2024-01-15❌ 错误01/15/2024或2024-1-15缺少前导零也会被正则^\d{4}-\d{2}-\d{2}$拒绝未找到脚本确保从项目根目录运行脚本依赖_project_paths.find_repo_root定位仓库根若工作目录不对将无法找到skills/目录cd path/to/agentic-awesome-skills python tools/scripts/manage_skill_dates.py list未找到 Python需要安装 Python 3.x 环境脚本使用 PyYAML若缺少可参考 tools/requirements.txt 安装依赖。相关文档技能日期跟踪指南英文原文 — 本指南的规范英文版date-tracking-implementation.md —date_added在apps/与tools/重构后各模块中的实现说明技能结构指南 — SKILL.md 完整结构技能更新指南 — 如何更新技能集合示例技能CONTRIBUTING.md — 贡献指南小结date_added为大规模 agentic 技能集合提供了一条轻量而完整的时间轴写入端有格式规范与真实技能范例批量维护端有manage_skill_dates.py的四个子命令校验端有validate_skills.py的正则把关产出端有generate_skills_report.py的 JSON 统计报告数据端则一路贯通至skills_index.json与 Web 应用。无论你是维护者需要掌握集合增长态势还是贡献者希望新技能出生即带档案本文的字段规范、命令清单与源码级细节都能直接落地到你的日常工作流中。【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,115 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/gh_mirrors/an/agentic-awesome-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考