UML — folio-assistant-core/qa
Generated by cat-harness-tools/scripts/gen-uml-overview.ts — do not edit. The qa sub-graph of folio-assistant-core (folio-assistant-core/test/results), with every attribute read from its node schema.
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 |
|---|---|---|---|---|---|---|---|
folio-assistant-core/qa | folio-assistant-core/test/results | qa | KgQaReportSchema; KgQaManifestSchema; BlockQaReport; ts: QaWitness; ts: QaResult; QaIndexSchema | 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 TB
namespace folio_assistant_core__qa {
class folio_assistant_core_qa_kg_qa_v1_Flag["Flag"] {
<<json: KgQaReportSchema>>
id [1] string
category [0..1] enum(8)
severity [1] critical | major | minor
weight [1] blocking | suggestion | praise
where [1] string
evidence [0..1] string
detail [0..1] string
status [0..1] open | resolved | overridden
resolution [0..1] object
}
class folio_assistant_core_qa_kg_qa_v1_Finding["Finding"] {
<<json: KgQaReportSchema>>
id [1] string
category [0..1] enum(8)
severity [1] critical | major | minor
weight [1] blocking | suggestion | praise
where [1] string
evidence [0..1] string
detail [0..1] string
status [0..1] open | resolved | overridden
resolution [0..1] object
}
class folio_assistant_core_qa_kg_qa_v1_Adversarial_review["Adversarial_review"] {
<<json: KgQaReportSchema>>
reviewer [1] object
author_sessions [0..*] string[]
skill_hash [1] string
at [1] string
coverage [1] object
result [1] pass | fail | unknown
flags [0..*] Flag[]
findings [0..*] Finding[]
}
class folio_assistant_core_qa_kg_qa_v1_kg_qa_v1["kg-qa/v1"] {
<<json: KgQaReportSchema>>
$schema [1] 'kg-qa/v1'
subject [1] object
source_hash [1] string | null
criteria [1] map~object~
totals [1] map~number~
pair_attestations [0..1] any
voice_reviews [0..1] any
adversarial_reviews [0..*] Adversarial_review[]
}
class folio_assistant_core_qa_kg_qa_manifest_v1_kg_qa_manifest_v1["kg-qa-manifest/v1"] {
<<json: KgQaManifestSchema>>
$schema [1] 'kg-qa-manifest/v1'
auditor [1] object
}
class folio_assistant_core_qa_block_qa_v1_block_qa_v1["block-qa/v1"] {
<<json: BlockQaReport>>
$schema [1] 'block-qa/v1'
label [1] string
kind [1] string
paths [1] object
source_hashes [1] object
criteria [1] map~object[]~
updated_at [1] string
}
class folio_assistant_core_qa_qa_witness_v1["qa-witness/v1"] {
<<ts: QaWitness>>
kind [1] 'script' | 'agent' | 'human'
id [1] string
version [0..1] string
at [0..1] string
sha [0..1] string
scriptHash [0..1] string
scriptCommitSha [0..1] string
depsHash [0..1] string
model [0..1] string
session [0..1] string
skill [0..1] string
method [0..1] string
freshness [1] QaFreshness
changed [0..1] string[]
notCompared [0..1] string[]
notes [0..1] string
}
class folio_assistant_core_qa_qa_results_v1["qa-results/v1"] {
<<ts: QaResult>>
$schema [1] 'qa-results/v1'
producer [1] /** Repo-relative path to the script. */ script: string; /** 12-char SHA-256 prefix of that script's source, as `script-qa` writes. */ script_hash: string;
subject [1] kind: string; id: string
families [1] Record~string, QaResultFamily~
total [1] number
}
class folio_assistant_core_qa_folio_qa_index_v1_folio_qa_index_v1["folio-qa-index/v1"] {
<<json: QaIndexSchema>>
$schema [1] 'folio-qa-index/v1'
page [1] string
corpus [0..1] present | absent
badges [1] map~object~
unswept [0..*] string[]
}
}
folio_assistant_core_qa_kg_qa_v1_Adversarial_review *-- "0..*" folio_assistant_core_qa_kg_qa_v1_Flag : flags
folio_assistant_core_qa_kg_qa_v1_Adversarial_review *-- "0..*" folio_assistant_core_qa_kg_qa_v1_Finding : findings
folio_assistant_core_qa_kg_qa_v1_kg_qa_v1 *-- "0..*" folio_assistant_core_qa_kg_qa_v1_Adversarial_review : adversarial_reviews
cssClass "folio_assistant_core_qa_kg_qa_v1_Flag" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_kg_qa_v1_Finding" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_kg_qa_v1_Adversarial_review" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_kg_qa_v1_kg_qa_v1" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_kg_qa_manifest_v1_kg_qa_manifest_v1" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_block_qa_v1_block_qa_v1" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_qa_witness_v1" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_qa_results_v1" fa_uml_kind_qa
cssClass "folio_assistant_core_qa_folio_qa_index_v1_folio_qa_index_v1" fa_uml_kind_qa