# @columenlabs/lumen-ship 中文文档

规范地址：https://npmcn.com/package/%40columenlabs/lumen-ship/

版本：0\.1\.219
npm 元数据更新时间：2026-11-09T05:43:57.837Z
中文译文更新时间：2026-11-10T11:33:04.626Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40columenlabs/lumen-ship
原文对照：https://npmcn.com/package/%40columenlabs/lumen-ship/?lang=original
项目主页：https://github.com/columenlabs/lumen
源码仓库：https://github.com/columenlabs/lumen

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

- 包体积（解压后）：47 kB，17 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-10-24T20:19:49.187Z
- 最新版本发布：2026-11-09T05:43:57.660Z
- 近 30 天下载量：42548（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：192（近 12 个月 192 个）

## 中文简介

鲁门通运包:放出便条,"什么是"新变换日志","放出护卫"和"行为检查".

## 安装

```sh
npm install @columenlabs/lumen-ship
```

也可以使用：`pnpm add @columenlabs/lumen-ship`、`yarn add @columenlabs/lumen-ship`、`bun add @columenlabs/lumen-ship`

## README

# @columenlabs/lumen-ship (中文(简体) )

卢门的运货包:一个发布命令,每个发布者与克洛德一起写笔记,变更日志 新的读物, 和lint守护每一个Lumen应用程序运行。 巴什外加一个小型的TypeScript读取器,没有框架.

