@oevery/rsp 3.1.0-beta.3 → 3.1.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -34,17 +34,17 @@ RSP derives the next action from the selected Change, repository evidence, verif
34
34
  ## Quick start
35
35
 
36
36
  ```bash
37
- npx -y @oevery/rsp@3.1.0-beta.3 init
38
- npx -y @oevery/rsp@3.1.0-beta.3 doctor
37
+ npx -y @oevery/rsp@3.1.0-beta.4 init
38
+ npx -y @oevery/rsp@3.1.0-beta.4 doctor
39
39
  ```
40
40
 
41
41
  Recommended bootstrap flow:
42
42
 
43
43
  ```bash
44
- npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup
44
+ npx -y @oevery/rsp@3.1.0-beta.4 init --with-project-setup
45
45
  # fill .rsp/changes/project-setup.md
46
46
  # fill .rsp/specs/design.md
47
- npx -y @oevery/rsp@3.1.0-beta.3 doctor
47
+ npx -y @oevery/rsp@3.1.0-beta.4 doctor
48
48
  ```
49
49
 
50
50
  ## Artifact foundation
@@ -171,7 +171,14 @@ RSP publishes eleven default host-neutral lifecycle Skills for on-demand loading
171
171
 
172
172
  Each lifecycle Skill returns to an existing project or RSP owner. Report-only Pre-Change Design and `rsp-structural-audit` may return one bounded result directly to the user without inventing an artifact owner. The suite adds no hidden workflow state or recursive Skill orchestration. No Skill infers commit, push, publication, deployment, approval, or human-acceptance authority.
173
173
 
174
- Response language and artifact language are independent. Human-facing response headings, labels, explanations, and conclusions follow the requested response language, response-specific project instructions, then the conversation language. Authorized artifact prose follows the requested artifact language, artifact-specific project instructions, then the existing artifact language, and only then the conversation language. Canonical RSP artifact headings, WorkRef values, paths, commands, identifiers, and machine-consumed values remain unchanged; response labels may retain technical tokens in parentheses but never use them as untranslated labels.
174
+ Response language is user/session-owned; artifact and commit-message language are durable project surfaces. Project `.rsp/config.yaml` never selects response language: response prose follows an explicit current request, user/host personal instructions, then conversation language. A project may set one durable `language.default` and independently override `language.artifacts` or `language.commit`. New authorized artifact prose follows an explicit artifact request, the configured effective artifact language, artifact-specific project instructions, then conversation language; existing artifacts keep their established language unless translation is explicitly authorized. Commit prose follows an explicit current commit-language instruction, configured effective commit language, repository commit authority, then clear recent non-merge history. Configuration changes never rewrite existing artifacts. CLI-generated scaffolds contain canonical structural tokens, neutral `<…>` placeholders, and verbatim user input instead of a locale catalog or silent English prose fallback; Core and discipline Skills fill their authorized natural-language content. Canonical RSP headings, paths, commands, identifiers, Conventional Commit types/scopes, trailers, and machine-consumed values remain unchanged; WorkRefs use the safe Unicode identity contract rather than the prose-language fallback chain.
175
+
176
+ ```yaml
177
+ language:
178
+ default: en
179
+ ```
180
+
181
+ `default` is required when the mapping is present and supplies both durable surfaces. Optional `artifacts` and `commit` override only their respective surfaces. `response` is intentionally unsupported because a shared repository must not constrain each collaborator's conversation language. Omit `language` entirely to leave both durable values unset. Plain status shows configured durable values, while status JSON always exposes `language.artifacts` and `language.commit` as a canonical language tag or `null`. Language configuration never grants staging, commit, push, or publication authority.
175
182
 
176
183
  Compose the suite from evidence: an explicit bounded question may enter report-only Pre-Change Design before Shape; otherwise Shape settles the executable owner and Tracked Design returns one material question to it. Core then chooses Diagnose, TDD, or Implement; Review stays report-only; Resolve Findings corrects accepted findings and requests re-review; Core performs the durable decision before archive. An explicit release operation with a confirmed identity or range may enter Release Docs without a Release Change; create one only for material decisions, coordination, recovery, blockers, or acceptance. Manage is optional: it accepts one selected ready Change or shallow Group that needs independent dispatch, long continuation, or recovery, while small or coupled work stays direct. Projects may keep explicit activation or let Core select eligible managed work automatically.
