Commit graph

306 commits

Author SHA1 Message Date
Michael Dieringer
ee7a636fff
Merge pull request #27 from Curabis/feat/ergasterion-architecture-panel
Add the Ergasterion: Hickey, Fowler, Parnas architecture workshop
2026-08-03 11:43:37 +02:00
Michael Dieringer
c1132c4006 Add the Ergasterion: Hickey, Fowler, Parnas architecture workshop
Pre-implementation architecture inspection for one proposed design at a
time, distinct from the Court's rulebook-level governance (which already
carries its own "Academy" self-identity in court.agent.md) and from
al-review's post-hoc diff review. Wired into al-complexity's HIGH-tier
route as the actual human architecture sign-off.

- Hickey: what does this model, and what's complected?
- Fowler: does this pay for itself, or borrow against the next change?
- Parnas: is what's likely to change hidden behind a stable interface?
  (proactive counterpart to Titus Winters' Hyrum's Law check in al-review)
2026-08-03 11:41:30 +02:00
Michael Dieringer
2c48df2431
Merge pull request #26 from Curabis/feat/enforce-task-state-checkpoints
Fire håndhævelseslag for [CURABIS-STATE]-tilstandssporet
2026-08-03 10:18:33 +02:00
Michael Dieringer
bcbc4acced Fire haandhaevelseslag for [CURABIS-STATE]-tilstandssporet
Michael: "lad os bygge alle 4" - rangeret efter styrke fra sidste samtale.

1. Smiley v6: close-gaten laeser nu det faktiske [CURABIS-STATE]-spor
   tilbage FOER merge, i stedet for at stole paa sessionens egen hukommelse.
   Mangler et tidligere checkpoint, blokerer merge - selv hvis testen er
   groen og reviewet lige sagde APPROVE nu.
2. al-review v3: "state trail complete?" er nu et Titus-tjekpunkt der giver
   BLOCK, ikke bare en note - et ufuldstaendigt spor er i sig selv et
   vedligeholdelsesfund.
3. Ny .github/workflows/curabis-task-state-check.yml: reelt deterministisk
   haandhaevelse for AppSource (parser PR-body'ens tjekliste, fejler hvis en
   senere fase er tjekket mens en tidligere ikke er). Testet mod fire cases
   (gyldig raekkefolge, ugyldig, ingen sektion, tom sektion) - alle korrekte.
   Kraever et manuelt engangs-trin (branch protection required check) som
   filudrulningen ikke selv kan saette.
4. Roemer v6: ny station 13, retrospektiv - stikprover de sidste ~10
   afsluttede BC-opgaver/mergede PR'er for spor-fuldstaendighed, fanger
   drift ingen enkelt opgaves egen gate fangede. Kun opgaver lukket efter
   2026-08-03 flages - reglen fandtes ikke foer.

curabis-standard.agent.md: ny artefakt-raekke + Mode A step 4h (deploy
workflow-filen, mind om branch protection-trinet) + Mode B repo-tabel-raekke.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 10:16:54 +02:00
Michael Dieringer
bfc2c59cc9
Merge pull request #25 from Curabis/feat/persisted-task-state
Persisteret opgave-tilstand: BC-kommentar (PTE) / draft PR (AppSource)
2026-08-03 10:05:15 +02:00
Michael Dieringer
3f2fdb06c3 Persisteret opgave-tilstand: BC-kommentar (PTE) / draft PR (AppSource)
Michaels retning efter at have set community-vaerktoejets workflow_start/
workflow_next-tilstandsmaskine: han vil inspireres, ikke kopiere - vil have
persisteret, forespoergelig tilstand der overlever et maskin- OG operatoer-
skifte, uden at bygge en ny, parallel opbevaringsmekanisme.

Princippet: brug det obligatoriske spor der allerede findes for den
paagaeldende flowtype, ikke et tredje system.
- PTE: en BC-delopgave er allerede obligatorisk foer udvikling starter
  (development-requires-bc-task, ingen undtagelser) - dens kommentarer
  (taskComments) ER tilstandslageret. Format: [CURABIS-STATE] <STAGE> —
  dato, udvikler.
- AppSource: intet obligatorisk BC-spor i dag - draft PR'en aabnes tidligt
  (ved start-gaten, ikke foerst ved review) og dens beskrivelse baerer
  tilstanden som en tjekliste.

Samme tilstandsordforraad begge steder: TASK_STARTED, RED_CONFIRMED,
ON_HOLD (altid med hvorfor), GREEN_CONFIRMED, REVIEW: <verdict>, MERGED.

