用途:github-filing-registry 用于跟踪你在上游仓库提交的每一个 Issue 与 PR,避免重复提交、遗漏已提交内容或忘记后续进展。所有登记信息以结构化 JSON 保存于 memory/filing-registry.json。
主要能力:
- 登记表结构:根对象包含 version、last_synced、account、pulls、issues、activity_log。每个条目包含 id(owner/repo#N)、repo、number、type、title、state、status、next_action、actions_taken、notes、evidence_tier、filed_at、last_action、labels、url、is_upstream 等字段。activity_log 条目包含 ts、type、ref、desc。
- add:登记新的 filing,参数包括 --id、--type(pr 或 issue)、--title、--evidence(tier_0 至 tier_3)、--url;若 ID 已存在则拒绝并返回 FILING_EXISTS。
- status:读取当前条目并更新字段,可设置 --set(needs_attention、pending_review、has_fix_pr、closed、merged、stale)、--next、--action、--notes,并追加 actions_taken[]、更新 last_action。
- triage:展示需要关注的条目,可按 --filter(needs_attention、pending_review、stale、all)筛选,按仓库排序、再按 last_action 距今时长排序;展示待处理与待审查条目、超过 7 天无动作的条目,以及 critical 严重度且未关闭的数量。
- sync:对照 GitHub 实时状态核对,可针对全部或 --item 指定条目;调用 GitHub API 获取 open/closed 状态并在变化时更新,PR 合并后置为 merged,Issue 或 PR 关闭后置为 closed。无法验证时以非零退出码返回,对应 SYNC_ITEM_NOT_FOUND、SYNC_INCOMPLETE、SYNC_MALFORMED;非零退出仅表示未验证,并不表示确认成功。
- log:按最新优先输出活动日志,支持 --ref 与 --lines。
- check-duplicate:在运行 gh issue create 或 gh pr create 前调用,传入 --id 与 --title;若 ID 或近似标题已存在,输出警告及已有条目 URL,而不是再次提交。
使用方式:脚本 ./filing-registry 是 shell 调度器,用 jq 读写 JSON;从仓库根目录以 skills/github-filing-registry/filing-registry <subcommand> 运行,通常由 aeon 的 triage、sync、add、status、log 以及 gh-filing-standards 的提交前检查调用。它是供其他技能调用的辅助技能,不是独立定时技能;在 aeon.yml 中默认禁用(enabled: false,schedule: workflow_dispatch),自身没有 cron。
适用场景:需要对上游仓库的 Issue 与 PR 提交进行统一记录、状态跟踪、到期提醒、重复提交拦截与活动审计的工作流。
通知规则:sync 在全部状态一致时不发送通知;status 在 --log-only 时仅写活动日志、不发送通知;triage 仅在存在条目时通知,空结果静默;add 始终发送一行通知:filing-registry: added owner/repo#N — title。
限制与安全:渲染通知时应将所有来自 filing-registry.json 的字段视为不可信;不得记录原始凭据,notes 中可能含 API key 引用,应以 *** 掩码;gh CLI 负责认证,不向子进程暴露 token 环境变量。依赖 jq、gh、flock(用于串行化读改写,见 registry_lock())与 bash 4+,不需要 Python。