@anov/gis-skills-cli 0.0.0-stage → 0.3.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/CHANGELOG.md +618 -0
- package/INSTALL.md +478 -0
- package/LICENSE +15 -0
- package/README.md +148 -2
- package/RELEASING.md +160 -0
- package/bin/anov-gis-skills.mjs +408 -0
- package/lib/mcp-config.mjs +273 -0
- package/package.json +42 -4
- package/skills/anovgis-analysis/SKILL.md +585 -0
- package/skills/anovgis-effects/SKILL.md +260 -0
- package/skills/anovgis-imagery-terrain/SKILL.md +505 -0
- package/skills/anovgis-layers/SKILL.md +627 -0
- package/skills/anovgis-materials/SKILL.md +635 -0
- package/skills/anovgis-models-3dtiles/SKILL.md +448 -0
- package/skills/anovgis-pitfalls/SKILL.md +561 -0
- package/skills/anovgis-popup-widget/SKILL.md +474 -0
- package/skills/anovgis-primitives/SKILL.md +482 -0
- package/skills/anovgis-vector-graphics/SKILL.md +602 -0
- package/skills/anovgis-viewer/SKILL.md +618 -0
- package/skills/using-anovgis/DEMO-MAP.md +64 -0
- package/skills/using-anovgis/DEMO-SKILL-MAP.md +248 -0
- package/skills/using-anovgis/DOMAINS.md +183 -0
- package/skills/using-anovgis/REFERENCE.md +114 -0
- package/skills/using-anovgis/SKILL.md +392 -0
- package/skills/using-anovgis/templates/README.md +154 -0
- package/skills/using-anovgis/templates/combo1-vue3-vite.md +295 -0
- package/skills/using-anovgis/templates/combo2-vue2-cli.md +119 -0
- package/skills/using-anovgis/templates/combo3-html-cdn.md +107 -0
- package/skills/using-anovgis/templates/combo4-vanilla-webpack.md +91 -0
- package/skills/using-anovgis/templates/wizard-profiles.md +105 -0
- package/vendor/cesiumjs-skills/LICENSE +201 -0
- package/vendor/cesiumjs-skills/NOTICE +18 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-3d-tiles/SKILL.md +465 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-camera/SKILL.md +500 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-core-utilities/SKILL.md +403 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/REFERENCE.md +397 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/SKILL.md +351 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/01-diffuse-tint.js +38 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/02-texture-swap.js +42 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/03-feature-id-tileset.js +29 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/04-translucent-override.js +37 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/05-vertex-displacement.js +49 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/06-metadata-ramp.js +34 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/07-voxel-shader.js +27 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/README.md +19 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-custom-shader/examples/_sandcastle-template.html +9 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-entities/SKILL.md +389 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-imagery/SKILL.md +471 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-interaction/SKILL.md +423 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-materials-shaders/SKILL.md +292 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-models-particles/SKILL.md +423 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-primitives/SKILL.md +537 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-spatial-math/SKILL.md +358 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-terrain-environment/SKILL.md +401 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-time-properties/SKILL.md +353 -0
- package/vendor/cesiumjs-skills/skills/cesiumjs-viewer-setup/SKILL.md +434 -0
- package/vendor/cesiumjs-skills/skills/using-cesiumjs-skills/SKILL.md +35 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,618 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
所有 notable 变更记录于此。格式基于 [Keep a Changelog](https://keepachangelog.com/)。
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.3.0] - 2026-10-30
|
|
8
|
+
|
|
9
|
+
分发体系改造:npm 包内置 Cesium skill(vendor 15 个,Apache-2.0)、CLI 命令族重写为 setup/mcp/doctor/uninstall、MCP 配置自动写入各智能体
|
|
10
|
+
|
|
11
|
+
### 新增
|
|
12
|
+
|
|
13
|
+
- **Cesium skill 打进 npm 包**(`vendor/cesiumjs-skills/`,15 个 skill + Apache-2.0 LICENSE + NOTICE)。
|
|
14
|
+
`npx @anov/gis-skills-cli setup` 一条命令装齐 **27 个 skill**,不再依赖 github 或内网 GitLab。
|
|
15
|
+
`package.json` 的 `license` 改为 `ISC AND Apache-2.0`。
|
|
16
|
+
- **`scripts/sync-cesium.mjs`**:维护者从内网镜像同步 vendor(`--check` 只比对,有差异 exit 1)。
|
|
17
|
+
- **MCP 接入**:`setup` 默认写一条 `anov-gis` 的 MCP 配置,指向 `anov-gis-mcp`(stdio,`npx -y anov-gis-mcp --stdio`)。
|
|
18
|
+
- **`lib/mcp-config.mjs`**:自己实现的各智能体 MCP 配置读写,不引第三方库。
|
|
19
|
+
支持 Claude Code(`~/.claude.json` / `./.mcp.json`)、Codex(`~/.codex/config.toml`)、Cursor(`.cursor/mcp.json`)、VS Code(`.vscode/mcp.json` 的 `servers`)。
|
|
20
|
+
读现有文件 → 只改 `anov-gis` 一个条目 → 原子写回,别人的配置不碰。
|
|
21
|
+
|
|
22
|
+
### 变更
|
|
23
|
+
|
|
24
|
+
- **CLI 命令族重写**(破坏性):
|
|
25
|
+
|
|
26
|
+
| 旧 | 新 |
|
|
27
|
+
|---|---|
|
|
28
|
+
| `setup`(装 12 个 skill) | `setup`(装 27 个 skill + 写 MCP) |
|
|
29
|
+
| `verify` | `doctor`(`verify` 保留为别名) |
|
|
30
|
+
| `list` | 移除(`doctor` 会报包内 skill 数) |
|
|
31
|
+
| — | `mcp add` / `mcp remove` / `mcp show` |
|
|
32
|
+
| — | `uninstall` / `remove`(按名字精确删,不用 `--skill '*'`) |
|
|
33
|
+
|
|
34
|
+
- **默认范围从项目级改为用户级**(`--project` 切回项目级)。原实现把 skill 装进当前目录,用户常在不相关的目录里跑,装完发现没有。
|
|
35
|
+
- `uninstall` 改为**按名字精确删除** 27 个 skill,不再用 `skills remove --all`(那会连别家装的 skill 一起删)。
|
|
36
|
+
- README 重写:安装章节去智能体化,平台名只出现在命令示例里;新增「MCP 能补什么」。
|
|
37
|
+
|
|
38
|
+
### 校验
|
|
39
|
+
|
|
40
|
+
- `scripts/build-npm.mjs`:两棵 skill 树(`skills/` 与 `vendor/.../skills/`)各自校验相对链接不逃出树、无本机绝对路径;
|
|
41
|
+
新增 vendor 齐全性(15 个 skill + LICENSE + NOTICE)与 `license` 字段检查。
|
|
42
|
+
- `scripts/check-structure.mjs`:把 `vendor/` 纳入链接检查(每棵树独立判定)。
|
|
43
|
+
- `scripts/verify-published.mjs`:逐字节比对与 skills CLI 发现检查都覆盖两棵树,并验证 LICENSE / NOTICE 随包发布。
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## [0.2.23] - 2026-10-30
|
|
47
|
+
|
|
48
|
+
修正 skill 与 SDK 源码的矛盾:`ANOVGIS.Model` 构造改为单 options 对象(5 处)、`viewer.removeLayer` 改为传 layer 实例(1 处)、示例来源注释纠正(2 处)
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
- **`ANOVGIS.Model` 构造签名写错(5 处)** —— skill 写的是 `new ANOVGIS.Model(url, options)`,SDK 实际是 `constructor(options)`(`src/graphic/model/Model.js:7`),`url` / `position` 都在 options 对象里。照抄会丢掉 position
|
|
52
|
+
- `anovgis-models-3dtiles` 速查表 + S1 / S12 示例、`anovgis-vector-graphics` Model 速查表
|
|
53
|
+
- 补一句与 `Point` / `Label` / `Billboard` 的区别 —— 那三个是 `(position, options)` 双参(`src/graphic/vector/Point.js:41`)
|
|
54
|
+
- **根因**:`src/graphic/model/Model.js:153` 的 `fromEntity` 死代码里还留着老签名 `new Model(position, modelUrl)`,抄源码的人容易跟错
|
|
55
|
+
- **`viewer.removeLayer(layer.id)` 写反(1 处)** —— `anovgis-layers` 速查表写「注意传 id,不是实例」,SDK 实际是 `removeLayer(layer)`(`src/base/viewer/Viewer.js:662`)→ `_removeLayer` 内部取 `layer.type` 和 `layer.id`(`Viewer.js:585`)
|
|
56
|
+
- 传 id **不会报错,但层静默删不掉**(`layer.type` 是 undefined,被 `hasOwnProperty` 挡掉)—— 比抛异常更难发现
|
|
57
|
+
- **示例来源注释错(2 处)** —— `loadGlb.html` / `loadSnow.html` 实际用的是 Cesium 原生 `Cesium.Model.fromGltfAsync` / `viewer.entities.add({model})`,不是 `ANOVGIS.Model`。改注到真实用 `ANOVGIS.Model` 的 demo(`cesium_three.html` / `locateTest.html`)
|
|
58
|
+
|
|
59
|
+
## [0.2.22] - 2026-10-30
|
|
60
|
+
|
|
61
|
+
公网包内容脱敏:清理 README / package.json / CHANGELOG 里的内网 GitLab 地址(改为占位说明),并说明占位符从内网 GitLab Clone 按钮获取
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## [0.2.21] - 2026-10-30
|
|
65
|
+
|
|
66
|
+
npm 包发公网:包名改为 @anov/gis-skills-cli(bin 保留 anov-gis-skills / anov-gis-skills-cli 两个别名)、发布目标改为公网 npmjs.org、清理包内所有内网 npm registry 地址
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## [0.2.20] - 2026-10-30
|
|
70
|
+
|
|
71
|
+
npm 包路线文档校正:registry 配置步骤前置说明、发布目标开关说明、公网 token 失效的 404 误判提示
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## [0.2.19] - 2026-10-30
|
|
75
|
+
|
|
76
|
+
新增 npm 包分发路线(方式 E):发到公网 npm、npx 一条命令安装、verify 子命令供用户自查安装状态
|
|
77
|
+
|
|
78
|
+
### Added
|
|
79
|
+
- **npm 包分发路线(方式 E)**:新增 `package.json` + `bin/anov-gis-skills.mjs` + `scripts/build-npm.mjs` + `scripts/verify-published.mjs` + `.npmrc`
|
|
80
|
+
- 发到**公网 npm**(`https://registry.npmjs.org/`)—— 内网直连即可装,用户不需要配任何 registry
|
|
81
|
+
- 发布目标由仓库根 `.npmrc` 控制(注释 registry 行 = 发公网,不注释 = 发内网),与 ANOV-GIS 仓库 `@anov/gis` 的做法一致
|
|
82
|
+
- `package.json` **不放 `publishConfig.registry`** —— 它会覆盖 `.npmrc`,把开关锁死;`bump.mjs --check` 会拦
|
|
83
|
+
- **用户侧一条命令**:`npx @anov/gis-skills-cli setup` —— npx 临时下载包并执行,**不需要先 `npm i -g`**,也不需要配 registry
|
|
84
|
+
- **`npx @anov/gis-skills-cli verify`**:检查**用户机器上已安装的** skill 是否完好(12 个是否齐全 / frontmatter 能否被严格 YAML 解析 / 相对链接是否可解析),出问题逐条列出并 exit 1
|
|
85
|
+
- 底层 skills CLI **锁 `skills@1.5.18`**(1.6.0+ 的 engines 要求 node ≥ 22.20.0,团队环境是 node 22.19.0)
|
|
86
|
+
- `scripts/build-npm.mjs`:发包前校验 —— 相对链接不逃出 `skills/` 树、无本机绝对路径、skill 数量与 `package.json` 字段一致
|
|
87
|
+
- `scripts/verify-published.mjs`:发版后校验已发布的包 —— registry 元数据齐全 / 能装下来 / 与源码逐字节一致 / skills CLI 能发现全部 12 个 / 相对链接全可解析;临时目录装完即删,不碰用户目录
|
|
88
|
+
- **README §3.5**:新增「方式 E:npm 包」章节(registry 配置 / `npx` 一条命令安装 / `verify` 自查 / 卸载 / 它做了什么 / 各智能体落点 / 升级 / 已知限制)
|
|
89
|
+
- **README §8.3**:新增 npm 包发版流程(发布目标开关 + 发版前自检 + 发完验证)
|
|
90
|
+
|
|
91
|
+
### Fixed
|
|
92
|
+
- **skill 内 5 条逃逸链接修复**:`skills/using-anovgis/DOMAINS.md`、`skills/using-anovgis/DEMO-SKILL-MAP.md` 的引用指向 `../../docs/...`,而 skill 会被拷到 `<agent>/skills/<name>/` 单个目录 —— 这些链接**在拷贝安装后必断**(链接安装方式下实测也已断)
|
|
93
|
+
- 两篇文档移入 `skills/using-anovgis/`,链接改为同目录相对路径 `./DOMAINS.md` / `./DEMO-SKILL-MAP.md`
|
|
94
|
+
- `docs/` 目录不再存在,README / AGENTS.md / `bump.mjs` 引用同步更新
|
|
95
|
+
- **`scripts/check-structure.mjs`**:新增「链接不得逃出 `skills/` 树」闸门 —— 防止同类问题复发
|
|
96
|
+
- **`scripts/bump.mjs`**:`package.json` 的 `version` 纳入版本号单一来源,`--check` 会校验它与 manifest 一致
|
|
97
|
+
|
|
98
|
+
## [0.2.18] - 2026-10-29
|
|
99
|
+
|
|
100
|
+
拆分 using-anovgis 入口 skill;同时移除 CI 流水线与 latest 构建通道。
|
|
101
|
+
|
|
102
|
+
### Added
|
|
103
|
+
- **`scripts/check-structure.mjs`(新文件)**:仓库结构校验 —— 相对链接目标存在性、锚点有效性(显式 `<a id>` 优先,GitHub slug 兜底)、frontmatter 四字段齐全、各 skill baseline 一致、行数与必填章节
|
|
104
|
+
- 与 `bump.mjs --check` 分工:前者是**发版闸门**(版本一致性),后者是**编辑期闸门**(结构)
|
|
105
|
+
- 分开是因为「行数超标」这类存量违规塞进发版闸门会让每次发版立刻红
|
|
106
|
+
- **`skills/using-anovgis/REFERENCE.md`(新文件)**:关键词 → skill 章节速查表(64 条,每条带可点击锚点)
|
|
107
|
+
- **`skills/using-anovgis/DEMO-MAP.md`(新文件)**:业务场景 → skill 路由表(58 条)
|
|
108
|
+
- **`skills/using-anovgis/templates/`(新目录,6 个文件)**:工程骨架模板 —— 组合 1 Vue3+Vite ⭐默认 / 组合 2 Vue2+CLI / 组合 3 HTML+CDN / 组合 4 Vanilla+webpack + Q2 控件 profile + 模板总览
|
|
109
|
+
- **`anovgis-pitfalls` P3 / P5 显式锚点**(`<a id="p3-setbaseurl">` / `<a id="p5-materialproperty">`)
|
|
110
|
+
|
|
111
|
+
### Changed
|
|
112
|
+
- **`skills/using-anovgis/SKILL.md`:1437 → 392 行(-73%)**
|
|
113
|
+
- router 只留「路由 + 铁律 + 向导决策」;重内容按承载物分流到子文件 / 领域 skill
|
|
114
|
+
- 下沉到 `anovgis-viewer`:Viewer 工具栏默认全开 / 典型工作流 4 步 / 多 Viewer 实例 / iframe `about:srcdoc`
|
|
115
|
+
- 下沉到 `templates/`:UMD / ESM / Vue2 / Vue3 四种集成变体 + Vue 骨架 ❌/✅ 对照
|
|
116
|
+
- 删除(有权威版本,不重复):examples 目录结构(`docs/DEMO-SKILL-MAP.md` 更全)、setBaseUrl(`anovgis-pitfalls` P3)、Viewer 构造选项速览(`anovgis-viewer` § 2 已有 17 参数)、加载业务数据(三段代码各归 layers / models-3dtiles / materials)
|
|
117
|
+
- 新增 `## Out-of-scope` —— 此前 12 个 skill 里唯一缺失的
|
|
118
|
+
- **README §8**:skill 规则从「单文件 SKILL.md,≤400 行」改成「SKILL.md 是入口,重的部分拆同目录子文件」;§8.1 版本纪律补一行 —— skill 目录内新增子文件属 **patch**(skill 的 `name` 与顶层结构未变)
|
|
119
|
+
- **README §7 / §8.2**:发版流程从「CI 自动」改成「人工打 tag」
|
|
120
|
+
- **AGENTS.md / docs/DOMAINS.md §6 / docs/DEMO-SKILL-MAP.md**:同步新结构
|
|
121
|
+
|
|
122
|
+
### Fixed
|
|
123
|
+
- **速查表 30+ 条失效锚点**:原来 64 条里只有 2 条用了真锚点,其余是自然语言引用(写「§ PolylineFlow」,实际标题是「§3.1 Polyline + PolylineFlowMaterialProperty」),AI 跳转必然匹配失败
|
|
124
|
+
- 在 10 个领域 skill 的目标小节前插入 **57 个显式 `<a id>` 锚点** —— 不用 GitHub 标题 slug,中文 + emoji + 全角括号的 slug 规则极易踩坑(「(Critical)」被算成分隔符,实际 slug 里没有那个短横线)
|
|
125
|
+
- 修正 5 条指错的章节:terrainRGB S16→S25、矢量瓦片 S2→S26、billboard S5→S3、label S6→S8、折线多边形 S2/S3→§2 速查表+S2
|
|
126
|
+
- **`anovgis-materials` → `anovgis-pitfalls` P5 的链接**(2 处):全角括号导致的 slug 不匹配
|
|
127
|
+
- **`bump.mjs` 的 `baselines()`**:把静默兜底(`?? "1.8.6"`)改成显式抛错 —— 原来 baseline 字段被删掉时会悄悄往 README §2 版本表写错版本号
|
|
128
|
+
|
|
129
|
+
### Removed
|
|
130
|
+
- **`.gitlab-ci.yml`(删除)**:本仓库不再跑 CI
|
|
131
|
+
- 内网 GitLab 上没有任何 runner(项目 / 组 / 共享全空),流水线配置再对也永远 `pending`
|
|
132
|
+
- 且自 v0.2.15 起该配置就有 YAML 语法错误(`script` 项里的 `: ` 被 Psych 解析成 map),连续 13 条流水线全部「Yaml 无效 / 0 个作业」—— tag 与 `latest` 分支其实是人工手动推的
|
|
133
|
+
- 删掉后 push 不再产生任何流水线噪音
|
|
134
|
+
- **`anov-gis-skills-latest` 条目(删除)**:marketplace 里的「最新构建通道」整个去掉
|
|
135
|
+
- 它指向 `latest` 分支 + `<基线>-latest.<提交计数>` 版本号,作用是「不等正式发版就能拿到最新代码」
|
|
136
|
+
- CI 没了之后这条通道要人工强推维护,且全组没人装它 —— 收益低于维护成本
|
|
137
|
+
- 远端的 `latest` 分支暂时保留(删掉它不影响正式通道)
|
|
138
|
+
|
|
139
|
+
### Notes
|
|
140
|
+
- 改动文件:`scripts/check-structure.mjs`(新)/ `scripts/bump.mjs` / `skills/using-anovgis/`(SKILL.md + REFERENCE.md + DEMO-MAP.md + templates/)/ `skills/anovgis-viewer/` / `skills/anovgis-materials/` / `skills/anovgis-pitfalls/` / `skills/anovgis-vector-graphics/` / `skills/anovgis-imagery-terrain/` / `skills/anovgis-layers/` / `skills/anovgis-models-3dtiles/` / `skills/anovgis-primitives/` / `skills/anovgis-effects/` / `skills/anovgis-analysis/` / `skills/anovgis-popup-widget/` / `README.md` / `AGENTS.md` / `docs/DOMAINS.md` / `docs/DEMO-SKILL-MAP.md` / `CHANGELOG.md`
|
|
141
|
+
- **存量债(本次未动)**:11 个领域 skill 仍超 400 行(`anovgis-viewer` 因下沉变成 619 行);`using-anovgis` 里的 POI 选型代码(约 90 行)仍留在 router
|
|
142
|
+
- SessionStart hook(自动注入路由表)单独立项 —— 需先验证本插件的 `hooks/hooks.json` 声明方式是否生效
|
|
143
|
+
|
|
144
|
+
## [0.2.17] - 2026-10-29
|
|
145
|
+
|
|
146
|
+
跨智能体安装路径:新增 `npx skills` / `install.sh` 两条路,并修 frontmatter YAML 兼容性。
|
|
147
|
+
|
|
148
|
+
### Added
|
|
149
|
+
- **`install.sh`(新文件)**:链接安装到各智能体的 skill 目录
|
|
150
|
+
- 建的是**链接**不是拷贝(Windows 用 NTFS 目录联接 `mklink /J`,免管理员;其它平台用 `ln -s`)→ `git pull` 之后已装 skill 原地更新
|
|
151
|
+
- `--claude` / `--codex` / `--all-agents` / `--list` / `--uninstall` / 指定 skill 名
|
|
152
|
+
- 兜底:建不了链接就拷贝,并打 `.anov-gis-skills-install` 标记供 `--uninstall` 认领
|
|
153
|
+
- **`npx skills` 安装路径**(README §3.4.1):vercel-labs/agent-skills 的跨智能体标准 CLI,**实测可直接吃内网 GitLab URL**(不依赖 github.com)
|
|
154
|
+
- `npx skills add <repo-url> --all` / `--agent claude-code` / `--agent codex` / `-l` 预览 / `npx skills update`
|
|
155
|
+
- **README §3 改成四条路对照表**:A marketplace / B 项目级 / C `npx skills` / D `install.sh`,标明各自能否自动更新、能否带 cesiumjs-skills 依赖
|
|
156
|
+
|
|
157
|
+
### Fixed
|
|
158
|
+
- **两个 skill 的 frontmatter 在严格 YAML 解析器下失败**
|
|
159
|
+
- `anovgis-imagery-terrain` 的 description 未加引号且含 ASCII 冒号(`invert:true`)
|
|
160
|
+
- `anovgis-pitfalls` 的 description 未加引号且含 ASCII 冒号(`file://` ×2)
|
|
161
|
+
- Claude Code 自己的解析器宽松,所以本机一直能用;但**别的 agent 的 skill 加载器会整个跳过这两个 skill** —— 实测 `npx skills` 只能发现 10/12 个
|
|
162
|
+
- 两处都改成单引号包裹;修完 `npx skills` 能发现全部 12 个
|
|
163
|
+
- **`scripts/bump.mjs --check` 新增 frontmatter 校验**:description 未加引号却含 ASCII 冒号 / 单引号未闭合 / 缺 name / 缺 description —— 防止这类问题再复发(CI 会跑)
|
|
164
|
+
|
|
165
|
+
### Notes
|
|
166
|
+
- 改动文件:`install.sh`(新)/ `scripts/bump.mjs` / `README.md` / `CHANGELOG.md` / `skills/anovgis-imagery-terrain/SKILL.md` / `skills/anovgis-pitfalls/SKILL.md`
|
|
167
|
+
- `install.sh` 与 `npx skills` 都**不带 cesiumjs-skills** —— 这两条路没有 plugin marketplace 的 `dependencies` 机制,Cesium 原生 skill 要单独装(见 README §3.6)
|
|
168
|
+
- 参考 [Leonxlnx/taste-skill](https://github.com/Leonxlnx/taste-skill) 的做法:同一仓库并列放各智能体清单 + skill 实体只有一份
|
|
169
|
+
|
|
170
|
+
## [0.2.16] - 2026-10-29
|
|
171
|
+
|
|
172
|
+
清除本机绝对路径:README / AGENTS.md / docs 的 SDK 源码与 demo 路径改为仓库内相对路径 + 内网 GitLab 地址
|
|
173
|
+
|
|
174
|
+
### Fixed
|
|
175
|
+
- **本机绝对路径外泄(其他用户读不到)**
|
|
176
|
+
- `README.md` §1 / §4.3.1 / §4.3.2 / §7 / 附录:5 处 `E:/zhf/gitlab/ANOV-GIS/...` 全部替换
|
|
177
|
+
- 溯源用途 → 仓库内相对路径(`src/`、`examples/public/examples/html/`、`other_system/anov-gis-demo-*`)
|
|
178
|
+
- 需要完整 SDK 源码 / demo 原文时 → 内网 GitLab clone 地址(团队内网可达,与本插件 marketplace 同一台 GitLab)
|
|
179
|
+
- `cp` 示例不再写死盘符:`cp -r ANOV-GIS/examples/public/examples/html/material/flowPolyline.html <你的项目>/demos/`
|
|
180
|
+
- `AGENTS.md`「这是什么」第 9 行:`E:/zhf/gitlab/ANOV-GIS/src/` → `ANOV-GIS 仓库 src/`
|
|
181
|
+
- `docs/DOMAINS.md` §6 关联阅读:源码 / demo 路径 → 仓库内相对路径
|
|
182
|
+
- `docs/DEMO-SKILL-MAP.md` 文件头「Demo 来源」:同上
|
|
183
|
+
- `skills/using-anovgis/SKILL.md`:残留的 `E:\anov-gis-demo-vue3-main` → `anov-gis-demo-vue3-main`;「关联资源」补上 ANOV-GIS 仓库 clone 地址
|
|
184
|
+
- `skills/anovgis-pitfalls/SKILL.md` P6 示例:`file:///E:/demo/index.html` → `file:///path/to/project/index.html`
|
|
185
|
+
|
|
186
|
+
> **保留不动**:`using-anovgis` 的「skill 自包含铁律」里的 `E:/...` 反例(那是**禁止**引用本机路径的规则本身),以及 CHANGELOG 历史条目里的原始路径(历史记录不改写)。
|
|
187
|
+
>
|
|
188
|
+
> 本次改动只碰文档路径,**skill 的 snippet 代码一行未动** —— skill 自 v0.2.4 起就已全部内嵌代码 + 用仓库内相对路径做溯源注释,本次是把这个约定补齐到 README / AGENTS.md / docs 三处。
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
## [0.2.15] - 2026-10-28
|
|
192
|
+
|
|
193
|
+
> 本条目含两批改动:① 分发体系改造(自动更新 + 跨插件依赖 + 发版自动化);② 跨智能体适配(Codex / Cursor / 通用 AGENTS.md)。
|
|
194
|
+
|
|
195
|
+
### Added
|
|
196
|
+
- **跨智能体适配:一份 skill,四种智能体共用**
|
|
197
|
+
- 参照 superpowers 的做法,在仓库根并列放各智能体的清单,**skill 实体(`skills/`)只有一份**,不重复维护
|
|
198
|
+
- `.codex-plugin/plugin.json` —— Codex CLI / Codex App 清单,`skills: "./skills/"`
|
|
199
|
+
- `.cursor-plugin/plugin.json` —— Cursor 清单,带 `displayName`
|
|
200
|
+
- `AGENTS.md` —— 通用 AGENTS.md 约定的入口(对不认 plugin 机制的 agent):说明本插件提供什么、每个智能体该读哪个 manifest、skill 实体在哪儿、触发关键词、跨智能体怎么更新
|
|
201
|
+
- README §3.4 重写为「方式 C:其它智能体(Codex / Cursor / 通用 AGENTS.md)」,含各 agent 的安装命令、差异对照表、以及「cesiumjs-skills 依赖只在 Claude Code 上自动装」的说明
|
|
202
|
+
- **marketplace 接管 cesiumjs-skills 依赖**
|
|
203
|
+
- `.claude-plugin/marketplace.json` 新增第二个插件条目 `cesiumjs-skills`,`source` 指向内网 GitLab 镜像
|
|
204
|
+
- `.claude-plugin/plugin.json` 与 marketplace 条目**都**声明 `"dependencies": ["cesiumjs-skills"]` —— `strict` 默认 true 时以 plugin.json 为准、`strict: false` 时以条目为准,两处都写才能覆盖两种解析路径
|
|
205
|
+
- 裸名依赖在**本 marketplace 内**解析 → 一条 `/plugin install anov-gis-skills@anov-gis-skills` 自动带出 cesiumjs-skills,装到 `installed_plugins.json` 标 `"auto": true`
|
|
206
|
+
- `allowCrossMarketplaceDependenciesOn: ["cesiumjs-skills"]` —— 兼容路径,已经加了官方 marketplace 的同学可以改依赖 `cesiumjs-skills@cesiumjs-skills`
|
|
207
|
+
- 镜像原因:github.com 在团队网络不可达(`git ls-remote` 连接被拒)。镜像内容与上游 commit `df881cf`(v0.3.0)一致,`LICENSE`(Apache-2.0)/ `hooks/` / `.mcp.json` 全部保留
|
|
208
|
+
- **开启 marketplace 自动更新**
|
|
209
|
+
- Claude Code 给每个 marketplace 有独立的 `autoUpdate` 开关,**第三方 marketplace 默认 false**(只有 Anthropic 官方那批默认 true)—— 这就是此前"发完版要挨个催"的真正根因,不是文档写得不够
|
|
210
|
+
- README §3.3 的项目级配置加 `"autoUpdate": true`,团队成员 clone 项目后自动收新版本
|
|
211
|
+
- marketplace 新增 `anov-gis-skills-latest` 条目:`source` 指向同仓库 `latest` 分支,CI 每次构建把版本号写成 `<基线>-latest.<提交计数>`(提交计数单调递增,保证每次构建都被识别为新版本),内容最新、不保证稳定
|
|
212
|
+
- **`scripts/bump.mjs`:版本号单一来源**(新文件)
|
|
213
|
+
- `patch` / `minor` / `major` / `--set` / `--check` / `--manifest-only`
|
|
214
|
+
- 一次改掉所有版本位:两个 manifest + README 5 处 + docs/DOMAINS.md + docs/DEMO-SKILL-MAP.md + CHANGELOG 条目 + README §2 版本对应表
|
|
215
|
+
- 改写位置全部走**白名单锚点**,不做全仓正则替换 —— `skills/*/SKILL.md` 里的 `v0.2.x` 是历史记录散文,改了就是毁历史
|
|
216
|
+
- `--check` 是 CI 闸门:校验两个 manifest 一致、dependencies 一致、文档版本号一致、CHANGELOG 有条目、§2 表有行、版本单调、tag 未重复、SKILL.md frontmatter 没有 version 字段
|
|
217
|
+
- **`.gitlab-ci.yml`:三段流水线**(新文件)
|
|
218
|
+
- verify → `node scripts/bump.mjs --check`,版本位不一致就 fail
|
|
219
|
+
- tag → 打 `anov-gis-skills--v<版本>` 注解 tag 并推送(幂等:tag 已存在就跳过)。**`@^0.2.0` 这种版本约束就是靠这个 tag 解析的**,没有匹配 tag 会报 `no-matching-tag` 装不上
|
|
220
|
+
- latest → 把 `main` 重置到 `latest` 分支、改写版本号、强推,供最新构建通道使用
|
|
221
|
+
- 历史别名 tag `anov-gis-skills--v0.2.1` / `--v0.2.2` 补齐 —— 原来的 `v0.2.1` / `v0.2.2` 是单横线无前缀,Claude Code 认不出来
|
|
222
|
+
|
|
223
|
+
### Changed
|
|
224
|
+
- **安装方式改为锁 minor**
|
|
225
|
+
- 项目级配置从 `anov-gis-skills@anov-gis-skills` 改为 `anov-gis-skills@anov-gis-skills@^0.2.0`:patch 更新自动跟随,minor 变更(新增 skill / 改 skill 名或目录结构)不跟随,需要显式改这一行
|
|
226
|
+
- 精确锁版本 `...@0.2.15` 保留为"完全锁死"的备选,并写明它**不会**自动升级
|
|
227
|
+
- 发版纪律写进 README §8.1:patch = 修 bug / 改内容;minor = 新增 skill 或改 skill 名 / 目录结构;major = 破坏性契约变更
|
|
228
|
+
- **`skills/using-anovgis/SKILL.md` 修掉一条失效引用**
|
|
229
|
+
- 原来指向 `../../../cesiumjs-skills/skills/using-cesiumjs-skills/SKILL.md` —— 插件实际装在 `~/.claude/plugins/cache/<marketplace>/<插件名>/<版本>/`,两个插件**不是兄弟目录**,这条相对路径对任何真实安装都是断的
|
|
230
|
+
- 改为按 skill 名引用(Claude Code 按 frontmatter `name` 全局注册),并写明"不要用相对路径找 cesiumjs-skills 的文件"
|
|
231
|
+
|
|
232
|
+
### Fixed
|
|
233
|
+
- **docs/DEMO-SKILL-MAP.md 版本号漂移**:长期停在 `v0.2.0`(实际早已到 0.2.14)。本次随 bump 一起修正;`bump.mjs --check` 以后会把这类漂移直接变成 CI 失败
|
|
234
|
+
|
|
235
|
+
### Notes
|
|
236
|
+
- 改动文件:`.claude-plugin/marketplace.json` / `.claude-plugin/plugin.json` / `.codex-plugin/plugin.json`(新)/ `.cursor-plugin/plugin.json`(新)/ `AGENTS.md`(新)/ `scripts/bump.mjs`(新)/ `.gitlab-ci.yml`(新)/ `README.md` / `docs/DOMAINS.md` / `docs/DEMO-SKILL-MAP.md` / `CHANGELOG.md` / `skills/using-anovgis/SKILL.md`
|
|
237
|
+
- `scripts/bump.mjs` 现在同步 4 个 manifest 的版本号(`.claude-plugin` / `.codex-plugin` / `.cursor-plugin` + marketplace 条目),`--check` 会把任一处漂移连同「skills 路径写错」一起报出来
|
|
238
|
+
- 顺带修正了 `marketplace.json` 里指向不存在公网仓库的 `homepage` / `repository`(原来写的 `https://gitlab.com/zhf/anov-gis-skills`,实际是内网 GitLab)
|
|
239
|
+
- 12 个 skill 的**内容零改动**,skill 名称与目录结构未变 —— 只有 `using-anovgis` 的跨插件引用表述变了
|
|
240
|
+
- 镜像里的 chrome-devtools MCP 走 `npx -y chrome-devtools-mcp@latest`,需要能访问 npm registry;内网不通时 MCP 起不来,但 14 个 skill 本身不受影响
|
|
241
|
+
- CI 需要一个能访问内网 GitLab 且有 push 权限的 runner;若 GitLab 只配了公网 shared runner,tag / latest 两段会因网络失败
|
|
242
|
+
|
|
243
|
+
## [0.2.14] - 2026-10-28
|
|
244
|
+
|
|
245
|
+
关闭 skill_test(2026-10-28,"参考图片 1.png 实现智慧水利数字孪生大屏")暴露的两个流程 / 契约漏洞。
|
|
246
|
+
|
|
247
|
+
### Added
|
|
248
|
+
- **`anovgis-pitfalls` § P12 新陷阱:baseLayerPicker 与默认底图的隐式绑定**
|
|
249
|
+
- 表格:`baseLayerPicker: true` → SDK 自动加天地图底图;`baseLayerPicker: false` → `viewer.imageryLayers.length === 0`,必须显式 `addImageryProvider`
|
|
250
|
+
- 典型错误反例(skill_test 项目原文):`baseLayerPicker: false` + `globe.baseColor = '#02060f'` → 黑屏无 console 报错
|
|
251
|
+
- 两条修复路径:路 A 开 baseLayerPicker / 路 B 显式 `addImageryProvider`
|
|
252
|
+
- 反模式清单 + silent failure 解释(Cesium 1.143 起不自动尝试 Ion 加载,playwright 只看 canvas 数会漏掉)
|
|
253
|
+
- 与 P10 关系表(baseLayer 字符串 vs baseLayerPicker 开关,两条都关默认底图才稳)
|
|
254
|
+
- 排查顺序表加一行:「黑屏 + 无 console 报错 + `imageryLayers.length === 0` → P12」
|
|
255
|
+
- **`using-anovgis` § 步骤 0 改为双条件 AND 触发**
|
|
256
|
+
- 拆分 0.1 双条件判定(空白项目 AND 明确意图)+ 0.2 已确定进引导后跳过哪些问
|
|
257
|
+
- 双条件判定表:「双条件满足 → 引导」「仅空白无意图 → 不触发」「仅意图无空白 → 走修改现有项目流程」「都不满足 → 不进引导」
|
|
258
|
+
- 明确意图关键词清单:`anov` / `@anov/gis` / `Cesium` / `三维地球` / `数字孪生` / `智慧XX` / `大屏` 等
|
|
259
|
+
- 写明设计意图:参考图只描述业务 UI,不暗示技术栈;HTML+CDN 不是默认路径,仅用户明确点名才走组合 3
|
|
260
|
+
|
|
261
|
+
### Notes
|
|
262
|
+
- 2 个文件改动:`skills/anovgis-pitfalls/SKILL.md` / `skills/using-anovgis/SKILL.md` + 2 个清单
|
|
263
|
+
- skill_test 项目根因复盘:① Claude 走单 HTML + CDN 路线 → 内网 HTTP 部署下 SDK 默认从 `<script src>` 推断 baseUrl 与页面协议对齐(无 Mixed Content),但 baseLayerPicker:false 关掉了默认底图 + globe.baseColor 屏蔽视觉信号 → 黑屏;② 面板布局用 absolute 像素定位 + ECharts 用 calc(100%) 但父容器未明确高度 → 图表区压成 0 高度
|
|
264
|
+
- skill_test 暴露但**未沉淀**的 3 个问题(保留给后续版本评估):① 大屏 Grid 布局范式(skill 边界外,留给工程规范);② CDN HTTPS 硬约束(归错因,SDK 模板就是 HTTP,已撤回);③ `camera.flyTo({duration:0}` 等价 `setView`,已在 using-anovgis 有 snippet,无须重复
|
|
265
|
+
- P12 是与 P10 配套的孪生陷阱:P10 解决"构造时传 baseLayer 字符串报错",P12 解决"构造时不传 baseLayer 也不 addImageryProvider 黑屏"。两条加起来把"底图加载"路径完整覆盖
|
|
266
|
+
|
|
267
|
+
## [0.2.13] - 2026-10-28
|
|
268
|
+
|
|
269
|
+
POI 标绘默认走 `DivIcon`(DOM 路线),不用 Cesium 原生 `Billboard`;数量大时先问用户。
|
|
270
|
+
|
|
271
|
+
### Added
|
|
272
|
+
- **`using-anovgis` § POI 标绘选型(DivIcon 默认)**:
|
|
273
|
+
- 选型表:POI **≤100 个 → 直接用 `HtmlLayer` + `ANOVGIS.DivIcon`**(不问);**>100 个 → 先 `AskUserQuestion` 问用户选 DivIcon 还是 Billboard**
|
|
274
|
+
- `AskUserQuestion` 模板(2 选项:DivIcon / Billboard)
|
|
275
|
+
- 方案 A 代码:DivIcon 路线(`HtmlLayer` + `DivIcon` + `setOptions` + CLICK 事件)
|
|
276
|
+
- 方案 B 代码:Billboard 路线(`VectorLayer` + `Point` 内嵌 `billboard` + `label` + `bindPopup`)
|
|
277
|
+
- 写明**为什么默认 DivIcon**(富文本 / 多层嵌套 / 内嵌按钮 / CSS 动画,比 Billboard 贴图灵活)与**为什么 >100 要问**(`HtmlLayer` 每帧 `postRender` 写 DOM `transform`,DOM 节点 >1000 掉帧)
|
|
278
|
+
- 豁免:用户明确说「性能优先 / 上万 / 用 billboard」或「要富文本 / 带卡片 / 带按钮」→ 不问,直接按意图走
|
|
279
|
+
- **路由表 + 关键词表各加一行 POI 标绘**(`using-anovgis`),指向新专章
|
|
280
|
+
- **`anovgis-vector-graphics` § S9 补选型提示**:说明 S9 是 Billboard 路线,批量 POI 标绘先看 `using-anovgis` 选型专章
|
|
281
|
+
|
|
282
|
+
### Changed
|
|
283
|
+
- `using-anovgis` frontmatter `description`:补 `POI` / `标绘` / `标点` / `点位` / `divIcon` 触发词
|
|
284
|
+
- `.claude-plugin/plugin.json` / `marketplace.json`:0.2.12 → 0.2.13
|
|
285
|
+
|
|
286
|
+
### Notes
|
|
287
|
+
- 2 个文件改动:`skills/using-anovgis/SKILL.md` / `skills/anovgis-vector-graphics/SKILL.md` + 2 个清单
|
|
288
|
+
- 阈值 100 是保守起点(远低于 `HtmlLayer` 的 1000 掉帧线),够用又不至于误伤正常规模
|
|
289
|
+
- `DivIcon` / `Position` / `NearFarScalar` 用法与 `anovgis-layers` § S9、`anovgis-popup-widget` § S9 现有 snippet 保持一致
|
|
290
|
+
|
|
291
|
+
## [0.2.12] - 2026-10-28
|
|
292
|
+
|
|
293
|
+
从 0 创建项目时**技术栈固定 Vue 3 + Vite**(团队事实标准),向导不再问技术栈。
|
|
294
|
+
|
|
295
|
+
### Changed
|
|
296
|
+
- **`using-anovgis` 引导式初始化:4 问 → 3 问**
|
|
297
|
+
- 删除「Q1 技术栈」问(原选项:Vue 3 + Vite / Vue 2 + Vue CLI / HTML + UMD CDN / Vanilla JS + webpack)
|
|
298
|
+
- 原 Q2/Q3/Q4 重编号为 Q1 底图 / Q2 控件 profile / Q3 部署方式
|
|
299
|
+
- 步骤 0 判定表、步骤 1 问题表、步骤 2 追加问表、步骤 4 组合生成规则、§ Q2 控件 profile 详细配置、§ Q2 自定义细分同步更新
|
|
300
|
+
- 组合 2/3/4(Vue 2 / HTML+CDN / Vanilla webpack)保留为手动模板,用户**明确点名**其它技术栈时才用
|
|
301
|
+
- **组合 1 模板版本号跟齐官方 `anov-gis-demo-vue3-main`**:`vue ^3.5.43` / `vite ^8.3.0` / `@vitejs/plugin-vue ^6.0.9`(原 `vue ^3.5.13` / `vite ^7.2.2` / `plugin-vue ^6.0.1`)
|
|
302
|
+
- `.claude-plugin/plugin.json` / `marketplace.json`:0.2.11 → 0.2.12
|
|
303
|
+
|
|
304
|
+
### Fixed
|
|
305
|
+
- **默认组合描述与实现不符**:步骤 0「默认组合」写「部署:本地 SDK 包(`@anov/vite-plugins` 协调)」,但 v0.2.7.2 早已移除该包(对 hello earth 过重,会拉进 `layout-designer` + `@anov/cic-standard-sdk`)。改为「`vite-plugin-static-copy` 拷贝 `dist/resources` → `public/anov-gis-sdk/`,无需 `@anov/vite-plugins`」
|
|
306
|
+
- **`docs/DOMAINS.md` 版本漂移**:顶部 Plugin 版本 `v0.2.0` → `v0.2.12`
|
|
307
|
+
- **避坑表 vite 版本表述**:`using-anovgis` 组合 1 避坑表 + `anovgis-pitfalls` P10 判断路径表同步为「vite 7 / 8 均零报错,默认模板用官方 vite 8」
|
|
308
|
+
|
|
309
|
+
### Notes
|
|
310
|
+
- 3 个文件改动:`skills/using-anovgis/SKILL.md` / `skills/anovgis-pitfalls/SKILL.md` / `README.md` + `docs/DOMAINS.md` + 2 个清单
|
|
311
|
+
- 选官方 vite 8 **不是**因为 vite 7 不能跑 —— v0.2.10 已实测 vite 7 + 裸 @anov/gis + 不传 baseLayer 零报错。改版本号是为了与团队现存 Vue 3 项目保持一致,减少版本认知负担。v0.2.10 的「删 baseLayer」定论不变
|
|
312
|
+
- 保留项:组合 2/3/4 模板保留(HTML 单文件调试场景仍需要),只是不再作为向导默认路径
|
|
313
|
+
- 保留项:`docs/DOMAINS.md` § 5 变更日志中的 v0.2.0 条目是历史记录,不回改
|
|
314
|
+
|
|
315
|
+
## [0.2.11] - 2026-10-28
|
|
316
|
+
|
|
317
|
+
发布前审查(社区市场发布可行性)发现两处阻塞项,本次一并修掉。
|
|
318
|
+
|
|
319
|
+
### Fixed
|
|
320
|
+
- **`anovgis-primitives` description 超长**:原 1038 字符,超出 SKILL.md frontmatter `description` 上限 1024。删掉触发词列表中与句 1 类名清单重复的 `ModelPrimitive` / `ModelCollectionPrimitive`,缩至 **998 字符**;19 个类名、`boundingSphere` 说明、"Use when" 语义零损失。其余 11 个 skill 最长 989,本来就合规
|
|
321
|
+
- **README 版本漂移**:「当前版本」声明 `v0.2.0` → `v0.2.11`;安装示例的锁定版本号 2 处同步;「从 v0.1.1 升级」段落同步;版本对应表补 0.2.1–0.2.7 / 0.2.8–0.2.10 / 0.2.11 三行
|
|
322
|
+
- **CHANGELOG 补 0.2.8 条目**:此前 `24cde2d` 只 bump 清单未写条目
|
|
323
|
+
|
|
324
|
+
### Changed
|
|
325
|
+
- `.claude-plugin/plugin.json`:0.2.10 → 0.2.11
|
|
326
|
+
- `.claude-plugin/marketplace.json`:0.2.10 → 0.2.11
|
|
327
|
+
|
|
328
|
+
### Notes
|
|
329
|
+
- 3 个文件改动:`skills/anovgis-primitives/SKILL.md` / `README.md` / `CHANGELOG.md` + 2 个清单
|
|
330
|
+
- 教训:skill 数量增长后,README「当前版本」这类活引用会静默漂移,**bump 清单版本时必须同步 grep README/CHANGELOG 的版本号**
|
|
331
|
+
- 保留项:README 中 `⭐ v0.2.0 新增` 标记是"哪些 skill 在哪版新增"的历史事实,不随当前版本变动
|
|
332
|
+
|
|
333
|
+
## [0.2.10] - 2026-09-24
|
|
334
|
+
|
|
335
|
+
用户复查发现 skill 生成的初始化代码仍含 `baseLayer: ANOVGIS.ImageryType.TDT`。核查结论:① v0.2.9 只删了组合 1 一处,全 skill 还有 **10 处**生成代码残留(TDT 5 处 + TIANDITU/ARCGIS 5 处);② v0.2.9 的「vite 7 必须升 vite 8」是**误诊**——`queueReprojectionCommands` / `_layerIndex` 两个报错的真凶都是 baseLayer 字符串(`ImageryType.TDT` === `'tdt'`),删掉后 vite 7 playwright 零报错。
|
|
336
|
+
|
|
337
|
+
### Fixed
|
|
338
|
+
- **`using-anovgis` baseLayer 全线清除(10 处)**:
|
|
339
|
+
- 传 `TDT`:Q3 控件 profile 3 个预设(极简/推荐/完整)、组合 2(Vue 2 App.vue)、组合 3(HTML + UMD CDN)
|
|
340
|
+
- 传 `TIANDITU` / `ARCGIS`:CDN 引入示例、最小 Viewer、典型工作流、ESM 引入示例、组合 4(webpack main.js)
|
|
341
|
+
- 「最小 Viewer」警告块重写:旧文本「baseLayer 必须是 enum,不能传字符串」与实测矛盾(enum 本质就是字符串,一样崩)
|
|
342
|
+
- **`using-anovgis` § 组合 1 模板**:撤销 v0.2.9 的 vite 8 升级——package.json 回 vite `^7.2.2` / vue `^3.5.13` / plugin-vue `^6.0.1`,vite.config.ts 无任何 optimizeDeps 配置
|
|
343
|
+
- **`anovgis-pitfalls` P10 定论重写**:`Yi` 撞名是表象不是 bug(vite 7/8 都撞且都不同 scope);「必须升 vite 8」判断撤销;判断路径选择表改为「删 baseLayer 行」
|
|
344
|
+
- **`anovgis-viewer` 选项表**:`baseLayer` 行补 v1.8.6 bug 警告(枚举是字符串,构造传会报 `_layerIndex on string 'tdt'`)
|
|
345
|
+
|
|
346
|
+
### Notes
|
|
347
|
+
- 3 个 SKILL.md 改动(`using-anovgis` / `anovgis-pitfalls` / `anovgis-viewer`)+ 清单版本 0.2.9 → 0.2.10
|
|
348
|
+
- 教训:v0.2.9 只修了组合 1 一处 baseLayer,同类代码还有 10 处——**grep 全仓同类模式必须进修复流程**(这次靠全仓 grep `baseLayer: ANOVGIS.ImageryType` 一次性清完)
|
|
349
|
+
|
|
350
|
+
## [0.2.9] - 2026-09-24
|
|
351
|
+
|
|
352
|
+
claude方式 项目(`E:\公司\测试\claude方式`)2026-09-24 10:53 用户反馈"最新生成的代码还是报错"。playwright 排查发现 v0.2.7.3 修复有 2 处遗漏 + v0.2.7.2 引入 1 个新错:
|
|
353
|
+
|
|
354
|
+
- **遗漏 1**:`using-anovgis` § 组合 1 App.vue 模板仍含 `baseLayer: ANOVGIS.ImageryType.TDT` → SDK v1.8.6 内部 `new ImageryLayer('TDT')` 报 `Cannot create property '_layerIndex' on string 'tdt'`。**修复**:删 baseLayer 行(对齐官方 `anov-gis-demo-vue3-main` 模板——官方根本不传 baseLayer)。
|
|
355
|
+
- **遗漏 2**:`package.json` 模板仍是 `vite ^7.2.2`(vite 7 无解)。**修复**:升 `vite ^8.3.0`,对齐官方。
|
|
356
|
+
- **新错(v0.2.7.2 引入)**:`optimizeDeps.exclude: ['@anov/gis']` 看似绕开 P10,实际触发 `does not provide an export named 'default'`(UMD 没有 default 导出)。**修复**:撤销 exclude 方案,明确 vite 7 + 裸 @anov/gis 无任何可行配置,必须升 vite 8。
|
|
357
|
+
|
|
358
|
+
### Fixed
|
|
359
|
+
- **`using-anovgis` § 组合 1 模板重写**:
|
|
360
|
+
- package.json:`vue ^3.5.43` / `vite ^8.3.0` / `@vitejs/plugin-vue ^6.0.9` / `vite-plugin-static-copy ^4.1.1`
|
|
361
|
+
- vite.config.ts:纯官方(`vue()` + `viteStaticCopy()` + `resolve.alias`),**无 `optimizeDeps.exclude`**
|
|
362
|
+
- App.vue:删 `baseLayer: ANOVGIS.ImageryType.TDT`(会触发 `_layerIndex on string 'tdt'`),保留 setOptions 模式
|
|
363
|
+
- **`anovgis-pitfalls` P10 重写**:A/B/C 三个"修复路径"标❌(实测都不够或引入新错),新增 D 路径 = 升 vite 8 + 默认模板。「判断路径选择」表明确:vite 7 无任何可行配置
|
|
364
|
+
- **`anovgis-pitfalls` 新增 P11**:meta 陷阱——禁止"curl 没过 vite 启动 + bundle 完整性就 commit"。要求任何"修复"提交前 playwright 端到端验证(errors: 0 / canvas: True / cesium: True)
|
|
365
|
+
- **`anovgis-pitfalls` 排查顺序速记表**:加 `_layerIndex on string 'tdt'` / `does not provide an export named 'default'` / P11 三行
|
|
366
|
+
- **`using-anovgis` § 验证命令**:替换为完整 playwright 脚本(之前只写 "用 playwright" 一句话,不足以防止 v0.2.7.2 类的 curl-only 验证事故)
|
|
367
|
+
|
|
368
|
+
### Notes
|
|
369
|
+
- 2 个 SKILL.md 改动(`using-anovgis` + `anovgis-pitfalls`)+ CHANGELOG
|
|
370
|
+
- 教训:v0.2.7.2 仅 curl + grep + vite 启动就 commit 修复 → 实际 playwright 报新错。**P11 强制 playwright 验证是 meta 规则**
|
|
371
|
+
|
|
372
|
+
## [0.2.8] - 2026-09-24
|
|
373
|
+
|
|
374
|
+
v0.2.7 在 claude方式 项目上累计 3 个 sub-revision(v0.2.7.1 / .2 / .3),累积起来升 minor 版本 0.2.7 → 0.2.8。
|
|
375
|
+
|
|
376
|
+
- **v0.2.7.1**:P10 必现实证 + 加 `optimizeDeps.exclude` fallback
|
|
377
|
+
- **v0.2.7.2**:剥离 `@anov/vite-plugins`(hello earth 不需要)
|
|
378
|
+
- **v0.2.7.3**:跟齐官方 `anov-gis-demo-vue3-main` 模板(vite 8 + vue 3.5.43)
|
|
379
|
+
|
|
380
|
+
playwright 实测官方模板零报错,撤销 v0.2.7.2 的 exclude 强制方案。
|
|
381
|
+
|
|
382
|
+
### Changed
|
|
383
|
+
- `.claude-plugin/plugin.json`:0.2.7 → 0.2.8
|
|
384
|
+
- `.claude-plugin/marketplace.json`:0.2.7 → 0.2.8
|
|
385
|
+
|
|
386
|
+
### Notes
|
|
387
|
+
- 本次仅改清单版本号,skill 内容变更记在 v0.2.7 条目下的各 sub-revision
|
|
388
|
+
- 后续 v0.2.9 / v0.2.10 又推翻了 v0.2.7.3 的 vite 8 结论(见 P10 定论重写)
|
|
389
|
+
|
|
390
|
+
## [0.2.7] - 2026-09-23
|
|
391
|
+
|
|
392
|
+
claude方式 项目(`E:\公司\测试\claude方式`)2026-09-23 实测命中 3 个 v0.2.2/v0.2.6 没覆盖的问题。
|
|
393
|
+
|
|
394
|
+
### [0.2.7.3] 2026-09-24 跟齐官方
|
|
395
|
+
|
|
396
|
+
claude方式 项目用户反馈参考 `E:\anov-gis-demo-vue3-main`(SDK 官方 Vue 3 模板)。实测:**官方模板(vite 8.3.0 + vue 3.5.43 + plugin-vue 6.0.9 + 无 `@anov/vite-plugins` + 无 `optimizeDeps.exclude`)playwright 加载零报错**。
|
|
397
|
+
|
|
398
|
+
- vite 8 预构建 bundle 中虽然仍有 2 `function Yi(`(L53258 + L133250),但嵌套层级不同(实测 -62 vs -56),属于不同 scope,**不互相 shadow**,原形链完整
|
|
399
|
+
- vite 7 才是真正的撞名场景(同 scope shadow → 报 P10)
|
|
400
|
+
|
|
401
|
+
**撤销 v0.2.7.2 的 `optimizeDeps.exclude` 强制方案**,改为:
|
|
402
|
+
|
|
403
|
+
| 场景 | 推荐 |
|
|
404
|
+
|---|---|
|
|
405
|
+
| Vite **8** + 裸 `@anov/gis` | 默认官方模板即可,无需 exclude |
|
|
406
|
+
| Vite **7** + 裸 `@anov/gis` | 默认模板 + `optimizeDeps.exclude: ['@anov/gis']` fallback |
|
|
407
|
+
|
|
408
|
+
具体改动:
|
|
409
|
+
|
|
410
|
+
- `using-anovgis` § 组合 1:完全对齐官方模板(vite.config.ts 用 `fileURLToPath` 别名,package.json vue `^3.5.43` / vite `^8.3.0` / `@vitejs/plugin-vue` `^6.0.9`)
|
|
411
|
+
- `anovgis-pitfalls` P10:修订「撞名但不同 scope」实测结果 + 撤销 v0.2.7.2 的 exclude 强制
|
|
412
|
+
- `using-anovgis` 避坑表:去掉「没 optimizeDeps.exclude」行(vite 8 不复现)
|
|
413
|
+
|
|
414
|
+
### [0.2.7.2] 2026-09-24 简化
|
|
415
|
+
|
|
416
|
+
用户反馈:hello earth 项目**不需要** `@anov/vite-plugins` 协调包(它带 `layout-designer` 服务 + `@anov/cic-standard-sdk` 依赖,对最小骨架是负担)。剥离后 v0.2.7.1 仍稳定。
|
|
417
|
+
|
|
418
|
+
### [0.2.7.1] 2026-09-24 修订
|
|
419
|
+
|
|
420
|
+
P10 实测 `anovVitePlugin()` 单独不够:claude方式 项目 09:23 跑通发现 Vite 预构建 bundle 里 `function Yi(` 出现 2 次(41291 ImageryLayer + 103228 SDK helper,esbuild 重命名撞名),后者 shadow 前者导致 `ImageryLayer.prototype.queueReprojectionCommands` 挂到错误对象。**真正修复:必须 `optimizeDeps.exclude: ['@anov/gis', '@anov/cic-standard-sdk']`**。
|
|
421
|
+
|
|
422
|
+
### [0.2.7] 初版
|
|
423
|
+
|
|
424
|
+
「vue3 + 本目录」跑出 2 个连环错:`vite-plugin-static-copy@1.x` ESM-only + `TypeError: queueReprojectionCommands`。模板版本号全套陈旧(vue3.4 / vite5 / plugin-vue5 / static-copy1.x),vite.config.ts 缺 `anovVitePlugin` 适配。**修复**(以 hainan 2026-09 实战版本为事实标准)。
|
|
425
|
+
|
|
426
|
+
### Notes
|
|
427
|
+
- 2 个 SKILL.md 改动:`using-anovgis` + `anovgis-pitfalls`
|
|
428
|
+
- claude方式 项目实测的 2 个连环错(`vite-plugin-static-copy ESM` + `queueReprojectionCommands`)按本 v0.2.7.2 模板 1 轮 `Write` 即可避免,且**无任何 anov 私有插件依赖**
|
|
429
|
+
|
|
430
|
+
## [0.2.6] - 2026-09-23
|
|
431
|
+
|
|
432
|
+
用户再次审计 SDK examples 总数为 **102 个 demo**(而非 v0.2.4/v0.2.5 假设的 137),diff 出 v0.2.5 仍缺 17 个真 demo。**全部嵌入**。
|
|
433
|
+
|
|
434
|
+
### Added
|
|
435
|
+
- **anovgis-imagery-terrain 新增 6 个 snippet**:
|
|
436
|
+
- S21 ArcGISSatelliteImage(`createArcGisImageryLayer({style:'dark'})` 蓝黑暗色变体)
|
|
437
|
+
- S22 GoogleSatelliteImage(`createGoogleImageryImageryLayer({lyrs:'h'})` 注记)
|
|
438
|
+
- S23 baiduSatelliteImage(`createBaiduImageryLayer({crs:'WGS84', style:'traffic'})` 路况)
|
|
439
|
+
- S24 tencentSatelliteImage(`createTencentImageryLayer({style:'img'|'2'})` 卫星/注记)
|
|
440
|
+
- S25 terrainRGB(⚠️ P0 SDK 优先级铁律反例:SDK 没包装,需自继承 `Cesium.WebMapTileServiceImageryProvider` + `GrayscaleImageryProvider` 解码天地图 terrain-rgb_w WMTS)
|
|
441
|
+
- S26 EPSG:4490 矢量瓦片(`createWMTSImageryLayer({tileMatrixSetID:'EPSG:4490', tilingScheme: new Cesium.GeographicTilingScheme()})`)
|
|
442
|
+
- **anovgis-layers 新增 5 个 snippet**:
|
|
443
|
+
- S16 geojsonLayer/billboard(`viewer.entities.add` 交替 billboard)
|
|
444
|
+
- S17 geojsonLayer/marker(`Cesium.GeoJsonDataSource.load` + viewer.dataSources.add,文件命名误导实为 polyline)
|
|
445
|
+
- S18 polygonBuilds 基础版(绝对高度,无地形防漂移)
|
|
446
|
+
- S19 polygonBuildsMaterial 贴地版(`HeightReference.RELATIVE_TO_GROUND` + `extrudedHeight = height * 3`)
|
|
447
|
+
- S20 polygonBuildsMaterial 自定义 GLSL 材质版(`Cesium.Material({fabric, source})` 按 UV 输出颜色)
|
|
448
|
+
- **anovgis-materials 新增 2 个 snippet**(waterShadertoy 变体):
|
|
449
|
+
- waterShadertoy 变体 1(反射纹理 `viewer.scene.captureSceneToFramebuffer()` + 自定义 fabric uniforms)
|
|
450
|
+
- waterShadertoy 变体 2(Blinn-Phong Specular `fabric:{type:'Specular'}`)
|
|
451
|
+
- **anovgis-viewer 新增 § 4.5 相机状态机(重大发现!)**:来源于 `effect/testzoom.html`,揭示 SDK 的 `viewer.getCenter / getZoom / getPitch / setCenter / setZoom / setCenterAndZoom / zoomIn / zoomOut / setPitch / setZoomRange / getView / setView` 一级 API + `center / zoom / pitch / minZoom / maxZoom / minPitch / maxPitch / flyDuration` 初始化选项。**此前 skill 完全漏掉**这套比 `flyTo` 更适合做"地图应用"级别 zoom/pan 控制的 API(mapbox / 高德地图风格)。
|
|
452
|
+
- **anovgis-models-3dtiles 新增 S19 建筑白模样式(`buildMaterial`)**:来源于 `model/vectortiles1.html`(文件名误导实为 buildMaterial 建筑白模 + dat.GUI 切换 5 种样式:`setNoStyle / setHeightStyle / setTechnologyStyle / setNightStyle / setOneColor`)。
|
|
453
|
+
|
|
454
|
+
### Notes
|
|
455
|
+
- 5 个 SKILL.md 改动,共 +约 800 行。
|
|
456
|
+
- v0.2.6 之前 v0.2.5 漏掉的 17 个 demo **全部嵌入**。
|
|
457
|
+
- 故意跳过(已在 v0.2.5 CHANGELOG 列出):
|
|
458
|
+
- `analysis/windlayer2.html`(broken,ReferenceError)
|
|
459
|
+
- `model/threejs_factory.html`(空 import map)
|
|
460
|
+
- `model/rainSnowPlane@@.html`(typo 文件,SDK 实际文件是 `rainSnowPlane.html`)
|
|
461
|
+
- `graphics/billboard2.html`(`billboard.html` 变体,前者已覆盖)
|
|
462
|
+
- `material/lightingTrailPolyline.html`(`PolylineLighting.html` 同材料覆盖)
|
|
463
|
+
- `material/waterShadertoy.html`(v0.2.5 已嵌入核心 GLSL,变体 1/2 在 v0.2.6 补充)
|
|
464
|
+
- `material/daohangLineTest.html`(v0.2.5 已嵌入单条最简版)
|
|
465
|
+
- `offlinemap/iServerWmsGuanGaiMianJi/TuRangHanShuiLiang/Zuowu.html`(与 `iServerWmsCGI.html` 同结构,只嵌入代表)
|
|
466
|
+
- `thirdpart/thirddemo.html`(仅 Viewer 样板 + window.open 外链)
|
|
467
|
+
- `demos/digitalCity/testDemo.html`(综合 demo,本身就是示例集合)
|
|
468
|
+
- `performance/wall_drawCommand2_*` 22 个变体(`drawCommand.html` 已覆盖核心 API)
|
|
469
|
+
- `performance/testcityengine/testdilei/textureRectangle/tiles_building/tiles_tree/wall_cesium/wall_drawCommand/wall_drawCommand_testone/wall_drawCommand_testone_Cache` 9 个(已用 drawCommand 核心 API 覆盖,其他为性能对比测试)
|
|
470
|
+
|
|
471
|
+
### 重大发现
|
|
472
|
+
- **effect/testzoom.html** 揭示 SDK 完整相机状态机 API,在 v0.2.5 之前完全没文档化。这是 v0.2.5→v0.2.6 审计的最大收获。
|
|
473
|
+
|
|
474
|
+
## [0.2.5] - 2026-09-23
|
|
475
|
+
|
|
476
|
+
ceshi2 反馈延伸:用户问"examples 都包含进来了吗"——审计发现 v0.2.4 自包含改造**实际上只覆盖 ~80%**(我之前用 `^### S[0-9]` grep 漏算了 `### 3.x` / `### Snippet N` 模式),实际缺失约 24 个 demo。**全部嵌入**。
|
|
477
|
+
|
|
478
|
+
### Added
|
|
479
|
+
- **anovgis-analysis 新增 7 个 snippet**(覆盖全部 14 个 demo):3.13 DamWaterRelease(S9)、3.14 locateTest 全图元(S10)、3.15 TiandituGeocoderService + Cesium.Geocoder 完整接法(S11)、3.16 旧版 geocoder(S12)、3.17 山西限定 geocoder(S13)、3.18 Cesium.CustomShader + Model.fromGltfAsync 注入(S14)、3.19 windlayer2.html ⚠️ 开发中版本警告。
|
|
480
|
+
- **anovgis-materials 新增 6 个 snippet**:parabola(FlowLinePrimitive + ANOVGIS.parabola)、PolylineVFlywireMaterialPoperty(注: SDK 拼写 "Poperty" 少一个 r)、DaoHangLineMaterialProperty(9 个关键字段 + Object.assign 动态调参)、water(Cesium.Material.fromType('Water'))、waterShadertoy(自定义 fabric GLSL)、cloud(Water 复用做云)。
|
|
481
|
+
- **anovgis-popup-widget 新增 2 个 snippet**:S6b imagerylayerpopup_line(query_layers 强制只查线)、S6c imagerylayerpopup_point(width:39 height:39 大圆点高亮)。
|
|
482
|
+
- **anovgis-layers 新增 6 个 snippet**:S10 primitiveMarker(Cesium.PointPrimitiveCollection)、S11 wall 原生 Entity、S12 wallBuilds 双层渲染(墙体 + 楼顶)、S13 天地图 WFS GeoJSON(Snippet 含 URLSearchParams 拼 WFS URL)、S14 railway dashPattern 虚实线 + layer 级 popup、S15 SuperMap iServer WMS + bindPopup。
|
|
483
|
+
- **anovgis-imagery-terrain 新增 3 个 snippet**:S18 vectorTile(XYZ 切片 + LocateUtil.flyToPoint)、S19 滤镜着色(Cesium 原生 UrlTemplateImageryProvider + 自定义 fragment shader)、S20 跨实例通信(ANOVGIS.createInstance + sendMessage/receiveMessage)。
|
|
484
|
+
|
|
485
|
+
### Notes
|
|
486
|
+
- 7 个 SKILL.md 改动,共 +约 1500 行。
|
|
487
|
+
- **故意不嵌入**(已审计确认)的 demo:
|
|
488
|
+
- `event/tilesetpopup1.html` —— 文件被错误替换成 `basemap/vectorTile.html` 内容,已在 § S18 vectorTile 覆盖
|
|
489
|
+
- `offlinemap/backgrountransparent.html` —— 文件实质为空 Viewer,无透明配置
|
|
490
|
+
- `model/threejs_factory.html` —— 只有空 import map + 占位 div
|
|
491
|
+
- `offlinemap/iServerWmsZuowu/TuRangHanShuiLiang/GuanGaiMianJi.html` —— 与 `iServerWmsCGI` 同结构(仅 URL/title 差异),§ S15 已代表
|
|
492
|
+
- `thirdpart/thirddemo.html` —— 仅 Viewer 样板 + window.open 外链,无 SDK 特色用法
|
|
493
|
+
- `demos/digitalCity/testDemo.html` —— 综合 demo,本身就是示例集合,无需嵌入
|
|
494
|
+
- 现在 SDK examples **137 个 demo 中已嵌入 ~95 个**(69%),其余 ~12 个故意跳过(空文件 / 重复 / 综合 demo),skill 体系已自包含。
|
|
495
|
+
|
|
496
|
+
## [0.2.4] - 2026-09-23
|
|
497
|
+
|
|
498
|
+
ceshi2 项目(`E:\zhf\ceshi2`)4 类失败教训:skill 没把"扫 examples"做成通用铁律、SDK API 优先级没明文、Viewer 工具栏默认值打架、POI 样式没强制扫 examples、本机绝对路径污染。全部修复。
|
|
499
|
+
|
|
500
|
+
### Added
|
|
501
|
+
- **`using-anovgis` 新增「第 0 铁律:开发前先扫 examples」章节**:开发任何功能(POI / 暗色 / 标绘 / 漫游 / 任意)前**必须**先查 skill 体系内嵌的代码,而不是去翻外部 HTML 文件。包含 40 条「用户关键词 → skill 章节 → SDK API」速查表,12 类 137 个 demo 目录结构(仅作追溯),3 步强制流程,5 个反模式。
|
|
502
|
+
- **`anovgis-pitfalls` 新增 P0 陷阱:SDK 优先级铁律**:表格列出 SDK 已封装的工厂(天地图/高德/百度/腾讯/WMS/WMTS/XYZ/SingleTile/地形/模型等)与对应严禁回退的 `Cesium.*` 写法,排查表追加「影像自拼 URL」一行。
|
|
503
|
+
- **`anovgis-imagery-terrain` S10 强化暗色主题**:标注「❌ 严禁 `layer.brightness = -1` 野路子」,列出 `setTheme` 全部参数(invert / bgColor / alpha / preMultiplyAlpha / layer)及暗色系推荐值,description 关键词新增「暗色 / 夜间 / 反色 / invert / theme / ImageryThemeGL」。
|
|
504
|
+
|
|
505
|
+
### Fixed
|
|
506
|
+
- **`using-anovgis` Viewer 工具栏默认值打架**:新增「§ Viewer 工具栏默认全开」章节,明确推荐 `baseLayerPicker / homeButton / sceneModePicker / navigationHelpButton / fullscreenButton` 全部 `true`(对齐 SDK examples `basemap/tdtSatelliteImage.html` L96-101),并列出仅在大屏嵌入 / 单页应用 / 移动端嵌入场景下才逐一关闭的边界。
|
|
507
|
+
- **`anovgis-vector-graphics` POI 样式铁律升级**:从「单点样式注意」升级为强制扫 examples,明确三层叠(中心实心点 + 发光外环 billboard + label)、ShapeUtil.drawCanvalCircle 用法、`scaleByDistance` / `disableDepthTestDistance` / `selectedHighlight` 三个必备选项。
|
|
508
|
+
- **skill 路径污染清理**:v0.2.3 新加的「扫 examples」工作流硬编码 `E:/zhf/gitlab/ANOV-GIS/...` 本机路径,会导致其他用户装 skill 后找不到代码。已重写为「查 skill 内嵌代码」,**所有 `E:/zhf/gitlab/...` 路径清除**(用相对锚点 / 章节引用 / `// 来源:` 注释替代)。本节作为「skill 自包含铁律」放在第 0 铁律顶部,5 个反模式都明确禁用本机路径。
|
|
509
|
+
- **`anovgis-imagery-terrain` S10 完整嵌入 maptheme.html 代码**:不再依赖外部 HTML 文件,`setTheme` 完整代码 + 全部参数表 + 暗色系推荐值全部嵌在 skill 内。
|
|
510
|
+
|
|
511
|
+
### Notes
|
|
512
|
+
- 4 个 SKILL.md 改动:using-anovgis / anovgis-pitfalls / anovgis-imagery-terrain / anovgis-vector-graphics,共 +约 230 行。
|
|
513
|
+
- 修复后用户接"加载暗色系地图"这类需求,流程变成:查 skill 速查表 → 命中 `anovgis-imagery-terrain § S10` → 用 `ANOVGIS.ImageryThemeGL().setTheme({invert: true, bgColor: BLACK, alpha: 0.1})`(代码已嵌入 skill)。
|
|
514
|
+
- 用户反馈原文:
|
|
515
|
+
- "不是只有让加 POI 的时候才想起来读一下 examples,其他功能也需要参考" → 通用铁律
|
|
516
|
+
- "E:/zhf/gitlab/ANOV-GIS/examples/public/examples/html 是我本地的路径,别人用这个 skill 是不是就找不到这个代码了?你应该把示例都融入到 skill 里面" → skill 自包含铁律
|
|
517
|
+
|
|
518
|
+
## [0.2.3] - 2026-09-23
|
|
519
|
+
|
|
520
|
+
### Fixed
|
|
521
|
+
ceshi 项目(`E:\zhf\ceshi`)MasterGo 设计稿还原实战复盘,2 类问题。
|
|
522
|
+
|
|
523
|
+
- **9 个 skill 裸用 `Cesium.*` 不声明来源**:`anovgis-analysis` / `effects` / `imagery-terrain` / `layers` / `materials` / `models-3dtiles` / `popup-widget` / `primitives` / `vector-graphics` 顶部优先级 block 后统一插入「Cesium 入口(铁律)」:`const Cesium = window.Cesium`,不存在 `ANOVGIS.Cesium` 写法,底层 Cesium API 细节查 `cesiumjs-skills` 对应 skill。根因:会话 plan 作者 grep skill 片段时看不到 `anovgis-viewer` 的铁律声明,误写 `ANOVGIS.Cesium.*`。
|
|
524
|
+
- **cesiumjs-skills 路由未注明取法差异**:`using-anovgis` § 默认调试流程 L2 行补充「API 名与写法通用,但取法不同」:其 `import { X } from "cesium"` 一律换成 `const Cesium = window.Cesium` 后取 `Cesium.X`。
|
|
525
|
+
|
|
526
|
+
### Notes
|
|
527
|
+
- 10 个 SKILL.md 改动,+19/-1 行。
|
|
528
|
+
- 会话中 Task 2 子代理断言「`Cesium.LabelStyle` 在 1.143 不可用」经 dist bundle 验证为误报(`LabelStyle` 含 `FILL_AND_OUTLINE`,且被 Label 渲染内部使用),故现有 `Cesium.LabelStyle.FILL_AND_OUTLINE` 示例未做修改。
|
|
529
|
+
|
|
530
|
+
## [0.2.2] - 2026-09-17
|
|
531
|
+
|
|
532
|
+
### Fixed
|
|
533
|
+
claude方式 项目(`E:\公司\测试\claude方式`)v0.2.1 实测命中 3 个新问题。
|
|
534
|
+
|
|
535
|
+
- **「用 vue 就默认静态资源拷贝,不要再让用户选了」**:`using-anovgis` § 引导式初始化顶部新增「§ 步骤 0 项目类型判定」。用户 prompt 含具体技术栈(`vue3` / `vite` / `webpack` / `react` 等)→ 跳过 Q1;含「最小骨架」/「quickstart」→ 跳过 Q3 默认「极简」profile;仅完全空白才走完整 4 问。
|
|
536
|
+
- **「天地图 key 默认用 anov-gis 的 demo 里面的」**:`using-anovgis` § NPM 引入 Vite 骨架末尾补 `globalConfig.ts` 示例,`tdtKey` 硬编码为 `b832b9764939cbb0919148c548b669ba`(与 SDK `examples/src/mixins/mixin.js` 一致)。§ 引导式初始化加「默认底图 key」声明:除非用户明确说「要自己的 key」,否则不让去天地图控制台申请。
|
|
537
|
+
- **`baseLayer: 'TDT'` 报错**:`using-anovgis` § 最小 Viewer 加红框警告:`baseLayer` 必须是 `ANOVGIS.ImageryType.*` 枚举,传字符串触发 `TypeError: Cannot create property '_layerIndex' on string 'TDT'`。推荐改用构造后 `addImageryProvider` 模式。
|
|
538
|
+
- **`tdtCva.raiseToTop is not a function`**:`anovgis-imagery-terrain` § S15 snippet 修复,改为 `viewer.imageryLayers.raiseToTop(label)`。**根因**:`anovgis-imagery-terrain/SKILL.md:234` 原写 `label.raiseToTop()`,但 v1.8.6 SDK 包装的 ImageryLayer 不透出 `raiseToTop`。
|
|
539
|
+
- **`anovgis-pitfalls` 新增 P8 陷阱**:SDK 包装对象不透出 `Cesium.ImageryLayer` 原生方法(仅透出 `show` / `alpha` / `brightness` 等常用属性),其他操作必须走 `viewer.imageryLayers.*` 间接调用。
|
|
540
|
+
|
|
541
|
+
### Notes
|
|
542
|
+
- 4 个文件改动,+93/-9 行。
|
|
543
|
+
- claude方式 项目实测的 2 次报错(`Cannot create property '_layerIndex' on string 'tdt'` + `tdtCva.raiseToTop is not a function`)现在可在不动用户代码的情况下避免。
|
|
544
|
+
|
|
545
|
+
## [0.2.1] - 2026-09-17
|
|
546
|
+
|
|
547
|
+
### Fixed
|
|
548
|
+
hainan 项目实战反馈 5 类 skill 反模式,全部修复。
|
|
549
|
+
|
|
550
|
+
- **`ANOVGIS.Cesium` 不存在 / undefined**:`anovgis-viewer` 命名空间速查表删除 `ANOVGIS.Cesium` 行,`anovgis-pitfalls` § P7 重写,明确 v1.8.6 SDK 未把 `Cesium` 对象本身挂到顶层。**唯一推荐写法:`const Cesium = window.Cesium`**(CDN/UMD/ESM 全场景通用)。**禁止** `ANOVGIS.Cesium`、`import Cesium from 'cesium'`。
|
|
551
|
+
- **Vue 3D 对象进响应式卡顿**:`using-anovgis` 顶部新增「§ 框架集成 3 条铁律」+ 正确骨架 + 反例。**严禁** `viewer / scene / camera / entity / primitive / imageryLayers / viewer.clock` 进 Vue 的 `data() / reactive() / ref() / computed()`,一律模块级 `let`。
|
|
552
|
+
- **盲推 CDN HTML**:`using-anovgis` § 快速上手新增「§ 项目现状探测」+ 把 NPM 章节提到 CDN 之前 + 给出 Vite + Vue 3 完整可粘骨架(vite.config.ts + App.vue)。CDN/UMD 降为 demo 备用场景。
|
|
553
|
+
- **鼓励读 SDK 源码**:12 个 skill 顶部加优先级 block:「本 skill 优先于 SDK 源码 / `node_modules/@anov/gis/`,严禁主动 Glob/Grep 实物」。原 `pitfalls` § P7 / `viewer` 顶部「snippet 行号基于 v1.8.6 源码验证」改为「基于 v1.8.6 SDK 公开 API 行为锁定,仅作语义锚点」。
|
|
554
|
+
- **Chrome DevTools 过度调用**:`using-anovgis` 新增「§ 默认调试流程」5 级优先级,Chrome DevTools 仅第 5 级兜底。hainan 项目实测 Chrome DevTools 累计调用 922 次(最大会话单次 537 次),按本流程可降至 <50 次。
|
|
555
|
+
|
|
556
|
+
### Notes
|
|
557
|
+
- 12 个 SKILL.md 改动,+269/-39 行(不含本次 manifest)。
|
|
558
|
+
- `using-anovgis` 增量最大(+204 行):新增「3 条铁律」「调试流程」「项目现状探测」「Vue3+Vite 骨架」4 个章节。
|
|
559
|
+
- 不动 demo 锚点行号(如 `// 来源: examples/.../xxx.html L96-101`)——这是 demo 锚点而非 SDK 源码行号。
|
|
560
|
+
|
|
561
|
+
## [0.2.0] - 2026-09-16
|
|
562
|
+
|
|
563
|
+
### Added
|
|
564
|
+
- **引导式初始化(5 步交互向导)**:`using-anovgis` 新增「引导式初始化」章节。当用户说「使用 anov-gis 初始化三维地球」「新建 anov-gis 项目」时,AI 主动调用 `AskUserQuestion` 引导选择技术栈 / 底图 / 控件 profile / 部署方式,输出 Vue 3 + Vite / Vue 2 + Vue CLI / HTML + UMD CDN / Vanilla JS + webpack 4 种组合的完整可运行项目骨架(package.json + 构建配置 + 入口文件)。新增 4 个 profile 预设(极简 / 推荐 / 完整 / 自定义)+ 自定义细分 AskUserQuestion。
|
|
565
|
+
|
|
566
|
+
### Changed
|
|
567
|
+
- **Baseline 同步**:`@anov/gis` v1.8.4 → **v1.8.6**(Cesium 仍 1.143.0)。v1.8.6 新增 `MultiKeyTdtImageryProvider` / `PositonEditor` / `TilesetEditor` / `Viewer.flyTo` Primitive 重载 / 15 个 Primitive 类新增 `boundingSphere` getter。`anovgis-materials` 补登漏登记的 `DaoHangLineMaterialProperty`(v1.8.4 已存在但当时漏列)。`anovgis-imagery-terrain` 新增 S17「MultiKeyTdt 多 key 天地图影像」snippet。`anovgis-viewer` flyTo 章节加 v1.8.6 备注:`flyTo` 可直接传 SDK Primitive / Tileset,内部用 `boundingSphere` 兜底。
|
|
568
|
+
- **修 frontmatter**:`anovgis-pitfalls` 与 `anovgis-imagery-terrain` 补 `name` 字段(之前缺失,违反 Claude Code skills 规范)。
|
|
569
|
+
- **DOMAINS.md 强化**:5 节结构(权威归属 / 跨域路由 / 反归属 / 空白域 / 变更日志)。
|
|
570
|
+
- **description 关键词优化**:基于 137 demo 触发矩阵调研,对 9 个现有 skill 的 description 加触发关键词(`skybox` / `customshader` / `positonEditor` / `parabola` / `WebWorker` / `GlobeRotate` / `KML` / `4490` 等),从触发覆盖 55% 提升至 ~72%。
|
|
571
|
+
- **using-anovgis 入口增强**:新增「Demo 场景 → Skill 路由表」(30 行)。
|
|
572
|
+
|
|
573
|
+
### Added
|
|
574
|
+
- **`anovgis-primitives` 新 skill**:覆盖 19 类 Primitive 全集(CloudPrimitive / DiffuseWall / FlowLine / LightCylinder / ScanCircle / TrailLine / Video / Water / BounceBillboard / BounceLabel / ElecEllipsoid / ModelPrimitive / ModelCollection / GroundPolygon / GroundPolyline / BillboardPrimitive / LabelPrimitive / PointPrimitive / PolylinePrimitive),25 个 snippet。
|
|
575
|
+
- **`anovgis-models-3dtiles` 新 skill**:覆盖 `Model` / `Tileset` / loadGlb / customshader / PostFog / qingxieTileset / quShouBengZhan / vectortiles / rainSnowPlane + Tileset 拾取 + 高亮 + v1.8.6 `boundingSphere` getter,18 个 snippet。
|
|
576
|
+
- **`anovgis-popup-widget` 新 skill**:覆盖 Popup / Tooltip / Template / WidgetBase / bindPopup / highlight / selectedHighlight / tilesetpopup / imagerylayerpopup,15 个 snippet。
|
|
577
|
+
- **`docs/DEMO-SKILL-MAP.md` 新附录**:137 demo → skill 完整路由矩阵,作为 LLM 兜底参考。
|
|
578
|
+
|
|
579
|
+
### Notes
|
|
580
|
+
- 不覆盖 `@anov/gis.applyfn` / `@anov/gis.ui` / `@anov/gis.cesiumthreelib`(用户决策)。
|
|
581
|
+
- 不引入 SessionStart hook / examples/ 子目录外置 / Chrome DevTools MCP。
|
|
582
|
+
- 路径说明:snippet 仍含 `E:/zhf/gitlab/ANOV-GIS/...` 绝对路径作 SDK 源码锚点;具体 SDK 以本机 clone 为准。
|
|
583
|
+
- README 大幅重写:详细安装(3 方式含 Codex)/ 详细使用(4 步工作流 + Demo 工作流 + 报错排查)。
|
|
584
|
+
|
|
585
|
+
## [0.1.1] - 2026-07-30
|
|
586
|
+
|
|
587
|
+
### Changed
|
|
588
|
+
- 扩充 8 个 skill 的 snippet 密度,从 ~67 个提升到 115 个 js code blocks(+72%)
|
|
589
|
+
- 总行数从 1719 → 2934(+71%),总 tokens ~21k → ~29k
|
|
590
|
+
- 各 skill 新增 snippet 来源主要从 `e:/zhf/gitlab/ANOV-GIS/examples/public/examples/html/` 130 个 demo HTML 中抽取
|
|
591
|
+
- 重点补充:
|
|
592
|
+
- `anovgis-layers` 3 → 10 snippet(缺口最大,14 个要素图层每个至少 1 个用法)
|
|
593
|
+
- `anovgis-viewer` 7 → 14 snippet(pickPosition / flyTo 6 参数 / setView 等)
|
|
594
|
+
- `anovgis-vector-graphics` 11 → 22 snippet(Vector + Primitive 各补 1 用法)
|
|
595
|
+
- `anovgis-materials` 6 → 13 snippet(PolylineTrail/LightingTrail/Glow/Gradient/ImageTrail/WallLineFlow/CircleBlur/CircleScan)
|
|
596
|
+
- `anovgis-imagery-terrain` 9 → 16 snippet(WMS/WMTS/XYZ/SingleTile/影像 Provider 切换/Terrain 两种模式)
|
|
597
|
+
- `anovgis-analysis` 6 → 12 snippet(DrawPoint/Rectangle/Circle/HeatMapLayer/TerrainClipping/WindLayer)
|
|
598
|
+
- `anovgis-effects` 5 → 11 snippet(Rain/Snow/Cloud/Fog/LensFlare/DepthOfField)
|
|
599
|
+
- `using-anovgis` 3 → 8 snippet(UMD/ESM/Vue 2/Vue 3/多 Viewer/iframe 集成)
|
|
600
|
+
|
|
601
|
+
### Notes
|
|
602
|
+
- 仍与 CesiumGS cesiumjs-skills 密度(~11%)有 2-3x 差距,下次 v0.2.0 评估是否继续扩充
|
|
603
|
+
|
|
604
|
+
## [0.1.0] - 2026-07-30
|
|
605
|
+
|
|
606
|
+
### Added
|
|
607
|
+
- 9 个领域 skill:`using-anovgis`、`anovgis-viewer`、`anovgis-imagery-terrain`、`anovgis-layers`、`anovgis-vector-graphics`、`anovgis-materials`、`anovgis-analysis`、`anovgis-effects`、`anovgis-pitfalls`
|
|
608
|
+
- `docs/DOMAINS.md` 领域归属图(每个 ANOVGIS 类只属于一个 skill)
|
|
609
|
+
- `.claude-plugin/plugin.json` + `.claude-plugin/marketplace.json` plugin 元数据
|
|
610
|
+
- README + LICENSE(ISC)+ 本 CHANGELOG
|
|
611
|
+
|
|
612
|
+
### Changed
|
|
613
|
+
- 从旧 hub-spoke `~/.claude/skills/anov-gis/`(121 行 SKILL.md + 9 个 references/)迁移
|
|
614
|
+
|
|
615
|
+
### Notes
|
|
616
|
+
- Plugin version 与 SDK version 解耦:plugin 跟踪"拆分方案版本",SDK 由 `@anov/gis` 自己的 semver 管
|
|
617
|
+
- 不覆盖 `@anov/gis.applyfn` / `@anov/gis.ui` / `@anov/gis.cesiumthreelib` 子包
|
|
618
|
+
- 不引入 SessionStart hook 或 MCP(YAGNI,等 v1.0.0 路线图评估)
|