UML — cat-harness/library

Generated by cat-harness-tools/scripts/gen-uml-overview.ts — do not edit. The library sub-graph of cat-harness (cat-harness/library), with every attribute read from its node schema.

Sources (same model): PlantUML · Mermaid · Graphviz DOT

Layout
UML class diagram of cat-harness/library: one package per named sub-graph, one class per node schema, with its data fields. Portrait layout.
UML class diagram of cat-harness/library: one package per named sub-graph, one class per node schema, with its data fields. Landscape layout.

The interactive view lays this diagram out in your browser with Graphviz, and needs JavaScript. Without it, pick Portrait or Landscape, or read the DOT source.

sub-graphdirectorygraph typologiesnode schemanodescohesioninout
cat-harness/librarycat-harness/librarylibraryImagesSidecarSchema; ts: VerdictFile; VectorLabelsSidecarSchema; VectorFiguresSidecarSchema; FigureDescriptionsFileSchema; BlockSummariesSidecarSchema; KeywordsFileSchema; SlidesAccessibilitySchema; ReferencedSourceSchemanot measured

Nodes, cohesion, in and out are the detangler’s pinned measurements for the same directory (bun run cat kg:detangle; skill graph-detanglement). Not measured means the detangler does not scan that directory, not that it has no edges.

Sub-graphs

The same model, drawn by Mermaid

Kept so the page renders even where the PlantUML image is missing, and because Mermaid nodes carry the CSS class that colours them from uml.css.

classDiagram
  direction TB
  namespace cat_harness__library {
    class cat_harness_library_folio_document_images_v1_folio_document_images_v1["folio-document-images/v1"] {
      <<json: ImagesSidecarSchema>>
      $schema [1] 'folio-document-images/v1'
      doc_id [1] string
      images [1] object[] | null
      undetermined_reason [0..1] string
    }
    class cat_harness_library_folio_image_verdicts_v1["folio-image-verdicts/v1"] {
      <<ts: VerdictFile>>
      inspected_by [1] unknown
      inspected_at [1] string
      attribution [0..1] Record~string,  inspected_by: unknown; inspected_at: string ~
      verdicts [1] Record~string, Record~string, Verdict~~
    }
    class cat_harness_library_folio_vector_labels_v1_folio_vector_labels_v1["folio-vector-labels/v1"] {
      <<json: VectorLabelsSidecarSchema>>
      $schema [1] 'folio-vector-labels/v1'
      doc_id [1] string
      pages [1] object[] | null
      undetermined_reason [0..1] string
    }
    class cat_harness_library_folio_vector_figures_v1_folio_vector_figures_v1["folio-vector-figures/v1"] {
      <<json: VectorFiguresSidecarSchema>>
      $schema [1] 'folio-vector-figures/v1'
      doc_id [1] string
      figures [1] object[] | null
      undetermined_reason [0..1] string
    }
    class cat_harness_library_folio_figure_descriptions_v1_folio_figure_descriptions_v1["folio-figure-descriptions/v1"] {
      <<json: FigureDescriptionsFileSchema>>
      $schema [1] 'folio-figure-descriptions/v1'
      _comment [0..1] string
      descriptions [1] map~object[]~
    }
    class cat_harness_library_folio_block_summaries_v1_Superseded["Superseded"] {
      <<json: BlockSummariesSidecarSchema>>
      text [1] string | null
      lang [0..1] string
      state [1] not-authored | draft | confirmed | rejected
      drafted_by [0..1] object
      drafted_at [0..1] string
      confirmed_by [0..1] object
      confirmed_at [0..1] string
      rejected_by [0..1] object
      rejected_at [0..1] string
      rejection_reason [0..1] string
    }
    class cat_harness_library_folio_block_summaries_v1_Summary["Summary"] {
      <<json: BlockSummariesSidecarSchema>>
      block [1] string
      source [1] string
      source_hash [1] string
      narrative [1] object | object[]
      superseded [0..*] Superseded[]
    }
    class cat_harness_library_folio_block_summaries_v1_folio_block_summaries_v1["folio-block-summaries/v1"] {
      <<json: BlockSummariesSidecarSchema>>
      $schema [1] 'folio-block-summaries/v1'
      entry [1] string
      summaries [0..*] Summary[]
    }
    class cat_harness_library_folio_keywords_v1_Document["Document"] {
      <<json: KeywordsFileSchema>>
      term [1] string
      score [1] number
      evidence [0..*] heading[]
    }
    class cat_harness_library_folio_keywords_v1_folio_keywords_v1["folio-keywords/v1"] {
      <<json: KeywordsFileSchema>>
      $schema [1] 'folio-keywords/v1'
      entry [1] string
      corpus [1] object
      document [0..*] Document[]
      sections [1] map~object[]~
    }
    class cat_harness_library_folio_slides_accessibility_v1_folio_slides_accessibility_v1["folio-slides-accessibility/v1"] {
      <<json: SlidesAccessibilitySchema>>
      $schema [1] 'folio-slides-accessibility/v1'
      source [1] object
      format [1] pptx | odp
      slides [1] integer
      checks [1] object
    }
    class cat_harness_library_folio_referenced_source_v1_Outline["Outline"] {
      <<json: ReferencedSourceSchema>>
      level [1] integer
      title [1] string
      page [1] integer | null
    }
    class cat_harness_library_folio_referenced_source_v1_folio_referenced_source_v1["folio-referenced-source/v1"] {
      <<json: ReferencedSourceSchema>>
      $schema [1] 'folio-referenced-source/v1'
      identity [1] object
      source [1] object
      outline [0..*] Outline[]
      outline_source [1] embedded | none
      materialization [1] object
      withheld [1] object
      links [0..*] object[]
    }
  }
  cat_harness_library_folio_block_summaries_v1_Summary *-- "0..*" cat_harness_library_folio_block_summaries_v1_Superseded : superseded
  cat_harness_library_folio_block_summaries_v1_folio_block_summaries_v1 *-- "0..*" cat_harness_library_folio_block_summaries_v1_Summary : summaries
  cat_harness_library_folio_keywords_v1_folio_keywords_v1 *-- "0..*" cat_harness_library_folio_keywords_v1_Document : document
  cat_harness_library_folio_referenced_source_v1_folio_referenced_source_v1 *-- "0..*" cat_harness_library_folio_referenced_source_v1_Outline : outline
  cssClass "cat_harness_library_folio_document_images_v1_folio_document_images_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_image_verdicts_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_vector_labels_v1_folio_vector_labels_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_vector_figures_v1_folio_vector_figures_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_figure_descriptions_v1_folio_figure_descriptions_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_block_summaries_v1_Superseded" fa_uml_kind_library
  cssClass "cat_harness_library_folio_block_summaries_v1_Summary" fa_uml_kind_library
  cssClass "cat_harness_library_folio_block_summaries_v1_folio_block_summaries_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_keywords_v1_Document" fa_uml_kind_library
  cssClass "cat_harness_library_folio_keywords_v1_folio_keywords_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_slides_accessibility_v1_folio_slides_accessibility_v1" fa_uml_kind_library
  cssClass "cat_harness_library_folio_referenced_source_v1_Outline" fa_uml_kind_library
  cssClass "cat_harness_library_folio_referenced_source_v1_folio_referenced_source_v1" fa_uml_kind_library

folio-assistant — code under the Apache License 2.0, documentation under CC BY 3.0. Generated schema and API references are rebuilt from source on every push to main.

deployed b08c961 · 2026-10-23T23:11:09Z