mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
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>
This commit is contained in:
parent
3ce08fe91e
commit
68a3f6dffa
10 changed files with 34 additions and 34 deletions
|
|
@ -37,24 +37,24 @@ Detect which mode based on the trigger phrase and proceed accordingly.
|
|||
## Source: the channel clone (BCQuality is PRIVATE — no raw URLs)
|
||||
|
||||
All artifacts come from the machine's **channel clone** — a git clone of
|
||||
`Curabis/BCQuality` pinned to the `stable` branch. Authentication is Git
|
||||
`Curabis/QualityHub` pinned to the `stable` branch. Authentication is Git
|
||||
Credential Manager (the developer's existing GitHub login); there are NO
|
||||
tokenless raw.githubusercontent fetches anywhere — the repo is private.
|
||||
|
||||
```
|
||||
SRC = %USERPROFILE%\.claude\BCQuality (kanal-klonen, stable)
|
||||
SRC = %USERPROFILE%\.claude\QualityHub (kanal-klonen, stable)
|
||||
BASE = {SRC}\custom\setup
|
||||
AGENTS_BASE = {SRC}\custom\agents
|
||||
```
|
||||
|
||||
**Before ANY Mode A/B work, ensure the channel clone is fresh:**
|
||||
|
||||
git -C "$env:USERPROFILE\.claude\BCQuality" fetch origin stable --quiet
|
||||
git -C "$env:USERPROFILE\.claude\BCQuality" checkout -B stable origin/stable --quiet
|
||||
git -C "$env:USERPROFILE\.claude\QualityHub" fetch origin stable --quiet
|
||||
git -C "$env:USERPROFILE\.claude\QualityHub" checkout -B stable origin/stable --quiet
|
||||
|
||||
If the clone is missing entirely:
|
||||
|
||||
git clone --branch stable --single-branch https://github.com/Curabis/BCQuality.git "$env:USERPROFILE\.claude\BCQuality"
|
||||
git clone --branch stable --single-branch https://github.com/Curabis/QualityHub.git "$env:USERPROFILE\.claude\QualityHub"
|
||||
|
||||
**Vocabulary:** wherever this document says "fetch", it means **copy the file
|
||||
from SRC** — a filesystem copy, which preserves raw bytes by definition (the
|
||||
|
|
@ -210,10 +210,10 @@ onboarded — `~/.claude/CLAUDE.md` or `~/.claude/bc-mcp-bridge.js` is missing
|
|||
run the full onboarding NOW (idempotent; identity taken from git config; the
|
||||
first git contact may open a browser login — that IS the authentication):
|
||||
|
||||
git clone --branch stable --single-branch https://github.com/Curabis/BCQuality.git "$env:USERPROFILE\.claude\BCQuality"
|
||||
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\BCQuality\custom\setup\machine\Install-CurabisMachine.ps1"
|
||||
git clone --branch stable --single-branch https://github.com/Curabis/QualityHub.git "$env:USERPROFILE\.claude\QualityHub"
|
||||
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\QualityHub\custom\setup\machine\Install-CurabisMachine.ps1"
|
||||
|
||||
(Skip the clone line if `%USERPROFILE%\.claude\BCQuality` already exists.)
|
||||
(Skip the clone line if `%USERPROFILE%\.claude\QualityHub` already exists.)
|
||||
Then report the manual leftovers it lists (personal client secret; the AL
|
||||
Language extension if VS Code lacks it) and ask the developer to restart
|
||||
Claude Code.
|
||||
|
|
@ -224,7 +224,7 @@ self-heal suffices:
|
|||
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\sync-bcquality-knowledge.ps1"
|
||||
|
||||
(If that sync script itself is missing, copy it from the channel clone:
|
||||
`%USERPROFILE%\.claude\BCQuality\custom\setup\sync-bcquality-knowledge.ps1` —
|
||||
`%USERPROFILE%\.claude\QualityHub\custom\setup\sync-bcquality-knowledge.ps1` —
|
||||
or run the full onboarding above.)
|
||||
|
||||
These rules are always active.
|
||||
|
|
@ -545,7 +545,7 @@ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|||
Triggered by: "Opdater CURABIS Standard fra BCQuality"
|
||||
|
||||
**Step 0 — freshen the channel clone** (see Source section): fetch + checkout
|
||||
`origin/stable` in `%USERPROFILE%\.claude\BCQuality`; create the clone if
|
||||
`origin/stable` in `%USERPROFILE%\.claude\QualityHub`; create the clone if
|
||||
missing. Every copy below reads from that clone.
|
||||
|
||||
Updates only the files that come directly from BCQuality.
|
||||
|
|
@ -778,7 +778,7 @@ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|||
## Invocation note
|
||||
|
||||
This agent is read on demand from the machine's channel clone
|
||||
(`%USERPROFILE%\.claude\BCQuality\custom\setup\curabis-standard.agent.md`,
|
||||
(`%USERPROFILE%\.claude\QualityHub\custom\setup\curabis-standard.agent.md`,
|
||||
after freshening — see Source section). Both commands work in any project —
|
||||
including one not yet configured — because the machine's `~/.claude/CLAUDE.md`
|
||||
(installed by onboarding) knows the clone location. On a machine without the
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
These instructions apply to every Claude Code session, regardless of project.
|
||||
BCQuality is a PRIVATE repo: all access is git-based via the channel clone at
|
||||
`%USERPROFILE%\.claude\BCQuality` (pinned to `stable`; auth = Git Credential
|
||||
`%USERPROFILE%\.claude\QualityHub` (pinned to `stable`; auth = Git Credential
|
||||
Manager). No raw.githubusercontent URLs — they do not work and must not be used.
|
||||
|
||||
## Auto-update BCQuality (runs at every session start)
|
||||
|
|
@ -11,15 +11,15 @@ Manager). No raw.githubusercontent URLs — they do not work and must not be use
|
|||
If the current project has `.github/.agents/bcquality.agent.md`:
|
||||
|
||||
1. Freshen the channel clone and read its SHA:
|
||||
`git -C "$env:USERPROFILE\.claude\BCQuality" fetch origin stable --quiet`
|
||||
`git -C "$env:USERPROFILE\.claude\BCQuality" rev-parse origin/stable`
|
||||
`git -C "$env:USERPROFILE\.claude\QualityHub" fetch origin stable --quiet`
|
||||
`git -C "$env:USERPROFILE\.claude\QualityHub" rev-parse origin/stable`
|
||||
(If the clone is missing: run the machine self-heal from the project
|
||||
CLAUDE.md — two lines: git clone + Install-CurabisMachine.ps1.)
|
||||
2. Read stored SHA from `~/.claude/.bcquality-version` (may not exist yet)
|
||||
3. If SHA is different (or file missing):
|
||||
a. `git -C "$env:USERPROFILE\.claude\BCQuality" checkout -B stable origin/stable --quiet`
|
||||
a. `git -C "$env:USERPROFILE\.claude\QualityHub" checkout -B stable origin/stable --quiet`
|
||||
b. Execute Mode B from the clone:
|
||||
`%USERPROFILE%\.claude\BCQuality\custom\setup\curabis-standard.agent.md`
|
||||
`%USERPROFILE%\.claude\QualityHub\custom\setup\curabis-standard.agent.md`
|
||||
c. Refresh the local knowledge mirror:
|
||||
`powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\sync-bcquality-knowledge.ps1"`
|
||||
(git-based; also writes the new SHA to the version marker)
|
||||
|
|
@ -49,7 +49,7 @@ When the user says either of these commands, freshen the channel clone (see
|
|||
Auto-update step 1) and follow the setup agent read from:
|
||||
|
||||
```
|
||||
%USERPROFILE%\.claude\BCQuality\custom\setup\curabis-standard.agent.md
|
||||
%USERPROFILE%\.claude\QualityHub\custom\setup\curabis-standard.agent.md
|
||||
```
|
||||
|
||||
- **"Konfigurer dette projekt til CURABIS Standard"** → fuld setup af nyt repo
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
# Onboarding paa en ny maskine er TO linjer (GCM-login i browseren ved
|
||||
# foerste git-kontakt ER autentificeringen):
|
||||
#
|
||||
# git clone --branch stable --single-branch https://github.com/Curabis/BCQuality.git "$env:USERPROFILE\.claude\BCQuality"
|
||||
# powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\BCQuality\custom\setup\machine\Install-CurabisMachine.ps1"
|
||||
# git clone --branch stable --single-branch https://github.com/Curabis/QualityHub.git "$env:USERPROFILE\.claude\QualityHub"
|
||||
# powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\QualityHub\custom\setup\machine\Install-CurabisMachine.ps1"
|
||||
#
|
||||
# Alt kopieres fra kanal-klonen (filsystem-kopi = raa bytes; ingen raw-URLs).
|
||||
#
|
||||
|
|
@ -19,7 +19,7 @@ param(
|
|||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$claude = Join-Path $env:USERPROFILE '.claude'
|
||||
$clone = Join-Path $env:USERPROFILE '.claude\BCQuality'
|
||||
$clone = Join-Path $env:USERPROFILE '.claude\QualityHub'
|
||||
New-Item -ItemType Directory -Force $claude | Out-Null
|
||||
|
||||
# Kilde: scriptet ligger i <klon>\custom\setup\machine → klonrod tre niveauer op
|
||||
|
|
@ -28,7 +28,7 @@ $src = (Resolve-Path (Join-Path $PSScriptRoot '..\..\..')).Path
|
|||
# Sikr kanal-klonen paa den kanoniske placering (scriptet KAN vaere koert fra en anden klon)
|
||||
if (-not (Test-Path (Join-Path $clone '.git'))) {
|
||||
if ($src -ne $clone) {
|
||||
git clone --branch stable --single-branch 'https://github.com/Curabis/BCQuality.git' $clone
|
||||
git clone --branch stable --single-branch 'https://github.com/Curabis/QualityHub.git' $clone
|
||||
if ($LASTEXITCODE -ne 0) { throw 'git clone af kanal-klonen fejlede - tjek adgang/GCM.' }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Refresh the MACHINE-LOCAL mirror of the Curabis BCQuality knowledge base.
|
||||
#
|
||||
# v2 - GIT-BASED (privat repo): al konsumtion sker via en kanal-klon i
|
||||
# %USERPROFILE%\.claude\BCQuality (pinned til stable-branchen)
|
||||
# %USERPROFILE%\.claude\QualityHub (pinned til stable-branchen)
|
||||
# Autentificering haandteres af Git Credential Manager - ingen raw-URLs,
|
||||
# ingen GitHub API, ingen CDN-cache. Foerste koersel udloeser evt. et
|
||||
# GCM-login i browseren; det ER onboarding-autentificeringen.
|
||||
|
|
@ -18,8 +18,8 @@
|
|||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
$repoUrl = 'https://github.com/Curabis/BCQuality.git'
|
||||
$clone = Join-Path $env:USERPROFILE '.claude\BCQuality'
|
||||
$repoUrl = 'https://github.com/Curabis/QualityHub.git'
|
||||
$clone = Join-Path $env:USERPROFILE '.claude\QualityHub'
|
||||
$dest = Join-Path $env:USERPROFILE '.claude\bcquality-knowledge'
|
||||
$marker = Join-Path $env:USERPROFILE '.claude\.bcquality-version'
|
||||
$staging = "$dest.tmp"
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ Layer 1 - Microsoft BCQuality: https://github.com/microsoft/BCQuality
|
|||
Layer 2 - CURABIS custom knowledge: read from the machine-local mirror —
|
||||
`%USERPROFILE%\.claude\bcquality-knowledge\custom\` (always complete; never a
|
||||
hardcoded file list — the rulebook grows). Fallback without a mirror: the
|
||||
channel clone at `%USERPROFILE%\.claude\BCQuality\custom\knowledge\`. The
|
||||
channel clone at `%USERPROFILE%\.claude\QualityHub\custom\knowledge\`. The
|
||||
repo is PRIVATE — raw URLs do not exist.
|
||||
|
||||
If a source is unreachable, **degrade gracefully**: fall back to the triage protocol
|
||||
|
|
|
|||
|
|
@ -55,8 +55,8 @@ Resolve the current rule set at review time, in this order:
|
|||
`%USERPROFILE%\.claude\bcquality-knowledge\custom\`). The mirror is synced
|
||||
from the `stable` release channel and is always the complete custom layer.
|
||||
2. **Fallback (no mirror):** read directly from the machine's channel clone —
|
||||
`%USERPROFILE%\.claude\BCQuality\custom\knowledge\**\*.md` (freshen with
|
||||
`git -C "$env:USERPROFILE\.claude\BCQuality" pull` if stale). The repo is
|
||||
`%USERPROFILE%\.claude\QualityHub\custom\knowledge\**\*.md` (freshen with
|
||||
`git -C "$env:USERPROFILE\.claude\QualityHub" pull` if stale). The repo is
|
||||
PRIVATE: tree-API/raw-URL fallbacks no longer exist. Consumers without
|
||||
filesystem access outside the workspace (e.g. Copilot) rely on the
|
||||
repo-committed agent files alone — deep custom-layer lookups happen in
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue