Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

NDF

NDF is an experimental knowledge compiler for normative engineering documents. Markdown, ASL, source, test, and evidence files remain Git-tracked sources of truth; generated indexes are disposable query artifacts.

Development

NDF requires Rust 1.94.0. The repository is a locked Cargo workspace:

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features --locked
cargo build --workspace --release --locked

Print the independently versioned public surfaces with:

scripts/ndf --machine-version

ndf-core owns canonical identities, graph types, and public version constants. ndf-compiler owns adapters, validation, SQLite materialization, and graph workflows. ndf-cli is the only supported automation interface. NDF ships no Python package or Python bindings; downstream tools invoke the versioned JSON CLI from an exact Git pin.

PTO release impact

Compare two immutable PTO indexes against one consumer index with:

ndf impact pto-release \
--before pto-before.sqlite \
--after pto-after.sqlite \
--consumer-index davincioo.sqlite \
--format json

The two PTO indexes are authoritative release snapshots. The consumer index is the authoritative inventory of conforms-to relationships and expected=absenttracks watches. The command only reads these three indexes; it does not edit sources, indexes, lock files, or dependency checkouts.

The result is compatible when changes do not affect a consumer contract, review-required for moved or superseded targets and newly present watched identities, and breaking when a conformance target is removed or semantically modified. The report includes direct and transitively related consumers in a deterministic order so CI and release tooling can compare its JSON byte for byte.

Cross-project conformance

Declare an external graph only when document relationships must resolve into that dependency:

dependencies:
pto-spec:
path: deps/pto-specgraph: true

The matching ndf.lock entry must name the dependency project and its full 40-character Git commit. NDF verifies that the checkout is exact and clean, loads its graph read-only, and keeps its nodes out of the consumer index.

Consumer Markdown can then use a stable external URI:

<!-- ndf: kind=requirement modality=must refinement=L1 status=active conforms-to=ndf://pto-spec/PTO-INST-TILE-TLOAD -->

Use tracks=ndf://... expected=absent when a consumer intentionally watches for an upstream identity that does not exist yet. NDF-XREF-001 reports an invalid watch contract, NDF-XREF-002 a missing conformance target, NDF-XREF-003 an undeclared graph namespace, and NDF-XREF-004 a watched identity that has appeared.

Documentation

Format 0.2, canonical IR 0.1, JSON output schema 0.1, CLI spelling, and the plugin API are experimental. Downstream repositories consume NDF from an exact Git commit recorded in ndf.lock; CI must not fetch an unpinned branch. This cross-project release keeps format 0.2, canonical IR 0.1, JSON envelope schema 0.1, SQLite schema v1, and the plugin API version unchanged.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages