Skip to content

Commit b3d3d43

Browse files
Copilotefargas
andcommitted
Update docs validation scripts and workflow to include docs/website/docs; sync outdated content
Co-authored-by: efargas <9705611+efargas@users.noreply.github.com> Agent-Logs-Url: https://github.com/efargas/S7-Tools/sessions/82584976-33f7-4244-86f6-3b58a2a12701
1 parent eccfd2a commit b3d3d43

File tree

16 files changed

+169
-46
lines changed

16 files changed

+169
-46
lines changed

.github/workflows/docs-validation.yml

Lines changed: 59 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,12 @@ jobs:
3030
- name: Install markdownlint-cli
3131
run: npm install -g markdownlint-cli
3232

33-
- name: Run markdown linting
34-
run: markdownlint 'docs/**/*.md' --ignore 'docs/.metadata/**' --ignore 'docs/archive/**'
33+
- name: Run markdown linting (docs/)
34+
run: markdownlint 'docs/**/*.md' --ignore 'docs/.metadata/**' --ignore 'docs/archive/**' --ignore 'docs/website/**'
35+
continue-on-error: true
36+
37+
- name: Run markdown linting (docs/website/docs/)
38+
run: markdownlint 'docs/website/docs/**/*.md' --ignore 'docs/website/docs/archive/**' --ignore 'docs/website/docs/external/**'
3539
continue-on-error: true
3640

3741
frontmatter-validation:
@@ -49,9 +53,12 @@ jobs:
4953
- name: Install Python dependencies
5054
run: pip install pyyaml
5155

52-
- name: Validate frontmatter
56+
- name: Validate frontmatter (docs/)
5357
run: python scripts/validate-frontmatter.py docs/
5458

59+
- name: Validate frontmatter (docs/website/docs/)
60+
run: python scripts/validate-frontmatter.py docs/website/docs/
61+
5562
link-validation:
5663
name: Link Validation (BLOCKING)
5764
runs-on: ubuntu-latest
@@ -67,9 +74,13 @@ jobs:
6774
- name: Install markdown-link-check
6875
run: npm install -g markdown-link-check
6976

70-
- name: Check links in documentation
77+
- name: Check links in documentation (docs/)
78+
run: |
79+
find docs -name "*.md" -not -path "docs/.metadata/*" -not -path "docs/website/*" -not -path "docs/website" -exec markdown-link-check --config .markdown-link-check.json {} \;
80+
81+
- name: Check links in website documentation (docs/website/docs/)
7182
run: |
72-
find docs -name "*.md" -not -path "docs/.metadata/*" -exec markdown-link-check --config .markdown-link-check.json {} \;
83+
find docs/website/docs -name "*.md" -not -path "docs/website/docs/external/*" -exec markdown-link-check --config .markdown-link-check.json {} \;
7384
7485
orphan-detection:
7586
name: Orphan Detection (WARNING)
@@ -89,10 +100,14 @@ jobs:
89100
- name: Create output directory
90101
run: mkdir -p docs/.metadata/reports
91102

92-
- name: Detect orphaned files
103+
- name: Detect orphaned files (docs/)
93104
run: python scripts/detect-orphans.py docs/ --report
94105
continue-on-error: true
95106

107+
- name: Detect orphaned files (docs/website/docs/)
108+
run: python scripts/detect-orphans.py docs/website/docs/ --report
109+
continue-on-error: true
110+
96111
- name: Upload orphan report
97112
if: always()
98113
uses: actions/upload-artifact@v4
@@ -129,10 +144,46 @@ jobs:
129144
path: docs/.metadata/reports/duplicates.csv
130145
if-no-files-found: ignore
131146

