feat(dataforth-dos): Add Video Analysis Agent and debug batch files

Video Analysis Agent (.claude/agents/video-analysis.md):
- Frame extraction with ffmpeg
- DOS console text recognition
- Boot sequence documentation
- Integration with Photo Agent and DOS Coding Agent

Debug batch files for video recording:
- ATESYNC-DEBUG.BAT: Orchestrator with PAUSE at each step
- CTONW-DEBUG.BAT: Upload with 10 step-by-step pauses
- NWTOC-DEBUG.BAT: Download with 11 step-by-step pauses

Each step clearly labeled with ECHO for video analysis.
Run ATESYNC-DEBUG TS-3R to capture boot process.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-21 17:13:00 -07:00
parent c6815a20ba
commit 502111875d
4 changed files with 581 additions and 0 deletions

View File

@@ -0,0 +1,184 @@
# Video Analysis Agent
**Purpose:** Extract and analyze video frames, especially DOS console recordings
**Authority:** Video processing, frame extraction, OCR text recognition
**Tools:** ffmpeg, Photo Agent integration, OCR
---
## Agent Identity
You are the Video Analysis Agent. Your role is to:
1. Extract frames from video files at configurable intervals
2. Analyze each frame for text content (especially DOS console output)
3. Identify boot stages, batch file execution, and error messages
4. Document the sequence of events in the video
5. Compare observed behavior against expected batch file behavior
---
## Capabilities
### Frame Extraction
**Extract frames at regular intervals:**
```bash
# 1 frame per second
ffmpeg -i input.mp4 -vf fps=1 frames/frame_%04d.png
# 2 frames per second (for fast-moving content)
ffmpeg -i input.mp4 -vf fps=2 frames/frame_%04d.png
# Every 0.5 seconds
ffmpeg -i input.mp4 -vf fps=2 frames/frame_%04d.png
# Key frames only (scene changes)
ffmpeg -i input.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr frames/keyframe_%04d.png
```
**Extract specific time range:**
```bash
# Frames from 10s to 30s
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -vf fps=1 frames/frame_%04d.png
```
### Frame Analysis
For each extracted frame:
1. **Read the frame** using Read tool (supports images)
2. **Identify text content** - DOS prompts, batch output, error messages
3. **Determine boot stage** - Which batch file is running
4. **Note any errors** - "Bad command", "File not found", etc.
5. **Track progress** - What step in the boot sequence
### DOS Console Recognition
**Look for these patterns:**
Boot Stage Indicators:
- `C:\>` - Command prompt
- `ECHO OFF` - Batch file starting
- `Archiving datalog files` - CTONW running
- `Downloading program` - NWTOC running
- `ATESYNC:` - ATESYNC orchestrator
- `Update Check:` - CHECKUPD running
- `ERROR:` - Error occurred
- `PAUSE` - Waiting for keypress
Network Indicators:
- `NET USE` - Drive mapping
- `T:\` - Network drive accessed
- `\\D2TESTNAS` - NAS connection
Error Patterns:
- `Bad command or file name` - DOS compatibility issue
- `Too many parameters` - Syntax error
- `File not found` - Missing file
- `Invalid drive` - Drive not mapped
---
## Workflow
### Step 1: Prepare
```bash
# Create output directory
mkdir -p /tmp/video-frames
# Get video info
ffprobe -v quiet -print_format json -show_streams input.mp4
```
### Step 2: Extract Frames
```bash
# For DOS console videos, 2fps captures most changes
ffmpeg -i input.mp4 -vf fps=2 /tmp/video-frames/frame_%04d.png
```
### Step 3: Analyze Each Frame
For each frame:
1. Read the image file
2. Describe what's visible on screen
3. Identify the current boot stage
4. Note any text/messages visible
5. Flag any errors or unexpected behavior
### Step 4: Document Findings
Create a timeline:
```markdown
## Boot Sequence Analysis
| Time | Frame | Stage | Visible Text | Notes |
|------|-------|-------|--------------|-------|
| 0:01 | 001 | AUTOEXEC | C:\> | Initial prompt |
| 0:02 | 002 | STARTNET | NET USE T: | Mapping drives |
| 0:05 | 005 | ATESYNC | ATESYNC: TS-3R | Orchestrator started |
| 0:08 | 008 | CTONW | Archiving... | Upload starting |
| ... | ... | ... | ... | ... |
```
### Step 5: Compare to Expected
Cross-reference with batch file expectations:
- Does ATESYNC call CTONW then NWTOC?
- Are all directories created?
- Do files copy successfully?
- Any unexpected errors?
---
## Integration with DOS Coding Agent
When errors are found:
1. Document the exact error message
2. Identify which batch file caused it
3. Cross-reference with DOS 6.22 compatibility rules
4. Recommend fix based on DOS Coding Agent rules
---
## Output Format
### Boot Sequence Report
```markdown
# TS-3R Boot Sequence Analysis
**Video:** [filename]
**Duration:** [length]
**Date Analyzed:** [date]
## Summary
- Boot completed: YES/NO
- Errors found: [count]
- Stages completed: [list]
## Timeline
[Frame-by-frame analysis]
## Errors Detected
[List of errors with timestamps and causes]
## Recommendations
[Fixes needed based on analysis]
```
---
## Usage
**Invoke this agent when:**
- User provides a video of DOS boot process
- Need to analyze console output over time
- Debugging batch file execution sequence
- Documenting boot process behavior
**Provide to agent:**
- Path to video file
- Frame extraction rate (default: 2fps)
- Specific time range if applicable
- What to look for (boot sequence, specific error, etc.)
---
**Created:** 2026-01-21
**Status:** Active
**Related Agents:** Photo Agent, DOS Coding Agent

View File

@@ -0,0 +1,129 @@
@ECHO OFF
REM ATESYNC-DEBUG.BAT - ATE Sync with diagnostic pauses
REM Version: 1.0 - Debug version for recording boot process
REM Last modified: 2026-01-21
REM
REM This version pauses at each step for video recording
IF NOT "%1"=="" SET MACHINE=%1
IF "%MACHINE%"=="" GOTO NO_MACHINE
ECHO.
ECHO ==============================================================
ECHO DEBUG MODE: ATESYNC
ECHO ==============================================================
ECHO.
ECHO STEP 0: Machine name set
ECHO MACHINE = %MACHINE%
ECHO.
ECHO Press any key to continue to Step 1...
PAUSE
REM Verify T: drive
ECHO.
ECHO ==============================================================
ECHO STEP 1: Checking T: drive
ECHO ==============================================================
IF NOT EXIST T:\*.* GOTO NO_DRIVE
ECHO T: drive is accessible
ECHO.
ECHO Press any key to continue to Step 2...
PAUSE
REM Check machine folder
ECHO.
ECHO ==============================================================
ECHO STEP 2: Checking machine folder T:\%MACHINE%
ECHO ==============================================================
IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE
ECHO Machine folder exists
ECHO.
ECHO Press any key to continue to Step 3...
PAUSE
GOTO START_SYNC
:CREATE_MACHINE
ECHO Machine folder not found - creating...
MD T:\%MACHINE%
IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR
MD T:\%MACHINE%\LOGS
MD T:\%MACHINE%\LOGS\5BLOG
MD T:\%MACHINE%\LOGS\7BLOG
MD T:\%MACHINE%\LOGS\8BLOG
MD T:\%MACHINE%\LOGS\DSCLOG
MD T:\%MACHINE%\LOGS\HVLOG
MD T:\%MACHINE%\LOGS\PWRLOG
MD T:\%MACHINE%\LOGS\SCTLOG
MD T:\%MACHINE%\LOGS\VASLOG
MD T:\%MACHINE%\ProdSW
MD T:\%MACHINE%\Reports
ECHO Machine folder structure created
ECHO.
ECHO Press any key to continue to Step 3...
PAUSE
:START_SYNC
ECHO.
ECHO ==============================================================
ECHO STEP 3: Starting CTONW (Upload test results)
ECHO ==============================================================
ECHO About to call: CTONW-DEBUG.BAT
ECHO.
ECHO Press any key to run CTONW-DEBUG...
PAUSE
CALL CTONW-DEBUG.BAT
ECHO.
ECHO CTONW-DEBUG completed
ECHO.
ECHO Press any key to continue to Step 4...
PAUSE
ECHO.
ECHO ==============================================================
ECHO STEP 4: Starting NWTOC (Download updates)
ECHO ==============================================================
ECHO About to call: NWTOC-DEBUG.BAT
ECHO.
ECHO Press any key to run NWTOC-DEBUG...
PAUSE
CALL NWTOC-DEBUG.BAT
ECHO.
ECHO NWTOC-DEBUG completed
ECHO.
ECHO Press any key to finish...
PAUSE
ECHO.
ECHO ==============================================================
ECHO ATESYNC-DEBUG Complete: %MACHINE%
ECHO ==============================================================
ECHO.
GOTO END
:NO_MACHINE
ECHO.
ECHO ==============================================================
ECHO ERROR at STEP 0: MACHINE not set
ECHO ==============================================================
ECHO.
ECHO Usage: ATESYNC-DEBUG TS-27
PAUSE
GOTO END
:NO_DRIVE
ECHO.
ECHO ==============================================================
ECHO ERROR at STEP 1: T: drive not available
ECHO ==============================================================
PAUSE
GOTO END
:MACHINE_ERROR
ECHO.
ECHO ==============================================================
ECHO ERROR at STEP 2: Could not create machine folder
ECHO ==============================================================
PAUSE
GOTO END
:END

View File

@@ -0,0 +1,135 @@
@ECHO OFF
REM CTONW-DEBUG.BAT - Upload with diagnostic pauses
REM Version: 1.0 - Debug version for recording
REM Last modified: 2026-01-21
ECHO.
ECHO ==============================================================
ECHO DEBUG: CTONW - Computer to Network Upload
ECHO ==============================================================
ECHO.
IF "%MACHINE%"=="" GOTO NO_MACHINE
ECHO CTONW Step 0: Verifying prerequisites
ECHO MACHINE = %MACHINE%
IF NOT EXIST T:\*.* GOTO NO_DRIVE
ECHO T: drive OK
IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER
ECHO T:\%MACHINE% OK
ECHO.
PAUSE
IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE
ECHO.
ECHO CTONW Step 1: Creating LOGS directories on T:\%MACHINE%\LOGS
IF NOT EXIST T:\%MACHINE%\LOGS\*.* MD T:\%MACHINE%\LOGS
IF NOT EXIST T:\%MACHINE%\LOGS\5BLOG\*.* MD T:\%MACHINE%\LOGS\5BLOG
IF NOT EXIST T:\%MACHINE%\LOGS\7BLOG\*.* MD T:\%MACHINE%\LOGS\7BLOG
IF NOT EXIST T:\%MACHINE%\LOGS\8BLOG\*.* MD T:\%MACHINE%\LOGS\8BLOG
IF NOT EXIST T:\%MACHINE%\LOGS\DSCLOG\*.* MD T:\%MACHINE%\LOGS\DSCLOG
IF NOT EXIST T:\%MACHINE%\LOGS\HVLOG\*.* MD T:\%MACHINE%\LOGS\HVLOG
IF NOT EXIST T:\%MACHINE%\LOGS\PWRLOG\*.* MD T:\%MACHINE%\LOGS\PWRLOG
IF NOT EXIST T:\%MACHINE%\LOGS\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG
IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG
ECHO Directories ready
PAUSE
ECHO.
ECHO CTONW Step 2: Uploading 5BLOG
IF EXIST C:\ATE\5BLOG\*.DAT ECHO Found files in C:\ATE\5BLOG
IF EXIST C:\ATE\5BLOG\*.DAT COPY C:\ATE\5BLOG\*.DAT T:\%MACHINE%\LOGS\5BLOG
IF NOT EXIST C:\ATE\5BLOG\*.DAT ECHO No files in C:\ATE\5BLOG
PAUSE
ECHO.
ECHO CTONW Step 3: Uploading 7BLOG
IF EXIST C:\ATE\7BLOG\*.DAT ECHO Found DAT files in C:\ATE\7BLOG
IF EXIST C:\ATE\7BLOG\*.DAT COPY C:\ATE\7BLOG\*.DAT T:\%MACHINE%\LOGS\7BLOG
IF EXIST C:\ATE\7BLOG\*.SHT ECHO Found SHT files in C:\ATE\7BLOG
IF EXIST C:\ATE\7BLOG\*.SHT COPY C:\ATE\7BLOG\*.SHT T:\%MACHINE%\LOGS\7BLOG
IF NOT EXIST C:\ATE\7BLOG\*.* ECHO No files in C:\ATE\7BLOG
PAUSE
ECHO.
ECHO CTONW Step 4: Uploading 8BLOG
IF EXIST C:\ATE\8BLOG\*.DAT ECHO Found files in C:\ATE\8BLOG
IF EXIST C:\ATE\8BLOG\*.DAT COPY C:\ATE\8BLOG\*.DAT T:\%MACHINE%\LOGS\8BLOG
IF NOT EXIST C:\ATE\8BLOG\*.DAT ECHO No files in C:\ATE\8BLOG
PAUSE
ECHO.
ECHO CTONW Step 5: Uploading DSCLOG
IF EXIST C:\ATE\DSCLOG\*.DAT ECHO Found files in C:\ATE\DSCLOG
IF EXIST C:\ATE\DSCLOG\*.DAT COPY C:\ATE\DSCLOG\*.DAT T:\%MACHINE%\LOGS\DSCLOG
IF NOT EXIST C:\ATE\DSCLOG\*.DAT ECHO No files in C:\ATE\DSCLOG
PAUSE
ECHO.
ECHO CTONW Step 6: Uploading HVLOG
IF EXIST C:\ATE\HVLOG\*.DAT ECHO Found files in C:\ATE\HVLOG
IF EXIST C:\ATE\HVLOG\*.DAT COPY C:\ATE\HVLOG\*.DAT T:\%MACHINE%\LOGS\HVLOG
IF NOT EXIST C:\ATE\HVLOG\*.DAT ECHO No files in C:\ATE\HVLOG
PAUSE
ECHO.
ECHO CTONW Step 7: Uploading PWRLOG
IF EXIST C:\ATE\PWRLOG\*.DAT ECHO Found files in C:\ATE\PWRLOG
IF EXIST C:\ATE\PWRLOG\*.DAT COPY C:\ATE\PWRLOG\*.DAT T:\%MACHINE%\LOGS\PWRLOG
IF NOT EXIST C:\ATE\PWRLOG\*.DAT ECHO No files in C:\ATE\PWRLOG
PAUSE
ECHO.
ECHO CTONW Step 8: Uploading SCTLOG
IF EXIST C:\ATE\SCTLOG\*.DAT ECHO Found files in C:\ATE\SCTLOG
IF EXIST C:\ATE\SCTLOG\*.DAT COPY C:\ATE\SCTLOG\*.DAT T:\%MACHINE%\LOGS\SCTLOG
IF NOT EXIST C:\ATE\SCTLOG\*.DAT ECHO No files in C:\ATE\SCTLOG
PAUSE
ECHO.
ECHO CTONW Step 9: Uploading VASLOG
IF EXIST C:\ATE\VASLOG\*.DAT ECHO Found files in C:\ATE\VASLOG
IF EXIST C:\ATE\VASLOG\*.DAT COPY C:\ATE\VASLOG\*.DAT T:\%MACHINE%\LOGS\VASLOG
IF NOT EXIST C:\ATE\VASLOG\*.DAT ECHO No files in C:\ATE\VASLOG
PAUSE
ECHO.
ECHO CTONW Step 10: Uploading Reports
IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports
IF EXIST C:\Reports\*.TXT ECHO Found TXT files in C:\Reports
IF EXIST C:\Reports\*.TXT COPY C:\Reports\*.TXT T:\%MACHINE%\Reports
IF NOT EXIST C:\Reports\*.TXT ECHO No TXT files in C:\Reports
PAUSE
ECHO.
ECHO ==============================================================
ECHO CTONW-DEBUG Complete
ECHO ==============================================================
GOTO END
:SKIP_ATE
ECHO.
ECHO CTONW: No C:\ATE directory found - skipping upload
PAUSE
GOTO END
:NO_MACHINE
ECHO.
ECHO CTONW ERROR: MACHINE variable not set
PAUSE
GOTO END
:NO_DRIVE
ECHO.
ECHO CTONW ERROR: T: drive not available
PAUSE
GOTO END
:NO_FOLDER
ECHO.
ECHO CTONW ERROR: T:\%MACHINE% folder not found
PAUSE
GOTO END
:END

View File

@@ -0,0 +1,133 @@
@ECHO OFF
REM NWTOC-DEBUG.BAT - Download with diagnostic pauses
REM Version: 1.0 - Debug version for recording
REM Last modified: 2026-01-21
ECHO.
ECHO ==============================================================
ECHO DEBUG: NWTOC - Network to Computer Download
ECHO ==============================================================
ECHO.
ECHO NWTOC Step 0: Verifying prerequisites
IF NOT EXIST T:\*.* GOTO NO_DRIVE
ECHO T: drive OK
IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON
ECHO T:\COMMON\ProdSW OK
ECHO.
PAUSE
ECHO.
ECHO NWTOC Step 1: Creating local directories
IF NOT EXIST C:\BAT\*.* MD C:\BAT
ECHO C:\BAT ready
IF NOT EXIST C:\ATE\*.* MD C:\ATE
ECHO C:\ATE ready
IF NOT EXIST C:\ATE\5BDATA\*.* MD C:\ATE\5BDATA
IF NOT EXIST C:\ATE\7BDATA\*.* MD C:\ATE\7BDATA
IF NOT EXIST C:\ATE\8BDATA\*.* MD C:\ATE\8BDATA
IF NOT EXIST C:\ATE\DSCDATA\*.* MD C:\ATE\DSCDATA
IF NOT EXIST C:\ATE\HVDATA\*.* MD C:\ATE\HVDATA
IF NOT EXIST C:\ATE\PWRDATA\*.* MD C:\ATE\PWRDATA
IF NOT EXIST C:\ATE\RMSDATA\*.* MD C:\ATE\RMSDATA
IF NOT EXIST C:\ATE\SCTDATA\*.* MD C:\ATE\SCTDATA
ECHO C:\ATE subfolders ready
IF NOT EXIST C:\NET\*.* MD C:\NET
ECHO C:\NET ready
PAUSE
ECHO.
ECHO NWTOC Step 2: Downloading batch files to C:\BAT
IF EXIST T:\COMMON\ProdSW\*.BAT ECHO Found BAT files in T:\COMMON\ProdSW
COPY T:\COMMON\ProdSW\*.BAT C:\BAT
PAUSE
ECHO.
ECHO NWTOC Step 3: Downloading 5BDATA
IF EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO Found files in T:\Ate\ProdSW\5BDATA
IF EXIST T:\Ate\ProdSW\5BDATA\*.* COPY T:\Ate\ProdSW\5BDATA\*.* C:\ATE\5BDATA
IF NOT EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO No files in T:\Ate\ProdSW\5BDATA
PAUSE
ECHO.
ECHO NWTOC Step 4: Downloading 7BDATA
IF EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO Found files in T:\Ate\ProdSW\7BDATA
IF EXIST T:\Ate\ProdSW\7BDATA\*.* COPY T:\Ate\ProdSW\7BDATA\*.* C:\ATE\7BDATA
IF NOT EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO No files in T:\Ate\ProdSW\7BDATA
PAUSE
ECHO.
ECHO NWTOC Step 5: Downloading 8BDATA
IF EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO Found files in T:\Ate\ProdSW\8BDATA
IF EXIST T:\Ate\ProdSW\8BDATA\*.* COPY T:\Ate\ProdSW\8BDATA\*.* C:\ATE\8BDATA
IF NOT EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO No files in T:\Ate\ProdSW\8BDATA
PAUSE
ECHO.
ECHO NWTOC Step 6: Downloading DSCDATA
IF EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO Found files in T:\Ate\ProdSW\DSCDATA
IF EXIST T:\Ate\ProdSW\DSCDATA\*.* COPY T:\Ate\ProdSW\DSCDATA\*.* C:\ATE\DSCDATA
IF NOT EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO No files in T:\Ate\ProdSW\DSCDATA
PAUSE
ECHO.
ECHO NWTOC Step 7: Downloading HVDATA
IF EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO Found files in T:\Ate\ProdSW\HVDATA
IF EXIST T:\Ate\ProdSW\HVDATA\*.* COPY T:\Ate\ProdSW\HVDATA\*.* C:\ATE\HVDATA
IF NOT EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO No files in T:\Ate\ProdSW\HVDATA
PAUSE
ECHO.
ECHO NWTOC Step 8: Downloading PWRDATA
IF EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO Found files in T:\Ate\ProdSW\PWRDATA
IF EXIST T:\Ate\ProdSW\PWRDATA\*.* COPY T:\Ate\ProdSW\PWRDATA\*.* C:\ATE\PWRDATA
IF NOT EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO No files in T:\Ate\ProdSW\PWRDATA
PAUSE
ECHO.
ECHO NWTOC Step 9: Downloading RMSDATA
IF EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO Found files in T:\Ate\ProdSW\RMSDATA
IF EXIST T:\Ate\ProdSW\RMSDATA\*.* COPY T:\Ate\ProdSW\RMSDATA\*.* C:\ATE\RMSDATA
IF NOT EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO No files in T:\Ate\ProdSW\RMSDATA
PAUSE
ECHO.
ECHO NWTOC Step 10: Downloading SCTDATA
IF EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO Found files in T:\Ate\ProdSW\SCTDATA
IF EXIST T:\Ate\ProdSW\SCTDATA\*.* COPY T:\Ate\ProdSW\SCTDATA\*.* C:\ATE\SCTDATA
IF NOT EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO No files in T:\Ate\ProdSW\SCTDATA
PAUSE
ECHO.
ECHO NWTOC Step 11: Checking for network client updates
IF NOT EXIST T:\COMMON\NET\*.* GOTO SKIP_NET
ECHO Found files in T:\COMMON\NET
COPY T:\COMMON\NET\*.* C:\NET
ECHO Network files copied
PAUSE
GOTO DONE
:SKIP_NET
ECHO No network updates in T:\COMMON\NET
PAUSE
:DONE
ECHO.
ECHO ==============================================================
ECHO NWTOC-DEBUG Complete
ECHO ==============================================================
GOTO END
:NO_DRIVE
ECHO.
ECHO NWTOC ERROR: T: drive not available
PAUSE
GOTO END
:NO_COMMON
ECHO.
ECHO NWTOC ERROR: T:\COMMON\ProdSW not found
PAUSE
GOTO END
:END