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 +12 -8
- package/docs/development.md +4 -16
- package/docs/usage.md +0 -4
- package/package.json +1 -1
- package/skills/p2f/SKILL.md +2 -7
- package/skills/p2f-npm-publish/SKILL.md +130 -0
package/README.md
CHANGED
|
@@ -20,23 +20,29 @@ p2f 是为 PRD 原型页面采集还原数据、生成实现计划的 CLI。它
|
|
|
20
20
|
## 环境要求
|
|
21
21
|
|
|
22
22
|
- Node.js `>= 20`
|
|
23
|
-
- Git
|
|
23
|
+
- Git 和 PRD 原型源码仓库访问权限
|
|
24
24
|
- Flutter SDK
|
|
25
25
|
- YouFi Flutter 项目根目录,通常需要存在 `pubspec.yaml` 和 `lib/app`
|
|
26
|
-
- CLI
|
|
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
|
-
|
|
32
|
+
从 npmjs.com 全局安装:
|
|
35
33
|
|
|
36
34
|
```bash
|
|
37
|
-
npm install -g
|
|
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
|
|
package/docs/development.md
CHANGED
|
@@ -4,28 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
## 更新 CLI
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
发布版从 npmjs.com 更新:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
npm install -g prd-to-flutter@latest
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
需要确认 npmjs.com 上的最新版本时执行:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
|
|
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
package/skills/p2f/SKILL.md
CHANGED
|
@@ -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
|
|
212
|
+
- `p2f doctor` 会顺带检查 p2f CLI 版本;这只是提醒项,不负责安装。
|
|
215
213
|
- `p2f doctor --offline` 跳过 PRD 仓库新鲜度和 p2f 版本这类网络检查。
|
|
216
|
-
- `
|
|
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`:人类可读的发布说明。
|