147+
website-docs-validation:
148+
name: Website Docs Source Validation (WARNING)
149+
runs-on: ubuntu-latest
150+
permissions:
151+
contents: read
152+
steps:
153+
- name: Checkout repository
154+
uses: actions/checkout@v4
155+
156+
- name: Setup Python
157+
uses: actions/setup-python@v5
158+
with:
159+
python-version: '3.11'
160+
161+
- name: Install Python dependencies
162+
run: pip install pyyaml colorama
163+
164+
- name: Create output directory
165+
run: mkdir -p docs/.metadata/website
166+
167+
- name: Validate website docs against source code
168+
run: |
169+
python scripts/validate-documentation.py \
170+
--docs-path docs/website/docs \
171+
--skip-compilation \
172+
--output docs/.metadata/website
173+
continue-on-error: true
174+
175+
- name: Upload website validation report
176+
if: always()
177+
uses: actions/upload-artifact@v4
178+
with:
179+
name: website-docs-validation-report
180+
path: docs/.metadata/website/
181+
if-no-files-found: ignore
182+
132183
validation-summary:
133184
name: Validation Summary
134185
runs-on: ubuntu-latest
135-
needs: [frontmatter-validation, link-validation, orphan-detection, duplicate-detection]
186+
needs: [frontmatter-validation, link-validation, orphan-detection, duplicate-detection, website-docs-validation]
136187
if: always()
137188
steps:
138189
- name: Check validation results
@@ -144,6 +195,7 @@ jobs:
144195
echo "Link Validation: ${{ needs.link-validation.result }}"
145196
echo "Orphan Detection: ${{ needs.orphan-detection.result }} (non-blocking)"
146197
echo "Duplicate Detection: ${{ needs.duplicate-detection.result }} (non-blocking)"
198+
echo "Website Docs Validation: ${{ needs.website-docs-validation.result }} (non-blocking)"
147199
echo ""
148200
if [ "${{ needs.frontmatter-validation.result }}" != "success" ] || [ "${{ needs.link-validation.result }}" != "success" ]; then
149201
echo "❌ VALIDATION FAILED: Please fix frontmatter and link errors before merging."

docs/website/docs/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ tags:
1010
- navigation
1111
- readme
1212
related:
13-
- docs/INDEX.md
1413
- docs/guides/ai-agent-guide.md
1514
- docs/guides/onboarding.md
1615
---

docs/website/docs/architecture/_index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ last-updated: "2025-11-10"
66
status: "current"
77
tags: ["architecture", "index", "navigation"]
88
related:
9-
- "docs/INDEX.md"
109
- "docs/architecture/overview.md"
1110
- "docs/patterns/_index.md"
1211
supersedes: []

docs/website/docs/architecture/project-brief.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ Build a professional-grade desktop application for **Siemens S7-1200 PLC memory
5252
## Technology Foundation
5353

5454
### Core Stack
55-
- **.NET 8.0** - Latest C# language features and performance
56-
- **Avalonia UI 11.3.6** - Cross-platform XAML framework
55+
- **.NET 10.0** - Latest C# language features and performance
56+
- **Avalonia UI 11.3.12** - Cross-platform XAML framework
5757
- **ReactiveUI 20.1.1** - Reactive MVVM implementation
5858
- **Microsoft.Extensions.*** - Logging, DI, and hosting
5959

docs/website/docs/architecture/technology-stack.md

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
title: "Technology Stack"
3-
version: "1.0.0"
3+
version: "1.1.0"
44
created: "2025-11-11"
5-
last-updated: "2025-11-11"
5+
last-updated: "2026-03-24"
66
status: "current"
77
tags: ["architecture", "technology", "stack", "libraries"]
88
related:
@@ -20,8 +20,8 @@ related:
2020

2121
### **Core Technologies**
2222

23-
#### **.NET 8.0**
24-
- **Version**: 8.0 (Latest LTS)
23+
#### **.NET 10.0**
24+
- **Version**: 10.0
2525
- **Language**: C# with latest language features
2626
- **Features Used**:
2727
- Nullable reference types enabled
@@ -30,7 +30,7 @@ related:
3030
- Pattern matching enhancements
3131
- Record types for data models
3232

33-
#### **Avalonia UI 11.3.6**
33+
#### **Avalonia UI 11.3.12**
3434
- **Purpose**: Cross-platform desktop UI framework
3535
- **Advantages**:
3636
- Cross-platform (Windows, Linux, macOS)
@@ -64,7 +64,7 @@ related:
6464
- **Custom Integration**: DataStore provider for UI logging
6565
- **Providers**: Console, Debug, and custom DataStore
6666

67-
#### **CommunityToolkit.Mvvm 8.2.0**
67+
#### **CommunityToolkit.Mvvm 8.4.0**
6868
- **Purpose**: Additional MVVM helpers and source generators
6969
- **Usage**: Complementary to ReactiveUI for specific scenarios
7070

