Commit graph

114 commits

Author SHA1 Message Date
Michael Dieringer
c5089370ab Foreslå regler: task lifecycle governance (BC-opgave, én opgave ad gangen, rød/grøn-gate, versionsløft) + Smiley Task Lifecycle stop gate
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 08:51:17 +02:00
Michael Dieringer
cb647f8424
Merge pull request #8 from Curabis/rule/ai-test-toolkit-for-llm-feature-eval
[BCQuality] Evaluer AI Test Toolkit foer custom eval-harness til LLM-features
2026-07-22 12:08:20 +02:00
Michael Dieringer
ac1794f35a
Merge pull request #7 from Curabis/fix/qualityhub-pr-target
Fix rule-proposal pipeline: target Curabis/QualityHub, never Curabis/BCQuality
2026-07-22 12:07:45 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Michael Dieringer
aa41237e5b Roemer: standards-inspektoeren - alle ensartetheds-checks under een kappe
Fogeden var fem loese procedurer spredt i Mode B, hver isaer reel, ingen
af dem ejet. Ole Roemer (standardiserede danske maal og vaegt 1683,
Koebenhavns foerste politimester) ejer nu den samlede inspektionsrunde:

1. Agent-roster manglende  2. Agent-roster ekstra (RegelSanity)
3. CLAUDE.md-generation    4. Repo-mirror-rester
5. .mcp.json-stier         6. Versionsmarkoerer
7. Mirror-friskhed         8. Agent-synlighed

Maaler mod den skrevne standard, citerer hvilken, doemmer aldrig -
divergens gaar til Ferencz. Ren runde = een linje. Han aendrer aldrig
selve standarden (CURABIS-ROEMER-001..005).

Kaeden komplet: Roemer maaler -> Ferencz anklager -> Retten doemmer ->
Michael beslutter.

- custom/agents/roemer.agent.md (ny)
- curabis-standard.agent.md: roemer i alle fire lister; Mode B-checks
  markeret som Roemers runde
- ferencz.agent.md: pipeline opdateret (Inspection -> Roemers runde)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 07:24:18 +02:00
Michael Dieringer
e7932e969e Ferencz: Rettens anklager - dokumentation foer drama
Retten fik jurisdiktion (RegelSanity) og en foged (Mode B v11), men
ingen byggede sagen. Benjamin Ferencz besaetter anklagersaedet: han
hvilede Einsatzgruppen-anklagen paa gerningsmaendenes egne rapporter -
beviskaede frem for mavefornemmelse er ikke bare hans mandat, det var
hans metode.

- custom/agents/ferencz.agent.md: case builder for begge sagstyper
  (RegelSanity-divergens og effektivitet). Protokol: record -> standard
  -> beviskaede -> eksculperende evidens -> praecist spoergsmaal -> rest.
  CURABIS-FERENCZ-001..006: citation paa alle claims, moenstre ikke
  personer, ingen adjektiver, insufficient evidence er et gyldigt svar.
- curabis-standard.agent.md: ferencz i URL-tabel, 4c-fetchliste,
  Mode B-tabel og CLAUDE.md-templatens on-demand-liste
- court.agent.md: briefs samles af Ferencz; en brief uden hans
  beviskaede-disciplin returneres foer deliberation

Mandat (Michael): Dokumentation foer drama. Ansvar frem for
undskyldninger. Beviskaede frem for mavefornemmelse. Moral uden hysteri.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 07:14:53 +02:00
Michael Dieringer
6b33e10146 RegelSanity: Retten faar jurisdiktion og en foged
Michaels observation: udviklere tilfoejer agenter lokalt i enkelt-repos
(Edison opstod saadan) - og repoer maa ikke opfoere sig forskelligt.
Francis (Bacon) observerer og Immanuel (Kant) universaliserer, men ingen
haandhaevede ensartethed paa tvaers af portefoeljen. Tre byggesten:

- Ny regel repo-local-agents-must-be-universalized-or-removed: lokale
  agenter/kvalitetsregler har to fremtider - universaliseres via
  Francis/Immanuel/Michael eller fjernes. Aldrig tavs beholdelse.
  Domaeneviden hoerer i projectmemory/docs; kvalitetsstandarder i
  BCQuality eller ingen steder.
- Mode B v11: reconciliation kigger nu BEGGE veje - ekstra filer i
  .github/.agents (ikke i template-tabellen) flages med a/b-valg:
  universaliser eller fjern. Det var fogeden, der manglede: Edison
  laa uopdaget lokalt, fordi Mode B kun tjekkede manglende filer.
- court.agent.md v2: to sagstyper. Effektivitets-sager kraever Edison-
  scorecards som hidtil; RegelSanity-sager (lokal divergens) kraever
  kun filen, gabet den udfylder, og spoergsmaalet universel-eller-ud.
  Disposition: UNIVERSALIZE eller REMOVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 07:09:44 +02:00
