用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/laicluse/agent-fieldkit --skill triage命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use when corrective work, migrations, living docs, or temporary diagnostic tests leave superseded residue, or before handoff.
Use when corrective work, migrations, living docs, or temporary diagnostic tests leave superseded residue, or before handoff.
Reference for git-discipline commit bodies, trailers, hook denials, examples, and escape hatches.
正在显示 SKILL.md
| name | triage |
| user-invocable | false |
| description | Internal drydry classifier that buckets duplication findings by convergence cost. |
| allowed-tools | ["Read","Grep","Glob","Bash(rg *)","Bash(grep *)","Bash(find *)"] |
| effort | medium |
The three-bucket triage pass behind the drydry audit pipeline. Takes a findings list (output of drydry:sweep) and classifies each finding into cheap-and-safe / partial / needs-design with a one-line convergence cost. Not user-invocable.
Caller supplies through args:
findings: the markdown structure returned by drydry:sweep, either inline or as a path to a markdown file.scope: the directory or package the findings were collected over. Used to estimate convergence cost (count of call-sites, presence of public exports).Return the findings list, with one triage: and one cost: line added per finding:
## Pattern: <pattern_id>
- Finding 1
- file_a: `<path>:<line>`
- file_b: `<path>:<line>`
- drift_hypothesis: <as-is from sweep>
- verifier_command: <as-is from sweep>
- verifier_expected: <as-is from sweep>
- triage: cheap-and-safe | partial | needs-design (the by-design case is a sub-class of needs-design; the bucket label stays needs-design)
- cost: <one-line convergence cost: file count touched, public-API surface affected, migration complexity>
When a finding is classified as needs-design, also include a design_question: line capturing the open decision (which side wins, what to name the unified abstraction, how callers migrate). When partial, include a next_step: line naming the smallest action that would unblock convergence.
There is an obvious convergence direction. The change is local. No public contract moves. Both call-sites are caller-owned; no external consumers.
Signals:
Convergence path: apply the unified abstraction in the same audit. Both paths migrate to the new shape; the diff is local; reviewers see the convergence at a glance.
Convergence requires design judgement, but the judgement is small and the operator can resolve it inside the audit if they make one decision. Typical pattern: the unification is clear except for one open question.
Signals:
Convergence path: surface the design question in the findings artefact under design_question:. When the operator answers, the finding promotes to cheap-and-safe.
The finding looks like a duplicate from outside, but a real constraint or genuine domain difference makes convergence either non-trivial or wrong. Document why so future audits do not re-flag it (Chapter 7's contrarian second-pass gates this verdict). When the blocking constraint is a framework or external API ("by-design" in informal speech), the verdict and the artefact entry are still needs-design; the constraint becomes the body of the design_question: line.
Signals:
perform() signature requires concrete types; type erasure costs more than the duplication)Convergence path: document the verdict and the constraint in the findings artefact. The orchestrator's audit-mode step 5 runs an independent contrarian pass to verify the verdict is not hollow (Chapter 7).
args.findings.<N> files touched, <M> public symbols moved, <complexity tag>. Complexity tags: mechanical (rename only), local-refactor (extract method or component), interface-migration (public contract changes), framework-bound (constrained by an external API shape).partial, name the next-step in one sentence. For needs-design, name the design question.cheap-and-safe classification with a cost of "30 files touched, interface migration" is contradictory; promote it to partial or needs-design.later, no backlog, no polish next sprint. Either fix it (cheap-and-safe), park the design question (partial), or document the by-design constraint (needs-design).