Commit graph

417 commits

Author SHA1 Message Date
Michael Dieringer
9f648d782e Make breaking-changes/performance review mandatory, not keyword-triggered
INDEX.md keyword matching against the task's own wording misses the two
domains where a miss is expensive: breaking changes (costly for both
customer apps and CURABIS AppSource apps) and Microsoft's core AI-code
anti-patterns (unbounded FindSet, missing SetLoadFields, explicit Commit()
inside a transaction). Requests rarely say "breaking" or "performance" even
when they trigger one. Added an explicit, object-type-triggered gate to the
bcquality.agent.md template so it rolls out to every CURABIS project via the
setup agent, plus applied it directly to Summatim's own copy.
2026-07-22 11:51:00 +02:00
Michael Dieringer
8480675c8c Fix upstream-watch: grant workflows:write, add fallback issue on push failure
The last two scheduled runs (2026-07-13, 2026-07-20) failed silently: merge
was clean and validators green, but the push of the sync branch was rejected
by GitHub because upstream commits touch .github/workflows/*.yml and the
default token lacked the workflows scope. No issue was opened for this
failure mode, so the drift (now 3+ weeks / 31 commits) went unnoticed.
2026-07-22 11:39:46 +02:00
Michael Dieringer
1037d96a1c Foreslaa regel: Evaluer BCApps AI Test Toolkit foer custom eval-harness til LLM-features 2026-07-22 11:14:07 +02:00
Michael Dieringer
2633407334 Fix rule-proposal pipeline: target Curabis/QualityHub, never Curabis/BCQuality
Immanuel's GitHub PR workflow and Francis's field-routing section both
pointed the "full pipeline" (Michael's machine) at Curabis/BCQuality for
branch/PR/knowledge-file operations. That repo is a public fork of
microsoft/BCQuality kept clean for upstream tracking, not CURABIS's rule
repo — Curabis/QualityHub (private) is. Step 5's report line already
said QualityHub; steps 1-4 and the verification step never matched it.

Consequence: a session followed the doc literally and opened a branch +
PR against the public fork, naming two CURABIS projects in the PR body,
before catching and remediating it (closed PR, deleted branch).

Added an explicit "never target Curabis/BCQuality" warning to both agent
files so this can't recur silently.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 11:10:02 +02:00
Michael Dieringer
7f925855b4
Merge pull request #6 from Curabis/rule/bc-mcp-discovery-and-governance-autonomy
[BCQuality] BC MCP discovery guidance + autonomous Francis->Immanuel hand-off
2026-07-04 08:32:46 +02:00
Michael Dieringer
3d1e1c1950 Fix BC MCP discovery guidance og gør Francis->Immanuel-hand-off autonom
- bc-mcp.agent.md-templaten fik en manglende "preload de tre bc_actions_*
  værktøjer via ToolSearch select:"-sektion, som ellers kun levede i
  bc-mcp-tools-must-be-preloaded.md og derfor aldrig blev håndhævet.
- Rettet forkert antaget navnemønster (ListUpdate<entity>_PAG<id> ->
  Modify_<Entity>_PAG<id>, bekræftet empirisk via bc_actions_search).
  Ny regel bc-mcp-naming-convention-must-be-reverified.md kræver at
  navnekonventioner altid markeres som "forvent, reverificér" fremover.
- francis.agent.md + immanuel.agent.md: hand-off fra Francis til Immanuel
  er nu eksplicit automatisk. Michael er ikke et mellemstop i pipelinen -
  han involveres først når PR'en er klar til merge.

Observeret 2026-07-04: en session brugte ToolSearch med keyword-søgning
i stedet for select: (fandt irrelevante værktøjer), ledte derefter efter
et ListUpdate-værktøj der ikke findes, og spurgte om lov til at fortsætte
til Immanuel midt i pipelinen.
2026-07-04 08:31:43 +02:00
Michael Dieringer
391c18be3f
Merge pull request #5 from Curabis/fix/template-agent-visibility
Setup v21: CLAUDE.md-templaten refererer alle deployerede agenter
2026-07-03 21:35:19 +02:00
Michael Dieringer
9e70030ca7 Setup v21: CLAUDE.md-templaten refererer ALLE deployerede agenter
Roemers station 8 (agent-synlighed, reglen claude-md-must-reference-
all-agents) flagede korrekt lincoln/aurelius/munger/algo-settings paa
hvert repo - fordi den GENEREREDE CLAUDE.md manglede dem. Symptomet var
loyalt; kilden var templaten.

- De tre dommere tilfoejet som under-punkter til court-entryen (relation
  bevaret: de ER Rettens dommere, ikke loesrevne agenter)
- algo-settings tilfoejet som egen on-demand-linje

Dermed genererer Mode A en komplet CLAUDE.md, og Roemer stopper med at
stille det samme spoergsmaal paa hvert repo. Rod-aarsag lukket i stedet
for symptom-besvaret pr. repo.
2026-07-03 21:34:37 +02:00
Michael Dieringer
1461f95484
Merge pull request #4 from Curabis/setup/florence-upstream-watch
Florence: upstream-watch — automatisk vagt mod microsoft/BCQuality
2026-07-03 20:13:58 +02:00
Michael Dieringer
0c8b761a66
Merge pull request #3 from Curabis/chore/upstream-sync-2026-07-03
Upstream-sync: 6 Microsoft-commits — 15+ nye knowledge-artikler + lag-promoveringer
2026-07-03 20:13:40 +02:00
Michael Dieringer
9654db4ff6 Florence: upstream-watch - hjerteslaget mod microsoft/BCQuality
Michaels instinkt (Florence som upstream-vagt) realiseret efter ugens
staffing-lektion: opdagelse er mekanik, doemmekraft er menneske. En
cron ER et heartbeat - Florence gaar runden hver mandag 05:00 (eller
paa workflow_dispatch: Florence, gaa din runde) og taender lampen:

- Nye upstream-commits + rent merge + begge validatorer groenne over
  det mergede korpus -> faerdigvalideret sync-PR (validatorer koerer
  I workflowet, da GITHUB_TOKEN-PRs ikke trigger CI)
- Konflikt eller validator-fejl -> Issue med commit-liste og manuel
  procedure
- Intet nyt -> een linje i summary, lampen forbliver slukket
  (CURABIS-ROEMER-004-stil: orden faar tavshed)

Review, merge og promote forbliver Michaels. Florence lyser kun.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 19:56:09 +02:00
Michael Dieringer
7c521fdbe2 Merge remote-tracking branch 'bcquality/main' into chore/upstream-sync-2026-07-03 2026-07-03 19:54:09 +02:00
Michael Dieringer
57c8674d63
Merge pull request #2 from Curabis/setup/stale-machine-selfheal
Setup v20: self-heal fanger også forældede maskiner (Rasmus-casen)
2026-07-03 19:29:30 +02:00
Michael Dieringer
9235886816 Setup v20: self-heal fanger ogsaa FORAELDEDE maskiner, ikke kun manglende
Rasmus-casen: en maskine der sover gennem en konsumtionsmigrering
(ferie/orlov) vaagner op med en CLAUDE.md der peger paa doede kilder -
og onboarding-scriptet roerer bevidst aldrig en eksisterende CLAUDE.md,
saa den heler ikke sig selv.

Self-heal-triggeren i projekt-CLAUDE.md-templaten udvidet: udloeser nu
ogsaa naar maskinens CLAUDE.md baerer legacy-markoerer
(raw.githubusercontent / Curabis/BCQuality). I stale-tilfaeldet
refreshes maskinens CURABIS-sektioner fra templaten i kanal-klonen -
diff vises, Identity og personlige sektioner bevares, bekraeftelse
kraeves (det er udviklerens personlige fil).

Dermed reparerer Rasmus foerste session sig selv om halvanden uge -
og enhver fremtidig sovende maskine ved naeste modelskift.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 19:25:21 +02:00
Michael Dieringer
0b23ce93dd
Merge pull request #1 from Curabis/knowledge/friday-rules
Fredagsregler: encoding-disciplin, rollback-sikker logging, git som kanal-sandhed
2026-07-03 19:06:10 +02:00
Michael Dieringer
d2e2f2adb4 Fredagsregler: tre evidensbaserede tilfoejelser fra ugens haendelser
1. text-artifacts-require-explicit-utf8-handling (Type B): to
   produktionshaendelser, samme sygdom - smiley double-encodet via
   HTTP-streng, og en Mode B-batch der skrev mojibake i tre CLAUDE.md
   fordi PS 5.1 laeser BOM-loese .ps1 som cp1252. Reglen: raa bytes
   ved transfer, eksplicit UTF-8 ved write, tekst-transformation i
   Python, grep for maerket foer commit.

2. log-writes-must-survive-rollback (Type B): fejl-logs skrevet i
   samme transaktion forsvinder ved rollback - loggen mister praecis
   de fejl den findes for. Isoleret session (StartSession -> insert +
   commit) er moensteret. Evidens: Wareco IC web-service-log
   2026-07-02; havde tidligere kostet en udvikler det meste af en dag.

3. Skaerpelse af setup-doc-must-not-reference-unpromoted-stable-files:
   kanal-tilstand verificeres via git (ls-remote/klon), aldrig CDN;
   to sande observationer kan modsige hinanden naar verden flytter
   sig imellem dem - tidsstempl al kanal-evidens. Felt-verificeret
   af Conzept-sessionens selvkorrektion 2026-07-03.

Foerste PR foedt direkte i QualityHub.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 19:03:23 +02:00
Michael Dieringer
3a70d10afd
Merge pull request #66 from Curabis/setup/git-based-consumption
QualityHub: det nye private repo får sit eget navn
2026-07-03 18:04:35 +02:00
Michael Dieringer
12fe324500 To-repo-arkitekturen dokumenteret: BCQuality (intake) + QualityHub (produkt)
Michaels arkitektur: den offentlige fork bestaar - uden custom-laget -
som intake fra og bidragsvej til microsoft/BCQuality; QualityHub er
produktet og opdateres fra forken via rent git-merge (delt ancestry).
Ny vedligeholdsbevaegelse: Opdater QualityHub fra BCQuality =
fetch -> merge-PR -> CI validerer det mergede korpus -> merge ->
promote. Aldrig upstream direkte i stable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 18:04:22 +02:00
Michael Dieringer
68a3f6dffa QualityHub: det nye private repo faar sit eget navn
Michaels beslutning: det private repo hedder Curabis/QualityHub.
Fordele: ingen omdoebnings-dans med den gamle fork (frisk repo, frisk
navn), og QualityHub er brandbart som CURABIS-produkt - det er ikke
laengere bare en BCQuality-fork, det er hjemstedet for hele
kvalitetsapparatet (regler + agenter + setup + governance).

Navneskel: repoet og kanal-klonen hedder QualityHub
(%USERPROFILE%\.claude\QualityHub); STANDARDEN indeni hedder fortsat
BCQuality (Microsofts tre-lags koncept, som 40+ regelfiler og alle
agenter refererer). Kun infrastruktur-referencer er skiftet:
git-URL'er og klon-stier i sync, onboarding, setup v19, maskin-
CLAUDE.md, CONSUMPTION, agent-fallbacks og Francis' felt-routing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 17:59:33 +02:00
Michael Dieringer
e95f40c478
Merge pull request #65 from Curabis/setup/git-based-consumption
v19: git-baseret konsumtion — forberedelse til privat repo
2026-07-03 17:47:42 +02:00
Michael Dieringer
3ce08fe91e v19: git-baseret konsumtion - forberedelse til privat repo
Beslutning: BCQuality skal vaere privat. En fork af et offentligt repo
kan ikke goeres privat, saa flyttet sker via detach/nyoprettelse - men
FOERST omlaegges al konsumtion fra tokenfri raw-URLs til git-baseret
adgang, shippet mens kanalen stadig er offentlig, saa flaaden aldrig
oplever et hul. GCM er token-haandteringen: udviklerne er allerede
autentificeret.

Kernen er KANAL-KLONEN: %USERPROFILE%\.claude\BCQuality, pinned til
stable. Alt kopieres derfra (filsystem-kopi = raa bytes; ingen
CDN-cache, ingen API-limits).

- sync-bcquality-knowledge.ps1 v2: git-baseret (klon/fetch/checkout
  stable, mirror bygges lokalt, skriver selv versionsmarkoeren)
- Install-CurabisMachine.ps1 v2: onboarding = git clone + script fra
  klonen; foerste GCM-login ER autentificeringen
- curabis-standard.agent.md v19: SRC/BASE-tokens peger paa klonen;
  fetch betyder copy; Mode B Step 0 freshener klonen; ny Mode B-
  sektion opdaterer maskin-CLAUDE.md ved konsumtionsmodel-skift
  (gated, Identity bevares); CLAUDE.md-templatens self-heals er
  git-baserede
- machine/CLAUDE.md v2: auto-update gater paa git fetch/rev-parse
  i stedet for GitHub API; setup laeses fra klonen
- Ishikawa + al-triage + Francis: fallbacks peger paa mirror/klon;
  al-triages hardcodede URL-liste fjernet (samme sygdom som Ishikawa
  havde). Aerlig konsekvens: Copilot mister live custom-fallback
- CONSUMPTION.md: Access model-sektion + to-linjers onboarding
- Invoke-CurabisEvidence: RawBase markeret legacy/doed

Nul raw.githubusercontent-referencer tilbage i forbrugerkritiske filer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 17:44:19 +02:00
Michael Dieringer
a95cf7f43f
Merge pull request #64 from Curabis/setup/cwd-agnostic-al-mcp
AL MCP cwd-agnostisk: walk-up + auto-projektopdagelse (setup v18)
2026-07-03 17:09:58 +02:00
Michael Dieringer
e6c362e560 AL MCP cwd-agnostisk: walk-up + auto-projektopdagelse (setup v18)
Efter genstart var al stadig Failed. MCP-loggen gav beviskaeden:
cwd = .apps\PrebenZ (app-mappen - one-workspace-standarden binder
sessionen dertil), og CLAUDE_PROJECT_DIR er IKKE sat for MCP-launches,
saa ${CLAUDE_PROJECT_DIR:-.} faldt tilbage til app-mappen hvor .vscode
ikke findes. Workspace-standarden og .mcp.json-antagelsen var i
konflikt.

Fix - og en forbedring af standarden:
- find-altool.ps1 v3: cwd-agnostisk anker ($PSScriptRoot), og nyt
  auto-argument der selv opdager alle AL-projektmapper (app.json under
  .apps/Apps/apps) og substituerer dem i launchmcpserver-kaldet
- Setup v18, 4b: al-entryen er nu BYTE-IDENTISK paa tvaers af alle
  repos - -Command med walk-up fra cwd til .vscode\find-altool.ps1 +
  launchmcpserver auto. Ingen {APP_FOLDER}-substitution.
- Mode B check 4: aeldre former erstattes stille med den universelle

Live-testet fra praecis den cwd der fejlede (.apps\PrebenZ): serveren
overlever. PrebenZ + JP haandrettet paa Michaels maskine.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 17:08:36 +02:00
Michael Dieringer
bd2b12887d
Merge pull request #63 from Curabis/setup/launchmcpserver-projects
launchmcpserver kræver projektstier — setup v17 + Mode B-autoreparation
2026-07-03 16:48:11 +02:00
Michael Dieringer
8d2bc11d95 launchmcpserver kraever projektstier - setup v17 + Mode B-autoreparation
/mcp viste al som Failed paa to maskiner efter korrekt deployment af
find-altool.ps1. Aarsag fundet via altool --help: signaturen er
launchmcpserver <projects> - projektmapperne er PAAKRAEVEDE argumenter,
og uden dem doer serveren straks. Kun Wareco passede stierne med
(haandlavet), alle andre .mcp.json-entries og selve setup-templaten
kaldte uden. Roegtestet i Jernpladsen: med stier overlever serveren.

- Setup v17, 4b: .mcp.json-templaten inkluderer {APP_FOLDER}-stierne
  med eksplicit advarsel; een linje pr. app-projekt
- Mode B .mcp.json-validering, nyt check 4: manglende projektstier
  mellem launchmcpserver og --transport korrigeres stille (een sti pr.
  app-projekt) + genstartspaamindelse
- find-altool.ps1-templatens eksempel rettet tilsvarende

JP + PrebenZ .mcp.json er rettet direkte paa Michaels maskine;
Conzept faar rettelsen via Mode B efter promote.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:46:39 +02:00
Michael Dieringer
dcccc2865c
Merge pull request #62 from Curabis/setup/promote-button
Promote-knappen: udrulning med ét klik (workflow_dispatch)
2026-07-03 16:40:35 +02:00
Michael Dieringer
0e3556fdc0 Promote-knappen: udrulning med eet klik via workflow_dispatch
Merge til main er kvalitetsgaten; promote er udrulningsgaten - og
udrulningsgaten skal ikke kraeve en git-klon og fire kommandoer, isaer
ikke fra en strandkant. Actions -> Promote to stable -> Run workflow:

- Naegter at koere hvis stable er divergeret fra main (aldrig force;
  divergens er en finding)
- Idempotent: intet at promovere = pæn besked, ingen fejl
- Skriver job-summary med de udrullede commits
- Kun write-adgang kan dispatche; ved kommende stable-ruleset skal
  GitHub Actions paa bypass-listen

CONSUMPTION.md: de tre ligevaerdige promote-former dokumenteret
(knappen, een-linjeren, den eksplicitte form).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:39:06 +02:00
Michael Dieringer
54623e1e88
Merge pull request #61 from Curabis/governance/field-routing
Francis v3: felt-routing — Issues er docket-kanalen fra udviklermaskiner
2026-07-03 16:28:34 +02:00
Michael Dieringer
36ca546819 Francis v3: felt-routing - Issues er docket-kanalen fra udviklermaskiner
Foerste felt-session med gh installeret foreslog en PR der ville have
committet direkte mod stable - den spurgte foerst (godt), men
beslutningen skal ikke improviseres. Routing nu eksplicit:

- Michaels maskine: fuld pipeline lokalt (branch + PR)
- Alle andre maskiner: GitHub Issue paa Curabis/BCQuality med komplet
  Ferencz-format brief; universalisering og PR sker paa governance-
  siden. Uden gh: brief til udvikleren, som paster som issue.
- Felt-sessioner aabner ALDRIG PRs mod stable (ff-only-kanal),
  pusher aldrig regler direkte, falder aldrig tilbage til main ved
  dokumenteret stable-404

Forudsaetter at Issues aktiveres paa repoet (Settings -> Features ->
Issues - deaktiveret som fork-default; Michaels klik).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:19:33 +02:00
Michael Dieringer
3dad916125
Merge pull request #60 from Curabis/knowledge/unpromoted-stable-references
Type B fra marken: setup-referencer må ikke pege på upromoverede stable-filer
2026-07-03 16:11:10 +02:00
Michael Dieringer
1f43235a18 Type B fra marken: setup-referencer maa ikke pege paa upromoverede filer
Foerste felt-genererede regelforslag i BCQualitys historie: en session
paa en udviklermaskine (ConzeptALGo, 2026-07-03) ramte 404 paa
{BASE}/templates/find-altool.ps1 - setup v16 var merged til main, men
promoten laa efter, saa dokumentets egen stable-sti kunne ikke serveres.
Sessionen verificerede begge grene med curl, naegtede korrekt at falde
tilbage til main (kanaldisciplinen er selve pointen), og udformede
observation, evidens og filnavn selv.

Reglen: fil + reference shipper i samme PR; merge og promote er EEN
operation for reference-introducerende aendringer; forbrugere der
rammer 404 paa en dokumenteret stable-sti rapporterer gabet og omgaar
aldrig kanalen.

Rute: Francis (feltsession) -> Immanuel (denne universalisering) ->
Michael (merge). Promoten der lukkede det konkrete vindue er allerede
koert (stable @ 470524e).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:09:44 +02:00
Michael Dieringer
470524eac9
Merge pull request #59 from Curabis/setup/find-altool-template
find-altool.ps1 er et CURABIS-artefakt — fantomkommandoen udryddet (setup v16, Rømer v5)
2026-07-03 15:50:57 +02:00
Michael Dieringer
5fb29ee749 find-altool.ps1 er et CURABIS-artefakt - fantomkommandoen udryddet
Felttest paa fremmed maskine afsloerede at VS Code-kommandoen
AL: Configure MCP Server IKKE FINDES - den har staaet i setup-
dokumentationen siden v6 og er blevet gentaget ukritisk siden,
inkl. af Claude i dag. find-altool.ps1 var i virkeligheden
haandlavet i Jernpladsen/Wareco (funktionelt identiske kopier).

- custom/setup/templates/find-altool.ps1: kanonisk template med
  robust versionssortering ([version]-parse i stedet for leksikalsk)
  og klar fejlbesked ved manglende/for gammel AL-extension
- Setup v16: 4b deployer filen fra templaten (raa bytes) og skriver
  ALTID al-entryen i .mcp.json; det betingede spor og fantom-noten
  er fjernet. Mode B: ny raekke deployer filen hvis den mangler
- Install-CurabisMachine.ps1 + CONSUMPTION.md: pr.-repo-trinnet er nu
  bare Opdater CURABIS Standard - AL-extensionen fra Marketplace er
  eneste maskinforudsaetning
- Roemer v5, station 12: AL MCP-wiring paa runden med autoriseret
  stille korrektion. Evidens: en session skrev AL-kode den ikke
  kunne compile og flagede det foerst ved forespoergsel (Conzept)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 15:49:05 +02:00
Michael Dieringer
0f80d267b5
Merge pull request #58 from Curabis/setup/auto-onboarding-selfheal
Auto-onboarding: kloning af et CURABIS-repo onboarder maskinen selv (setup v15)
2026-07-03 15:40:32 +02:00
Michael Dieringer
8e1c392181 Auto-onboarding: kloning af et CURABIS-repo onboarder maskinen selv
Setup v15: projekt-CLAUDE.md-templatens self-heal udvidet fra kun
mirror til hele maskinen - mangler ~/.claude/CLAUDE.md eller bridgen,
koerer sessionen Install-CurabisMachine.ps1 fra stable selv
(idempotent, identitet fra git config), rapporterer de manuelle
rest-trin (personlig secret, AL: Configure MCP Server) og beder om
Claude Code-genstart. Mirror-only-staleness beholder det lette
self-heal.

CONSUMPTION.md: Auto-trigger-afsnit - een-linjes-kommandoen er
fallback, ikke procedure; foerste session i et klonet repo goer
arbejdet.

Torsten-scenariet (frisk maskine, manuel onboarding-viden paakraevet)
forsvinder dermed for alle fremtidige udviklere.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 15:39:24 +02:00
Michael Dieringer
13e9861351
Merge pull request #57 from Curabis/setup/machine-onboarding
Maskin-onboarding: Install-CurabisMachine.ps1 — én kommando pr. ny udvikler
2026-07-03 15:25:18 +02:00
Michael Dieringer
1c875787f0 Maskin-onboarding: Install-CurabisMachine.ps1 - een kommando pr. ny udvikler
Torsten er den foerste friske udvikler paa kaeden, og maskinlaget
self-healer ikke: global CLAUDE.md, bridge og personlig BC-secret
skulle haandopsaettes uden procedure. Nu:

- custom/setup/machine/Install-CurabisMachine.ps1: idempotent
  onboarding - global CLAUDE.md fra template (identitet fra git
  config), bridge, config-template (personlig secret manuel),
  sync-script + mirror, versionsmarkoer. Roerer ALDRIG eksisterende
  CLAUDE.md eller config. Alt hentes som raa bytes fra stable.
- CONSUMPTION.md: Machine onboarding-sektion med een-linjes-kommandoen
  og de to manuelle efterfoelgende trin (client secret + AL: Configure
  MCP Server pr. repo).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 15:22:56 +02:00
Michael Dieringer
0750def417
Merge pull request #56 from Curabis/rule/bc-mcp-connects-to-curabis-production-not-customer-sandbox
[BCQuality] BC MCP connects to CURABIS production, not customer sandbox
2026-07-03 09:36:03 +02:00
Michael Dieringer
1b3f7c9cb4 Foreslå regel: BC MCP connects to CURABIS production, not customer sandbox 2026-07-03 09:35:12 +02:00
Michael Dieringer
2fcc316c4d
Merge pull request #54 from Curabis/knowledge/one-workspace-only
Ét workspace pr. repo — alle andre slettes som støj (Rømer v4, setup v14)
2026-07-03 07:11:17 +02:00
Michael Dieringer
428fc6f505
Merge pull request #55 from Curabis/fix/smiley-encoding
Fix: smiley.agent.md var dobbelt-UTF-8-encodet siden oprettelsen
2026-07-03 07:09:59 +02:00
Michael Dieringer
034bec1eeb Fix: smiley.agent.md var dobbelt-UTF-8-encodet siden oprettelsen
29 mojibake-sekvenser (em-dashes og specialtegn laest som cp1252 og
gen-gemt som UTF-8). Filen har shippet korrupt til alle projekter via
setup siden juni. Repareret ved cp1252->utf-8-reversering; indholdet
er uaendret semantisk.

Aarsagen er den fejlklasse, setup-agenten nu forbyder: artefakter
fetchet via strengindhold i stedet for raa bytes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 15:38:35 +02:00
Michael Dieringer
9bda3afb85 Eet workspace pr. repo - alle andre slettes som stoej
Michaels praecisering af workspace-standarden: der findes praecis EET
workspace pr. repo - i apps-mappen, efter referencelayoutet (app-
projekter + .AL-Go + ../docs). Alle oevrige *.code-workspace-filer,
inkl. rodens al.code-workspace, slettes - de er forkerte indgange, og
den forkerte bliver brugt. Apps-mappens navnevariant (.apps/Apps/apps)
er kosmetik; .apps er referencen.

- Regel al-development-must-use-apps-workspace skaerpet: uniqueness-
  krav; rod-workspacet overlever ikke laengere til plumbing-formaal
  (aabn repo-mappen direkte til det); AL-Go template-opdateringer der
  gen-scaffolder rod-workspacet fjernes igen af runden
- roemer.agent.md v4: station 9 tjekker begge retninger og har
  sletnings-autorisation (rapporteres bagefter)
- curabis-standard.agent.md v14: Mode B opretter/kompletterer apps-
  workspacet og sletter alle oevrige

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 09:30:18 +02:00
Michael Dieringer
7f0e4da0d6
Merge pull request #53 from Curabis/knowledge/structural-readiness-flags
Strukturflag: BCQuality-implementering rejser flagene selv (Rømer v3, setup v13)
2026-07-02 09:16:03 +02:00
Michael Dieringer
05a6fb0720 Strukturflag: BCQuality-implementering rejser flagene selv
Michaels krav: AI skal rejse flagene, naar BCQuality implementeres paa
et repo - ikke naar nogen tilfaeldigvis spoerger. Portefoeje-inventar
2026-07-02 (29 repos): 3 flade repos blokeret for testcases, 11 uden
test-app (een CreateTestApp-koersel hver, ikke migration).

- Ny regel al-go-template-layout-with-test-app-required: template-
  layout + test-app-companion er paakraevet; strukturfund er report-
  only (migration er aldrig stille korrektion); setup maa fortsaette
  paa non-compliant repo, men aldrig tavst
- roemer.agent.md v3: station 10 (AL-Go template-layout) og 11
  (test-app pr. main app)
- curabis-standard.agent.md v13: Mode A Step 1b koerer Roemers
  strukturstationer FOER konfiguration og kraever at udvikleren
  anerkender flagene inden Step 2

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 09:14:22 +02:00
Michael Dieringer
777d3f8e34
Merge pull request #52 from Curabis/knowledge/apps-workspace-standard
Workspace-standard: udvikling i apps-workspacet med docs — regel + Rømer station 9
2026-07-02 08:21:04 +02:00
Michael Dieringer
7565a769c6 Workspace-standard: udvikling sker i apps-workspacet, med docs inkluderet
Michaels observation: teamet arbejder i rod-workspacet og mister dermed
udviklingskonteksten - .apps-workspacet er det, der scoper til app-
projekterne + .AL-Go, baerer projektindstillingerne og (per denne regel)
inkluderer docs/, saa Columbo-specs, decisions og cleanup-checklister er
synlige, dér hvor udviklingen sker. Jernpladsen og Wareco er allerede
compliant - reglen kodificerer den eksisterende praksis.

- Ny regel al-development-must-use-apps-workspace (referencelayout:
  app-projekter + .AL-Go + ../docs; rod-workspacet er til repo-plumbing)
- roemer.agent.md v2: station 9 - apps-workspace-check; manglende
  docs-entry er autoriseret stille korrektion
- curabis-standard.agent.md v12: Mode B validerer docs-entry i
  .apps/*.code-workspace

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 08:19:02 +02:00
Michael Dieringer
b2574aa117
Merge pull request #51 from Curabis/knowledge/edison-sharpening-round-1
Edison sharpening runde 1: singleton-undtagelse + flow-test-grænse (Type A)
2026-07-02 08:08:24 +02:00
Michael Dieringer
4665e6f127 Fixup: test-one-when-per-test under 100 linjer (R11)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 08:05:06 +02:00
Michael Dieringer
11eab57723 Edison sharpening runde 1: to regler faar skarpe kanter (Type A)
Foerste eval-runde nogensinde (korpus: Jernpladsen @ b7656b1, 36 pages,
77 testprocedurer) fandt to regler med uskarpe graenser:

- pages-must-not-contain-business-logic: undtagelse 3 tilfoejet -
  singleton-init-idiomet paa Cue/Activities-pages (if not Get then
  Init+Insert i OnOpenPage) er praesentations-bootstrap, ikke
  forretningslogik. Basisappen bruger samme moenster paa alle cue-pages.
  Evidens: reglen flagede ScrapDealerActivities; adjudikeret FP.
  Precision som skrevet: 0,67 (2 TP / 1 FP) - de to TP'er staar ved magt.

- test-one-when-per-test: flow-test-graensen defineret. Multi-WHEN er
  tilladt naar navnet deklarerer flowet, hver WHEN er en runde af EET
  scenarie, og THEN asserter den akkumulerede sluttilstand. Unit-tests
  beholder streng een-WHEN. Evidens: 5 bevidst runde-maerkede
  procedurer i SVPartialFlowTests, som reglen ikke kunne doemme.

Scorecards i PR-beskrivelsen. Rute: Edison -> Francis (Type A) ->
Immanuel -> Michael, jf. edison.agent.md Step 6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 08:04:22 +02:00