1
0
Fork 0
Commit graph

8 commits

Author SHA1 Message Date
ddaae5d637 chore(release): publiseringsklar for open/ — README for standalone rot + MIT + policy-filer
Commons konsumeres som `shared/`-subtree av to repo som allerede ligger i
`open/`. Innholdet var dermed offentlig fra før, men PEKEREN var det ikke:
`shared/README.md` i open/portfolio-optimiser lenker til `ktg/`-namespacet og
sier «All edits land in commons first (clone it, commit, push there)» — en URL
en fremmed får 404 på. Dette gjør repoet publiserbart under open/.

README: hodet var skrevet som om fila fortsatt lå i en konsuments `shared/`.
H1 var `# shared/ — framework-neutral core`, og innledningen sa «this
repository — the method built on MAF» — som beskriver et ANNET repo når fila
leses fra commons' rot. Siste linje lenket til
docs/plan/2026-06-26-maalbilde-agentic-loop.md, som ikke finnes her (den bor i
portfolio-optimiser). Alle tre rettet; de to konsumentene er nå utgående
lenker, ikke «dette repoet».

Lagt til for `shared-asset`-klassen (repo-standard): LICENSE (MIT, byte-likt
med soesknene) og `## Non-goals`. Klassen krever ikke `## Install` — repoet
vendorers, det installeres ikke.

CONTRIBUTING/SECURITY/CODE_OF_CONDUCT kreves av INGEN klasse; de er med for
konsistens med de to soesknene. CONTRIBUTING er SKREVET OM, ikke kopiert:
soesknenes versjon ber om Pull Requests, men org-ops slo PR-fanen av paa alle
19 repo fordi CONVENTIONS.md publiserer at PR-er ikke aksepteres. Aa kopiere
den ville importert en motsigelse.

SECURITY er omskrevet for et repo uten kjoerbar kode: angrepsflaten er spec-
tekst som binder konsumentene, ikke et avhengighetstre.

Gate: repo-standard v0.2.2, klasse shared-asset — 0 ERROR, 8 passerte. De 3
gjenstaaende WARN er falske positive mot nav-golden-fixturene (bundle-relative
lenker + tilsiktede escape-nyttelaster som IKKE skal resolve). Fixturene er
uroert: de konsumeres som ekte gate av portfolio-optimiser (0d50ab8).

Verifisert foer commit: ingen secrets i sporet innhold eller i historikkens 37
commits; ingen e-post utover org-kontakten; STATE.md og *.local.md fortsatt
usporet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013XuKPjWwJZNUponVrhoyY1
2026-08-04 22:32:17 +02:00
8a7d4305aa docs(plan): operatøren avgjorde V1 (O2) og B1 (O1) — B1 utført, V1 gated
To operatør-spørsmål som har ligget ferdig utredet ble avgjort 2026-07-31.
Ulike utførelsesbaner, derfor ulik status i samme commit.

B1 / D4 — VALGT O1 (form C) OG UTFØRT:
- README.md «Contents»-lista har fått én oppføring som lenker begge
  nav-golden-casene, i samme form som examples/bygg-energi-mikro/ på :19.
- Verifisert at klassen IKKE har fått bindingskraft: grep -c 'nav-golden'
  er fortsatt 0 i method-spec.md, ingest-spec.md, CONCEPT.md og
  skills/expert-reviewer/SKILL.md. Bare README (katalog, ikke kontrakt)
  gikk fra 0. Ingen implementasjon har fått en ny plikt.
- Oppføringen sier eksplisitt at den er informativ og at
  sammenligningsregelen ikke er pinnet — for å hindre at en lenke fra
  rot-README leses som fasit i method-spec §7s forstand.
- Bindingsproblemet i O0 står med vilje uløst; O1 gjør det synlig, ikke
  borte. Serialiseringsspørsmålet er uavhengig og fortsatt åpent.

V1 — VALGT O2, IKKE UTFØRT:
- generated: { by: "process:<fast id>", at: <ingested_at> }. Aktørstrengen
  er specens, ikke produsentens, så fasit-bytene forblir produsent-nøytrale.
- :29 (byte-for-byte) står ordrett uendret og kom IKKE i køen. Det var O1
  som ikke kunne vedtas uten å ta stilling til den; O2 unngår spørsmålet.
- Ingen frossen tekst er rørt. ingest-spec.md står på bfa5a9b/9801d35.
  Utførelsen er gated på at llm-ingestion-okf pinnes til en commit —
  forrige kryssgrense-kontroll traff main, en bevegelig gren (ab0ea8f).
- Køen når gaten åpner: :34, :70, :82, :214, :275 (5 av 7). :152 og :309
  navngir bare nøkkelen og overlever.
- Varslingsplikten mot llm-ingestion-okf er ikke lenger betinget: O2 ER
  vedtatt, så den forfaller ved deres neste fikstur-frys, ikke ved vår
  utførelse.
- Åpent, og følger ikke av vedtaket: hvilken <fast id> strengen bærer.

Begge underlagene står ordrett uendret under de nye status-blokkene —
grunnlaget vedtakene ble tatt på er ikke skrevet om i etterkant.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dEaxg1rhRsAchm67jLUvU
2026-07-31 17:16:41 +02:00
7aa53fcf68 docs(spec): ingest-spec.md — normative ingest layer contract (I1)
Framework-neutral specification of the deterministic ingest step that
materializes real data sources as OKF bundles in front of the loop:
polymorphic manifest schema (file/CSV, SQL, HTTP as optional extension
point), credential-reference rule, verdict-layer reservation + layer
separation, ingest provenance frontmatter with explicit timestamp,
index-generation requirement, and the golden-extraction format.
README contents list updated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AaQCFnfsh3tfq1VfzdJpoi
2026-07-03 14:03:59 +02:00
db86e15914 docs: document subtree consumption — R1 realized, sync is pull-only
The shared core now lives in this repository (source of truth). Each
implementation repo consumes it as a git subtree at shared/ and syncs
with 'git subtree pull --squash'. Never 'git subtree push' from a
consumer: its re-split can leak the consumer's entire history into
this repo (observed and force-push-cleaned 2026-07-03).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AaQCFnfsh3tfq1VfzdJpoi
2026-07-03 05:42:53 +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
976a2e88d2 feat(persona): build the shared expert-reviewer persona as a framework-neutral Agent Skill
The expert reviewer was only a hardcoded verdict_input dict inside the offline
simulation. Build it as the real, shared artifact target picture §8 calls for:
shared/skills/expert-reviewer/ — a SKILL.md persona prompt (energy-advisor / M&V
role + the realization-gap methodology the validator cannot compute) plus a
canonical references/example-verdict.json. shared/ stays pure data; the MAF side
reads it via portfolio_optimiser.persona.load_persona_example (call-time,
fail-fast) and the Claude-SDK sibling reads the same JSON with its own loader.

This de-stubs the simulation: its persona judgement (decision + rationale + traced
marker) is now sourced from the artifact at call time, not an inline literal — so
the shared persona is genuinely consumed and cannot rot silently. decision is
binary (approved/rejected, the FeedbackContract the run path accepts);
approved_with_adjustment is rejected there and lives only in the bundle seed
frontmatter + the promotion gate, so the realization correction is carried in the
rationale prose.

Load-bearing trio (tests/test_persona_skill_loadbearing.py), each proven RED on its
own detach: structure + framework-neutrality, the example is valid pipeline input
(incl. FeedbackContract, on a throwaway copy), and the simulation's marker follows
the artifact file. Suite 149->152.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MHR8iKxJRxDiDfNw8HZmWE
2026-06-30 13:59:42 +02:00
7fb1b14378 docs(shared): bygg-energi mikro-eksempel — OKF-bundle + golden + load-bearing test
Persistent dev-fixture for energieffektivisering (energiledelse/M&V), valgt for
sin lærings-overflate: gapet mellom modellert besparelse (validatoren regner) og
faktisk realisert besparelse i drift (eksperten kjenner) — det ExpeL skal lære.

Ett kontorbygg, ett LED-retrofit-tiltak. OKF-bundle (index/project/hypothesis/
methodology/reference/verdict) bærer kontekst-laget; verdict-led-fro.md koder
realiseringsgraden (RR ≈ 0,82, forankret i National Grid SBS 2010) som ExpeL-frø.

Energi mappet inn i den EKSISTERENDE kost-IR-en uendret (affected = byggets totale
energikostnad, claimed = modellert besparelse ~10 % < 30 %-cap), så validatoren
kjører som-den-er — src/ urørt. golden.json fryser de seeded percentilene; testen
beviser at fixturen er konsumerbar (validerer, ikke Rejection), ikke bare til stede.

Domenetall verifisert mot primærkilder (EVO/IPMVP, DOE/NREL UMP, CPUC, fire
evalueringsstudier); norsk energipris mot SSB Q1 2026. README + shared/README
oppdatert (eksempel finnes, ikke lenger "planned"). Suite 121/4, ruff+mypy rene.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MHR8iKxJRxDiDfNw8HZmWE
2026-06-29 09:42:13 +02:00
ebd0129007 docs(shared): framework-neutral concept note + shared-core contract
First artifact in the framework-neutral shared core (R1 effectuated). CONCEPT.md
is a plain-language business description of the method for a non-specialist
audience; README.md documents the shared-core contract (consumed unchanged by
both the MAF impl and the future Claude Agents SDK sibling; extract to commons
repo via git subtree split when sibling work starts). English per the repo's
documentation-language convention + open-publish intent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019any9zfGNNwWJPX5Zq2QRz
2026-06-26 21:26:45 +02:00