Skip to content

feat: sync skills to CesiumJS 1.144 with optimized wording - #27

Open
jdehorty wants to merge 1 commit into
mainfrom
feat/cesiumjs-v1.144-skills
Open

feat: sync skills to CesiumJS 1.144 with optimized wording#27
jdehorty wants to merge 1 commit into
mainfrom
feat/cesiumjs-v1.144-skills

Conversation

@jdehorty

@jdehorty jdehorty commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

What

Syncs the skills package to CesiumJS 1.144 (released 2026-08-01; no breaking changes, no deprecations), scoped to skills/** only — 17 files, +1623/−168. No eval infra, config, docs, or README changes (follow-up planned for those).

Consolidates three streams:

  1. feat/eval-and-optimization skill improvements — the optimization-loop wording the tracked all-pass baselines were rendered from: hover/selection recipes, camera framing guidance, tileset render-readiness patterns, provider hygiene, time/property recipes, and expanded quick-reference tables across all 14 domain skills.

  2. CesiumJS 1.144 release sync (from justin/czmjs-1144-sync-eval @ 7d95669):

    Area Addition Skill
    Camera Composable Controller framework: ControllerHost, ScreenSpaceMapCameraController, ScreenSpaceElevatorCameraController, HybridScreenSpacePanCameraController, ScreenSpaceTiltOrbitCameraController, ScreenSpaceZoomCameraController, MouseButton, ScreenSpaceInputBindings, Viewer.addController cesiumjs-camera
    Interaction Scene.snap + SceneSnapResult experimental edge-snap picking cesiumjs-interaction
    3D Tiles UrlTemplate3DTilesDataProvider base class; automatic terrain draping of clamped vector tile polylines/polygons cesiumjs-3d-tiles
    Imagery Feature-info picking for imagery draped on 3D Tiles cesiumjs-imagery
    Models BENTLEY_materials_planar_fill support, KHR_mesh_primitive_restart, edge-visibility typed-array loading (~19x less JS heap) cesiumjs-models-particles
    Materials Texture.defaultColor placeholder color (runtime-public, untyped) cesiumjs-materials-shaders
  3. API-verification refinements — every 1.144 claim was checked against the published cesium@1.144 npm package (Cesium.d.ts + runtime import), the official CHANGES.md, and engine sources:

    • 1.144 adds exactly 12 exports to Cesium.d.ts; 11 are runtime-real. GRID_TARGET_SEGMENTS_PER_CELL is a declaration-only leak (undefined at runtime) — noted so agents never import it.
    • KHR_mesh_primitive_restart is not ratified (Khronos glTF PR #2569 still open) — described as the multi-vendor KHR successor still in review.
    • The fifth controller (ScreenSpaceZoomCameraController) is public even though the release notes list four.
    • Controller tuning knobs documented per class exactly as shipped: panSpeed/inertiaEnabled/inertialDecay (map/elevator), dampingEnabled (tilt-orbit/zoom), angleThreshold + nested controllers (hybrid).
    • Scene.snap defaults (width = 25, height = width), Model-pipeline-only scope, WebGL2 EXT_color_buffer_float requirement, and SceneSnapResult = { object, position, screenPosition, isEdge } all match the shipped JSDoc.
    • Draped-imagery pick fallback verified provider-generic in engine source (covers WMS and WMTS enablePickFeatures).
    • All 14 skill version baselines bumped to 1.144.

Conflict handling vs main

main merged #24 (frame named targets with bounding spheres) after the eval branch forked; the camera skill here is a three-way merge that preserves both: #24's flyToBoundingSphere target-framing guidance and quick-reference rows are intact, and the new Controller-framework note explicitly routes input-remap tasks back to ScreenSpaceCameraController's *EventTypes.

Evaluation evidence (feat/eval-and-optimization pipeline)

Vetted bytes == shipped bytes (the validated tree is byte-identical to this PR's skills/).

  • Tier 1 — deterministic gate (npm run gate, same script as eval-branch CI): PASS — evaluation + scenario manifests validate, skill contract passes for all 15 skills against the 582-symbol registry, 227 unit tests pass, deterministic fixture scorecard 100%, fixture polarity verification passes, canonical eval surface + tracked public surface scans pass.
  • Tier 2 — live eval: all 47 scenarios across the 6 content-changed skills (camera 14, imagery 15, interaction 5, 3d-tiles 5, models-particles 4, materials-shaders 4) re-generated from this PR's skill text (codegen: copilot / gpt-5.6-sol / low) and rendered under CesiumJS 1.144, then scored deterministically:
    • 46/47 cases all-checks-pass; combined audit score 99.3% (140/141 checks; threshold 95%).
    • The single failing case is cesiumjs-camera/eval-006 (a regression_critical: false scenario) and it is environment-caused, control-proven: only its tile-settle/screenshot gates fail ("globe tiles still streaming" past the 45 s budget); its substantive checks (no_console_errors, code_runs, all pattern checks) pass on every roll. Re-rendering the byte-identical Aug-24 source that previously settled in 5–9 s fails the same way under the host load present during validation (load average 24–29 with an external Chrome pegging a core; SwiftShader tile generation is CPU-bound). Re-run on a quiet host to get 47/47.
  • Regression bar: the previous tracked baselines (rendered from the eval-branch skills) are 47/47 all-pass; case-by-case comparison shows no check-set differences in 46 cases. Transient infra flakes observed during the runs (a cesium.com CDN ERR_CERT_AUTHORITY_INVALID blip, Ion preflight timeouts, and one codegen style roll that hoisted baseLayer into a variable) all pass on retry and are unrelated to skill wording.
  • The 8 skills whose only change is the version-baseline line were not re-rendered (per ADR-0005/0007 cost tiering); their existing all-pass baselines were rendered from this same content minus that one line.

Wording hardening informed by eval evidence

  • Interaction eval-003 flaked in an earlier run (codegen chose rectangle graphics where the contract expects polygon): the hover recipe now pins graphics-type fidelity ("polygon over a region" ⇒ polygon graphics with PolygonHierarchy, not rectangle) and adds the entity material-swap variant.
  • Camera eval-010 protection: the framework blockquote keeps rotateEventTypes/tiltEventTypes/zoomEventTypes canonical for remap tasks, so the new controllers cannot misdirect them.
  • Imagery eval-002 flaked once on a source-regex (baseLayer: layer hoisted into a variable — functionally identical); fresh roll passes. Flagged as a scenario-regex hardening opportunity on the eval branch (not a skills issue).

Follow-ups (intentionally out of scope)

  • README.md, .claude-plugin/marketplace.json, and docs/DOMAINS.md still say 1.143/~551 on main; a companion docs/metadata PR will bump them (content already prepared).
  • Eval-branch companion Done: feat/eval-and-optimization now carries the 1.144 sync (7d95669), the wording corrections (6f20882), and an alignment commit (4d29273) making its skills/ byte-identical to this PR, so the operational eval branch renders baselines from the same wording that ships to main (pushed to origin).

Reviewer checklist

  • New 1.144 sections (camera framework / snap / draping / draped picking / planar fill / defaultColor)
  • "Not ratified" phrasing for KHR_mesh_primitive_restart
  • Camera skill merge: Fix camera target framing guidance #24 bounding-sphere guidance + Controller framework coexist correctly
  • Skills-only scope is acceptable (docs/metadata bump as follow-up)

Skills-only consolidation of three streams, scoped to skills/**:

1. feat/eval-and-optimization skill improvements — the optimization-loop
   wording that the tracked all-pass baselines were rendered from
   (recipes, framing guidance, render-readiness and provider patterns).
2. justin/czmjs-1144-sync-eval (7d95669) — the CesiumJS 1.144 release sync:
   - Camera: composable Controller framework (ControllerHost, 5 ScreenSpace
     controllers, MouseButton, ScreenSpaceInputBindings, Viewer.addController)
     with canonical asset-inspection setup
   - Interaction: Scene.snap + SceneSnapResult experimental edge-snap picking
   - 3D Tiles: UrlTemplate3DTilesDataProvider base class; automatic terrain
     draping of clamped vector tile polylines/polygons
   - Imagery: feature-info picking for layers draped on 3D Tiles
   - Models: BENTLEY_materials_planar_fill (wireframeFill no-op),
     KHR_mesh_primitive_restart, edge-visibility typed-array memory note
   - Materials: Texture.defaultColor placeholder note
3. API-verification refinements (validated against the published cesium@1.144
   package: Cesium.d.ts + runtime exports, CHANGES.md, engine sources):
   - KHR_mesh_primitive_restart is not ratified (Khronos PR still open)
   - Per-controller tuning knobs documented as shipped (panSpeed/inertia* on
     pan controllers, dampingEnabled on tilt-orbit/zoom, angleThreshold on
     hybrid); input remapping stays on ScreenSpaceCameraController
     *EventTypes
   - Entity hover material-swap variant + graphics-type fidelity note
   - All 14 skill version baselines bumped to 1.144

The camera skill three-way merges the eval-branch content with main's #24
(flyToBoundingSphere target framing); both guidance sets are preserved.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jdehorty added a commit that referenced this pull request Aug 27, 2026
…js-v1.144-skills)

Make skills/ byte-identical to PR #27 (49e0612) so the operational eval
branch renders baselines from the same wording that ships to main:

- camera: three-way merge of main's #24 (flyToBoundingSphere target
  framing, quick-reference rows) with the 1.144 Controller framework
- bump the version-baseline line to 1.144 in the 8 skills the release
  sync did not otherwise touch (core-utilities, custom-shader SKILL +
  REFERENCE, entities, primitives, spatial-math, terrain-environment,
  time-properties)

Validated as-is: deterministic gate PASS; 46/47 live scenarios pass
(camera eval-006 settle-gate failure is host-load-caused, control-proven
with a byte-identical previously-passing source).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant