Commit graph

167 commits

Author SHA1 Message Date
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
Michael Dieringer
801cd2796d
Merge pull request #25 from Curabis/feature/smiley-watchdog-and-preload-rule
Tilføj Smiley session watchdog og bc-mcp preload-regel
2026-06-26 08:45:48 +02:00
Michael Dieringer
72a26ad638 Tilføj Smiley session watchdog og bc-mcp preload-regel
- custom/agents/smiley.agent.md: ny altid-aktiv session watchdog (George Smiley).
  Observerer hele sessionen, aktiverer Columbo/al-triage/Francis/bc-mcp/weber
  diskret uden at annoncere sig selv. Stop-gate forhindrer kode uden afklaret krav.

- custom/knowledge/mcp/bc-mcp-tools-must-be-preloaded.md: ny MCP-regel godkendt
  af Immanuel (alle 4 Categorical Imperative tests bestået). BC MCP tool-schemas
  skal pre-loades via ToolSearch ved agent-invokering for at undgå mid-task latency.

- custom/setup/curabis-standard.agent.md: Smiley tilføjet til artifacts-liste,
  Smiley-sektion tilføjet til CLAUDE.md-template, Mode B visibility-check opdateret
  med Smiley special-case (always-active, ikke on-demand).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 08:44:52 +02:00
Michael Dieringer
abccf9f34b Weber v2: den rette and som arbejdssprog
Klar/Uklar/Blind and erstatter Specific/Partial/Vague.
Inspireret af CURABIS Kick-off 2026 LEGO-duck-oevelse.
Spoegsmaalet er altid: 'Vidste udvikleren hvilken and der
skulle bygges, inden han bad AI'en om at bygge den?'

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 20:00:21 +02:00
Michael Dieringer
c26f10d704 Weber: tilfoej Weekly Report Protocol til ugerapport og moederapportering
- Fetch BC-kommentarer (sidste 7 dage)
- Klassificer og send coaching via bc_add_comment (privat til opgaven)
- Skriv aggregeret score til .eval/weber-history.jsonl (ingen navne)
- Print moede-klar rapport med trend og top-gaps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 19:47:25 +02:00
Michael Dieringer
5070bc22e4
Merge pull request #24 from Curabis/feature/weber-developer-coach
Tilfoej Weber — Developer AI Coach med Verstehen-protokol
2026-06-25 19:30:25 +02:00
Michael Dieringer
f63c7b9a5c Tilfoej Weber — Developer AI Coach med Verstehen-protokol
Max Weber (1864-1920): sociolog, Verstehen, ideal typer.
Coacher udviklere paa AI-prompt-kvalitet ved at forstaa
HVORFOR en prompt var vag foer han korrigerer den.

- weber.agent.md: 4-trins Verstehen-protokol, 3 prompt-klasser,
  5 rodaarsager, Florence Ward 8-integration
- HEARTBEAT.md: Ward 8 'Developer AI Interaction Quality'
- curabis-standard.agent.md: Mode B deployer weber.agent.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 19:27:25 +02:00
Michael Dieringer
28c2450db5
Merge pull request #23 from Curabis/feature/agent-presentations
Feature/agent presentations
2026-06-25 19:18:51 +02:00
Michael Dieringer
49a454ee82 Tilfoej algo-settings.agent.md som BCQuality-template med Taylor-selvpraesentation
Mode B deployer nu algo-settings automatisk til alle nye projekter.
Frederick Winslow Taylor — videnskabelig arbejdsledelse, 'one best way'.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 19:18:07 +02:00
Michael Dieringer
894d17b41c AL-Triage: Dominique Jean Larrey — opfinderen af triage og den flyvende ambulance
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 19:14:53 +02:00
Michael Dieringer
0b1a67dd56
Merge pull request #22 from Curabis/feature/agent-presentations
Feature/agent presentations
2026-06-25 19:13:09 +02:00
Michael Dieringer
5b6311edf5 Tilfoej selvpresentationer til 5 funktionelle agenter
- BCQuality: Kaoru Ishikawa — kvalitetscirkler, fiskebensdiagram,
  'kvalitet er alles ansvar'
- BC-MCP: Grace Hopper — foerste compiler, COBOL, debugging-begrebet
- AL-Complexity: Eliyahu M. Goldratt — Theory of Constraints,
  The Goal, kritisk kaede
- The Court: Platons Akademi — grundlagt 387 f.Kr., 900 aars
  virke, metoden frem for svaret
- M365: Alexander Graham Bell — telefonen, AT&T, forbindelsen
  paa tvaers af afstand

AL-Triage (Larrey) og ALGo-Settings (Taylor) afventer bekraeftelse.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 19:11:56 +02:00
Michael Dieringer
27f9e7751b Tilfoej selvpresentationer til alle 7 historiske agenter
Hver agent faar nu et 'Who I Am'-afsnit med fuldt navn,
levedatoer og de vigtigste bedrifter fra det virkelige liv:

- Columbo: LAPD-detektiv, hver sag loesat, ingen efternavn
- Florence Nightingale: sygepleje, 42%->2% doedelighed, statistik
- Francis Bacon: empirisk metode, Novum Organum 1620
- Immanuel Kant: Kategorisk Imperativ, Critique of Pure Reason
- Abraham Lincoln: 16. prasident, Borgerkrig, afskaffelse af slaveriet
- Marcus Aurelius: Roms 16. kejser, Meditations, stoisk reduktion
- Charlie Munger: Berkshire Hathaway, mental models, inversion

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 19:01:06 +02:00
Michael Dieringer
4e865db566
Merge pull request #21 from Curabis/feature/knowledge-cache-florence-timestamp
Mode B: valider og ret businesscentral-sti i .mcp.json
2026-06-25 18:48:04 +02:00
Michael Dieringer
e1e7c1a2a1 Mode B: valider og ret businesscentral-sti i .mcp.json
Den hyppigste setup-fejl i pre-CURABIS-Standard projekter:
.mcp.json peger paa en projektlokal bc-mcp-bridge.js der ikke
eksisterer i stedet for ~/.claude/bc-mcp-bridge.js.

Mode B tjekker nu businesscentral-stien og retter den stille
hvis den er forkert. Rapporterer aendringen til udvikleren.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 18:46:27 +02:00
Michael Dieringer
9b5664ba20
Merge pull request #20 from Curabis/feature/knowledge-cache-florence-timestamp
Knowledge cache + Florence timestamp-gate
2026-06-25 18:34:03 +02:00
Michael Dieringer
526b2a126d Knowledge cache + Florence timestamp-gate
florence.agent.md:
- Tilfoej Step 0: timestamp-gate
  Laes ~/.claude/.florence-timestamp — spring runden over
  hvis under 30 minutter gammel. Skriv timestamp efter runde.
  Forhindrer Florence i at kore ved hver session-aabning.

curabis-standard.agent.md:
- CLAUDE.md-template: erstat 24 URL-fetches med local cache-laesning
  fra ~/.claude/bcquality-knowledge/ (architecture/ testing/ mcp/)
  Session-start reduceres fra ~25 netvaerkskald til 0.

Global ~/.claude/CLAUDE.md opdateret separat:
- Auto-update downloader nu knowledge-filer til cache ved SHA-aendring
- Session-start laeder fra cache, ikke fra URLs
- Florence korer kun hvis >= 30 min siden sidst

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 18:32:20 +02:00
Michael Dieringer
6cfb1498e2
Merge pull request #19 from Curabis/feature/columbo-sharpening-florence-workspace
Skarp Columbo + Florence workspace-ward
2026-06-25 18:19:50 +02:00
Michael Dieringer
4cb03c35e3 Skarp Columbo + Florence workspace-ward
columbo.agent.md (v3):
- Tilfoej Step 2b: challenge-protokol for vage svar
- 6 konkrete moenstereksempler med Columbo's udfordring
- Park-regel: efter 2 follow-ups uden svar parkeres opgaven
- 2 nye 'aldrig'-regler om vage svar og taage

florence.agent.md:
- Erstat Jernpladsen-hardkodet checklist med generisk
  Ward 7-protokol: workspace-fil, app-mappe-daekhing,
  test-app-daekhing, CLAUDE.md-daekhing

HEARTBEAT.md template:
- Tilfoej Ward 7: Workspace & multi-app konfiguration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 18:18:26 +02:00
Michael Dieringer
7f24dc5d32
Merge pull request #18 from Curabis/feature/heartbeat-template
Fiks 4 gaps i Mode B og auto-update
2026-06-25 18:09:38 +02:00
Michael Dieringer
f482a8f09e Fiks 4 gaps i Mode B og auto-update
Fix 1: Mode B laes agent frontmatter description og foreslaer
       praecis CLAUDE.md-tekst for manglende agenter
Fix 3: Mode B substituerer {PROJECT_NAME} og {SETUP_DATE} i
       HEARTBEAT.md fra CLAUDE.md-overskrift eller git remote

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 18:07:05 +02:00
Michael Dieringer
e58961071b
Merge pull request #17 from Curabis/feature/heartbeat-template
Add HEARTBEAT.md template og opdater curabis-standard setup
2026-06-25 18:00:05 +02:00
Michael Dieringer
0be4b54de4 Add HEARTBEAT.md template og opdater curabis-standard setup
- custom/setup/templates/HEARTBEAT.md: Florence's vagtliste-template
  med 6 standard ward-checks (BCQuality PRs, CI/CD, BC-opgaver,
  forsinkede opgaver, gamle branches, agent-synlighed i CLAUDE.md)

- curabis-standard.agent.md:
  * Mode A: HEARTBEAT.md oprettelse som step 4f
  * Mode A: court/lincoln/aurelius/munger tilfoejt til agent-liste
  * Mode B: court-agenter og HEARTBEAT.md tilfoejt til opdateringstabel
  * Mode B: agent-synligheds-check efter opdatering
  * CLAUDE.md-template: court.agent.md og Francis-trigger tilfoejt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 17:58:53 +02:00
Michael Dieringer
d75783c311
Merge pull request #16 from Curabis/rule/claude-md-must-reference-all-agents
Foreslaa regel: claude-md-must-reference-all-agents
2026-06-25 17:52:38 +02:00
Michael Dieringer
659a6326a1 Foreslaa regel: claude-md-must-reference-all-agents
Observation fra session 2026-06-25: agenter installeret via Mode B forbliver
usynlige for Claude fordi CLAUDE.md ikke opdateres automatisk.

