prd-to-flutter 0.1.0 → 0.1.1

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
@@ -20,23 +20,29 @@ p2f 是为 PRD 原型页面采集还原数据、生成实现计划的 CLI。它
20
20
  ## 环境要求
21
21
 
22
22
  - Node.js `>= 20`
23
- - Git 和公司 GitLab SSH 权限
23
+ - Git PRD 原型源码仓库访问权限
24
24
  - Flutter SDK
25
25
  - YouFi Flutter 项目根目录,通常需要存在 `pubspec.yaml` 和 `lib/app`
26
- - CLI 会从公司 GitLab 克隆/拉取 PRD 原型仓库到当前项目的 `.p2f-workspace/prd-source`:
27
- - 远端:`git@code.nexita.net:inno/youfi/web/TradeAppPrd.git`
28
- - 分支:`master`
26
+ - CLI 会把 PRD 原型源码同步到当前项目的 `.p2f-workspace/prd-source`
29
27
 
30
28
  `p2f init` 会自动安装 PRD 依赖、Playwright Chromium 和内置 p2f skill,不需要手工运行 `npx playwright install chromium`。升级 CLI 或内置 skill 变更后,可以重新执行 `p2f skills-install` 安装/更新 agent 规则。
31
29
 
32
30
  ## 安装
33
31
 
34
- 从公司 GitLab 仓库全局安装,建议使用 tag 固定版本:
32
+ npmjs.com 全局安装:
35
33
 
36
34
  ```bash
37
- npm install -g git+ssh://git@code.nexita.net/inno/youfi/client/prd-to-flutter.git#v0.1.0
35
+ npm install -g prd-to-flutter
38
36
  ```
39
37
 
38
+ 升级到 npmjs.com 上的最新版本:
39
+
40
+ ```bash
41
+ npm install -g prd-to-flutter@latest
42
+ ```
43
+
44
+ 包页面见 [prd-to-flutter](https://www.npmjs.com/package/prd-to-flutter)。
45
+
40
46
  本地开发见 [维护与发布](docs/development.md)。
41
47
 
42
48
  ## 快速开始
@@ -75,8 +81,6 @@ p2f generate --page "订单详情" "https://example.com/prototype/order-detail"
75
81
  | `p2f paths --url "<页面链接>"` | 打印当前项目的 p2f 工作区、共享项目快照、pages 和任务目录路径。 |
76
82
  | `p2f screenshots-audit --url "<页面链接>"` | 审计 agent 截图目录,识别重复截图和疑似截到原型平台壳层的错误截图。 |
77
83
  | `p2f doctor` | 检查环境、skill、`.p2f-workspace/prd-source` 和 p2f 版本。 |
78
- | `p2f update --check` | 检查当前 p2f 是否有新版本,不安装。 |
79
- | `p2f update` | 从公司 GitLab 最新 tag 重新全局安装 p2f CLI。 |
80
84
 
81
85
  完整命令表见 [使用流程](docs/usage.md#常用命令)。
82
86
 
@@ -4,28 +4,16 @@
4
4
 
5
5
  ## 更新 CLI
6
6
 
7
- p2f 使用公司 GitLab tag 作为版本来源。检查新版本:
7
+ 发布版从 npmjs.com 更新:
8
8
 
9
9
  ```bash
10
- p2f update --check
10
+ npm install -g prd-to-flutter@latest
11
11
  ```
12
12
 
13
- 从最新 tag 重新安装 p2f CLI:
13
+ 需要确认 npmjs.com 上的最新版本时执行:
14
14
 
15
15
  ```bash
16
- p2f update
17
- ```
18
-
19
- `p2f update` 会执行全局 npm 安装,效果等同于重新运行:
20
-
21
- ```bash
22
- npm install -g git+ssh://git@code.nexita.net/inno/youfi/client/prd-to-flutter.git#<最新tag>
23
- ```
24
-
25
- 如果 p2f CLI 的 GitLab 安装来源变更,可以临时指定:
26
-
27
- ```bash
28
- p2f update --repo git@code.nexita.net:inno/youfi/client/prd-to-flutter.git
16
+ npm view prd-to-flutter version --registry https://registry.npmjs.org/
29
17
  ```
30
18
 
31
19
  ## 发布
package/docs/usage.md CHANGED
@@ -37,8 +37,6 @@ p2f init
37
37
  | `p2f screenshots-audit --url "<页面链接>"` | 审计 agent 截图目录,识别重复截图和疑似截到原型平台壳层的错误截图。 |
38
38
  | `p2f doctor` | 检查环境、skill、`.p2f-workspace/prd-source` 和 p2f 版本。 |
39
39
  | `p2f doctor --offline` | 跳过远端网络检查,只检查本地状态。 |
40
- | `p2f update --check` | 检查当前 p2f 是否有新版本,不安装。 |
41
- | `p2f update` | 从公司 GitLab 最新 tag 重新全局安装 p2f CLI。 |
42
40
  | `p2f skills-install` | 把当前 CLI 自带的 p2f skill 安装/更新到当前项目的 agent 目录。 |
43
41
 
44
42
  ## 标准流程
@@ -174,8 +172,6 @@ p2f 面向人类和 agent 共同使用。所有命令都可以手工执行;执
174
172
  | `p2f remove` | `remove` | 删除 `.p2f-workspace/` 和当前项目下的 p2f agent skills;不卸载全局 CLI。 |
175
173
  | `p2f screenshots-audit` | `screenshots-audit` | 扫描 agent 写入的 `agent/screenshots/`,输出重复图分组和疑似平台壳层截图告警。 |
176
174
  | `p2f doctor` | `environment-checks` -> `skill-check` -> `prd-source-check` -> `update-check` | 检查环境、初始化状态和版本;`--offline` 会跳过网络检查。 |
177
- | `p2f update --check` | `update-check` | 只检查是否有新版本。 |
178
- | `p2f update` | `update-check` -> `update-install` | 检查 p2f CLI 版本,并用最新 tag 重新执行全局安装。 |
179
175
  | `p2f skills-install` | `skill-install` | 安装/更新内置 p2f skill;不修改 PRD 源码和页面目录。 |
180
176
 
181
177
  ## Generate 流程
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prd-to-flutter",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "description": "为 PRD 原型页面采集 YouFi Flutter 还原数据并生成实现计划的 CLI。",
6
6
  "type": "module",
@@ -38,8 +38,6 @@ p2f remove
38
38
  p2f screenshots-audit --url "<页面链接>"
39
39
  p2f doctor
40
40
  p2f doctor --offline
41
- p2f update --check
42
- p2f update
43
41
  ```
44
42
 
45
43
  `p2f init` 会自动安装 PRD 依赖、Playwright Chromium 和内置 p2f skill,不需要手工执行 `npx playwright install chromium`。
@@ -211,10 +209,9 @@ p2f paths --url "<页面链接>"
211
209
 
212
210
  ## 更新检查
213
211
 
214
- - `p2f doctor` 会顺带检查 p2f 是否落后公司 GitLab 最新 tag;这只是提醒项,不负责安装。
212
+ - `p2f doctor` 会顺带检查 p2f CLI 版本;这只是提醒项,不负责安装。
215
213
  - `p2f doctor --offline` 跳过 PRD 仓库新鲜度和 p2f 版本这类网络检查。
216
- - `p2f update --check` 只检查新版本。
217
- - `p2f update` 从公司 GitLab 最新 tag 重新全局安装 p2f CLI,行为和 `lark-cli update` 一致。
214
+ - 发布版升级使用 `npm install -g prd-to-flutter@latest`。
218
215
 
219
216
  ## 命令阶段
220
217
 
@@ -231,8 +228,6 @@ p2f 面向人类和 agent 共同使用,所有命令都可以由人类直接执
231
228
  - `p2f remove`:`remove`,用于删除当前项目里的 `.p2f-workspace/` 和 p2f agent skills;不卸载全局 CLI。
232
229
  - `p2f screenshots-audit --url "<页面链接>"`:`screenshots-audit`,用于审计 agent 截图目录中的重复图和疑似原型平台壳层截图。
233
230
  - `p2f doctor`:`environment-checks` -> `skill-check` -> `prd-source-check` -> `update-check`。
234
- - `p2f update --check`:`update-check`。
235
- - `p2f update`:`update-check` -> `update-install`,检查 p2f CLI 版本并用最新 tag 重新执行全局安装。
236
231
  - `p2f skills-install`:`skill-install`,用于安装/更新当前 CLI 自带的 p2f skill;不修改 PRD 源码和页面目录。
237
232
 
238
233
  ## 主题文件
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: p2f-npm-publish
3
+ description: Use when publishing the prd-to-flutter/p2f CLI package to npmjs.com, preparing npm release checks, running the repository publish:npm script, handling npm auth/2FA/version conflicts, and verifying the package contents before upload.
4
+ metadata:
5
+ short-description: Publish p2f CLI to npmjs.com
6
+ ---
7
+
8
+ # p2f npm Publish
9
+
10
+ 当用户要求把当前 `prd-to-flutter` 仓库里的 p2f CLI 发布到 npmjs.com,或要求“重新发布 npm 包”“检查 npm 发布流程”“跑 publish:npm”时使用本 skill。
11
+
12
+ ## 核心原则
13
+
14
+ - 只在当前 `prd-to-flutter` 仓库根目录执行发布相关命令。
15
+ - 默认先 dry-run,不要直接真实发布。
16
+ - 真实发布必须显式执行 `npm run publish:npm -- --publish`。
17
+ - 发布前必须确认 `package.json` 里 `private` 不是 `true`,`version` 是要发布的版本,`files` 包含运行所需的 `dist`、`bin`、`skills`、`docs`、`README.md`。
18
+ - 遇到 npm 登录失败、2FA、版本已存在、包名冲突时停止并报告具体阻塞,不要绕过检查强发。
19
+
20
+ ## 标准流程
21
+
22
+ ### 1. 检查当前状态
23
+
24
+ ```bash
25
+ cd <prd-to-flutter-repo-root>
26
+ git status --short
27
+ sed -n '1,90p' package.json
28
+ ```
29
+
30
+ 确认重点:
31
+
32
+ - `<prd-to-flutter-repo-root>` 是包含 `package.json`、`scripts/publish-npm.mjs` 和 `skills/p2f-npm-publish/SKILL.md` 的仓库根目录。
33
+ - `name` 当前是 `prd-to-flutter`。
34
+ - `bin.p2f` 指向 `bin/p2f.mjs`。
35
+ - `publishConfig.registry` 是 `https://registry.npmjs.org/`。
36
+ - `scripts.publish:npm` 是 `node scripts/publish-npm.mjs`。
37
+
38
+ ### 2. 检查版本是否已存在
39
+
40
+ ```bash
41
+ npm view prd-to-flutter@$(node -p "require('./package.json').version") version --registry https://registry.npmjs.org/
42
+ ```
43
+
44
+ 如果返回当前版本,说明该版本已经发布过,需要先升级版本号。不要对同一版本重复发布。
45
+
46
+ 如果返回 npm `E404`,表示该版本还不存在,可以继续。
47
+
48
+ ### 3. 先跑 dry-run
49
+
50
+ ```bash
51
+ npm run publish:npm
52
+ ```
53
+
54
+ 该命令会:
55
+
56
+ - 检查 registry 上是否已有当前版本。
57
+ - 执行 `npm run build`。
58
+ - 执行 `npm run typecheck`。
59
+ - 执行 `npm publish --dry-run`。
60
+
61
+ dry-run 成功后,检查输出里的 Tarball Contents,必须看到:
62
+
63
+ - `bin/p2f.mjs`
64
+ - `dist/cli.js`
65
+ - `dist/commands/**`
66
+ - `dist/core/**`
67
+ - `skills/p2f/SKILL.md`
68
+ - `skills/p2f-npm-publish/SKILL.md`
69
+ - `docs/**`
70
+ - `README.md`
71
+ - `package.json`
72
+
73
+ 如果 npm 提示会自动修正 `package.json`,先修正本地元数据,再重新 dry-run。
74
+
75
+ ### 4. 登录 npm
76
+
77
+ 真实发布前检查登录:
78
+
79
+ ```bash
80
+ npm whoami --registry https://registry.npmjs.org/
81
+ ```
82
+
83
+ 如果未登录,让用户先执行:
84
+
85
+ ```bash
86
+ npm login --registry https://registry.npmjs.org/
87
+ ```
88
+
89
+ CI 环境可以使用 `NPM_TOKEN`,但本地交互发布优先让用户完成 `npm login`。
90
+
91
+ ### 5. 真实发布
92
+
93
+ ```bash
94
+ npm run publish:npm -- --publish
95
+ ```
96
+
97
+ 如果 npm 账号开启双因素认证:
98
+
99
+ ```bash
100
+ npm run publish:npm -- --publish --otp <一次性验证码>
101
+ ```
102
+
103
+ 如果要使用非 latest 标签:
104
+
105
+ ```bash
106
+ npm run publish:npm -- --publish --tag beta
107
+ ```
108
+
109
+ ### 6. 发布后验证
110
+
111
+ ```bash
112
+ npm view prd-to-flutter version versions --json --registry https://registry.npmjs.org/
113
+ npm view prd-to-flutter bin files --json --registry https://registry.npmjs.org/
114
+ ```
115
+
116
+ 确认 latest 版本和 `bin.p2f` 正确后,再向用户汇报。
117
+
118
+ ## 常见阻塞
119
+
120
+ - `npm whoami` 401:未登录或 token 无效。先 `npm login`,不要继续发布。
121
+ - `npm view <name>@<version>` 返回版本号:该版本已存在。先 bump version。
122
+ - `npm publish` 提示 2FA:让用户提供一次性验证码,使用 `--otp` 重新发布。
123
+ - `npm publish --dry-run` 包内容缺 `dist`:先修复 `npm run build` 或 `files` 配置。
124
+ - `npm publish --dry-run` 提示 package metadata 自动修正:先修正 `package.json`,重新 dry-run。
125
+
126
+ ## 相关脚本
127
+
128
+ - `scripts/publish-npm.mjs`:npmjs.com 发布脚本,默认 dry-run,`--publish` 才真实上传。
129
+ - `scripts/release.mjs`:Git release 脚本,只负责 bump version、commit、tag、push,不负责 npm registry 发布。
130
+ - `docs/development.md`:人类可读的发布说明。