====== Profile Matrix ====== **Version:** 2.1\\ **Purpose:** Fast and consistent selection of checklists based on project type. ===== Legend ===== * **MUST:** Apply these checklists by default * **IF RELEVANT:** Apply when the changeset touches the area * **NOTES:** Typical pitfalls and review focus ===== Profiles ===== ==== Crypto Module ==== **MUST** * [[core|Core]] * [[security:kritis|Security KRITIS/NIS2]] * [[security:crypto|Crypto]] * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] * [[project:build-metadata|Build Metadata]] * [[infrastructure:documentation|Documentation]] * [[project:documentation|Project Documentation]] **IF RELEVANT** * [[code:performance|Performance]] * [[infrastructure:crossplatform|Crossplatform]] **NOTES** * Misuse resistance beats "clean API". Design for correct-by-default. * Treat logs and errors as potential oracles. ---- ==== WebAPI ==== **MUST** * [[core|Core]] * [[security:kritis|Security KRITIS/NIS2]] * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] * [[project:build-configuration|Build Configuration]] * [[infrastructure:documentation|Documentation]] * [[project:documentation|Project Documentation]] **IF RELEVANT** * [[code:performance|Performance]] * [[infrastructure:crossplatform|Crossplatform]] * [[stacks:sql|SQL]] (if DB access) * [[security:crypto|Crypto]] (if auth/crypto/custom tokens) **NOTES** * Require parameterization for DB access; treat every input as hostile. * Availability: rate limits, timeouts, bounded memory, predictable error mapping. ---- ==== Library (shared DLL / NuGet / Package) ==== **MUST** * [[core|Core]] * [[code:naming|Naming]] * [[code:functions|Functions]] * [[project:build-metadata|Build Metadata]] * [[infrastructure:documentation|Documentation]] * [[project:documentation|Project Documentation]] **IF RELEVANT** * [[security:kritis|Security KRITIS/NIS2]] * [[code:performance|Performance]] * [[infrastructure:crossplatform|Crossplatform]] **NOTES** * Public API stability and semantic versioning are primary. * Avoid transitive dependency surprises. ---- ==== Desktop App (WinForms/WPF/Delphi/Qt) ==== **MUST** * [[core|Core]] * [[project:build-configuration|Build Configuration]] * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] * [[infrastructure:documentation|Documentation]] **IF RELEVANT** * [[infrastructure:i18n|i18n]] (user-facing strings) * [[security:kritis|Security KRITIS/NIS2]] (network/crypto/licensing) * [[infrastructure:crossplatform|Crossplatform]] (if multi-OS) **NOTES** * UI threading rules and resource cleanup are frequent defect sources. * Check settings paths and per-user data handling. ---- ==== VSCode Extension ==== **MUST** * [[core|Core]] * [[infrastructure:crossplatform|Crossplatform]] * [[project:build-metadata|Build Metadata]] * [[infrastructure:documentation|Documentation]] * [[stacks:vscode-extension|VSCode Extension Stack]] **IF RELEVANT** * [[security:kritis|Security KRITIS/NIS2]] (remote calls, auth, downloads) * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] **NOTES** * Activation events, contribution points, and settings schema must remain coherent. * Never block the extension host; long work must be cancellable. ---- ==== Outlook AddIn (VSTO / Office.js) ==== **MUST** * [[core|Core]] * [[security:kritis|Security KRITIS/NIS2]] * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] * [[stacks:outlook-addin|Outlook AddIn Stack]] **IF RELEVANT** * [[security:crypto|Crypto]] (sign/encrypt workflows) * [[infrastructure:crossplatform|Crossplatform]] (Office.js multi-platform) **NOTES** * COM lifetime (release), Explorer vs Inspector context, UI state sync are critical. * Avoid sensitive data leakage into Outlook item properties and logs. ---- ==== TUI / CLI Application ==== **MUST** * [[core|Core]] * [[infrastructure:cli-tui|CLI/TUI]] * [[infrastructure:crossplatform|Crossplatform]] * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] **IF RELEVANT** * [[security:kritis|Security KRITIS/NIS2]] * [[code:performance|Performance]] **NOTES** * Exit codes, stdout vs stderr, pipe-friendly output, and deterministic behavior matter. ---- ==== SQL Server Algorithms ==== **MUST** * [[core|Core]] * [[stacks:sql|SQL Stack]] * [[security:kritis|Security KRITIS/NIS2]] **IF RELEVANT** * [[code:performance|Performance]] * [[infrastructure:documentation|Documentation]] **NOTES** * Query plans, indexing strategy, transaction semantics, and parameterization are core review targets. ---- ==== Inno Setup Projects ==== **MUST** * [[core|Core]] * [[stacks:innosetup|InnoSetup Stack]] * [[project:build-metadata|Build Metadata]] * [[security:kritis|Security KRITIS/NIS2]] **IF RELEVANT** * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] **NOTES** * Upgrade/uninstall behavior and code signing are common failure points. ---- ==== MS Access VBA Projects ==== **MUST** * [[core|Core]] * [[stacks:access-vba|Access VBA Stack]] * [[security:kritis|Security KRITIS/NIS2]] * [[infrastructure:documentation|Documentation]] **IF RELEVANT** * [[project:build-metadata|Build Metadata]] **NOTES** * Deterministic builds (ACCDE), references, and robust error handling are key. ---- ==== DokuWiki Plugin ==== **MUST** * [[core|Core]] * [[stacks:dokuwiki-php|DokuWiki/PHP Security]] * [[security:kritis|Security KRITIS/NIS2]] * [[infrastructure:logging|Logging]] * [[infrastructure:configuration|Configuration]] * [[infrastructure:documentation|Documentation]] **NOTES** * Treat all page/user content as hostile; follow DokuWiki APIs for escaping/ACL. ---- //Version: 2.1 (Split)//\\ //Author: Wolfgang van der Stille// ~~DISCUSSION:off~~