16 KiB
Brief — Google OKF for brukerens «second brain» (LLM-wiki), IKKE for skill-refs
Notert 2026-06-26. Fremtidig initiativ — IKKE implementer før operatør sier fra. Bygger på research av GoogleCloudPlatform/knowledge-catalog (spec + samples + toolbox). State-of-play i STATE.md.
Delt spec er nå kilden (2026-06-29, ratifisert)
Konvensjonen er ikke lenger definert lokalt — den bor i catalog/docs/okf-second-brain/spec.md (v0.1, eid av ingen enkelt plugin; linkedin-studios brain/ er referansedesign, okrs okf-check.mjs referanse-checker; rollout/koordinering i samme mappes log.md). Denne brief-en er nå plugin-spesifikk plan, ikke konvensjonsdefinisjon — den refererer spec-en. Bekreftet for ms-ai-architect: minimal kontrakt (spec §3: type per konseptfil + index.md per nivå + okf_version i rot-index.md) er gulvet, ikke taket — vår «fulle OKF-pakke» rir over som extension keys (spec §5), ikke nivellert ned til bar OKF.
Premiss-korreksjoner (spec §9, ground-truth mot live repo — overstyrer økosystem-digesten under):
mdcode/kcmder IKKE et OKF-verktøy — det er et Dataplex git-sync-verktøy med annet frontmatter-schema. Droppet fra adopsjonsplanen.- Ingen gjenbrukbar OKF-ingest-kode finnes —
reference_agenter BigQuery+Gemini/GCP-bundet. Adopter prompt-mønstrene, ikke koden. Classify/convert = bygg-selv. - Kanonisk anbefalt feltnavn er
resource(ikkesource).
Implementasjonskilde: delt bibliotek, ikke lokal bygging (2026-07-19, verifisert)
Tooling-en under «Hva som må bygges» bygges ikke lokalt her. Den kommer fra det delte biblioteket ~/repos/llm-ingestion-okf (offentlig Forgejo open/), som syv repo skal konsumere — så standard-forbedringer arver alle, i stedet for at hver plugin drifter sin egen kopi.
Tre-delt eierskap (hold dem fra hverandre):
- Konvensjon →
catalog/docs/okf-second-brain/spec.md(uendret, se over). - Implementasjon →
llm-ingestion-okffase 4 =node/-halvdelen: zero-dep ESM, importerbar + CLI-invokerbar, vendret per plugin (ikke npm). Python- og Node-halvdelen deler kontrakt + fixtures, aldri kode. - Sikkerhet → alltid
llm-ingestion-guard. Fase 4 leverer kun hook-punktet ved persist (guard-as-contract); scan-/sanitize-logikk hører ALDRI hjemme her. Vårdocs/ingestion-security-brief-2026-07.md-ambisjon om Node Layer-B-scan er guard-territorium.
Vår rolle er greenfield-konsument, ikke migrering. llm-ingestion-okf/docs/plan/phase-4-node-half.md koordineringspunkt 5: pluginens designet-men-ubygde behov (writer, indeksgenerator, checker, retrieval-støtte) er akseptanse-skissen for pakkens API-flate. Vi har null OKF-kode i dag — det er en fordel her, ikke en gjeld.
Tidshorisont og gate (per 2026-07-19): node/ finnes ikke ennå; biblioteket er ren Python (v0.3.0, fase 1 levert). Fase 4 ← fase 3 ← fase 2, og fase 2 er blokkert på avklaring B2 (guard-distribusjonskanal for CI — operatørbeslutning, phase-2-doors-b-c.md:96). Fase 4 starter dessuten med sign-off-kjede, ikke kode, der vi er punkt 5 av 5: «okr/ms-ai-architect adopterer i egne repo (egne sesjoner, eksplisitt instruks per repo)». Konsekvens: ikke start S-OKF-implementasjon før B2 er avklart og fase 4 har levert node/.
Scope-grense + ambisjon (ufravikelig, operatør-bekreftet 2026-06-26)
- OKF gjelder KUN brukerens egen kontekst/data — hans person- og organisasjonsspesifikke «second brain» / LLM-wiki (i dag onboarding-output i
~/.claude/ms-ai-architect/org/*.md). - For dette sporet kjøres FULL Google OKF-pakke (ikke bare lån av mønstre): frontmatter-kontrakt +
index.md-progressiv-disclosure + retrieval + vedlikeholds-/enrichment-mekanisme, modellert påsamples/+toolbox/. Og adopsjonen holdes oppdatert etter hvert som OKF-standarden utvikler seg (v0.1 → senere versjoner; fangokf_version-bump). Operatør-direktiv 2026-06-26. - OKF gjelder IKKE de 389 skill-reference-filene. De forblir Claude Code skill-references (native mekanisme, Anthropic-anbefalt flat/progressiv-disclosure-struktur). Begrunnelse: se
docs/ref-kb-direction-note-2026-06.md+ rekonsidererings-konklusjon i memoryokf-scope-second-brain-only.
Hvorfor OKF passer second brain (men ikke skill-refs)
Avgjørende skille er ikke «er det en LLM-wiki» (begge er det) — men «finnes det allerede en native, anbefalt mekanisme?»:
- Skill-refs: JA — Claude Code skills + references + progressiv disclosure, allerede Anthropic-best-practice (flat, ett nivå dypt, store filer lastet on-demand, SKILL.md-hub + domene-mapper + grep). OKF ville erstattet et fungerende native system med et ekvivalent fremmed (OKFs retrieval-verdi over skills ≈ null; Grep/Glob/Read dekker allerede OKFs list/search/read).
- Second brain: NEI — bor i dag i ad-hoc
org/*.mduten retrieval-mekanisme under chat. OKF fyller et reelt tomrom: struktur + retrieval + vedlikeholds-tooling, vendor-nøytralt, portabelt, bruker-eid.
Lastemodell-skifte (operatør-presisering 2026-06-26 — reverserer tidligere antakelse)
- Før (antatt): all kontekst injiseres når hver
/architect:*-kommando kjøres. - Nå (mål): kontekst hentes smart/selektivt per kommando og per interaksjon — fordi de fleste ganger chatter brukeren med pluginen lastet, uten å kjøre kommandoer. Konteksten må være tilgjengelig i fri chat, hentet on-demand, ikke forhåndsinjisert.
- Implikasjon: «second brain» trenger en retrieval-skill (list → search → read) som er aktiv uavhengig av kommandoer, + en vedlikeholds-mekanisme som holder wikien oppdatert etter hvert som brukeren tilfører kontekst OG etter hvert som OKF-standarden utvikler seg.
OKF v0.1 — kjernekontrakt (verifisert mot spec)
- Bundle = katalogtre av markdown-filer, ett konsept per fil. Påkrevd frontmatter-felt:
type. Anbefalt:title,description,resource(kilde-URI),tags,timestamp. Konsumenter MÅ bevare ukjente felt. - Reserverte filnavn:
index.md(katalog-enumerasjon, ingen frontmatter, progressiv disclosure),log.md(endringslogg). - Kryss-lenking: bundle-relativ (
/...) eller relativ markdown; relasjonstype utledes av prosa. Konsumenter må tolerere brutte lenker. - v0.1 (12. juni 2026), «starting point, not finished standard» → hold OKF-adopsjonen oppdatert ettersom standarden bumpes (
okf_versioni rot-index.md). - Kilde: https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md
Økosystem-digest (les disse FØRST ved implementasjon)
Repo: GoogleCloudPlatform/knowledge-catalog. Mye er GCP/Dataplex/Gemini-bundet (ikke direkte gjenbrukbart); de rene mønstrene vi adopterer er markert.
Konsum / smart retrieval (kjernen — ADOPTER MØNSTERET):
samples/enrichment/sample/config/skills/kb-search/SKILL.md— kanonisk skill-basert henteguide. Eksponerer trioenlist_contents/read_file/search_content(= progressiv disclosure: finn → åpne kun relevant). Mest verdifulle fil å lese først.samples/enrichment/sample/config/mcp.json+samples/enrichment/src/tools/fileskb/{README.md,main.py}— minimal stdio-MCP-server som eksponerer list/search/read over en markdown-katalog. NB: i Claude Code dekker Grep/Glob/Read dette allerede — egen MCP-server er trolig unødvendig; SKILL-instruksen («søk wikien først, åpne kun relevant») er det bærende.samples/discovery/*— Dataplex-bundet søke-agent (Google ADK + CatalogServiceClient). IKKE gjenbrukbart; kun mønster-referanse.
Struktur / frontmatter-eksempler:
okf/bundles/ga4/index.md+okf/bundles/ga4/references/metrics/avg_pageviews.md— ekteindex.md-hierarki + leaf-konsept med frontmatter (type/resource/title/description/tags/timestamp) +# Citations-seksjon. Kopier som mal.
Produksjon / vedlikehold (ADOPTER MØNSTERET, ikke koden):
okf/src/reference_agent/prompts/web_ingestion_instruction.md— kilde-drevet oppdatering:list_concepts → fetch → enrich/mint/skipmed strenge frontmatter-/heading-bevaringsregler. Moden mal for «hold wikien oppdatert fra kilder».okf/src/reference_agent/prompts/reference_instruction.md— deterministisk konsept-syntese (frontmatter + fast body-rekkefølge).okf/src/reference_agent/cli.py—enrich/visualize-kommandoer (Gemini/BQ-bundet impl).— DØDT SPOR (spec §9.1):toolbox/mdcode/...mdcode/kcmder IKKE et OKF-verktøy, men et Dataplex git-sync-verktøy med et annet frontmatter-schema (id/resource.name/createTime/links). Ikke planlegg OKF-emit/sync via det.
Hva som må bygges (fremtidige faser — ikke nå)
Leses sammen med «Implementasjonskilde» over: punkt 1–3 beskriver behovet, ikke et byggeoppdrag her. Tooling-en leveres av
llm-ingestion-okffase 4 (writer/inbox-primitiver,okf index,okf check, retrieval-støtte). Vår jobb ved adopsjon er konfigurasjon + vendring + å prøve API-flaten mot behovene under — ikke implementasjon.
- Frontmatter-/struktur-konvensjon for second brain: bygg mot delt spec §3 (
typepåkrevd +index.mdper nivå +okf_versioni rot). Anbefalte felt (spec §4):resource(kanonisk kilde-URI — IKKEsource),title,description,tags,timestamp. Migrer dagensorg/*.md(de mangler baretype:— nær OKF allerede). - Retrieval-skill («second-brain-search» e.l.): list → search → read over
~/.claude/ms-ai-architect/org/, aktiv i fri chat (ikke bare kommandoer). Avgjør: ren SKILL+Grep/Glob/Read vs. dedikert MCP-server (build-both-and-measure-kandidat — se under). - Vedlikeholds-mekanisme: hvordan wikien oppdateres når brukeren tilfører kontekst (onboarding-agent skriver OKF-konform), + en oppdaterings-rutine når OKF-standarden bumpes.
Åpne valg (operatør / måling)
- Retrieval-mekanisme: SKILL + native Grep/Glob/Read vs. dedikert fileskb-MCP-server. Ekte tvil → kandidat for «implementer begge, mål hvilken gir best kontekst-treff for brukeren» (operatørs faktabasert-prinsipp).
- Hvor mye av OKF formaliseres: full v0.1-konformitet vs. «OKF-kompatibel form» (frontmatter + index.md uten resten). Lén mot det letteste som gir smart retrieval.
- Oppdaterings-kadens mot standarden: hvordan fange OKF-versjonsbump (v0.1 → …) uten manuell polling.
Suksesskriterium (per operatør 2026-06-26)
Det viktigste er ikke teknologien, men at second brain blir så bra som mulig for brukeren og at oppdateringsmekanismene fungerer veldig bra. Mål mot brukerverdi (henter pluginen riktig personlig/org-kontekst i chat?) + vedlikeholds-pålitelighet — ikke mot formell OKF-konformitet i seg selv.
Fase-4-kartlegging: hva vi faktisk trenger fra biblioteket (2026-07-20, verifisert)
Svar på koordineringspunkt 5 (vi = akseptanse-skisse for Node-API-flaten). Markørlinje satt i STATE.md: planned.
Ground truth denne kartleggingen hviler på (verifisert, ikke antatt):
~/repos/llm-ingestion-okf: v0.3.1,node/finnes ikke (kunsrc/= Python).docs/plan/phase-4-node-half.md:12,49-62planleggerokf check|index|inbox|convert— altså writer/index/checker uten connector-krav.~/.claude/ms-ai-architect/org/finnes ikke på denne maskinen — second brain er designet (6 filslots konsumert avresearch-agent,adr-writer-agent,architecture-review-agentm.fl.) men aldri materialisert. Vi er greenfield i bokstavelig forstand.scripts/kb-update/er ikke en OKF-flate (se under).
kb-update-pipelinen: generisk mekanikk vs. MS Learn-domenelogikk
Deteksjonslaget er 100 % deterministisk node (null modellkall, strukturelt garantert i run-detection.mjs:6-9); apply-laget er LLM/MCP og alltid manuelt in-session.
| Generisk ingestion-mekanikk | MS Learn-domenelogikk |
|---|---|
lib/atomic-write.mjs (tmp+rename), lib/backup.mjs (scoped restore + sentinel) |
lib/sitemap-stream.mjs (hardkodet learn.microsoft.com/_sitemaps/), lib/url-normalize.mjs (locale-stripping) |
lib/registry-io.mjs, lib/decisions-io.mjs (manifest + ledger/idempotens) |
data/domain-taxonomy.json (sitemap-prefikser → category → skill-routing) |
lib/verified-staleness.mjs, lib/full-pass-worklist.mjs (kilde-timestamp vs. verifisert-timestamp) |
lib/kb-headers.mjs + lib/transform.mjs (bold-label-header-kontrakten), lib/verify-out.mjs (GA/preview/pris-regexer), lib/learn-api.mjs |
| Invarianten «pure lib skriver aldri; kun gated caller skriver» | transform-prompt.md + kb-eval/judge-claim-prompt-v3.1.md (claim/judge-format) |
Den generiske kolonnen overlapper reelt med det fase 4 skal levere (atomisk write, manifest, ledger, ferskhet). Men den flytter vi ikke — se «Aldri hit» under.
Vår adopsjonsflate = second brain, og den trenger ikke dør A
Second brain-filene fødes av et onboarding-intervju (LLM → Write), ikke av en kildekonnektor. Det finnes ingen manifest, ingen CSV, ingen SQL, ingen URL å hente. Dør A (manifest → connector → materialisering) er derfor irrelevant for oss — vi trenger den bakre halvdelen av dør A, frikoblet fra connector-halvdelen.
Konkret krav til Node-API-flaten (punkt (b) i rapporteringen):
- Writer uten connector.
writeConcept({path, frontmatter, body})må være kallbar direkte med LLM-forfattet innhold — ikke bak et manifest/connector-krav. Deterministisk frontmatter-emit (typepåkrevd,resource/title/description/tags/timestamp), ukjente felt bevart, atomisk skriv, idempotent re-kjøring. okf indexsom bibliotekfunksjon, ikke bare CLI. Vi må regenerereindex.mdper nivå fra en in-process hook (onboarding-agent skriver én fil → indeks oppdateres i samme operasjon), uten å shelle ut.okf checkmed maskinlesbar exit + funn-struktur. Vi har allerede create-guard-mønsteret (validate-kb-file.mjs, exit≠0 = stopp) og vil speile det for OKF-flaten.- Guard-hook ved persist, ikke i biblioteket.
free-context.mder den ene slotten der brukeren limer inn vilkårlig eksternt innhold — der mållm-ingestion-guardkalles på kallstedet. Vi leser IKKE «security is delegated» som «trygt by default» (jf. v0.3.1-presiseringen). - Fritekst-kravet (F1) gjelder oss, men via dør B — ikke dør A. Om
free-context.md-inntak skal formaliseres, er innboks-mønsteret (split → frontmatter → write) riktig form, ikke en connector. - Vendring, ikke npm — zero-dep ESM som kan sjekkes inn under
scripts/, konsistent med at pluginen distribueres offentlig og må kjøre uten install-steg.
Aldri hit (punkt (c))
- De 389 skill-reference-filene. Stående operatør-direktiv (§ «Scope-grense»); native Claude Code-mekanisme dekker allerede OKFs list/search/read.
- Hele MS Learn KB-refresh-pipelinen. Header-kontrakt, judge/claim-format, GA/preview-semantikk og Layer A/B-plassering er domenelogikk med egen testsuite — en delt ingestion-standard ville verken forstå eller forbedre den.
- All sikkerhetslogikk. Eies av
llm-ingestion-guard(vårt repo erguard: active, Layer A+B live). Ambisjonen idocs/ingestion-security-brief-2026-07.mdom Node Layer-B-scan er guard-territorium, ikke OKF-territorium.
Gate før implementasjon (uendret)
Fase 4 ← fase 3 ← fase 2, og fase 2 er blokkert på avklaring B2 (guard-distribusjonskanal for CI, operatørbeslutning). Ingen S-OKF-kode skrives her før node/ er levert.
Referanser
- Delt konvensjon (KILDEN):
catalog/docs/okf-second-brain/spec.md(v0.1) +log.md(koordinering/rollout) — les FØRST. - OKF upstream-spec: https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md
- Samples: https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/samples
- Toolbox: https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/toolbox
- Relatert (skill-ref-sporet, separat):
docs/ref-kb-direction-note-2026-06.md,docs/ref-kb-audit-2026-06.md