viewer-evaluation
philliphoff/EncDotNet.S100
Procedure for running an independent, automated evaluation loop
against the EncDotNet.S100 Avalonia viewer using its CLI flags and
embedded MCP server. Lets an agent launch the viewer headlessly,
load datasets, drive viewport / palette / display-category / time-step
/ own-ship, capture screenshots, await render-idle, and read render
stats — then iterate. USE FOR: visually verifying a rendering or
portrayal change; designing or reproducing integration/regression
scenarios; measuring load/render performance; capturing reference
images; deriving test fixtures from real datasets; any "does it
actually look/behave right in the viewer?" question — INCLUDING from
renderer (Renderers.Mapsui / Renderers.Skia), Core pipeline, or
Datasets.SXXX work, not only when editing the Viewer project.
DO NOT USE FOR: pure library logic unit tests (write xunit directly),
viewer XAML/localization conventions (see viewer.instructions.md),
or the MCP tool catalogue reference (see docs/mcp-server.md).
chart-cartography
philliphoff/EncDotNet.S100
Cross-cutting cartography and chart-rendering domain expertise for
electronic navigational displays — the principles of how marine
charts are composed, layered, generalized, coloured, projected, and
made performant. Spec- and renderer-agnostic: it explains the
*why/what* of good chart rendering and how those principles manifest
in this codebase, then defers to the per-spec skills for product
semantics and to the renderer READMEs for implementation. USE FOR:
layer/draw-order and display-priority decisions; scale-dependent
generalization, declutter, SCAMIN/scale-band culling; label/text
placement and deconfliction; day/dusk/night palette and contrast
design; CRS/projection choices and distortion/antimeridian/pole
pitfalls; rendering-performance strategy (geometry simplification,
path/snapshot caching, tiling, vertex-bound cost reasoning); reviewing
a rendering change for cartographic correctness across products.
DO NOT USE FOR: a specific product's encoding/attribute/portrayal
rules (use the sXXX skill); Mapsui
s122-marine-protected-areas
philliphoff/EncDotNet.S100
Expert knowledge of IHO S-122 Marine Protected Areas Product
Specification (Edition 2.0.0). Covers GML encoding (S-100 Part 10b)
over the S-100 GML base, the S-122 application schema (marine
protected areas, restricted areas, regulated areas, and associated
text placement), and the XSLT-based portrayal pipeline. USE FOR:
S-122 datasets, marine protected areas, restricted/regulated areas,
GML parsing for S-122, XSLT portrayal of S-122, vector pipeline
changes affecting S-122, S122DatasetReader / S-122 reader/source
code, S-122 tests, edits to bundled `content/S122/**` assets.
DO NOT USE FOR: S-127 marine resources and services (use
s127-marine-services), S-124 nav warnings (use s124-nav-warnings),
S-125 AtoN (use s125-aton), S-101 ENC (use s101-enc), generic GML /
framework concerns (use s100-framework).
s104-water-level
philliphoff/EncDotNet.S100
Expert knowledge of IHO S-104 Water Level Information for Surface
Navigation Product Specification. Covers HDF5-encoded water-level
time-step grids, WaterLevel feature, Group_NNN time-series groups,
data coding formats (regular grid, ungeorectified grid, time series
at fixed stations, etc.), trend/quality flags, and tide-station
metadata. USE FOR: S-104 datasets, water level forecasts/observations,
tide grids, S104DatasetReader, S104CoverageSource,
S104PortrayalCatalogue, WaterLevelCoverage, WaterLevelValue,
time-step iteration, adding S-104 features, S-104 tests.
DO NOT USE FOR: S-102 bathymetry (use s102-bathymetry), S-111
currents (use s111-surface-currents), generic HDF5 (use
s100-framework).
s102-bathymetry
philliphoff/EncDotNet.S100
Expert knowledge of IHO S-102 Bathymetric Surface Product Specification
(HDF5-encoded depth/uncertainty grids). Covers BathymetryCoverage
groups, Group_F feature codes, depth/uncertainty dataset shapes,
NODATA fill value handling (1,000,000f), tiling, georeferencing
attributes, CRS conventions (often UTM), and the depth-shading
portrayal palette. USE FOR: S-102 datasets, bathymetric grids,
depth surfaces, uncertainty grids, HDF5 bathymetry,
BathymetryCoverage, CoverageCell layout, depth shading,
S102DatasetReader, S102CoverageSource, S102PortrayalCatalogue,
PC-driven Lua portrayal, adding S-102 features, reviewing for S-102
spec compliance, RenderS102 tool changes. DO NOT USE FOR: S-104
water levels (use s104-water-level), S-111 currents (use
s111-surface-currents), generic HDF5 access (use s100-framework).
s201-aton-information
philliphoff/EncDotNet.S100
Expert knowledge of IALA S-201 Aids to Navigation Information
Product Specification (Edition 2.0.0, May 2025; aligned with
S-100 Ed 5.2.0). Covers GML encoding (S-100 Part 10b) on the
S-100 GML 5.0 profile, the S-201 application schema (62 feature
types — buoys, beacons, lights, AIS aids, structures,
equipment, aggregations), the 4 information types
(AtoNFixingMethod, AtonStatusInformation, PositioningInformation,
SpatialQuality), xlink-based information bindings, the
equipment-on-structure `parent`/`child` xlink relationship, and
the XSLT-based portrayal pipeline (`main_PaperChart.xsl`).
USE FOR: S-201 datasets, AtoN-authority data exchange, GML
parsing for S-201, XSLT portrayal of S-201, vector pipeline
changes affecting S-201, S-201 reader/source code, S-201 tests.
DO NOT USE FOR: ECDIS-facing AtoN portrayal (use s125-aton — the
ECDIS-facing AtoN spec is **S-125, not S-201**), S-101 ENC AtoN
feature classes (use s101-enc), S-124 navigational warnings
(use s124-nav-warnings), generic GML (use s100-framework