fix(okr): siterings-aksen naadde produsenten, ikke checkeren
1.8.2 unquotet parseExistingIndex (produsent-siden). okf-check sin rootMarkers/pick returnerte fortsatt raa streng, saa samme fil ga to lesninger av samme markoer: paa disk: okf_version: "0.2" (upstreams eget eksempel, SPEC.md:773) produsenten: 0.2 <- unquotet checkeren: "0.2" <- raa Catalog maalte divergensen direkte mot sin egen checker gjennom evaluateBundle: begge implementasjonene AKSEPTERER -- avviket ligger paa verdien, ikke paa dommen. Ingen gate rammes i dag fordi paritetskorpuset ikke har en sitert fikstur, hvilket ogsaa betyr at paritetsgatens groenne farge ikke dekket denne aksen: den var "ikke kjoert", ikke "som forventet". Fiks: unquote() eksporteres fra okf-index.mjs og importeres av okf-check.mjs -- EN regel delt, ikke to kopier som kan drifte fra hverandre. Script-til-script-import foelger etablert moenster (innboks-ingest.mjs:51). Tester: 192 -> 197. Fire kjoert roede foer fiksen. Den femte (ubalansert-vakten) var groenn foer fiksen -- raa streng bevarer "0.2 naturlig -- og er derfor mutasjons-verifisert: en graadig unquote roedner baade produsent- og checker-vakten. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XKoS7Eb8YmAfeCf1EKZXt1
This commit is contained in:
parent
2149547c0c
commit
65c9412cca
4 changed files with 79 additions and 2 deletions
|
|
@ -19,6 +19,7 @@ import { fileURLToPath } from 'node:url';
|
|||
import { parseFrontmatter } from '../lib/frontmatter.mjs';
|
||||
import { TYPE_VOCAB } from '../lib/okf-vocab.mjs';
|
||||
import { resolveBundleLink } from '../lib/okf-links.mjs';
|
||||
import { unquote } from './okf-index.mjs';
|
||||
|
||||
const RECOMMENDED = ['resource', 'title', 'description', 'timestamp'];
|
||||
|
||||
|
|
@ -61,13 +62,20 @@ function walkConcepts(root) {
|
|||
// `okf_version` = upstream OKF-versjon (spec §3), `okf_layout` = emitterens egen
|
||||
// layout-revisjon (spec §12, valgfri). Fravaerende markoer -> null. Ren ekko:
|
||||
// verdiene valideres ikke (spec §3 er ikke haandhevende paa form ennaa).
|
||||
//
|
||||
// Verdien unquotes med SAMME konservative regel som produsent-siden (okf-index
|
||||
// unquote(), delt import -- ikke en kopi). Uten den ga samme fil to lesninger:
|
||||
// produsenten tolket `okf_version: "0.2"` som 0.2, checkeren ekkoet «"0.2"».
|
||||
// Anfoerselstegn er YAML-strengsyntaks, ikke del av verdien -- og siden
|
||||
// upstreams eneste kanoniske eksempel med verdi (SPEC.md:773) er sitert, er
|
||||
// dette den formen en spec-tro bundle faktisk har paa disk.
|
||||
function rootMarkers(root) {
|
||||
const idx = join(root, 'index.md');
|
||||
if (!existsSync(idx)) return { okfVersion: null, okfLayout: null };
|
||||
const raw = readFileSync(idx, 'utf8');
|
||||
const pick = (key) => {
|
||||
const m = raw.match(new RegExp(`^${key}:\\s*(.+)$`, 'm'));
|
||||
return m ? m[1].trim() : null;
|
||||
return m ? unquote(m[1].trim()) : null;
|
||||
};
|
||||
return { okfVersion: pick('okf_version'), okfLayout: pick('okf_layout') };
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue