UML — bootstrap

Generated by cat-harness-tools/scripts/gen-uml-overview.ts — do not edit. Every named sub-graph the bootstrap instance declares, one box each, with the node schema kinds found in it.

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

Layout
UML class diagram of bootstrap: one package per named sub-graph, one class per node schema, with its data fields. Portrait layout.
UML class diagram of bootstrap: 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
bootstrap/skillsbootstrap/skillsskillsskills: could not determine140.20450
bootstrap/schemasbootstrap/schemasschemasschema: discussion.input.schema.json; schema: discussion.output.schema.json; schema: graph.schema.json; schema: model-registry.schema.json; schema: requirement-set.schema.json; schema: requirement.schema.jsonnot measured
bootstrap/scenariosbootstrap/scenariosscenariosRoleGraphSchemanot measured
bootstrap/processesbootstrap/processesprocessesext: omg-bpmn-2.050.16042
bootstrap/modelsbootstrap/modelsmodelsModelRegistrySchemanot 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 LR
  namespace bootstrap__skills {
    class n_bootstrap_skills_skills["skills: no node schema"] {
      <<could not determine>>
    }
  }
  namespace bootstrap__schemas {
    class bootstrap_schemas_discussion_input_schema_json_KnownRepository["KnownRepository"] {
      <<schema: discussion.input.schema.json>>
      url [1] string
      role [1] read-from | written-to
      note [0..1] string
    }
    class bootstrap_schemas_discussion_input_schema_json_Discussion_Input["Discussion Input"] {
      <<schema: discussion.input.schema.json>>
      open [1..*] list~harness | repositories~
      askedOf [1] object
      candidates [0..*] string[]
      knownRepositories [0..*] KnownRepository[]
      context [0..1] string
    }
    class bootstrap_schemas_discussion_output_schema_json_Repository["Repository"] {
      <<schema: discussion.output.schema.json>>
      url [1] string
      role [1] read-from | written-to
      note [0..1] string
    }
    class bootstrap_schemas_discussion_output_schema_json_Exchange["Exchange"] {
      <<schema: discussion.output.schema.json>>
      asked [1] string
      answered [0..1] string
      at [0..1] string~date-time~
    }
    class bootstrap_schemas_discussion_output_schema_json_Discussion_Output["Discussion Output"] {
      <<schema: discussion.output.schema.json>>
      outcome [1] settled | unsettled
      harness [0..1] string
      repositories [0..*] Repository[]
      determinedBy [0..1] asked | assumed
      assumption [0..1] string
      answeredBy [1] object
      exchange [1..*] Exchange[]
      stillOpen [0..*] list~harness | repositories~
    }
    class bootstrap_schemas_graph_schema_json_Directory["Directory"] {
      <<schema: graph.schema.json>>
      id [1] string
      path [1] string
      graphTypologies [1..*] list~'skills' | 'schemas' | 'scenarios' | 'processes' | 'models' | string~
      title [0..1] string
      description [0..1] string
    }
    class bootstrap_schemas_graph_schema_json_Asset["Asset"] {
      <<schema: graph.schema.json>>
      id [1] string
      src [1] string
      role [1] string
    }
    class bootstrap_schemas_graph_schema_json_Knowledge_Graph_declaration["Knowledge Graph declaration"] {
      <<schema: graph.schema.json>>
      name [1] string
      version [0..1] string
      iriBase [0..1] string~uri~
      title [0..1] string
      description [0..1] string
      directories [0..*] Directory[]
      needs [0..*] string[]
      nodeSchemas [0..1] map~string~
      assets [0..*] Asset[]
    }
    class bootstrap_schemas_model_registry_schema_json_Model["Model"] {
      <<schema: model-registry.schema.json>>
      id [1] string
      title [1] string
      preferredLanguages [0..*] string[]
      validation [1] unverified | self-reported | human-validated
      validatedBy [0..1] string
      validatedOn [0..1] string
      note [0..1] string
    }
    class bootstrap_schemas_model_registry_schema_json_Model_Registry["Model Registry"] {
      <<schema: model-registry.schema.json>>
      $schema [1] 'model-registry/1.0.0'
      models [0..*] Model[]
    }
    class bootstrap_schemas_requirement_set_schema_json_Member["Member"] {
      <<schema: requirement-set.schema.json>>
      ref [1] string
      decision [0..1] approved | amended | rejected | deferred
    }
    class bootstrap_schemas_requirement_set_schema_json_SignOff["SignOff"] {
      <<schema: requirement-set.schema.json>>
      kind [1] script | agent | human
      id [1] string
      actor [0..1] string
      at [1] string
      scope [1] string
      outcome [1] approve | amend | reject | defer | cancel
      stage [0..1] enum(10)
      reason [0..1] string
      evidence [1] string
    }
    class bootstrap_schemas_requirement_set_schema_json_Requirement_Set["Requirement Set"] {
      <<schema: requirement-set.schema.json>>
      id [1] string
      title [1] string
      methodology [1] string
      issue [0..1] string
      stage [1] enum(10)
      members [1..*] Member[]
      workPlan [0..*] string[]
      signOffs [0..*] SignOff[]
      document [0..1] string
      supersededBy [0..1] string
    }
    class bootstrap_schemas_requirement_schema_json_SuccessCriteria["SuccessCriteria"] {
      <<schema: requirement.schema.json>>
      key [1] string
      criterion [1] string
      verification [1] test | inspection | review | analysis
    }
    class bootstrap_schemas_requirement_schema_json_Statement["Statement"] {
      <<schema: requirement.schema.json>>
      key [1] string
      label [1] string
      conformance [1] SHALL | SHOULD | MAY | SHALL NOT
      requirement [1] string
      kind [0..1] functional | non-functional
      activity [0..1] string
      capability [0..1] string
      benefit [0..1] string
      category [0..1] string
      actors [0..*] string[]
      dependsOn [0..*] string[]
      successCriteria [1..*] SuccessCriteria[]
    }
    class bootstrap_schemas_requirement_schema_json_Requirement["Requirement"] {
      <<schema: requirement.schema.json>>
      id [1] string
      title [1] string
      description [1] string
      status [0..1] proposed | in-force | superseded | retired
      derivedFrom [0..*] string[]
      actors [0..*] string[]
      statements [1..*] Statement[]
      tags [0..*] string[]
      proposedIn [0..1] string
      supersededBy [0..1] string
    }
  }
  namespace bootstrap__scenarios {
    class bootstrap_scenarios_FormerName["FormerName"] {
      <<json: RoleGraphSchema>>
      name [1] string
      retiredOn [1] string
    }
    class bootstrap_scenarios_Role["Role"] {
      <<json: RoleGraphSchema>>
      persona [0..1] string
      id [1] string
      title [1] string
      description [1] string
      actorKinds [1..*] list~person | agent | system | external~
      otherNames [0..*] string[]
      formerNames [0..*] FormerName[]
      skills [0..*] string[]
      inherits [0..*] string[]
      judgementOnly [0..1] boolean
      requiredCapabilities [0..1] object
    }
    class bootstrap_scenarios_Actor["Actor"] {
      <<json: RoleGraphSchema>>
      id [1] string
      title [1] string
      kind [1] person | agent | system | external
      description [0..1] string
      roles [0..*] string[]
    }
    class bootstrap_scenarios_Extension["Extension"] {
      <<json: RoleGraphSchema>>
      role [1] string
      skills [1..*] string[]
    }
    class bootstrap_scenarios_RoleGraph["RoleGraph"] {
      <<json: RoleGraphSchema>>
      name [1] string
      roles [0..*] Role[]
      actors [0..*] Actor[]
      extensions [0..*] Extension[]
    }
  }
  namespace bootstrap__processes {
    class bootstrap_processes_omg_bpmn_2_0["Business Process Model and Notation (BPMN)"] {
      <<ext: omg-bpmn-2.0>>
      bpmn:callActivity [0..*] element
      bpmn:collaboration [0..*] element
      bpmn:definitions [0..*] element
      bpmn:documentation [0..*] element
      bpmn:endEvent [0..*] element
      bpmn:exclusiveGateway [0..*] element
      bpmn:extensionElements [0..*] element
      bpmn:flowNodeRef [0..*] element
      bpmn:import [0..*] element
      bpmn:incoming [0..*] element
      bpmn:lane [0..*] element
      bpmn:laneSet [0..*] element
      bpmn:outgoing [0..*] element
      bpmn:parallelGateway [0..*] element
      bpmn:participant [0..*] element
      bpmn:process [0..*] element
      bpmn:resource [0..*] element
      bpmn:sequenceFlow [0..*] element
      bpmn:serviceTask [0..*] element
      bpmn:startEvent [0..*] element
      bpmn:task [0..*] element
      bpmn:timerEventDefinition [0..*] element
      bpmn:userTask [0..*] element
    }
  }
  namespace bootstrap__models {
    class bootstrap_models_Model["Model"] {
      <<json: ModelRegistrySchema>>
      id [1] string
      title [1] string
      preferredLanguages [0..*] string[]
      validation [1] unverified | self-reported | human-validated
      validatedBy [0..1] string
      validatedOn [0..1] string
      note [0..1] string
    }
    class bootstrap_models_ModelRegistry["ModelRegistry"] {
      <<json: ModelRegistrySchema>>
      $schema [1] 'model-registry/1.0.0'
      models [0..*] Model[]
    }
  }
  cssClass "n_bootstrap_skills_skills" fa_uml_kind_skills
  cssClass "n_bootstrap_skills_skills" fa_uml_undetermined
  bootstrap_schemas_discussion_input_schema_json_Discussion_Input *-- "0..*" bootstrap_schemas_discussion_input_schema_json_KnownRepository : knownRepositories
  bootstrap_schemas_discussion_output_schema_json_Discussion_Output *-- "0..*" bootstrap_schemas_discussion_output_schema_json_Repository : repositories
  bootstrap_schemas_discussion_output_schema_json_Discussion_Output *-- "1..*" bootstrap_schemas_discussion_output_schema_json_Exchange : exchange
  bootstrap_schemas_graph_schema_json_Knowledge_Graph_declaration *-- "0..*" bootstrap_schemas_graph_schema_json_Directory : directories
  bootstrap_schemas_graph_schema_json_Knowledge_Graph_declaration *-- "0..*" bootstrap_schemas_graph_schema_json_Asset : assets
  bootstrap_schemas_model_registry_schema_json_Model_Registry *-- "0..*" bootstrap_schemas_model_registry_schema_json_Model : models
  bootstrap_schemas_requirement_set_schema_json_Requirement_Set *-- "1..*" bootstrap_schemas_requirement_set_schema_json_Member : members
  bootstrap_schemas_requirement_set_schema_json_Requirement_Set *-- "0..*" bootstrap_schemas_requirement_set_schema_json_SignOff : signOffs
  bootstrap_schemas_requirement_schema_json_Statement *-- "1..*" bootstrap_schemas_requirement_schema_json_SuccessCriteria : successCriteria
  bootstrap_schemas_requirement_schema_json_Requirement *-- "1..*" bootstrap_schemas_requirement_schema_json_Statement : statements
  cssClass "bootstrap_schemas_discussion_input_schema_json_KnownRepository" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_discussion_input_schema_json_Discussion_Input" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_discussion_output_schema_json_Repository" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_discussion_output_schema_json_Exchange" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_discussion_output_schema_json_Discussion_Output" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_graph_schema_json_Directory" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_graph_schema_json_Asset" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_graph_schema_json_Knowledge_Graph_declaration" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_model_registry_schema_json_Model" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_model_registry_schema_json_Model_Registry" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_requirement_set_schema_json_Member" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_requirement_set_schema_json_SignOff" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_requirement_set_schema_json_Requirement_Set" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_requirement_schema_json_SuccessCriteria" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_requirement_schema_json_Statement" fa_uml_kind_schemas
  cssClass "bootstrap_schemas_requirement_schema_json_Requirement" fa_uml_kind_schemas
  bootstrap_scenarios_Role *-- "0..*" bootstrap_scenarios_FormerName : formerNames
  bootstrap_scenarios_RoleGraph *-- "0..*" bootstrap_scenarios_Role : roles
  bootstrap_scenarios_RoleGraph *-- "0..*" bootstrap_scenarios_Actor : actors
  bootstrap_scenarios_RoleGraph *-- "0..*" bootstrap_scenarios_Extension : extensions
  cssClass "bootstrap_scenarios_FormerName" fa_uml_kind_scenarios
  cssClass "bootstrap_scenarios_Role" fa_uml_kind_scenarios
  cssClass "bootstrap_scenarios_Actor" fa_uml_kind_scenarios
  cssClass "bootstrap_scenarios_Extension" fa_uml_kind_scenarios
  cssClass "bootstrap_scenarios_RoleGraph" fa_uml_kind_scenarios
  cssClass "bootstrap_processes_omg_bpmn_2_0" fa_uml_kind_processes
  bootstrap_models_ModelRegistry *-- "0..*" bootstrap_models_Model : models
  cssClass "bootstrap_models_Model" fa_uml_kind_models
  cssClass "bootstrap_models_ModelRegistry" fa_uml_kind_models

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