177
184
 
@@ -197,7 +204,7 @@ New `rsp init` config templates use the shown `auto` plus `lifecycle` policy. If
197
204
 
198
205
  Humans should start with this README. Agents should follow the nearest `AGENTS.md`, prefer `skills/rsp/SKILL.md`, and use `.rsp/rsp-rules.md` only when the Skill is unavailable.
199
206
 
200
- When this README shows `rsp <command>`, it assumes the command is already available in your environment. For opt-in beta evaluation, pin the exact prerelease identity, such as `npx -y @oevery/rsp@3.1.0-beta.3 <command>`; stable users can keep using the unversioned package entrypoint for npm `latest`.
207
+ When this README shows `rsp <command>`, it assumes the command is already available in your environment. For opt-in beta evaluation, pin the exact prerelease identity, such as `npx -y @oevery/rsp@3.1.0-beta.4 <command>`; stable users can keep using the unversioned package entrypoint for npm `latest`.
201
208
 
202
209
  Install the exact package's default lifecycle suite into the current project:
203
210
 
@@ -225,8 +232,8 @@ rsp skills install rsp-structural-audit
225
232
  Both forms install from the package that invoked `rsp`, so prerelease dogfooding can pin one exact npm identity:
226
233
 
227
234
  ```bash
228
- npx -y @oevery/rsp@3.1.0-beta.3 skills install --dry-run
229
- npx -y @oevery/rsp@3.1.0-beta.3 skills install
235
+ npx -y @oevery/rsp@3.1.0-beta.4 skills install --dry-run
236
+ npx -y @oevery/rsp@3.1.0-beta.4 skills install
230
237
  ```
231
238
 
232
239
  Exact prerelease identities avoid depending on a moving dist-tag. `rsp update` refreshes RSP-managed project files only; run `rsp skills install` separately to refresh the package-owned Skill suite.
@@ -280,8 +287,8 @@ Durable review makes two independent semantic choices: whether current facts or
280
287
 
281
288
  New project:
282
289
 
283
- 1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
284
- 2. Prefer `npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup`, or run `rsp create project-setup` manually
290
+ 1. `npx -y @oevery/rsp@3.1.0-beta.4 init`
291
+ 2. Prefer `npx -y @oevery/rsp@3.1.0-beta.4 init --with-project-setup`, or run `rsp create project-setup` manually
285
292
  3. Fill `.rsp/specs/design.md`
286
293
  4. Use `rsp add spec <name>` only when a new durable project doc is needed
287
294
  5. Keep lasting rationale in the configured Decision Record directory and stable scoped operating instructions in the nearest project-owned `AGENTS.md`
@@ -295,14 +302,14 @@ New project:
295
302
 
296
303
  Existing project with a rich `AGENTS.md`:
297
304
 
298
- 1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
305
+ 1. `npx -y @oevery/rsp@3.1.0-beta.4 init`
299
306
  2. Keep the managed block thin
300
307
  3. Keep project-wide boundaries and navigation in `.rsp/specs/design.md`, and route cohesive durable facts to the smallest domain Spec
301
308
  4. Use `rsp add spec <name>` only when another durable current-fact document is needed
302
309
 
303
310
  AI-assisted setup:
304
311
 
305
- 1. `npx -y @oevery/rsp@3.1.0-beta.3 init --agents-mode print --with-project-setup`
312
+ 1. `npx -y @oevery/rsp@3.1.0-beta.4 init --agents-mode print --with-project-setup`
306
313
  2. Keep the managed block as generated and adapt only the surrounding human-owned content if needed
307
314
  3. Have the AI review and fill `.rsp/changes/project-setup.md`
308
315
  4. Have the AI fill `.rsp/specs/design.md`