Foreslaaet af Francis. Valideret af Immanuel (alle 4 tests bestaaet).
Afventer Michaels godkendelse via merge.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 17:50:42 +02:00
Michael Dieringer
d6777894d0
Merge pull request #15 from Curabis/feature/court-judges
Add The Court — Lincoln, Aurelius, Munger judge panel
2026-06-25 17:38:33 +02:00
Michael Dieringer
414d4ce501 Add The Court — Lincoln, Aurelius, Munger judge panel
Three-judge appellate court for BCQuality governance. Convenes Lincoln
(essential question), Aurelius (Stoic reduction), and Munger (inversion)
to deliberate on the strategic health of the BCQuality rulebook.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 16:44:53 +02:00
Jesper Schulz-Wedde
8904ce583b
Fix CODEOWNERS: correct @jeschulz -> @jesperschulz on base rules (#53)
Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 14:28:48 +02:00
Jesper Schulz-Wedde
e2b7d534f9 Promote events knowledge from community to Microsoft layer
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 14:04:14 +02:00
Jeffrey Bulanadi
3769d2fbf4
Add knowledge file for raising events inside try functions (#31) 2026-06-25 13:55:06 +02:00
Jesper Schulz-Wedde
1eaf473e78
Wiring-fix: single source of truth for review leaf list + CI enforcement (#48)
De-enumerate the AL review leaf list so it lives in exactly one place:
the al-code-review super-skill's frontmatter sub-skills list.

- al-code-review.md: drop the enumerated parenthetical from description
  and remove the redundant bullet re-list in the Source section.
- README.md: remove the hardcoded count word and the enumerated domain
  list from the leaf-skill sentence.
- validate_frontmatter.py: add cross-file rule R26 asserting a
  super-skill's declared sub-skills exactly match the sibling
  al-*-review.md leaf files on disk (missing, stale, and unregistered
  leaves all fail CI).

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 13:49:10 +02:00
Jesper Schulz-Wedde
13f47f65a8
Seed web-services (API v2) knowledge domain (#45)
* Seed web-services (API v2) knowledge domain

Add eight web-services API page knowledge articles (each with .good.al/.bad.al samples), a new al-web-services-review leaf skill, and wire it into al-code-review and the README.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Trim web-services domain to 6 non-duplicative articles

Drop API entity-naming/camelCase and DelayedInsert articles (owned by the style domain). Reframe the committed-data and API-versioning articles to stay strictly within the endpoint design/behavior lane, and update the leaf skill's worklist tokens and Output example accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 12:37:40 +02:00
Jesper Schulz-Wedde
6140a52b03
Add breaking-changes knowledge domain and review leaf skill (#44)
Seed a new breaking-changes (AL API stability) knowledge domain with six
articles plus good/bad AL samples, a new al-breaking-changes-review leaf
skill, and minimal wiring into al-code-review and the README.

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 12:33:30 +02:00
Jesper Schulz-Wedde
f19f0618fb
Add events knowledge domain and review leaf skill (#43)
* Add events knowledge domain and review leaf skill

Add a new `events` knowledge domain covering AL events & subscribers,
wired into the AL review pipeline.

- 3 atomic articles (+ .good.al/.bad.al samples) under
  microsoft/knowledge/events/: the IsHandled override pattern, thin
  OnBefore/OnAfter integration-event publishers, and static vs manual
  subscribers.
- New leaf skill microsoft/skills/review/al-events-review.md sourcing the
  events domain.
- Wired into microsoft/skills/review/al-code-review.md (sub-skills + Source
  + description) and README.md (leaf-skill count + domain list).

AL event syntax verified against Microsoft Learn. Samples are
demonstration-only (not compiled by CI). Additive change; no contract change.

Part of #34.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add 12 general AL event-design articles to events domain

Add 12 atomic knowledge articles under microsoft/knowledge/events covering
general AL event-design best practices: IsHandled initialization and OnAfter
preservation, appending new event parameters, position-based event naming,
reusing/extending events, avoiding per-iteration publishing, Temp-prefixing
temporary record parameters, unabbreviated parameter names, preferring the
this keyword over IncludeSender, avoiding loosely typed parameters, not
mutating existing event contracts, and not bypassing critical operations
with IsHandled. Each article ships a .good.al and .bad.al demonstration
sample (object IDs 50240-50296; not compiled by CI). Extend the
al-events-review leaf Worklist with one targeted check per new rule.

Additive only; no contract or wiring change (events leaf already wired).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refine events articles after review feedback

Correct wording in five events articles to reflect that AL event
subscribers bind by parameter name, not position:

- add-new-event-parameters-at-the-end: drop the inaccurate claim that
  appending a parameter forces subscribers to be updated or causes wrong
  values; keep the append-at-end best practice.
- do-not-add-ishandled-to-an-existing-event: reframe from "breaking
  change" to the semantic/purpose shift that leaves existing subscribers
  pointless; rename the breaking-change keyword to semantic-change.
- name-events-by-publisher-position: extend the good sample with
  position-named publishers raised from table and report trigger
  contexts.
- initialize-ishandled-to-false-before-publishing: scope the detection
  and best practice to events that actually carry a var IsHandled, so an
  OnBefore with no IsHandled is not flagged.
- do-not-bypass-critical-operations-with-ishandled: add a litmus-test
  definition of a critical operation (code that cannot stand as an
  independent, self-contained unit).

Knowledge-only; no contract or wiring change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Soften Anti Pattern wording in add-new-event-parameters article

Remove the last name-vs-position misconception from the Anti Pattern so it
is consistent with the corrected Description: mid-list insertion is framed
as noisy and harder to review rather than as forcing subscriber re-mapping.
Detection sentence unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add events domain reviewers to CODEOWNERS

Add @AleksandricMarko and @pchriste-microsoft-com as required reviewers
for the events knowledge domain, matching the existing per-domain expert
ownership convention. Inserted in alphabetical order ahead of the
performance line.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 12:24:25 +02:00
Jesper Schulz-Wedde
23d5478ac6
Add interfaces knowledge domain and review leaf skill (#42)
Adds the interfaces knowledge domain covering AL interfaces and enum-with-implementation: three atomic articles with good/bad AL samples, a new al-interfaces-review leaf skill, and additive wiring into al-code-review and the README. Purely additive; no contract change.

Part of #34.

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 12:20:56 +02:00
Jesper Schulz-Wedde
45c2b2f5ec
Add domain expert reviewers to CODEOWNERS (#47)
Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 11:10:54 +02:00
Jesper Schulz-Wedde
08160b16ad
Remove warning about active development status 2026-06-24 16:22:38 +02:00