Commit graph

306 commits

Author SHA1 Message Date
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
ec2892f0ab
Merge pull request #45 from Curabis/docs/consumption-plus-edison
Edison op i BCQuality + CONSUMPTION.md: dokumenter aktiv vs. sovende …
2026-07-01 23:32:36 +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
624f56203e
Merge pull request #44 from Curabis/setup/machine-mirror-v7
Setup v7: BCQuality knowledge-mirror er maskin-lokal, ikke repo-lokal
2026-07-01 23:14:07 +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
4ee1af5d12
Merge pull request #43 from Curabis/setup/bcquality-knowledge-sync
[Setup] Deploy BCQuality knowledge sync mechanism to every CURABIS project
2026-07-01 14:40:34 +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
Jeremy Vyska
4119417ce4
Add 15 community knowledge articles from BC Code Intel ingest (#66)
Some checks failed
Validate knowledge index / validate-index (push) Has been cancelled
Validate frontmatter and structure / validate (push) Has been cancelled
* Add 15 community knowledge articles from BC Code Intel ingest

Ingests net-new /community knowledge from BC Code Intelligence, surviving
the admission test, gray-zone salvage, and dedup against the full corpus.

Domains: ui (6), error-handling (3), performance (2), upgrade (1),
appsource (1), security (1), telemetry (1). The two BC24 No. Series
migration drafts are merged into one article.

Adds good/bad AL samples for the clean-fit articles (error-handling,
performance, security, telemetry). UI and appsource remain knowledge-only.

Validator and knowledge-index checks pass (207 articles).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Correct SetLoadFields JIT-load article to match MS docs

The draft claimed accessing an unlisted field "reloads the entire row"
per record. Microsoft's partial-records docs say otherwise: the platform
does an implicit Get that loads the missing field(s), and in a direct var
loop the first JIT updates the enumerator so later iterations do not
re-load. The genuine per-row penalty is the pass-by-value case, where the
copy's enumerator is not updated.

Rewrite the article around JIT loading and the by-value footgun, rename
the slug from ...full-reload to ...jit-load, and fix the good/bad samples
to demonstrate the by-value repetition accurately.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Jeremy Vyska <jeremy@sparebrained.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:31:50 +02:00
Michael Dieringer
33e6e6a4c6
Merge pull request #42 from Curabis/rule/bcquality-unconsumed-layers-must-be-declared
[BCQuality] Unconsumed BCQuality layers must be declared
2026-07-01 13:58:48 +02:00
Michael Dieringer
ed7dabf07d Foreslå regel: Unconsumed BCQuality layers must be declared 2026-07-01 13:58:07 +02:00
Michael Dieringer
16678b9bd4
Merge pull request #41 from Curabis/fix/mode-b-template-table-incomplete
[BCQuality] Fix ufuldstaendig template-liste i Mode A/Mode B
2026-07-01 13:36:18 +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
b078eb5027
Merge pull request #40 from Curabis/rule/mode-b-reconciliation-must-be-per-repository-not-global-sha-gated
[BCQuality] Mode B-reconciliation skal spores pr. repository
2026-07-01 12:27:11 +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
393d5b2f38
Merge pull request #39 from Curabis/rule/mode-b-update-must-reconcile-full-template-list
[BCQuality] Mode B update må reconcile den fulde template-liste
2026-07-01 12:15:13 +02:00
Michael Dieringer
80d9a9063a Foreslå regel: Mode B update må reconcile den fulde template-liste 2026-07-01 12:07:53 +02:00
Jesper Schulz-Wedde
6281e7e39a
Promote ui knowledge from community to Microsoft layer (#51)
Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-01 10:41:24 +02:00
Jesper Schulz-Wedde
292bdabe27
Promote performance knowledge from community to Microsoft layer (#50)
Pure git-mv relocation of all 7 performance articles from community/knowledge/performance/ to microsoft/knowledge/performance/. No content changes.

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-01 10:41:01 +02:00
Michael Dieringer
7e72d11447
Merge pull request #38 from Curabis/fix/setup-script-mcp-config-must-not-hardcode-paths
Fix setup script to follow mcp-config-must-not-hardcode-developer-paths
2026-07-01 09:55:50 +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
fed213fab1
Merge pull request #37 from Curabis/rule/mcp-config-must-not-hardcode-developer-paths
[BCQuality] Shared MCP configuration must not hardcode developer-specific paths
2026-07-01 09:39:00 +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
7074277d93
Merge pull request #36 from Curabis/rule/curabis-app-sources-must-be-checked-first
[BCQuality] CURABIS-egne app-kilder skal tjekkes foer symbol-inspection
2026-06-30 21:06:44 +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
8254a95d09
Merge pull request #35 from Curabis/rule/write-shebang-integrity
[BCQuality] Shebang-integritet ved deploy af script-filer (CURABIS-MCP-SHEBANG-001)
2026-06-29 15:58:01 +02:00
Michael Dieringer
6a8065e080 Foreslå regel: Shebang-integritet ved deploy af script-filer 2026-06-29 15:56:39 +02:00
Jeremy Vyska
24e62f5ec8
Merge pull request #56 from DmitryKatson/add-set-selection-filter-list-scope
community(ui): SetSelectionFilter on list pages silently scopes to cursor row when no explicit selection
2026-06-29 11:50:14 +02:00
Michael Dieringer
33d1926f53
Merge pull request #34 from Curabis/knowledge/bc-mcp-scope-tasks-to-repo
Knowledge/bc mcp scope tasks to repo
2026-06-28 23:02:42 +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
Michael Dieringer
6765df474d [Agent] Add George Carlin - always-active bullshit detector
Deploys carlin.agent.md to all CURABIS projects via curabis-standard.
Carlin surfaces with one dry observation when complexity, vague requirements,
or feature creep earns it. Named after the CURABIS Kick-off 2026 Lego duck
exercise.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 22:57:08 +02:00
Michael Dieringer
be0eb23e7a
Merge pull request #32 from Curabis/rule/feature-branch-must-merge-to-track-branch
[BCQuality] Ny regel: Feature branches must merge to track branch
2026-06-28 13:56:35 +02:00
Michael Dieringer
618078b589
Merge pull request #33 from Curabis/rule/eval-task-boundaries
[BCQuality] Sharpening: Eval ved task-grænser (baseline + final)
2026-06-28 13:54:52 +02:00
Michael Dieringer
f3fbd88a5f
Merge pull request #31 from Curabis/rule/git-lifecycle-claude-sync
[BCQuality] CURABIS-BCMCP-008: Track branch + Claude-driven sync
2026-06-28 13:54:02 +02:00
Michael Dieringer
5cc6ac31be Sharpening: Eval skal køres ved task-grænser (baseline + final) 2026-06-28 13:50:41 +02:00
Michael Dieringer
66c7ef565d Ny regel: Feature branches must merge to declared track branch 2026-06-28 13:50:21 +02:00
Michael Dieringer
7fedcece6d Sharpening: Track branch concept + Claude-driven sync (CURABIS-BCMCP-008) 2026-06-28 13:50:04 +02:00
Michael Dieringer
6097fe2c60
Merge branch 'microsoft:main' into main 2026-06-28 11:51:16 +02:00
Michael Dieringer
d011cbcdd8
Merge pull request #30 from Curabis/rule/mcp-bridge-encoding
[BCQuality] CURABIS-MCP-003 MCP bridge JS-filer uden UTF-8 BOM
2026-06-28 11:47:36 +02:00
Michael Dieringer
9b4fb4ce45 Foresla regel: MCP bridge JS-filer uden UTF-8 BOM 2026-06-28 11:46:47 +02:00
Michael Dieringer
579d28b193
Merge pull request #29 from Curabis/rule/sharpen-new-file-requires-vscode-refresh-mcp
[BCQuality] Skaerp new-file-requires-vscode-refresh med MCP cross-project
2026-06-26 15:49:59 +02:00
Michael Dieringer
cbe9a704b0
Merge pull request #28 from Curabis/rule/al-build-output-must-not-pollute-project-root
[BCQuality] AL build-output must not pollute project root
2026-06-26 15:49:33 +02:00
Michael Dieringer
03e8071a07 Skaerp regel: new-file-requires-vscode-refresh — tilfoej MCP cross-project symbol resolution 2026-06-26 15:48:39 +02:00
Michael Dieringer
bbe2117aad Foreslag regel: AL build-output must not pollute project root 2026-06-26 15:47:48 +02:00
Michael Dieringer
46f8ded318
Merge pull request #27 from Curabis/rule/mcp-server-must-be-verified-at-session-start
[BCQuality] MCP server availability must be verified at session start
2026-06-26 13:38:02 +02:00
Michael Dieringer
c554eead8e
Merge pull request #26 from Curabis/rule/mcp-tool-invocation-must-be-documented
[BCQuality] MCP tool documentation must include the invocation model
2026-06-26 13:37:44 +02:00
Michael Dieringer
a8525b01ac Foresla regel: MCP server availability must be verified at session start 2026-06-26 13:35:16 +02:00
Michael Dieringer
f8bdd32212 Foresla regel: MCP tool documentation must include the invocation model 2026-06-26 13:34:11 +02:00
Jeremy Vyska
d3eb7d6a98
Guard the custom layer and flag stray top-level entries (#58)
The /custom/ layer is a template: in upstream microsoft/BCQuality it stays
empty by default and is meant to be populated only inside a fork or consumer
clone. PR #55 both targeted /custom/ and leaked a new top-level folder.

- skills/write.md: add a fork-precondition guard so authors (human or agent)
  confirm they are not in microsoft/BCQuality before scaffolding /custom/ content.
- Guard custom layer workflow: auto-closes upstream PRs that add/modify /custom/
  content beyond the template files, with a friendly redirect-to-fork comment.
- Flag new top-level entries workflow: posts an advisory (non-blocking) comment
  when a PR introduces an unexpected top-level folder or file for maintainer review.

Both workflows run only on microsoft/BCQuality (never on forks) and read the PR
file list via the API without checking out or executing PR code.

Co-authored-by: Jeremy Vyska <jeremy@sparebrained.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 11:18:15 +02:00
Jeremy Vyska
f2c2b510d8
Merge pull request #52 from microsoft/jesperschulz-promote-events-to-microsoft
Promote events knowledge from community to Microsoft layer
2026-06-26 10:15:13 +02:00