# Progress Status of each manual and each practiced task. Update this file as work proceeds. **Manual status:** not started · summarized · in practice · done **Task status:** not practiced · practiced, awaiting confirmation · passed · not completed (see notes) **Sample column:** whether the task has been re-tested on **CI-Eng-Sample**: n/a (needs no project data) · pending (tested on AID only) · added (sample content built) · passed A task is **done** only when Status is *passed* and Sample is *passed* or *n/a*. Then AID is no longer needed to repeat it. ## Test system Practice notes refer to the repo author's **development test system**, not to anything shipped with this repo: - **R1.03 work (phases 0–13):** CI Server R1.03.00, unlicensed, on the development machine. - **R1.05 work (from 2026-10-08):** CI Server R1.05.00, licensed, on a remote test server reached by ssh. The server is **shared with other projects**: checks there are read-only unless the user approves a change; no CI Server restarts; never touch other projects' records or live plant values; check `query user` and recent audit-trail writes before a test that changes anything; remove scratch files afterwards. Loading `CI-Eng-Sample` there needs the user's approval first. - **AID** (e.g. `AID.WRPS.SIM.INFLOW`) is the author's own test project on that machine. It is not in this repo and other systems will not have it. Item names here are evidence of what was tested, not names to use elsewhere. - Communication stations seen there (`WRPS_PLC`, `MODSIM_STATION`, `STN_MQTT`) belong to AID. Tasks may be practiced first on AID, but everything they need is then added to the sample project **CI-Eng-Sample** (`examples/CI-Eng-Sample/`) and re-tested there, so that in the end AID is not needed. ## R1.05 re-check `main` moved to R1.05 on 2026-10-08; the R1.03 state is frozen on branch `r1.03` (tag `r1.03-final`). All the status below was reached on **R1.03**. Each skill is re-checked on R1.05 in the order of `version-differences.md` §3. Then its front matter gets `version: R1.05` and its row here is updated. **R1.05 status:** not started · manual diff read · re-checked (read-only) · re-tested · done Two labels for checks Claude cannot do (details and steps in [`r105-verification.md`](r105-verification.md)): **not tested** = the function is not available on the R1.05 test server (reason given); **awaiting user verification** = Claude prepared the step and the user runs it on the server or in the GUI and sends the output or a screenshot. | Skill / area | Manual changes after R1.03 | R1.05 status | Notes | |---|---|---|---| | `system-check` | — | re-checked (read-only) | Version, paths, service, node, time on the R1.05 test server 2026-10-08. Start/stop not repeated (shared server). | | `installation-security` | C10, C30 (large: IT security 3.0, LAPS, upgrade merge `jupgutl`, PRM) | re-checked (read-only) | 2026-10-08: skill, summaries and `tools/setup_check.ps1` updated to R1.05. Setup check run by hand on the R1.05 test server. Script run there too (12 OK, 5 CHECK, 20 DIFF; firewall check fixed). **Not tested:** IT security 2.0/3.0, LAPS, Vnet/IP, upgrade merge, PRM (not available there). ISS-086–090. | | `data-access` | L45, E20 (large: REST API, OPC UA methods, information model mapper, certificate expiry, extended functions off by default), L50 dataset rename | re-checked (read-only) | 2026-10-08: skill and summaries updated, L45 section numbers remapped. Setup files, datasets, ports and certificates checked; Sample qli files unchanged. New form fields confirmed in the installed form definitions (V3); OPC UA loopback re-tested on R1.05 with the reduced sample load (V4, 2026-10-08), certificate exchange done by the user. **Not tested:** OPC A&E direct alarms, PubSub, imported information model. ISS-080–085. | | `equipment` | L41 (IEC 61850, item status, App. 1); IEC 104/61850 drivers moved to `eqt`/`eta` | re-checked (read-only) | 2026-10-08: Modbus datasets, setup files and tools identical to R1.03; EQT family, IEC 61850 report control blocks and upgrade steps added. Sample qli files unchanged. `eqpdbg` main info run on R1.05 (V1); Modbus loopback re-tested on R1.05 with the reduced sample load (V4, 2026-10-08). **Not tested:** IEC 104 / IEC 61850 and the EQT tools (no device). ISS-076–079. | | `pytools` (new) | P40 new (R1.04; 2nd ed. layout only) | written (from docs) | 2026-10-09: SKILL.md + 5 tasks (setup and first script, items and history, filter/index, events, modify) and the P40 summary. Verified read-only on R1.05: `dss.pyd` 3.6.1, DSSSDAPY, `dss.sup` routing, *Python Interface* login lines. **Not tested:** every function (no Python on the R1.05 test server, ISS-178). **Awaiting user verification:** V17. ISS-174–181. | | `graphics` | C50, C60, R30; unlisted: Generic Functions rename, enterprise on the HTML display, R30 §4.10 restrictions | re-checked (from docs) | 2026-10-08: full diff, skill and summaries moved to R1.05. No display or layout touched on the shared server. **Awaiting user verification:** installed-file comparison, `jwuiutl --help`, web trend pen limit (V5; ISS-092, 094, 096, 097). **Not tested:** enterprise HTML display, RDP Connect, Password Check, custom acknowledgement (ISS-093, 098, 099). | | `history-management` | C40 §4.2 (REST API, pyTOOLS; C API dropped); L20, L35 wording only | re-checked (from docs and file hashes) | 2026-10-08: history setup files and dataset definitions identical to R1.03; REST/pyTOOLS cross-linked to `data-access` / P40. **Awaiting user verification:** `hisdbg` read-only options and the changed start scripts (V6; ISS-100, 101). **Not tested:** storage groups, aggregation, `ITEM_HISTORY` reads (restart needed, ISS-103); archive. Note: `tlsdnetapi.dll` (.NET API) is no longer in `tls\exe` on R1.05. | | `portal-setup` | R10 §3.1 ISO, §3.3; R20 punctuation only | re-checked (read-only) | 2026-10-08: setup-file reads, web ports 8080/8443, Remote Connect page, security headers and CSP verified on R1.05; new `jwuiisg.sup` keywords and `dur.sup` gateway core documented (ISS-108–111). **Awaiting user verification:** Setup File Editor GUI (V7; ISS-112, 113). **Not tested:** separate CI Portal node, gateway core, setup-file changes (shared server), CSP effect on displays. | | `system-management` | J10 §2.9.1, new §3.2.6 gateway (unlisted), §5.1; L30 wording; L50 dataset rename; P30 none | re-checked (read-only) | 2026-10-08: exports, filters, `-f`, `dsschk -e -v`, `durwfp`, `umhman`, `itmval -g`, `itmdbg`, DSS compiler check re-tested on R1.05; `dssqld -i/-r`, `itmval -p` from the sample test (V4). ISS-116–123. **Awaiting user verification:** `ithloahis` (needs the full sample with history), start-script hooks (V8; ISS-121). **Not tested:** monitoring processes, gateway core. | | `item-engineering` | C10 §2.2; unlisted: C10 §1.1 Tools menu, string length 200 bytes (C10, G10); G10 §9.2, ch. 14–15 | re-checked (read-only) | 2026-10-08: item/section/sub-item definitions and `itm.sup` identical to R1.03; `ITEM_VAL` has 3 new fields (ISS-126); sample items and sub-items loaded and worked on R1.05 (V4). Blocking and string writes re-tested on R1.05 (V9, 2026-10-09). **Not tested:** G10 ch. 14–15 (no CENTUM VP, ISS-127). | | `alarm-management` | none listed; unlisted E30 KPI labels and corrected chart (ISS-132) | re-checked (read-only) | 2026-10-09: setup files, templates and definitions identical to R1.03 except the start-script hooks, `alnsms.sup` defaults (ISS-134) and internal `ALARM_ATTRIBUTE_TEMP_DF` (ISS-133); `almdbg`/`alhdbg` read-only, ALH 52 weeks default (ISS-135); load rule for the shared server (ISS-136). Alarm raise/ack/delay/repeat and INFO event re-tested on R1.05 (V10, 2026-10-09). **Not tested:** external alarms, notification, shelving, ASPA GUI, custom acknowledgement. | | `audit-trail` | none (full diff clean) | re-checked (read-only) | 2026-10-09: processes, ADT group, 499 classifiers (36 new, ISS-141), definitions, setup files and scripts compared; RQL read of `AUDIT_TRAIL`; `APPROVAL_REASON`/`APPROVER` present and filled (ISS-140); hooks (ISS-142). **Awaiting user verification:** ADTLOG with the new units, selection on approval fields, custom acknowledgement record (V11). **Not tested:** PENDING (no Vnet), classifier STORAGE change. | | `authorization` | none (J40 contact info only; C10 §2 `CI_NO_LOGIN`) | re-checked (read-only) | 2026-10-09: `dssana.sup` all tabs, USER/AUTH/SCHEME/API_KEYS definitions, 203 actions (ISS-146), 250 action fields and upgrade tool (ISS-147), new login interfaces (ISS-148), API keys (ISS-151), AD/SSO files (ISS-153). **Awaiting user verification:** `MAX_UI_PER_CLIENT` (V16), *Add API Key* GUI, users/groups and ISS-072/073 on a non-shared system (ISS-152). **Not tested:** AD, SPNEGO, upgrade merge (ISS-149). | | `class-object-engineering` | none listed; unlisted P11 §10.2 `createSection` fix (ISS-154) | re-checked (read-only) | 2026-10-09: definitions, `opc.sup`, `prc.sup`, templates and public Java API identical; Java 11.0.28, `tls\exe\lib`, hooks (ISS-156); OPC UA method system classes preinstalled (ISS-155); undocumented Java methods (ISS-159); `opcdbg` database check and OPCEXE1 info OK. **Awaiting user verification:** `OPCJEXE` statistics (V14). Change/reset class and attribute change re-tested on R1.05 (V15, 2026-10-09; ISS-028 still holds). Sample classes `CIENG_INCR`, `CIENG_TANK` (traditional) and `CIENG_JFLOW` (Java) loaded and ran correctly on R1.05 (V4, 2026-10-08). | | `high-availability` | none (J20 contact info only) | re-checked (read-only) | 2026-10-09: HAC files compared (ISS-161), activate/deactivate hooks (ISS-160), A50 PubSub precaution (ISS-162); `hac-checks` read-only on R1.05 (single server). **Not tested:** redundant pair, switchover, mirror, history merge, recovery, journaling (no licensed pair). | | `reporting` | none listed (E10 one sentence removed, ISS-166) | re-checked (read-only) | 2026-10-09: report definitions, setup and `.rpt` files identical; hooks (ISS-121); 28 system reports, 6 factory destinations; interactive RQL re-run, new `ITEM_VAL` fields (ISS-126, 167); `API_KEYS_DF` not queried (ISS-168). Generate, print, item trigger, `rptstp`, SPOOL re-tested on R1.05 (V12, 2026-10-09). **Not tested:** Excel Add-in (no Office), report component, hardcopy printers. | | `examples/CI-Eng-Sample` | — | re-tested | Reduced load (no history group, user or layouts) loaded, tested and removed on the shared R1.05 server 2026-10-08 (V4); scripts in `shared\`. Full load not tested on R1.05. | ## Manuals, in working order | Phase | Manual | Title | Status | |---|---|---|---| | 0 | IM 36K01A50 | Release Information | summarized ([notes](manuals/IM36K01A50-01EN.md)) | | 1 | IM 36K10J10 | System Design/Management | done except migration (not practiced; needs a second system) and debugging tools; skill `system-management` ([notes](manuals/IM36K10J10-01EN.md)) | | 2 | IM 36K01C10 | CI Server Setup | summarized ([notes](manuals/IM36K01C10-01EN.md)); skill `installation-security` | | 2 | IM 36K01C30 | Security Guide | summarized ([notes](manuals/IM36K01C30-01EN.md)); skill `installation-security` | | 3 | IM 36K10G10 | Tutorial | summarized ([notes](manuals/IM36K10G10-01EN.md)); command-line equivalents practiced on CI-Eng-Sample | | 4 | IM 36K10R10 | CI Portal Setup | done except separate CI Portal node (needs a second node); skill `portal-setup` ([notes](manuals/IM36K10R10-01EN.md)) | | 4 | IM 36K10R20 | Setup File Editor | done; Templates tab and Undo Field not explored ([notes](manuals/IM36K10R20-01EN.md), ISS-016) | | 5 | IM 36K10C10 | Engineering Module - I/O Processes | summarized ([notes](manuals/IM36K10C10-01EN.md)); default datasets checked read-only | | 5 | IM 36K10L40 | EQUIPMENT Service - Utilities | summarized ([notes](manuals/IM36K10L40-01EN.md)); `eqpdbg` main info run read-only | | 5 | IM 36K10L41 | EQUIPMENT Service - Configuration | summarized ([notes](manuals/IM36K10L41-01EN.md)); general + Modbus in detail, other drivers as a table | | 5 | IM 36K10L35 | ITEM Service - ITH | summarized ([notes](manuals/IM36K10L35-01EN.md)); installed processes and setup files checked | | 5 | IM 36K10L36 | ITEM Service - ITM | summarized ([notes](manuals/IM36K10L36-01EN.md)); `itmdbg` statistics run; `itmval -f` crashes (ISS-022) | | 6 | IM 36K10L10 | Class/Object Engineering | done; `opc.sup` read-only, `opcdbg` read-only actions and Reset class practiced ([notes](manuals/IM36K10L10-01EN.md)); skill `class-object-engineering` | | 6 | IM 36K10P10 | Class Description Language - Traditional | done for prompts, signals, created items, transitional operators, PRINT/ERROR; timers, alarms, containment, STEP, DSS routines, AGA from docs ([notes](manuals/IM36K10P10-01EN.md)) | | 6 | IM 36K10P11 | Class Description Language - Java | done for a basic class (attach/create items, signal trigger, systemMessage); timers, containment, inheritance from docs ([notes](manuals/IM36K10P11-01EN.md)) | | 7 | IM 36K10L55 | Exchange Tool Engineering | summarized, from docs only (needs CENTUM VP / RGS or Prodigy) ([notes](manuals/IM36K10L55-01EN.md)) | | 7 | IM 36K10L30 | BUS Service | done for single-node checks; MDUR, encryption, logical addresses, printer devices from docs ([notes](manuals/IM36K10L30-01EN.md)); task `system-management/bus-utilities.md` | | 7 | IM 36K10L45 | Data Access Engineering | done for OPC UA client/server (loopback); OPC DA/A&E from docs (DA loopback not allowed); ODBC not running (ISS-008) ([notes](manuals/IM36K10L45-01EN.md)); skill `data-access` | | 7 | IM 36K10E20 | OPC Interface | summarized; OPC UA point form compared with quick load by the user ([notes](manuals/IM36K10E20-01EN.md)) | | 8 | IM 36K10L15 | Alarm Management Engineering | done for item-based alarms (ack type, AOI, ASA, events, acknowledge, delay/repeat, `almdbg`/`alhdbg`); first-out, collections, notifications, shelving, acoustic/count destinations from docs ([notes](manuals/IM36K10L15-01EN.md)); skill `alarm-management` | | 8 | IM 36K10C20 | Engineering Module - Alarms | done by quick load for item alarm fields, ack types, AOI, ASA; forms, overviews, shelving, link display, notifications, external/Vnet alarms from docs ([notes](manuals/IM36K10C20-01EN.md)) | | 8 | IM 36K10E30 | Alarm System Performance Analysis | summarized, from docs (ASPA GUI not practiced; launcher and fetch limits checked) ([notes](manuals/IM36K10E30-01EN.md)) | | 9 | IM 36K10L20 | History Management Engineering | done for `hisdbg` checks, files and rollover; archive and repair utilities from docs ([notes](manuals/IM36K10L20-01EN.md)); skill `history-management` | | 9 | IM 36K10C40 | Engineering Module - Historical | done by quick load for Event/Item, Scan/Time and Aggregation groups (aggregation needs a higher-priority source group, ISS-040); archive from docs ([notes](manuals/IM36K10C40-01EN.md)) | | 10 | IM 36K10R30 | Graphic Display Setup | done for HTML display, folders and layouts (phase 10b: desktop and web); dataset forms, form language, dual screen from docs ([notes](manuals/IM36K10R30-01EN.md)); skill `graphics` | | 10 | IM 36K10C50 | Edit Module | done for one display (built by the user) and `jwuiutl` validate/search/export; other components, symbols, actions from docs ([notes](manuals/IM36K10C50-01EN.md)) | | 10 | IM 36K10C60 | Advanced Operating Graphics | summarized, from docs (AOG displays checked read-only) ([notes](manuals/IM36K10C60-01EN.md)) | | 11 | IM 36K10L50 | Data Set Service Engineering | done for DSS processes, `dss.sup`, quick load directives (macro, include, memo from file), `dssutl` read; `dssana.sup` covered by skill `authorization` ([notes](manuals/IM36K10L50-01EN.md)); task `system-management/dss-tools.md` | | 11 | IM 36K10P30 | Data Set Service Language | summarized; compiler used as syntax check on a copy (no dictionary change) ([notes](manuals/IM36K10P30-01EN.md)) | | 11 | IM 36K10P20 | Report Generation Language | done for queries, layout, cursors/loops, functions, SPOOL/CSV, HTML; SEND/RECEIVE, BREAK, INCLUDE, FLAG PAGE from docs ([notes](manuals/IM36K10P20-01EN.md)); skill `reporting` | | 11 | IM 36K10R40 | Report Server Setup | done for processes, set-up files, interactive generator, `rptstp`; extra generators, separate RPI servers, custom destinations from docs ([notes](manuals/IM36K10R40-01EN.md)) | | 11 | IM 36K10C30 | Engineering Module - Reporting | done by quick load for report definitions (ad hoc + parameters, schedule, item trigger, HTML, logbook), generated reports and a file device/destination; Engineering Module forms, generate and view checked by the user; report component in displays and hardcopy printers from docs ([notes](manuals/IM36K10C30-01EN.md)) | | 11 | IM 36K10E10 | Excel Add-in | summarized, from docs (Excel not installed on the test system) ([notes](manuals/IM36K10E10-01EN.md)) | | 12 | IM 36K10L25 | Audit Trail Management | done for processes, classifiers, `AUDIT_TRAIL` reading/export, audit report, selection groups, `ADTLOG` (default and filtered); distributor, extra collectors, classifier extension in C and operator-side `ITEM.*` events from docs ([notes](manuals/IM36K10L25-01EN.md)); skill `audit-trail` | | 13 | IM 36K10J20 | High Availability Computing | summarized from docs; installed `hac.sup`, scripts, executables and HMI properties checked read-only (single unlicensed server, HAC not licensed) ([notes](manuals/IM36K10J20-01EN.md)); skill `high-availability` | | 13 | IM 36K10J40 | Active Directory Integration | summarized from docs; installed `dssana.sup` AD/SSO/login settings, `USER_DF` fields and `auth\WEB-INF` templates checked read-only (no domain) ([notes](manuals/IM36K10J40-01EN.md)); skill `authorization` | | — | IM 36K01A10 / A20 / A30 | Read Me First, License, OSS terms | skipped (no engineering content) | Order change after reading IM 36K10J10: its migration procedure (§5.6) shows the dependency chain *communication lines/stations/points → installations/units → items (template items first) → storage groups → classes → objects → reports*. So acquisition and items (phase 5) now come before classes and objects (phase 6), and the other interfaces follow as phase 7. ## Tasks | Manual | Task | Status | Sample | Notes | |---|---|---|---|---| | J10 | System check: version, paths, running state, time sync ([skill](../.claude/skills/system-check/SKILL.md)) | passed | n/a | Started CI Service elevated; live version R1.03.00; node UNLICENCED (expected). | | J10 | Time sync check (`w32tm`); DURUTL configuration (`durutl.sup`) | passed (check); configuration not practiced | n/a | `w32tm` check verified in system-check. `durutl.sup` has no active settings (single node, not a time master); configuring DURUTL needs a second node, so not practiced. | | J10 | Export a dataset with `dssqld` ([task](../.claude/skills/system-management/tasks/export-dataset.md)) | passed | n/a | Filtered export (`@SELECT`) passed ([ISS-003](issues.md), closed). | | J10 | Import and delete dataset records with `dssqld` (`-i`, `-r`) ([task](../.claude/skills/system-management/tasks/load-remove-records.md)) | passed | passed | Built CI-Eng-Sample: 3 sections + 4 items imported, removed and re-imported with 0 errors. 2026-09-30 later: `-m` (update, used to set a storage group stop time) and loading/removing storage groups passed; see [ISS-005](issues.md). | | J10 | Read an item with `itmval -g` ([task](../.claude/skills/system-management/tasks/read-write-item.md)) | passed | passed | Read `AID.WRPS.*` items. `-a 1..5` gave `ITM-E-WRONG_ATT` on an item without limits; works on items with limits ([ISS-004](issues.md), closed). | | J10 | Write an item with `itmval -p` ([task](../.claude/skills/system-management/tasks/read-write-item.md)) | passed | passed | Sample: `TANK1.INFLOW` 120.5 then 130 with `-s 9`, `PUMP1.RUNNING` 1 (status 5 BOOLEAN 1); no `uoff` flag. AID: `AID.WRPS.SIM.INFLOW` 419.76 → 400 → 419.76. After the first write the item's options gained the `uoff` flag (0x8a → 0x8e) = *updated offline*, option bit 4 (written while its station was offline). See [ISS-001](issues.md), closed. | | J10 | Read the message log (`tls\log\umhlog.log`) | passed | n/a | | | J10 | Per-component version list (`tls\lst\tls_versions.lst`) | passed | n/a | | | J10 | Load history from CSV with `ithloahis`; read history back with `dssqld` ([task](../.claude/skills/system-management/tasks/load-history.md)) | passed | passed | Sample storage group `CIENG_EVENT` (Event/Item). SCAN file (LEVEL 61–63, INFLOW 101–103) and EVENT file (LEVEL 47, 48) stored and read back via `ITEM_HISTORY`. New groups need a CI Server restart before they store; samples dated before the current storage unit were not stored ([ISS-006](issues.md)). | | J10 | Consistency check (`dsschk`, `ismchk`) ([task](../.claude/skills/system-management/tasks/consistency-check.md)) | passed (check); repair and `ismchk` not practiced | n/a | `dsschk -e -v` (check only) reports each of 228 datasets, no problems. Plain `dsschk` prints nothing on a single node. `ismchk` needs a database file name; not run ([ISS-002](issues.md), closed). | | J10 | Monitoring processes (`intmon`, `intcpumon`, `intdskmon`, `inttcpmon`, `intspawn`) ([task](../.claude/skills/system-management/tasks/monitoring-processes.md)) | passed | passed | All five worked into `CI-Eng-Sample.SYSTEM.*` / `PUMP1.MODE`, started by hand with ` -n `; setup files restored afterwards. `intdskmon` reports **used** %; `intspawn` command path must be short ([ISS-007](issues.md)). | | J10 | Backup of `tls` folders | not practiced | n/a | Plan only; the actual backup tool is site-specific. | | J10 | Migration between systems (§5.6) | not practiced | added | After phase 6 CI-Eng-Sample has every data kind in the chain up to classes/objects (items, points, storage groups, classes, objects). Export with `dssqld -e` works; the import into a second system is not practiced (no second system). | | J10 | Tuning checks (read-only) ([task](../.claude/skills/system-management/tasks/tuning-checks.md)) | passed | n/a | Read `dur.sup` (max processes 250), `itm.sup` (item pool 650,000 KB) and the automatic health snapshots `tls\log\smd_*.log` (common memory free, queue use per process, lock collisions). Debug launchers and interactive debuggers not practiced. | | C10/C30 | Setup check script `tools/setup_check.ps1` ([task](../.claude/skills/installation-security/tasks/setup-check.md)) | passed | n/a | Read-only; 16 OK / 5 CHECK / 15 DIFF on the Win10 Pro test PC (kept as dev PC by decision). | | C10 | Read `ci_start.log` and web ports (`jwuiisg.sup`) | passed | n/a | All services started; SSL error [ISS-008](issues.md). | | C10 | Start / stop CI Server | passed (phase 1) | n/a | Via the CI Service (elevated). Start-menu shortcuts not used. | | C10 | New install, reinstall, upgrade, uninstall, licence | not practiced | n/a | Would reinstall or change the test system; only the installed R1.03 is available. Skipped. | | C10 | Windows settings changes (power, virtual memory, Defender, updates, …) | not practiced | n/a | Test PC kept as a development PC (user decision 2026-09-30); not applied. | | C10 | Vnet/IP drivers / Vnet/IP Interface Package | not practiced | n/a | No Vnet/IP card; not supported on Windows 10 Pro. | | C30 | IT Security Tool, Domain Link Management, account utilities | not practiced | n/a | Not installed and not supported on Windows 10 Pro. | | G10 | Sub-items: Integrator, Min-Max (`SUB_ITEM_DF`) ([task](../.claude/skills/item-engineering/tasks/sub-items.md)) | passed | passed | Integrator adds value × seconds; `TIME_UNIT` ignored. | | G10 | Block / unblock an item (`ITEM_DF.BLOCKED` via `dssqld -m`); write with `itmval -o` ([task](../.claude/skills/item-engineering/tasks/block-item.md)) | passed | passed | `blk` flag, writes without `-o` silently ignored; `ublk` (*updated blocked*) after unblock ([ISS-001](issues.md), closed). | | G10 | Trigger group, class (compile on load), object via quick load ([task](../.claude/skills/class-object-engineering/tasks/load-class-object.md)) | passed | passed | `DEMO.COUNTER` counts every second; full remove/load cycle clean. Phase 6: three classes and objects in one remove/load cycle, 0 errors. A class that fails to compile is not inserted (`DSI-E-OPCCOMERR`); error lines appear in `LISTING` after insert with `COMPILE` 0 and a compile update (test class removed). | | P10/L10 | Traditional class with prompt/attribute, signal from `SECTION`, item created from a template, `ERROR` check, `>=:`, PRINT; attribute change via `OBJECT_ATTR_VAL` ([task](../.claude/skills/class-object-engineering/tasks/traditional-class.md)) | passed | passed | `CIENG_TANK` / `TANK1.CALC`: volume 50→100, 82→164; capacity 0 refused; capacity 200→400 took effect on next run; created item and section deleted with the object. `%` in PRINT cuts the message (ISS-025). | | P11 | Java class ([task](../.claude/skills/class-object-engineering/tasks/java-class.md)) | passed | passed | `CIENG_JFLOW` / `TANK1.JFLOW`: inflow 120→2, 90→1.5, `systemMessage` in `umhlog.log` from `OPCJEXE`. Created item keeps the identifier's case (`…JFLOW.sPerMin`). Worked without a class reset (ISS-029). | | L10 | Change a class with objects: compile + reset ([task](../.claude/skills/class-object-engineering/tasks/change-reset-class.md)) | passed | passed | Old code runs until reset (`RESET_REQUIRED` 1). `opcdbg` Reset class works (extra prompt for a report file); `dssqld` `CLASS_DF.RESET` does nothing, `OBJECT_DF.RESET` refused (ISS-028). | | L10 | `opcdbg` read-only checks ([task](../.claude/skills/class-object-engineering/tasks/opcdbg-checks.md)) | passed | passed | Database check (one never-compiled foreign class `SINUS`), get class/object, object status/signals/attributes, executor main info. Dumps are not `dssqld`-readable (ISS-027). | | G10/C10 | Authorization group and user creation ([task](../.claude/skills/authorization/tasks/users-groups.md)) | passed | passed | Group `CIENG_VIEWER` (sample file `08_auth_group_df.qli`) loaded/removed by Claude; test user `CIENG_TEST` (no password) loaded by the user, checked and removed. The sample creates no users. | | C10 | String items: length 1–200, holds length − 1 characters ([task](../.claude/skills/item-engineering/tasks/string-items.md)) | passed | passed | Tested with temporary `CI-Eng-Sample.DEMO.STR*` items (removed): 201 rejected; too-long writes cut, status 12 OVERRANGED ([ISS-019](issues.md)). | | C10 | Integrator time unit: integration granule `itm_int_secs` in `itm.sup` ([task](../.claude/skills/item-engineering/tasks/sub-items.md)) | passed | passed | 60 → `RUN_SECONDS` +1 per minute; restored to 1 (file identical to backup), +1 per second again ([ISS-010](issues.md)). Elevated restarts run by the user. | | G10 | Displays, symbols, Operator Interface test | display done (phase 10); symbols not practiced | display added | Display `CIENG_Tank` built in the Edit Module and checked in the HTML display. | | L41/C10 | Modbus TCP line, station, scan type, points, connected items by quick load ([task](../.claude/skills/equipment/tasks/modbus-station.md)) | passed | passed | Loopback to CI Server's own Modbus slave (`eqpmdcmem` + `eqpmdcslvtcp` on 5020, started by hand). Line load created and started `EQPCIENG`; removal stopped it and deleted its files. Write/read-back, off-scan/on-scan checked; full remove/reload from sample files. Protocol must be Open Modbus/TCP ([ISS-024](issues.md)). Mirror start files copied to `tls\com` by the user; after a restart everything came back under the CI Service and the setpoint was re-sent on connect. | | G10 | Alarms, reports, audit, RDBMS, history | alarms (phase 8), history (phase 9), reports (phase 11), audit (phase 12) done; RDBMS passed on a user R1.05 system (see the RDBMS row below) | alarms, history, reports, audit added; RDBMS n/a (tested in R1.05 only) | Covered in their own phases (7–12); RDBMS added 2026-10-02. | | R10/R20 | Read a setup file: active settings and keyword help ([task](../.claude/skills/portal-setup/tasks/read-setup-file.md)) | passed | n/a | Read-only. Compared with the Setup File Editor GUI for `wfla_display.sup`, `wflgdi.sup` and all 9 tabs of `jwuiisg.sup`: fields and values identical. Manual differences logged as ISS-012 to ISS-017 (installed software taken as the reference). | | R10 | Check web access for CI View: ports, Remote Connect page, `DEPLOY` folder ([task](../.claude/skills/portal-setup/tasks/check-web-access.md)) | passed | n/a | 8080/8443 listening, page 200, six `DEPLOY` folders. | | R10/R20 | Change a setup file safely ([task](../.claude/skills/portal-setup/tasks/change-setup-file.md)) | passed | n/a | `jwuiisg.sup` HTTP port 8080 → 8081 (text edit, elevated restart): 8081 served the page, 8080 refused; restored, hash identical to backup. Editor: *OK* writes at once, *Reset Field* restores the default (ISS-016). | | R10 | Separate CI Portal node (licence, DURM line, `dur.sup` host node, copy displays) | not practiced | n/a | Needs a second node. | | R10 | Login method / login control | not practiced | n/a | Moved to `dssana.sup` (ISS-017); phase 5 (C10) and 13 (J40). | | L45/E20 | OPC UA client → own OPC UA server loopback by quick load; certificate exchange; node IDs ([task](../.claude/skills/data-access/tasks/opcua-client.md)) | passed | passed | Station `CIENG_UA` (`opc.tcp://localhost:34493`, Basic256Sha256/SignAndEncrypt): `UA.LEVEL_COPY` follows `TANK1.LEVEL` (55, 62.5, 71, 33, 44.4), `UA.SRV_STATE` 0. Certificates trusted by the user (client side, then server side). Entity namespace `urn:Yokogawa:CI_SERVER_OPC_UA_SERVER` found by browsing `OPCUAC_TAG_DF` (ISS-032). Full remove/reload clean, reconnects without a new exchange. User configured a point in the Engineering Module: browse stores the item object, value node must be typed (ISS-033); test item/point removed afterwards. | | L45 | ACCESS read-only checks: processes, ports, OPC UA server config/PKI, ODBC server ([task](../.claude/skills/data-access/tasks/access-checks.md)) | passed | n/a | ISS-008 cause found: `odbsrv` cannot load its SSL certificate (folder `tls\pki\odbsrv` missing) and exits. | | G10/C10 | RDBMS data exposure to SQL Server: SQL login, `dbc.sup` `DEM_CONNECTION`, `DATA_EXPOSURE_DF`, `ITEM_DF.AGG_INTERVAL`, SQL-side retention job ([task](../.claude/skills/data-access/tasks/rdbms-exposure.md)) | passed (R1.05 only) | n/a — tested in R1.05 only (user decision) | 2026-10-02 on the user's R1.05.00 system (not the R1.03 dev machine): 49 `AID.WRPS.*` items at 1 minute into a remote SQL Server 2022; rows survive a CI Server restart; 60-day purge job. Quoted filter field stopped DBCSND ([ISS-057](issues.md)); ITEM_HISTORY not tested ([ISS-058](issues.md)); SQL login needed ([ISS-059](issues.md)); steady-item rows ([ISS-060](issues.md)); folder rights ([ISS-061](issues.md)). R1.03 `dbc.sup` and dataset definitions checked read-only (identical). | | L30 | BUS utilities: `durwfp`, setup files (`dur.sup`, `durm_1_udp.sup`, `time_table.sup`, `fmfprt.sup`) ([task](../.claude/skills/system-management/tasks/bus-utilities.md)) | passed (read-only) | n/a | `umhman`, `umhtestprog`, `umhmsg` fail (ISS-030). Unlicensed run-time limit hit and documented (ISS-031). | | L30 | MDUR node links, encryption, logical addresses, printer devices | not practiced | n/a | Single node, no printer devices. | | L55 | CI Exchange for CENTUM VP / Prodigy | not practiced | n/a | Needs CENTUM VP (RGS, Vnet/IP) or Prodigy data. | | L15/C20 | Acknowledgement type, area of interest, alarm selection area by quick load; ASA compile check ([task](../.claude/skills/alarm-management/tasks/alarm-definitions.md)) | passed | passed | `CIENG_ACK` (MANUAL matrix), `CIENG_TANKS`, `CIENG_TANK1` compiled valid. Description > 78 characters refused; an ASA without spaces is stored with `VALID_EXPRESSION` 0; an ack type in use cannot be deleted. | | L15/C20 | Item alarming, test alarm, `ALARM_CURRENT` / `ALARM_CHRONO`, acknowledge via `dssqld -m` on `ALARM_CURRENT`, delay and repeat ([task](../.claude/skills/alarm-management/tasks/item-alarming.md)) | passed | passed | `TANK1.LEVEL` 85 → HIGH (Alarm 2, prio 2), 95 → HIGH HIGH; acknowledged by `NAME`/`ACK`; acknowledged return to normal cleared, unacknowledged one stayed; DELAY 5 s / REPEAT 10 s events as documented. Changing alarm fields auto-acknowledges a pending return to normal. No `ALDPRT` lines in `umhlog.log` (ISS-035). Full remove/reload clean. | | L15 | ALARM Service read-only checks: processes, setup files, `almdbg` 1/9/10/12/14, `alhdbg` 1, `ALH` storage group; INFO event with `almdbg` 16 ([task](../.claude/skills/alarm-management/tasks/alarm-checks.md)) | passed | n/a | Destinations ALH, OPXUAS, ALNMGR, ALDPRT. `alh.sup` extra keywords, `ALH` lifetime 52 weeks (ISS-036). INFO event stored; some text columns hold leftovers (ISS-037). Two extra INFO events named `name` were created by a probe with default answers. | | L15/C20 | First-out groups, alarm collections, shelving, link display, notifications, acoustic/count destinations | not practiced | n/a | Need displays (phase 10), a second alarm item design, an SMTP server or a logged-in sound session. | | C20 | External alarms (EAL) from OPC UA A&C servers and CENTUM VP | not practiced | n/a | No A&C source or Vnet/IP on the test system. | | E30 | Alarm System Performance Analysis (ASPA) | not practiced | n/a | GUI; the test system has too little alarm history for meaningful KPIs. | | C40 | Item storage groups by quick load: Event/Item, Scan/Time, Aggregation; read per group ([task](../.claude/skills/history-management/tasks/storage-groups.md)) | passed | passed | `CIENG_SCAN10S` stored LEVEL/INFLOW every 10 s after the restart; `CIENG_EVENT` stored live writes; restart needed for new groups (ISS-006, closed). `CIENG_AGG` stayed empty until the scan group got priority 10, then 30-min max 77 / min 33 / avg 52.7 (ISS-040, closed). Full remove/reload with three groups: 0 errors (before the priority field was added; `PRIORITY` itself verified with `dssqld -m`). | | L20 | `hisdbg` read-only checks and forced rollover ([task](../.claude/skills/history-management/tasks/history-checks.md)) | passed | passed | 45 groups, 30 clients; group/unit info; rollover of `CIENG_EVENT` closed unit 3,1. Extra history types 4 and 36 (ISS-039). | | L20/L35 | `ithloahis` into older units ([task](../.claude/skills/system-management/tasks/load-history.md)) | passed | passed | Samples in the active unit or a unit closed after the restart stored; older ones dropped silently (ISS-006); dropped sample became the next unit's initial value (ISS-038). | | L20/C40 | Archive and retrieve, `hasdbg`, `hisrecover`, `hiswrn`, `hisrep` by hand | not practiced | n/a | No archive device configured (`has.sup`); would change history administration. | | C50 | Build a display in the Edit Module, check the XML ([task](../.claude/skills/graphics/tasks/create-display.md)) | passed | passed | User built `CIENG_Tank` (HTML mode): text, number field, alarm overview, trend. File stores item name + id; after a sample reload (id 248 → 268) validation still passed and a new session showed live values. | | C50/R30 | Deploy/remove, `jwuiutl` HTML export, validate, search; HTML display in the browser ([task](../.claude/skills/graphics/tasks/deploy-displays.md)) | passed | passed | Scripts `displays/deploy_displays.cmd` / `remove_displays.cmd`; command-line HTML identical to the Edit Module's. Number field live in the browser; HTML trend draws no line (ISS-041). Browser page reload ends the session; the display menu *View > Reload* keeps it (user). | | R30/C50 | Operator layout `CIENG_Operator` (menu, toolbar, navigation/main/banner frames, status line) added with `layout.ps1`; navigation display `CIENG_Menu`; open displays in frames, layouts and the `popup` layout ([task](../.claude/skills/graphics/tasks/layouts.md)) | passed | passed | Desktop: second 1600 x 900 window, frame navigation and Back, popup on top and minimised with its parent, F11 within taskbar limits; the Operator Interface must be restarted after `Layouts.xml` changes; factory `default` layout unchanged for Admin. Web: `?d=CIENG_Tank&l=CIENG_Operator`. Status line/command names not in the readme (ISS-042). A stray trend property connection caused a desktop error (ISS-041 update). | | R30/C50 | Layout parameters one by one on test layouts (`LT_*`): frames, window options, menu/toolbar/status line, all commands ([task](../.claude/skills/graphics/tasks/layouts.md) §6) | passed | n/a | 2026-10-02. Desktop via `jwuipoi -layout`, web via `&l=`; popups, modal, maximumOpen via launcher display `LT_Launcher`. Tabs on `LT_Tabs*`. Readme differences and web limits: ISS-062..067. Not tested: print orientation/margins, playback, multi-screen positions, the `maximumTabs` limit for new tabs. Test layouts need no project data (not added to CI-Eng-Sample). | | C50/R30 | Trend settings one by one on `CIENG_TrendLab` (pen source, type, scale, axis, grid, limits; time range, performance, appearance, time axis, legend, pen panel; property sheet listed) ([task](../.claude/skills/graphics/tasks/trend.md)) | passed (desktop) | passed | 2026-10-02, user confirmed each round with screenshots. Pen limits, pen title and `backgroundPaint` had no effect (ISS-056). Internal items need `trend_feed.ps1` after a restart. | | C50/R30 | HTML trend: cause of the empty web trend and 50-pen workaround (`add_trend_spares.ps1`); Micro Trend ([task](../.claude/skills/graphics/tasks/trend.md) §6) | passed (workaround) | passed | Web code always builds 50 columns (ISS-041). Padded `CIENG_TrendLab` draws in the browser with a clean legend; web ignores *Show in legend* (ISS-056). Micro Trend drew once, then blank (ISS-055). | | C50/R30 | Web check of each trend setting (4 batches on a padded scratch copy, checked in the browser by Claude) ([task](../.claude/skills/graphics/tasks/trend.md) §6) | passed | passed | 2026-10-02. Works / ignored / different table in the task; matches IM 36K10C50 Table 2.27-28 except `timeShift` (error message) and *Show in legend* (ISS-056). A hidden real pen breaks the 50-pen workaround (confirmed). | | C50 | Remaining trend settings: custom time range, `Rendering3dOrt`, `RenderingCSS` ([task](../.claude/skills/graphics/tasks/trend.md) §4) | passed | passed | 2026-10-02. Custom range on desktop and web (desktop: no live update); 3dOrt draws black lines; CSS mode makes the display unloadable. | | R30/C50 | Sample operator HMI: 8 generated `CIENG_*` displays, layouts `CIENG_Operator` (header, tab set, banner) and `CIENG_Popup`, live-data feed with server-side *Start* / *Stop* ([sample README](../examples/CI-Eng-Sample/README.md), [layouts](../.claude/skills/graphics/tasks/layouts.md) §6.6) | passed | passed | 2026-10-06 on desktop and web. Replaces `CIENG_Tank`, `CIENG_Menu`, `CIENG_TrendLab`. Tab sets: last child of the frame set (ISS-069), desktop zoom via `navigate … stretchDisplay` (ISS-070), one layout command at a time (ISS-071), `connectionState` breaks the web layout (ISS-068). | | C50 | Writing display XML directly: text size, rounding, arc angles, web item attributes, server-side command, alarm overview columns ([task](../.claude/skills/graphics/tasks/create-display.md)) | passed | passed | 2026-10-06, test display `CIENG_Test` (removed) on both clients; arc angles clockwise from 3 o'clock on both clients (an earlier note on mirrored angles was wrong); `jwuiutl -v` re-saves (ISS-075). | | C10 | Sample user `CIENG` with empty password via quick load, profile layout and initial display ([task](../.claude/skills/authorization/tasks/users-groups.md)) | passed | passed | 2026-10-06: `PASSWORD ""` needed (ISS-072); web logon uses the profile layout (ISS-074); group removal with an open session stopped `DSSSDA03` (ISS-073). Factory group `OPERATOR` is enough for the server-side *Start*. | | J10/C50 | Restart CI Server with the Edit Module open | observed | n/a | Start aborted: `JWUIGED` still attached to the BUS Service (`ci_start.log`); closing the Edit Module fixed it (skill `system-check`). | | R30/C50/C60 | Dataset forms, symbols, AOG library, dual screen, per-user layouts | not practiced | n/a | GUI work; user profiles not changed. | | R40/C30 | REPORT Service checks: processes, set-up files (`rptman.sup`, `rptge1.rpt`, `rptgen.rpt`), system reports, `rptstp` ([task](../.claude/skills/reporting/tasks/report-checks.md)) | passed | n/a | Read-only plus one cancel: `rptstp rptge1` stopped the endless-loop test report `CIENG_LOOP` (removed). 28 system reports; two names differ from the manual (ISS-043). | | R40/P20 | RQL in the interactive generator (`rptgen -s rptgen.rpt`), CSV with `SPOOL` ([task](../.claude/skills/reporting/tasks/rql-interactive.md)) | passed | passed | Piped query files (bash `<`, PowerShell via `cmd /c`); `@NEXT 0` needed; dates are local-time seconds; LOOP refused interactively (`RPT-E-LPNOTAL`); aggregated history empty on the test system. | | C30/P20 | Report definitions by quick load: ad hoc with parameters, daily schedule, item trigger, HTML with cursor loop, logbook; generate, read, print, delete; remove ([task](../.claude/skills/reporting/tasks/define-reports.md)) | passed | passed | `CIENG_TANK1`, `CIENG_INFLOW_HI`, `CIENG_HTML` + destination `CIENG_FILE`; full sample remove/reload 0 errors. Schedule ≥ 10 min, scheduled report not deletable until the schedule is cleared, `CORRECT_DAYLIGHT` (ISS-044); `dssqld` ad hoc without `ADHOC_DEST` logs a print error (ISS-045). User checked the Engineering Module: forms, generate dialog (item browser not filtered, ISS-048), view of text and HTML reports. | | C30 | File printer device and destination ([task](../.claude/skills/reporting/tasks/output-devices.md)) | passed | passed | Output type needs the node name (`:FILE`); literal path only (`%TLS_LST_PATH%` failed). Sample builds the file at load (`17_printer_df.ps1`). | | L50/P30 | DSS tools: processes, `dss.sup`, quick load macro/include/memo file, `dssutl` read, DSS compiler syntax check ([task](../.claude/skills/system-management/tasks/dss-tools.md)) | passed | n/a | Memo from file: absolute path ≤ 82 characters only (ISS-046). Dictionary untouched. | | C30 | Report component on a display, hardcopy printer, extra report generators | not practiced | n/a | GUI / no printer / admin restart. | | E10 | Excel Add-in (DART) | not practiced | n/a | Excel not installed on the test system. | | J20 | HAC checks: licence, processes, `hac.sup`, scripts, HMI properties, logs ([task](../.claude/skills/high-availability/tasks/hac-checks.md)) | passed (read-only) | n/a | No `hacini.sup`, normal `ci_start`, `CI_PRIM` unset: HAC not used; template `hac.sup` differs from the manual (ISS-053). | | J20 | Redundant pair set-up, switchover, patching; stand-alone Recovery and journaling ([task](../.claude/skills/high-availability/tasks/redundant-setup.md), [task](../.claude/skills/high-availability/tasks/standalone-recovery.md)) | not practiced | n/a | Needs two licensed servers; stand-alone Recovery not started (default actions restart tools). | | J40/C10 | Login methods and the *No*-login profile ([task](../.claude/skills/authorization/tasks/login-methods.md)) | passed (read) | n/a | *No* login without a matching user = full authorization (ISS-018). | | J40 | Active Directory integration and SPNEGO single sign-on ([task](../.claude/skills/authorization/tasks/active-directory.md)) | not practiced | n/a | No domain on the test system; extra AD keywords installed (ISS-054). | | L25 | AUDIT Service checks: processes, `ADT` group, classifiers, selection groups ([task](../.claude/skills/audit-trail/tasks/audit-checks.md)) | passed | n/a | `adtsto` + `adtcol`; 463 classifiers, 444 stored; `ADT` lifetime 52 weeks; manual differences ISS-051. | | L25 | Read the audit trail: export, RQL, audit report, what each tool records ([task](../.claude/skills/audit-trail/tasks/read-audit-trail.md)) | passed | passed | Report `CIENG_AUDIT` (`19_audit_df.qli`); qli export needs `NAME` in `@FIELDS`; `dssqld` = `ENT-ENG-MOD`, Engineering Module = `LOC-ENG-MOD` (checked by the user); `itmval` not audited (ISS-049). | | L25 | Classifier `STORAGE`, selection groups, event logger `ADTLOG` ([task](../.claude/skills/audit-trail/tasks/configure-audit.md)) | passed | passed | Selection group `CIENG_ITEMS` compiles on load; `adtlog -n adtlogci` with sample setup file printed only CI-Eng-Sample events; storage flag cached (ISS-050); `AUDIT_INFO` effect not shown (ISS-049). Full sample remove/reload 0 errors. |