Michael Dieringer
b532b9b38c bcquality.agent.md v2: dynamisk regelopslag i stedet for frossen URL-liste
Den hardcodede Layer 2-liste naevnte 22 af custom-lagets 36 regler -
reviews via Ishikawa saa aldrig de nyeste 14+ (inkl. begge mode-b-regler,
permission-sets-least-privilege og mcp-config-hardcoded-paths), og hver
ny regel kraevede manuel listeredigering i templaten for at faa effekt.

Source-steppet oploeser nu regelsaettet ved review-tid:
1. Maskin-mirror ~/.claude/bcquality-knowledge/custom/ (Claude-sessioner)
2. Fallback: tree-API paa stable + raw-fetch (Copilot/frisk maskine/CI)

Ingen liste at vedligeholde; nye regler er aktive fra foerste promote.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 00:07:17 +02:00
Michael Dieringer
3ef2e95af6 Hardening: stable-branch som udrulningskanal - merge til main er ikke laengere deploy
Alle forbrugere laeser nu fra stable i stedet for main:
- curabis-standard.agent.md v10: BASE/AGENTS_BASE + self-heal-URL -> stable
- sync-bcquality-knowledge.ps1: $branch = stable
- machine/CLAUDE.md: auto-update gater paa stable-SHA og fetcher setup fra stable
- templates/bcquality.agent.md + al-triage.agent.md: knowledge-URLer -> stable
  (+ fix af doed reference: branch-merge-to-main-workflow.md var omdoebt til
  feature-branch-must-merge-to-track-branch.md - templaten shippede et 404)
- francis.agent.md + Invoke-CurabisEvidence.ps1: raw-base -> stable
- CONSUMPTION.md: Release channel-sektion med promote-procedure og rationale

Deploy sker herefter kun ved bevidst fast-forward af stable (kun Michael).
Kanal oprettet: stable @ 57b8292, tag v1.0.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 00:02:44 +02:00
Michael Dieringer
57b8292848
Merge pull request #47 from Curabis/fix/agent-dedup
Dedup: carlin/francis/immanuel har nu een kanonisk placering - custom…
2026-07-01 23:54:23 +02:00
Michael Dieringer
e7a2fac879 Dedup: carlin/francis/immanuel har nu een kanonisk placering - custom/agents/
Francis og Immanuel laa i baade custom/agents/ (v1, forladt siden
2026-06-22) og custom/setup/templates/ (v2/v3, aktivt vedligeholdt og
det setup faktisk hentede fra). Intern drift i selve regelrepoet -
samme sygdom som Mode B-reglerne bekaemper i projekterne.

- Nyeste indhold (templates-udgaverne) kopieret til custom/agents/,
  templates-dubletterne slettet
- carlin.agent.md flyttet med til custom/agents/ - han er en persona
  som de oevrige der (smiley, weber, columbo), ikke en projekt-template
- curabis-standard.agent.md v9: de tre henter nu fra AGENTS_BASE,
  inkl. Francis-fallback-linjen i CLAUDE.md-templaten
- custom/setup/templates/ indeholder herefter kun projekt-artefakter
  (al-*, algo-settings, bc-mcp, bcquality, cspell, HEARTBEAT)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-01 23:52:47 +02:00
Michael Dieringer
dd5637b1db Custom-laget bestaar nu begge CI-checks: 72 validator-fejl -> 0
Normalisering af alle 39 custom knowledge-filer til READ-kontraktens
skema (validate_frontmatter.py + Test-KnowledgeIndex.ps1 begge groenne):

- R01/R02: 28 filer manglede frontmatter eller brugte aeldre skemaer
  (title/category/severity/rule-id m.fl.) - alle har nu praecis de 6
  kraevede noegler; keywords haandskrevet pr. fil da de driver
  worklist-selektionen i INDEX/knowledge-index
- R09: manglende Description-sektion - regel-agtige foersteoverskrifter
  (Core Rule/Rule/Regel/Core Principle) omdoebt, eller sektion indsat
  efter titlen hvor intro-tekst fandtes
- R10: fenced code blocks konverteret til 4-space indrykkede blokke
  i alle filer (indhold uaendret)
- R11: 4 filer over 100 linjer fortaettet redaktionelt uden semantisk
  tab (ai-eval-scores 143->100, git-lifecycle 121->97,
  permission-sets 113->99, test-feature-scenario-tags 105->91)
- R05: AL0197->al0197, add_repo->add-repo; keyword-lister trimmet
  til maks 10

Ingen regler er fjernet eller aendret i betydning - kun form.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-01 23:47:31 +02:00
Michael Dieringer
66e35855b7 Edison op i BCQuality + CONSUMPTION.md: dokumenter aktiv vs. sovende konsumtion
- custom/agents/edison.agent.md: Edison (BCQuality eval runner) fandtes
  kun lokalt i Jernpladsen, men court.agent.md kraever hans scorecards.
  Nu upstream, saa alle projekter faar ham.
- curabis-standard.agent.md v8: edison tilfoejet til Source URL-tabellen,
  Mode A 4c-fetchlisten, Mode B-tabellen og CLAUDE.md-templatens
  on-demand-liste.
- CONSUMPTION.md: den faktiske konsumtionsmodel. Sessionmodellen
  (maskin-mirror + .github/.agents) er den eneste aktive; Entry-flowet
  (entry.md, READ/DO/WRITE, layer skills, Build-KnowledgeIndex.ps1,
  bcquality.config.yaml) er sovende upstream-arv reserveret til fremtidig
  CI-integration - inkl. de tre deltas der skal lukkes foer aktivering
  (tom custom/skills/, to index-generatorer, ingen lag-praecedens i
  sessionmodellen).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-01 23:31:33 +02:00
Michael Dieringer
41c6187c4f Setup v7: BCQuality knowledge-mirror er maskin-lokal, ikke repo-lokal
- curabis-standard.agent.md v6 -> v7: mirror deployes til
  ~/.claude/bcquality-knowledge/ (delt af alle repoer paa maskinen)
  i stedet for .github/.agents/bcquality-knowledge/ i hvert repo
- CLAUDE.md-templaten peger paa maskin-mirroren via %USERPROFILE%
  (aldrig literal udviklersti) og faar self-heal-instruktion
- Mode B: v6-aera-oprydning (fjern committet repo-mirror, gitignore
  stien, foreslaa CLAUDE.md-migrering) + genkend hardcodede
  udviklerstier og raa-URL-lister som foraeldede CLAUDE.md-former
- sync-bcquality-knowledge.ps1: fast destination $env:USERPROFILE
  \.claude\bcquality-knowledge i stedet for $PSScriptRoot-relativ
  (det var dobbelttydigheden der skabte repo-mirrors)
- Ny regel: bcquality-knowledge-must-mirror-to-machine-not-repo
- Setup-artefakter skal fetches som raa bytes (Invoke-WebRequest
  -OutFile) - aldrig via strengindhold, som dobbelt-encoder UTF-8

Begrundelse: udviklere skifter repo mange gange dagligt; N repo-
mirrors er permanent ude af sync, een maskin-mirror kraever een
sync pr. upstream-aendring. CI/cloud-agenter henter selv reglerne
via .github/bcquality.config.yaml.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-01 23:08:50 +02:00
Michael Dieringer
080df3b3be Deploy bcquality-knowledge sync-mekanisme via CURABIS Standard setup 2026-07-01 14:39:32 +02:00
Michael Dieringer
7b4d144c24 Tilføj sync-bcquality-knowledge.ps1 til setup-artefakter 2026-07-01 14:39:20 +02:00
Michael Dieringer
ed7dabf07d Foreslå regel: Unconsumed BCQuality layers must be declared 2026-07-01 13:58:07 +02:00
Michael Dieringer
905bc32a94 Fix: Mode B og Mode A template-liste var ufuldstaendig 2026-07-01 13:35:32 +02:00
Michael Dieringer
fb7c93efe7 Foreslå regel: Mode B-reconciliation skal spores pr. repository, ikke globalt 2026-07-01 12:25:16 +02:00
Michael Dieringer
80d9a9063a Foreslå regel: Mode B update må reconcile den fulde template-liste 2026-07-01 12:07:53 +02:00
Michael Dieringer
50e60a6513 Fix setup script to follow mcp-config-must-not-hardcode-developer-paths
Mode A generated .mcp.json with a literal C:\Users\<USERNAME>\... bridge
path and an absolute find-altool.ps1 path; Mode B validated against that
same hardcoded form, so it would have "corrected" a compliant env-var
path back to a broken one. Both now use ${USERPROFILE} and
${CLAUDE_PROJECT_DIR:-.} per the rule merged in #37.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 09:54:41 +02:00
Michael Dieringer
36ee61f811 Foreslaa regel: Shared MCP configuration must not hardcode developer-specific paths 2026-07-01 09:36:12 +02:00
Michael Dieringer
0d41a1aa7e Foreslå regel: CURABIS-egne app-kilder skal tjekkes før symbol-inspection 2026-06-30 21:05:33 +02:00
Michael Dieringer
6a8065e080 Foreslå regel: Shebang-integritet ved deploy af script-filer 2026-06-29 15:56:39 +02:00
Michael Dieringer
c6642306d6 [Agent] Merge main + add Carlin - always-active bullshit detector
Resolves merge conflicts between branch and main.
Carlin added to: source URLs, CLAUDE.md template (after Smiley), agent deploy list.
All agents from main preserved. Carlin is agent 14.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 23:01:48 +02:00