Contradiction — ClusterController Subsystem Placement & Advertised Skills Count

This contradiction card records two active taxonomic/inventory tensions discovered during first-hand audit of “:

Tension 1 — clustercontroller-core: Content Data Plane vs Config/Admin Control Plane

  • Claim A (vespa/Code-map.md & content-nodes): Places vespa/clustercontroller-core inside Content Nodes because its sole runtime responsibility is computing the ClusterState (up/down/maintenance node states) consumed by vespa/storage distributors and proton persistence nodes (see messagebus-bucket-distribution-and-ideal-state).
  • Claim B (Language & Deployment Topology in config-admin): clustercontroller-core is written 100% in Java (215 files, ~31k LOC), runs inside a standalone or configserver-hosted jDisc container, and coordinates via ZooKeeper alongside vespa/configserver.
  • Working Resolution: Index clustercontroller-core primarily under content-nodes (matching vespa/Code-map.md functional ownership) while cross-linking its deployment and ZooKeeper quorum lifecycle to config-admin.

Tension 2 — Upstream skills/ Repository Count (7 Observed vs 9 Previously Assumed)

  • Observation (work-areas): First-hand directory inspection of skills/ finds 7 SKILL.md directories (app-package, elasticsearch-migration, feed-operations, pyvespa, query-builder, schema-authoring, vespa-cli), whereas early wave notes referenced 9 skills.
  • Working Resolution: Ground all coverage metrics strictly on the 7 verified SKILL.md files on disk (INV-004).