# piyenghar/assurancedemo_opencode-en50128 architecture

> Architecture diagram of the GitHub repository piyenghar/assurancedemo_opencode-en50128, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/piyenghar/assurancedemo_opencode-en50128
- Repository: https://github.com/piyenghar/assurancedemo_opencode-en50128

## Overview

This is a frozen OpenCode-based EN 50128 railway software development platform, demonstrated through a SIL 3 train-door-control project. Its main workflow starts with lifecycle planning, coordinates phase work through specialized agents, produces and checks lifecycle deliverables, and advances through gated V-Model phases. Major supporting capabilities include traceability and workflow/baseline management, MC/DC analysis and evidence, and standards-PDF conversion. The README documents the overall workflow; sampled tool excerpts and the source index support only selected internal tool relationships.

Main entry points: [`tools/mcdc/mcdc_analyzer.py`](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/mcdc_analyzer.py) (MC/DC Analyzer), [`.opencode/agents/cod.md`](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/.opencode/agents/cod.md) (Lifecycle Authority), [`.opencode/agents/pm.md`](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/.opencode/agents/pm.md) (Phase Coordinator), [`tools/mcdc/coverage_tracker.py`](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/coverage_tracker.py) (Coverage Tracker)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_coordination["Agent Coordination"]
  node_cod["Lifecycle Authority<br/>[cod.md]"]
  node_pm["Phase Coordinator<br/>[pm.md]"]
  node_specialists["Specialist Agents<br/>[agents]"]
  node_skills["EN 50128 Skills<br/>[skills]"]
end

subgraph group_lifecycle["Lifecycle Governance"]
  node_activities["Lifecycle Activities"]
  node_deliverable_catalog["Deliverable Catalog"]
  node_deliverable_loader["Deliverable Loader<br/>[loader.py]"]
  node_project_docs["Project Deliverables<br/>[documents]"]
  node_workflow["Workflow and Gates"]
  node_traceability["Traceability Manager"]
end

subgraph group_assurance["Engineering Assurance"]
  node_c_source["C Source Inputs"]
  node_mcdc_analyzer["MC/DC Analyzer<br/>[mcdc_analyzer.py]"]
  node_c_parser["C Expression Parser<br/>[c_parser.py]"]
  node_mcdc_engine["MC/DC Engine<br/>[mcdc_engine.py]"]
  node_coverage_tracker["Coverage Tracker"]
  node_report_gen["MC/DC Evidence<br/>[report_gen.py]"]
  node_test_results["Test Results"]
end

subgraph group_utilities["Engineering Utilities"]
  node_pdf_converter["Standards Converter<br/>[pdf_to_markdown.py]"]
  node_table_formatter["Table Formatter<br/>[table_formatter.py]"]
  node_pdf_standards["Standards PDFs"]
end

node_opencode_user(("OpenCode User"))

node_opencode_user -->|"plans lifecycle"| node_cod
node_opencode_user -->|"executes phases"| node_pm
node_cod -->|"reads lifecycle"| node_activities
node_pm -->|"coordinates work"| node_specialists
node_specialists -->|"uses skills"| node_skills
node_pm -->|"produces deliverables"| node_project_docs
node_cod -.->|"checks gates"| node_workflow
node_activities -->|"maps phases"| node_deliverable_catalog
node_deliverable_loader -->|"loads definitions"| node_deliverable_catalog
node_opencode_user -.->|"validates links"| node_traceability
node_c_source -->|"supplies C files"| node_mcdc_analyzer
node_mcdc_analyzer -->|"extracts expressions"| node_c_parser
node_mcdc_analyzer -->|"computes vectors"| node_mcdc_engine
node_mcdc_analyzer -->|"writes analysis"| node_report_gen
node_mcdc_analyzer -->|"measures coverage"| node_coverage_tracker
node_coverage_tracker -->|"consumes results"| node_test_results
node_coverage_tracker -.->|"provides coverage"| node_report_gen
node_pdf_converter -->|"converts PDFs"| node_pdf_standards
node_pdf_converter -->|"formats tables"| node_table_formatter

click node_cod "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/.opencode/agents/cod.md"
click node_pm "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/.opencode/agents/pm.md"
click node_specialists "https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/.opencode/agents"
click node_skills "https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/.opencode/skills"
click node_activities "https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/activities"
click node_deliverable_catalog "https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/deliverables"
click node_deliverable_loader "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/deliverables/loader.py"
click node_project_docs "https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/.workflow/documents"
click node_workflow "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/workflow_manager.py"
click node_traceability "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/traceability_manager.py"
click node_c_source "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/deliverables/implementation/C-Module-Template.c"
click node_mcdc_analyzer "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/mcdc_analyzer.py"
click node_c_parser "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/c_parser.py"
click node_mcdc_engine "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/mcdc_engine.py"
click node_coverage_tracker "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/coverage_tracker.py"
click node_report_gen "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/report_gen.py"
click node_pdf_converter "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/pdf-conversion/pdf_to_markdown.py"
click node_table_formatter "https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/pdf-conversion/table_formatter.py"
click node_pdf_standards "https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/std"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cod,node_pm,node_specialists,node_skills,node_opencode_user toneBlue
class node_activities,node_deliverable_catalog,node_deliverable_loader,node_project_docs,node_workflow,node_traceability toneAmber
class node_c_source,node_mcdc_analyzer,node_c_parser,node_mcdc_engine,node_coverage_tracker,node_report_gen,node_test_results toneMint
class node_pdf_converter,node_table_formatter,node_pdf_standards toneRose
```

## Components

### Agent Coordination

- [Lifecycle Authority](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/.opencode/agents/cod.md): `.opencode/agents/cod.md`
- [Phase Coordinator](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/.opencode/agents/pm.md): `.opencode/agents/pm.md`
- [Specialist Agents](https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/.opencode/agents): `.opencode/agents`
- [EN 50128 Skills](https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/.opencode/skills): `.opencode/skills`

### Lifecycle Governance

- [Lifecycle Activities](https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/activities): `activities`
- [Deliverable Catalog](https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/deliverables): `deliverables`
- [Deliverable Loader](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/deliverables/loader.py): `tools/deliverables/loader.py`
- [Project Deliverables](https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/.workflow/documents): `.workflow/documents`
- [Workflow and Gates](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/workflow_manager.py): `tools/workflow_manager.py`
- [Traceability Manager](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/traceability_manager.py): `tools/traceability_manager.py`

### Engineering Assurance

- [C Source Inputs](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/deliverables/implementation/C-Module-Template.c): `deliverables/implementation/C-Module-Template.c`
- [MC/DC Analyzer](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/mcdc_analyzer.py): `tools/mcdc/mcdc_analyzer.py`
- [C Expression Parser](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/c_parser.py): `tools/mcdc/c_parser.py`
- [MC/DC Engine](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/mcdc_engine.py): `tools/mcdc/mcdc_engine.py`
- [Coverage Tracker](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/coverage_tracker.py): `tools/mcdc/coverage_tracker.py`
- [MC/DC Evidence](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/mcdc/report_gen.py): `tools/mcdc/report_gen.py`
- **Test Results**

### Engineering Utilities

- [Standards Converter](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/pdf-conversion/pdf_to_markdown.py): `tools/pdf-conversion/pdf_to_markdown.py`
- [Table Formatter](https://github.com/piyenghar/assurancedemo_opencode-en50128/blob/main/tools/pdf-conversion/table_formatter.py): `tools/pdf-conversion/table_formatter.py`
- [Standards PDFs](https://github.com/piyenghar/assurancedemo_opencode-en50128/tree/main/std): `std`

### Other components

- **OpenCode User**

## Connections

- OpenCode User → Lifecycle Authority: plans lifecycle (evidence: `README.md`)
- OpenCode User → Phase Coordinator: executes phases (evidence: `README.md`)
- Lifecycle Authority → Lifecycle Activities: reads lifecycle (evidence: `README.md`)
- Phase Coordinator → Specialist Agents: coordinates work (evidence: `README.md`)
- Specialist Agents → EN 50128 Skills: uses skills (evidence: `README.md`)
- Phase Coordinator → Project Deliverables: produces deliverables (evidence: `README.md`)
- Lifecycle Authority → Workflow and Gates: checks gates
- Lifecycle Activities → Deliverable Catalog: maps phases (evidence: `README.md`)
- Deliverable Loader → Deliverable Catalog: loads definitions (evidence: `tools/deliverables/loader.py`)
- OpenCode User → Traceability Manager: validates links
- C Source Inputs → MC/DC Analyzer: supplies C files (evidence: `tools/mcdc/mcdc_analyzer.py`)
- MC/DC Analyzer → C Expression Parser: extracts expressions (evidence: `tools/mcdc/mcdc_analyzer.py`)
- MC/DC Analyzer → MC/DC Engine: computes vectors (evidence: `tools/mcdc/mcdc_analyzer.py`)
- MC/DC Analyzer → MC/DC Evidence: writes analysis (evidence: `tools/mcdc/mcdc_analyzer.py`)
- MC/DC Analyzer → Coverage Tracker: measures coverage (evidence: `tools/mcdc/mcdc_analyzer.py`)
- Coverage Tracker → Test Results: consumes results (evidence: `tools/mcdc/coverage_tracker.py`)
- Coverage Tracker → MC/DC Evidence: provides coverage (evidence: `tools/mcdc/report_gen.py`)
- Standards Converter → Standards PDFs: converts PDFs (evidence: `tools/pdf-conversion/pdf_to_markdown.py`)
- Standards Converter → Table Formatter: formats tables (evidence: `tools/pdf-conversion/pdf_to_markdown.py`)
