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
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-graph | directory | graph typologies | node schema | nodes | cohesion | in | out |
|---|---|---|---|---|---|---|---|
bootstrap/skills | bootstrap/skills | skills | skills: could not determine | 14 | 0.20 | 45 | 0 |
bootstrap/schemas | bootstrap/schemas | schemas | schema: 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.json | not measured | |||
bootstrap/scenarios | bootstrap/scenarios | scenarios | RoleGraphSchema | not measured | |||
bootstrap/processes | bootstrap/processes | processes | ext: omg-bpmn-2.0 | 5 | 0.16 | 0 | 42 |
bootstrap/models | bootstrap/models | models | ModelRegistrySchema | not 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