<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>oscal: bundle log</title>
  <subtitle>What changed in the knowledge bundle, a day to an entry, newest first.</subtitle>
  <link rel="self" type="application/atom+xml" href="https://lmodel.github.io/oscal/knowledge/log.xml"/>
  <link rel="alternate" type="text/html" href="https://lmodel.github.io/oscal/knowledge/log/"/>
  <link rel="alternate" type="text/markdown" href="https://lmodel.github.io/oscal/knowledge/log.md"/>
  <id>https://w3id.org/lmodel/oscal/knowledge/log</id>
  <updated>2026-10-29T21:17:24Z</updated>
  <author><name>lmodel</name></author>
  <rights>CC BY 4.0</rights>
  <link rel="license" href="https://creativecommons.org/licenses/by/4.0/"/>
  <entry>
    <title>2026-10-29 · Added: 22 · Changed: 21 · Source map: 3 · Resolved: 2 · Question: 2</title>
    <link rel="alternate" type="text/html" href="https://lmodel.github.io/oscal/knowledge/log/#2026-10-29"/>
    <id>https://w3id.org/lmodel/oscal/knowledge/log#2026-10-29</id>
    <published>2026-10-29T01:16:11Z</published>
    <updated>2026-10-29T21:17:24Z</updated>
    <category term="Changed"/>
    <category term="Resolved"/>
    <category term="Source map"/>
    <category term="Question"/>
    <category term="Added"/>
    <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the generators' settings moved from &lt;code&gt;config.yaml&lt;/code&gt; to &lt;code&gt;.linkml/generators.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: NIST OSCAL places the mapping collection in the control layer, as the mapping module's &lt;code&gt;see_also&lt;/code&gt; now does.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: OSCAL Mapping Collection names NIST's control mapping page, which the module's &lt;code&gt;see_also&lt;/code&gt; now links in place of a page that returns 404.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: Element names says that OSCAL documents have their keys rewritten before they validate, as &lt;code&gt;.linkmllint.yaml&lt;/code&gt; now says.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resolved&lt;/strong&gt;: &lt;code&gt;.linkmllint.yaml&lt;/code&gt; no longer says that OSCAL JSON validates without translation; it names the key rewrite the tests do.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: Knowledge librarian says when the skills pin moves past v0.57.0, from CHANGELOG.md.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resolved&lt;/strong&gt;: CHANGELOG.md now says that the pin stays at v0.57.0 until the first weekly sync.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source map&lt;/strong&gt;: dropped &lt;code&gt;scripts/debug_each_generator.py&lt;/code&gt; and &lt;code&gt;scripts/detect_linkml_class.py&lt;/code&gt;, which the repository removed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: oscal documentation site says that &lt;code&gt;just testdoc&lt;/code&gt; serves the site, from the justfile.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source map&lt;/strong&gt;: the map records the commit of the tree it was read at.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the footnotes that name a recipe, a function or a key with a leading underscore now set it in a code span, so Markdown no longer reads the underscores as emphasis.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source map&lt;/strong&gt;: the map now names every repository path the bundle derives from, by its path from the root, with the concepts each yields and how to re-check it, and the paths left out with the reason for each; it drops the August account of the first run and the gaps it noted, which the new concepts now cover.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Question&lt;/strong&gt;: Element names and the shared namespace asks whether &lt;code&gt;.linkmllint.yaml&lt;/code&gt;'s claim that OSCAL JSON validates without translation still holds, since the tests rewrite hyphenated keys first.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Question&lt;/strong&gt;: Knowledge Librarian asks whether its skills pin at v0.57.0 is meant to trail the v0.58.0 sidecar copies until the first sync.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: OSCAL Schema (top-level) now renders OSCAL 1.2.3, pinned to tag v1.2.3 and commit e061961, with every module under &lt;code&gt;https://w3id.org/lmodel/oscal/&lt;/code&gt;, and describes &lt;code&gt;.lokf/oscal.yaml&lt;/code&gt;, the adapt copy that is the bundle's domain schema; it cites the schema by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the catalog module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_catalog&lt;/code&gt;, names the shared metadata, back matter and types the module defines, and cites it by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the profile module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_profile&lt;/code&gt;, names the Profile class's required slots and its import of the catalog module, and cites the module by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the system security plan module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_ssp&lt;/code&gt;, names the required slots and the system characteristics' new props and links, and cites the module by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the assessment plan module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_assessment_plan&lt;/code&gt;, names its required slots and the assessment-common and implementation-common classes that four other modules import from it, and cites it by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the assessment results module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_assessment_results&lt;/code&gt;, names its required slots and its imports, and cites it by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the component definition module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_component&lt;/code&gt;, names its required slots, its imports and the fixtures that exercise it, and cites it by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the mapping collection module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_mapping&lt;/code&gt;, names its required slots and its import of the catalog module, and cites it by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: the POA&amp;amp;M module concept now renders OSCAL 1.2.3 under &lt;code&gt;https://w3id.org/lmodel/oscal/oscal_poam&lt;/code&gt;, names its required slots and its imports, and cites it by its repository path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: CNCF AI Ecosystem OSCAL Benchmarks now cites the fixtures by their repository paths and NOTICE for their licence, says that the schema renders OSCAL 1.2.3 while the fixtures declare 1.2.1, and names the recipe and tests that check them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: NIST 800-53 Rev 5 to AWS Service Mapping (Luigi Carpio) now cites the fixture by its repository path, takes the 31 controls and the five CJIS deltas from its README, which corrects an earlier count of 29, and lists what the test-luigi-carpio recipe checks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: NIST OSCAL now names OSCAL 1.2.3, the v1.2.3 tag and commit e061961 that the schema renders, and takes its description of OSCAL and its layers from the repository's own files; it drops the reversed &lt;code&gt;about&lt;/code&gt; link to the schema, which &lt;code&gt;derivedFrom&lt;/code&gt; on the schema already states.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: LinkML now says what this repository takes from LinkML, from its own files: the template it was built from, the locked versions, the generators the recipes run and the known generator limits the tests record; it drops the reversed &lt;code&gt;about&lt;/code&gt; link to the schema.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed&lt;/strong&gt;: lmodel now takes the organization from &lt;code&gt;.copier-answers.yml&lt;/code&gt; and the repository's addresses, rather than from &lt;code&gt;pyproject.toml&lt;/code&gt;'s authors, which name a person, and names the neighbouring lmodel repositories the tests read.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Build and test (main.yaml), from &lt;code&gt;.github/workflows/main.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Lint &amp;amp; docs (lint-and-docs.yaml), from &lt;code&gt;.github/workflows/lint-and-docs.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Semantic release (semantic-release.yml), from &lt;code&gt;.github/workflows/semantic-release.yml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Upstream watch (upstream-watch.yaml), from &lt;code&gt;.github/workflows/upstream-watch.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Knowledge website (knowledge-website.yaml), from &lt;code&gt;.github/workflows/knowledge-website.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Knowledge Registrar (knowledge-registrar.yaml), from &lt;code&gt;.github/workflows/knowledge-registrar.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Knowledge Librarian (knowledge-librarian.yaml), from &lt;code&gt;.github/workflows/knowledge-librarian.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Knowledge Release (knowledge-release.yaml), from &lt;code&gt;.github/workflows/knowledge-release.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Knowledge sync (knowledge-sync.yaml), from &lt;code&gt;.github/workflows/knowledge-sync.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: OSCAL metaschema copy, from &lt;code&gt;src/oscal/schema/metaschema&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Generated artefacts, from &lt;code&gt;project&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Test data and schema tests, from &lt;code&gt;tests/data&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Element names and the shared namespace, from &lt;code&gt;README.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Scope, influences and mappings, from &lt;code&gt;README.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Regenerate and test the schema, from &lt;code&gt;CONTRIBUTING.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Release the schema, from &lt;code&gt;CONTRIBUTING.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Move the upstream pins, from &lt;code&gt;scripts/check_upstream_release.py&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Validate OSCAL data against the schema, from &lt;code&gt;project.justfile&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: License and attribution, from &lt;code&gt;NOTICE&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: Security policy, from &lt;code&gt;SECURITY.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: AI covenant, from &lt;code&gt;AI_COVENANT.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt;: oscal documentation site, from &lt;code&gt;website&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>2026-08-05 · Source map: 1 · Namespace migration: 1 · Removal: 1 · Steady-state refresh: 1 · Initialization: 1</title>
    <link rel="alternate" type="text/html" href="https://lmodel.github.io/oscal/knowledge/log/#2026-08-05"/>
    <id>https://w3id.org/lmodel/oscal/knowledge/log#2026-08-05</id>
    <published>2026-08-05T13:55:11Z</published>
    <updated>2026-08-05T18:39:05Z</updated>
    <category term="Source map"/>
    <category term="Namespace migration"/>
    <category term="Removal"/>
    <category term="Steady-state refresh"/>
    <category term="Initialization"/>
    <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Source map&lt;/strong&gt;: Orphan sweep accounted for the remaining top-level directories: recorded &lt;code&gt;tmp/&lt;/code&gt; and &lt;code&gt;examples/&lt;/code&gt; (generated outputs, same rationale as &lt;code&gt;project/&lt;/code&gt;) and &lt;code&gt;docs/&lt;/code&gt; (MkDocs site generated from the schema) as conscious exclusions in &lt;code&gt;playbooks/knowledge-sources.md&lt;/code&gt; gaps. Re-verified all 11 datasets, 2 references, and the org concept against their sources (schema versions 1.2.1, 31+31 CNCF fixtures, luigi_carpio OSCAL 1.1.2) - no drift.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Namespace migration&lt;/strong&gt;: Changed &lt;code&gt;base_iri&lt;/code&gt; from &lt;code&gt;https://github.com/lmodel/oscal/knowledge/&lt;/code&gt; to &lt;code&gt;https://w3id.org/lmodel/oscal/knowledge/&lt;/code&gt;, rewriting every concept &lt;code&gt;id&lt;/code&gt;, the publisher &lt;code&gt;id&lt;/code&gt;, and all typed-relation targets (55 IRIs across 15 concepts). Rationale: the old IRIs sat inside github.com's URL space, which the project does not control and where they can never dereference; the w3id.org namespace matches the schema's own &lt;code&gt;https://w3id.org/lmodel/oscal&lt;/code&gt; authority and can later be made to resolve via a &lt;code&gt;perma-id/w3id.org&lt;/code&gt; redirect rule pointing at the GitHub Pages site. &lt;code&gt;resource&lt;/code&gt;/&lt;code&gt;access_url&lt;/code&gt; values (real GitHub blob/tree links) are unchanged. No external consumers existed yet, so no links were broken.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Removal&lt;/strong&gt;: &lt;code&gt;tests/data/open_control/&lt;/code&gt; was deleted from the repository (along with its &lt;code&gt;tests/data/README.md&lt;/code&gt; entry). Removed the corresponding &lt;code&gt;references/open-control&lt;/code&gt; concept, its bullets in &lt;code&gt;knowledge/index.md&lt;/code&gt; and &lt;code&gt;knowledge/references/index.md&lt;/code&gt;, and its row in &lt;code&gt;playbooks/knowledge-sources.md&lt;/code&gt;'s source map (including the now-moot note about the corrupted &lt;code&gt;component_v1.0.0.yaml&lt;/code&gt; stub, since the fixture no longer exists).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steady-state refresh&lt;/strong&gt;: Re-verified all 9 existing schema datasets, both references, and the org concept against their sources (versions, imports/&lt;code&gt;hasPart&lt;/code&gt;, URLs) - no drift found. Added 3 new concepts for real-world test fixtures introduced this session: &lt;code&gt;datasets/cncf-ai-benchmarks&lt;/code&gt; (31 CNCF AI ecosystem Component Definition fixtures, valid + fault-injected invalid variants), &lt;code&gt;datasets/luigi-carpio-component-definition&lt;/code&gt; (NIST 800-53 Rev 5 -&amp;gt; AWS mapping fixture), and &lt;code&gt;references/open-control&lt;/code&gt; (predecessor compliance format, format-comparison reference). Noted in the source map that &lt;code&gt;tests/data/open_control/component_v1.0.0.yaml&lt;/code&gt; is a corrupted &lt;code&gt;404: Not Found&lt;/code&gt; stub, not real data - recorded accurately rather than assumed valid. Updated &lt;code&gt;playbooks/knowledge-sources.md&lt;/code&gt; source map and gaps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Initialization&lt;/strong&gt;: Bootstrap discovery pass. Created LOKF bundle for OSCAL with concepts derived from &lt;code&gt;src/oscal/schema/&lt;/code&gt; (9 schema datasets), &lt;code&gt;CONTRIBUTING.md&lt;/code&gt;/&lt;code&gt;README.md&lt;/code&gt; (playbook), NIST OSCAL upstream standard (reference), LinkML framework (reference), and lmodel organization (org). Knowledge sources map recorded in &lt;code&gt;playbooks/knowledge-sources.md&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
</feed>
