Skip to content

Diagrams

Every picture this site assembled, in one catalog. Each also lives on the linked page, often behind the depth slider.

Conceptual map

On What does docuharnessx do? at depth 1.

Click a name to open its page. Click a dot to recenter.

Contents

Architecture

System context

On What does docuharnessx do? at depth 2.

flowchart TB
 subgraph people["People"]
 actor_operator(["Operator"])
 end
 subgraph enterprise["This system"]
 system["DocuHarnessX"]
 end
 subgraph external["External"]
 external_ci["GitHub Actions"]
 external_docs[("Documentation site")]
 external_repo[("norandom/DocuHarnessX")]
 end
 actor_operator -->|"runs CLI"| system
 system -->|"reads and cites"| external_repo
 external_ci -->|"runs in"| system
 system -->|"publishes"| external_docs
 class actor_operator person
 class system system
 class external_ci external
 class external_docs store
 class external_repo store
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Containers

On What does docuharnessx do? at depth 2.

flowchart TB
 actor_operator(["Operator"])
 subgraph sys["DocuHarnessX"]
 subgraph band_interface["Interface"]
 container_CLI["CLI"]
 container_mcp["mcp"]
 end
 subgraph band_application["Application"]
 container_assembler["assembler"]
 container_composition["composition"]
 container_deployer["deployer"]
 container_pipeline["pipeline"]
 container_planning["planning"]
 container_review["review"]
 end
 subgraph band_domain["Domain"]
 container_analysis["analysis"]
 container_comprehension["comprehension"]
 container_ontology["ontology"]
 end
 end
 actor_operator -->|"runs CLI"| container_CLI
 container_CLI -->|"depends on"| container_assembler
 container_assembler -->|"depends on"| container_analysis
 class actor_operator person
 class container_CLI container
 class container_analysis container
 class container_assembler container
 class container_composition container
 class container_comprehension container
 class container_deployer container
 class container_mcp container
 class container_ontology container
 class container_pipeline container
 class container_planning container
 class container_review container
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Layered architecture

On What does docuharnessx do? at depth 2. Detected from entrypoint:CLI, analysis:domain, assembler:application, composition:application, comprehension:domain, deployer:application, mcp:interface, ontology:domain.

flowchart TB
 subgraph b0["Interface"]
 b0m0["CLI"]
 b0m1["mcp"]
 end
 subgraph b1["Application"]
 b1m0["assembler"]
 b1m1["composition"]
 b1m2["deployer"]
 b1m3["pipeline"]
 b1m4["planning"]
 b1m5["review"]
 end
 subgraph b2["Domain"]
 b2m0["analysis"]
 b2m1["comprehension"]
 b2m2["ontology"]
 end
 b0 -->|"depends on"| b1
 b1 -->|"depends on"| b2
 class b0m0,b0m1,b1m0,b1m1,b1m2,b1m3,b1m4,b1m5,b2m0,b2m1,b2m2 container
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Typical run

On How does this program start? at depth 3.

sequenceDiagram
 autonumber
 actor aOperator
 participant container_CLI as CLI
 participant container_analysis as analysis
 participant container_assembler as assembler
 participant container_composition as composition
 participant container_comprehension as comprehension
 aOperator->>container_CLI: run
 container_CLI->>container_analysis: uses
 container_CLI->>container_assembler: uses
 container_CLI->>container_composition: uses
 container_CLI->>container_comprehension: uses
 container_CLI-->>aOperator: result

Use cases

On What does docuharnessx do? at depth 3.

flowchart LR
 actor(["Operator"])
 u0(["ci"])
 actor --> u0
 u1(["evolve"])
 actor --> u1
 u2(["hook"])
 actor --> u2
 u3(["init"])
 actor --> u3
 u4(["install-ci"])
 actor --> u4
 u5(["install-hooks"])
 actor --> u5
 u6(["mcp"])
 actor --> u6
 u7(["run"])
 actor --> u7
 class actor person
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Deployment

On What does docuharnessx do? at depth 3.

flowchart TB
 subgraph run["Runtime"]
 ci["GitHub Actions"]
 site[("Documentation site")]
 end
 ci --> site
 class site store
 class ci external
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Public surface

On How is the public surface used or extended? at depth 4.

classDiagram
 direction LR
 class CLI {
 <<command>>
 ci()
 evolve()
 hook()
 init()
 install_ci()
 install_hooks()
 mcp()
 run()
 status()
 sufficient()
 }
 class Cadoption {
 <<module>>
 AdoptionRecord()
 declare_sufficient()
 load_adoption()
 mark_stale()
 save_adoption()
 }
 class Canalyzer {
 <<module>>
 analyze()
 }
 class Cdetectors {
 <<module>>
 detect_artifacts()
 detect_build_files()
 detect_ci()
 detect_docs()
 detect_entrypoints()
 detect_public_surface()
 }
 class Cenrich {
 <<module>>
 enrich()
 }

Lineage

On Home at depth 5.

flowchart LR
 subgraph ginput["Inputs"]
 n0(["Inputs"])
 end
 subgraph gtransform["This system"]
 n1["cli.py"]
 n2["docuharnessx"]
 n4["analysis"]
 n5["assembler"]
 n6["composition"]
 n7["comprehension"]
 end
 subgraph goutput["Outputs"]
 n3[("Outputs")]
 end
 n0 --> n1
 n1 --> n2
 n2 --> n3
 n1 --> n4
 n4 --> n3
 n1 --> n5
 n5 --> n3
 n1 --> n6
 n6 --> n3
 n1 --> n7
 n7 --> n3
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Pipeline

On Home at depth 5.

flowchart LR
 subgraph pipe["Pipeline"]
 docs["docs"]
 evolve["evolve"]
 end
 docs --> evolve
 class docs,evolve container
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Requirements

Harvested requirement sentences from the repository. A card is linked when a name overlaps a part of the architecture; otherwise it stays unlinked. This is not a certification.

    1. For each planned segment, the Write stage shall run a real HarnessX agentic loop that — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage module shall keep the stable STAGE_NAME value "write", the — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage shall read the CoveragePlan, the optional repository analysis, the — analysis From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage shall seed each agentic run's prompt with the existing deterministic — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. If the coverage-plan slot is unset when a run state is bound, the Write stage shall raise — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage shall give the agent a file-system view rooted at the target repository in — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage's task prompt shall instruct the agent to include at least one valid — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. When the Write stage participates in the pipeline, the Write stage shall do its work as a — pipeline From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage shall scope each agentic run's task prompt to the segment's planner — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage's task prompt shall instruct the agent to cite real file:line sources so — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage shall obtain the live run state from the task-start event and read its — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. When the agent returns a body, the Write stage shall validate that the body contains at — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. While the agent runs, the Write stage shall make the tool outputs (read/grep/glob/bash — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The Write stage shall use the final agent answer as the source of the segment body. — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The agentic-codebase-writer shall not modify the stage registry, the make_docgen bundle — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. When a body passes structure validation, the Write stage shall use it verbatim as the — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. Where the repository-analysis slot is unset, the Write stage shall tolerate the absence — analysis From .kiro/specs/agentic-codebase-writer/requirements.md.
    1. The agentic-codebase-writer shall not build or rely on any embedding, vector index, or — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
  • Write stage shall raise a writer input error naming the missing slot and produce no — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
  • Write stage shall raise a writer input error naming the unsupported version and produce no — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
  • Write stage shall record a deterministic flag and fall back to the deterministic body for — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
  • file:line citations, and shall treat a body that fails this validation as an unusable — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
  • retrieval-augmented store; repository context shall be obtained agentically through the — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.
  • shall forward the event unchanged and write nothing, exactly like the prior no-op base. — unlinked From .kiro/specs/agentic-codebase-writer/requirements.md.

Reading path

Start-here path

On Home at depth 3.

flowchart LR
 subgraph path["Read in this order"]
 direction LR
 p0["1. How does this program start?"]
 p1["2. What does docuharnessx do?"]
 p2["3. How is this project built and verif…"]
 p3["4. How are tests organized?"]
 p4["5. How is the public surface used or e…"]
 end
 p0 -->|"then"| p1
 p1 -->|"then"| p2
 p2 -->|"then"| p3
 p3 -->|"then"| p4
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Question map

On Home at depth 5.

flowchart TB
 subgraph start["Start here"]
 s0["How does this program start?"]
 s1["What does docuharnessx do?"]
 s2["How is this project built and verif…"]
 s3["How are tests organized?"]
 s4["How is the public surface used or e…"]
 end
 s0 --> s1
 s1 --> s2
 s2 --> s3
 s3 --> s4
 subgraph more["Further questions"]
 m0["What does analysis do?"]
 m1["What does assembler do?"]
 m2["What does composition do?"]
 m3["What does comprehension do?"]
 m4["What does javascripts do?"]
 end
 s4 -.-> m0
 classDef person fill:#E8B923,stroke:#7A5100,color:#1A1300
 classDef system fill:#A8C8FF,stroke:#1E4BB8,color:#0B1F4A
 classDef container fill:#B9D4FE,stroke:#2F62C4,color:#0B1F4A
 classDef external fill:#D5DCE6,stroke:#4A5568,color:#1A202C
 classDef store fill:#7ED4C0,stroke:#0F766E,color:#042F2E

Coverage

Coverage

On Home at depth 2.

pie showData
 title Documentation coverage
 "Accepted pages" : 10

Per question

How are tests organized? · Files by directory

On How are tests organized? at depth 5.

flowchart TB
 page["How are tests organized?"]
 subgraph d0["repo root"]
 e0["pyproject.toml"]
 end
 subgraph d1["tests"]
 e1["test_ontology_loader.py"]
 e2["test_ontology_setup.py"]
 e3["test_deploy_build_e2e_5_3.py"]
 e4["_fakes.py"]
 e5["test_cli_e2e.py"]
 e6["test_mcp_session.py"]
 end
 subgraph d2["tests/ontology"]
 e7["test_package_import.py"]
 end
 page --> e0
 page --> e1
 page --> e2
 page --> e3
 page --> e4
 page --> e5
 page --> e6
 page --> e7

How are tests organized? · Question and files

On How are tests organized? at depth 5.

