# linmas 中文文档

规范地址：https://npmcn.com/package/linmas/

版本：0\.9\.2
npm 元数据更新时间：2026-11-04T00:20:48.193Z
中文译文更新时间：2026-11-04T02:10:52.623Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/linmas
原文对照：https://npmcn.com/package/linmas/?lang=original
项目主页：https://github.com/TanKimGwan/linmas#readme
源码仓库：https://github.com/TanKimGwan/linmas

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

- 包体积（解压后）：2.5 MB，152 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=24
- 运行依赖：0 个
- 首次发布：2026-07-07T14:26:02.186Z
- 最新版本发布：2026-11-04T00:20:47.857Z
- 已发布版本数：23（近 12 个月 23 个）

## 中文简介

对人工智能辅助软件进行可证明的防御性安全审查，需要确定的策略、可携带的证据和人工审查。

## 安装

```sh
npm install linmas
```

也可以使用：`pnpm add linmas`、`yarn add linmas`、`bun add linmas`

## README

![Linmas logo](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/linmas-logo.png)

# Linmas校核

**对人工智能辅助软件进行验证的防御性安全审查。**

将一个显式更改转换为规范化的发现、确定性的策略决策和可移植的Review capsule——总是需要人工审查。

[![CI](https://github.com/TanKimGwan/linmas/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/TanKimGwan/linmas/actions/workflows/ci.yml?query=branch%3Amain) [![npm version 0.9.1](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/npm.svg)](https://www.npmjs.com/package/linmas) [![npm total downloads](https://badgen.net/npm/dt/linmas?label=total%20downloads)](https://www.npmjs.com/package/linmas) [![npm weekly downloads](https://badgen.net/npm/dw/linmas?label=weekly%20downloads)](https://www.npmjs.com/package/linmas) [![release v0.9.1](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/release.svg)](https://github.com/TanKimGwan/linmas/releases/tag/v0.9.1) [![License: Apache-2.0](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/license.svg)](https://npmcn.com/package/linmas/LICENSE) ![Node.js 24+](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/node.svg) [![Codex primary](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/codex.svg)](https://github.com/TanKimGwan/linmas/blob/main/.agents/plugins/marketplace.json) [![Claude Code compatible](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/claude-code.svg)](https://npmcn.com/package/linmas/#readme-ai-agent-compatibility) [![Hermes Agent format only](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/hermes-agent.svg)](https://npmcn.com/package/linmas/#readme-ai-agent-compatibility) [![AI agent skills portable](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/agent-skills.svg)](https://npmcn.com/package/linmas/#readme-ai-agent-compatibility) ![Security: defensive only](https://raw.githubusercontent.com/TanKimGwan/linmas/main/assets/badges/security.svg)

## 当前版本：v0.9.1

Linmas 0.9.1是0.9.0版本的文档和品牌后续版本。它会在不改变运行时行为的情况下更新npm README、版本徽章和徽标。0.9.0版本引入了：

-   11种安全技能和7种MCP工具的操作级兼容性指南。
-   明确本地集成、托管技能安装和手动技能重用之间的界限。
-   经过验证的Linux和Windows CI，加上软件包完整性检查和发布来源。仍然需要人工审查；发布不建立活动提供程序或生产运行时行为。

使用Node.js 24或更新版本安装已发布的CLI：

```bash
npm install --global linmas@0.9.1
linmas list
```

看到 [0.9.1发布说明](https://github.com/TanKimGwan/linmas/blob/main/releases/0.9.1.md) 和完整的 [0.9.0发布和升级指导](https://github.com/TanKimGwan/linmas/blob/main/releases/0.9.0.md)． 现有0.8.0用户不需要进行数据迁移。

## 即将到来:v0.9.2

计划中的0.9.2版本为Claude Code和Codex增加了一个本地托管技能安装程序。它支持项目或用户域范围内的选定技能、复制或符号链接附件、预览、所有权检查和范围删除。托管应用程序将在Windows上关闭失败，因为所需的安全文件系统突变原语不可用。看到 [0.9.2发布说明](https://npmcn.com/package/linmas/releases/0.9.2.md)． 软件包和发行版还没有发布；下面的安装示例在发布后适用。

## 在60秒内试试

从该存储库的克隆版本，使用Node.js 24或更新版本：

```bash
npm ci
npm run demo:judge
```

默认的离线演示是一个 **离线装置回放-没有模型调用**． 它不需要提供者凭证，也不进行网络调用。它验证合成sql注入更改，重放签入的规范化结果，计算 `baseline-appsec` 策略，并在内存中验证生成的胶囊。

示例输出:

```text
LINMAS PROOF REVIEW
Execution   OFFLINE FIXTURE REPLAY — NO MODEL CALL
Finding     Confirmed · High · SQL injection
Policy      BLOCKED
Safety      Human review remains required.
Capsule     Validated in memory
```

这是审查管道的可重复演示，而不是在离线重播期间调用模型的声明。

## OpenAI Build Week 2026 -历史参与

Linmas之前曾被列入OpenAI Build Week 2026黑客马拉松。这种参与已经结束了：这个存储库不是一个活动的事件提交，特定于事件的指令不再是当前项目指南的一部分。

的日期为 [构建周实施和再现性记录](https://npmcn.com/package/linmas/OPENAI_BUILD_WEEK_2026.md) 作为历史背景仍然可用。归档的合成示例仍然可以作为正常的离线演示运行：

```bash
git clone https://github.com/TanKimGwan/linmas.git
cd linmas
npm ci
npm run demo:judge
npm run demo:proof
```

签入的样品是 [`examples/build-week/insecure-query.diff`](https://npmcn.com/package/linmas/examples/build-week/insecure-query.diff)． 上面的两个命令都使用合成的离线fixture，并且不进行模型调用。单独的 [活法典路径](https://npmcn.com/package/linmas/#readme-run-a-live-codex-review) 是可选的，并且在确认后只发送显式命名的输入。

关键的工程决策是经过深思熟虑的：

| 决定 | 原因 |
| --- | --- |
| 保持默认的离线演示路径 | 该演示是确定的，不需要凭据或网络依赖，并且清楚地表明没有调用任何模型。 |
| 单独的现场执行 `--live --yes` | 在没有明确意图的情况下，审查内容不能通过演示离开机器。 |
| 在创建策略或证据之前验证模型输出 | 格式错误的提供程序输出不能绕过Linmas结果契约。 |
| 使用SHA-256将胶囊绑定到精确的输入字节 | 评审证据与实际评估的输入保持联系。 |
| 每个结果都需要人工审核 | 一个模型发现，政策 `pass`，或有效证明束是证据，决不自动批准或认证。 |

看到 [历史构建周实现和可再现性记录](https://npmcn.com/package/linmas/OPENAI_BUILD_WEEK_2026.md) 对于日期基准，功能提交、验证的活动配置、体系结构、命令和限制。当前的安装选项和支持的平台总结如下 [使用指南](https://npmcn.com/package/linmas/USAGE.md)。

## 文档

选择与您的语言和安装目标相匹配的指南：

-   [Linmas用法指南-英语](https://npmcn.com/package/linmas/USAGE.md)： GitHub源代码，npm CLI， Codex市场，CLI/MCP使用，验证和故障排除。
-   [Panduan Penggunaan Linmas -印尼语](https://npmcn.com/package/linmas/PANDUAN-PENGGUNAAN.md)： panduan instalasi dan penggunaan dalam bahasa Indonesia。

GitHub的标准存储库导航暴露了固定选项卡；这些公共使用指南在存储库根目录下进行跟踪，并链接到这里进行可靠的发现。这些指南被有意地排除在npm包之外。

## 人工智能代理兼容性

Linmas仍 **代码优先作为本地集成** 同时在AI编码代理之间保持可移植性。Codex也是OpenAI Build Week 2026项目中使用的主要集成。这个 [兼容性证据策略](https://npmcn.com/package/linmas/docs/compatibility/COMPATIBILITY.md) 定义当前索赔的限制。安装检测不符合运行时；与其他代理的兼容性取决于下面的集成级别。

版本0.9.1是0.9.0特性版本的后续版本，仅提供文档。它的 [内容身份](https://npmcn.com/package/linmas/compatibility/evidence/v0.9.0-content-identity.json) revision-bound;发布工件散列和来源绑定了实际发布的字节。先前接受的SHA不会自动限定以后的源更改。标识文件、脱机fixture和发布都不能建立实时主机或模型行为。

| 人工智能代理或表面 | 状态 | 支持集成 |
| --- | --- | --- |
| 食典委 | **主/本机** | Git市场插件，11个技能，7个本地MCP工具，管理技能目录，以及供应商支持的审查。 |
| 克劳德代码 | **托管安装适配器** | 管理安装十一项技能。Claude API提供商支持的审查是一个单独的集成；它不验证Claude Code运行时行为。 |
| [爱马仕代理](https://hermes-agent.nousresearch.com/docs/) | **仅部分/格式级别** | Linmas `SKILL.md` 内容是Hermes手动加载的候选对象。实际的Linmas执行、MCP注册和安全执行在单独测试之前是未知的。 |
| Gemini CLI和其他编码代理 | **便携式/手动** | Markdown技能指令可以在代理支持等效指令的地方导入或调整。Linmas还没有提供特定于双子座的安装程序、提供程序适配器或MCP注册。 |

“便携/手动”是指防御指令可以重复使用；这并不意味着本机集成已经得到验证。新的本机主机必须具有确定性检测、安装/卸载测试、安全边界奇偶校验和维护所有者，然后Linmas才能将其标记为已验证。

## 为什么叫“林马斯” ？

**Linmas** 代表 **Perlindungan步伐**这是印度尼西亚语，意思是社区保护。这个名字反映了这样一种理念，即有用的保护应该离从事这项工作的人很近，在问题变成事件之前就可以得到保护，并且足够容易理解，以支持更好的人类决策。

这个想法对人工智能辅助软件很重要。独立开发者、独立黑客、vibe编码员、维护者和工程团队可以在没有专职安全专家的情况下快速发布产品。Linmas为他们提供了一个实用的第一个检查点：集中的安全技能、有限的审查工作流、确定的策略，以及可以检查而不是盲目信任的可移植证据。

Linmas不是应用程序安全的“警察”、“军队”或最终权威。它的目的是 **最接近日常建筑的第一层防御**——帮助人们更早地注意到风险，提出更好的问题，并为负责最终决策的人带来更有力的证据。

这个开源项目是独立开发的。它不隶属于任何政府机构，其名称并不意味着政府权威，认证或认可。它也没有得到OpenAI的认可。

### Linmas是给谁的

-   使用AI编码代理进行开发的独立开发者和独立黑客；
-   需要安全指导而不首先成为安全专家的Vibe编码员；
-   需要可重复的防御性审查和证据的工程团队；
-   希望开源项目更安全的审查工作流程的维护者；和
-   需要有限的专家指导进行授权工作的安全从业人员。

## 运行一个实时的法典审查

如果Codex已经在机器上可用，则运行一个合成案例：

```bash
npm run demo:judge -- --live --yes
```

没有 `--model`， Linmas使用当前食品法典账户报告的单一默认值，如果选择不明确，则关闭失败。对于显式模型选择：

```bash
npm run demo:judge -- --live --yes --model gpt-5.6-sol
```

现场演示是有意选择加入的。 `--yes` 确认指定的输入离开了机器。保存原子证据：

```bash
npm run demo:judge -- --live --yes --capsule review-capsule.json
```

或者回顾你自己明确的输入：

```bash
npx linmas review \
  --skill linmas-secure-code-reviewer \
  --input patch.diff \
  --provider codex \
  --model gpt-5.6-sol \
  --policy baseline-appsec \
  --capsule review-capsule.json \
  --yes
```

在2026-07-18，一次授权的合成运行通过了Codex CLI的验证 `0.144.5`、ChatGPT订阅身份验证和帐户可见 `gpt-5.6-sol` 模型。它返回一个模式有效的高严重性sql注入发现和一个阻塞的策略决策。这是测试配置的证据，并不能保证模型对每个帐户都可用。

## 回顾胶囊

Review Capsule是一个版本化的JSON证据对象，它连接：

-   确切输入的SHA-256摘要和字节长度；
-   所选Linmas的技能和政策；
-   离线夹具或实时执行模式；
-   归一化发现和确定性策略结果；
-   一个小的允许列出的提供者元数据集；和
-   规范安全边界： **仍然需要人工审查。**

胶囊被写入目的地飞行前和原子不覆盖行为。它们故意排除原始提供者响应、凭据、电子邮件地址、会话标识符和请求标识符。

胶囊不是数字签名、远程证明、认证或软件安全的证明。这是一个可审查的证据信封，用于有限的运行。

## 证明链

将经过验证的审查胶囊或完整的法典安全密封扫描转化为便携式人工审查证据包：

```bash
linmas proof create review-capsule.json --bundle proof-bundle
linmas proof verify proof-bundle
npm run demo:proof
```

创建向导记录每个发现的配置和基本原理，派生出总体配置，并写入 `decision-receipt.json`， `report.md`， `report.html`，并对来源证据进行散列处理。bundle在目的地是不可变的，可以在没有提供者凭证或网络访问的情况下进行脱机验证。

Codex安全导入需要完整的密封扫描目录，其中包含 `scan-manifest.json`， `findings.json`, `coverage.json`。Linmas在导入三个结构化文件之前验证清单引用和工件散列。它不会复制完整的扫描、执行扫描内容，也不会接受仅查找结果的文件作为经过验证的源。

SSH签名是可选的。一个有效的签名证明了完整性和密钥的持有；只有当验证者提供匹配时，标识才可信 `--allowed-signers` 文件:

```bash
linmas proof create review-capsule.json --bundle signed-proof --signing-key ~/.ssh/id_ed25519
linmas proof verify signed-proof --allowed-signers ~/.ssh/allowed_signers --output json
```

证明包是证据摘要，而不是批准、认证或证明软件是安全的。仍然需要人工审查。

## 前后比较

比较本地的两个胶囊，没有提供者或网络调用：

```bash
linmas review compare before.json after.json
```

比较验证两个完整的胶囊，然后报告添加的、解决的、持久的和更改的发现以及策略转换。它并没有声称一个空的三角洲就证明了安全。

## 确定性策略，从不自动批准

在规范化之后应用内置的声明性策略：

```bash
linmas review --skill linmas-secure-code-reviewer --input patch.diff --provider codex --policy baseline-appsec
```

内置包包括 `baseline-appsec`， `cloud-change`, `release-security`。本地策略文件是有界的、经过模式验证的JSON，没有命令、代码、表达式、模板、插件、远程导入或提供程序挂钩。

决定是 `pass`， `needs-review`,或 `blocked`。一项政策 `pass` 不能证明变更是安全的、合规的、经过认证的或批准的。安全故障关闭，故障关闭 **需要人工审核** 对于每一个结果。

## 身份验证和隐私边界

Linmas是Codex的订阅优先。它支持其Codex安装报告的帐户：

-   **ChatGPT订阅** 身份验证;或
-   一个 **代码管理的API密钥** 身份验证类。

Linmas不会让你登录、请求OpenAI API密钥或存储凭据。法典拥有认证。Linmas使用Codex应用服务器功能界面对当前认证模式进行分类，并列出账户可见的模型，然后在实际执行之前验证显式选择的模型。

Prepare模式只读取指定的输入文件或显式的stdin，从不调用Git，从不扫描存储库，也不进行网络调用：

```bash
linmas review --skill linmas-secure-code-reviewer --input patch.diff
```

为了兼容性，遗留别名还可以解析：

```bash
linmas review --skill secure-code-reviewer --input patch.diff
```

本地MCP工具接受命名空间的专家ID和这个遗留别名，然后将两者规范化为相同的专家契约。无效的MCP请求返回带有安全字段/原因元数据的模式版本错误。提供程序故障使用粒度代码，例如 `PROVIDER_CONFIGURATION_MISSING`， `PROVIDER_RATE_LIMITED`, `PROVIDER_TRANSPORT_FAILED`;凭证、审查输入、原始标准错误和提供者响应永远不会返回。

实时执行是单独启用的，可以明显地确认数据离开了机器。Linmas从指定的输入构造请求，并在托管的临时工作目录中运行Codex，其中包含只读沙箱请求，禁用审批，临时会话，忽略用户配置和存储库规则。

这些控制减少了环境的影响，但这并不能保证Codex不能读取主机和Codex沙盒允许的其他文件系统路径。

Linmas没有声明文件系统对命名输入的隔离。仅对您授权传输的内容使用实时评论。

## 林马斯品牌的安全技能

每一项公共技能都被命名为可发现性和归属：

| 技能 | 专注 |
| --- | --- |
| `linmas-secure-code-reviewer` | 应用程序安全发现、威胁建模和补救。 |
| `linmas-smart-contract-reviewer` | 授权智能合约和协议风险审查。 |
| `linmas-cloud-hardening-architect` | IAM、分段、工作负载和平台加固。 |
| `linmas-controls-compliance-reviewer` | 控制映射、证据和审计准备差距。 |
| `linmas-incident-triage-lead` | 分类，控制计划和证据保存。 |
| `linmas-exploit-validation-specialist` | 在授权环境中进行有限的影响证明。 |
| `linmas-secure-systems-architect` | 信任区域、身份和安全系统设计。 |
| `linmas-security-domain-router` | 将请求发送给相应的Linmas专家。 |
| `linmas-security-operations-lead` | 监视、升级和操作强化。 |
| `linmas-detection-rules-engineer` | SIEM逻辑、遥测映射、调优和误报减少。 |
| `linmas-threat-research-analyst` | IOC分析和智能到检测的翻译。 |

遗留的无前缀名称仍然是迁移的别名，但新的文档和安装使用规范化名称 `linmas-*` 身份。

### 安装主机和执行提供程序

安装主机和执行提供程序是独立的：

| 能力 | 支持表面 |
| --- | --- |
| 安装主机 | Claude Code和Codex管理技能目录 |
| 执行供应商 | Claude和Codex提供程序原生配置 |

凭证从不存储在安装清单中。实时执行是可选择的。Gemini和其他代理不是0.9.2版本中注册的安装主机或执行提供者。其他安装主机仍然是需求驱动的，需要可测试的安装/卸载行为、安全边界奇偶性和维护所有者。

```bash
npx linmas list
npx linmas detect
npx linmas onboard
npx linmas install linmas-secure-code-reviewer --dry-run
npx linmas install linmas-secure-code-reviewer
npx linmas doctor
npx linmas uninstall linmas-secure-code-reviewer
```

## 安全顾问技能

技能文件直接在兼容的编码代理中仍然有用。每个专家定义一个 **顾问评审模式**,一个 **设计评审模式**，以及一个稳定的发现词汇：

-   **确认发现** -有具体证据支持；
-   **需要验证** —似是而非的证据；
-   **建议** -预防性改进，而不是已证明的缺陷。

`linmas-security-domain-router` 选择专家，同时保留范围和授权。可选的存储库策略可以塑造代理行为，但它不会自动过滤每个代理响应。需要人工审核。

## 安全代码顾问审查

`linmas-secure-code-reviewer` 强调受影响的表面、前提条件、影响、补救和验证。它的确定性检查是仅在调用时运行的建议。可选的存储库策略可以加强本地审查约定，但不能自动过滤每个代理响应或取代人工审查。

## 历史构建周实现说明

| 在构建周实现之前 | Linmas校核 |
| --- | --- |
| 一组防守技巧说明 | 有限的审查工作流程加上烙印的可安装技能 |
| 没有可移植证据的提供者输出 | 严格规范化结果和精确输入评审胶囊 |
| 特定于提供者的凭据假设 | 代码本地ChatGPT订阅或代码管理的API密钥发现 |
| 个人复查结果 | 确定性策略和离线前后比较 |
| 手动产品演练 | 60秒的离线演示加上明确的实时路径 |

Codex作为提供者本地审查引擎、实现协作者和验证面做出了贡献。人类选择范围、授权边界、模型、策略阈值、安全契约、隐私语言、发布范围和最终提交。看到 [历史建筑周证据](https://npmcn.com/package/linmas/OPENAI_BUILD_WEEK_2026.md) 用于可验证的历史和复制命令。

## 平台和运行时

-   node . js `>=24` 是必需的。
-   脱机工作流和包入口点是独立于提供者的，并在Linux和Windows上进行了测试。
-   经过验证的现场证据是在Linux上收集的。
-   Codex可执行文件发现涵盖本地POSIX和Windows布局；不安全的窗口 `.cmd` 和 `.bat` 垫片不合格。
-   Codex身份验证隔离是跨平台的：POSIX使用无跟随/非阻塞描述符读取，而Windows在仅从打开的描述符读取之前验证文件身份。用户 `config.toml` 内容永远不会被孤立的发布所继承。
-   范围托管安装和卸载应用在Windows上都失败关闭 `SAFE_FILESYSTEM_OPERATION_UNAVAILABLE`． Node.js 24没有暴露与句柄相关的突变原语，而这些原语是保存Linmas的反替换不变量所必需的。范围预览、演练、医生、列表、离线审查和包执行保持只读/可用；此语句不建立Windows对旧版安装流的支持。
-   本机MCP工作室路径在Linux上使用Node.js 24+进行验证。原生Windows MCP和成功运行的Windows提供程序目前还没有声明。

## 安装管理技能

当0.9.2包从npm可用时， `npx --yes linmas@0.9.2 install` 启动交互式向导。明确选择项目范围和方法：

```bash
npx --yes linmas@0.9.2 install --skill linmas-secure-code-reviewer --agent claude --scope project --project "$PWD" --method symlink --yes
```

从源代码签出开始，本机安装程序管理项目或用户家中的Claude Code和Codex技能。 `--project` 必须命名一个现有的目录；项目作用域在该目录下写入，而全局作用域在您的主目录下写入。这不是一个npm全局可执行安装。

预览一个项目的symlink安装，然后确认：

```bash
node bin/linmas.mjs install --skill linmas-secure-code-reviewer --agent claude --scope project --method symlink --dry-run
node bin/linmas.mjs install --skill linmas-secure-code-reviewer --agent claude --scope project --method symlink --yes
```

使用 `--agent codex` 或重复 `--agent` 选择两个主机。 `--all` 选择每个Linmas技能，但不选择每个主机。 `--method copy` 创建独立文件； `--method symlink` 保持一个持久的副本 `.agents/skills` 并给克劳德加上一个相对链接。这个 `.agents` 目录是共享的发现空间，因此即使只选择了一个主机，一个技能也可能对另一个兼容的工具可见。

检查所有权并仅删除选定的技能和主机：

```bash
node bin/linmas.mjs doctor --scope project --project /path/to/project
node bin/linmas.mjs uninstall --skill linmas-secure-code-reviewer --agent claude --scope project --project /path/to/project --dry-run
node bin/linmas.mjs uninstall --skill linmas-secure-code-reviewer --agent claude --scope project --project /path/to/project --yes
```

没有有效Linmas所有权记录的本地编辑和文件将被保留。 `--yes` 不批准更换修改或未管理的内容；使用交互式预览和备份确认。托管安装程序只写入技能文件和它自己的清单。它不安装或注册Codex MCP插件、提供商凭据、挂钩或存储库策略。技能要求 `linmas_review_decide` 需要Linmas MCP插件的互动工具；技能文件本身不提供MCP服务器。

旧的无作用域安装/卸载路径及其版本1的主机清单仍然可用。对于全局Claude迁移，遗留命令和托管安装程序的目标相同 `$CLAUDE_CONFIG_DIR/skills/<skill>` (默认路径 `$HOME/.claude/skills/<skill>`)。存档并验证遗留目录和清单，删除v1条目，然后安装托管的全局副本；在确定范围的安装之后运行旧版卸载可以删除替换。对于Claude Code遗留安装，在POSIX系统上创建并验证存档：

```bash
SKILL=linmas-secure-code-reviewer
LEGACY_ROOT="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
BACKUP_DIR="$(mktemp -d)"
mkdir "$BACKUP_DIR/verify"
tar -cpf "$BACKUP_DIR/legacy.tar" -C "$LEGACY_ROOT" "skills/$SKILL" linmas-manifest.json
tar -xpf "$BACKUP_DIR/legacy.tar" -C "$BACKUP_DIR/verify"
diff -r "$LEGACY_ROOT/skills/$SKILL" "$BACKUP_DIR/verify/skills/$SKILL"
cmp "$LEGACY_ROOT/linmas-manifest.json" "$BACKUP_DIR/verify/linmas-manifest.json"
```

只有在两次比较成功之后，通过选择Claude并确认，保留存档并删除遗留的v1条目：

```bash
node bin/linmas.mjs uninstall "$SKILL"
test ! -e "$LEGACY_ROOT/skills/$SKILL"
```

然后安装并验证托管的全局副本：

```bash
node bin/linmas.mjs install --skill "$SKILL" --agent claude --scope global --method copy --yes
node bin/linmas.mjs doctor --scope global
```

使用检测到的Codex遗留主机根重复归档和验证。运行良好的托管目标不能证明在那里复制了遗留编辑或额外文件；档案是他们的恢复副本。不要把本地所有权和土地所有权混为一谈 `skills` CLI锁或市场缓存；这些路径都有自己的生命周期。

### 通过Agent Skills命令行安装

对于单独的生态系统管理路线，请锁定 `skills` CLI版本，让它管理自己的锁和生命周期：

```bash
npx --yes skills@1.7.6 add TanKimGwan/linmas --skill linmas-secure-code-reviewer --agent claude-code --copy --yes
npx --yes skills@1.7.6 list --agent claude-code
npx --yes skills@1.7.6 update linmas-secure-code-reviewer --yes
npx --yes skills@1.7.6 remove linmas-secure-code-reviewer --agent claude-code --yes
```

repository参数遵循其默认的远程ref；它与固定的CLI版本是分开的。此路由只安装技能文件，不配置Linmas MCP。当您需要插件和MCP工具时，请使用下面的Codex市场部分。

## 本地MCP插件

安装公共Git市场和Linmas插件：

```bash
codex plugin marketplace add TanKimGwan/linmas --ref main
codex plugin add linmas@linmas
codex plugin list
```

### 重要的是：市场可见性是针对每个设备的

这是一个公共的 **GitHub存储库市场**，尚未在全球Codex/ChatGPT插件目录中的条目。因此，Linmas不会自动出现在另一台计算机上的搜索，只是因为你登录到相同的ChatGPT帐户。在每台电脑上添加一次市场：

```bash
codex plugin marketplace add TanKimGwan/linmas --ref v0.9.1
codex plugin add linmas@linmas
codex plugin list
```

安装完成后，重新启动Codex并创建一个新任务。如果 `linmas@linmas` 仍然没有列出，请验证计算机是否具有Git， Node.js 24+，并且可以访问GitHub。官方插件目录是一个独立的发布渠道，需要OpenAI提交、审查和批准；GitHub和npm发布不会自动将Linmas添加到该全局目录中。

固定当前发布的不可变版本，而不是跟随 `main`、替换 `--ref main` 与 `--ref v0.9.1`． 在0.9.2发布后，将该ref替换为 `v0.9.2` 选择较新的版本。安装或升级后，重新启动Codex桌面/应用程序服务器并启动新任务。陈旧的应用服务器可以从旧的或已删除的插件缓存中保留MCP子进程。

刷新跟随移动refsuch的现有集市安装 作为 `main`运行:

```bash
codex plugin marketplace upgrade linmas
codex plugin add linmas@linmas
codex plugin marketplace list --json
codex plugin list --json
```

`marketplace upgrade` 刷新配置的ref；它不会改变 不可变的 `v0.8.0` 裁判，第二个 `marketplace add` 与 `--ref v0.9.2` 是 在注册旧源时被拒绝。在v0.9.2发布之后，移动a 固定安装 `v0.8.0` 来 `v0.9.2` 通过这些步骤：删除已安装的插件和旧的市场， 重新添加, `--ref v0.9.2`，重新安装插件， 并验证配置的ref和 安装的版本。看到 [0.9.0升级指导](https://github.com/TanKimGwan/linmas/blob/main/releases/0.9.0.md#upgrade-from-080)。 始终重新启动Codex并在验证后开始新的任务。

公共市场跟踪一个准备安装的插件 `plugins/linmas`． 维护者从规范源重新生成它，并逐字节地验证每个文件：

```bash
npm run sync:codex-marketplace
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/plugin-creator/scripts/validate_plugin.py" plugins/linmas
```

Npm用户也可以建立一个独立的本地插件目录：

```bash
npm run build:codex-plugin -- --target /absolute/path/to/plugins/linmas
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/plugin-creator/scripts/validate_plugin.py" /absolute/path/to/plugins/linmas
```

构建器精确地复制11个规范的Linmas技能、有限的MCP服务器、策略/运行时文件、 `.mcp.json`，以及报告规范版本所需的包元数据。它不会改变用户的市场配置。开发缓存器是主机工件元数据，不是规范源代码或包版本的一部分。

MCP服务器暴露了七种工具：

| 工具 | 边界 |
| --- | --- |
| `linmas_review_decide` | 交互式或文本回退后的人类处置发现可用；从来没有批准过。 |
| `linmas_review_prepare` | 离线准备;没有提供程序，也没有写入。 |
| `linmas_review_compare` | 线下胶囊对比。 |
| `linmas_policy_evaluate` | 离线确定性策略评估。 |
| `linmas_proof_verify` | 离线证明包验证。 |
| `linmas_proof_create` | 仅在之后进行本地写入 `confirm_write=true`。 |
| `linmas_review_execute` | 仅在以下情况下提供传输 `confirm_transmission=true`;对象所需的绑定引用 `linmas_review_decide`。 |

工具结果公开有界的状态值，例如 `prepared`， `verified`, `executed`,再加上 `humanReviewRequired=true`;每个结果都保持不变 `needs_human_review`． 准备好的结果不调用提供程序或写入输出。离线工具不传输数据。提供者支持的审核只有在明确同意后才会传输，证明包只有在明确写入确认后才会写入。超时取消提供程序的工作，并防止后期规范化、策略评估、胶囊创建或最终输出写入。

后 `linmas_review_execute` 回报,通过 `reviewReference.handle` 作为 `review_handle` 和 `reviewReference.capsuleDigest` 作为 `capsule_digest` 来 `linmas_review_decide`． 不要发送呼叫者提供的 `review_result`;决策流使用绑定的流程本地引用和精确摘要。

### 交互式人机审查门

当审稿人得出结论时， `linmas_review_decide` 请求一个明确的处置通过MCP形式引出当主机支持它。第一种形式提供：

-   **A -明塔特工成员**： agent修复发现并重新运行评审。
-   **B - Lanjutkan dengan catatan khusus**：未解决的调查结果必须列入最后答复；关键/高发现还需要风险确认和理由。
-   **C - Hentikan任务untuk审查手册**：代理停止，未要求批准或安全。
-   **D - Beri - tahu代理harus bertinak apa**：不能绕过传输、写或安全门的自定义引导。

如果没有可操作的发现，则省略A。如果主机不能显示MCP表单，Linmas将返回与结构化聊天回退相同的选择，并且不会自动选择一个。一个通用的“lanjutkan”是不够的。网关使用MCP协议的客户端 [形式引出](https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation);主机权限模式仍然是单独的控件。

Codex和Claude Code必须在Linmas MCP服务器上注册表单才能出现。完全访问权限或 `--dangerously-skip-permissions` Mode控制命令权限提示；它不授予Linmas审查处分。如果活动主机抑制或缺乏MCP触发，则结构化聊天回退仍然是强制性的。

## 命令参考

| 命令 | 目的 |
| --- | --- |
| `linmas list` | 列出规范的Linmas技能。 |
| `linmas detect` | 检测支持的安装主机。 |
| `linmas onboard` | 检查主机和Codex帐户功能。 |
| `linmas doctor` | 诊断托管安装和副本。 |
| `linmas install <skill>` | 安装一个规范的技能；添加 `--dry-run` 起飞前的。 |
| `linmas uninstall <skill>` | 在支持的POSIX文件系统上删除linmas管理的技能；窗口在突变前关闭失败。 |
| `linmas review ...` | 在本地准备或执行显式提供程序审查。 |
| `linmas review compare before.json after.json` | 离线比较两个胶囊。 |
| `linmas proof create <source> --bundle <dir>` | 记录人类的决定，并创建一个便携式的证明包。 |
| `linmas proof verify <dir>` | 脱机验证包散列和可选SSH签名。 |
| `npm run demo:judge` | 运行确定性离线演示。 |
| `npm run demo:proof` | 创建并验证短暂的离线证明链包。 |
| `npm run validate` | 验证包的结构、技能、示例和秘密。 |
| `npm run eval:offline` | 运行没有模型调用的签入评估用例。 |
| `npm run coverage` | 运行带有强制源覆盖阈值的测试。 |

## 限制和安全

-   Linmas是防御性的，适用于授权环境。
-   模型发现可能是错误的或不完整的；仍然需要人工审查。
-   Linmas从不批准、合并、发布或自动修复更改。
-   一项政策 `pass` 或者，空洞的比较并不能证明安全性。
-   离线重播不是一个新的模型推断。
-   有效的证明链束记录了人的性情；它不批准或证明变更。
-   Codex安全适配器输入必须是一个完整的密封扫描目录；只有发现的JSON不被视为已验证的证据。
-   实时审查在确认后将显式输入传输给选定的提供者。
-   没有声明只读沙箱限制了提供程序对Linmas输入的读取。
-   在Windows上，在句柄相关的本地实现可以验证文件系统的变化之前，范围管理的安装和卸载应用是不可用的；Linmas不会退回到词法路径写入、重命名或删除。
-   原生MCP支持仅限于文档化的Node.js 24+ linux验证路径；Codex新任务发现需要单独验证主机重新安装，而不是直接工作室验证。

## 贡献、安全性和许可

欢迎大家通过 [CONTRIBUTING.md](https://npmcn.com/package/linmas/CONTRIBUTING.md)． 报告漏洞 [安全策略](https://npmcn.com/package/linmas/.github/SECURITY.md)． 社区行为受 [行为准则](https://npmcn.com/package/linmas/CODE_OF_CONDUCT.md)。

Linmas被授权 [apache - 2.0](https://npmcn.com/package/linmas/LICENSE)． 看到 [请注意](https://npmcn.com/package/linmas/NOTICE) 和 [TRADEMARK.md](https://npmcn.com/package/linmas/TRADEMARK.md) 为归因和名称使用指导。Linmas的灵感来自印度尼西亚的社区保护理念， _Perlindungan步伐_它不隶属于政府机构，也没有得到OpenAI的认可。

## 常见问题

### linmas 是什么？

对人工智能辅助软件进行可证明的防御性安全审查，需要确定的策略、可携带的证据和人工审查。

### 如何安装 linmas？

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

### linmas 支持 TypeScript 吗？

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

### linmas 支持 ESM 还是 CommonJS？

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

### linmas 需要什么版本的 Node\.js？

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

### linmas 可以商用吗？

linmas 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### linmas 还在维护吗？

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

