From 12ab9cea0069717332524a894604a300e5b5c43a Mon Sep 17 00:00:00 2001 From: beo3000 Date: Sun, 15 Feb 2026 19:56:18 +0100 Subject: [PATCH] upd framework, added projects --- .gitignore | 1 + home-claude/settings.json | 1 - home-gemini/settings.json | 16 ++- memory/projects/GoodWood/.gitkeep | 0 memory/projects/GoodWoodApp/MEMORY.md | 20 ++++ memory/projects/ISMS-DB/MEMORY.md | 29 +++++ memory/projects/Koogle2025/.gitkeep | 0 memory/projects/aims/.gitkeep | 0 memory/projects/claude-meta/.gitkeep | 0 memory/projects/claude/MEMORY.md | 15 +++ memory/projects/global/.gitkeep | 0 memory/projects/hello-world/.gitkeep | 0 memory/projects/kbsV3/MEMORY.md | 34 ++++++ memory/projects/kbsV3/kbsv3-architecture.md | 122 ++++++++++++++++++++ memory/projects/project-map.json | 12 ++ scripts/install.ps1 | 78 +++++++++++++ scripts/install.sh | 66 +++++++++++ scripts/link-project-memory.ps1 | 71 ++++++++++++ 18 files changed, 461 insertions(+), 4 deletions(-) create mode 100644 memory/projects/GoodWood/.gitkeep create mode 100644 memory/projects/GoodWoodApp/MEMORY.md create mode 100644 memory/projects/ISMS-DB/MEMORY.md create mode 100644 memory/projects/Koogle2025/.gitkeep create mode 100644 memory/projects/aims/.gitkeep create mode 100644 memory/projects/claude-meta/.gitkeep create mode 100644 memory/projects/claude/MEMORY.md create mode 100644 memory/projects/global/.gitkeep create mode 100644 memory/projects/hello-world/.gitkeep create mode 100644 memory/projects/kbsV3/MEMORY.md create mode 100644 memory/projects/kbsV3/kbsv3-architecture.md create mode 100644 memory/projects/project-map.json create mode 100644 scripts/link-project-memory.ps1 diff --git a/.gitignore b/.gitignore index 3e8f580..3935930 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # OS Thumbs.db .DS_Store +nul # Temp *.bak diff --git a/home-claude/settings.json b/home-claude/settings.json index 8b28f84..a60b1da 100644 --- a/home-claude/settings.json +++ b/home-claude/settings.json @@ -50,7 +50,6 @@ ], "defaultMode": "acceptEdits" }, - "model": "sonnet", "enabledPlugins": { "csharp-lsp@claude-plugins-official": true }, diff --git a/home-gemini/settings.json b/home-gemini/settings.json index 45ffa68..1d7b0a2 100644 --- a/home-gemini/settings.json +++ b/home-gemini/settings.json @@ -1,6 +1,16 @@ { - "model": { "name": "gemini-2.5-pro" }, + "model": { + "name": "gemini-2.5-pro" + }, "context": { - "includeDirectories": ["C:/work/claude-meta/memory"] + "includeDirectories": [ + "C:/work/claude-meta/memory" + ] + }, + "hasSeenIdeIntegrationNudge": true, + "security": { + "auth": { + "selectedType": "oauth-personal" + } } -} +} \ No newline at end of file diff --git a/memory/projects/GoodWood/.gitkeep b/memory/projects/GoodWood/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/memory/projects/GoodWoodApp/MEMORY.md b/memory/projects/GoodWoodApp/MEMORY.md new file mode 100644 index 0000000..ebe6456 --- /dev/null +++ b/memory/projects/GoodWoodApp/MEMORY.md @@ -0,0 +1,20 @@ +# GoodWood App Notes + +## Architecture +- Blazor Server (.NET 9), Clean Architecture: Domain → Application → Infrastructure → Web +- Fluxor (Redux): Store/{Feature}State/{Actions,Reducers,Effects,State}.cs pattern +- AutoMapper profiles in Application/Mapping/ +- EF migrations: `dotnet ef migrations add [Name] --project src/GoodWood.Infrastructure --startup-project src/GoodWood.Web --context AppDbContext --output-dir Data/Migrations` +- Dual DbContext: AppDbContext (app schema), AppIdentityDbContext (auth schema) + +## Code-behind pattern +- Partial classes: Component.razor + Component.razor.cs +- [Inject] needs `using Microsoft.AspNetCore.Components;` in .cs files (not auto-imported unlike .razor) + +## SEPA Export (added 2026-02-08) +- pain.008.003.02 XML generated by SepaXmlBuilder (System.Xml, no external lib) +- Download via JS: `window.downloadFile` in wwwroot/js/fileDownload.js +- SepaExport entity links CashBookEntries via nullable FK SepaExportId +- PaymentStatus enum on CashBookEntry: Open/DirectDebitCollected/Paid +- Person gets: Iban, Bic, SepaMandateReference, SepaMandateDate +- Club gets: BankIban, BankBic, SepaCreditorId diff --git a/memory/projects/ISMS-DB/MEMORY.md b/memory/projects/ISMS-DB/MEMORY.md new file mode 100644 index 0000000..d345637 --- /dev/null +++ b/memory/projects/ISMS-DB/MEMORY.md @@ -0,0 +1,29 @@ +# ISMS-DB Project Memory + +## Skill Triggers +- "aktualisiere unser ISMS", "ISMS aktualisieren", "ISMS updaten" → ALWAYS invoke Skill `isms-update` +- This skill runs: Fetch-Data.ps1 → edit JSON → Upload-Data.ps1 +- NEVER edit tenant data (Data/default/*.json) without running fetch first +- NEVER skip upload after editing + +## Auth Stack +- Microsoft.Identity.Web 3.x (resolved 3.14.1) +- Use `AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme).AddMicrosoftIdentityWebApp(...)` — NOT `services.AddMicrosoftIdentityWebApp(...)` (IServiceCollection overload removed in 3.x) +- `using Microsoft.Identity.Web.UI;` required in Program.cs for `AddMicrosoftIdentityUI()` +- Use `PostConfigure` to hook `OnTokenValidated` without clobbering MSIW's own handler + +## SecurePageModel Pattern +- Inherits `PageModel`, uses `override` on `OnPageHandlerSelectionAsync` / `OnPageHandlerExecutionAsync` +- Do NOT declare `IAsyncPageFilter` explicitly — `PageModel` already has virtual methods +- Resolves `IUserService` + `TenantService` via `ctx.HttpContext.RequestServices` + +## Audit Result Writing +- NEVER delegate JSON creation to a Task subagent — too slow (33 calls, 17 min) +- Build the JSON object in main context, then pipe to `append-audit-result.py`: + `python3 append-audit-result.py src/IsmsApp/Data/default/ <<'JSONEOF' ... JSONEOF` +- Script validates: .lock, control exists, Id unique, Iteration unique +- For the JSON heredoc: use python3 inline to generate UUIDs + timestamps, then echo + +## Razor Gotcha +- `RZ1031`: cannot put free-standing `@(expr)` in `