@@ -349,7 +356,7 @@ Use `skills/rsp/SKILL.md` for operations. When the skill is unavailable, use `.r
349
356
 
350
357
  On a real interactive terminal, bare `rsp` opens the same read-only dashboard as `rsp ui`. CI, pipes, redirected streams, and `TERM=dumb` stay on static command output; use `rsp status` for a human snapshot or `rsp status --json` for automation. The dashboard never creates, focuses, or archives work.
351
358
 
352
- Dashboard keys: `Tab` cycles Changes/Groups/History, arrows or `j`/`k` move, `/` filters the active scope, `Enter` opens full-width detail, `r` refreshes the active scope, `?` shows help, and `q`, `Ctrl-C`, or top-level `Esc` exits. History is loaded only when first visited, uses the default bounded recent result, and loads one selected record's structured detail by its unique archive path only after `Enter`; use `rsp history` filters for older work. Set `RSP_UI_LANG=en|zh-CN` or pass `rsp ui --lang`; only dashboard-owned labels are localized. Existing CLI help, plain output, JSON, WorkRefs, paths, commands, Skills, and RSP artifacts remain English.
359
+ Dashboard keys: `Tab` cycles Changes/Groups/History, arrows or `j`/`k` move, `/` filters the active scope, `Enter` opens full-width detail, `r` refreshes the active scope, `?` shows help, and `q`, `Ctrl-C`, or top-level `Esc` exits. History is loaded only when first visited, uses the default bounded recent result, and loads one selected record's structured detail by its unique archive path only after `Enter`; use `rsp history` filters for older work. Set `RSP_UI_LANG=en|zh-CN` or pass `rsp ui --lang`; only dashboard-owned labels are localized. This UI setting does not localize CLI help, plain output, JSON, paths, commands, Skills, or existing artifacts. WorkRefs may use the safe Unicode identity contract, and new artifact prose follows the project language policy described above.
353
360
 
354
361
  When there is no focused change, `rsp status` and `rsp show --focused --json` print `nextActions` instead of guessing which open change is current.
355
362
 
package/README.zh-CN.md CHANGED
@@ -34,17 +34,17 @@ RSP 根据 selected Change、仓库证据、验证结果和 blockers 推导下
34
34
  ## 快速开始
35
35
 
36
36
  ```bash
37
- npx -y @oevery/rsp@3.1.0-beta.3 init
38
- npx -y @oevery/rsp@3.1.0-beta.3 doctor
37
+ npx -y @oevery/rsp@3.1.0-beta.4 init
38
+ npx -y @oevery/rsp@3.1.0-beta.4 doctor
39
39
  ```
40
40
 
41
41
  推荐启动流程:
42
42
 
43
43
  ```bash
44
- npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup
44
+ npx -y @oevery/rsp@3.1.0-beta.4 init --with-project-setup
45
45
  # 填写 .rsp/changes/project-setup.md
46
46
  # 填写 .rsp/specs/design.md
