Commit graph

5 commits

Author SHA1 Message Date
f35a22a304 fix(skills): eksempelet brøt skillens egen regel — undecided, ikke survived
Tre defekter i ff7b9b7, funnet i review. Ingen av dem ville blitt fanget av
json.tool eller framework-guardene — alle tre er semantiske.

1. example-evidence.json sa `"judgement": "survived"` samtidig som ledger-noten sa at
   det ene konseptet som kunne båret en refutasjon var UNREADABLE. SKILL.md sier
   ordrett at `undecided` er «what you return when the evidence needed to refute the
   claim was not readable». Det ene arbeidseksempelet — det en nedstrøms agent leser
   som mønsteret, og det §11-testen materialiserer — demonstrerte altså nøyaktig
   inversjonen skillen finnes for å hindre: et hull i kunnskapsbasen konvertert til
   støtte for påstanden. Rettet til `undecided` + `judgement_note` som sier hvorfor.
   Eksempelet er bedre etterpå: det er nå den utførte demonstrasjonen av tilstanden
   skillen sier leseren mest trenger å kunne skille ut.

2. De to representasjonene i eksempelet var uenige med seg selv. Konsept 2s
   `frontmatter`-dict utelater `sources` (korrekt — en blokkliste er ikke uttrykkbar
   som én `key: value`-streng), mens `frontmatter_verbatim` har den. En §11-test som
   materialiserer fra dict-en ville utledet `state: absent`, ikke `unreadable`, og
   dermed mistet nøyaktig caset eksempelet finnes for. Grønn-men-død-formen §11 er
   til for å hindre. Nytt `materialisation_note`: `frontmatter_verbatim` er
   AUTORITATIV, `frontmatter` er dens linjeorienterte projeksjon og informativ.

3. method-spec.md skrev «Measured 2026-09-01 on the reference corpus: 2 of 5 keys …»
   i commons' EGEN stemme. Commons målte det ikke. Driftsregelen er eksplisitt —
   andres målinger føres som DERES — og teksten skal til en publisert flate. Tallet
   siteres nå ordrett fra ordren som bestilte A1, attribuert dit, med en setning om
   at mekanismen bærer A1 uten det: figuren er støtte, ikke grunn. Samme i CHANGELOG.
   Merk at konvensjonen er tvetydig i kildene: PM-dommen sier «produsenten skriver 2
   av 5 noekler», ordren sier «2 av 5 nøkler på ÉN kilde» — ulike påstander. Ordrens
   ordlyd er den siterte, og at det er et sitat er nå synlig.

Verifisering re-kjørt: konsumentens _FRAMEWORK_NAMES + _FORBIDDEN over 6 filer → 0
treff (kjent-positiv PASS); 'OKF bundle' 0 i skillen; json.tool OK; Steg 1-8 + MUST
intakt. Fortsatt IKKE PUSHET — origin/main..HEAD og open/main..HEAD begge 2 etter denne.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 17:11:39 +02:00
ff7b9b7c73 docs(spec): Amendment A1 — sources som flow-sekvens + falsification-reviewer-persona
Ordre 20260902T113745Z-1250119413-from-.claude (S4), inkl. PM-amendmentet 02.09 14:20Z
som flyttet punkt 2 fra blokkliste til flow-sekvens.

1. skills/falsification-reviewer/ — andre framework-nøytrale persona ved siden av
   expert-reviewer, ordrett etter Handoff-specen (portfolio-optimiser plan.md § Handoff).
   Bærer evidens-trikotomien present/absent/unreadable der unreadable NAVNGIR formen den
   ikke kunne lese + items_seen; adjudication med `unknown` og `proposed` eksplisitt
   navngitt og aldri kollapset; K5-terskelen (B3) som skillens regel — en dom hviler på et
   konsept KUN når state == present OG trust_tier != unverified, alt annet rapporteres som
   (state, reason, items_seen) og DISKONTERES, aldri avvises (consumption-contract § 6.3:
   trust tiers er rådgivende signaler, ikke access control; machine-confirmed klarerer
   terskelen). En refutasjon som ikke navngir en refuter er ingen refutasjon.
   example-evidence.json bærer frontmatteren ORDRETT, ikke bare som dict — formspørsmålet
   A1 avgjør er ikke avgjørbart fra {"sources": [{...}]} alene.

2. method-spec.md § 3 Steg 1: Amendment A1. Linjeorientert parsing RESTATED som normativ
   (ikke relaksert); `sources` pinnes som énlinjes flow-sekvens av én eller flere
   flow-mappinger, blokkliste MÅ IKKE emitteres, og en konsument som møter en rapporterer
   den som unreadable med form + antall. Ny rad i § 12. Begrunnelse målt: linjeorientert
   parsing har én verdi per nøkkel, så en blokkliste mister alle oppføringer unntatt én
   STILLE; K5-taket målt 01.09 = 2 av 5 nøkler på ÉN kilde.

   AKSE-NOTE, skrevet inn i spec-en: A1 binder EMISJON. Konsumentens egen plan sier
   ordrett «A block sequence and a block mapping are both conformant OKF; they are simply
   outside the accepted subset, and the decoder is not entitled to an opinion about whether
   the author erred» — sitert verbatim i spec-en. Et flatt forbud uten denne noten ville
   gjort konsumentens egen SPEC-kanoniske fikstur ikke-konform.

   ÅPENT FUNN, målt 02.09 mot llm-ingestion-guard 1.2.0 (kjent-positiv: title PASS,
   verified flow-mapping PASS): porten AVVISER BEGGE former — flow-sekvens med
   «disallowed YAML indicator '['», blokkliste med «a mapping is not expressible». A1
   pinner altså en form ingen shippet versjon av porten leser i dag. Ført i spec-en og
   CHANGELOG, ikke omgått: alternativet feiler av en verre grunn (mister data).

3. De to køplasserte postene fra 25.08 STÅR (§ 10.1 og § 11.1). Ordren spurte på
   SCOPE-aksen; avslaget ligger på RATIFIKASJONS-aksen — begge er ren spec-tekst, men
   løsningen er fortsatt operatørens å velge blant åpne opsjoner (D-A/D-F), og
   :29-referenten endrer en konformans-MUST to konsumenter måles mot. Premisser re-målt:
   git log --since=2026-08-25 tomt, ingen ordre i arkivet mellom 25.08 og 02.09,
   ingest-spec.md:29 ordrett uendret.

Verifisering kjørt (commons eier ingen kjørbar kode — nevner: 69 filer, 0 .py/.sh/CI):
konsumentens egne guards kjørt mot artefaktene her — _FRAMEWORK_NAMES (14 navn,
IGNORECASE) og persona-testens _FORBIDDEN over 6 filer: 0 treff, kjent-positiv PASS.
grep -c 'OKF bundle' i skillen: 0 (kjent-positiv 'knowledge bundle': 1). json.tool OK.
Steg 1-8-markørene og MUST-språket intakt etter amendmentet.

IKKE PUSHET (open/ krever operatørtoken). Ingen versjonsbump, ingen tag.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 17:02:53 +02:00
22048eacd0 docs(spec): «step 0 — explore» som informativ merknad; README lover ikke lenger et manglende eksempel
To operatørbeslutninger 24.08, ingen normativ tekst endret.

method-spec.md §3: en informativ merknad mellom §3-ingressen og Step 1 om at
mandatet kan UTLEDES før løkka starter. ALDRI et niende nummerert steg — et
nummer i samme rekke arver rekkens autoritet, og aktiviteten er ikke normativ.
Merknaden bruker derfor ingen RFC 2119-nøkkelord, får ingen `###`-overskrift,
navngir ingen konkret agent-toolkit (framework-nøytralitets-vakta), legger
ingen kontraktsfelt til og berører ingen søm i §11. Den sier eksplisitt at
ingenting nedstrøms slakkes: Step 1s navigasjonsregler, Step 4s validator-gate
og verdikt-lag-eksklusjonen står uendret uansett hvordan mandatet ble til.

Ordrett «step 0» finnes nå to steder, på to akser som hver navngir sin egen:
examples/nav-golden-escape/README.md:3 («catalog's requirement that step 0's
gate…») og method-spec.md:66 («this specification defines no step zero»).

README.md: bygg-energi-mikro-bulleten lovte fortsatt «a realistic full-scale
example comes later». veglys-fv-soer og tunnel-hauglia er begge publisert og
fyller rollen; setningen peker nå på dem i stedet for å love noe som mangler.

Ordre 20260824T155506Z-3454831118-from-.claude, punkt 1 og 2.
2026-08-24 17:58:31 +02:00
9801d35636 docs(spec): method-spec §3 Step 1 — Q3 navigation contract (hierarchy)
Ratified Q3 resolution: the navigator must traverse hierarchical bundles;
door A stays flat (ingest-spec unchanged). Replaces the path-separator ban
with resolve-and-boundary-check as one change (decision record §3 item 6):
link syntax normative (/ = bundle root, never fs-absolute; else relative;
nested allowed, escape not), depth-first first-seen traversal, dedup on
resolved path, one segment per level, missing index.md binds the root
alone, verdict-exclusion = type check per reached file (recursive, never a
graph property), flat read-context render. Robustness now covers malformed
targets (skipped never raised) — closes the null-byte class at spec level.
Two §11 seams. Framework-neutral; backward-compatible (golden unaffected).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VUCuNNvnCkayuUDy2WFgeU
2026-07-21 09:26:43 +02:00
7d2b46cee2 feat(spec): S2 — normative framework-neutral method spec as the fourth shared artifact
Author shared/method-spec.md: the 8-step loop (normative, RFC-2119), the
verdict JSON contract incl. the id-minting algorithm and the chosen conflict
semantics, the inbox/outbox folder contract, the fail-closed promotion-gate
semantics, the IR projection + golden suite as the only ground truth (incl.
the reproducible Monte Carlo procedure), and the budget/stop, provenance and
startup-contract requirements — every normative claim cross-checked against
the load-bearing tests/code. The sibling implementation builds from this spec
alone.

Load-bearing trio (tests/test_method_spec_loadbearing.py, persona-trio
style): required structure, a name-shaped framework-neutrality guard over the
spec + the persona skill tree, and a cross-check-completeness test driven
from the REAL artifacts and the REAL verdict serializer (red on code drift).
All three detach points proven RED (missing file / framework name / dropped
field). shared/README.md: the "(planned)" line replaced with the real entry.

Suite 152 -> 155 passed / 4 skipped; ruff check+format clean; mypy src clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AaQCFnfsh3tfq1VfzdJpoi
2026-07-03 00:50:42 +02:00