Bevidst IKKE en kopi af community-vaerktoejets workflowSessionManager - den
har reel persisteret tilstand, men INGEN haandhaevelse noget sted (returnerer
bare en instruktion, tiltror agenten at foelge den). CURABIS's reelle styrke
er det modsatte (roed bekraeftet af udvikleren, BLOCK er et haardt stop) -
denne aendring tilfoejer persistens UDEN at rore ved haandhaevelsen.

Wired ind i:
- smiley.agent.md v5: hver gate-overgang skriver nu et tilstands-checkpoint
- bc-mcp.agent.md v3: standard workflow skriver [CURABIS-STATE]-kommentarer
- al-review.agent.md v2: verdict registreres som et checkpoint, ikke kun
  som findings

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 10:03:05 +02:00
Michael Dieringer
97f3e60ce1
Merge pull request #24 from Curabis/fix/bc-mcp-config-template-and-error-surfacing
Ret bc-mcp: config-skabelon matcher broen + fejl svælges ikke længere
2026-08-01 00:19:26 +02:00
Michael Dieringer
9e66377fa6 Ret bc-mcp: config-skabelon matcher broen + fejl svaelges ikke laengere
Live incident i aften: businesscentral MCP fejlede med et generisk
30-sekunders "connection timed out", ingen brugbar fejl. To reelle, adskilte
fejl fundet ved at teste direkte mod BC's endpoint:

1. ~/.bc-mcp.config.json havde "company": "CURABIS ApS" (Vist navn), men BC's
   faktiske Navn-felt er "Curabis ApS". BC svarede korrekt og hurtigt (400,
   under 200ms) - problemet var aldrig BC.

2. bc-mcp-bridge.js svaelgede det svar stille: en fejl-krop formateret som
   almindelig JSON, men markeret content-type text/event-stream, blev sendt
   til parseSSE() som kun leder efter "data:"-linjer - fandt ingen, returnerede
   en tom liste. Broen skrev derfor INGENTING, hverken stdout eller stderr, og
   Claude Code ventede blot sin egen 30-sekunders timeout ud.

Rettet:
- forward() tjekker nu !r.ok FOER content-type-forgrening, ubetinget - en
  fejlrespons naar aldrig parseSSE, uanset hvad serveren paastaar om sin
  egen content-type. Testet direkte mod det reproducerede scenarie: fejlen
  vises nu med det samme (5s test-vindue, ikke 30s timeout), med det fulde
  BC-fejlsvar synligt i baade stdout (JSON-RPC error) og stderr.
- bc-mcp.config.template.json matchede slet ikke broens faktiske felter
  (tenantId/baseUrl vs. broens tenant/company/configurationName) - enhver ny
  udvikler der udfyldte skabelonen efter dens egne feltnavne ville faa en
  config der intet virkede med. Rettet til de rigtige feltnavne, plus en
  eksplicit advarsel om Navn vs. Vist navn i company-feltet.
- Mode A's opsaetningsbesked (Step 3b) opdateret til at naevne alle
  placeholder-felter, ikke kun secret'en.
- To nye BCQuality-videnfiler dokumenterer begge fejl til fremtidig
  fejlsoegning.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-01 00:18:37 +02:00
Michael Dieringer
9fc6597030
Merge pull request #23 from Curabis/feat/al-review-torvalds-winters
Tilføj al-review: uafhængig per-ændring-reviewer (Torvalds + Winters)
2026-07-31 23:21:52 +02:00
Michael Dieringer
9d0a1d2d47 Tilfoej al-review: uafhaengig per-aendring-reviewer (Torvalds + Winters)
Fjerde gate i Task Lifecycle - koert efter groent test, foer merge, adskilt
fra den der implementerede aendringen og fra Roemer/Immanuel/Court's
portefoelje-niveau-styring (de spoerger "er selve regelsaettet sundt", ikke
"er DENNE aendring god").

To linser, Michaels egen opdeling:
- Linus Torvalds: BC/AL-domaene-teknisk (respekterer standard-BC/events,
  bogfoerings-sideeffekter, opgraderings-holdbarhed, filtre/keys/SetLoadFields,
  locking/SQL-performance, permissions/dataklassifikation, forretningslogik
  paa forkert sted, testdaekning af forretningsforloeb, lokalt rigtig men
  arkitektonisk forkert)
- Titus Winters: generel software-engineering (korrekthed, forstaaelighed,
  arkitektonisk sammenhaeng, testbarhed, cyklomatisk/McCabe-kompleksitet -
  ingen anden i rosteret vurderer det tal - Hyrum's Law, kodebase-konsistens,
  boer det overhovedet bygges saadan)

Wired ind i Smileys Close gate (samme udfaldsbaserede disciplin som resten
af dagens rettelser) - ikke noget udvikleren skal huske at bede om. Verdict
er APPROVE / APPROVE WITH NOTES / BLOCK, aldrig en fjerde "det er kompliceret".

Roster-taeller opdateret alle steder: 22 agent-filer i alt (20 maskin-globale,
2 repo-lokale), 19 filer i ~/.claude/curabis-agents/. sync-bcquality-
knowledge.ps1 testet - al-review.agent.md bekraeftet leveret.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 23:20:50 +02:00
Michael Dieringer
b54bf88d7b
Merge pull request #22 from Curabis/fix/smiley-outcome-based-tdd-trigger
al-complexity v2: standard-først-tjek + KISS (opfølgning på PR #21)
2026-07-31 22:50:55 +02:00
Michael Dieringer
98556ec372 al-complexity v2: standard-foerst-tjek + KISS, foer nogen tier foreslaas
Michaels retning: loes tingene saa standard som muligt foerst (Microsoft
Learn + det faktiske BCApps-indhold), derefter KISS paa hvad der reelt skal
bygges custom.

Ny Step 0 i al-complexity.agent.md, koert FOER klassificering:
- Soeg Microsoft Learn efter forretningsbehovet (ikke "hvordan bygger jeg X i AL")
- Tjek den rigtige BCApps-kildekode via reference-repos-klonen (ikke traenings-
  data-antagelser)
- Krav om bevis, ikke en paastand ("jeg tjekkede og fandt intet" er kun
  troværdigt hvis du viser hvad du soegte) - samme standard som TDD-rød-
  bekraeftelsen
- Ny STANDARD-tier: hvis BC allerede klarer det, ingen kode, kun opsaetning
- KISS goeres til en eksplicit begraensning paa selve routen, ikke kun paa
  Step 0 - en HIGH-tier retfaerdiggoer mere PROCES, ikke en mere elaboreret
  LOESNING

Smiley v3 (samme commit-serie): rettede ogsaa en snag i selve aktiveringen -
Columbo->al-complexity-kaeden trigges i dag kun naar kravet er UKLART. Men
standard-foerst-tjekket boer koere for ETHVERT nyt custom-arbejde, ogsaa et
krystalklart formuleret et - et klart krav kan stadig vaere noget BC allerede
goer. Samme klasse gap som TDD-triggerfixen i forrige commit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 22:45:17 +02:00
Michael Dieringer
d6bbb2ff70
Merge pull request #21 from Curabis/fix/smiley-outcome-based-tdd-trigger
Smiley v3: TDD-stop-gate skal trigges af udfald, ikke ordvalg
2026-07-31 22:38:19 +02:00
Michael Dieringer
875f524d8a Smiley v3: TDD-stop-gate skal trigges af udfald, ikke ordvalg
Opdaget i praksis 2026-07-31: en afslappet "det vil jeg gerne have de ting
fikset" (efter en QA/challenge-session, ikke en "lad os starte en opgave"-
formulering) udloeste ikke Task Lifecycle-stopgaten automatisk - den koerte
kun roed/groen fordi et menneske eksplicit skrev "roed/groen-gate" ind i den
efterfoelgende prompt. Det skal ikke vaere paakraevet.

En ordliste kan ikke loese det - der findes uendeligt mange maader at bede om
en rettelse paa. Erstattet med en udfalds-baseret betingelse: gaten aktiveres
naar Claude er ved at skrive/aendre AL-kode der aendrer adfaerd, uanset
brugerens ordvalg. Kalibrerings-eksempler ("fiks det", "kan du ordne det",
et bart "ja, goer det") er illustrationer af raekkevidden, ikke en udtoemmende
liste at matche imod.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 22:35:56 +02:00
Michael Dieringer
6fb290fb03
Merge pull request #20 from Curabis/feat/ms-learn-mcp-and-add-repo
Tilføj Microsoft Learn MCP til udviklere + gør add_repo konkret
2026-07-31 20:06:44 +02:00
Michael Dieringer
85b2acc372 Tilfoej Microsoft Learn MCP til udviklere + goer add_repo konkret
To ting fra QualityHub-sporet:

1. Udviklere faar nu samme Microsoft Learn MCP som Mode C-supportbrugere
   allerede havde (https://learn.microsoft.com/api/mcp, HTTP, ingen auth) -
   registreret maskin-globalt via sync-bcquality-knowledge.ps1, samme
   moenster som al/businesscentral. Lukker hullet hvor udviklere kun havde
   den statiske microsoft/-videnfil-snapshot og ingen live dokumentationssoegning.

2. add_repo-mekanismen i curabis-app-sources-must-be-checked-first.md var
   kun naevnt, aldrig defineret - intet vaerktoej med det navn findes i
   Claude Code CLI. Erstattet med en konkret, testet mekanisme: en
   vedvarende, opdateret klon i ~/.claude/reference-repos/<org>/<repo>/,
   samme moenster som BCQualitys egen kanal-klon. Testet live mod det
   faktiske microsoft/BCApps-repo (shallow clone ~52s, ~36.000 .al-filer,
   git pull --depth 1 til opdatering).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 20:03:10 +02:00
Michael Dieringer
2d0f1c1eec
Merge pull request #19 from Curabis/fix/bc-mcp-static-tool-mode
bc-mcp.agent.md v2: dokumenter static tool mode + taskResponsible + score-logs
2026-07-31 19:50:01 +02:00
Michael Dieringer
c8790b7ffb bc-mcp.agent.md v2: dokumenter static tool mode + taskResponsible + score-logs
BC MCP-serveren (CURABIS_DEV) er skiftet fra Dynamic til Static Tool Mode -
de generiske bc_actions_search/describe/invoke findes ikke laengere, hver
BC-handling er nu sit eget navngivne, typede MCP-vaerktoej (bekraeftet live
efter et reconnect). Det fjerner navnedrift-risikoen dokumentet selv
tidligere advarede om (consultants/users-forvekslingen).

Samtidig:
- taskResponsible tilfoejet som skrivbar paa activeTasks (matcher AL-rettelsen
  i CURMCPActiveTasks.Page.al/CURSubTask.Table.al - opgaveansvarlig kan nu
  omfordeles mellem konsulenter via MCP)
- De to hidtil udokumenterede entiteter projectAIScores/projectWeberScores
  tilfoejet med korrekt insert-only-regel og ejerskab (Edison hhv. Weber)
- Alle workflow-referencer opdateret til at kalde vaerktoejerne direkte

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 19:48:59 +02:00
Michael Dieringer
fc41870098
Merge pull request #17 from Curabis/feat/v24-user-level-redesign
v24: flyt roster-agenter, .mcp.json og find-altool.ps1 fra repo til maskine
2026-07-30 13:12:25 +02:00
Michael Dieringer
11b4e2ec99 v24: flyt roster-agenter, .mcp.json og find-altool.ps1 fra repo til maskine
19 af 21 agent-filer, de to standard MCP-servere (al, businesscentral) og
find-altool.ps1 var byte-identiske kopier duplikeret ind i hvert af de 14
CURABIS-repos. De flyttes til ~/.claude/ (én kopi pr. maskine i stedet for
pr. repo), gated paa den eksisterende .github/.agents/bcquality.agent.md-
markoer. Kun bcquality.agent.md og feynman.agent.md forbliver repo-lokale
(Mode C support-brugere har intet ~/.claude/ at laese globalt indhold fra),
og CLAUDE.md's machine-self-heal-blok forbliver repo-lokal (den installerer
selve den globale fil, kan ikke ligge i den).

find-altool.ps1 finder nu repo-roden ved cwd-walkup til en .AL-Go-markoer
i stedet for sin egen placering, og MCP-registrering sker idempotent via
`claude mcp add --scope user`. Mode B faar en engangs-migreringssektion for
de 14 eksisterende v23-repos; .mcp.json-oprydningen kraever eksplicit
bekraeftelse af at alle udviklere paa repoet har migreret foerst, da filen
er delt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-30 13:06:58 +02:00
Michael Dieringer
34d9d765d0
Merge pull request #16 from Curabis/feat/feynman-support-role
v23: Feynman — support-rolle for ikke-udviklere + Mode C support-profil
2026-07-30 09:59:42 +02:00
Michael Dieringer
90048bb262 v23: Feynman support-rolle — agent i rosteret + Mode C support-profil
- custom/agents/feynman.agent.md: ny support-navigator for ikke-udviklere.
  Strengt læsende, svar med kildehenvisning (kildetrappen: docs/specs ->
  projectmemory -> decisions -> kode -> Microsoft via MCP), Feynman-testen
  på alle svar, struktureret eskalering via Feynman-notatet (Columbo/
  al-triage-klar). Aktiveres med trigger-frasen 'Feynman:'.
- curabis-standard.agent.md v23: Feynman i artefakt-tabel, Mode A 4c,
  Mode B-tabel og CLAUDE.md-templaten (support-sektion der slår self-heal,
  AL MCP og BC MCP fra i support-sessioner + on-demand-entry). Ny MODE C:
  'Onboard en supportbruger til CURABIS Standard' — browser-only (claude.ai/
  Claude Code på web, ingen VS Code), GitHub read-only, GitHub MCP +
  Microsoft Learn MCP, ingen secrets, ingen QualityHub-adgang.
