@xgent-ai/skills 0.7.8 → 0.7.9
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 +8 -19
- package/bin/xgent-skills.js +23 -55
- package/dist/phoenix-diagram/VERSION.json +18 -18
- package/dist/phoenix-diagram/bundle/ENGINE.json +18 -18
- package/dist/phoenix-diagram/bundle/manifest.json +4 -4
- package/dist/phoenix-diagram/bundle/references/migration.md +1 -1
- package/dist/phoenix-diagram/bundle/scripts/phoenix-bootstrap.cjs +4 -103
- package/dist/phoenix-ui/THIRD-PARTY.json +1 -1
- package/dist/phoenix-ui/VERSION.json +19 -19
- package/dist/phoenix-ui/bundle/blobs/{567c3f42394f9aee9b048a001016a7ba9d8773d78027f8c995c379886634e719 → 0c95d5c7163bc162cca460e2297ab146e331fd279a738a2055643b45b161c706} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{f077545caeb3ecb9f51a3f703a09736ca924869f4b4345c1b1ffbd9bf927a287 → 14bd6a733ce89fcd02bf6dcf0f91378625cb7739a0baaca9cb7611c332ac4580} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{125bc7030d7f2ba789d7b1d5f474af34f8902b764e7bc351b98f1f6f55779929 → 14f329a7925311958685a16ba370c4997e924d909091e0977e5d32b3e64ecc4f} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{8078b804bea630ed9c4ea07ec2f8ac92aba4128725860a66599eda90390d98f6 → 2b168c9ff212b8daea0d4334c94810458a683cde62f26b985855f8bf3f959db7} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{00f4a6a630f31eb05fbdd5725e4a294233d24574bd70f4f32f4597d8256a7c1c → 2fbbc46784d2ab789675941ce81d91822ac00bd5c3e144d06743d0b8ccaccc90} +2 -17
- package/dist/phoenix-ui/bundle/blobs/{90f8b07ec12b78e633e306322cda58415aea70d8e0f9ff85bd439361c01dabe1 → 35913e9a7ac47f91c8af70867c71d938aa7f200b562c867fa6a43c4a6209ef61} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{0e684572eb98d24b39cd70fa23e66c163178f5a11756dcf8a98fe2335636b33f → 3b62a4d253765fe0bdb180581cf493434d15de94e1b31470c573c0a21ece9e31} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{68b454a99ba72c3b9b93ed96c4267847297169f6a5bf321b20e60d637c271068 → 557baa7f9ea3d863f40602f37a85e9af09f9120cfa0669b0b95539774e87b9dc} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{c0a70ab2889e5c16e1f09249aefad948ce352c42cfe2b5afb758a4524e1b21b6 → 67fc771aa87556ecc8236c44e76251a41fa4e1809c6ad8c6a1f8eb9de91bb2d7} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{88b150cb804bc141b80a5687a091f61b99627155c465a27adb88546ef615af92 → 6b3068f23e684f8566e7f4b069a5554624f479d57ff9073610a0917fe5b5e5af} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{61450dbef64859e3136cd17ae3e997134d5df5721d96985c4e07367f38522129 → 6f600dfa082ed593159d3906d108baff9f4cb6bf90817a47429d613a95771d6f} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{36310febe3e7bd4c9b21407603f2a04afefdc87b7821758bb47098b1b2876765 → 7bff2e1985a347235ef84b783f801eb3f5872d6e2a8d0278fc8c52c3cd1ac4a4} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{e46d63e5f8a6ead1d44c8b6302a0c7247af8585b975ab5715518381777622ede → 821bda87cb9fc9f4349cf5243e18d7b4afc899ee884e33b16007ca3f1f5c9de1} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{cadc2daefcf238aab981fa56388381d3d5ab9c0686bb9dd8187035c9933dfcee → 8291ff7c0eef14199f7d209cb8eb5e6643034c1923805b5c7023c93010d7af6e} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{6b8d4c71355429a0b16bf367163fea46103a0a99b4e34f87608a39d85b1b980a → 94e595bc8239f72e0f5389f83aa022b18541839fb651d87b5933e89c92836a15} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{55277fa15eb4bd2f09bf7bb24c4e79df417b06654b1e10f502c7928b192fd7cc → ba015e8aac17711d7dfbcfce3e8c92190af383af595b9ca58b7df2c0c30ba579} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{3625c5c2750f117021232ce81c1e39ac5ef7c21445729327b88cf54dfc937df0 → fddd4bd853ad367d7f755477ee7c5ac3d0d3965c81c8a8e20eb83edc9cb7d43b} +1 -1
- package/dist/phoenix-ui/bundle/manifest.json +34 -34
- package/docs/phoenix-diagram.md +8 -6
- package/{skills/review-ui/references/phoenix-review.md → docs/phoenix-ui-review.md} +7 -12
- package/docs/phoenix-ui.md +17 -19
- package/package.json +2 -1
- package/skills/apply-ui-review/SKILL.md +1 -1
- package/skills/optimize-agents-md/SKILL.md +39 -21
- package/skills/optimize-agents-md/assets/coding-principles.md +78 -38
- package/skills/phoenix-diagram/ENGINE.json +18 -18
- package/skills/phoenix-diagram/references/migration.md +1 -1
- package/skills/phoenix-diagram/scripts/phoenix-bootstrap.cjs +4 -103
- package/skills/phoenix-ui/GENERATED.json +78 -78
- package/skills/phoenix-ui/SKILL.md +1 -1
- package/skills/phoenix-ui/scripts/ENGINE.json +19 -19
- package/skills/phoenix-ui/scripts/phoenix-bootstrap.cjs +2 -17
- package/skills/review-ui/SKILL.md +2 -1
- package/skills/xgent-init/SKILL.md +1 -1
- package/skills/review-ui/references/rules.v1.json +0 -1853
package/docs/phoenix-diagram.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Phoenix Diagram 0.2.0 提供 architecture、workflow、sequence、dataflow、lifecycle、erd、class、tree、timeline、waterfall 十类的原生生成、独立 HTML 阅读与导出,可对固定提交核对仓库来源,阅读器界面支持 en、zh-CN、zh-TW、es、ko。新稿声明 `meta.input_contract: "phoenix-v1"`;原五类未标记的旧 JSON 按 `legacy-2.17` 解释,新五类只有 `phoenix-v1`,原 JSON/HTML 不被迁移。仓库以 phoenix-diagram 为唯一活跃图解入口;其他项目及个人旧安装须分别处理。数值图表、仪表盘及其他 infographic 不在范围内。
|
|
4
4
|
|
|
5
|
-
`@xgent-ai/skills@0.7.
|
|
5
|
+
`@xgent-ai/skills@0.7.8` 已公开发布,配套四平台引擎已托管,最终 npm 包已通过 Node 18 与维护 Node 的联合安装验证。P3 的完整交接(含真实 provider 会话和视觉审核)仍未完成。candidate 的 loopback 下载地址仅用于隔离验收,不能直接作为公开 npm/R2 发行资源。
|
|
6
|
+
|
|
7
|
+
UI 与 Diagram 共用 [Phoenix CI](../.github/workflows/phoenix.yml):同一次运行完成两个工具的检查,发布仍使用同一个 `@xgent-ai/skills` npm 包。
|
|
6
8
|
|
|
7
9
|
## npm 发布安装
|
|
8
10
|
|
|
@@ -14,13 +16,13 @@ npm 发布包与仓库的 `xgent-skills install` 默认同时安装 Phoenix UI
|
|
|
14
16
|
|
|
15
17
|
```sh
|
|
16
18
|
node "$PACKAGE_DIR/bin/xgent-skills.js" install "$PROJECT" \
|
|
17
|
-
--no-phoenix-ui --
|
|
19
|
+
--no-phoenix-ui --providers=claude,codex \
|
|
18
20
|
--diagram-release-dir="$RELEASE_DIR"
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
这里跳过 UI 是候选消费范围:包内 UI 原资源保持原样,不能把它当作 diagram 四平台发行的证据。总安装器默认启用两个 Phoenix 工具;不支持 diagram 的平台默认跳过 diagram 并说明,显式指定 `--diagram-release-dir` 时仍在写项目前失败。`--release-dir` 只控制 UI,`--diagram-release-dir` 只控制 diagram,`--no-phoenix-diagram` 跳过且保留已有 diagram 安装。所有选项、XGENT、UI、diagram 预检均先于项目写入。执行顺序为 XGENT → UI → diagram;后段失败会报告前段已完成项,不回滚另一个工具。
|
|
22
24
|
|
|
23
|
-
默认按项目已有 provider 目录选择,空项目用 `.claude`。`codex` 识别 `.agents` 或 `.codex`,diagram skill 仅进入 `$PROJECT/.agents/skills/phoenix-diagram`;本工具不新增 hooks、settings、AGENTS 或个人级 skill。新开 Claude Code/Codex 项目会话后核对实际加载的 skill
|
|
25
|
+
默认按项目已有 provider 目录选择,空项目用 `.claude`。`codex` 识别 `.agents` 或 `.codex`,diagram skill 仅进入 `$PROJECT/.agents/skills/phoenix-diagram`;本工具不新增 hooks、settings、AGENTS 或个人级 skill。新开 Claude Code/Codex 项目会话后核对实际加载的 skill 路径。安装直接覆盖工具文件,不产生安装历史目录;成功后清理旧 `$PROJECT/.phoenix-diagram/install/`,保留图表输出等项目数据。
|
|
24
26
|
|
|
25
27
|
引擎按 VERSION 的大小、SHA-256 与 probe 校验,缓存位于 `~/.phoenix-diagram/bin/<toolVersion>/<platform>/<engineSha256>/phoenix-diagram`;`PHOENIX_DIAGRAM_HOME` 可隔离缓存。普通命令不联网补装。缺引擎时只在用户明确请求安装后执行回执的 `setupCommand`(doctor 的 `recovery.engineInstall` 使用同一指引)。candidate/development 指向当前本地包或已安装 skill 的入口,不按同名版本去 registry 取另一个包;将命令中的 `MATCHING_RELEASE_DIR` 替换为该候选配套完整 release-dir 的实际绝对路径。用户或已提供材料尚未明确给出该路径时,先询问并停止安装,等待答复;安装授权不代替资源路径,不搜索项目外目录、猜路径、省略 `--release-dir` 试装或执行占位符。该目录按当前 VERSION/ENGINE 的原字节、引擎摘要和许可校验;遗失候选包或配套目录时须重新取得同一 tgz 和资源。只有 distribution=release 才输出 `npm exec --package=@xgent-ai/skills@<固定版本>`。candidate/release 离线目录必须含四平台;development 只校验清单声明的全部平台资源,单平台开发制品不计四平台验收。目录缺少声明的资源、清单或许可证时直接失败,不回退在线下载。
|
|
26
28
|
|
|
@@ -28,9 +30,9 @@ node "$PACKAGE_DIR/bin/xgent-skills.js" install "$PROJECT" \
|
|
|
28
30
|
|
|
29
31
|
普通安装保留旧 Archify。只有明确请求迁移时,按[包内迁移合同](../skills/phoenix-diagram/references/migration.md)先 dry-run 查看精确项目/provider/来源及逐项路径,再以覆盖该范围的明确确认执行 `migrate --from-archify --confirm-remove-archify`。仅完整匹配固定来源的项目副本可移除;自定义、额外/缺失文件、链接、外部管理与个人安装保留。旧 skill 不备份,回滚不重建,恢复旧入口须按回执指引显式重装;原 JSON 和已有 HTML 保持。
|
|
30
32
|
|
|
31
|
-
联合入口为 `node "$PACKAGE_DIR/bin/xgent-skills.js" install "$PROJECT" --migrate-archify --diagram-release-dir="$RELEASE_DIR"`,使用已存在的匹配引擎,先展示目标和后果。TTY 肯定答复后才移除;拒绝/EOF 不迁移。非交互须另加 `--confirm-remove-archify`;单独确认标志无效。此分支跳过 XGENT hooks/settings
|
|
33
|
+
联合入口为 `node "$PACKAGE_DIR/bin/xgent-skills.js" install "$PROJECT" --migrate-archify --diagram-release-dir="$RELEASE_DIR"`,使用已存在的匹配引擎,先展示目标和后果。TTY 肯定答复后才移除;拒绝/EOF 不迁移。非交互须另加 `--confirm-remove-archify`;单独确认标志无效。此分支跳过 XGENT hooks/settings 和 UI,`--no-phoenix-diagram` 仍跳过并保留,普通联合安装继续原流程。
|
|
32
34
|
|
|
33
|
-
中断后读取真实 `transactionId`、已删/剩余旧项与 `recoveryCommand`,只恢复指定事务。`rollbackCommand` 仅逆向恢复当前 committed 事务的 Diagram 受管写入,支持 v1/v2;预检发现后来修改先保持零变更,同一 ID 幂等,不跨过后来安装。恢复旧 Diagram active 时原生重新绑定实际文件身份,不手工复制回执。若部分回滚已恢复旧 launcher,优先原样执行回执给出的已验证新原生引擎命令,不从 PATH
|
|
35
|
+
中断后读取真实 `transactionId`、已删/剩余旧项与 `recoveryCommand`,只恢复指定事务。`rollbackCommand` 仅逆向恢复当前 committed 事务的 Diagram 受管写入,支持 v1/v2;预检发现后来修改先保持零变更,同一 ID 幂等,不跨过后来安装。恢复旧 Diagram active 时原生重新绑定实际文件身份,不手工复制回执。若部分回滚已恢复旧 launcher,优先原样执行回执给出的已验证新原生引擎命令,不从 PATH 选择旧引擎。迁移恢复入口不要求损坏/pending active 先完整提交;不自动下载或重装。普通工具启动不依赖迁移回执。
|
|
34
36
|
|
|
35
37
|
回执的 `legacyBackupPolicy: "none"`、`legacyRestoration: "not-supported"` 与 `reinstallInstructions` 必须交接;`backup` 只指 Diagram 受管文件。重开 provider 会话核实际加载的新 skill 路径,未处理的外部/个人入口不计全机唯一入口已生效。迁移成功也不代表图像已重新验收。
|
|
36
38
|
|
|
@@ -138,7 +140,7 @@ ls -la "<原输出父目录>"
|
|
|
138
140
|
| invalid | 参数或不支持的记录格式,读取 diagnostics | 2 |
|
|
139
141
|
| failed | I/O 或运行失败,读取 diagnostics | 4 |
|
|
140
142
|
|
|
141
|
-
返回的 `target` 只在可信记录核验后提供。文件恢复不生成 delivery/browser/visual
|
|
143
|
+
返回的 `target` 只在可信记录核验后提供。文件恢复不生成 delivery/browser/visual 通过回执,后续交付仍需适用检查。项目安装中断时重跑 install 即可:安装直接覆盖工具文件,不保留旧版本、备份或事务日志。成功安装会清理旧 `.phoenix-diagram/install/`,保留图表输出等项目数据。普通启动只校验固定的 ENGINE 清单及引擎摘要,不依赖安装回执。
|
|
142
144
|
|
|
143
145
|
## 阅读与导出
|
|
144
146
|
|
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
# Phoenix managed 评审协议
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
仅在明确使用 Phoenix CLI 管理评审记录时读取。本协议描述工具接口,不定义独立的 review-ui / apply-ui-review 工作流;工具不可用不阻止 agent 依据目标、真实证据和 Markdown 历史继续评审或修复。工具的计分与裁定测试数据位于 [rules.json](../tools/phoenix-ui/crates/review/tests/fixtures/rules.json),不绑定 skill 文档指纹或规则版本。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 先发现可用能力
|
|
6
6
|
|
|
7
|
-
1.
|
|
8
|
-
2.
|
|
9
|
-
3.
|
|
10
|
-
4. 已有 managed 索引而 engine 缺失或不匹配:只读历史,可采集未登记素材;不计分、不裁定、不改代码、目标、处置、计数或生成区。给出按实际固定包版本恢复 engine 的命令,例如 `npm exec --package=@xgent-ai/skills@<packageVersion> -- phoenix-ui engine install --project <项目路径>`,替换为回执中的真实值并正确引用路径;没有期望版本时先说明所缺的回执,不能填一个猜测版本。恢复后续接原轮次,不重置、不静默降级、不自动下载或升级。
|
|
7
|
+
1. 查询实际可用的 `phoenix-ui review --help` 与 `phoenix-ui review schema --json`,按返回的能力和输入形状构造调用,不把某个包版本或 engine 身份作为 agent 工作流的前置条件。typed examples 是占位样例,必须替换成真实材料。
|
|
8
|
+
2. 若使用工具续接记录,读原索引和 `review status`,沿用实际 round、revision 与历史。无法识别或写入工具状态时保留原文件,继续以 Markdown 记录真实证据、评审和修复结果,不猜字段、不清空历史。
|
|
9
|
+
3. 工具恢复可用后,核对已有记录和期间新增材料,再按实际支持的接口登记;不能把未登记的材料声称为已同步。已有人工历史只经显式 import 接管,全新无历史且已选择工具管理时才 begin。
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
## CLI 操作与调用时机
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## 固定 verbs 与调用时机
|
|
17
|
-
|
|
18
|
-
以下是操作形状,不是可直接写入的 JSON schema。路径、round、revision 和输入字段取自本项目的真实材料及匹配 engine 返回;工作流操作和 schema 查询带 `--json`,帮助也可用 `--json`。执行时保存实际 argv、输入、输出与退出码。
|
|
13
|
+
以下是操作形状,不是可直接写入的 JSON schema。路径、round、revision 和输入字段取自本项目的真实材料及实际 CLI 返回;工作流操作和 schema 查询带 `--json`,帮助也可用 `--json`。执行时保存实际 argv、输入、输出与退出码。
|
|
19
14
|
|
|
20
15
|
| 操作 | 参数 | 用途与边界 |
|
|
21
16
|
| --- | --- | --- |
|
package/docs/phoenix-ui.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# XGENT Phoenix UI
|
|
1
|
+
# XGENT Phoenix UI:安装与使用
|
|
2
2
|
|
|
3
3
|
Phoenix UI 是 XGENT 自主维护的设计工具,承接 [impeccable](https://github.com/pbakaus/impeccable) skill 4.5.0 / engine 0.1.11 的固定源码(Apache-2.0)。版本、规则、构建和发布都由本仓控制:不查询上游 latest,不从上游或 impeccable.style 下载任何东西。来源、修改标识与三方许可见包内 `dist/phoenix-ui/NOTICE.md`、`THIRD-PARTY-NOTICES.md`。
|
|
4
4
|
|
|
@@ -14,9 +14,9 @@ npx @xgent-ai/skills install
|
|
|
14
14
|
一次安装分两段,先完成全部只读预检再写项目:
|
|
15
15
|
|
|
16
16
|
1. **预检**:校验参数、`.claude/settings.json` 与 guard 配置;把包内 `dist/phoenix-ui/VERSION.json` 固定的 engine 下载或从 `--release-dir` 读取,按大小、SHA-256 和 `engine-probe` 身份核对后放进用户 cache;再以 dry-run 计算 Phoenix 的写入和合并。仅由待重装工具目录引起的冲突在清理后重新计算,其余预检失败不写项目。
|
|
17
|
-
2.
|
|
17
|
+
2. **写入**:按下节的选择删除待替换工具,写入 XGENT 部分,随后直接覆盖 Phoenix UI 的 skill、agents 和启动文件。共享配置只替换 Phoenix hook,保留其他 handler 和配置。安装不创建回执、事务日志或旧版本备份;成功后删除旧 `.phoenix-ui/install/` 和 `.phoenix-ui/migrations/`,保留配置和业务数据。中断后重跑同一命令覆盖安装。
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
安装输出列出写入、合并与移除及重载步骤;相同内容重复安装显示「未变」。预检失败不写项目,写入失败显示未完成并提示处理错误后重跑。
|
|
20
20
|
|
|
21
21
|
| 选项 | 作用 |
|
|
22
22
|
| --- | --- |
|
|
@@ -39,9 +39,7 @@ npm exec --package=@xgent-ai/skills@<包版本> -- phoenix-ui engine install --p
|
|
|
39
39
|
|
|
40
40
|
`npx @xgent-ai/skills install` 发现 impeccable 时询问是否替换。选择是,直接删除所选 provider 的旧 skill、固定 agents/commands 入口和旧 hooks,并关闭相应的 impeccable 插件启用项;项目级与个人级路径均在范围内,不创建工具备份,不留旧命令转跳入口。只移除引用旧 launcher 的 command handler,保留同组的其他 hooks、matcher 和未知配置。选择否则保留这些工具与配置,Phoenix 正常安装,不因旧入口、旧 live 状态或版本不同而阻止激活。
|
|
41
41
|
|
|
42
|
-
无交互环境默认共存;自动化可用 `--replace-impeccable` 或 `--keep-impeccable`
|
|
43
|
-
|
|
44
|
-
旧回执曾管理的五个辅助 skill 在本次升级时释放归属,现有文件原样保留;后续由 skills.sh 更新,不再阻止 Phoenix 安装。
|
|
42
|
+
无交互环境默认共存;自动化可用 `--replace-impeccable` 或 `--keep-impeccable` 明确选择。Phoenix UI 文件直接按当前包覆盖,包括 skills.sh 或手动复制修改过的文件,不要求旧回执或摘要一致。运行只检查 ENGINE 和引擎,不依赖安装日志。独立辅助 skill 由各自安装渠道管理,现有文件保留。
|
|
45
43
|
|
|
46
44
|
这些操作不改业务代码、文档和 `.impeccable/` 数据。普通 npm 安装不显示文档中的旧入口引用和个人级旧分命令 skill 的迁移提示。个人级旧入口只在选择替换时删除。清理后若安装中断,直接重跑;需要旧工具时从 Git 或其安装渠道恢复。
|
|
47
45
|
|
|
@@ -67,9 +65,9 @@ npm exec --package=@xgent-ai/skills@<包版本> -- phoenix-ui engine install --p
|
|
|
67
65
|
| 固定旧状态路径或注入日志中记录的 live、注入或变体残留;显式迁移还检查源码中的孤立标记 | 用旧项目的 launcher 正常停止、`live-inject --remove`、接受或丢弃变体;不要按 PID 杀进程 |
|
|
68
66
|
| 个人级(如 `~/.claude/skills/impeccable`)旧入口、旧 hook 或插件 | 安装器只读发现、不改个人配置;按输出在对应工具中禁用或移除后重载并重跑 |
|
|
69
67
|
|
|
70
|
-
##
|
|
68
|
+
## 显式迁移的回滚与恢复
|
|
71
69
|
|
|
72
|
-
|
|
70
|
+
仅显式旧数据迁移保留原有回滚接口;普通安装不提供旧版本回滚,且会清除旧迁移备份。迁移输出中的回滚命令只撤销该迁移写入的条目:
|
|
73
71
|
|
|
74
72
|
```bash
|
|
75
73
|
npm exec --package=@xgent-ai/skills@<包版本> -- phoenix-ui migrate --rollback <事务ID> --project <项目>
|
|
@@ -78,7 +76,7 @@ npm exec --package=@xgent-ai/skills@<包版本> -- phoenix-ui migrate --rollback
|
|
|
78
76
|
- 独占文件按迁移后的摘要核对后还原;共享 JSON 只逆转本次加入或移除的条目,后来新增的 allow、guard 阈值和未知字段保留。受管条目被改过时返回 3 并列出冲突,不强制回退。
|
|
79
77
|
- 回滚不撤销在 Phoenix 中做的产品代码修改,也不把新数据格式塞回旧工具;`.phoenix-ui/` 中的备份、日志与新数据保留,确认稳定后可手动删除。
|
|
80
78
|
- 普通安装直接删除的 impeccable 工具和未受管 Phoenix 副本不在回滚范围内,不会从安装日志恢复。
|
|
81
|
-
-
|
|
79
|
+
- 显式迁移中断后,下一次显式迁移会先读日志恢复;也可显式执行 `phoenix-ui migrate --recover --project <项目>`。遇到无法确认的新改动时停下并列出冲突,不覆盖。
|
|
82
80
|
|
|
83
81
|
一致性保证覆盖进程崩溃或强制退出;不承诺突然掉电后零丢失,掉电损坏时从备份人工恢复。
|
|
84
82
|
|
|
@@ -159,20 +157,20 @@ npm exec --package=@xgent-ai/skills@<包版本> -- phoenix-ui surface-brief link
|
|
|
159
157
|
|
|
160
158
|
`link` 保存原文件路径、SHA-256 与接受记录,原 brief 留在选定仓库,不复制第二份可编辑正文。URL/route 是逻辑目标,`target.exists: null` 不表示文件缺失。设计流程详见包内 `design-reference`、`ui-pattern-research`、`design-md` 的实际指令。
|
|
161
159
|
|
|
162
|
-
用 `review-ui` 评审、`apply-ui-review`
|
|
160
|
+
用 `review-ui` 评审、`apply-ui-review` 按报告修复,再由新的独立评审确认;修复方最多登记「已修改待评审」。这两个 skill 不依赖 Phoenix。选择 CLI 管理记录时,查询实际 `review` 帮助、输入形状和本循环状态,只有无旧历史的新循环才 begin:
|
|
163
161
|
|
|
164
162
|
```bash
|
|
165
|
-
npm exec --package=@xgent-ai/skills
|
|
166
|
-
npm exec --package=@xgent-ai/skills
|
|
167
|
-
npm exec --package=@xgent-ai/skills
|
|
168
|
-
npm exec --package=@xgent-ai/skills
|
|
163
|
+
npm exec --package=@xgent-ai/skills -- phoenix-ui review --help
|
|
164
|
+
npm exec --package=@xgent-ai/skills -- phoenix-ui review schema --json
|
|
165
|
+
npm exec --package=@xgent-ai/skills -- phoenix-ui review status --prefix "docs/ui/orders" --json
|
|
166
|
+
npm exec --package=@xgent-ai/skills -- phoenix-ui review begin --prefix "docs/ui/orders" --target "docs/ui/orders.ui-target.md" --tested-version "docs/ui/orders.tested-version.json" --json
|
|
169
167
|
```
|
|
170
168
|
|
|
171
169
|
`review schema --json` 返回 `reviewSchema: 1`、`discoveryVersion: 1` 的完整 typed examples 与枚举变体,可用 `--kind tested-version` 等选择一种输入。它描述当前 serde 字段形状,不是完整 JSON Schema;样例的文字、数字和布尔值均为占位,不证明执行成功或当前 UI 事实。真实身份、路径、hash、版本和 revision 取实际操作与取证。帮助和 schema 不读写循环;新前缀的父目录不存在时,`status` 可直接返回 `absent`,不创建目录或循环。
|
|
172
170
|
|
|
173
|
-
`--tested-version` 的 JSON 由宿主提供真实 HEAD 加 clean/dirty 指纹,或可核对的 build ID,并与本轮应用/采集一致;省略时为 Unknown,不能判通过。context 提供目标和规范来源,不自动生产版本记录。后续 capture、judge-pack、judge add、finalize、apply record 使用返回的 round/current revision 和实际合同输入;**退出 0 不等于 UI 通过**,必须回读 verdict 与报告,`confirmation_required` 仍为草稿。参数与输入边界见 [Phoenix managed 评审协议](
|
|
171
|
+
`--tested-version` 的 JSON 由宿主提供真实 HEAD 加 clean/dirty 指纹,或可核对的 build ID,并与本轮应用/采集一致;省略时为 Unknown,不能判通过。context 提供目标和规范来源,不自动生产版本记录。后续 capture、judge-pack、judge add、finalize、apply record 使用返回的 round/current revision 和实际合同输入;**退出 0 不等于 UI 通过**,必须回读 verdict 与报告,`confirmation_required` 仍为草稿。参数与输入边界见 [Phoenix managed 评审协议](phoenix-ui-review.md),目标、报告和处置沿 [review-ui 合同](../skills/review-ui/references/report-contract.md) 与 [修复记录合同](../skills/apply-ui-review/references/record-contract.md)。
|
|
174
172
|
|
|
175
|
-
已有 Markdown 历史无 managed 索引时继续 manual,只有显式 `review import --prefix <前缀> --input <映射.json> --json` 才接管;未知历史不能填零。`legacyMarkdown` 无法确定历史最佳时返回 3
|
|
173
|
+
已有 Markdown 历史无 managed 索引时继续 manual,只有显式 `review import --prefix <前缀> --input <映射.json> --json` 才接管;未知历史不能填零。`legacyMarkdown` 无法确定历史最佳时返回 3 并保持人工循环。工具不可用或无法识别状态时保留原索引,agent 继续依据 Markdown 历史、真实证据和评审合同工作;恢复工具后核对并登记新增材料,不删索引或清空历史。生成区被手改时先另存原文与 hash,用 `projectionRebase` 显式核对副本、当前 hash 和 cycle revision 后恢复权威区块;要保留的采集/处置再以当前 revision 提交。封存报告与评审原文不覆盖。
|
|
176
174
|
|
|
177
175
|
## 维护者:统一候选与本地交接
|
|
178
176
|
|
|
@@ -192,7 +190,7 @@ mise exec --no-deps -- npm --prefix ../.. run test:phoenix
|
|
|
192
190
|
|
|
193
191
|
prepare 显式联网准备锁定依赖、工具、浏览器、迁移包和公告快照;随后 audit/build/runtime 使用已准备缓存与离线合同,`CARGO_NET_OFFLINE` 不单独证明全部网络已禁止。`--development` 仅是本机开发制品。`check-phoenix-deps.mjs --distribution-dir <目录>` 另核对分发许可,真实 browser/provider 会话仍分别取证。完整维护入口见 [prepare](../scripts/prepare-phoenix-ui.mjs)、[build](../scripts/build-phoenix-ui.mjs)、[audit](../scripts/check-phoenix-deps.mjs)、[runtime tests](../scripts/test-phoenix-ui.mjs)。
|
|
194
192
|
|
|
195
|
-
[CI
|
|
193
|
+
统一的 [Phoenix CI](../.github/workflows/phoenix.yml) 在同一次运行中检查 UI 和 Diagram,并给出共同结果。UI 在 macOS/Linux 四个平台同架构冷构建/运行,不恢复编译缓存,另有 Node18 consumer。固定成功 run 的四份 native、四份 phase evidence、一份 Node18 evidence 必须保留原始 ZIP/digest、HEAD/tree、工具链、输入/制品摘要、许可及全部真实 step/phase 结果。CI 不持 R2/npm 凭据;缺平台、失败 phase 或摘要不符不能交接。
|
|
196
194
|
|
|
197
195
|
发布只用一条命令,在 **main 分支上干净、已推送且 Phoenix CI 成功**的 HEAD 上执行,不创建独立发布分支,也不从 detached HEAD 发布。版本号先在 `package.json` 改好,并用上面的开发构建同步 `VERSION.json`/`ENGINE.json`/`GENERATED.json`:
|
|
198
196
|
|
|
@@ -204,10 +202,10 @@ mise exec --no-deps -- npm run release:phoenix -- --prepare-only # 只做到
|
|
|
204
202
|
[release-phoenix-ui.mjs](../scripts/release-phoenix-ui.mjs) 依次执行,任一步失败即停:
|
|
205
203
|
|
|
206
204
|
1. 核对当前分支为 `main`、工作树干净、Diagram 的四平台 release 清单、bundle、完整许可证与公共 HTTPS 下载地址齐备,npm 上还没有这个版本,找到该提交成功的 Phoenix CI run(也可用 `--run-id` 指定)。
|
|
207
|
-
2.
|
|
205
|
+
2. 从统一 CI 下载 UI 的九个原始 ZIP,逐个核对 GitHub digest。
|
|
208
206
|
3. 用 [publish-phoenix-ui-r2.mjs](../scripts/publish-phoenix-ui-r2.mjs) 条件上传四个 engine(已存在即拒绝覆盖),公共 URL 回读通过后冻结 release manifest。凭据取已导出的 `AGENT_RELEASE_R2_*`,没有时读仓根 `.env.cf` 里的同名行。
|
|
209
207
|
4. 用 [pack-phoenix-ui-release.mjs](../scripts/pack-phoenix-ui-release.mjs) 只打一次联合 tarball:保留 `package.json` 声明的 UI 和 Diagram bin、skill、文档及发行资源,最终包再次通过发布校验。`xgent-skills install` 默认安装两者。Diagram 默认使用仓库中已准备好的 release 资源,也可用 `--diagram-release-dir DIR` 指定同版本的完整正式资源目录,在打包阶段注入;本脚本不构建或上传 Diagram 引擎,缺少资源时在上传 UI 前停止。
|
|
210
|
-
5. 用 [check-phoenix-ui-release.mjs](../scripts/check-phoenix-ui-release.mjs) 在 Node 18 和维护 Node 上联合新装(两个 engine 从公共 URL 下载),核对 Diagram 引擎摘要、可运行入口及重复安装;另检查 0.3.0/0.6.0 工具保留共存、直接删除替换、无回执 Phoenix
|
|
208
|
+
5. 用 [check-phoenix-ui-release.mjs](../scripts/check-phoenix-ui-release.mjs) 在 Node 18 和维护 Node 上联合新装(两个 engine 从公共 URL 下载),核对 Diagram 引擎摘要、可运行入口及重复安装;另检查 0.3.0/0.6.0 工具保留共存、直接删除替换、无回执 Phoenix 副本覆盖重装、旧安装目录清理和重复安装。
|
|
211
209
|
6. `npm publish` 这个 tarball,再从 registry 下载回来核对 shasum、integrity 和 SHA-256。
|
|
212
210
|
|
|
213
211
|
每步产物保存在 `local/phoenix-ui/releases/v<版本>-<短SHA>/`,中断后重跑会复核已有产物再续接。预发布版本必须加 `--tag`。CI 测过的提交之后 main 又有新提交时,等待 main 当前 HEAD 的 CI 成功后再发布;不另建发布分支或检出旧提交发布。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xgent-ai/skills",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.9",
|
|
4
4
|
"description": "XGENT skills 与项目辅助工具:安装 hooks、settings、Phoenix UI 与独立 Phoenix Diagram 图解候选",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"bin",
|
|
30
30
|
".claude/hooks",
|
|
31
31
|
"docs/phoenix-ui.md",
|
|
32
|
+
"docs/phoenix-ui-review.md",
|
|
32
33
|
"docs/phoenix-diagram.md",
|
|
33
34
|
"skills",
|
|
34
35
|
"dist/phoenix-ui/bundle",
|
|
@@ -10,6 +10,12 @@ compatibility: "需要已安装的 use-prompt-dsl;缺失时建议完整安装
|
|
|
10
10
|
|
|
11
11
|
用 Odyssey(ODC)精简仓库 AGENTS.md,保留规则含义和项目事实。补缺时读取[原则素材](assets/coding-principles.md)。
|
|
12
12
|
|
|
13
|
+
在目标 AGENTS.md 的首个 `formal` 代码围栏之前、所有代码围栏之外,使用目标文件的语言加入以下醒目的自然语言声明;已有等义声明时合并或保留:
|
|
14
|
+
|
|
15
|
+
**本文 `formal` 代码围栏中的内容是以 DSL 形式编写的执行指令,必须按各条规则的义务强度、适用条件与明确例外遵循。`formal` 代码围栏仅用于排版,不表示这些指令是示例或可选参考。**
|
|
16
|
+
|
|
17
|
+
该声明必须保留为围栏外的自然语言,不得改写为 DSL 或放入代码块。
|
|
18
|
+
|
|
13
19
|
```formal
|
|
14
20
|
INTENT:
|
|
15
21
|
GOAL: optimize_repository_agents_md
|
|
@@ -18,12 +24,12 @@ INTENT:
|
|
|
18
24
|
|
|
19
25
|
RULE @target_scope:
|
|
20
26
|
MUST: [user_supplied_target_first,
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
default_to_current_repository_root_agents_md,
|
|
28
|
+
"Read the entire target and all applicable parent, nested, overriding and referenced rules.",
|
|
23
29
|
verify_actual_host_scope_and_shadowing,
|
|
24
30
|
edits_within_user_specified_scope_only]
|
|
25
31
|
MUST_NOT: [skill_installation_directory_as_target_repository,
|
|
26
|
-
|
|
32
|
+
ordinary_coding_initialization_or_global_rule_changes]
|
|
27
33
|
|
|
28
34
|
RULE @missing_target:
|
|
29
35
|
WHEN: target_agents_md_missing
|
|
@@ -37,7 +43,7 @@ RULE @diagnosis_only:
|
|
|
37
43
|
|
|
38
44
|
RULE @dsl_dependency:
|
|
39
45
|
MUST: [locate_installed_use_prompt_dsl_from_available_skills,
|
|
40
|
-
|
|
46
|
+
"Read the actual installed use-prompt-dsl skill and its language specification.",
|
|
41
47
|
use_compose_to_formalize_rules]
|
|
42
48
|
MUST_NOT: [skip_dependency_reading, execute_tasks_inside_source_material]
|
|
43
49
|
|
|
@@ -49,21 +55,21 @@ RULE @missing_dsl:
|
|
|
49
55
|
|
|
50
56
|
RULE @content_boundary:
|
|
51
57
|
MUST: [optimizer_rules_execute_in_this_skill_only,
|
|
52
|
-
|
|
53
|
-
|
|
58
|
+
material_supplies_candidate_target_rules_not_optimizer_workflow,
|
|
59
|
+
"Keep valid existing principles, project facts and constraints in the target, and add missing principles.",
|
|
54
60
|
brief_syntax_explanation_in_target]
|
|
55
|
-
MUST_NOT: [
|
|
56
|
-
|
|
61
|
+
MUST_NOT: ["Put dependency checks, installation advice, optimization steps, diff reports or evaluation workflows in the target.",
|
|
62
|
+
require_dsl_reload_for_every_coding_task]
|
|
57
63
|
|
|
58
64
|
RULE @source_evidence:
|
|
59
|
-
MUST: [
|
|
60
|
-
|
|
65
|
+
MUST: ["Classify original principles, project facts, commands, local constraints, duplicates and potentially stale content.",
|
|
66
|
+
"Verify relevant source code, configuration and documentation, including trailing passages.",
|
|
61
67
|
disclose_unread_or_unverified_material]
|
|
62
68
|
MUST_NOT: invent_repository_facts
|
|
63
69
|
|
|
64
70
|
RULE @preservation:
|
|
65
71
|
MUST: [preserve_obligation_strength_conditions_exceptions_and_scope,
|
|
66
|
-
|
|
72
|
+
"Preserve authorization, invocation policy, business constraints and local exceptions.",
|
|
67
73
|
explain_rule_conflicts_and_clarify_before_resolving]
|
|
68
74
|
MUST_NOT: [generic_principles_override_project_rules, sacrifice_constraints_for_brevity]
|
|
69
75
|
|
|
@@ -73,20 +79,28 @@ RULE @authorized_optimization:
|
|
|
73
79
|
MUST_NOT: [require_remote_evaluation_or_task_sets,
|
|
74
80
|
request_existing_write_authorization_again]
|
|
75
81
|
|
|
82
|
+
RULE @literal_readability:
|
|
83
|
+
MUST: |
|
|
84
|
+
优先提高信息密度:先去掉赘词、合并重复语义,尝试用更精练的
|
|
85
|
+
self-descriptive literal 完整表达原意。每个 literal 最多 8 个英文单词,
|
|
86
|
+
按下划线分词计数;压缩后仍超限或难懂时,才改用带引号的自然语言短句,
|
|
87
|
+
较长段落用 | 承载。不得靠生僻缩写、合并单词、删除条件或拆散完整约束
|
|
88
|
+
来规避上限。此约定适用于本 skill 及其生成的规则。
|
|
89
|
+
|
|
76
90
|
RULE @principle_expression:
|
|
77
91
|
MUST: [compact_odyssey_rule_fragments_embedded_directly_in_target,
|
|
78
92
|
only_necessary_must_must_not_should_prefer_clauses,
|
|
79
93
|
merge_semantic_duplicates, remove_obsolete_content_only_with_evidence,
|
|
80
|
-
|
|
94
|
+
retain_usable_commands_paths_operations_and_necessary_links]
|
|
81
95
|
MUST_NOT: [outer_or_module_wrappers,
|
|
82
|
-
|
|
96
|
+
force_intent_ontology_output_review_blocks_into_target,
|
|
83
97
|
cryptic_abbreviations_or_layered_references_for_compression]
|
|
84
98
|
|
|
85
99
|
RULE @principle_completion:
|
|
86
100
|
MUST: [read_principle_material,
|
|
87
|
-
|
|
101
|
+
semantically_check_all_rules_in_principle_material,
|
|
88
102
|
fill_only_missing_coverage, integrate_in_original_language_and_structure]
|
|
89
|
-
MUST_NOT: [duplicate_covered_principles,
|
|
103
|
+
MUST_NOT: [duplicate_covered_principles, require_original_numbering_or_separate_sections_per_rule,
|
|
90
104
|
drop_trust_boundary_validation_under_internal_contract_trust,
|
|
91
105
|
omit_necessary_work_under_do_less,
|
|
92
106
|
skip_required_acceptance_under_milestone_execution]
|
|
@@ -94,13 +108,17 @@ RULE @principle_completion:
|
|
|
94
108
|
RULE @write_and_verify:
|
|
95
109
|
MUST: [recheck_current_file_before_writing, preserve_concurrent_user_edits,
|
|
96
110
|
reread_diff_after_scoped_edits,
|
|
97
|
-
|
|
111
|
+
"Account for every original rule as preserved, merged or removed with evidence.",
|
|
98
112
|
verify_added_principles_complete_without_duplicates_or_conflicts,
|
|
99
|
-
|
|
113
|
+
"Verify that template conditions are preserved and project commands, paths and links remain valid.",
|
|
100
114
|
verify_no_optimizer_workflow_leaked_into_target,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
115
|
+
"Before each check, state the specific unresolved failure it detects and how failure changes the next action.",
|
|
116
|
+
"Run only checks that address that live uncertainty, including applicable required acceptance.",
|
|
117
|
+
"Reuse valid results; add checks only for new concrete failures."]
|
|
118
|
+
MUST_NOT: [rewrite_compact_complete_target_merely_to_produce_diff,
|
|
119
|
+
unrelated_tests_or_behavior_search,
|
|
120
|
+
"Add a redundant smoke check after a real full run covers the same path.",
|
|
121
|
+
manufacture_findings_when_existing_rules_are_correct]
|
|
104
122
|
|
|
105
123
|
WORKFLOW @optimize:
|
|
106
124
|
TRIGGER: repository_agents_md_optimization_or_diagnosis_requested
|
|
@@ -118,7 +136,7 @@ RULE @delivery_evidence:
|
|
|
118
136
|
compare_semantics_rule_by_rule_when_reporting_compression,
|
|
119
137
|
explain_no_change_when_no_file_modified]
|
|
120
138
|
MUST_NOT: [delete_rules_to_hit_compression_ratio,
|
|
121
|
-
|
|
139
|
+
infer_behavior_or_task_quality_gains_from_brevity]
|
|
122
140
|
|
|
123
141
|
OUTPUT:
|
|
124
142
|
FORMAT: markdown
|
|
@@ -3,17 +3,22 @@
|
|
|
3
3
|
Odyssey 片段:`RULE` 声明本文作用域内的常驻规则;`MUST` 必须,`MUST_NOT` 禁止,`SHOULD` 通常应满足,`PREFER` 在不冲突时优先;`=>[a, b]` 表示若 a 则 b,`&&[a, b]` 表示同时满足。直接嵌入 AGENTS.md,不加外层包装。
|
|
4
4
|
|
|
5
5
|
```formal
|
|
6
|
+
RULE @execution_basis:
|
|
7
|
+
MUST: ["Execute based on the current user request, applicable AGENTS.md or active development plan.",
|
|
8
|
+
"Treat historical plans, handoffs, old prompts and old audit feedback as factual background only."]
|
|
9
|
+
MUST_NOT: historical_material_independently_authorizes_or_expands_current_work
|
|
10
|
+
|
|
6
11
|
RULE @think_before_coding:
|
|
7
12
|
MUST: [state_assumptions_explicitly_before_implementation,
|
|
8
13
|
when_uncertain_or_confused_stop_identify_and_ask,
|
|
9
|
-
|
|
14
|
+
present_competing_interpretations_and_tradeoffs,
|
|
10
15
|
surface_simpler_approaches, push_back_when_warranted]
|
|
11
16
|
MUST_NOT: silently_choose_or_hide_alternative_interpretations
|
|
12
17
|
|
|
13
18
|
RULE @simplicity:
|
|
14
19
|
MUST: [simplest_correct_solution,
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
"Validate only at system boundaries, including user input, external APIs and files.",
|
|
21
|
+
"Trust internal code, established contracts, invariants and framework guarantees.",
|
|
17
22
|
handle_only_real_actionable_failures]
|
|
18
23
|
MUST_NOT: [speculative_abstractions, unnecessary_fallbacks,
|
|
19
24
|
excessive_defenses, impossible_scenario_guards,
|
|
@@ -23,11 +28,11 @@ RULE @simplicity:
|
|
|
23
28
|
RULE @scope:
|
|
24
29
|
MUST: [implement_requested_scope_only, preserve_existing_patterns,
|
|
25
30
|
reuse_or_simplify_before_abstracting,
|
|
26
|
-
|
|
31
|
+
allow_deleting_confirmed_unused_code_within_agreed_scope]
|
|
27
32
|
PREFER: small_changes
|
|
28
|
-
MUST_NOT: [
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
MUST_NOT: ["Add unrequested features, configuration, compatibility layers, UI or architecture changes.",
|
|
34
|
+
"Add feature flags or backward compatibility shims when direct code changes suffice.",
|
|
35
|
+
"Add compatibility hacks through underscore renaming of unused variables or type reexports."]
|
|
31
36
|
|
|
32
37
|
RULE @requirement_confirmation:
|
|
33
38
|
WHEN: non_brainstorming
|
|
@@ -42,40 +47,58 @@ RULE @legacy_compatibility:
|
|
|
42
47
|
|
|
43
48
|
RULE @user_experience:
|
|
44
49
|
MUST: [design_around_user_expectations, user_facing_copy_serves_users]
|
|
45
|
-
MUST_NOT: [
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
MUST_NOT: ["Put unnecessary engineering details, internal state or obvious interaction explanations in the UI.",
|
|
51
|
+
"Put developer notes, implementation comments or internal instructions in the UI.",
|
|
52
|
+
"Add prompts or warnings unless they help meaningful decisions or prevent major errors."]
|
|
48
53
|
|
|
49
54
|
RULE @current_documentation:
|
|
50
55
|
MUST: [comments_explain_why,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
current_concise_searchable_sources_of_truth
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
"Add comments only for nonobvious logic or code that is not self explanatory.",
|
|
57
|
+
"Update or remove stale comments and documentation when behavior changes.",
|
|
58
|
+
current_concise_searchable_sources_of_truth,
|
|
59
|
+
code_comments_and_docs_present_correct_current_result,
|
|
60
|
+
explain_current_rationale_without_discarded_alternatives,
|
|
61
|
+
task_status_discloses_actual_failures_and_unverified_items]
|
|
62
|
+
MUST_NOT: ["Add docstrings, comments or type annotations to otherwise unchanged code.",
|
|
63
|
+
comments_paraphrasing_code,
|
|
64
|
+
"Leave development error stories, discarded plans, historical corrections or explanations of why X was not done in code comments and documentation.",
|
|
65
|
+
accumulate_history_or_append_corrections_to_stale_text,
|
|
66
|
+
"Add AI attribution markers such as Generated by or AI Co-authored-by signatures.",
|
|
67
|
+
"Add formulaic model transitions or openers such as here is to authored output.",
|
|
57
68
|
duplicate_documentation]
|
|
58
69
|
|
|
59
70
|
RULE @evidence:
|
|
60
|
-
MUST: [
|
|
61
|
-
|
|
71
|
+
MUST: ["Read relevant source, specifications and documentation passages fully before drawing conclusions.",
|
|
72
|
+
cover_relevant_sections_and_tail_of_long_documents,
|
|
62
73
|
disclose_unverified_items,
|
|
63
|
-
investigate_existing_behavior_and_contracts_before_changes
|
|
64
|
-
|
|
74
|
+
investigate_existing_behavior_and_contracts_before_changes,
|
|
75
|
+
acknowledge_correct_work_when_supported_by_evidence]
|
|
76
|
+
MUST_NOT: [infer_unread_content, invent_requirements_or_constraints,
|
|
77
|
+
manufacture_findings_for_appearances_or_review_quotas]
|
|
65
78
|
|
|
66
79
|
RULE @meaningful_tests:
|
|
67
80
|
MUST: [protect_meaningful_behavior_key_boundaries_and_real_regressions,
|
|
68
81
|
exercise_interfaces_from_external_caller_perspective,
|
|
69
82
|
assert_actual_caller_observable_outcomes,
|
|
70
|
-
|
|
83
|
+
"Delete tests that still pass when all tested function bodies are empty and return no data.",
|
|
71
84
|
remove_obsolete_or_redundant_tests_within_agreed_scope,
|
|
72
|
-
|
|
73
|
-
retest_only_after_meaningful_change_new_failure_or_discovered_concrete_acceptance_evidence_gap,
|
|
85
|
+
"Reuse valid verification when relevant code, configuration and conditions are unchanged.",
|
|
74
86
|
run_smallest_relevant_check]
|
|
75
87
|
MUST_NOT: [redundant_tests, trivial_assertions, implementation_coupled_tests,
|
|
76
88
|
per_function_coverage_chasing, exhaustive_imaginary_failures,
|
|
77
89
|
add_unnecessary_regression_burden,
|
|
78
|
-
|
|
90
|
+
"Repeat the whole suite solely for reassurance or because a report was challenged."]
|
|
91
|
+
|
|
92
|
+
RULE @live_uncertainty:
|
|
93
|
+
MUST: |
|
|
94
|
+
Before any check, state in one sentence the specific unresolved failure it will
|
|
95
|
+
detect and how failure would change the next action; if either cannot be stated,
|
|
96
|
+
do not run it. Default to one minimal real-data sanity check and one recheck
|
|
97
|
+
directly tied to the change, only when each answers a live uncertainty.
|
|
98
|
+
Reuse a completed real full run that covers the same path; do not add a smoke
|
|
99
|
+
check for that path. Add further checks only for a newly observed concrete failure.
|
|
100
|
+
Scope required acceptance up front from the current execution basis; this default
|
|
101
|
+
does not waive explicit acceptance requirements or authorize extra checks at milestones.
|
|
79
102
|
|
|
80
103
|
RULE @automated_test_scope:
|
|
81
104
|
MUST: automated_tests_assert_outcomes_produced_by_deterministic_code
|
|
@@ -84,35 +107,52 @@ RULE @automated_test_scope:
|
|
|
84
107
|
|
|
85
108
|
RULE @complete_milestones:
|
|
86
109
|
MUST: [prioritize_quality_and_completeness_over_token_savings,
|
|
87
|
-
|
|
110
|
+
"Apply full effort to required reasoning, investigation, implementation and verification.",
|
|
88
111
|
concise_communication, respect_agreed_scope_and_stopping_rules,
|
|
89
112
|
autonomously_finish_actual_remaining_work_within_agreed_scope,
|
|
90
|
-
|
|
113
|
+
fix_related_in_scope_defects_found_during_verification,
|
|
91
114
|
understand_full_scope_and_acceptance_before_long_tasks,
|
|
92
115
|
deliver_coherent_complete_milestones,
|
|
93
|
-
|
|
94
|
-
|
|
116
|
+
working_first_correct_before_delivery,
|
|
117
|
+
treat_forward_progress_as_part_of_delivery,
|
|
118
|
+
verification_at_each_stage_follows_live_uncertainty,
|
|
95
119
|
measure_progress_by_complete_usable_deliverables]
|
|
96
|
-
MUST_NOT: [
|
|
120
|
+
MUST_NOT: [stall_unfinished_functionality_with_excessive_defensive_work,
|
|
121
|
+
repeated_stops_after_fragmentary_changes,
|
|
97
122
|
full_suite_after_every_micro_edit, test_frequency_as_progress,
|
|
98
|
-
|
|
123
|
+
stop_at_findings_despite_actionable_in_scope_work,
|
|
99
124
|
open_ended_hunts_for_hypothetical_or_unrelated_problems]
|
|
100
125
|
|
|
101
126
|
RULE @temporary_resource_cleanup:
|
|
102
127
|
WHEN: code_and_test_reviews_completed
|
|
103
|
-
MUST: [
|
|
128
|
+
MUST: ["Inspect task-related temporary directories, Git worktrees, branches and Docker containers.",
|
|
104
129
|
identify_resources_safe_to_remove,
|
|
105
130
|
verify_no_background_task_dependencies_before_cleanup,
|
|
106
|
-
|
|
131
|
+
promptly_delete_safe_temporary_resources_to_reclaim_space]
|
|
132
|
+
|
|
133
|
+
RULE @proportionate_recovery:
|
|
134
|
+
MUST: |
|
|
135
|
+
Choose failure handling from actual user impact and the cost of starting over.
|
|
136
|
+
For cheap, safely repeatable work with disposable intermediate state, default to
|
|
137
|
+
reporting failure and allowing a fresh attempt; preserve existing user data and
|
|
138
|
+
perform only the cleanup needed to make that attempt safe.
|
|
139
|
+
Add transaction journals, checkpoints, resumable execution or recovery state
|
|
140
|
+
machines only for an explicit requirement or demonstrated material loss of user
|
|
141
|
+
data, nonrepeatable side effects or expensive rework, within the authorized scope.
|
|
142
|
+
Use the smallest mechanism that addresses that concrete consequence.
|
|
143
|
+
MUST_NOT: [infer_recovery_requirements_merely_because_interruption_is_possible,
|
|
144
|
+
treat_optional_tools_as_critical_infrastructure_without_evidence,
|
|
145
|
+
"Add old-version restoration or downgrade support without an explicit user requirement."]
|
|
107
146
|
|
|
108
147
|
RULE @complexity_budget:
|
|
109
|
-
MUST: [
|
|
110
|
-
|
|
148
|
+
MUST: ["Ensure every added check, abstraction, dependency, error branch, test or UI element justifies its maintenance cost.",
|
|
149
|
+
remove_redundant_complexity_before_adding_abstractions_or_dependencies,
|
|
111
150
|
rethink_overcomplicated_design, complete_necessary_work_correctly,
|
|
112
|
-
=>[
|
|
113
|
-
&&[
|
|
114
|
-
|
|
115
|
-
MUST_NOT: [
|
|
151
|
+
=>["Adding complexity for speculative or vanishingly unlikely race conditions or security edge cases.",
|
|
152
|
+
&&["Explain the concrete failure mode, its likelihood and the complexity cost to the user.",
|
|
153
|
+
explain_then_obtain_buy_in_before_adding_complexity]]]
|
|
154
|
+
MUST_NOT: ["Add hashes, checksums or fingerprints unless they replace a materially more expensive operation AND their result changes the next action.",
|
|
155
|
+
add_layers_to_an_overcomplicated_design,
|
|
116
156
|
silently_expand_scope_for_theoretical_robustness]
|
|
117
157
|
PREFER: fewer_additions
|
|
118
158
|
```
|
|
@@ -3,37 +3,37 @@
|
|
|
3
3
|
"distribution": "release",
|
|
4
4
|
"tool": "phoenix-diagram",
|
|
5
5
|
"toolVersion": "0.2.0",
|
|
6
|
-
"npmPackageVersion": "0.7.
|
|
7
|
-
"sourceCommit": "
|
|
8
|
-
"sourceInputSha256": "
|
|
6
|
+
"npmPackageVersion": "0.7.9",
|
|
7
|
+
"sourceCommit": "7229a8ba08f7d37bc37530e00e4d933903f1b5cf",
|
|
8
|
+
"sourceInputSha256": "910df91b4e857da6e30d8982aea308d2e1bf2d99c2d7644cb5455b37762740d9",
|
|
9
9
|
"inputContractSchema": 1,
|
|
10
10
|
"receiptSchema": 1,
|
|
11
11
|
"viewerRevision": "phoenix-v2",
|
|
12
|
-
"bundleSha256": "
|
|
12
|
+
"bundleSha256": "e573234de7918dc87e1630c30a4ea1ba5862cc647dc0023a6d578ccb114e2ab6",
|
|
13
13
|
"engines": {
|
|
14
14
|
"darwin-arm64": {
|
|
15
15
|
"asset": "phoenix-diagram-darwin-arm64",
|
|
16
|
-
"size":
|
|
17
|
-
"sha256": "
|
|
18
|
-
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.
|
|
16
|
+
"size": 17549968,
|
|
17
|
+
"sha256": "5f432a278a433bd456e8b65e0eb7a4128665f31d8c992609d6eb1cd9c48b7429",
|
|
18
|
+
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.9/ci-41410951647/darwin-arm64/phoenix-diagram-darwin-arm64"
|
|
19
19
|
},
|
|
20
20
|
"darwin-x64": {
|
|
21
21
|
"asset": "phoenix-diagram-darwin-x64",
|
|
22
|
-
"size":
|
|
23
|
-
"sha256": "
|
|
24
|
-
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.
|
|
25
|
-
},
|
|
26
|
-
"linux-x64": {
|
|
27
|
-
"asset": "phoenix-diagram-linux-x64",
|
|
28
|
-
"size": 21880592,
|
|
29
|
-
"sha256": "59ef4d6ac3f08e000c387a668915e31a8f44a83cc01ba9b89381fadc193e09f6",
|
|
30
|
-
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.8/linux-x64/phoenix-diagram-linux-x64"
|
|
22
|
+
"size": 19556424,
|
|
23
|
+
"sha256": "236384da35f4f65e892966b5912b1c1631fb4819194a7d51085076f2bc3b1a79",
|
|
24
|
+
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.9/ci-41410951647/darwin-x64/phoenix-diagram-darwin-x64"
|
|
31
25
|
},
|
|
32
26
|
"linux-arm64": {
|
|
33
27
|
"asset": "phoenix-diagram-linux-arm64",
|
|
34
28
|
"size": 19406792,
|
|
35
|
-
"sha256": "
|
|
36
|
-
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.
|
|
29
|
+
"sha256": "0df998aed2c0d1968a94151e01e1be0ea73b62f279ff3f33fbaa2ec037e3c215",
|
|
30
|
+
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.9/ci-41410951647/linux-arm64/phoenix-diagram-linux-arm64"
|
|
31
|
+
},
|
|
32
|
+
"linux-x64": {
|
|
33
|
+
"asset": "phoenix-diagram-linux-x64",
|
|
34
|
+
"size": 21861536,
|
|
35
|
+
"sha256": "502c95c538ab6db7c4b3de80c65e7188a84a4326ba6a5a965a1c23e7b6033037",
|
|
36
|
+
"url": "https://download.xgent.ai/vendor/phoenix-diagram/v0.7.9/ci-41410951647/linux-x64/phoenix-diagram-linux-x64"
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|