bcquality/custom/knowledge/architecture/repo-local-agents-must-be-universalized-or-removed.md
Michael Dieringer 6b33e10146 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>
2026-07-02 07:09:44 +02:00

3.1 KiB

bc-version domain keywords technologies countries application-area
all
architecture
agents
repo-local
divergence
regelsanity
court
governance
universalization
al
w1
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.