47
- npx -y @oevery/rsp@3.1.0-beta.3 doctor
47
+ npx -y @oevery/rsp@3.1.0-beta.4 doctor
48
48
  ```
49
49
 
50
50
  ## Artifact foundation
@@ -170,7 +170,14 @@ RSP 发布十一个默认、宿主无关、按需加载的生命周期 Skills,
170
170
 
171
171
  每个生命周期 Skill 都把结果返回现有项目或 RSP owner。只读的 Pre-Change Design 与 `rsp-structural-audit` 可以把一个有界结果直接返回用户,而不虚构 artifact owner。套件不引入隐藏 workflow state 或递归 Skill 编排。任何 Skill 都不会推断 commit、push、publication、deployment、approval 或 human-acceptance 权限。
172
172
 
173
- 响应语言与产物语言相互独立。面向人的响应标题、标签、解释和结论依次遵循明确指定的响应语言、项目中针对响应的指令和会话语言;已授权写入的产物正文依次遵循明确指定的产物语言、项目中针对产物的指令、目标产物的现有语言,最后才回退到会话语言。RSP 的 canonical artifact headings、WorkRef 值、路径、命令、标识符和机器消费值保持不变;响应标签可以在括号中保留技术 token,但不能直接使用未翻译的 token 作为标签。
173
+ 响应语言归用户和会话所有;产物与 commit message 语言才是项目持久表面。项目 `.rsp/config.yaml` 绝不选择响应语言:响应正文依次遵循当前明确请求、用户/宿主个人指令和会话语言。项目可以设置共享的 `language.default`,并通过 `language.artifacts` 或 `language.commit` 分别覆盖。新产物正文依次遵循明确产物语言、有效产物语言、项目产物指令和会话语言;已有产物除非明确授权翻译,否则保持现有语言。Commit 正文依次遵循当前明确的 commit 语言、有效 commit 语言、仓库 commit 规则和清晰的近期非 merge 历史。配置变化不会重写历史。CLI 生成的脚手架只包含 canonical 结构 token、中立的 `<…>` 占位符和用户原样输入,不维护 locale 字典,也不会静默回退为英文正文;Core 与 discipline Skills 再按授权语言填写自然语言内容。RSP 的 canonical headings、路径、命令、标识符、Conventional Commit type/scope、trailers 和机器消费值保持不变;WorkRef 遵循安全 Unicode 身份契约。
174
+
175
+ ```yaml
176
+ language:
177
+ default: en
178
+ ```
179
+
180
+ 配置了 `language` mapping 时,`default` 必填并同时为产物和 commit 提供持久默认值;可选的 `artifacts` 与 `commit` 只覆盖对应表面。`response` 被明确禁止,因为共享仓库不应限制每位协作者的会话语言。完全省略 `language` 时,两项持久有效值都保持未设置。普通 status 显示持久语言值,status JSON 则始终把 `language.artifacts` 与 `language.commit` 投影为规范化语言标签或 `null`。语言配置不会授予 stage、commit、push 或 publication 权限。
174
181
 
175
182
  按证据组合套件:Shape 确定 owner;Design 返回一个关键问题;Core 在 Diagnose、TDD 与 Implement 之间选择;Review 保持只读;Resolve Findings 修正 accepted findings 并请求复审;Core 在 archive 前执行 durable decision。显式 release operation 在 identity 或 range 已确认时,可以不创建 Release Change 就进入 Release Docs;只有重大决策、协调、恢复、blocker 或 acceptance 需要持久 owner 时才创建。Manage 是可选能力:它接受一个 selected ready Change 或 shallow Group,并要求独立调度、长时 continuation 或恢复需求;小型或紧耦合工作保持直接执行。项目可以保持显式启用,也可以让 Core 自动选择符合条件的 managed work。
176
183
 
@@ -196,7 +203,7 @@ Change 粒度由一个可观察结果及其共享的 acceptance、verification
196
203
 
197
204
  人类应从本 README 开始;agent 应遵循 nearest `AGENTS.md`,优先加载 `skills/rsp/SKILL.md`,仅在 Skill 不可用时读取 `.rsp/rsp-rules.md`。
198
205
 
199
- 如果文档中写的是 `rsp <command>`,默认前提是你的环境里已经能直接运行 `rsp`。进行 opt-in beta 评估时,应固定精确 prerelease 身份,例如 `npx -y @oevery/rsp@3.1.0-beta.3 <command>`;stable 用户仍可使用不带版本的入口获取 npm `latest`。
206
+ 如果文档中写的是 `rsp <command>`,默认前提是你的环境里已经能直接运行 `rsp`。进行 opt-in beta 评估时,应固定精确 prerelease 身份,例如 `npx -y @oevery/rsp@3.1.0-beta.4 <command>`;stable 用户仍可使用不带版本的入口获取 npm `latest`。
200
207
 
201
208
  将当前精确包内置的默认生命周期 Skill 套件安装到当前项目:
202
209
 
@@ -224,8 +231,8 @@ rsp skills install rsp-structural-audit
224
231
  两种形式都从调用 `rsp` 的同一个包安装,因此 beta 评估可以固定精确 npm 身份:
225
232
 
226
233
  ```bash
227
- npx -y @oevery/rsp@3.1.0-beta.3 skills install --dry-run
228
- npx -y @oevery/rsp@3.1.0-beta.3 skills install
234
+ npx -y @oevery/rsp@3.1.0-beta.4 skills install --dry-run
235
+ npx -y @oevery/rsp@3.1.0-beta.4 skills install
229
236
  ```
230
237
 
231
238
  精确 prerelease 身份可以避免依赖持续移动的 dist-tag。`rsp update` 只刷新由 RSP 管理的项目文件;刷新 package-owned Skill 套件需要单独运行 `rsp skills install`。
@@ -279,8 +286,8 @@ durable review 包含两个独立语义判断:是否更新当前事实或作
279
286
 
280
287
  新项目:
281
288
 
282
- 1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
283
- 2. 优先使用 `npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup`,或手动执行 `rsp create project-setup`
289
+ 1. `npx -y @oevery/rsp@3.1.0-beta.4 init`
290
+ 2. 优先使用 `npx -y @oevery/rsp@3.1.0-beta.4 init --with-project-setup`,或手动执行 `rsp create project-setup`
284
291
  3. 填写 `.rsp/specs/design.md`
285
292
  4. 仅在需要新的长期项目文档时使用 `rsp add spec <name>`
286
293
  5. 将长期理由写入配置的 Decision Record 目录,将稳定的作用域操作指令写入 nearest project-owned `AGENTS.md`
@@ -293,14 +300,14 @@ durable review 包含两个独立语义判断:是否更新当前事实或作
293
300
 
294
301
  已有复杂 `AGENTS.md` 的项目:
295
302
 
296
- 1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
303
+ 1. `npx -y @oevery/rsp@3.1.0-beta.4 init`
297
304
  2. 保持受管块尽量薄
298
305
  3. 将项目级边界与导航放在 `.rsp/specs/design.md`,把成组的长期事实放入最小领域 Spec
299
306
  4. 只有需要额外的 durable current-fact 文档时才使用 `rsp add spec <name>`
300
307
 
301
308
  AI 协助接入:
302
309
 
303
- 1. `npx -y @oevery/rsp@3.1.0-beta.3 init --agents-mode print --with-project-setup`
310
+ 1. `npx -y @oevery/rsp@3.1.0-beta.4 init --agents-mode print --with-project-setup`
304
311
  2. 保持受管块原样,只在需要时调整周围由人维护的内容
305
312
  3. 让 AI 审阅并填写 `.rsp/changes/project-setup.md`
306
313
  4. 让 AI 填写 `.rsp/specs/design.md`
@@ -345,7 +352,7 @@ rsp doctor [--fix] [--json [--compact]] [--verbose]
345
352
 
346
353
  在真实交互式终端中,裸 `rsp` 会打开与 `rsp ui` 相同的只读仪表盘。CI、管道、重定向流和 `TERM=dumb` 继续使用静态命令输出;人类快照使用 `rsp status`,自动化使用 `rsp status --json`。仪表盘不会创建、聚焦或归档工作。
347
354
 
348
- 仪表盘快捷键:`Tab` 按 Changes/Groups/History 顺序切换,方向键或 `j`/`k` 移动,`/` 筛选当前 scope,`Enter` 打开全宽详情,`r` 刷新当前 scope,`?` 显示帮助,`q`、`Ctrl-C` 或顶层 `Esc` 退出。History 首次进入时才加载默认有界的近期结果,只有选中记录并按 `Enter` 后才按唯一 archive path 加载结构化详情;更早的记录使用 `rsp history` 过滤查询。可设置 `RSP_UI_LANG=en|zh-CN` 或传入 `rsp ui --lang`;只有仪表盘自有标签会本地化。现有 CLI help、纯文本输出、JSON、WorkRef、路径、命令、Skills 和 RSP artifacts 仍保持英文。
355
+ 仪表盘快捷键:`Tab` 按 Changes/Groups/History 顺序切换,方向键或 `j`/`k` 移动,`/` 筛选当前 scope,`Enter` 打开全宽详情,`r` 刷新当前 scope,`?` 显示帮助,`q`、`Ctrl-C` 或顶层 `Esc` 退出。History 首次进入时才加载默认有界的近期结果,只有选中记录并按 `Enter` 后才按唯一 archive path 加载结构化详情;更早的记录使用 `rsp history` 过滤查询。可设置 `RSP_UI_LANG=en|zh-CN` 或传入 `rsp ui --lang`;只有仪表盘自有标签会本地化。该 UI 设置不会本地化 CLI help、纯文本输出、JSON、路径、命令、Skills 或已有产物。WorkRef 可使用安全 Unicode 身份契约,新产物正文则遵循上文的项目语言策略。
349
356
 
350
357
  当没有 focused change 时,`rsp status` 和 `rsp show --focused --json` 会输出 `nextActions`,但不会自动猜测哪个 open change 是当前工作。
351
358
 
@@ -5,7 +5,7 @@ import {
5
5
  inspectManagedDirectory,
6
6
  inspectManagedFileTree,
7
7
  resolveManagedDirectoryChain
8
- } from "./chunk-OTJFL6XH.mjs";
8
+ } from "./chunk-FJVH7ZYU.mjs";
9
9
 
10
10
  // src/commands/skills.ts
11
11
  import { randomUUID } from "crypto";