pwsh-guide 0.4.0 → 0.5.0

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
@@ -10,6 +10,8 @@ v0.3 起补上"验证闭环":`init`/`refresh` 生成快照(`.meta.json`)
10
10
 
11
11
  v0.4 起按"默认 shell 变体"渲染:Windows 上区分 `pwsh`(PowerShell 7)与 `powershell.exe`(Windows PowerShell 5.1)——pwsh 指南默认 UTF-8、无需输入侧编码 hack,并包含 `-Parallel`/`??`/三元等特性;5.1 指南保留输入侧 hack。两个实测参数陷阱(内联 splatting、特殊字符内联拼接)已固化进两变体模板。
12
12
 
13
+ v0.5 起增加会话环境确认:生成的 skill 在执行环境、数据、服务或远程路径相关操作前,会直接询问用户当前是开发、测试/预发布、生产还是不确定。没有明确回答时按“未知环境 + 仅本地数据”处理,不会根据目录、Git 分支、主机名或 `NODE_ENV` 自动推断生产环境。确认答案只在当前会话有效,不写入项目文件。
14
+
13
15
  - Windows 下生成 PowerShell 指南;macOS/Linux 下生成 bash/zsh 指南(只生成当前环境可用内容,省 token)
14
16
  - 平台无关探测全部用 Node 原生实现(`os` / `process.env` / `fs`),不依赖特定 shell
15
17
  - 工具版本并行探测;项目上下文以 git 根为基准,并按 lock 文件推断推荐包管理器与项目命令
@@ -41,6 +43,8 @@ npx pwsh-guide --version
41
43
  - `references/commands.md`:按探测到的工具动态裁剪的命令模板
42
44
  - `.meta.json`:生成快照(`check` 漂移检测的基准)
43
45
 
46
+ 环境边界:环境确认是会话级安全提示,不是生产数据授权。开发环境缺少数据时,代理应报告数据不可用,不得自行切换到生产数据源。
47
+
44
48
  ## 探测内容(只读)
45
49
 
46
50
  - 平台与 OS:`os.platform()` / `os.release()` / `os.arch()` / 主机名 / 用户与临时目录
@@ -72,4 +76,5 @@ test/probe.test.js 单元测试(node --test)
72
76
  ## 验证范围
73
77
 
74
78
  - CI:windows-latest / ubuntu-latest / macos-latest 三平台自动运行单元测试与 `init`/`check` 集成验证
75
- - Windows:本机实测(探测 JSON / init / refresh / check)
79
+ - Windows:本机实测(探测 JSON / init / refresh / check)
80
+ - 会话边界:模板包含环境确认问句与未知环境下的仅本地数据策略
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pwsh-guide",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Generate a project-level Agent Skill: probe the current environment (Windows PowerShell / macOS / Linux shell) and produce a reliable command guide (SKILL.md + references) for agents such as Codex and Claude Code.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,4 +30,4 @@
30
30
  "claude-code"
31
31
  ],
32
32
  "license": "MIT"
33
- }
33
+ }
package/src/render.js CHANGED
@@ -229,6 +229,16 @@ function renderEnvironment(env) {
229
229
  lines.push('');
230
230
  lines.push('> 本文件由 pwsh-guide 生成;环境变化后运行 `pwsh-guide refresh` 更新,运行 `pwsh-guide check` 检测漂移。');
231
231
  lines.push('');
232
+ lines.push('## 会话环境确认');
233
+ lines.push('');
234
+ lines.push('当前部署环境不由本机探测自动判定;执行环境、数据或远程服务相关操作前,必须直接询问用户:');
235
+ lines.push('');
236
+ lines.push('> 请确认当前项目环境:开发环境、测试/预发布环境、生产环境,还是不确定?');
237
+ lines.push('');
238
+ lines.push('- 未回答、回答含糊或证据冲突时:按未知环境和仅本地数据处理。');
239
+ lines.push('- 用户确认生产环境不等于获得生产数据访问或写入授权。');
240
+ lines.push('- 确认结果只对当前会话有效,不写入项目文件、快照或长期记忆。');
241
+ lines.push('');
232
242
  lines.push('## Shell 环境');
233
243
  lines.push('');
234
244
  lines.push('| 项 | 值 |');
@@ -432,4 +442,4 @@ function renderCommands(env) {
432
442
  return lines.join('\n');
433
443
  }
434
444
 
435
- export { renderEnvironment, renderCommands };
445
+ export { renderEnvironment, renderCommands };
@@ -7,6 +7,19 @@ description: 本项目的 PowerShell(Windows PowerShell 5.1)命令执行指
7
7
 
8
8
  > 由 `pwsh-guide v{{generatorVersion}}` 生成于 {{generatedAt}}。环境变化后运行 `pwsh-guide refresh` 更新;`pwsh-guide check` 可检测环境漂移。
9
9
 
10
+ ## 0. 当前会话环境确认(必须先做)
11
+
12
+ 在执行依赖环境、数据、服务或远程路径的操作前,先直接询问用户:
13
+
14
+ > 请确认当前项目环境:开发环境、测试/预发布环境、生产环境,还是不确定?
15
+
16
+ - 用户确认“开发环境”:只使用本地或开发数据;不得因为缺少数据就去搜索生产路径、生产数据库或远程生产资源。
17
+ - 用户确认“测试/预发布环境”:只使用测试或预发布数据;不得静默切换到生产数据。
18
+ - 用户确认“生产环境”:这只是当前环境说明,不等于获得生产数据访问或写入授权;需要时仍要单独确认操作范围和授权。
19
+ - 用户跳过、回答含糊或信息冲突:按“未知环境 + 仅本地数据”处理;报告数据不可用,不要猜测或切换环境。
20
+ - 不要根据目录名、Git 分支、主机名、容器、`NODE_ENV` 或工具是否存在来替代用户确认。
21
+ - 确认结果只对当前会话有效,不写入项目文件、`.meta.json`、环境参考文件或长期记忆;下一次会话重新确认。
22
+
10
23
  ## 1. 执行命令前先确认
11
24
 
12
25
  - 默认 shell 是 `{{shellName}}`(PS {{psVersion}}),**不是 bash/cmd**:禁止 `ls -la`、`grep`、`cat`、`rm -rf`、`export`、`dir`、`copy`。
@@ -83,4 +96,4 @@ description: 本项目的 PowerShell(Windows PowerShell 5.1)命令执行指
83
96
  - 禁止 bash 语法:`ls -la`、`grep`、`cat`、`rm -rf`、`export`、`dir`、`copy`。
84
97
  - 删除一律用 `Remove-Item -Path <path> -Recurse -Force`,且先确认路径再执行。
85
98
  - 未读文件内容不得修改;不得批量格式化无关代码。
86
- - 仓库 AGENTS.md 规则优先于本文件。
99
+ - 仓库 AGENTS.md 规则优先于本文件。
@@ -7,6 +7,19 @@ description: 本项目的 PowerShell(pwsh 7)命令执行指南。需要执
7
7
 
8
8
  > 由 `pwsh-guide v{{generatorVersion}}` 生成于 {{generatedAt}}。环境变化后运行 `pwsh-guide refresh` 更新;`pwsh-guide check` 可检测环境漂移。
9
9
 
10
+ ## 0. 当前会话环境确认(必须先做)
11
+
12
+ 在执行依赖环境、数据、服务或远程路径的操作前,先直接询问用户:
13
+
14
+ > 请确认当前项目环境:开发环境、测试/预发布环境、生产环境,还是不确定?
15
+
16
+ - 用户确认“开发环境”:只使用本地或开发数据;不得因为缺少数据就去搜索生产路径、生产数据库或远程生产资源。
17
+ - 用户确认“测试/预发布环境”:只使用测试或预发布数据;不得静默切换到生产数据。
18
+ - 用户确认“生产环境”:这只是当前环境说明,不等于获得生产数据访问或写入授权;需要时仍要单独确认操作范围和授权。
19
+ - 用户跳过、回答含糊或信息冲突:按“未知环境 + 仅本地数据”处理;报告数据不可用,不要猜测或切换环境。
20
+ - 不要根据目录名、Git 分支、主机名、容器、`NODE_ENV` 或工具是否存在来替代用户确认。
21
+ - 确认结果只对当前会话有效,不写入项目文件、`.meta.json`、环境参考文件或长期记忆;下一次会话重新确认。
22
+
10
23
  ## 1. 执行命令前先确认
11
24
 
12
25
  - 默认 shell 是 `{{shellName}}`(pwsh {{psVersion}}),**不是 bash/cmd**:禁止 `ls -la`、`grep`、`cat`、`rm -rf`、`export`、`dir`、`copy`。
@@ -88,4 +101,4 @@ description: 本项目的 PowerShell(pwsh 7)命令执行指南。需要执
88
101
  - 禁止 bash 语法:`ls -la`、`grep`、`cat`、`rm -rf`、`export`、`dir`、`copy`。
89
102
  - 删除一律用 `Remove-Item -Path <path> -Recurse -Force`,且先确认路径再执行。
90
103
  - 未读文件内容不得修改;不得批量格式化无关代码。
91
- - 仓库 AGENTS.md 规则优先于本文件。
104
+ - 仓库 AGENTS.md 规则优先于本文件。
@@ -7,6 +7,19 @@ description: 本项目的 Unix shell(bash/zsh)命令执行指南。需要执
7
7
 
8
8
  > 由 `pwsh-guide v{{generatorVersion}}` 生成于 {{generatedAt}}。环境变化后运行 `pwsh-guide refresh` 更新;`pwsh-guide check` 可检测环境漂移。
9
9
 
10
+ ## 0. 当前会话环境确认(必须先做)
11
+
12
+ 在执行依赖环境、数据、服务或远程路径的操作前,先直接询问用户:
13
+
14
+ > 请确认当前项目环境:开发环境、测试/预发布环境、生产环境,还是不确定?
15
+
16
+ - 用户确认“开发环境”:只使用本地或开发数据;不得因为缺少数据就去搜索生产路径、生产数据库或远程生产资源。
17
+ - 用户确认“测试/预发布环境”:只使用测试或预发布数据;不得静默切换到生产数据。
18
+ - 用户确认“生产环境”:这只是当前环境说明,不等于获得生产数据访问或写入授权;需要时仍要单独确认操作范围和授权。
19
+ - 用户跳过、回答含糊或信息冲突:按“未知环境 + 仅本地数据”处理;报告数据不可用,不要猜测或切换环境。
20
+ - 不要根据目录名、Git 分支、主机名、容器、`NODE_ENV` 或工具是否存在来替代用户确认。
21
+ - 确认结果只对当前会话有效,不写入项目文件、`.meta.json`、环境参考文件或长期记忆;下一次会话重新确认。
22
+
10
23
  ## 1. 执行命令前先确认
11
24
 
12
25
  - 默认 shell 是 `{{shellName}}`,**不是 PowerShell/cmd**:禁止 `Get-ChildItem`、`Get-Content`、`Set-Content`、`dir`、`copy`、`$env:`。
@@ -72,4 +85,4 @@ description: 本项目的 Unix shell(bash/zsh)命令执行指南。需要执
72
85
  - 禁止 PowerShell/cmd 语法:`Get-ChildItem`、`Get-Content`、`Set-Content`、`dir`、`copy`、`$env:`。
73
86
  - `rm -rf` 前必须确认路径;删除操作先展示计划。
74
87
  - 未读文件内容不得修改;不得批量格式化无关代码。
75
- - 仓库 AGENTS.md 规则优先于本文件。
88
+ - 仓库 AGENTS.md 规则优先于本文件。