Log

Append-only changelog of knowledge-base activity. Newest entries first.

2026-06-12 — Grand Overhaul

Full-wiki currency audit: 77 of ~100 pages were untouched since the 2026-04-15 initial seeding and predated two months of pivots. Every renewa-one sub-page was re-verified against the codebase (schema.ts, CLAUDE.md, specs, CI workflows) and corrected; nothing was deleted — superseded pages move to archive/ with a banner (new convention, see below).

2026-06-12

  • sweep: Two-day sweep — 27 PRs merged in bookish-broccoli since 2026-06-11. Headline: persistence topology (I#2013) — spec PR#2014 + enforcement PR#2020 establish a PoEAA layer map (presentation never touches the DB, services add no new persistence, domain modules are the sole Drizzle owner) with a ratcheted 221-file allowlist gate (CI job + quick-lint rule 11) and a container domain slice with the type-narrowed ProcessorContainer. Strangler Fig migration, same mechanism as the Human FK rule
  • note: The motivating incident merged the same day: PR#2005 (I#1802) document obtaining writes the canonical file chain — first domain-module exemplar (findUnchainedFulfillments beside ensureFulfillmentChain, reconciliation processor as pure orchestration) and lib/db-errors.ts isUniqueViolation, fixing the drizzle ≥0.44 wrapped-SQLSTATE race that flaked backend CI
  • note: Human FK ratchet keeps closing — PR#1931 migrates workflow_transition_log.actorId from users.id to contacts.id (I#1759), the last known P2 gap
  • sweep (2026-06-11 portion, 20 PRs): Files collection-canonical foundation PR#1752 (restart of I#1722); Workflow v4 PR-1 data layer PR#1942 (I#1933); N-1 migration compatibility CI gate PR#1938; HubSpot hardening batch (PR#1926 associations integrity, PR#1927 timeouts/Retry-After/health caching, PR#1928 sanitize at the mapping choke point, PR#1964 unified log structure, PR#1982 webhook payload redaction, PR#1983 buildings mirror columns); site protocols tab PR#1969 + PDF export PR#1994; Storybook build gate + diff coverage PR#1958 and story tests with MSW PR#1966; deliberate-passes decision record PR#1956 (I#1955 — feature flags, SBOM/signing, commit signing, full OpenAPI, Prometheus consciously declined with revisit triggers)
  • ingest: New pattern page Persistence Topology — layer map, PoEAA-vs-Clean vocabulary disarmament, ratchet mechanics, processors-as-peer-clients rule
  • update: Service Layer Pattern rewritten to the I#2013 topology (Route → Service → Domain module; processors are no longer service consumers); Backend Architecture layering diagram gains the domain layer and the batch-presentation column; project index links the new page
  • note: Flaky e2e (quote-change board re-navigation) tracked as I#2029; the backend shard flake root-caused to the wrapped SQLSTATE — fix shipped with PR#2005
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config

2026-06-05

  • ingest: Neue Topic-Seite Marketing Materials angelegt — zentrale Sammlung der HubSpot-gehosteten Marketing-Materialien gegliedert nach Zielgruppe (Privatkunden, Hausverwalter, Bestandshalter/Family Offices, Makler, Finanzierungsberater/Banken, Handwerker, Webinare). Quelle: von Hannes bereitgestelltes Link-Verzeichnis
  • update: Master-Index um Topics-Eintrag für Marketing Materials ergänzt

2026-05-07

  • lint: Baseline caught 3 broken wiki-links in the manually-added KOP Integration page (commit c0c589c 2026-05-04 by Hannes — forward-references to Workflow Engine, Billing System, FUE pages that don’t exist yet). Fixed by converting to backtick-wrapped TBD placeholders, matching the convention used in projects/crm/index.md
  • sweep: 10 PRs merged in bookish-broccoli since 2026-05-04, several new opens. Major roadmap restructure: #1674 merged Billing + Workflow Engine V3 rebase — #1554 supersedes #1424 / #1534 / #1608. Billing Phase 1 + Workflow V3 are now ONE workstream. Resolves the long-standing Billing fragmentation friction
  • update: Sidebar/TopBar saga finally closed#1567 TopBar layout cleanup merged 2026-05-06. Started with closed #1422, continued via #1483 and #1530 port, finally cleaned up. Added Done bar to Frontend Overhauls section
  • update: Rules-as-Code workstream is NOT actually closed — two new entries today: #1679 English-only-for-engineering-docs rule (merged) and #1669 Money type adoption guardrails (draft — RNW-399 phase A2, applies the rules-as-code pattern to enforce adoption of the Money type from earlier in the burst)
  • note: Hannes added KOP Integration page (commit c0c589c) as the canonical terminology page for the KOP feature. PR #1675 (draft) is the actual implementation
  • note: Cluster of new V3 follow-ups visible: #1676 Quote Change (workflow scope diff), #1675 KOP integration. Workflow Engine V3 is becoming a proper umbrella initiative
  • note: HubSpot test account data migration tooling #1680 opened — supports the test infrastructure that landed via #1600 integration tests
  • update: active — refreshed open PR tables (V3 #1554 promoted to ready-for-review, removed merged TopBar / billing #1625 / V2 #1597 / HubSpot tests #1600, added new opens including KOP draft and V3 follow-ups), three new sections in Recently merged (2026-05-06, 2026-05-05, kept 2026-05-04 from previous sweep)
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config

2026-05-04

  • sweep: 4-day catch-up sweep (May 1-3 was a weekend; cadence slower than late-April). 8 PRs merged in bookish-broccoli, 2 new open PRs (#1663 Renovate, #1642 flow selector fix)
  • update: Workflow Engine V2 merged (#1597) — major roadmap closure. Active → Done; V3 (#1554) remains the active workflow-engine bar. References table reflects ~3-week original-to-merge journey (started as #1419, rebased to #1597 on 2026-04-29).
  • update: HubSpot integration tests (#1600) merged — added new “HubSpot integration tests” Done bar in HubSpot section of Gantt + References row. The Test Coverage section in HubSpot Integration (added by Hannes 2026-04-29) is now backed by merged code rather than forward-referenced
  • update: Billing roadmap — #1625 Shared types (RNW-413) merged → Done bar updated
  • note: Audit slash command tightened (#1643) — adds squash-migrations + ADP gates + dep pinning + KB updates checks. The /audit tool is becoming substantial; could earn its own page/section if it grows much more
  • note: CI hardening continues — #1640 Redis noeviction for BullMQ pairs with the BullMQ Rules-as-Code rule, #1641 migration-approved label opt-out, #1644 e2e warmup
  • note: Hannes manually expanded decision 003 by 585 lines (commit c62677d, 2026-04-30) with workflow implementation details. Decision is now substantive end-to-end documentation, not just the high-level concept
  • update: active refreshed — removed merged (#1625, #1597), added new opens, three new sections in Recently merged (2026-05-04, 2026-04-30 later, 2026-04-30 morning)
  • lint: Validation passing throughout sweep
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config

2026-04-30

  • fix: Lint baseline before sweep caught 003 missing all 4 required frontmatter fields. Added title, tags (decision, integrations, renewa-one, crm), created, updated. The German body content was preserved untouched. Validation now passes
  • sweep: 6 PRs merged in bookish-broccoli today + 9 new billing PRs opened. Notable closures: #1624 pre-push trimmed (fast locally, heavy in CI); #1621 Linear sync deepens (issues move to Development on main deploy); #1620, #1618, #1617, #1616 fluffy-doodle bug fixes; #1601 HubSpot webhook subscription completion
  • update: Billing initiative restructured on roadmap — added 8 new bars to the Billing section (RNW-391 GoBD, RNW-394 email templates, RNW-395 audience enum, RNW-399 Money type, RNW-400 Drizzle refactor, RNW-413 shared types, RNW-426 write-off BE+FE). Replaces the “Billing fragmentation” pattern flagged in earlier sweeps with structured ticket-driven work
  • note: First visible Rules-as-Code dividend#1626 “refactor(billing): inline sql → Drizzle helpers” applies the #1577 Drizzle rule to existing code. Rules graduated from new-code enforcement to old-code cleanup
  • note: Email VO meta-pattern emerging#1614 draft documents “shape γ” extracted from the merged Email VO pilot (#1540) as a reusable VO blueprint
  • update: active refreshed — 9 new billing PRs in ready-for-review table, 3 new drafts (#1622 analytics, #1615 Infisical staging spec, #1614 VO meta-pattern), Recently merged 2026-04-30 entries added, “Notable patterns” section gets a new top-of-list entry on the billing burst with all RNW links
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config

2026-04-29

  • refactor: Moved HubSpot Integration from features/ to integrations/ in the RENEWA One project tree; removed duplicate entry from Features section in project index (already listed under Integrations)
  • ingest: Created 003-hubspot-contact-data-structure — HubSpot contact data structure decision record covering hybrid Listing/Deal role model with labeled associations, address block computation, snapshot/freeze logic, lead qualification workflow, and GAP analysis of required HubSpot configuration
  • update: HubSpot Integration page expanded — added Webhook Event Handling section (full pipeline diagram, side-effect triggers, handler modules), entity-configs in sync engine table, Test Coverage section (78 integration tests across 4 files from #1600), and consolidated webhook secret documentation (single HUBSPOT_CLIENT_SECRET for OAuth + signature validation per #1599)
  • ingest: Added April 2026 Retrospective in a new top-level content/retrospectives/ section. Honest summary of wins (knowledge base launch, Rules-as-Code workstream, Entra/Org model, Deal-Übergabe, security/CI hardening) and fails (Sidebar saga, Billing fragmentation, Workflow V2/V3 ambiguity, long-running drafts, KB setup self-criticism — repo-name pivot, kebab-case pivot, Mermaid theming, pages.dev gating, etc.). Updated index master index with Retrospectives section. CLAUDE.md updated: added retrospective Type tag and retrospectives/ to Directory Semantics with date-based filename convention noted as exception
  • sweep: Daily sweep — 11 PRs merged since yesterday. Roadmap moves: Infisical OIDC (#1488) Active → Done after ~1 week as active; last Rules-as-Code draft (#1573 seeds → mocks rename) merged → workstream’s first phase complete (8 rules + 1 meta-hook all Done). Billing management (#1397) merged after long run as draft.
  • update: Two long-running drafts got rebased — #1419 Workflow Engine V2 → #1597; #1424 Billing Phase 1 → #1608. Click links and References table point to rebased PRs. Original PRs still technically open but superseded.
  • update: Roadmap — added “Infisical native sync for dev” (#1598) Done bar in Secrets & Security; updated Rules-as-Code rename1573 to Done; Recent Changes 2026-04-29 entry summarizes the day
  • note: CLAUDE.md trimmed by 7.9k chars (#1596). The Claude Contributor Prompt page references CLAUDE.md — when docs/claude-contributor-prompt.md itself is next updated, may want to re-ingest that page to ensure the rule summary still matches
  • note: CraftCMS PR #3 merged (2026-04-28) — Knowledge Base reference now in craftcms/CLAUDE.md. Three of four target repos for decision 002 Phase 1 now reference the wiki (bookish-broccoli + craftcms + config; CRM still pending Azure DevOps push)
  • No changes in crispy-octo-barnacle, CRM (no remote activity)

2026-04-28

  • sweep: Daily sweep — 10 PRs merged since yesterday’s late-evening sweep. Rules-as-Code workstream sustaining (now 7 rules merged + 1 meta-hook merged + 1 draft in 48h). New rules today: #1584 schema-lean, #1583 PostToolUse quick-lint hooks (meta-infra). New rules late yesterday: #1581 i18n strings, #1576 BullMQ (was draft). roadmap Rules-as-Code section now has 9 entries (8 Done + 1 Draft).
  • update: Roadmap — Email VO pilot Track B (#1540) merged → Done. Architecture Patterns section bar moved to Done. References table updated for all merged items.
  • note: PostToolUse quick-lint hooks (#1583) is the most architecturally significant addition — moves rule enforcement from “fail at commit/PR” to “fail at write time”. Pairs naturally with Claude Contributor Prompt machinery — turns prose conventions into instant feedback as code is written. Worth a future decision record if the workstream continues to expand
  • note: Audit slash command iterated — #1585, #1586 trimmed /audit to ~30% shorter, same coverage
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config

2026-04-27

  • sweep: Late-evening re-sweep — #1577 chore(rules) Drizzle-over-raw-sql merged; #1576 draft (BullMQ over setInterval). 24h count: 6 rule-codification PRs — pattern accelerated, not slowed.
  • update: Rules-as-Code promoted to a roadmap workstream. New section on the Gantt with 6 entries (4 Done single-day bars + 2 open drafts). References table extended with all 6 rule rows. Recent Changes documents the promotion. Seems like a deliberate ongoing initiative rather than a one-day burst — earned its own row.
  • sweep: Same-day evening re-sweep — #1574 chore(rules): file handling — CAS + streams merged; #1573 draft (seeds → mocks rename, follows #1571). Pattern noted: four chore(rules) PRs in 24 hours (#1566, #1571, #1574, #1573 draft) — conventions graduating from CLAUDE.md docs to enforced code rules. Captured in active and roadmap Recent Changes; not yet a Gantt workstream
  • sweep: Same-day re-sweep — 6 PRs merged today (most notably #1566 chore(rules): contact-as-central-person rule codification — formalizes the FK rule documented in Claude Contributor Prompt just hours earlier; #1571 seed-data rule; #1568 HubSpot dev tooling; #1558, #1555, #1407 graduated from Open). 5 new fluffy-doodle hotfix PRs (#1561-#1565) and 1 new draft (#1567 TopBar layout cleanup — follow-up to #1530)
  • update: Roadmap — added “Contact-as-central-person rule” Done bar in Entra/Org Model section (#1566). References table updated. Recent Changes documents the rule codification + today’s fluffy-doodle hotfix burst.
  • update: Claude Contributor Prompt page updated to reference #1566 as the rule’s formal codification — the doc now shows both the lineage (RNW-335 → RNW-336 → rule codified) and where the rule is now enforced as a project rule
  • ingest: Added Claude Contributor Prompt (under projects/renewa-one/infrastructure/) — synthesized from bookish-broccoli/docs/claude-contributor-prompt.md. Documents the copy-pasteable prompt non-technical contributors paste into Claude Code sessions, with rule summary cross-linked to existing wiki pages (Service Layer Pattern, RBAC Authorization, React Query Pattern, Database Migrations, Git Workflow, Contacts, Users, etc.). Includes the full canonical prompt text for copy-paste use, plus precedence note that CLAUDE.md wins if they ever disagree
  • sweep: 4-day catch-up sweep — 37 PRs merged in bookish-broccoli since 2026-04-23, ~50 still open. Heavy days were 2026-04-23 (mostly fluffy-doodle fixes) and 2026-04-24 (CI/CD hardening + HubSpot dev apps + Deal-Übergabe data + TopBar port)
  • update: Roadmap moves — Deal-Übergabe real data (PR #1442) merged → Done. HubSpot dev apps for PR previews (#1532) added as a Done bar in HubSpot section
  • update: Roadmap additions — Workflow Engine V3 (#1554) added alongside V2 (#1419, status now uncertain); new Architecture Patterns section created with Email Value Object pilot (#1540 implementing spec #1510)
  • note: Sidebar saga continues — #1421 (same title as already-closed #1422) appeared, while #1530 ported TopBar from #1422 separately. Multiple sidebar branches now overlap — flagged in active for cleanup
  • note: Billing fragmentation — #1424, #1397, #1534 all alive with overlapping scopes; consolidation conversation needed
  • note: Cost signal for 002-monorepo-consolidation#1552/#1553 disabled claude-code-review on PR trigger due to “org quota exceeded”. Worth tracking
  • note: Decision 002 Phase 1 happening organically — 15+ fluffy-doodle issue fixes merged in the past 4 days. The formal migration plan is ratifying existing dev behavior, not redirecting it
  • fix: Refreshed active with current 36 ready-for-review + 15 draft PRs (vs. 19 last sweep — the active queue grew significantly)
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config

2026-04-23

  • sweep: Daily sweep — 8 PRs merged in bookish-broccoli since yesterday (#1481, #1483, #1485, #1486, #1490, #1492, #1506, #1507); 15 new open PRs added (mostly fluffy-doodle bug fixes: #1508, #1509, #1511-#1516, plus Renovate deps #1517/#1518, code-quality enforcement #1491, #1489, and Email VO pilot spec #1510)
  • update: Roadmap — Sidebar redesign Active → Merged (#1483, 1-day flow from pivot to merge). Schema drift detection added as a Merged bar (#1506) in the Schema Cleanup section.
  • note: Billing management PR #1397 appeared alongside Billing Phase 1 #1424 — relationship unclear (separate stream? consolidation?), flagged in active.md drafts table for future clarification
  • note: Observed early fluffy-doodle → bookish-broccoli issue-fix migration pattern (~10 PRs reference fluffy-doodle issue numbers). Direction matches 002-monorepo-consolidation Phase 1 organically — useful signal
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config

2026-04-22

  • sweep: Daily sweep — 2 roadmap items merged (RNW-336 / #1464, Infisical CLI / #1475) and 1 added (Infisical OIDC #1488). 5 new ready-for-review PRs in bookish-broccoli (#1488, #1486, #1485, #1482) and 1 new draft (#1483 — Sidebar redesign, possibly split from #1422)
  • update: Refreshed active with today’s open PRs, recently-merged section reorganized by date
  • update: Refreshed roadmap — Gantt + References table reflect new statuses; Recent Changes section gets the 2026-04-22 entry per the sweep workflow documented in CLAUDE.md
  • note: Sidebar redesign pivoted — PR #1422 closed in favor of PR #1483. Scope narrowed from “Sidebar + Zuständigkeiten consolidation + UI overhaul” to “flattened nav + favorites + persisted state”. Zuständigkeiten consolidation dropped from this initiative — will need its own roadmap item if still planned. Gantt + References table updated, Recent Changes section documents the pivot (first real scope-change example since the mechanism was introduced yesterday)
  • No changes in crispy-octo-barnacle, craftcms, CRM, or config since previous sweep

2026-04-21

  • update: Added “Link Conventions” section to CLAUDE.md (patterns for PRs, repos, Linear, CRM, cross-wiki pages). Linked 11 RNW-NNN references to the RENEWA Linear workspace (linear.app/renewa/issue/RNW-NNN)
  • style: Mermaid Gantt on roadmap themed with RENEWA brand colors (dark backgrounds, green task bars, white text, wider left padding for section labels)
  • fix: Resolved Mermaid syntax error on roadmap — replaced (#NNNN) with (PR NNNN) in Gantt task names (# was confusing Mermaid’s parser), removed click directives (References table below has equivalent links), replaced Unicode arrows with ASCII
  • update: Bulk-linked 43 bare #NNNN PR references and 6 renewa-gmbh/<repo> repo mentions across wip/, decisions/, and select Hannes entity pages (code-fence-aware, no double-linking)
  • ingest: Added Gantt chart roadmap with Timeline + References table on roadmap — 17 major initiatives grouped by workstream, estimated from PR state
  • sweep: Weekly-style sweep across sibling repos — pulled recent merges and open PRs from bookish-broccoli (30+ merges since 2026-04-16, 19 open PRs) and crispy-octo-barnacle
  • ingest: Added new project page Landing Pages — RENEWA campaign landing pages (sanierungsfahrplan, foerdermittelcheck, sanierungskompass). Added crispy-octo-barnacle to the controlled project tag vocabulary in CLAUDE.md
  • update: Refreshed active with current open PRs grouped by project — 12 ready-for-review + 8 major draft PRs in bookish-broccoli, plus recent-merge summary (security scan two-track policy, Entra group sync RNW-335, Deal-Übergabe handover, staging sync fixes)
  • update: Refreshed roadmap with in-flight major initiatives: Billing Phase 1 (#1424), Dashboard V3 (#1423), Sidebar/Zuständigkeiten redesign (#1422), Workflow Engine V2 (#1419), Entra/org data model (RNW-335/336), Infisical secret management, HubSpot bidirectional sync, schema/table consolidation specs
  • update: Added Landing Pages entry to master index

2026-04-17

  • ingest: Wrote 002-monorepo-consolidation — phased plan to consolidate fluffy-doodle issues + knowledge base into bookish-broccoli monorepo, with analysis of submodules/subtree alternatives and path-scoped branch protection via auto-merge
  • ingest: Deployment verified — wiki.renewa.de live behind Zero Trust, CI green, search and graph view functional, Claude Code sessions in project repos reference the knowledge base (PRs open for bookish-broccoli, craftcms, config; CRM branch ready for push)
  • ingest: Added Knowledge Base section to bookish-broccoli/CLAUDE.md, CRM/CLAUDE.md, craftcms/CLAUDE.md, config/CLAUDE.md — Claude Code sessions in these repos now reference the knowledge base automatically

2026-04-16

  • chore: Adopted Hannes’s [renewa-gmbh/renewa-knowledge-base](https://github.com/renewa-gmbh/renewa-knowledge-base) repo, added Quartz infrastructure (build system, baseUrl wiki.renewa.de, RENEWA brand colors)
  • refactor: git mv Hannes’s RENEWA One folders + Home.md into content/projects/renewa-one/ (folders lowercased to kebab-case; page filenames stay Title Case — Hannes’s convention; history preserved)
  • chore: Removed .obsidian/workspace.json from index, added to .gitignore
  • chore: Added CLAUDE.md (wiki schema) at repo root, scripts/validate.sh (TDD’d: frontmatter + wiki-link + top-section index checks)
  • ingest: Added frontmatter to all 80 of Hannes’s RENEWA One sub-pages (architecture, backend, entities, features, frontend, infrastructure, integrations, patterns)
  • ingest: Wrote 001-knowledge-base-setup from the design spec
  • ingest: Created stub project pages for craftcms, crm, config (empty .gitkeep placeholders replaced)
  • ingest: Created active and roadmap (placeholder state)
  • ingest: Created master index

2026-04-15

  • chore: Hannes von Appen created the renewa-gmbh/renewa-knowledge-base repo with .obsidian/ config, rich RENEWA One Home.md (now at content/projects/renewa-one/index.md), and 80 sub-pages across Architecture/, Backend/, Entities/, Features/, Frontend/, Infrastructure/, Integrations/, Patterns/ (now under content/projects/renewa-one/{architecture,backend,entities,features,frontend,infrastructure,integrations,patterns}/)