Wjs Auditing Project — Wjs 审计项目
v1.4.0当用户要求审计项目中存在的问题时,使用此功能,如“解决问题”,“看看项目出了什么问题”,“为什么用户的需求还没上线”,“为什么没提交App Store”,“为什么没新build”,或想要对项目进行整体检查,包括未合并的分支、停滞的PRs、失败的GitHub Actions、过时的build、计划偏差(TODOS.md / ROADMAP)、未发布的commits和日志错误。运行只读调查,呈现分组的检查清单,只有在用户明确确认后才进行修复。了解Cathier iOS app工作流(Xcode + fastlane + auto-merge @claude PRs from in-app feedback)。
运行时依赖
版本
fastlane/ 未修改,但计划表明 App Store 截止日期已过,显示截止日期和最后提交日期;用户决定优先级
安装命令
点击复制技能文档
wjs-auditing-project 概述 整体项目状态审计。找到所有停滞、破损或偏离计划的内容 — 然后在用户确认清单后共同修复。 严格的两阶段分离:调查 → 展示分组清单(只读;无提交、合并、推送) 修复 — 只有在用户明确确认要执行的操作后 永远不要合并阶段。用户希望在任何操作之前看到完整的图景。 “直接去修复一切”是可以的确认,但您仍然需要先生成清单,以便他们可以扫描。
何时使用 “看看现在的项目到底出了什么问题” / “make it right” / “what's broken” “为什么我的反馈还没上线” “为什么很久没有新 build / 没提交 App Store” “有没有 PR / 分支没合” 在离开项目一段时间后返回 在发布 / TestFlight 推送之前,确保没有任何悬挂的内容
第 1 阶段 — 调查(并行) 运行所有只读检查,在一条消息中使用并行的 Bash 调用。 不要询问用户哪一个要运行;运行所有。 许多将返回“没有问题” — 这是可以的,这些只是不出现在清单中。
A. 工作树和 stashes git status — 未提交的工作? git stash list — 忘记的 stashes? git branch -vv — 本地分支,ahead/behind 跟踪 git log --oneline main..HEAD — 当前分支中不在 main 中的内容 git fetch origin --prune && git log --oneline HEAD..@{upstream} — 远程中不在本地的内容 git branch -r --merged main 和 git branch -r --no-merged main — 远程分支仍然悬浮
B. 开放/草稿 PRs gh pr list --state open --json number,title,isDraft,mergeable,mergeStateStatus,updatedAt,author,headRefName 对于任何 PR older than 7 天或 mergeStateStatus ≠ CLEAN:捕获失败的检查通过 gh pr checks 自动合并 bot PRs(根据内存:in-app 反馈 → @claude PR → 自动合并): gh pr list --author "app/claude" --state all --limit 20 — 是否有合并但尚未在 TestFlight 构建中?是否有卡住的开放 PR?
C. CI / GitHub Actions gh run list --limit 20 --json conclusion,name,headBranch,createdAt,databaseId,event gh run list --status failure --limit 10 — 特定失败 对于每个失败的 main 或开放 PR 的分支: gh run view --log-failed | tail -100 以捕获实际错误
D. 已发布与未发布的工作(Cathier 的 iOS 特定内容) grep -E "MARKETING_VERSION|CURRENT_PROJECT_VERSION" .xcodeproj/project.pbxproj | sort -u — 当前版本 + 构建号 git tag --sort=-creatordate | head -5 — 最近的发布标签 git log --oneline ..main — 自上次标记发布以来提交的内容 检查 fastlane/ 配置和 fastlane/report.xml(如果存在)以获取最后一次 pilot / deliver 调用 git log -1 --format="%ai %s" -- fastlane/ — 最后一次 fastlane 更改 git log --all --grep="bump\|version\|build" -10 --oneline — 最近的版本 bump
E. 计划偏差 读取 TODOS.md、CHANGELOG.md、APP_STORE_SUBMISSION_GUIDE.md、ROADMAP.md、docs/plan.md(如果存在) 交叉引用计划项与已发布的提交 — 列出的内容但尚未完成?哪些日期已经过去? grep -rn "TODO\|FIXME\|XXX" --include=".swift" . — 源代码中的偏差标记
F. 应用/系统日志 ls -t ~/Library/Logs/DiagnosticReports/Cathier 2>/dev/null | head -5 — 应用的最近崩溃报告 log show --predicate 'process == "Cathier"' --last 1d --style compact 2>/dev/null | grep -iE "error|fault" | head -20 — 最近的运行时错误(如果没有在此 Mac 上安装,则静默跳过) ls -t ~/Library/Developer/Xcode/DerivedData//Logs/Build/.xcactivitylog 2>/dev/null | head -3 — 最后一次构建尝试(存在 + mtime;不尝试解析)
G. 用户反馈 根据内存:in-app 反馈创建 @claude PRs 自动合并到 main。 为了回答“为什么我的反馈没有在应用中显示”: 是否从反馈创建了 PR?(gh pr list --author "app/claude" --state all) 是否合并?(检查 PR 状态) 是否有比合并提交更新的 TestFlight/App Store 构建? 如果 3 = 否,则这是答案:合并到 main 但从未构建/提交。
呈现清单 输出一个分组的 markdown 清单。 每个项必须包含: 什么是错误的 证据(数字/日期/文件路径) 一个提议的操作,以便用户可以说是/否。 按紧急程度分组:
我发现的内容
🔴 阻塞(这些阻塞所有其他内容)
- [ ] PR #42 “添加笑话重设计”:3 个失败的检查(SwiftLint、构建、测试)。最后一次提交 2026-04-30。 → 读取日志、修复、推送?
- [ ] main 比上次标记 v1.4.0(2026-03-22)提前 7 次提交。从那时起没有 TestFlight 构建。 → 标记 v1.5.0 并准备发布说明?
🟡 开放工作
- [ ] 本地分支
home-simplification有 5 次提交,没有开放 PR,最后活动 2026-05-08。 → 对 main 开放 PR? - [ ] 2026-04-02 的 stash “WIP:脑力训练统计”。 → 显示差异并决定丢弃/应用?
🟢 计划偏差(TODOS.md / fastlane)
- [ ] TODOS.md 第 14 行:“在 2026-04-30 之前提交 App Store 构建” — 过期 11 天,没有
fastlane pilot调用自 2026-03-12。 - [ ] TODOS.md 第 22 行:“在连胜页面上连接触觉反馈” — 没有在 main 中找到匹配的提交。
- [ ] 2 个自动合并的 @claude PRs (#88、#91)来自 in-app 反馈。