;`. A generator only takes reports with a
+priority ≥ its own; one generator must keep priority 0. Higher-priority reports are generated
+first. Admin rights and a restart needed (not practiced).
+
+## 4. Layout defaults (§3.1, §3.2)
+
+Put shared header/footer/margins in the set-up file (or a new `.rpt` given with `-s`).
+`@export 1` gives comma-separated output (for files read by other programs). Memory: `@workspace`
+(strings, records), `@sortspace` (ORDER/GROUP BY; spills to `tls\lst` when too small).
+
+## 5. Destinations (§3.3)
+
+The Engineering Module offers file, printer and system log destinations; R1.03 adds printer
+management devices and destinations (`IM36K10C30-01EN.md` §3). Adding a new built-in destination
+means changing `rpt_print.c` (not shipped as buildable on the test system), re-linking `rptman`
+and adding a list entry to `report_val.dss` (`dss -d`) — system integrator work, not practiced.
+
+## 6. Interactive mode (§4) and stopping (§5)
+
+`rptgen -s rptgen.rpt` starts a foreground generator (prompt `RPT>`); end with `QUIT;`. Useful to
+try RQL and inspect datasets without defining a report. `rptstp rptge1` cancels the running
+report of `RPTGE1` (also the *Cancel* button / `REPORT_DF.CANCEL`).
+
+**Verified 2026-10-01:** piped input works (`rptgen -s rptgen.rpt < query.rql`), set
+`SET @NEXT 0;` first or every page waits for Enter. `rptstp rptge1` stopped an endless loop
+report within seconds; `GENERATE` went back to 0, an empty generated report was stored, the
+generator stayed running and took the next report normally. Task: skill `reporting`.
diff --git a/knowledge/progress.md b/knowledge/progress.md
index f8d6241..2b6a4d7 100644
--- a/knowledge/progress.md
+++ b/knowledge/progress.md
@@ -56,12 +56,12 @@ AID is not needed.
| 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 | not started |
-| 11 | IM 36K10P30 | Data Set Service Language | not started |
-| 11 | IM 36K10P20 | Report Generation Language | not started |
-| 11 | IM 36K10R40 | Report Server Setup | not started |
-| 11 | IM 36K10C30 | Engineering Module - Reporting | not started |
-| 11 | IM 36K10E10 | Excel Add-in | not started |
+| 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 awaiting the user's check; 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 | not started |
| 13 | IM 36K10J20 | High Availability Computing | not started (needs two servers) |
| 13 | IM 36K10J40 | Active Directory Integration | not started (needs a domain) |
@@ -109,7 +109,7 @@ now come before classes and objects (phase 6), and the other interfaces follow a
| 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 done (phase 8); others not practiced | alarms added | Covered in their own phases (7–12). |
+| G10 | Alarms, reports, audit, RDBMS, history | alarms (phase 8), history (phase 9), reports (phase 11) done; audit, RDBMS not practiced | alarms, history, reports added | Covered in their own phases (7–12). |
| 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). |
@@ -135,3 +135,10 @@ now come before classes and objects (phase 6), and the other interfaces follow a
| 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). |
| J10/C50 | Restart CI Server with the Edit Module open | observed | n/a | Start aborted: `JWUIGED