@@ -98,7 +98,7 @@ related:
9898
### **Prerequisites**
9999

100100
#### **Required Software**
101-
- **.NET 8.0 SDK** or later
101+
- **.NET 10.0 SDK** or later
102102
- **Git** for version control
103103
- **IDE** (Visual Studio 2022, Rider, or VS Code)
104104

@@ -172,7 +172,7 @@ dotnet test
172172
- **Tertiary**: macOS (10.15+, x64/ARM64)
173173

174174
#### **Runtime Requirements**
175-
- **.NET 8.0 Runtime** (Desktop)
175+
- **.NET 10.0 Runtime** (Desktop)
176176
- **Minimum RAM**: 512MB
177177
- **Minimum Storage**: 100MB
178178
- **Display**: 1024x768 minimum resolution
@@ -211,25 +211,36 @@ dotnet test
211211

212212
#### **S7Tools Project**
213213
```xml
214-
<PackageReference Include="Avalonia" Version="11.3.6" />
215-
<PackageReference Include="Avalonia.Desktop" Version="11.3.6" />
216-
<PackageReference Include="Avalonia.ReactiveUI" Version="11.3.6" />
217-
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.6" />
218-
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.6" />
219-
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.6" />
214+
<PackageReference Include="Avalonia" Version="11.3.12" />
215+
<PackageReference Include="Avalonia.Desktop" Version="11.3.12" />
216+
<PackageReference Include="AvaloniaHex" Version="0.1.10" />
217+
<PackageReference Include="Avalonia.ReactiveUI" Version="11.3.8" />
218+
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.12" />
219+
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.12" />
220+
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.12" />
221+
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="11.3.0.6" />
222+
<PackageReference Include="Dock.Avalonia" Version="11.3.11.22" />
223+
<PackageReference Include="Dock.Avalonia.Themes.Fluent" Version="11.3.11.22" />
224+
<PackageReference Include="Dock.Model.Mvvm" Version="11.3.11.22" />
220225
<PackageReference Include="ReactiveUI" Version="20.1.1" />
226+
<PackageReference Include="Splat.Microsoft.Extensions.DependencyInjection" Version="14.8.6" />
221227
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
222228
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
223-
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.0" />
229+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
230+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="10.0.5" />
231+
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
224232
<PackageReference Include="Projektanker.Icons.Avalonia.FontAwesome" Version="9.6.2" />
225233
<PackageReference Include="FluentAvaloniaUI" Version="2.4.0" />
234+
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
235+
<PackageReference Include="NModbus" Version="3.0.72" />
226236
```
227237

228238
#### **S7Tools.Infrastructure.Logging Project**
229239
```xml
230240
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
231241
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
232-
<PackageReference Include="System.Collections.Concurrent" Version="8.0.0" />
242+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
243+
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.0" />
233244
```
234245

235246
#### **S7Tools.Core Project**
@@ -291,7 +302,7 @@ dotnet test
291302
dotnet publish src/S7Tools/S7Tools.csproj -c Release
292303
```
293304
- **Advantages**: Smaller package size
294-
- **Requirements**: .NET 8.0 Runtime must be installed
305+
- **Requirements**: .NET 10.0 Runtime must be installed
295306
- **Use Case**: Corporate environments with managed runtimes
296307

297308
#### **Self-Contained Deployment**

docs/website/docs/archive/_index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ last-updated: "2025-11-12"
66
status: "current"
77
tags: ["archive", "index", "deprecated"]
88
related:
9-
- docs/INDEX.md
109
- docs/guides/archive-management.md
1110
---
1211

docs/website/docs/blueprint.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,30 @@
22
title: "S7Tools Project Architecture and Structure Blueprint"
33
version: "1.6.0"
44
created: "2025-10-15"
5-
last-updated: "2026-03-17"
5+
last-updated: "2026-03-24"
6+
status: "current"
67
tags: ["architecture", "blueprint", "structure", "ai-agent", "guide", "dotnet"]
78
---
89

910
# S7Tools Project Architecture and Structure Blueprint
1011

1112
## 1. Visión General
1213

13-
S7Tools es una aplicación de escritorio multiplataforma avanzada diseñada para el análisis de seguridad, comunicación y volcado de memoria (firmware extraction) de los PLC Siemens S7-1200 mediante acceso por bootloader. Está construida utilizando **.NET 8.0** (con soporte de compilación en SDKs modernos como .NET 10.0), el framework de interfaz gráfica **Avalonia UI** y el patrón MVVM funcional-reactivo provisto por **ReactiveUI**.
14+
S7Tools es una aplicación de escritorio multiplataforma avanzada diseñada para el análisis de seguridad, comunicación y volcado de memoria (firmware extraction) de los PLC Siemens S7-1200 mediante acceso por bootloader. Está construida utilizando **.NET 10.0**, el framework de interfaz gráfica **Avalonia UI** y el patrón MVVM funcional-reactivo provisto por **ReactiveUI**.
1415

1516
El proyecto se adhiere estrictamente a los principios de **Clean Architecture**, asegurando que el Dominio (Core) esté completamente aislado de la Infraestructura (I/O, Logging) y la Presentación (UI). Además, implementa un procesamiento altamente concurrente y seguro mediante la orquestación coordinada de recursos de hardware.
1617

1718
## 2. Análisis Técnico Detallado
1819

1920
### Entorno y SDKs
20-
* **.NET SDK**: 8.0 (LTS) como target principal. El sistema de CI/CD y build tools locales operan bajo SDKs actualizados (se detectan targeting packs de .NET 10.0.4 en los logs de MSBuild).
21+
* **.NET SDK**: 10.0 como target principal.
2122
* **Lenguajes**: C# 12/13 (features modernas: Primary Constructors, Records, Nullable Reference Types), C/ARM Assembly (para payloads del PLC), TypeScript/JavaScript (Documentación y scripts de scraping).
2223

2324
### Dependencias y Paquetes Clave
24-
* **Avalonia UI (v11.3.6)**: Framework principal para la interfaz de usuario multiplataforma (Windows, Linux, macOS).
25+
* **Avalonia UI (v11.3.12)**: Framework principal para la interfaz de usuario multiplataforma (Windows, Linux, macOS).
2526
* **ReactiveUI (v20.1.1)**: Motor MVVM principal, gestión de estado reactivo y comandos asíncronos (`ReactiveCommand`).
2627
* **Microsoft.Extensions.* (v8.0.0)**: Abstracciones estándar para Inyección de Dependencias (DI), Logging y Options.
27-
* **CommunityToolkit.Mvvm (v8.2.0)**: Utilizado como soporte complementario para observabilidad y Source Generators en escenarios específicos.
28+
* **CommunityToolkit.Mvvm (v8.4.0)**: Utilizado como soporte complementario para observabilidad y Source Generators en escenarios específicos.
2829
* **Dock.Avalonia**: Sistema de docking estilo VSCode (pestañas, paneles anclables) para gestionar el área de trabajo.
2930
* **AvaloniaHex**: Visor/Editor hexadecimal de alto rendimiento para el análisis de volcados de memoria.
3031
* **Testing**: xUnit, Moq, NSubstitute, FluentAssertions.
@@ -38,7 +39,7 @@ El proyecto se adhiere estrictamente a los principios de **Clean Architecture**,
3839
### Pasos para Configurar y Ejecutar
3940

4041
1. **Requisitos Previos**:
41-
* Instalar .NET 8.0 SDK (o superior compatible).
42+
* Instalar .NET 10.0 SDK (o superior compatible).
4243
* Instalar Git.
4344
* (Opcional) Docker y GCC ARM toolchain para compilar payloads.
4445

docs/website/docs/guides/ai-agent-guide.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ tags:
1010
- onboarding
1111
- quick-start
1212
related:
13-
- docs/INDEX.md
1413
- docs/architecture/overview.md
1514
- docs/patterns/_index.md
1615
- docs/guides/development-workflow.md

docs/website/docs/guides/archive-management.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ status: "current"
77
tags: ["documentation", "archive", "workflow", "deprecation"]
88
related:
99
- docs/guides/contributing-to-docs.md
10-
- docs/INDEX.md
1110
---
1211

1312
# Archive Management Workflow

docs/website/docs/guides/memory-bank-usage.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ status: "current"
77
type: "tutorial"
88
tags: ["guide", "documentation", "maintenance", "memory-bank"]
99
related:
10-
- docs/INDEX.md
1110
- docs/guides/development-workflow.md
1211
- docs/architecture/overview.md
1312
---

0 commit comments

Comments
 (0)