mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
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>
This commit is contained in:
parent
7ee858f8b7
commit
6b33e10146
3 changed files with 122 additions and 3 deletions
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
kind: action-skill
|
||||
id: curabis-bcquality-court
|
||||
version: 1
|
||||
version: 2
|
||||
title: The Court — CURABIS BCQuality Landsret
|
||||
description: >
|
||||
The three-judge appellate court for BCQuality governance. Convenes Lincoln,
|
||||
|
|
@ -65,7 +65,11 @@ Each judge reads all prior opinions before writing their own.
|
|||
|
||||
## Convening the Court
|
||||
|
||||
The Court is convened by presenting a **case brief** containing:
|
||||
The Court hears two kinds of cases, with different brief requirements.
|
||||
|
||||
### Effectiveness cases (rulebook health)
|
||||
|
||||
Convened by presenting a **case brief** containing:
|
||||
|
||||
1. **The question before the Court** — what strategic decision needs a ruling?
|
||||
(e.g., "Should rules ARCH-003 and ARCH-007 be consolidated?",
|
||||
|
|
@ -74,6 +78,23 @@ The Court is convened by presenting a **case brief** containing:
|
|||
3. **The relevant rules** — full text from BCQuality
|
||||
4. **Incident history** — any documented cases where the rules failed or succeeded
|
||||
|
||||
### RegelSanity cases (local divergence)
|
||||
|
||||
CURABIS repos must behave identically (BCQuality rule
|
||||
`repo-local-agents-must-be-universalized-or-removed`). When Mode B or a session
|
||||
finds a repo-local agent or quality rule that exists in no other repo, the
|
||||
Court hears the divergence case. **No Edison scorecards are required** — the
|
||||
brief is:
|
||||
|
||||
1. **The local file** — full text, and which repo carries it
|
||||
2. **The gap it fills** — why did a developer feel the need to create it?
|
||||
3. **The question** — universalize into BCQuality, or remove from the repo?
|
||||
|
||||
The disposition for a RegelSanity case is always one of **UNIVERSALIZE**
|
||||
(route to Francis → Immanuel → Michael) or **REMOVE**. A local agent that is
|
||||
good enough to keep is by definition good enough to universalize — Edison
|
||||
himself entered the rulebook exactly this way.
|
||||
|
||||
The Court will not deliberate without a case brief. Vague questions produce
|
||||
vague rulings.
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
---
|
||||
bc-version: [all]
|
||||
domain: architecture
|
||||
keywords: [agents, repo-local, divergence, regelsanity, court, governance, universalization]
|
||||
technologies: [al]
|
||||
countries: [w1]
|
||||
application-area: [all]
|
||||
---
|
||||
|
||||
# Repo-local agents and rules must be universalized or removed
|
||||
|
||||
## Description
|
||||
|
||||
CURABIS repos must behave identically. A developer who adds an agent or a
|
||||
quality rule directly to one repo's `.github/.agents/` (instead of proposing
|
||||
it for BCQuality) creates silent divergence: that repo reviews, routes, or
|
||||
behaves differently from every other repo, and the improvement — if it is one
|
||||
— never reaches the rest of the portfolio.
|
||||
|
||||
This happened in practice: `edison.agent.md` was created locally in one repo.
|
||||
It was invisible to all other repos for weeks, while `court.agent.md`
|
||||
(deployed everywhere) declared a hard dependency on Edison's scorecards — a
|
||||
dependency no other repo could satisfy. The agent was good; the placement
|
||||
made it a liability.
|
||||
|
||||
Repo-specific agents and quality rules do not produce better quality. They
|
||||
produce N repos with N behaviours. Domain-specific knowledge (business rules,
|
||||
scope, customer context) belongs in `projectmemory/` and `docs/specs/` —
|
||||
process and quality standards belong in BCQuality, or nowhere.
|
||||
|
||||
## Rule
|
||||
|
||||
Any agent file or quality/process rule found in a repo that is not part of
|
||||
the BCQuality-deployed set has exactly two futures, and silence is not one
|
||||
of them:
|
||||
|
||||
1. **Universalize** — route it through the governance pipeline: Francis files
|
||||
the observation, Immanuel universalizes, Michael merges to BCQuality, the
|
||||
next stable promote deploys it to every repo. If the addition raises a
|
||||
portfolio-level question (overlap with existing agents, structural change),
|
||||
the Court hears it as a RegelSanity case — no Edison scorecards required
|
||||
for divergence cases; the file itself and the question "universal or out?"
|
||||
suffice.
|
||||
2. **Remove** — if it does not generalize, it does not belong in the repo.
|
||||
|
||||
Detection is Mode B's job: reconciliation must flag files present in
|
||||
`.github/.agents/` that are NOT in the setup template list — extras, not just
|
||||
missing files.
|
||||
|
||||
## What NOT to do
|
||||
|
||||
- Do not keep a locally added agent because it is useful — usefulness is the
|
||||
argument FOR universalizing it, not for keeping it private
|
||||
- Do not delete a local agent without the routing step; it may be the best
|
||||
idea in the portfolio (Edison was)
|
||||
- Do not put quality or process rules in a project's CLAUDE.md or
|
||||
projectmemory/ to avoid the governance pipeline
|
||||
- Do not treat this as bureaucracy — one promote deploys to every repo;
|
||||
universalizing is cheaper than maintaining a private fork of the standard
|
||||
|
||||
## Signal to watch for
|
||||
|
||||
During Mode B or at session start: a file in `.github/.agents/` whose name
|
||||
does not appear in the setup template table in `curabis-standard.agent.md`.
|
||||
|
||||
## Message to developer
|
||||
|
||||
When a repo-local agent or rule is found, tell the developer: this repo
|
||||
carries a local agent/rule that no other CURABIS repo has; per RegelSanity it
|
||||
must either be proposed for BCQuality (offer to route it to Francis and
|
||||
Immanuel now) or removed — and ask which of the two they want.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
kind: action-skill
|
||||
id: curabis-standard-setup
|
||||
version: 10
|
||||
version: 11
|
||||
title: CURABIS Standard — Project Setup
|
||||
description: >
|
||||
Configures a new or existing repository to the CURABIS Standard development
|
||||
|
|
@ -600,6 +600,33 @@ When creating HEARTBEAT.md from template in Mode B:
|
|||
- `docs/` content — project documentation, never overwritten by tooling
|
||||
- `~/.bc-mcp.config.json` — contains developer secrets
|
||||
|
||||
### After update — lokal-agent-check (RegelSanity)
|
||||
|
||||
Reconciliation runs in BOTH directions. Missing template files are handled
|
||||
above — this check finds the opposite: **extra** files in `.github/.agents/`
|
||||
that are not in this document's template table (see BCQuality rule
|
||||
`repo-local-agents-must-be-universalized-or-removed`).
|
||||
|
||||
1. List `.github/.agents/*.agent.md` and compare against the template table
|
||||
2. For each file NOT in the table, output:
|
||||
|
||||
```
|
||||
⚠️ RegelSanity: dette repo har en lokal agent, som ingen andre CURABIS-repos har:
|
||||
|
||||
- <navn>.agent.md
|
||||
|
||||
Repoer må ikke opføre sig forskelligt. Agenten skal enten:
|
||||
a) universaliseres — jeg ruter den til Francis/Immanuel som BCQuality-forslag
|
||||
(Retten hører sagen, hvis den rejser et portefølje-spørgsmål)
|
||||
b) fjernes fra repoet
|
||||
|
||||
Hvad vælger du? (a/b)
|
||||
```
|
||||
|
||||
3. Never delete without the developer's answer; never silently keep.
|
||||
If (a): draft the Francis observation immediately — the local file is the
|
||||
evidence. If (b): remove the file and note it in the update report.
|
||||
|
||||
### After update — agent-synligheds-check
|
||||
|
||||
After updating agent files, compare `.github/.agents/*.agent.md` against CLAUDE.md:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue