# @adlc/ticket-prune 中文文档

规范地址：https://npmcn.com/package/%40adlc/ticket-prune/

版本：1\.12\.0
npm 元数据更新时间：2026-10-10T03:04:31.291Z
中文译文更新时间：2026-11-06T00:28:39.243Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adlc/ticket-prune
原文对照：https://npmcn.com/package/%40adlc/ticket-prune/?lang=original
项目主页：https://github.com/voodootikigod/adlc/tree/main/packages/ticket-prune#readme
源码仓库：https://github.com/voodootikigod/adlc

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：60.2 kB，9 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：2 个
- 首次发布：2026-07-10T23:29:02.009Z
- 最新版本发布：2026-10-10T03:04:30.962Z
- 近 30 天下载量：8195（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 15 个）

## 中文简介

在.adlc/tickets.json(默认为干线运行)中,报告和档案已停放/发运出票.

## 安装

```sh
npm install @adlc/ticket-prune
```

也可以使用：`pnpm add @adlc/ticket-prune`、`yarn add @adlc/ticket-prune`、`bun add @adlc/ticket-prune`

## README

# 罚单

**ADLC阶段:C12——维护(机床生命周期卫生)**

活性ADLC售票店是可变的工作套. 没有别的东西可以磨了 在售票船之后, 完成的售票会累积 并伪装成 你无法分辨现场工作 交叉核对可达到的目标,并手工合并公关. `ticket-prune` 报告 (和,与 `--write`墓碑),它能确定的票是 stale.

地址 [问题39](https://github.com/voodootikigod/adlc/issues/39)。 。 。 .

## 使用量

```
ticket-prune [--tickets path] [--base-ref ref] [--infer-scope] [--write] [--allow-unsigned] [--json]
```

与 ADLC 编写器一致的默认干线运行(`skill-rot`, (中文(简体) ), `rejection-mining`, (中文(简体) ), `model-ratchet`:它报告它会没有什么 改变商店直到你通过 `--write`{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}在一家罐头店里, `--write` 档案存单通过活动 – 存档交易; a 遗产 `.adlc/tickets.json` 如下文所述,保存这些墓碑.

## 墓葬 (遗存), 不删除 (# 104)

在遗产上 `.adlc/tickets.json` 存储, `--write` 已经 **没有** 删除 stale 罚单或移动到侧式文件。 它又说 `completed: true` 罚单 **内 地点** 并且不会改变其他的。 这是有意的: `.adlc/tickets.json` 这是 铁道保护信托根及其CI门(`scripts/rails-guard-ci.mjs`) 困难 任何公关 _删除_ 或以其他方式变形 基本票。 一个例外 门雕刻的正是加的 `completed: true` 到一张宣布的票 **无栏杆** ——注解给予"零解冻"特权,因此在"零解冻"中安全 普通公关 墓葬是用来制作的 所以是例行公事 prune 合并后没有管理权限 .

一张烂票 **铁栏杆仍然被冻结** 实值 _没有_ 自动取出 `--write`数字 : 完成后,铁轨将从工会中失效(特权解冻) 保护基地管理员仪式的大门 这些票是 报告 **在干燥和写作中** (# 198) — 在 `needsCeremony` 与 `blocker: "rails-freeze"`,所以漂移是可见的 在它阻挡 PR 比较 不只是当你试图写.

## 完成铁路冷冻票(`--ceremony` 已贬值, 第208号

铁路冷冻车票 `needsCeremony` 完成的是一个普通的 PR 绝不然 `rails-guard-ci` 拒绝基于 罚单). 完成在保护基地的检查 `main`, (中文(简体) ), **一个id在一个 时间**,与犬科命令:

```bash
adlc ticket complete <id> --write --authorize --json
```

设计时的平板电脑:它命名了一个ID(没有批量再计算,没有交叉平板电脑爆炸半径)——虽然id自己的版本在运行时仍然被解决,所以在完成之前验证它仍然是真实的;修改后有约束 `--expect` 计划的后续行动) 售票店交易(工作树锁+预期Snapshot CAS),记录 完成证据 `.adlc/manifest.jsonl`,并致力于遗产和 目录存储。 A 类 `preexisting-completed-field` 罚单携带一个 `completed` 价值是某个人故意设定的——它继续报告,而不是覆盖.

`ticket-prune --ceremony` 曾经是作为批量通过,但它没有身份证明和 重算了运行时设定的目标(一个TOCTOU窗口,没有每盘过滤器), 写作时没有记录明显的证据,也没有目录存储支持. 这个 实值 **贬值(# 208)**: 引用它现在失败关闭并重定向到 以上指挥.

## "积分"是如何决定的

这是问题39的未决问题:明确 `status` 选项 从合并的可交付品/PR中推断出票价

1.  **更喜欢明确 `status` 字段当存在时.** @adlc/ 核心票 计划( s)`packages/core/lib/tickets.mjs`)没有宣布 `status` 字段, 不过 `validateTicket()` 也不拒绝未知属性,所以 罚单可以携带一张. `done` 编号 : `closed` 编号 : `complete` 编号 : `completed` 编号 : `archived` 编号 : `shipped` (大小写不敏感)是 stale; 任何其他字符串 值被作为明确的“未完成”对待,并胜过推论 即使门票范围看起来是完全运走的.
    
2.  **否则,只有 `--infer-scope`,从现有范围推断 基础参考.** 没有明确身份的罚单,只有申报在 至少一个 `scope` 阴影 _财务报告和审定财务报表_ 每个被宣布的光彩至少决定一个 跟踪到的文件 `--base-ref` (默认) `HEAD`,通过 `git ls-tree`) (中文(简体) ). 一张票 没有宣布的范围 永远不会被推断为 stale —— 据报道它一直活动到 明确的地位解决它.
    

