UML — folio-assistant-sci/voices

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

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

Layout
UML class diagram of folio-assistant-sci/voices: one package per named sub-graph, one class per node schema, with its data fields. Portrait layout.
UML class diagram of folio-assistant-sci/voices: 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
folio-assistant-sci/voicesfolio-assistant-sci/skills/voicesvoicesVoiceProfileSchema20.0000

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 folio_assistant_sci__voices {
    class folio_assistant_sci_voices_Source["Source"] {
      <<json: VoiceProfileSchema>>
      title [1] string
      instance [0..1] string
      libraryId [0..1] string
      path [0..1] string
      url [0..1] string~uri~
      year [0..1] integer
    }
    class folio_assistant_sci_voices_Pattern["Pattern"] {
      <<json: VoiceProfileSchema>>
      regex [1] string
      caseSensitive [0..1] boolean
      message [1] string
    }
    class folio_assistant_sci_voices_Terminology["Terminology"] {
      <<json: VoiceProfileSchema>>
      correct [1] string
      incorrect [1] string | string[]
      context [0..1] string
    }
    class folio_assistant_sci_voices_Rule["Rule"] {
      <<json: VoiceProfileSchema>>
      id [1] string
      title [1] string
      description [1] string
      category [1] enum(13)
      severity [1] critical | major | minor
      source [1] object
      patterns [0..*] Pattern[]
      terminology [0..*] Terminology[]
      judgementOnly [0..1] boolean
    }
    class folio_assistant_sci_voices_VoiceProfile["VoiceProfile"] {
      <<json: VoiceProfileSchema>>
      $schema [1] 'folio-voice/v1' | 'folio-voice-skill/v1'
      id [1] string
      title [1] string
      description [1] string
      sources [1..*] Source[]
      rules [1..*] Rule[]
      overlaySeverity [0..1] critical | major | minor
      appliesTo [0..*] list~enum(17) | docs | skill | readme | specification | code~
      provenance [1] assertion | evidence | house
      extends [0..1] object
      activeIn [0..1] object
      superseded [0..1] object
    }
  }
  folio_assistant_sci_voices_VoiceProfile *-- "1..*" folio_assistant_sci_voices_Source : sources
  folio_assistant_sci_voices_Rule *-- "0..*" folio_assistant_sci_voices_Pattern : patterns
  folio_assistant_sci_voices_Rule *-- "0..*" folio_assistant_sci_voices_Terminology : terminology
  folio_assistant_sci_voices_VoiceProfile *-- "1..*" folio_assistant_sci_voices_Rule : rules
  cssClass "folio_assistant_sci_voices_Source" fa_uml_kind_voices
  cssClass "folio_assistant_sci_voices_Pattern" fa_uml_kind_voices
  cssClass "folio_assistant_sci_voices_Terminology" fa_uml_kind_voices
  cssClass "folio_assistant_sci_voices_Rule" fa_uml_kind_voices
  cssClass "folio_assistant_sci_voices_VoiceProfile" fa_uml_kind_voices

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