- templates/feynman-onboarding.md: dansk onboarding-dokument til
  supportbrugeren ({SUPPORT_NAME}/{REPO_LIST}/{SETUP_DATE}-tokens).
- machine/CLAUDE.md: tredje trigger-kommando tilføjet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 09:57:49 +02:00
Michael Dieringer
c5d793f291
Merge pull request #15 from Curabis/rule/task-lifecycle-governance
[BCQuality] Task lifecycle governance — BC-opgave, én opgave ad gangen, rød/grøn-gate, versionsløft
2026-07-25 09:11:47 +02:00
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
900406b3aa
Merge pull request #14 from Curabis/rule/mode-b-never-overwrite-files-still-need-staleness-checks
[BCQuality] never-overwrite files in Mode B need staleness checks
2026-07-23 15:46:56 +02:00
Michael Dieringer
96b98acf73 v22: HEARTBEAT.md staleness check i Mode B (Curabis/BCQuality -> Curabis/QualityHub) 2026-07-23 15:46:28 +02:00
Michael Dieringer
7b8e0308bf Foreslaa regel: mode-b-never-overwrite-files-still-need-staleness-checks 2026-07-23 15:42:33 +02:00
Michael Dieringer
8438fdbd88 Ret HEARTBEAT.md-skabelon: Florence tjekkede aabne PRs paa Curabis/BCQuality (dodt, forladt repo) i stedet for Curabis/QualityHub 2026-07-23 14:53:33 +02:00
Michael Dieringer
cefc85da6b Ret bc-mcp.agent.md: users (6102903) findes ikke, korrekt entitet er consultants (PAG50009) 2026-07-23 14:21:36 +02:00
Michael Dieringer
9060396ba0
Merge pull request #13 from Curabis/rule/bc-mcp-task-responsible-must-be-writable-on-active-task
[BCQuality] taskResponsible must be writable alongside gitHubBranch/gitHubDevStatus
2026-07-23 13:57:30 +02:00
Michael Dieringer
995613163e Foreslaa regel: taskResponsible must be writable alongside gitHubBranch/gitHubDevStatus 2026-07-23 13:55:35 +02:00
Michael Dieringer
e0906a38a7
Merge pull request #12 from Curabis/fix/upstream-watch-invalid-permission
Fix PR #9: revert invalid workflows: write permission
2026-07-22 12:27:39 +02:00
Michael Dieringer
ffdacd56ea Fix PR #9: revert invalid 'workflows: write' permission, strip workflow-file changes from sync branch instead
PR #9's fix was wrong: 'workflows' is not a real GitHub Actions permission
scope (verified list: actions, contents, issues, pull-requests, etc. - no
'workflows'). Merging it broke workflow_dispatch outright:

  Invalid Argument - failed to parse workflow: (Line: 21, Col: 3):
  Unexpected value 'workflows'

GITHUB_TOKEN can never push .github/workflows/* changes - that's a hard
GitHub restriction, not something the permissions: block controls. The
correct fix is to never let the sync branch carry workflow-file changes in
the first place: after a clean merge, restore .github/workflows from
origin/main and amend. This also closes a latent risk - a clean upstream
merge could otherwise silently overwrite QualityHub's own CI files
(including this one) with whatever microsoft/BCQuality ships under the same
paths.
2026-07-22 12:26:03 +02:00
Michael Dieringer
ffc0b8286f
Merge pull request #11 from Curabis/fix/promote-stable-reindex
Force GitHub to re-index promote-stable.yml
2026-07-22 12:21:34 +02:00
Michael Dieringer
21ef545577 Force GitHub to re-index promote-stable.yml (never registered as a workflow)
Confirmed via both REST API and gh CLI: promote-stable.yml has been on main
since 2026-07-03 but GitHub Actions never listed it as a dispatchable
workflow (404 on both). File content is valid, no encoding issues - a known
GitHub indexing gap. A no-op touch to the file forces re-discovery.
2026-07-22 12:19:22 +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
e8789141ee
Merge pull request #10 from Curabis/feat/mandatory-breaking-changes-performance-gate
Make breaking-changes/performance review mandatory, not keyword-triggered
2026-07-22 12:06:51 +02:00
Michael Dieringer
c2b1471dd7
Merge pull request #9 from Curabis/fix/upstream-watch-workflows-permission
Fix upstream-watch: grant workflows:write, add push-failure fallback issue
2026-07-22 12:06:34 +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
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