Object Map
SkillDev toolsWork on Luxury Yacht object-map data, missing resource kinds, graph relationships, layout, renderer behavior, legend, debug snapshots, and tests
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Object Map skill
What this skill tells your AI
The instructions your AI receives, as published by luxury-yacht/app in .agents/skills/object-map/SKILL.md and read by ahel’s review.
Use this when touching object-map backend graph data, supported kinds, relationship edges, frontend model/layout/rendering, legend/copy, debug snapshots, or object-map tests.
Core Model
Object map is a scoped refresh snapshot domain named object-map.
It is not a rich detail service and not an SSE/resource-stream path. The backend snapshot builds graph data; the frontend filters, annotates, lays out, and renders that graph.
Read:
AGENTS.mdbackend/AGENTS.mdfor backend changesfrontend/AGENTS.mdfor frontend changesdocs/workflows/object-map.mddocs/architecture/shared-resource-model.mdwhen identity, status, facts, or relationships are involveddocs/architecture/refresh-system.mdwhen domain registration, scopes, or diagnostics are involveddocs/frontend/live-age.mdwhen changing card age text
Backend Entry Points
Start here for graph/data correctness:
backend/refresh/snapshot/object_map.goplus the per-kind collectors/edges inbackend/resources/<kind>/objectmap*.go, dispatched viabackend/refresh/snapshot/object_map_collector_registry.goandobject_map_edge_registry.gobackend/refresh/system/registrations.gobackend/resourcemodelfor shared facts, status, identity, and linksbackend/refresh/snapshot/object_map_test.goor adjacent object-map tests
Backend object-map work often needs:
- Typed collection for every supported kind.
- Complete object references with
clusterId,group,version,kind, and concrete namespace/name when openable. - Edges from shared-resource-model facts where possible.
- Permission checks for newly collected resources.
- Test fixtures that prove the graph includes nodes and edges, not just that no error occurred.
For Gateway API fake-client tests, explicit list reactors may be required. Use
gatewayfake.NewClientset() rather than deprecated constructors.
Frontend Entry Points
Start here for visible behavior:
frontend/src/modules/object-panel/objectPanelRef.ts(MAP_SUPPORTED_KINDS,isObjectMapSupportedKind, andhasCompleteObjectMapReference)frontend/src/modules/object-map/ObjectMap.tsxfrontend/src/modules/object-map/useObjectMapModel.tsfrontend/src/modules/object-map/objectMapLayout.tsfrontend/src/modules/object-map/objectMapVisibleState.tsfrontend/src/modules/object-map/ObjectMapG6Renderer.tsxfrontend/src/modules/object-map/objectMapEdgeStyle.tsfrontend/src/modules/object-map/objectMapDebugStore.tsfrontend/src/modules/object-map/ObjectMap.css
Frontend object-map work often needs:
- Supported-kind allowlist updates.
- Payload/type updates if backend graph shape changes.
- Model/filter/collapse updates.
- Layout and visible-state updates.
- Renderer and apply-queue equality updates.
- Legend/palette/status styling updates.
- Targeted Vitest coverage for model/layout/renderer behavior.
Do not fix missing data by frontend-only labels or renderer patches when the backend graph is missing nodes, refs, or edges.
Sequencing
For missing kinds or missing links:
- Prove whether backend snapshot data contains the nodes and edges.
- If missing, fix backend collection/edge construction and tests first.
- Then update frontend support lists/types/model/rendering.
- Update
docs/workflows/object-map.mdif supported kinds, edge semantics, or user-facing behavior changed.
For visual-only renderer work:
- Confirm the data/model is already correct.
- Change frontend renderer/layout/styles only.
- Use browser or screenshot validation when visual behavior matters.
Checklist
- Backend graph includes the intended nodes.
- Backend graph includes the intended relationship edges.
- Openable refs are complete and include cluster/GVK/object identity.
- Permission checks cover newly listed resource types.
- Frontend kind support matches backend support.
- Payload types match backend shape.
- Model, visible state, layout, and renderer agree on new fields.
- Card age text is derived from timestamps through the live-age contract and does not change backend graph identity or layout inputs.
- Legend/copy uses user-facing terms such as "Objects" and "Links".
- Tests cover the changed graph or rendering behavior.
Validation
Use focused checks while iterating:
mise exec -- go test ./backend/refresh/snapshot -run ObjectMap
mise exec -- npm run test --prefix frontend -- object-map
mise exec -- npm run typecheck --prefix frontend
Then run the final gate for non-documentation work:
Then follow the root final validation gate.
Signals
- GitHub stars
- 435
- Forks
- 23
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
object-map- Source
- github.com/luxury-yacht/app