flowchart TB
 n0["How are tests organized?"]
 n1["pyproject.toml"]
 n2["test_ontology_loader.py"]
 n3["test_ontology_setup.py"]
 n4["test_deploy_build_e2e_5_3.py"]
 n5["test_package_import.py"]
 n6["_fakes.py"]
 n7["test_cli_e2e.py"]
 n8["test_mcp_session.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

How are tests organized? · Structure

On How are tests organized? at depth 5.

flowchart TB
 n0["How are tests organized?"]
 n1["tests"]
 n2["tests/ontology/test_errors.py"]
 n3["tests/ontology/test_hardening.py"]
 n4["tests/ontology/test_model.py"]
 n5["tests/ontology/test_normalize_prefix.py"]
 n6["tests/ontology/test_package_import.py"]
 n7["tests/ontology/test_public_api.py"]
 n8["tests/ontology/test_schema.py"]
 n9["pytest"]
 n10["pyproject.toml"]
 n11["test_ontology_loader.py"]
 n12["test_ontology_setup.py"]
 n13["test_deploy_build_e2e_5_3.py"]
 n14["test_package_import.py"]
 n15["_fakes.py"]
 n16["test_cli_e2e.py"]
 n17["test_mcp_session.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8
 n0 --> n9
 n0 --> n10
 n0 --> n11
 n0 --> n12
 n0 --> n13
 n0 --> n14
 n0 --> n15
 n0 --> n16
 n0 --> n17

How does this program start? · Files by directory

On How does this program start? at depth 5.

flowchart TB
 page["How does this program start?"]
 subgraph d0["repo root"]
 e0["pyproject.toml"]
 end
 subgraph d1["docuharnessx"]
 e1["cli.py"]
 e2["ontology_loader.py"]
 e3["config.py"]
 end
 subgraph d2["docuharnessx/pipeline"]
 e4["run.py"]
 end
 page --> e0
 page --> e1
 page --> e2
 page --> e3
 page --> e4

How does this program start? · Question and files

On How does this program start? at depth 5.

flowchart TB
 n0["How does this program start?"]
 n1["pyproject.toml"]
 n2["cli.py"]
 n3["ontology_loader.py"]
 n4["config.py"]
 n5["run.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5

How does this program start? · Structure

On How does this program start? at depth 5.

flowchart LR
 n0["cli.py"]
 n1["pyproject.toml"]
 n2["ontology_loader.py"]
 n3["config.py"]
 n4["run.py"]
 n0 --> n1
 n1 --> n0
 n0 --> n2
 n2 --> n3
 n3 --> n4

How is the public surface used or extended? · Files by directory

On How is the public surface used or extended? at depth 5.

flowchart TB
 page["How is the public surface used or exten…"]
 subgraph d0["docuharnessx"]
 e0["__init__.py"]
 e1["_ontology.py"]
 end
 subgraph d1["tests"]
 e2["test_package_scaffold.py"]
 end
 subgraph d2["docuharnessx/mcp"]
 e3["__init__.py"]
 end
 subgraph d3["docuharnessx/analysis"]
 e4["__init__.py"]
 end
 subgraph d4["docuharnessx/ontology"]
 e5["__init__.py"]
 end
 subgraph d5["docuharnessx/planning"]
 e6["__init__.py"]
 end
 subgraph d6["docuharnessx/stages"]
 e7["base.py"]
 end
 page --> e0
 page --> e1
 page --> e2
 page --> e3
 page --> e4
 page --> e5
 page --> e6
 page --> e7

How is the public surface used or extended? · Question and files

On How is the public surface used or extended? at depth 5.

flowchart TB
 n0["How is the public surface used or exten…"]
 n1["__init__.py"]
 n2["test_package_scaffold.py"]
 n3["__init__.py"]
 n4["__init__.py"]
 n5["__init__.py"]
 n6["__init__.py"]
 n7["base.py"]
 n8["_ontology.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

How is the public surface used or extended? · Structure

On How is the public surface used or extended? at depth 5.

flowchart TB
 n0["How is the public surface used or exten…"]
 n1["__version__"]
 n2["AnalysisError"]
 n3["AnalyzeError"]
 n4["Artifact"]
 n5["BuildFile"]
 n6["CIWorkflow"]
 n7["Component"]
 n8["DEFAULT_EXCLUDED_DIRS"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

How is this project built and verified? · Files by directory

On How is this project built and verified? at depth 5.

flowchart TB
 page["How is this project built and verified?"]
 subgraph d0["repo root"]
 e0["pyproject.toml"]
 e1["README.md"]
 end
 subgraph d1["docuharnessx"]
 e2["cli.py"]
 end
 subgraph d2["tests/fixtures/agentic_repo"]
 e3["pyproject.toml"]
 end
 subgraph d3["tests"]
 e4["test_deployer_pyproject_deps.py"]
 e5["test_mcp_pyproject_dep.py"]
 e6["test_fixture_agentic_repo.py"]
 end
 page --> e0
 page --> e1
 page --> e2
 page --> e3
 page --> e4
 page --> e5
 page --> e6

How is this project built and verified? · Question and files

On How is this project built and verified? at depth 5.

flowchart TB
 n0["How is this project built and verified?"]
 n1["pyproject.toml"]
 n2["cli.py"]
 n3["pyproject.toml"]
 n4["test_deployer_pyproject_deps.py"]
 n5["test_mcp_pyproject_dep.py"]
 n6["test_fixture_agentic_repo.py"]
 n7["README.md"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7

How is this project built and verified? · Structure

On How is this project built and verified? at depth 5.

flowchart LR
 n0["How is this project built and verified?"]
 n1["pyproject.toml"]
 n2["pyproject.toml"]
 n3["adopt.yml"]
 n4["dhx.yml"]
 n5["docs.yml"]
 n6["pyproject.toml"]
 n7["cli.py"]
 n8["pyproject.toml"]
 n9["test_deployer_pyproject_deps.py"]
 n10["test_mcp_pyproject_dep.py"]
 n11["test_fixture_agentic_repo.py"]
 n12["README.md"]
 n0 --> n1
 n1 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8
 n0 --> n9
 n0 --> n10
 n0 --> n11
 n0 --> n12

What does analysis do? · Question and files

On What does analysis do? at depth 5.

flowchart TB
 n0["What does analysis do?"]
 n1["__init__.py"]
 n2["analyzer.py"]
 n3["scanner.py"]
 n4["languages.py"]
 n5["model.py"]
 n6["detectors.py"]
 n7["enrich.py"]
 n8["errors.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

What does analysis do? · Structure

On What does analysis do? at depth 5.

flowchart TB
 n0["What does analysis do?"]
 n1["analysis"]
 n2["__init__.py"]
 n3["analyzer.py"]
 n4["detectors.py"]
 n5["enrich.py"]
 n6["errors.py"]
 n7["scanner.py"]
 n8["languages.py"]
 n9["model.py"]
 n0 --> n1
 n1 --> n2
 n1 --> n3
 n1 --> n4
 n1 --> n5
 n1 --> n6
 n0 --> n2
 n0 --> n3
 n0 --> n7
 n0 --> n8
 n0 --> n9
 n0 --> n4
 n0 --> n5
 n0 --> n6

What does assembler do? · Question and files

On What does assembler do? at depth 5.

flowchart TB
 n0["What does assembler do?"]
 n1["__init__.py"]
 n2["identity.py"]
 n3["writer.py"]
 n4["pages.py"]
 n5["roles.py"]
 n6["home.py"]
 n7["graphs.py"]
 n8["mkdocs_config.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

What does assembler do? · Structure

On What does assembler do? at depth 5.

flowchart TB
 n0["What does assembler do?"]
 n1["assembler"]
 n2["__init__.py"]
 n3["depth.py"]
 n4["graphs.py"]
 n5["home.py"]
 n6["identity.py"]
 n7["writer.py"]
 n8["pages.py"]
 n9["roles.py"]
 n10["mkdocs_config.py"]
 n0 --> n1
 n1 --> n2
 n1 --> n3
 n1 --> n4
 n1 --> n5
 n1 --> n6
 n0 --> n2
 n0 --> n6
 n0 --> n7
 n0 --> n8
 n0 --> n9
 n0 --> n5
 n0 --> n4
 n0 --> n10

What does composition do? · Files by directory

On What does composition do? at depth 5.

flowchart TB
 page["What does composition do?"]
 subgraph d0["docuharnessx/composition"]
 e0["__init__.py"]
 e1["blueprint.py"]
 e2["model.py"]
 e3["prompt.py"]
 e4["prose.py"]
 e5["fallback.py"]
 e6["wiring.py"]
 end
 subgraph d1["docuharnessx/stages"]
 e7["write.py"]
 end
 page --> e0
 page --> e1
 page --> e2
 page --> e3
 page --> e4
 page --> e5
 page --> e6
 page --> e7

What does composition do? · Question and files

On What does composition do? at depth 5.

flowchart TB
 n0["What does composition do?"]
 n1["__init__.py"]
 n2["write.py"]
 n3["blueprint.py"]
 n4["model.py"]
 n5["prompt.py"]
 n6["prose.py"]
 n7["fallback.py"]
 n8["wiring.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

What does composition do? · Structure

On What does composition do? at depth 5.

flowchart TB
 n0["What does composition do?"]
 n1["composition"]
 n2["__init__.py"]
 n3["agent.py"]
 n4["blueprint.py"]
 n5["blueprint_question.py"]
 n6["budgets.py"]
 n7["write.py"]
 n8["model.py"]
 n9["prompt.py"]
 n10["prose.py"]
 n11["fallback.py"]
 n12["wiring.py"]
 n0 --> n1
 n1 --> n2
 n1 --> n3
 n1 --> n4
 n1 --> n5
 n1 --> n6
 n0 --> n2
 n0 --> n7
 n0 --> n4
 n0 --> n8
 n0 --> n9
 n0 --> n10
 n0 --> n11
 n0 --> n12

What does comprehension do? · Files by directory

On What does comprehension do? at depth 5.

flowchart TB
 page["What does comprehension do?"]
 subgraph d0["docuharnessx/comprehension"]
 e0["__init__.py"]
 e1["detect.py"]
 e2["signals.py"]
 e3["glossary.py"]
 e4["autolink.py"]
 e5["compliance.py"]
 e6["graphs.py"]
 end
 subgraph d1["docuharnessx/assembler"]
 e7["question_site.py"]
 end
 page --> e0
 page --> e1
 page --> e2
 page --> e3
 page --> e4
 page --> e5
 page --> e6
 page --> e7

What does comprehension do? · Question and files

On What does comprehension do? at depth 5.

flowchart TB
 n0["What does comprehension do?"]
 n1["__init__.py"]
 n2["question_site.py"]
 n3["detect.py"]
 n4["signals.py"]
 n5["glossary.py"]
 n6["autolink.py"]
 n7["compliance.py"]
 n8["graphs.py"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

What does comprehension do? · Structure

On What does comprehension do? at depth 5.

flowchart TB
 n0["What does comprehension do?"]
 n1["comprehension"]
 n2["__init__.py"]
 n3["architecture.py"]
 n4["autolink.py"]
 n5["compliance.py"]
 n6["detect.py"]
 n7["question_site.py"]
 n8["signals.py"]
 n9["glossary.py"]
 n10["graphs.py"]
 n0 --> n1
 n1 --> n2
 n1 --> n3
 n1 --> n4
 n1 --> n5
 n1 --> n6
 n0 --> n2
 n0 --> n7
 n0 --> n6
 n0 --> n8
 n0 --> n9
 n0 --> n4
 n0 --> n5
 n0 --> n10

What does docuharnessx do? · Files by directory

On What does docuharnessx do? at depth 5.

flowchart TB
 page["What does docuharnessx do?"]
 subgraph d0["docuharnessx"]
 e0["__init__.py"]
 end
 subgraph d1["repo root"]
 e1["pyproject.toml"]
 end
 page --> e0
 page --> e1

What does docuharnessx do? · Question and files

On What does docuharnessx do? at depth 5.

flowchart TB
 n0["What does docuharnessx do?"]
 n1["__init__.py"]
 n2["pyproject.toml"]
 n0 --> n1
 n0 --> n2

What does docuharnessx do? · Structure

On What does docuharnessx do? at depth 5.

flowchart TB
 n0["What does docuharnessx do?"]
 n1["docuharnessx"]
 n2["__init__.py"]
 n3["_ontology.py"]
 n4["adoption.py"]
 n5["blueprint.py"]
 n6["bundle.py"]
 n7["pyproject.toml"]
 n0 --> n1
 n1 --> n2
 n1 --> n3
 n1 --> n4
 n1 --> n5
 n1 --> n6
 n0 --> n2
 n0 --> n7

What does javascripts do? · Files by directory

On What does javascripts do? at depth 5.

flowchart TB
 page["What does javascripts do?"]
 subgraph d0["repo root"]
 e0["mkdocs.yml"]
 end
 subgraph d1["docuharnessx/assembler"]
 e1["theme.py"]
 e2["writer.py"]
 e3["question_site.py"]
 end
 subgraph d2["docs/javascripts"]
 e4["depth.js"]
 end
 subgraph d3["docuharnessx"]
 e5["site_config.py"]
 end
 subgraph d4["docs"]
 e6["component-docuharnessx-3986831c.md"]
 e7["build-pyproject-toml-a625bf0a.md"]
 end
 page --> e0
 page --> e1
 page --> e2
 page --> e3
 page --> e4
 page --> e5
 page --> e6
 page --> e7

What does javascripts do? · Question and files

On What does javascripts do? at depth 5.

flowchart TB
 n0["What does javascripts do?"]
 n1["mkdocs.yml"]
 n2["theme.py"]
 n3["writer.py"]
 n4["question_site.py"]
 n5["depth.js"]
 n6["site_config.py"]
 n7["component-docuharnessx-3986831c.md"]
 n8["build-pyproject-toml-a625bf0a.md"]
 n0 --> n1
 n0 --> n2
 n0 --> n3
 n0 --> n4
 n0 --> n5
 n0 --> n6
 n0 --> n7
 n0 --> n8

What does javascripts do? · Structure

On What does javascripts do? at depth 5.

flowchart TB
 n0["What does javascripts do?"]
 n1["javascripts"]
 n2["conceptual.js"]
 n3["depth.js"]
 n4["jit.js"]
 n5["mermaid-boot.js"]
 n6["mermaid.min.js"]
 n7["mkdocs.yml"]
 n8["theme.py"]
 n9["writer.py"]
 n10["question_site.py"]
 n11["site_config.py"]
 n12["component-docuharnessx-3986831c.md"]
 n13["build-pyproject-toml-a625bf0a.md"]
 n0 --> n1
 n1 --> n2
 n1 --> n3
 n1 --> n4
 n1 --> n5
 n1 --> n6
 n0 --> n7
 n0 --> n8
 n0 --> n9
 n0 --> n10
 n0 --> n3
 n0 --> n11
 n0 --> n12
 n0 --> n13

Small related-term pictures live on the glossary entries: