docs(ms-ai-architect): R11 §9.6 — trekker tilbake cond3-fellingen av idx 27; navngir scope-hoppet; presiserer at gaten er suiten [skip-docs]
To overpåstander i §9.6 rettet, begge funnet ved gjennomgang.
1. idx 27 ble skrevet som en cond3-FELLING. Den påstanden hvilte på to ledd
som ikke bærer den:
- Kilden fila siterer er en HUB. FAQ-en jeg grunnla på ligger én hop
utenfor. Å telle en hubs barn som "kilden" er en NY lesning av hva
grounding betyr — samme klasse som korpus-scope-spørsmålet §9.5
bevisst lot stå uratifisert. Jeg utøvde den stille. Den er nå navngitt
som åpent spørsmål.
- "Makers CAN REQUIRE user confirmation" beskriver en KONFIGURERBAR
kapabilitet, ikke noe kilden etablerer som til stede. Det er tynnere
evidens enn "kilden etablerer mekanismen".
Cond 3 står derfor fortsatt human_must_confirm. Denne økten hverken
klarerte eller felte den.
Utfallet er uendret: idx 27 forlater O2 uansett, fordi defekten er
MODALITET (built-in vs maker-konfigurerbar) og riktig fiks derfor er en
erstatning — utenfor delete-only-konvolutten uansett hvordan cond 3
lander. Det er den bærende grunnen, og den er uavhengig av begge ledd
over.
2. §8 presenterte check-g7-queue.mjs som håndhevings-mekanismen. Den har
ingen runner og kjører kun når noen skriver kommandoen. Det bindende er
testens siste case, som kjører den ekte køen mot live korpus hver
suite-kjøring. Presisert begge steder.
Operatørutfallene fra økten også ført i §9.6 (idx 26 -> G7, form b, kolon-fiks).
Suite 1047/1047.
This commit is contained in:
parent
59c6c280b1
commit
80a174b73a
2 changed files with 44 additions and 18 deletions
|
|
@ -750,26 +750,44 @@ open condition, it **concentrates it**: after reduction, 100 % of the edit is th
|
|||
part nobody had cleared. The original two-row form had a clean half; the reduced
|
||||
form has none. "One condition remains" understated it.
|
||||
|
||||
**idx 27 — FAILED, and the checker may say so unilaterally.** The file cites
|
||||
`microsoft-copilot-studio/responsible-ai-overview` for the whole section. That page
|
||||
is a hub; it establishes nothing itself, but it links the FAQ set, and
|
||||
`faqs-generative-orchestration` states plainly:
|
||||
**idx 27 — leaves O2, on modality grounds. Cond 3 is NOT settled, and the scope
|
||||
question underneath it is named rather than assumed.**
|
||||
|
||||
The file cites `microsoft-copilot-studio/responsible-ai-overview` for the whole
|
||||
section. That page is a **hub**: it establishes nothing itself, it links the FAQ
|
||||
set. One hop out, `faqs-generative-orchestration` says:
|
||||
|
||||
> "Makers can require user confirmation before executing tools that modify data."
|
||||
|
||||
The source therefore **does** establish a confirmation mechanism for Copilot Studio.
|
||||
Cond 3 asks whether the subtraction destroys source-confirmed information, and the
|
||||
answer is yes — so **cond 3 fails and idx 27 leaves O2 entirely.** This is a kill,
|
||||
not a clearance, so §9.3's asymmetry rule permits it without a ratifier.
|
||||
**Two cautions, both against the stronger reading this section originally carried.**
|
||||
|
||||
The row is not fabricated; its **modality** is wrong. The file asserts confirmation
|
||||
prompts as a *built-in disclosure*, whereas the source makes them a maker-configured
|
||||
option. The correct repair is a replacement, not a deletion — which is an O3-class
|
||||
fix, outside the delete-only envelope. Same for the Chat-interface row the reduction
|
||||
kept: the FAQ documents a default transparency **message** ("Just so you are aware,
|
||||
I sometimes use AI to answer your questions."), not the "Powered by AI" **badge** the
|
||||
file claims. That row is not in this subtraction, but it is now on the record as
|
||||
imprecise.
|
||||
*First, a scope decision, not a free move.* Grounding on a page the file does not
|
||||
cite — reached one hop through the cited hub — is a **new reading of "the source"**,
|
||||
structurally the same kind of expansion as the corpus-scope reading of cond 2 that
|
||||
§9.5 deliberately left unratified. R11 has otherwise held grounding to the cited
|
||||
URL throughout. **Whether a hub's linked children count as the cited source is
|
||||
therefore UNRATIFIED**, and is recorded here as an open question rather than
|
||||
exercised silently.
|
||||
|
||||
*Second, the quote is thinner than it looks.* "Makers **can require**" describes a
|
||||
**configurable capability**, not a feature the source establishes as present. Cond 3
|
||||
asks whether the subtraction destroys what the source establishes; an option a maker
|
||||
may enable is weak evidence for that. So **cond 3 stands unresolved at
|
||||
`human_must_confirm`** — this pass did not clear it and does not claim to have
|
||||
failed it either.
|
||||
|
||||
**idx 27 leaves O2 anyway, and for a reason that does not depend on either point
|
||||
above.** The defect is **modality**, not fabrication: the file asserts confirmation
|
||||
prompts as a *built-in disclosure*, whereas the mechanism — on any reading of the
|
||||
evidence — is maker-configured. Deleting the row would remove a claim whose core is
|
||||
sound and whose framing is wrong. **The correct repair is a replacement, and
|
||||
replacement is outside the delete-only envelope by definition.** That holds whether
|
||||
cond 3 eventually fails or clears, which is why it is the load-bearing reason.
|
||||
|
||||
Same for the Chat-interface row the reduction kept: the FAQ documents a default
|
||||
transparency **message** ("Just so you are aware, I sometimes use AI to answer your
|
||||
questions."), not the "Powered by AI" **badge** the file claims. Not part of this
|
||||
subtraction, but now on the record as imprecise.
|
||||
|
||||
**idx 26 — confirmed, and its held-back half is now positively false.** The canonical
|
||||
scorecard segments, from `how-to-responsible-ai-scorecard`, are: summary/model
|
||||
|
|
@ -836,6 +854,14 @@ measurement (b) is the better fit, and (a) would be mis-sized against the eviden
|
|||
**Verified score is unchanged at 4 of 46.** idx 27 leaves O2 without becoming a
|
||||
subtraction; idx 26 remains available to a ratifier as a two-part accept.
|
||||
|
||||
**Operator resolution, same session.** idx 26: the partial fix was **declined** —
|
||||
a delete-only edit that knowingly leaves a measured-false claim standing while
|
||||
introducing a renumbering artifact buys too little, so the whole 117+300 pair went
|
||||
to G7. G7 form: **(b), the named queue**, on the measurement above. The idx 17
|
||||
regression was fixed by changing the colon to a period, making the lead-in a
|
||||
complete and independently true sentence that the `**Verified**` stamp correctly
|
||||
covers; the corpus was swept for the same defect shape with no other occurrence.
|
||||
|
||||
## Appendix A — the 15 admitted proposals, hand-verified
|
||||
|
||||
Every proposal the classifier (§4 + context condition) admitted over the whole
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ Status-nøkkel: 🔴 ikke startet · 🟡 pågår · 🟢 lukket.
|
|||
|
||||
| **G6** | Ingen sikkerhetsgate på ingestion-kjeden (hentet eksternt innhold → korpus): llm-security-pluginen er **deaktivert globalt** (verifisert 2026-07-03 i `~/.claude/settings.json`), så `post-mcp-verify`-hooken (injection-skann på all tool-output, inkl. `microsoft_docs_fetch`) fyrer ikke; commit-gaten dekker kun secrets (gitleaks), ikke injeksjon/steganografi i `.md`-innhold. Tillit til MS Learn dekker faktisk korrekthet — ikke adversarielt innhold i kanalen eller i kodeeksempler/lokalisert stoff | Indirekte prompt-injeksjon/steganografi persistert i offentlig distribuert KB: references-filene blir instruksjonsnær kontekst i fremtidige agent-sesjoner, én forgiftet fil re-serveres til alle brukere (hele Norge) | **R6-briefen designer gaten, to lag** (`docs/ingestion-security-brief-2026-07.md`, committet 2026-07-04): (a) llm-security AKTIV + verifisert fyrende i enhver fetch-økt (kb-update, research, generate-skills, judge-pass); headless-caveat GH #36071 → foreground eller kompenserende skann; (b) deterministisk node-skann (unicode/decode/injection — de DELTE llm-security-detektorene importert in-process, ikke kopiert; operatør-valg 2026-07-04) over endrede `skills/**/*.md` før commit. Håndheves fra R7 og i kb-update-kadensen | 🟢 **Layer B (b) LUKKET 2026-07-04 (TDD).** Bærende gaten bygget: `scan-adversarial-content.mjs` (+ `lib/adversarial-scan.mjs` disposition-kjerne, `lib/adversarial-detect.mjs` llm-security-bro), wiret som sibling til `validate-kb-file.mjs` ved det eneste skrive-chokepunktet (kb-update §3b.d.7/§4/§5 + generate-skills per-batch/pre-commit). Provenance-tiered BLOCK/WARN; injection-flagg → samme menneske-i-loop som status-påstand. 30 tester (692/0). Premiss-korr.: research/research-agent skriver ingenting (kun Layer A); CLI-scan alene misset injection+base64 → importerer rene primitiver. **Baseline-adjudikering (Enhet A2) LUKKET 2026-07-18 (TDD):** korpus-baseline 55/389 flagget (83 funn) → 4 ekte defekter fikset (2 Cyrillic-homoglyph-ord, 2 filer med U+00AD) + 75 funn human-adjudikert inn i innholds-basert allowlist (`scripts/kb-update/data/layerb-allowlist.json`: class+evidence+tier+eksakt trimmet linjeinnhold per entry, med begrunnelse; flyttet linje forblir grønn, endret innhold GJENOPPSTÅR som flagg — scanneren selv usvekket, korrupt/manglende allowlist → tom = full strenghet). Korpus 389/389 OK exit 0; commit-gaten (pre-commit-scan) leser samme allowlist. **Layer A (a) LUKKET 2026-07-18 (Enhet B):** `post-mcp-verify` aktivert kirurgisk i `~/.claude/settings.json` (PostToolUse-matcher `mcp__microsoft-learn__.*`) + live-verifisert fyrende med 2 foreground `microsoft_docs_fetch` — og en **ekte hook-defekt funnet+fikset underveis** (hooken leste `tool_output`, live-protokollen sender `tool_response` → hooken skannet ingenting; fiks TDD i llm-security `44aa390` v7.8.3). Se lukke-logg. | Layer A: R7 (første judge-pass-fetch-økt) / enhver `/architect:kb-update`/`generate-skills`-fetch-økt |
|
||||
|
||||
| **G7** | **Ingen rute for korreksjoner som er RIKTIGE, men større enn O2-konvolutten.** O2 er definert som én lokator + kun-sletting. R11 §9.3/§9.4 produserte fire funn der den korrekte fiksen beviselig ligger utenfor: idx 18 (`rag-caching-optimization.md:29` — den overlevende påstanden er en hel titulert seksjon 303-318 **pluss** en `**Verified**`-rad på 510; ingen sletting begrenset til linje 29 kan reparere fila), idx 36 (`ai-threat-modeling-stride.md:38` — companion-edit på 310 kreves for at prosaen skal matche den innsnevrede severity-tabellen), idx 17 (`**Verified**`-stemplet på 258 stempler etter editen kun retnings-utsagnet), idx 33 (innholdet overlever på 357 under CAF-attribusjon, så editens gevinst er mindre enn den ser ut). Alle fire er i dag kun prosa i `r11-pilot-results.md` | **Sanne defekter som stille faller ut av programmet fordi ingen mekanisme eier dem.** O2-triagen avviser dem (utenfor konvolutt), O3 dekker dem ikke (fiksen er ikke en verdi-swap), og det menneskelige review-sporet har ingen inngangskø. Nettoeffekten er at den *vanskeligste* klassen — der fila motsier seg selv — er den eneste uten eier | **DESIGNET + BYGGET 2026-08-03 (form b — navngitt kø).** Valget ble tatt på måling, ikke på form-preferanse: av de fire subtraksjonene i `957ebef` etterlot **to** en rest (§9.6), så rester er delete-only-konvoluttens normale biprodukt, ikke et unntak. Og **to av de fem medlemmene (idx 17, 33) er erstatninger, ikke fler-lokator** — en delete-orientert O4-klasse med egen retur-kontrakt ville ikke fikset dem, altså vært feil dimensjonert mot evidensen. Køen absorberer begge klasser. Artefakter: `scripts/kb-eval/data/g7-review-queue.json` (tracked, 6 entries) + `lib/g7-queue.mjs` + `check-g7-queue.mjs` + 15 tester. **Ankere er ordrette strenger, ALDRI linjenummer** (`line` ≠ `real_line` i 9 av 17 R11-records); en åpen entry hvis anker slutter å matche gir `anchor_drift` og exit 1 — den kan ikke falle stille ut. Ingenting i køen er maskin-anvendbart per definisjon; lukking er en menneskelig review-handling som MÅ føre `resolution`. Kobles fra ÅPEN OPERATØRBESLUTNING #2: køen står uansett hvordan den lander | 🟡 **pågår — mekanismen står, køen er ikke tømt.** 5 åpne (idx 26, 27, 33, 36, 18), 1 lukket (idx 17: dinglende ledetekst → kolon-til-punktum, operatør-ratifisert). idx 27 kom hit ved å FALLE UT av O2 på cond 3 (§9.6), idx 26 ved operatørens avvisning av delvis fiks | Før R11s menneskelige review-fase erklæres ferdig. **Mekanismen er nå lukke-vilkåret oppfylt for; det som gjenstår er innholdet i køen** |
|
||||
| **G7** | **Ingen rute for korreksjoner som er RIKTIGE, men større enn O2-konvolutten.** O2 er definert som én lokator + kun-sletting. R11 §9.3/§9.4 produserte fire funn der den korrekte fiksen beviselig ligger utenfor: idx 18 (`rag-caching-optimization.md:29` — den overlevende påstanden er en hel titulert seksjon 303-318 **pluss** en `**Verified**`-rad på 510; ingen sletting begrenset til linje 29 kan reparere fila), idx 36 (`ai-threat-modeling-stride.md:38` — companion-edit på 310 kreves for at prosaen skal matche den innsnevrede severity-tabellen), idx 17 (`**Verified**`-stemplet på 258 stempler etter editen kun retnings-utsagnet), idx 33 (innholdet overlever på 357 under CAF-attribusjon, så editens gevinst er mindre enn den ser ut). Alle fire er i dag kun prosa i `r11-pilot-results.md` | **Sanne defekter som stille faller ut av programmet fordi ingen mekanisme eier dem.** O2-triagen avviser dem (utenfor konvolutt), O3 dekker dem ikke (fiksen er ikke en verdi-swap), og det menneskelige review-sporet har ingen inngangskø. Nettoeffekten er at den *vanskeligste* klassen — der fila motsier seg selv — er den eneste uten eier | **DESIGNET + BYGGET 2026-08-03 (form b — navngitt kø).** Valget ble tatt på måling, ikke på form-preferanse: av de fire subtraksjonene i `957ebef` etterlot **to** en rest (§9.6), så rester er delete-only-konvoluttens normale biprodukt, ikke et unntak. Og **to av de fem medlemmene (idx 17, 33) er erstatninger, ikke fler-lokator** — en delete-orientert O4-klasse med egen retur-kontrakt ville ikke fikset dem, altså vært feil dimensjonert mot evidensen. Køen absorberer begge klasser. Artefakter: `scripts/kb-eval/data/g7-review-queue.json` (tracked, 6 entries) + `lib/g7-queue.mjs` + `check-g7-queue.mjs` + 15 tester. **Ankere er ordrette strenger, ALDRI linjenummer** (`line` ≠ `real_line` i 9 av 17 R11-records); en åpen entry hvis anker slutter å matche gir `anchor_drift` og exit 1 — den kan ikke falle stille ut. ⚠️ **Presisering om hva som faktisk HÅNDHEVER dette:** `check-g7-queue.mjs` har ingen runner og kjører kun når noen skriver kommandoen. Den bindende gaten er **testen** — `test-g7-queue.test.mjs` siste case (`the real queue file validates against the live corpus`) kjører den ekte køen mot live korpus i hver suite-kjøring. CLI-en er for lesbar status; suiten er gaten. Ingenting i køen er maskin-anvendbart per definisjon; lukking er en menneskelig review-handling som MÅ føre `resolution`. Kobles fra ÅPEN OPERATØRBESLUTNING #2: køen står uansett hvordan den lander | 🟡 **pågår — mekanismen står, køen er ikke tømt.** 5 åpne (idx 26, 27, 33, 36, 18), 1 lukket (idx 17: dinglende ledetekst → kolon-til-punktum, operatør-ratifisert). idx 27 kom hit ved å FALLE UT av O2 på cond 3 (§9.6), idx 26 ved operatørens avvisning av delvis fiks | Før R11s menneskelige review-fase erklæres ferdig. **Mekanismen er nå lukke-vilkåret oppfylt for; det som gjenstår er innholdet i køen** |
|
||||
|
||||
**Ikke mekanisme-gap, men sporet backlog (innhold, ikke loop):** reference-`.md`-fil-fiksene fra Spor 2b (FP1 11000+/40+, FP2 «kun», FP6 Preview/Norway-East, FN2–FN6 utdaterte tall) **+ G5b** (`adr-template.md` fjern «zero permission management»; `multi-region-azure-openai-deployment.md` bytt retired `gpt-35-turbo` → gjeldende modell; `network-resilience-patterns-ai.md` «obligatorisk» → «anbefalt»; `vector-storage-cost-optimization.md` GA-dato `2024-11-01` → `2024-07-01`) er **Spor 0/1**-innholdsarbeid — pekt per-claim i `notes`, ikke gjentakelses-mekanisme. Føres i Spor 0-manifest / Spor 1-korpus-pass, ikke her.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue