Wiki Log
Chronologisch logboek van alle ingests, queries en onderhoud. Append-only — voeg nieuwe entries altijd onderaan toe.
2026-04-05 — Initiële compilatiebewerken
Type: ingest (bulk)
Bronnen: 22 bestanden uit Data/
Resultaat: 66 wiki-artikelen aangemaakt
Verwerkte bronnenbewerken
| Bron | → Artikelen |
|---|---|
| Ultimo_Help_Complete.md | concepts/assets, concepts/jobs, concepts/periodiek-onderhoud, concepts/planning, concepts/inkoop, concepts/magazijn, concepts/contracten, concepts/hse |
| UCT-Handleiding.md | concepts/uct-overzicht, configuration/* |
| Frontend-Handleiding.md | concepts/self-service (webwinkel, kennisboom, Mijn Ultimo) |
| ultimo-uctool-help.md | concepts/uct-overzicht (aanvulling) |
| Entities.xml (643 entiteiten) | entities/* (17 hoofdentiteiten + index) |
| database-schema.json | entities/* (kolomdetails, types) |
| workflows.xml (~360K regels) | workflows/workflow-patronen |
| ultimo_workflow_documentation.md | workflows/workflow-instructies, workflows/workflow-engine |
| ultimo_expression_documentation.md | workflows/expressions |
| UltimoDeveloperDocumentation.md | api/rest-api, api/http-post, api/soap, api/api-keys |
| ultimo_importconnectors_2026-02-25.xml | api/import-connectors (XSLT voorbeelden) |
| Application Element Tree settings.md | configuration/application-element-tree |
| process-settings.md (61 configuraties) | configuration/process-settings |
| ApplicationSettings.json | configuration/application-settings |
| ApplicationElementTreeData.json | configuration/application-element-tree |
| Default_Text_Templates.xml | (referentie, niet direct verwerkt) |
| ultimo-implementation-documentation.md | concepts/implementatie (DCS, UDIT, MDS, asset tree) |
| ultimo_announcements_batch1-5.md | troubleshooting/nieuwe-features, troubleshooting/veelvoorkomende-problemen |
Aangemaakte categorieënbewerken
concepts/— 13 artikelen (assets, jobs, PO, planning, inkoop, magazijn, contracten, HSE, UCT, autorisatie, self-service, implementatie)entities/— 18 artikelen (17 entiteiten + index, met properties, contexts, statussen, relaties)workflows/— 6 artikelen (engine, instructies, expressions, patronen, debugger + index)api/— 8 artikelen (REST, HTTP POST, SOAP, import/export connectors, API keys, OData + index)configuration/— 7 artikelen (AET, app settings, process settings, feature toggles, screens, packages + index)integrations/— 6 artikelen (LDAP/SCIM, BI, SSO, Exchange, Universal Print + index)troubleshooting/— 4 artikelen (problemen, SQL ref, nieuwe features + index)- root — index.md, glossary.md
_meta/— sources.md, health.md
2026-04-06 — Karpathy LLM Wiki pattern alignmentbewerken
Type: onderhoud Actie: Wiki uitgebreid met ontbrekende elementen uit het LLM Wiki pattern (Karpathy gist):
log.mdtoegevoegd (dit bestand)- YAML frontmatter toegevoegd aan alle artikelen (Obsidian Dataview compatibel)
tools/scripts toegevoegd (search, lint, health check)CLAUDE.mdbijgewerkt met log.md, frontmatter schema, tooling documentatie
2026-04-09 — Nieuw artikel: Workflow Designer (UCT)bewerken
Type: ingest (handmatig) Bronnen: Training/ Resultaat: 1 wiki-artikel aangemaakt
| Artikel | Omschrijving |
|---|---|
workflows/workflow-designer.md |
Stap-voor-stap gids voor de Workflow Designer in UCT: interface, property-vertaling, workflow aanmaken, variables, schermknoppen koppelen, UCB, publiceren, debugger en valkuilen |
Index bijgewerkt: <a href="/workflows/workflow-designer">workflows/workflow-designer</a> toegevoegd aan de Workflows-sectie in index.md.
2026-04-09 — Nieuw artikel: SQL Patronen voor Ultimo Consultantsbewerken
Type: ingest (handmatig) Bronnen: Training/ (diverse Curriculum-bestanden, "Data import using Excel sheet"-video, "Generate Scripts"-video) Resultaat: 1 wiki-artikel aangemaakt
| Artikel | Omschrijving |
|---|---|
troubleshooting/sql-patronen.md |
Uitgebreide SQL-referentiegids: verbinding SSMS, tabel/kolomconventies, SELECT/WHERE/JOIN/GROUP BY patronen, INSERT/UPDATE/DELETE, volledig Excel-importpatroon met OPENROWSET/AutoKey/ExternalID/DataProvider/COLLATE, Generate Scripts stap-voor-stap, best practices en veelvoorkomende fouten |
Index bijgewerkt: <a href="/troubleshooting/sql-patronen">troubleshooting/sql-patronen</a> toegevoegd aan index.md en troubleshooting/index.md.
2026-04-09 — Update: workflow-instructies verrijkt met praktijkvoorbeeldenbewerken
Type: onderhoud (verrijking bestaand artikel) Bronnen: Training/ (consultant tips, Workflow Designer handleiding) Resultaat: 1 wiki-artikel uitgebreid
| Sectie | Toegevoegd |
|---|---|
Insert |
Parameter-voorbeelden: Status/Context als property name, OutputProperty opslaan, minimale betrouwbare Job-Insert |
GetItem |
Property chaining via ${root.job.Equipment.Id}, waarschuwing exact 1 resultaat, UCB Properties tab vs. beschermd Start-blok |
GetList |
Output type WithList(EntityName), verplicht OrderBy, AND-logica meerdere filters, BetweenFilter met datumfuncties, ${lijst.Count} |
ForEach |
Bulk statuswijzigingspatroon: GetList → ForEach → ChangeStatus per item in eigen Transaction |
ChangeStatus |
Waarschuwing: altijd ChangeStatus gebruiken, nooit Assign — Status Matrix, Pre/Post workflows en history worden anders overgeslagen |
Dialog |
Container verplicht, Text (Width/LabelCode/OutputProperty), SelectionList (ColumnName, SqlWhereClause met kolomnamen, Required), Ctrl+drag tip |
WorkflowCall |
ActionField-waarschuwing: nooit direct aanroepen, zoek sub-workflow op |
View |
Volledige parameterlijst: DomainObject, ScreenName, CreateNewRecord, OpenNewWindow, FocusEditableField met voorbeeld na Insert |
Frontmatter bijgewerkt: date naar 2026-04-09.
2026-04-09 — Nieuw artikel: Entity Overview en Property Mappingbewerken
Type: ingest (handmatig) Bronnen: Training/ Resultaat: 1 wiki-artikel aangemaakt
| Artikel | Omschrijving |
|---|---|
concepts/entity-overview.md |
Foundational artikel over het drie-lagen model (scherm → entiteit/property → tabel/kolom): Technical Screen Information (?-icoon), Screen Database Objects, Entity Overview (UCT), compleet vertaalproces met voorbeeld (Department op Job), property chaining syntax, veelgebruikte entiteiten met tabel/prefix/PK, foreign key patronen, contextwaarden en valkuilen |
Index bijgewerkt: <a href="/concepts/entity-overview">concepts/entity-overview</a> toegevoegd aan index.md en concepts/index.md. Artikelteller bijgewerkt naar 144.
2026-04-09 — Uitbreiding bestaande workflow- en configuratie-artikelenbewerken
Type: onderhoud (ingest uit trainingsmateriaal) Bronnen: Training/ (curriculum, praktijkvoorbeelden) Resultaat: 4 bestaande wiki-artikelen uitgebreid met praktijkkennis
| Artikel | Toegevoegde sectie |
|---|---|
workflows/workflow-engine.md |
Variables en Properties — naamgeving, type (entiteitsreferentie vs. datatype), Accessor (Internal/Root/Optional/Required), Direction (none/In/Out/InOut), referentiesyntax ${variableName}, property chaining ${root.job.Equipment.WarrantDate} |
workflows/scheduled-workflows.md |
Praktijkvoorbeeld: Wekelijks email rapport — volledig stappenplan: GetList met datumfilters (startOfDay/addDays), TextTemplate met conditionele tekst op ${jobs.Count}, Email-actie met #{Settings.EmailSender} en Required ${to} parameter, Scheduler instelling maandag 07:00, Test Run knop |
configuration/messages.md |
Expressies in berichten — enkelvoud/meervoud met if(${count} == 1, ...), .Description vs. ID, Load knop in Message action, Label vs. Ultimo berichttype, voorbeeldcodes 9000-9007 |
workflows/expressions.md |
Veelgebruikte patronen — datumberekeningen (startOfDay/addDays), null checks (== Empty/!= Empty), lijst tellen (${list.Count}), beschrijving ophalen (.Description), conditioneel in messages, property chaining |
Frontmatter bijgewerkt: date gewijzigd naar 2026-04-09 in alle 4 artikelen.
2026-04-09 — update-section: workflows/expressions.mdbewerken
Reden: Lijst tellen: Waarschuwing: #count() werkt niet op List[DomainObject], gebruik altijd .Count
2026-04-09 — ingest: concepts/voortgangsstatussen.mdbewerken
Reden: Nieuw artikel: Voortgangsstatussen — compleet configuratiehandboek met statusflow, autorisatie, validaties, SLA-impact, equipment-integratie en consultant best practices. Bron: Ultimo_Help_Complete.md, ultimo-implementation-documentation.md, database-schema.json, ApplicationElementTreeData.json.
2026-04-14 — update-section: configuration/package-manager.mdbewerken
Reden: Pakketbestanden: Technische structuur .up-bestand toegevoegd: ZIP-formaat, BOM-vereiste, bestandsnaamlimiet 34 tekens, PackageDefinition.xml formaat met actie-voorbeelden, FileServiceData mapstructuur
2026-04-15 — update-section: workflows/workflow-instructies.mdbewerken
Reden: Gerelateerde artikelen: Sectie toegevoegd over Hash/Security attributen en MessageCode 2060 bij custom workflows
2026-04-15 — update-section: workflows/workflow-instructies.mdbewerken
Reden: Custom Workflow XML: Hash en Security attributen: Hash-algoritme geverifieerd tegen .wfl bestanden: SHA1 van UTF-8 bytes zonder BOM en zonder Hash attribuut. Python implementatie en CRLF/tab details toegevoegd.
2026-04-15 — update-section: workflows/workflow-instructies.mdbewerken
Reden: Email: Email instructie bijgewerkt met verplicht twee-stappen patroon (Concept + ChangeStatus naar Draft), gebaseerd op standaard workflow ActionField667. Inclusief property-declaratie, Transaction-vereiste, en correcte From-referentie.
2026-04-15 — update-section: workflows/workflow-patronen.mdbewerken
Reden: Email versturen bij statuswijziging: Email patroon bijgewerkt met verplicht twee-stappen patroon (Concept + ChangeStatus naar Draft). Oud patroon zonder Transaction/Concept/ChangeStatus verwijderd. UCB-voorbeeld toegevoegd. From-referentie gecorrigeerd naar UltimoSettings.
2026-04-16 — Brondata-framework fase 1bewerken
Type: infrastructure + reference-generation Scope: Nieuwe raw-data MCP-tools + reference-pagina's + Brondata-conventie + linter + showcase-retrofit
Wijzigingen:
lib/raw_data.py— 5 nieuwe parsers: AET, DB tables, Application Settings form, Grid widgets, Import connectors (metget_X/search_X/list_Xhelpers)server.py— 10 nieuwe MCP-tools (lookup_aet_setting,find_aet_settings,lookup_table_schema,find_tables,lookup_app_setting_field,find_app_setting_fields,lookup_grid_widget,find_grid_widgets,lookup_import_connector,find_import_connectors); uitgebreideSERVER_INSTRUCTIONSscripts/— 3 nieuwe generators (regenerate_entities_reference.py,generate_aet_reference.py,generate_tables_reference.py), idempotentwiki/reference/aet/*.md— 226 AET-setting pagina's (nieuw)wiki/reference/tables/*.md— 677 DB-tabel pagina's (nieuw), 475 met entity-cross-linkwiki/reference/entities/*.md— 643 pagina's hergenereerd; fix voor../entities/activitybug; nieuwe## Brondatasecties; conditionele../tables/Xlinkswiki/reference/index.md— 6 categorieën i.p.v. 2wiki/index.md— link naarreference/indextoegevoegd in Referentie-sectietools/lint.py—check_brondata_section()regel; 56 bestaande artikelen geflagd voor fase 2/3CLAUDE.md— Brondata-citaat-conventie gedocumenteerd (formaat, wanneer-verplicht, LLM-gedragsregel)wiki/concepts/go-plus.md— showcase-retrofit met## Brondatasectie (AET-tools voor Go/Go+/Barcode Scanner)
Tests: 31 nieuwe tests (per parser + smoke + linter). Alle pass.
Volgende fases:
- Fase 2: retrofit
wiki/entities/*.md(56 artikelen) — aparte plan-sessie - Fase 3: retrofit overige categorieën (configuration, workflows, concepts, api, integrations, troubleshooting) — aparte plan-sessie
Ontwerp: docs/superpowers/specs/2026-04-16-brondata-citaat-framework-design.md
Plan: docs/superpowers/plans/2026-04-16-brondata-framework-fase-1.md
2026-04-16 — Brondata-framework fase 2bewerken
Type: retrofit
Scope: ## Brondata sectie toegevoegd aan alle 56 handgeschreven wiki/entities/*.md
Wijzigingen:
- 54 artikelen via
scripts/retrofit_entity_brondata.py(idempotent). Elk artikel krijgt een Brondata-sectie metlookup_entity,lookup_table_schema(waar tabel bestaat) enfind_workflowsvoor de betreffende entiteit. Pure insertion: +810 regels, 0 deletions. - 2 outliers handmatig:
inspection-round.md— Brondata verwijst naarPmWorkOrder(er is geenInspectionRound-entity; inspectierondes zijn PmWorkOrders met Looproute-context).service-contract.md— redirect-stub; frontmattersource:vanEntities.xmlnaarwikigewijzigd (geen raw-data counterpart).
Tests: 8 nieuwe unit-tests voor het retrofit-script (tests/test_retrofit_entity_brondata.py). Alle 69 tests pass.
Linter: Brondata-errors onder wiki/entities/: 0 (was 54). Totaal Brondata-errors in de wiki: 0 (was 56).
Volgende fase:
- Fase 3: retrofit overige categorieën (configuration, workflows, concepts, api, integrations, troubleshooting) — aparte plan-sessie.
Plan: docs/superpowers/plans/2026-04-16-brondata-framework-fase-2.md
2026-04-16 — Brondata-framework fase 3bewerken
Type: retrofit (handpicked + broad sweep) Scope: Alle resterende handgeschreven wiki-artikelen
Wijzigingen:
Deel 1 — handpicked (9 artikelen, commit b61693a): Artikelen met een 1-op-1 raw-data counterpart kregen een tailored Brondata-sectie met frontmatter-update naar de bijbehorende raw-data bron:
configuration/application-element-tree.md→ApplicationElementTreeData.json(AET tools)configuration/application-settings.md→ApplicationSettings.json(app-settings tools)configuration/grid-widgets.md→ultimo_gridwidgets.xml(grid-widget tools)configuration/text-templates.md→Default_Text_Templates.xml(reference/templates)configuration/feature-toggles.md→ApplicationElementTreeData.json(AET tools)configuration/screens.md→ultimo_screens_names.xml(screen tools)api/import-connectors.md→ultimo_importconnectors_*.xml(connector tools)workflows/standaard-workflows.md→workflows.xml(workflow tools)workflows/workflow-engine.md→workflows.xml(workflow tools)
Deel 2 — broad sweep (69 artikelen, commit 92ed206): Via scripts/retrofit_broad_brondata.py kreeg elk resterend synthese-artikel een uniforme tool-cheat-sheet Brondata. Twee templates:
- Workflow-focused voor
wiki/workflows/*.md(6 artikelen): focus oplookup_workflow/find_workflows/reference/actionfields/index. - Generic voor concepts/configuration/api/integrations/troubleshooting (63 artikelen): uniform menu met
lookup_entity,lookup_table_schema,find_workflows,lookup_screen,find_aet_settings,search.
Resultaat:
- 140+ handgeschreven wiki-artikelen hebben nu een
## Brondatasectie (56 entities + 1 go-plus + 9 handpicked + 69 broad sweep + 5 door memex-bot al eerder). - Linter BRONDATA-errors: 0.
- Tests: 69/69 pass.
retrofit_broad_brondata.pyénretrofit_entity_brondata.pybeide idempotent.
Afgerond: Brondata-framework is nu operationeel over de hele wiki. Toekomstige artikelen krijgen Brondata "bij aanraking" — de linter valideert het voor artikelen met raw-data source:.
Plan: handpicked kreeg geen apart plan-document (9 artikelen — inline); broad sweep was één subagent-task.
2026-04-17 — GoManager (Ultimo Go/Go+ mobile) integratiebewerken
Type: infrastructure + reference-generation + synthesis
Scope: Nieuwe raw-data bron ultimo_gomanager.xml (597 definities) ontsloten via het bestaande Brondata-framework.
Wijzigingen:
lib/raw_data.py— nieuwe parser_load_gomanager()+ helpers (get_gomanager_definition,get_gomanager_by_name,search_gomanager,list_mobile_applications).server.py— 6 nieuwe MCP-tools:lookup_mobile_screen,lookup_mobile_dataset,lookup_mobile_entity,lookup_mobile_menu,lookup_mobile_homepage,find_mobile_definitions. SERVER_INSTRUCTIONS uitgebreid met "Ultimo Go / Go+ (mobile)" sectie.scripts/generate_mobile_reference.py— idempotente generator.wiki/reference/mobile/— 114 nieuwe bestanden (99 screens + 11 menus + 1 homepage + 3 indexes). DataSets (356) en Entity-templates (130) tool-only.wiki/reference/index.md— mobile-categorie toegevoegd.tools/lint.py—ultimo_gomanager.xmlinRAW_SOURCE_FILES.CLAUDE.md— mobile tools toegevoegd aan raw-data tool-lijst.wiki/concepts/go-plus.md— 2 nieuwe synthese-secties ("Standaard Go-applicaties", "Structuur van een Go-applicatie") + Brondata-uitbreiding met 5 mobile-bullets.
Tests: 8 parser-tests + 6 smoke-tests = 14 nieuwe tests. 83/83 totaal.
Linter: 0 BRONDATA-errors na de wijzigingen.
Ontwerp: docs/superpowers/specs/2026-04-17-gomanager-integration-design.md
Plan: docs/superpowers/plans/2026-04-17-gomanager-integration.md
2026-04-23 — create: api/hierarchische-scoping.mdbewerken
Reden: Nieuw artikel: Hiërarchische scoping via boom-aggregatie
2026-04-23 — update-section: api/odata-filters.mdbewerken
Reden: $select - Properties selecteren: $select+expand-valkuil toegevoegd: relatie-properties vereisen expand
2026-04-23 — update-section: api/odata-filters.mdbewerken
Reden: $top en $skip - Paginering: paginatie-sectie uitgebreid met praktische top-limiet en keyset-valkuil op alfanumerieke IDs
2026-04-23 — update-section: api/odata-filters.mdbewerken
Reden: $count - Totaal aantal: count-only pattern toegevoegd: $top=0 + $count=true voor efficiënte counts
2026-04-23 — update-section: api/odata-filters.mdbewerken
Reden: in operator: praktische in-operator limiet toegevoegd (circa 100 waarden)
2026-04-23 — update-section: api/odata-filters.mdbewerken
Reden: Job management: TargetDate-valkuil bij achterstalligheidsfilters: altijd ne null toevoegen
2026-04-23 — update-section: api/odata-filters.mdbewerken
Reden: Beperkingen: samenvatting van toegevoegde valkuilen in centrale beperkingen-lijst
2026-04-23 — update-section: api/odata-filters.mdbewerken
Reden: Gerelateerde artikelen: link naar nieuwe hierarchische-scoping artikel toegevoegd
2026-04-23 — update-section: api/index.mdbewerken
Reden: API Beheer: nieuw artikel hierarchische-scoping opgenomen in API-index
2026-04-28 — Onderhoud: Workflow Commands gedocumenteerd via 19.10 DLL-decompilatiebewerken
Type: ingest + onderhoud
Bronnen:
D:\Ultimo\Production\Website\Bin\Ultimo.Process.Business.Command.*.dll(23 domein-DLLs, version 19.10.11.414 PRODUCTION)Ultimo.Domain.Business.Command.Methods.dll,Ultimo.Web.Command.dll- Decompilatie via
ilspycmd 9.1.0.7988(NuGet portable, geen .NET SDK nodig)
Resultaat:
- 829 workflow-Commands gedocumenteerd met officiële
[CommandDescription]-tekst en typed[In]/[Out]DataTransferObject-members - Coverage: 636/731 (87%) van de unieke
<Command CommandName="...">-references inworkflows.xmlmapt op een 19.10 DLL. Resterende 95 zijn post-19.10 toegevoegd (AI, BarcodeScanner, feature-toggles). - Bron-extract:
Data/decompiled/<Dll>/...(.cs files, ruwe decompilatie) - Index:
Data/commands_index.json(829 commands gestructureerd) - Generatorscripts:
tools/extract_commands.py(DLL → JSON) entools/generate_command_pages.py(JSON → wiki-pagina's)
Nieuwe wiki-pagina's:
wiki/workflows/commands/index.md— overview met alle 25 domein-DLLswiki/workflows/commands/<Domain>.md— per-DLL pagina met tabel + details (Common 204, PreventiveMaintenance 87, Job 85, Reservation 77, Equipment 71, Logistic 65, ...)
Nieuwe MCP-tools (Python + TypeScript):
lookup_command(name)— beschrijving + typed I/O voor één commandfind_commands(query, dll=None)— scored search, optioneel filter op DLL
Bijgewerkt:
wiki/index.md— link naar<a href="/workflows/commands/index">workflows/commands/index</a>toegevoegd onder Workflowswiki/workflows/workflow-engine.md— Brondata sectie verwijst naarlookup_commandserver.py— SERVER_INSTRUCTIONS uitgebreid met Commands-sectiesrc/mcp.ts—lookup_command+find_commandsgeregistreerd,TOOL_NAMESbijgewerktlib/raw_data.py+src/rawdata.ts—_load_commands/loadCommandsparsers
Caveat: Baseline is Ultimo 19.10.11.414 (november 2019). Class-signatures zijn doorgaans stabiel; method-bodies kunnen in nieuwere versies afwijken. Frontmatter version-baseline: "19.10" markeert dit per pagina.
2026-04-30 — update: configuration/package-manager.mdbewerken
Reden: Toegevoegd: sectie 'ApiKey-permissies in PackageDefinition.xml' met AuthorizationLevel-enum, implicit Id/composite-key regels en tenant-afhankelijke RecordChangeDate.
2026-05-19 — update-section: configuration/package-manager.mdbewerken
Reden: Technische structuur van een .up-bestand: Workflow hash-algoritme toegevoegd (reverse-engineered, round-trip geverifieerd 2026-05-19). Opgenomen ter voorkoming van import-fout "Workflow was edited with an unauthorized tool".
2026-05-26 — ingest: LicentiePerWorkflow.txt (licentie per workflow)bewerken
Type: ingest — nieuwe raw-data bron
Bron: Data/LicentiePerWorkflow.txt — JSON-export met 8.834 workflows/ActionFields en per workflow welke licentietypes (isLight, isTechnician, isSelfService, isCustom, neverPublished, isUserContent) mogen triggeren.
Analyse: Licentietoegang is strikt genest: SelfService (2.258) ⊆ Light (2.340) ⊆ Technician (2.515) ⊆ Full (8.834). Per minimale licentie: SelfService 2.258, Light-only 82, Technician-only 175, Full-only 6.319. Slechts 7 custom workflows; neverPublished/isUserContent overal false.
Nieuwe wiki-pagina:
wiki/concepts/licenties.md— synthese: geneste licentiemodel, aantallen, voorbeelden van licentiegrenzen (urenboeken = Technician, ShiftLog/AssetPlanner = Light), consultant-richtlijnen, Brondata.
Nieuwe MCP-tools (Python + TypeScript):
lookup_workflow_license(name)— minimale licentie + toegestane tiers + losse flags voor één workflow/ActionFieldfind_workflows_by_license(query?, license?)— filter/zoek workflows op tier; zonder argumenten telling per tier
Bijgewerkt:
wiki/index.md+wiki/concepts/index.md— link naar<a href="/concepts/licenties">concepts/licenties</a>wiki/concepts/autorisatie.md+wiki/concepts/self-service.md— cross-links naar<a href="/concepts/licenties">licenties</a>wiki/_meta/sources.md— bron geregistreerdserver.py+src/mcp.ts— tools geregistreerd, instructies +TOOL_NAMESbijgewerktlib/raw_data.py+src/rawdata.ts—_load_workflow_licenses/loadWorkflowLicensesparsers (tolerant voor de"total": xxxxplaceholder)tools/lint.py—LicentiePerWorkflow.txttoegevoegd aanRAW_SOURCE_FILES(Brondata verplicht)tests/test_raw_data_workflow_licenses.py— 7 tests (parser, nesting-invariant, search, summary)
Geen reference-pagina's: hoge cardinaliteit (8.834) — tool-only, conform grid widgets/import connectors.
2026-05-26 — update-section: concepts/licenties.mdbewerken
Reden: Veelgestelde vragen: FAQ uitgebreid: melder/aanvrager vereist alleen SelfService-licentie
2026-05-26 — onderhoud: Training-survey + workflow-designer uitbreidingbewerken
Type: onderhoud (content-gap-analyse + kleine ingest)
Actie: Data/Training/ (42 bestanden) opnieuw doorgelicht op ongedekte kennis. Conclusie: het trainingsmateriaal is al vrijwel volledig verwerkt (workflow-designer, workflow-instructies, workflow-debugger, scheduled-workflows, entity-overview, sql-patronen). Eén reëel gat gevuld:
workflows/workflow-designer.md— nieuwe subsectie "Recept: achterhalen welke (sub-)workflow een veld vult" (debugger: watch doel-property + breakpoints rond een WorkflowCall om de verantwoordelijke sub-workflow te identificeren). Bron:Data/Training/...12-35-24.txt.
Overig: nieuwe tools/eval_search.py (retrieval-eval, pass@5 20/20 / MRR 0.808 tegen hybrid); reindex-bij-deploy in start.sh; 2 broken links gefixt (linter negeert nu links in code-spans).
2026-05-27 — ingest: entiteiten-sweep fase 4 (53 nieuwe entiteit-artikelen)bewerken
Type: ingest (curated entiteit-artikelen)
Bronnen: Data/Entities.xml (643 entiteiten) + Data/database-schema.json (677 tabellen)
Aanleiding: Gap-analyse — curated laag wiki/entities/ dekte 67 van 643 entiteiten; veel belangrijke standalone-entiteiten (relatie-targets als EquipmentType, WorkOrderType, Company, RiskClass, ...) misten een curated artikel. Reference-laag was al compleet (643/643).
Methode: Ground-truth scripted geëxtraheerd (contexts, statussen, properties, uitgaande + inkomende relaties, DB computed/triggers/defaults) → skeleton met proza-markers → curated NL proza via 9 parallelle agents (alleen proza, feiten staan vast in skeleton) → deterministische merge → lint. Pipeline: tools/_entity_extract.py, _entity_gen.py, _entity_fill.py.
Resultaat: 53 nieuwe wiki/entities/*.md (57 → 110 artikelen). Elk volledig equipment-stijl met ## Brondata.
- Asset/classificatie: equipment-type, work-order-type, maintenance-state, equipment-move, object-downtime, long-term-asset
- Vastgoed: building-part, building-floor, space-maintenance, space-maintenance-activity
- Inspecties: inspection-plan, inspection-plan-line, object-inspection-plan, object-inspection-line, job-inspection-line
- HSE & risico: risk-class, safety-dossier, product-dossier, field-safety-notice, object-risk-analysis, task-risk-analysis, aoc
- Planning & reserveringen: pm-schedule, work-order-schedule, year-plan, reservable-object, reservation-line, reservation-occurrence, appointment
- Inkoop & magazijn: warehouse-location, article-group, request-for-quotation, purchase-advice
- Financieel: budget-period, internal-charge, payment-transaction, account, vat, currency
- Servicedesk & klant: customer, service-desk-report-type
- Systeem & configuratie: company, domain-settings, user, feature, confirmation-role, country, time-unit
- Integratie & documenten: import-connector, export-connector, cad-import-profile, object-document, email
Bijgewerkt:
wiki/index.md— 53 entiteit-rijen toegevoegd aan Entiteiten-tabelwiki/entities/index.md— nieuwe gegroepeerde sectie "Aanvullende entiteiten"wiki/_meta/sources.md— fase 4 geregistreerd
Lint: 0 broken links, 0 ontbrekende Brondata, geen nieuwe orphans.
2026-05-27 — feat: property-usage laag (welke workflows elke property lezen/schrijven/filteren)bewerken
Type: feature (afgeleide index + MCP-tools + reference-pagina's + curated narratief)
Bron: Data/workflows.xml (op property-niveau) + Data/Entities.xml (type-resolutie)
Aanleiding: Behoefte om per entiteit-property te zien wélke workflows hem vullen/lezen en wat ze ermee doen (bv. "hoe wordt Job.ScheduledStartDate gevuld?" → o.a. Job_RecalculatePlanningDatesBasedOnPriority op basis van prioriteit). Voorheen alleen handmatig uit 22 MB workflow-XML te halen.
Engine: Indexer in lib/raw_data.py + src/rawdata.ts (exacte pariteit). Resolvet ${Variabele.Property}-referenties in de workflow-body via de workflow-<Properties> (variabele→entiteit-type) en classificeert read/write/filter (Assign/Insert/ChangeStatus = write; PropertyFilter = filter; overige ${} = read). Geneste paden ${A.B.C} worden hop-voor-hop geresolved. Resultaat: 5.087 entiteit-property-paren, 641 entiteiten, 4.085 betrokken workflows.
Tools: lookup_property_usage(entity, property) en find_property_usages(query, entity?) — geregistreerd in server.py + src/mcp.ts, opgenomen in TOOL_NAMES en de MCP-instructies.
Wiki:
wiki/reference/properties/*— 458 gegenereerde per-entiteit pagina's + index (entiteiten met alleen triviaal status-gebruik overgeslagen). Generator:tools/generate_property_pages.py.wiki/entities/job.md— nieuwe sectie "Functionaliteit & property-gedrag" (planningsdatums via prioriteit/SLA, status-lifecycle, accept, kostendragers) + 2 Brondata-bullets.wiki/reference/index.md— property-laag toegevoegd aan categorie-tabel.
Tests: tests/test_raw_data_property_usage.py (13 tests: write/read/filter-classificatie, variabele→type-resolutie, geneste resolutie, no-double-count, synthetische buckets uitgesloten, onbekend→None).
Docs: CLAUDE.md (raw-data-toollijst + Tools-tabel), wiki/_meta/sources.md.
Noot: de oorspronkelijk genoemde OriginalFinalFinishDate bestaat niet als ${}-referentie; Job.ScheduledStartDate (20 schrijvende workflows) is als representatief proof gebruikt.
2026-05-27 — feat: property-gedrag narratief uitgebreid (Equipment, PM, Article, inkoopketen)bewerken
Type: content (curated narratief, vervolg op de property-usage laag)
Aanleiding: Data-gedreven prioritering — entiteiten gerangschikt op aantal workflows dat hun properties schrijft (writers = gedrag). Na Job (225 writers): Equipment (78), inkoop-regels (PurchaseRequestLine 70 / PurchaseLine 48), PmWorkOrder (38), Article (27/179 touch), ServiceDeskReportType, etc.
Resultaat: Sectie "## Functionaliteit & property-gedrag" toegevoegd aan 6 curated artikelen, met echte workflow-namen uit de property-usage index (evidence: tools/_pu_evidence/*.txt):
wiki/entities/equipment.md— Status-lifecycle (BuildIn/BuildOut/Move), type-/onderhoudsconcept-overerving, individueel PO, kostendragers, exchange parts.wiki/entities/pm-workorder.md— frequentie/volgende-datum, jobgeneratie, activering, executie-percentage, bulk.wiki/entities/pm-job.md— jobplan-koppeling, generatie, downtime, looproute-override, duur/delay.wiki/entities/article.md— voorraadmethode, registratie, inkoopniveaus, prijs/toeslag, voorkeursleverancier, vervangartikel.wiki/entities/purchase-request.md— status/fiattering/drempels, besteladvies→regel, artikeldata op regels, bezorgdatum, reservering, offertetraject (Tender).wiki/entities/purchase.md— status, fiattering, valuta/wisselkoers, prijsberekening op regels, ontvangst, kostendragers, ERP-integratie (MS Dynamics/SAP).
Elk artikel kreeg 2 Brondata-bullets (lookup_property_usage · reference/properties/<Entity> + lookup_workflow(...)).
Verificatie: lint 0 broken links / 0 ontbrekende Brondata / geen nieuwe orphans; alle geciteerde workflow-namen geverifieerd tegen workflows.xml.
2026-05-27 — feat: property-gedrag uitgebreid + 3 nieuwe entiteit-artikelenbewerken
Type: content (vervolg property-usage laag), data-gedreven prioritering op writers.
Groep A — narratief toegevoegd aan bestaande artikelen:
wiki/entities/service-desk-report-type.md— config-template (122 writers): zet Job-context/defaults, kostendragers, afhandelroute (SetContext/BackOffice), progress-/recordstatus, multijob-template, vervolgacties (Incident/ConditionFlawPresent), publicatiepoort (servicedesk/self-service).wiki/entities/reservation.md— reserveringsproces (Reservation + ReservationLine + ReservationOccurrence): tijdpatroon/herhaling, beschikbaarheid/conflict-detectie, annulering-cascade, catering-artikelen, aanvrager-cascade.
Groep B — NIEUWE curated artikelen (equipment-stijl, feiten scripted via pipeline) + narratief, voor workflow-zware entiteiten die nog geen artikel hadden:
wiki/entities/condition-flaw-present.md(Geconstateerd gebrek) — conditiemeting/inspectie-bevinding; score/maintenance-state, koppeling aan job, mobiel rapporteren.wiki/entities/warehouse-serve-out.md(Magazijnuitgifte) — uitgifte + regel-gedrag (WarehouseServeOutline, ~60 writers): picklijst/scanner-aanmaak, goedkeuring, voorraadmutatie/transfer, batch, doorbelasting, kostendragers.wiki/entities/shift-log-line.md(Ploegenlogboekregel) — wachtoverdracht: regels aanmaken/doorschuiven tussen diensten, status, herhaalpatroon, koppeling job/downtime/meetpunt/incident, mobiel.
Methode: writers-ranglijst (writers = workflows die property's vullen). Feiten van de 3 nieuwe entiteiten scripted via tools/_entity_extract.py dump-names → _entity_gen.py; curated proza + narratief door agents, gegrond op echte workflow-namen uit de property-usage index (tools/_pu_evidence/*).
Bijgewerkt: wiki/entities/index.md (3 nieuwe rijen + subsectie "Operations & ploegenlogboek"), wiki/index.md. 1 oude placeholder-broken-link in log.md gefixt (in code gezet).
Verificatie: lint 0 broken links / 0 ontbrekende Brondata / geen nieuwe orphans; geciteerde workflow-namen geverifieerd tegen workflows.xml.
2026-05-27 — feat: property-gedrag voor JobMaterial + SpaceMaintenanceActivitybewerken
Type: content (vervolg property-usage laag), data-gedreven (writers-ranglijst).
Sectie "## Functionaliteit & property-gedrag" toegevoegd aan 2 bestaande artikelen:
wiki/entities/job-material.md(35 writers) — materiaal toevoegen (mobiel/stuklijst/magazijnuitgifte), defaults + kostendragers, voorraadreservering (reserve/adjust/clear), picklijst-splitsing, goedkeuring, en hoe materiaalregels de job-voorraadvoortgangsstatus bepalen.wiki/entities/space-maintenance-activity.md(31 writers) — kosten/prijs-berekening (CostYear1..15), onderhoudsfrequentie/-methode + uitvoermomenten, volgend onderhoudsjaar, gecorrigeerd bouwjaar, statusbeheer/activering, en jaarplanscenario-koppeling.
Elk kreeg 2 Brondata-bullets (lookup_property_usage · reference/properties/<Entity> + lookup_workflow). Verificatie: lint 0 broken links / 0 ontbrekende Brondata / geen nieuwe orphans; geciteerde workflow-namen geverifieerd tegen workflows.xml.
Stand: property-gedrag-narratieven nu voor 14 entiteiten (Job, Equipment, PmWorkOrder, PmJob, Article, PurchaseRequest, Purchase, ServiceDeskReportType, Reservation, ConditionFlawPresent, WarehouseServeOut, ShiftLogLine, JobMaterial, SpaceMaintenanceActivity).
2026-05-27 — feat: property-gedrag voor ProcessFunction + Invoicebewerken
Type: content (vervolg property-usage laag), writers-ranglijst.
Sectie "## Functionaliteit & property-gedrag" toegevoegd aan 2 bestaande artikelen:
wiki/entities/process-function.md(19 writers, 109 touch) — kostendragers/locatie-overerving naar onderliggende equipment & jobs/inkoopregels, equipmenttype + features/reservedelen, specifieke storingsoorzaken, indicatorwaarden/meetpunten, hiërarchie en maintenance-state/validatie.wiki/entities/invoice.md(22 writers) — statuslevenscyclus en gates, boekingsdatum bij goedkeuring, valuta/wisselkoers, leverancier-overname, matchingpad (PurchaseAddType, 2-/3-weg), heropening/credit.
Elk kreeg 2 Brondata-bullets (lookup_property_usage · reference/properties/<Entity> + lookup_workflow). Verificatie: lint 0 broken links / 0 ontbrekende Brondata / geen nieuwe orphans; geciteerde workflow-namen geverifieerd tegen workflows.xml.
Stand: property-gedrag-narratieven nu voor 16 entiteiten.
2026-05-27 — feat: property-gedrag voor Space, WorkOrder, JobInspectionLine, Warehousebewerken
Type: content (vervolg property-usage laag), op verzoek.
Sectie "## Functionaliteit & property-gedrag" toegevoegd:
wiki/entities/room.md(entiteit Space, 33 writers) — ruimte-aanmaak via CAD-import, oppervlakte-validatie, reserveerbaarheid/VHE-verhuur, beschikbaarheidsagenda, kostendrager-overerving, hiërarchie.wiki/entities/work-order.md(WorkOrder, 21 writers) — status + project-gates, planningsdatums (stop-planketen viaProject_AddOrEditStopWorkOrder), prioriteit (impact×urgency), structuur/sortering, equipment-doorzetten naar jobs.wiki/entities/job-inspection-line.md(JobInspectionLine, 67 writers) — resultaat/score invullen, OK/niet-OK-logica, overslaan met reden, vervolgjob/gebrek genereren, afbeeldingen, meetwaarden/indicator, status.wiki/entities/warehouse.md(Warehouse) — korte, eerlijke sectie: de entiteit is nauwelijks workflow-gedreven (alleenWarehouse_PostImportzet Status); verwijst naar waar het magazijn-procesgedrag wél zit (WarehouseLocation, WarehouseServeOut, JobMaterial, PickList, StockCount, Article).
PmWorkOrder, Equipment en ProcessFunction waren al gedekt (overgeslagen). Elk artikel kreeg property-usage Brondata-verwijzingen (lookup_property_usage · reference/properties/<Entity> + lookup_workflow).
Verificatie: lint 0 broken links / 0 ontbrekende Brondata / geen nieuwe orphans; geciteerde workflow-namen geverifieerd tegen workflows.xml.
Stand: property-gedrag-narratieven nu voor 20 entiteiten.
2026-05-27 — onderhoud: LLM-navigatie naar property-gebruik (MCP-guidance)bewerken
Type: onderhoud (MCP tool-guidance; best-practice onderzoek → beslissing)
Aanleiding: Een MCP kan een werkwijze niet afdwingen (model-controlled, geen harde sequencing in de spec), alleen sturen. Hoogste-impact levers (bron: MCP-spec, MCP/Anthropic-blogs, Block's playbook): (1) server-instructions, (2) tool-descriptions; in-band output-hints zijn secundair (spaarzaam). Doel: de LLM moet betrouwbaar van entiteit → property-gebruik navigeren, niet "verdwalen".
Doorgevoerd (Python + TS, in sync):
server.py/src/mcp.tsinstructies: expliciet "Navigatie-recept: entiteit → property-gebruik" (lookup_entity → lookup_property_usage → lookup_workflow), met de waarschuwing dat de property→workflow-koppeling ALLEEN in lookup_property_usage/find_property_usages zit.- Descriptions van
lookup_entityenlookup_table_schemaverrijkt met de vervolgstap naarlookup_property_usage. lookup_entity-output krijgt één korte pointer-regel naarlookup_property_usage/find_property_usages(supplementair, conform best practice).
Geen wiki-content gewijzigd. Verificatie: beide servers laden; pointer aanwezig in lookup_entity-output.
2026-05-27 — fix(web): relatieve ../ wiki-links resolven correct in de frontendbewerken
Type: bugfix (frontend-renderer) + regressietest
Probleem: gegenereerde reference-pagina's gebruiken relatieve links <a href="/reference/entities/Job">../tables/Job</a> / ../entities/X (1247 pagina's). De frontend-renderer (src/web.ts resolveWikiLinks) stripte ../ i.p.v. relatief te resolven → <a href="/reference/entities/Job">../tables/Job</a> werd een redlink naar /tables/Job (404) i.p.v. /reference/tables/Job.
Waarom niet eerder gevangen: lint.py/health.py gebruiken een permissieve resolver (suffix-match) die deze links als "opgelost" zag; er was geen check tegen de échte frontend-renderer. Drie resolvers, niet in lijn.
Fix: resolveWikiLinks resolvet nu in prioriteit: (1) root-relatief literal, (2) relatief t.o.v. de huidige pagina (met ../.-normalisatie), (3) bare stem. Lost alle 1247 pagina's in één keer op; full-path en bare links blijven werken; #anchors blijven behouden.
Regressietest: src/web.test.ts (toegevoegd aan npm run test:ts) rendert reference-pagina's via de echte renderArticle en eist dat ../-links resolven en er geen redlinks zijn. 27 TS-tests groen.
2026-05-27 — fix(mcp): find_workflows stuurt property-vragen naar lookup_property_usagebewerken
Type: bugfix/guidance (n.a.v. een echte foutieve LLM-sessie)
Observatie: een LLM zocht "waar wordt Job.ScheduledStartDate gebruikt" via find_workflows("ScheduledStartDate", entity="Job") → 9 workflows (enkel met de term in de NAAM) en presenteerde dat als het antwoord. Het juiste lookup_property_usage("Job","ScheduledStartDate") geeft 20 schrijvers + 95 lezers + 3 filters (~118). De LLM zei zelf dat de property-usage-tool niet in z'n lijst stond → verouderde tool-lijst (client moet herverbinden; server hééft de tool, live geverifieerd).
Hardening (Py + TS): find_workflows maakt nu in description én output expliciet dat het een NAAM/beschrijving-zoek is, met een pointer naar lookup_property_usage(entity, property) voor property-gebruik. Zo wordt zelfs een gewoontegetrouwe of net-herverbonden LLM naar de juiste tool gestuurd i.p.v. een onvolledig naam-resultaat als antwoord te nemen.
Verificatie: beide servers laden; hint aanwezig in find_workflows-output.
2026-05-27 — feat: property-gedrag samenvatting per workflow (proof: Job.ScheduledStartDate)bewerken
Type: feature (LLM-gegenereerde property-specifieke samenvattingen via subagents)
Aanleiding: lookup_property_usage toonde per workflow alleen de naam (+ workflow-Description). Die zegt wat de WORKFLOW doet, niet wat er met de PROPERTY gebeurt. De deterministische Assign-waarde was te oppervlakkig (vaak een interne variabele als ${CalculatedStartDate}). Daarom: per (workflow, property) een korte samenvatting laten maken door de workflow-logica te begrijpen.
Aanpak: 3 Haiku-subagents lazen de workflow-XML van de 20 schrijvers van Job.ScheduledStartDate en traceerden hóe/waaróm de property wordt gezet → één NL-zin per workflow. Gemerged naar Data/property_behavior.json (entity → property → workflow → zin).
Integratie: lib/raw_data.py + src/rawdata.ts krijgen get_property_behavior(...); lookup_property_usage toont per regel de property-specifieke samenvatting met de workflow-Description als fallback. Py + TS in sync.
Voorbeeld-output (writers van Job.ScheduledStartDate):
- Job_RecalculatePlanningDatesBasedOnPriority — "Zet ScheduledStartDate o.b.v. prioriteit-doorlooptijd, rapportdatum en werkrooster..."
- Job_SetPlanningDatesBySLA — "Zet ScheduledStartDate uit SLA-informatie wanneer een servicecontract van toepassing is."
- Gantt_ModifyJob — "Stelt de startdatum in op de waarde die de gebruiker op het Gantt-bord heeft ingesteld."
Scope: proof = Job.ScheduledStartDate (20 writers). Opschaalbaar naar alle Job-writers (225) en het corpus (2330 distinct write-workflows) door meer subagent-batches te draaien en te mergen.
Opgeruimd: 5 letterlijke NUL-bytes in src/rawdata.ts (gebruikt als Map-sleutel-scheidingsteken) vervangen door de