-   文档 : [https://lumen.columenlabs.com/docs/ (中文(简体) )](https://lumen.columenlabs.com/docs/)
-   对于代理人: [https://lumen.columenlabs.com/llms.txt (中文(简体) )](https://lumen.columenlabs.com/llms.txt)
-   资料来源: [https://github.com/columenlabs/lumen (中文(简体) )](https://github.com/columenlabs/lumen) (单位:千美元)`packages/ship`麻省理工学院.

## 安装

```bash
bun add -d @columenlabs/lumen-ship
```

把它固定在与其他卢门软件包相同的准确版本. 命令需求 `bash`, (中文(简体) ), `git`, (中文(简体) ), `gh` (有REST 访问回转), `jq` 财务报告和审定财务报表 `curl`。 。 。 .

## 释放

`lumen-ship release` 切除 Repo 的 GitHub 释放。 从 repo 根运行, 每次合并到 `main` (CI工作)或用手进行.

| 命令 | 它会做什么 |
| --- | --- |
| `lumen-ship release` | 一个补丁发布时间 `main` 一次 `cadence.every` 合并自最新发布标记或第一次合并后登陆 `cadence.days` 过了几天. `FORCE=1` 现在就剪了 |
| `lumen-ship release minor` | 标记 `main` 作为下一个未成年人。 它的笔记是手写的 `docs/releases/v<major>.<minor>.0.md`,必须打开 `main` |
| `lumen-ship release notes` | 再次从文件中设置最新的未成年人笔记 |
| `lumen-ship release tag v1.2.3` | 使已经存在的标签发布(对于一个先给标签的发布工作). `REDO=1` 又写笔记 |

`DRY_RUN=1` 显示它会做什么 并创造什么.

### 页:1

Claude写下每个释放的笔记 从之前的拖拉请求(承诺在没有的情况下站立),从你的提示。 只有在完整时才会发布回复:任何被截断,拒绝或失败的东西都会再次被问到,最多3次,然后发布失败. 无 `ANTHROPIC_API_KEY` 这些笔记是GitHub自己的拉动请求列表.

设定 `LUMEN_FORBIDDEN_NAMES` (regex交替, `A|B`)在公开回放中:注意名称一再次被问出而从未被公布,拉出请求列表只显示数字.

### 新的更改日志

与 `changelog.path` 设定,每个发行的密钥外卖 也承诺 `main` 作为JSON,最新的第一, 和标记继续 承诺,所以释放部署自己的笔记。 每个取走的子弹会用标记打开:类型标记(`[Feature]`, (中文(简体) ), `[Improvement]`, (中文(简体) ), `[Fix]`, (中文(简体) ), `[Performance]`, (中文(简体) ), `[Security]`)成为其芯片和标签,列在 `changelog.apps` 成为它的 `apps`。在您的提示中询问:

```md
- [Fix] [Console] **Exports finish**: ...
```

```json
[{ "tag": "v0.3.2", "published_at": "2026-10-24T18:00:00Z",
   "takeaways": [{ "text": "**Exports finish**: ...", "types": ["fix"], "apps": ["console"] }] }]
```

交给他 `WhatsNew` (单位:千美元)`LumenShell`是因为 `releases` 与读者:

```ts
import { RELEASES_HEADERS, listReleases, type Release } from '@columenlabs/lumen-ship/releases';
import changelog from './changelog.json';

app.get('/api/releases', (c) =>
  c.json(
    { releases: listReleases(changelog as Release[], {
        limit: c.req.query('limit'),
        before: c.req.query('before'),
        canSee: (apps) => apps.some((a) => mayOpen(c, a)),   // optional
      }) },
    200,
    RELEASES_HEADERS,
  ),
);
```

`listReleases` 最新第一页`limit` 1至50起,20起违约; `before` iSO 时间)和 `canSee`保留一些应用程序的外卖 只给可能打开其中一台的人.

### `lumen-ship.json`

在 repo 根(或路径在 `LUMEN_SHIP_CONFIG`:

```json
{
  "repo": "owner/name",
  "notes": { "prompt": ".github/release-prompt.md", "model": "claude-sonnet-5-5", "maxTokens": 16000 },
  "changelog": { "path": "src/changelog.json", "apps": { "console": "console", "api": "api" } },
  "tags": "v0.*",
  "promote": "release",
  "cadence": { "every": 10, "days": 7 }
}
```

| 密钥 |  |
| --- | --- |
| `repo` | GitHub重新发布 继续。 需求 |
| `notes.prompt` | 带有提示的文件; `{tag}` 成为发行的标签。 需求 |
| `notes.model`, (中文(简体) ), `notes.maxTokens` | 模型及其输出限制(模型先想,所以保持大) |
| `changelog.path` | 新的JSON生活的地方 `main`; 退出, 无更改日志 |
| `changelog.apps` | 标签( 更小的例) — app id, 用于一个应用程序的外卖 |
| `tags` | 释放标记作为一个git glob, `v[0-9]*` 默认; 当另一个方案的旧标记排序更高时缩小 |
| `promote` | 每个新发行的分会(一个生产部署分会,例如) |
| `cadence.every`, (中文(简体) ), `cadence.days` | 补丁到期后. `RELEASE_EVERY` 覆盖 `every` |

## 林特警卫

```bash
lumen-ship check kit-neutral [paths]   # no name from LUMEN_FORBIDDEN_NAMES (default: src package.json README.md)
lumen-ship check suppressions          # a useExhaustiveDependencies suppression needs a reason of 3+ words
lumen-ship check settings-copy         # a Settings section description is one plain line of 64 characters or less
lumen-ship check magic-numbers         # hard-coded px/rem class values may only go down
lumen-ship check parts <folders>       # the kit's part pages: hint-text, text-action, raw-overlay, settings-page may only go down
```

从文件夹中逐一运行 `lint` 脚本; 运行 `parts` 从带应用程序文件夹的 repo 根中(`lumen-ship check parts apps/*/web/src`) (中文(简体) ). `magic-numbers` 读repo的 `scripts/magic-numbers.baseline` (或 `LUMEN_SHIP_BASELINE`: 一个 `<folder> <count>` 一条线,在变化中降低,删除一条. `parts` 读取 `scripts/parts.baseline` (或 `LUMEN_SHIP_PARTS_BASELINE`: 一个 `<folder> <rule> <count>` 线条; `--write-baseline` 写今天的计数 在第一次运行。 每个规则都会被解释, 写什么代替,在 [https://lumen.columenlabs.com/parts/README.md (中文(简体) )](https://lumen.columenlabs.com/parts/README.md)。 。 。 .

## 行为检查

`@columenlabs/lumen-ship/behavior` 检查一个应用程序的持久对象在一段时间内是如何运行的,而不命名任何错误 。 一个理智的运行在模拟的时钟上驱动本地运行时间的应用程序,记录每个钟点,并让每个商店保持同样的生命迹象.

-   `simClock()` 替换全局 `Date` 有时钟,运行向前. `SimAlarms` 保持每个商店的警报 而不是运行时间, 所以没有火实时。 跑跑将时钟跳到最早期的警报,发射后再重复,所以模拟的一天需要几秒钟.
-   `judge(wakes, { from, to, stopped }, limits?)` 读取记录 `Wake`s 和返回数 `numbers` (对主音)和 `broken` (每个重要标志被打破,用平话来说) 纯:没有运行时间,没有I/O.

| 重要标志 | 断时( 默认在 `VITALS`(中文(简体) ) |
| --- | --- |
| 醒来 | 12多小时后醒来,一无所有,一无所有 |
| 快速闲置 | 超过5个无所事事的钟声 一个小时后就响起下一个警报 |
| 唤醒率 | 120多小时后醒来 工作与否 |
| 过去警钟 | 唤醒在自己的时间之前设置了警报 |
| 每行钟声 | 读取或写出一万行 |
| 每日行数 | 一个店一天读了八百多行,或者写了四十多行 |
| 解决 | 过去6小时 仍然醒了12个多小时 |
| 错误 | 已丢出或记录出错 |
| 逃跑 | 一天结束前的两千个醒来 跑步停止了 |

```ts
import { judge, type Wake } from '@columenlabs/lumen-ship/behavior';

const { numbers, broken } = judge(wakes, { from, to, stopped });
if (broken.length) console.log(broken.map((b) => `${b.rule}: ${b.detail}`).join('\n'));
```

给它不同的起步状态,而不是失败案例:一个返回的用户商店,30天后同一个商店,第一次访问. 一个循环,一个逃跑的读取或被卡住的工作,然后自己打破一个至关重要的标志,不管是什么原因造成的.

## 版本数

0.x:任何未成年人可以断裂到1.0. 每次和鲁门合并 `main` 发布每个 Lumen 软件包的下一个补丁;参见 [释放](https://github.com/columenlabs/lumen/releases)。 。 。 .

## 常见问题

### @columenlabs/lumen-ship 是什么？

鲁门通运包:放出便条,"什么是"新变换日志","放出护卫"和"行为检查"\.

### 如何安装 @columenlabs/lumen-ship？

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

### @columenlabs/lumen-ship 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @columenlabs/lumen-ship 支持 ESM 还是 CommonJS？

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

### @columenlabs/lumen-ship 可以商用吗？

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

### @columenlabs/lumen-ship 的下载量有多少？

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

### @columenlabs/lumen-ship 还在维护吗？

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

