# 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 | 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) | manual diff read | | | `data-access` | L45, E20 (large: OPC UA methods, information model mapper, certificate expiry), L50 dataset rename | manual diff read | | | `equipment` | L41 (IEC 61850, item status, App. 1); IEC 104/61850 drivers moved to `eqt`/`eta` | manual diff read | | | pyTOOLS (new) | P40 new | not started | No skill yet. | | `graphics` | C50, C60, R30 (small) | manual diff read | | | `history-management` | C40 §4.2 (REST API, pyTOOLS) | manual diff read | | | `portal-setup` | R10 §3.3 | manual diff read | | | `system-management` | J10 §2.9.1, L50 | manual diff read | | | `item-engineering` | C10 §2.2 | manual diff read | | | `alarm-management` | none | not started | | | `audit-trail` | none | not started | | | `authorization` | none (new `dss_ath_grp_u0104` loader) | not started | | | `class-object-engineering` | none | not started | | | `high-availability` | none | not started | | | `reporting` | none | not started | | | `examples/CI-Eng-Sample` | — | not started | Load on the shared server only with the user's approval. | ## 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. |