From caa04e59e85f671df7fadc0a7d70720af5ce3dce Mon Sep 17 00:00:00 2001 From: garcia_h Date: Mon, 2 Nov 2026 10:34:40 +0100 Subject: [PATCH] up --- .gitignore | 2 +- AGENTS.md | 8 +++++--- ECMC/README.md | 11 +++++++++++ FAT_Checklist.xlsx | Bin 14544 -> 9596 bytes README.md | 10 +++++++--- Report/AGENTS.md | 4 ++-- ...Stage_Characterization_Report_Template.tex | 10 +++++----- Report/Linear_Stage_FAT_Report_Template.tex | 10 +++++----- .../Linear_Stage_FAT_Report_Template.tex | 0 .../unused/examples/ECMC}/runCommands.txt | 0 .../unused/maintenance/fix_reverse.py | 0 .../2026-10-30}/workflow/appendices.json | 0 .../Linear_Stage_FAT_Report_Template.aux | 0 .../Linear_Stage_FAT_Report_Template.log | 0 .../Linear_Stage_FAT_Report_Template.pdf | Bin .../2026-10-30}/workflow/changes.json | 0 .../2026-10-30}/workflow/checkpoint.json | 0 .../workflow/evidence-register.json | 0 .../2026-10-30}/workflow/inventory.json | 0 .../2026-10-30}/workflow/qa.json | 0 .../renders/template-style/page-01.png | Bin .../renders/template-style/page-02.png | Bin 22 files changed, 36 insertions(+), 19 deletions(-) create mode 100644 ECMC/README.md rename Report/{ => unused/archive}/backup/Linear_Stage_FAT_Report_Template.tex (100%) rename {ECMC => Report/unused/examples/ECMC}/runCommands.txt (100%) rename fix_reverse.py => Report/unused/maintenance/fix_reverse.py (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/appendices.json (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.aux (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.log (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.pdf (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/changes.json (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/checkpoint.json (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/evidence-register.json (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/inventory.json (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/qa.json (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/renders/template-style/page-01.png (100%) rename Report/unused/{ => template-validation/2026-10-30}/workflow/renders/template-style/page-02.png (100%) diff --git a/.gitignore b/.gitignore index c132c8e..09d5774 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/Template-Kivel +/Report/unused/reference/Template-Kivel diff --git a/AGENTS.md b/AGENTS.md index 74feb45..9bc4117 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,12 +1,14 @@ # Linear-stage report project guidance -This repository holds source evidence and a project-specific FAT or characterization report. Before -report work, read `Report/AGENTS.md` completely. It defines the two templates, +This repository is the reusable baseline for future linear-stage FAT or +characterization projects. A derived project repository holds the source +evidence and its project-specific report. Before report work in a derived +project, read `Report/AGENTS.md` completely. It defines the two templates, evidence rules, blank checklists, image mapping, appendices and final QA. ## Boundaries and evidence -- During report generation, write only inside `Report/`. Treat `Measurements`, +- During report generation in a derived project, write only inside `Report/`. Treat `Measurements`, `Media`, `Motor`, `Encoder`, `ECMC` and other evidence folders as read-only. - Do not execute ECMC example commands or operate hardware to prepare a report. - Preserve original filenames, photographs, raw data and measurement PDFs. diff --git a/ECMC/README.md b/ECMC/README.md new file mode 100644 index 0000000..83fb507 --- /dev/null +++ b/ECMC/README.md @@ -0,0 +1,11 @@ +# ECMC evidence + +Use this folder for project-specific ECMC configuration, controller settings, +revision records, and relevant logs. Preserve exact filenames and distinguish +configured or commanded values from measured stage behavior. + +Command examples and configuration files are evidence only during report +preparation. Do not execute them to generate a report or infer that hardware +behavior has been verified. + +The report instructions are in [`../Report/AGENTS.md`](../Report/AGENTS.md). diff --git a/FAT_Checklist.xlsx b/FAT_Checklist.xlsx index 3d5540ce323477fb1d92c6b9971b52e273fe8204..ca566e27eb51544d61dc722fe1acf489df97b247 100644 GIT binary patch literal 9596 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 diff --git a/README.md b/README.md index 70a2649..e8928c8 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This repository is a starting point for preparing a project-specific factory acc - [`Media/`](Media/) — the six report images, named exactly `I1` through `I6` with `.jpg`, `.jpeg`, `.png`, or `.pdf` extensions. - [`Motor/`](Motor/) — motor or actuator identification and supporting project evidence. - [`Encoder/`](Encoder/) — encoder identification and supporting project evidence. -- [`ECMC/`](ECMC/) — project-specific ECMC configuration and notes, if applicable. `runCommands.txt` contains example commands and host paths; verify and adapt them before use. +- [`ECMC/`](ECMC/) — project-specific ECMC configuration and notes, if applicable. Treat supplied configuration and command records as evidence; do not execute them during report preparation. ## Start a new FAT repository @@ -19,8 +19,8 @@ This repository is a starting point for preparing a project-specific factory acc 4. Add the measurement and analysis PDFs to `Measurements/`. Keep original evidence files intact. 5. Read [`Report/AGENTS.md`](Report/AGENTS.md) before creating or updating a report. It defines the evidence requirements, template-selection rules, compilation, and page-by-page visual validation workflow. 6. Select `FAT` or `Characterization` in the workbook. The agent then uses `Linear_Stage_FAT_Report_Template.tex` or `Linear_Stage_Characterization_Report_Template.tex` directly; the templates contain no report-type switch. -7. Complete [`FAT_Checklist.xlsx`](FAT_Checklist.xlsx) during the test. Select the report type on `Read Me`, preserve item IDs and wording, select at most one Yes/No response per item, and add factual remarks or evidence references where useful. Confirm or edit the project axis convention in the same sheet. Provide the saved workbook for report update. -8. The agent transfers user-entered responses, remarks, report type, and coordinate convention into the project-specific report, then validates it according to `Report/AGENTS.md`. Blank responses remain blank and are not inferred. +7. Complete [`FAT_Checklist.xlsx`](FAT_Checklist.xlsx) during the test. On `Read Me`, select the report type, enter the exact stage identifier as text (for example `0001`), and confirm or edit the project axis convention. Preserve checklist item IDs and wording, select at most one Yes/No response per item, and add factual remarks or evidence references where useful. Provide the saved workbook for report update. +8. The agent transfers user-entered responses, remarks, report type, stage identifier, and coordinate convention into the project-specific report, then validates it according to `Report/AGENTS.md`. Blank responses remain blank and are not inferred. The templates are not evidence that a particular stage has been tested or accepted. FAT dispositions require applicable acceptance criteria and traceable results, calibration, and uncertainty evidence. Characterization reports present test scope, methods, results, uncertainty, and observations without acceptance criteria or a Conclusions section. @@ -40,3 +40,7 @@ A working draft with missing evidence is not an issued report or an acceptance. The helper workflow uses Python 3.10+, Poppler tools and the PC's installed MiKTeX `pdflatex` compiler. The report can also be prepared without the skill by following `Report/AGENTS.md` directly. + +Superseded templates, historical template-validation artifacts, maintenance +scripts, and source-layout references are retained under `Report/unused/` and +are not authoritative report inputs. diff --git a/Report/AGENTS.md b/Report/AGENTS.md index b63fdc4..3fe2c45 100644 --- a/Report/AGENTS.md +++ b/Report/AGENTS.md @@ -41,7 +41,7 @@ When compiling LaTeX documents on Windows: 1. Before evaluating evidence, read the `Report Type` selector in `FAT_Checklist.xlsx`. If it unambiguously states FAT or Characterization, select the corresponding authoritative template without asking the user again. Ask only when the selector is missing, invalid, or conflicts with explicit user direction. 2. Confirm that the six required report images are present in `../Media` with the exact basenames `I1` through `I6` and one supported extension: `.jpg`, `.jpeg`, `.png`, or `.pdf`. -3. Confirm the exact stage, encoder, motor or actuator, drive, encoder interface, controller, firmware or revision where relevant, measurement system, calibration status, and test dates. If no exact stage model is available, omit or leave the model value blank; do not guess it and do not insert a placeholder. +3. Confirm the exact stage identifier from the workbook, stage model, encoder, motor or actuator, drive, encoder interface, controller, firmware or revision where relevant, measurement system, calibration status, and test dates. Preserve leading zeros in the stage identifier. If no exact stage model or identifier is available, omit or leave the corresponding value blank; do not guess it and do not insert a placeholder. 4. For a FAT, extract the applicable acceptance criteria before evaluating results. For characterization, describe the test scope and report measured results and relevant uncertainty without adding acceptance criteria or defined pass limits. 5. Separate measured results, calculated values, manufacturer specifications, assumptions, and open points. 6. Confirm which tests apply. Users complete the separate root `FAT_Checklist.xlsx` during the test. Do not mark checklist fields `N/A` unless the checklist explicitly offers that response; explain applicability in report narrative when needed. @@ -56,7 +56,7 @@ When compiling LaTeX documents on Windows: - Distinguish command resolution, encoder resolution, minimum incremental motion, repeatability, accuracy, stability, and measurement uncertainty. - State test direction, orientation, payload, travel, velocity, acceleration, settling criterion, cycle count, point count, sampling conditions, and environmental conditions when applicable. - Keep the five-column checklist format: `Item | Checklist Item | Yes | No | Remarks`. -- The `Checklist` sheet in the root `FAT_Checklist.xlsx` must mirror the report's five checklist sections, item IDs, item wording, column names, and column order exactly. The workbook's separate `Read Me` sheet contains the report-type selector and editable project axis convention; those fields do not add or alter checklist rows. +- The `Checklist` sheet in the root `FAT_Checklist.xlsx` must mirror the report's five checklist sections, item IDs, item wording, column names, and column order exactly. The workbook's separate `Read Me` sheet contains the report-type selector, stage identifier, and editable project axis convention; those fields do not add or alter checklist rows. Transfer the stage identifier as text so leading zeros are preserved. - Keep the report checklist blank in the baseline template. For a project-specific report, transfer the user's explicit Yes/No selections and remarks from the completed root `FAT_Checklist.xlsx` by matching the stable item IDs. Do not infer, change, or complete a blank spreadsheet response from other evidence. If both Yes and No are selected for one item, or the workbook is missing or ambiguous, leave that report item blank and record the issue for resolution. - Preserve the five-column table. A selected Yes or No may be rendered as a checkmark in only the selected response column; leave the other response column blank. Transfer remarks faithfully and retain any source references supplied by the user. - Size the `Checklist Item` column consistently to the longest checklist sentence; let `Remarks` fill the remaining width. diff --git a/Report/Linear_Stage_Characterization_Report_Template.tex b/Report/Linear_Stage_Characterization_Report_Template.tex index dab5cd9..2f1e015 100644 --- a/Report/Linear_Stage_Characterization_Report_Template.tex +++ b/Report/Linear_Stage_Characterization_Report_Template.tex @@ -40,6 +40,7 @@ \newcommand{\TBD}{\textbf{TBD}} \newcommand{\StageModel}{\TBD} +\newcommand{\StageIdentifier}{\TBD} \newcommand{\EncoderModel}{\TBD} \newcommand{\MotorModel}{\TBD} \newcommand{\DriveModel}{\TBD} @@ -126,14 +127,11 @@ \fbox{\parbox[c][#1][c]{0.92\linewidth}{\centering Required image not found\\\path{#2.[jpg|jpeg|png|pdf]}}}}}}}} % Keep the PSI identity with the report so the controlled cover does not depend -% on a separate Template-Kivel checkout. The old path remains a compatibility -% fallback for existing projects that have not yet copied the report asset. +% on a separate source-template checkout. \newcommand{\PSILogo}{% \IfFileExists{assets/PSI_Logo.png}{% \includegraphics[width=32mm,height=11mm,keepaspectratio]{assets/PSI_Logo.png}}{% - \IfFileExists{../Template-Kivel/Figures/PSI-Logo_narrow.pdf}{% - \includegraphics[width=32mm,height=11mm,keepaspectratio]{../Template-Kivel/Figures/PSI-Logo_narrow.pdf}}{% - \makebox(30,8)[l]{PSI}}}} + \makebox(30,8)[l]{PSI}}} \newlength{\checklistitemwidth} \settowidth{\checklistitemwidth}{\small Measurement system calibrated} @@ -210,6 +208,7 @@ \begin{tabularx}{\linewidth}{|l|X|} \hline \textbf{Test type} & \TestType \\ \hline +\textbf{Stage identifier} & \StageIdentifier \\ \hline \textbf{Encoder} & \EncoderModel \\ \hline \textbf{Motor} & \MotorModel \\ \hline \textbf{Drive} & \DriveModel \\ \hline @@ -351,6 +350,7 @@ Positive rotational direction & Right-hand rule \\ \hline \hline Component & Verified specification \\ \hline Stage & \StageModel \\ +Stage identifier & \StageIdentifier \\ Travel & \TravelRange \\ Encoder & \EncoderModel \\ Encoder interface & \EncoderInterface \\ diff --git a/Report/Linear_Stage_FAT_Report_Template.tex b/Report/Linear_Stage_FAT_Report_Template.tex index 5f99f4d..5eee958 100644 --- a/Report/Linear_Stage_FAT_Report_Template.tex +++ b/Report/Linear_Stage_FAT_Report_Template.tex @@ -40,6 +40,7 @@ \newcommand{\TBD}{\textbf{TBD}} \newcommand{\StageModel}{\TBD} +\newcommand{\StageIdentifier}{\TBD} \newcommand{\EncoderModel}{\TBD} \newcommand{\MotorModel}{\TBD} \newcommand{\DriveModel}{\TBD} @@ -133,14 +134,11 @@ \fbox{\parbox[c][#1][c]{0.92\linewidth}{\centering Required image not found\\\path{#2.[jpg|jpeg|png|pdf]}}}}}}}} % Keep the PSI identity with the report so the controlled cover does not depend -% on a separate Template-Kivel checkout. The old path remains a compatibility -% fallback for existing projects that have not yet copied the report asset. +% on a separate source-template checkout. \newcommand{\PSILogo}{% \IfFileExists{assets/PSI_Logo.png}{% \includegraphics[width=32mm,height=11mm,keepaspectratio]{assets/PSI_Logo.png}}{% - \IfFileExists{../Template-Kivel/Figures/PSI-Logo_narrow.pdf}{% - \includegraphics[width=32mm,height=11mm,keepaspectratio]{../Template-Kivel/Figures/PSI-Logo_narrow.pdf}}{% - \makebox(30,8)[l]{PSI}}}} + \makebox(30,8)[l]{PSI}}} \newlength{\checklistitemwidth} \settowidth{\checklistitemwidth}{\small Measurement system calibrated} @@ -217,6 +215,7 @@ \begin{tabularx}{\linewidth}{|l|X|} \hline \textbf{Test type} & \TestType \\ \hline +\textbf{Stage identifier} & \StageIdentifier \\ \hline \textbf{Encoder} & \EncoderModel \\ \hline \textbf{Motor} & \MotorModel \\ \hline \textbf{Drive} & \DriveModel \\ \hline @@ -358,6 +357,7 @@ Positive rotational direction & Right-hand rule \\ \hline \hline Component & Verified specification \\ \hline Stage & \StageModel \\ +Stage identifier & \StageIdentifier \\ Travel & \TravelRange \\ Encoder & \EncoderModel \\ Encoder interface & \EncoderInterface \\ diff --git a/Report/backup/Linear_Stage_FAT_Report_Template.tex b/Report/unused/archive/backup/Linear_Stage_FAT_Report_Template.tex similarity index 100% rename from Report/backup/Linear_Stage_FAT_Report_Template.tex rename to Report/unused/archive/backup/Linear_Stage_FAT_Report_Template.tex diff --git a/ECMC/runCommands.txt b/Report/unused/examples/ECMC/runCommands.txt similarity index 100% rename from ECMC/runCommands.txt rename to Report/unused/examples/ECMC/runCommands.txt diff --git a/fix_reverse.py b/Report/unused/maintenance/fix_reverse.py similarity index 100% rename from fix_reverse.py rename to Report/unused/maintenance/fix_reverse.py diff --git a/Report/unused/workflow/appendices.json b/Report/unused/template-validation/2026-10-30/workflow/appendices.json similarity index 100% rename from Report/unused/workflow/appendices.json rename to Report/unused/template-validation/2026-10-30/workflow/appendices.json diff --git a/Report/unused/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.aux b/Report/unused/template-validation/2026-10-30/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.aux similarity index 100% rename from Report/unused/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.aux rename to Report/unused/template-validation/2026-10-30/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.aux diff --git a/Report/unused/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.log b/Report/unused/template-validation/2026-10-30/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.log similarity index 100% rename from Report/unused/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.log rename to Report/unused/template-validation/2026-10-30/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.log diff --git a/Report/unused/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.pdf b/Report/unused/template-validation/2026-10-30/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.pdf similarity index 100% rename from Report/unused/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.pdf rename to Report/unused/template-validation/2026-10-30/workflow/builds/template-style/Linear_Stage_FAT_Report_Template.pdf diff --git a/Report/unused/workflow/changes.json b/Report/unused/template-validation/2026-10-30/workflow/changes.json similarity index 100% rename from Report/unused/workflow/changes.json rename to Report/unused/template-validation/2026-10-30/workflow/changes.json diff --git a/Report/unused/workflow/checkpoint.json b/Report/unused/template-validation/2026-10-30/workflow/checkpoint.json similarity index 100% rename from Report/unused/workflow/checkpoint.json rename to Report/unused/template-validation/2026-10-30/workflow/checkpoint.json diff --git a/Report/unused/workflow/evidence-register.json b/Report/unused/template-validation/2026-10-30/workflow/evidence-register.json similarity index 100% rename from Report/unused/workflow/evidence-register.json rename to Report/unused/template-validation/2026-10-30/workflow/evidence-register.json diff --git a/Report/unused/workflow/inventory.json b/Report/unused/template-validation/2026-10-30/workflow/inventory.json similarity index 100% rename from Report/unused/workflow/inventory.json rename to Report/unused/template-validation/2026-10-30/workflow/inventory.json diff --git a/Report/unused/workflow/qa.json b/Report/unused/template-validation/2026-10-30/workflow/qa.json similarity index 100% rename from Report/unused/workflow/qa.json rename to Report/unused/template-validation/2026-10-30/workflow/qa.json diff --git a/Report/unused/workflow/renders/template-style/page-01.png b/Report/unused/template-validation/2026-10-30/workflow/renders/template-style/page-01.png similarity index 100% rename from Report/unused/workflow/renders/template-style/page-01.png rename to Report/unused/template-validation/2026-10-30/workflow/renders/template-style/page-01.png diff --git a/Report/unused/workflow/renders/template-style/page-02.png b/Report/unused/template-validation/2026-10-30/workflow/renders/template-style/page-02.png similarity index 100% rename from Report/unused/workflow/renders/template-style/page-02.png rename to Report/unused/template-validation/2026-10-30/workflow/renders/template-style/page-02.png