**推论是默认关闭的(# 779).** 范围的存在不能证明 一张票的作品落地:它问道: `packages/core/**` 匹配跟踪文件?", 任何比罚单积存时间长的退票 票是真实的 作者——目录已经存在. 没有检查范围文件 _已更改_这张票创造了他们 或者这张票曾经进入过 建设。 默认情况下 它把这回宝206张门票中的179张归类为呆账票, 其中有23个没有铁轨,因此由 `--write` 所有23个开放式工作 ——而运行打印出成功行并退出 0. 因此,默认的答案来自作者获取 `status` 独自一人,还有一位召唤者 它想要弱者 的信号要求它的名字。 文本报告和 `--json` 说哪个分类者创造了数.

**为什么"镜/道+一个关闭的公关引用"??** 问题浮出PR 作为佐证信号的参考文献。 这雷波的票计划没有场地 记录公关号码 承诺信息协议不可靠 足够从历史推断出:a `git log --oneline` 关于这方面的调查 repo 显示不连贯的车票编号 直接(例如:. `(T13/T14)`),但打开代码 `T1`\- 说吧`T5` 车票运输 PRs (# 27- Q- 31) 引用“ A/B/C/E阶段” , 绝对不会在 都说吧 因此,盗取票证的历史 _错过_ 完全一样的僵硬 罚单 自己的工作例子 被写到捕捉。 存在范围 对照履带文件的快照是决定性的,不需要模糊的文字 匹配,并且正是这个问题的实践实例手工做的检查.

## 旗帜

| 旗帜 | 说明 |
| --- | --- |
| `--tickets <path>` | 车票存储控制器 默认自动检测器被压缩 `.adlc/tickets/` 遗产 `.adlc/tickets.json`。 。 。 . |
| `--base-ref <ref>` | 检查已申报的 Git ref `scope` 阴影反对( 默认) `HEAD`) (中文(简体) ). 点到 `origin/main` 审计一个功能分支的门票 与已经运出在干线上的东西. |
| `--infer-scope` | 启用范围存在扭曲推断( 默认) **关**, 第779页. 没有它,只有明显的完成形状 `status` 做一张烂票. |
| `--write` | 墓石铁道无渣票:加 `completed: true` 保存在遗留的平面文件商店(从未删除,也从未变异出任何其他字段); 移动到 `.adlc/ticket-archive/` 在被压碎的商店。 铁路冷冻已停售的车票没有动过,按下列方式报告: `needsCeremony`。 。 。 . |
| `--allow-unsigned` | 让一个 `--write` 对被冻结的信任根记录 `ADLC_MANIFEST_KEY` 设置(先警告;未签名的条目是永久的)。 合同与 `adlc ticket --allow-unsigned`。 。 。 . |
| `--ceremony` | **已贬值(# 208).** 关闭失败并重定向到 `adlc ticket complete <id> --write --authorize --json`铁路冷冻车票通过该指令完成每张车票,而非在此批量完成. |
| `--json` | 机器可读 `{ baseRef, write, ceremony, inferScope, stale[], active[], tombstoned[], archived[], ceremonyCompleted[], needsCeremony[], blocked[] }`。 。 。 . |

`--json` 字段 : `archived[]` 列出入场券 `--write` 从活动目录存储中移出( e)`.adlc/tickets/`),所以在那个商店,不是 `tombstoned[]`,记录变化; `tombstoned[]` 列出位置 `completed: true` 墓碑 `--write` 在遗留的平面文件商店上添加(`.adlc/tickets.json`(三); `blocked[]` 列出没有存档的旧票,因为批次外的一张票仍然提到它们; `ceremony` 总是 `false` 财务报告和审定财务报表 `ceremonyCompleted[]` 一直空着 `--ceremony` 已贬值(# 208) , 两者都保留以兼容 .

## 退出代码

| 代码 | 含义 |
| --- | --- |
| `0` | 报告或墓碑成功——不管找到多少张破门票. 这是咨询( 如 `model-ratchet`),不是通/故障门:烂票是杂乱的,不是合并阻塞. |
| `1` | 操作出错——出错/漏票文件,JSON无效,无法解决 `--base-ref`,无法获取写入锁,或者已贬值 `--ceremony` 被引用(重定向). |

## 实例

```bash
# Report stale tickets on the currently checked-out ref (dry-run, default).
# Stale here means an explicit done-shaped `status` — nothing is inferred.
ticket-prune

# Tombstone the rails-less stale tickets found above (completed:true in place).
# Same classifier as the dry run above, so what you reviewed is what it writes.
ticket-prune --write

# Audit against main from a feature branch. --infer-scope is what makes this an
# audit rather than a status report: it also treats a ticket whose declared scope
# fully resolves as shipped. That signal is WEAK — it is true the moment a ticket
# is authored on a repo older than its backlog — so this is a review aid. Confirm
# each id by hand and complete it per-ticket; do not pair --infer-scope with
# --write to archive in bulk on the strength of it (#779).
ticket-prune --base-ref origin/main --infer-scope --json

# Admin, on a protected-base checkout of main: complete a rail-freezing shipped
# ticket, expiring its rails (T36). Per-ticket, records manifest evidence, both
# backends. (ticket-prune --ceremony is deprecated — see #208.)
adlc ticket complete <id> --write --authorize --json
```

## 锁定和原子化

在破烂的商店里, `--write` 使用卡通售票服务的工作树锁, hash CAS, 日记, 证据, 和活性/ 存档交易 。 遗产桥 保留共享 `.adlc/tickets.lock` 加上档案第一原子替换 同步和prune不比赛 一张票永远不会从两个商店消失。 下 锁定工具在写入前重新读取并重新分类, 所以一张票又一张 编剧未被困入赛道窗口 从未被挤出.

## 与兄弟姐妹工具的关系

-   **`@adlc/ticket-sync`** - 从外部写/读活动票店 跟踪器; 共享相同的锁定路径, 所以同步和prune 永不中断 .
-   **`model-ratchet` 编号 : `skill-rot`** ——其他由衰变驱动,由干跑倒计时 接入的维修检查 `/adlc-maintain`· ; `ticket-prune` 沿着 同一报告合同.

## 兼容性

新建寄存器归档以通过 : `@adlc/tickets`旧的 平面活性/存档配对仅可写作1.x相容路径; 使用情况 `adlc ticket store migrate` 预览仅用于表达式的迁移.

## 常见问题

### @adlc/ticket-prune 是什么？

在\.adlc/tickets\.json\(默认为干线运行\)中,报告和档案已停放/发运出票\.

### 如何安装 @adlc/ticket-prune？

在项目目录运行 npm install @adlc/ticket-prune，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ticket-prune，可以用 npx ticket-prune 直接运行。

### @adlc/ticket-prune 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/adlc\_\_ticket-prune 是否存在。

### @adlc/ticket-prune 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @adlc/ticket-prune 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @adlc/ticket-prune 可以商用吗？

@adlc/ticket-prune 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @adlc/ticket-prune 的下载量有多少？

根据 npm 官方下载统计，@adlc/ticket-prune 在 2026/10/05 – 2026/11/03 这 30 天内被下载 8,195 次，日均约 273 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @adlc/ticket-prune 还在维护吗？

最新版本 1\.12\.0 发布于 2026/10/10（27 天前）；至今共发布 15 个版本，其中过去 12 个月发布了 15 个；首次发布于 2026/07/11。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

