Skip to content

Commit eb205b4

Browse files
committed
Release v1.1.0
1 parent c57ffe3 commit eb205b4

6 files changed

Lines changed: 40 additions & 13 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,32 @@ pattern.
1414
1515
## [Unreleased]
1616

17+
## [1.1.0] - 2026-07-25
18+
19+
### Added
20+
- Added deployment profiles, environment override guidance, and troubleshooting documentation to the canonical repository and newly initialized projects.
21+
- Added output-preservation, CNAME-transition, URL-edge, mapping-shape, MCP response-shape, generated-artifact cleanliness, public-surface, and CI workflow regression coverage.
22+
- Added a zero-dependency guided initializer that creates a clean project with the engine, worked example, MCP runtime, and deployment workflows.
23+
- Added a provider-independent external verifier contract using explicit executable and JSONL input/output boundaries.
24+
- Added an independent adoption pilot gate, bounded maintenance policy, security scope, and structured pilot-report issue form.
25+
1726
### Changed
18-
- Added deployment profiles and troubleshooting guidance, strict mapping-shape parsing, and regression coverage for output preservation, custom-domain transitions, URL edge cases, MCP response shape, generated-artifact cleanliness, and CI workflow contracts.
1927
- Made generated URL metadata and 404 navigation path-aware for subpath deployments.
2028
- Made internal-link checking deployment-base-aware for subpath output.
2129
- Made custom-domain CNAME generation explicit instead of deriving it from the published URL.
2230
- Unified entity and provision loading across build, validation, verification, and MCP surfaces.
2331
- Made filename-derived entity IDs canonical and expanded validation for required fields, duplicates, and generated-route collisions.
32+
- Made malformed mapping structure, unknown or duplicate keys, scalar obligation values, and duplicate obligation IDs fail loudly.
2433
- Clarified initializer scope, stable mapping wire keys, current project status, and canonical demo identity.
2534
- Expanded CI and eval coverage for the advertised Node.js minimum, URL validation, subpath deployment, identity mismatches, duplicate mappings, and the canonical public surface.
2635
- Repositioned the project as an internal-first open reference generator for evidence-backed structured sites.
2736
- Replaced unqualified self-healing claims with the deterministic drift checks the repository actually ships.
2837
- Distinguished maintainer-operated implementations from independent external adoption.
2938
- Standardized onboarding on the clean-project initializer and added a Pages deployment workflow for generated repositories.
3039
- Corrected the canonical Snap Synapse writeup path and acknowledged established prior art.
31-
- Added a zero-dependency guided initializer that creates a clean project with only the engine, worked example, MCP runtime, and deployment workflows.
3240
- Made `docs/` transient local output in the canonical repository; `demo/` is now the only tracked generated build.
3341
- Expanded deterministic verification to fail on missing reviews, invalid or future dates, mapping gaps, and required evidence metadata.
34-
- Added a provider-independent external verifier contract using an explicit executable and JSONL input/output, with no shell or source-file mutation.
3542
- Re-verified the worked example against current ISO and NIST primary sources, corrected unsupported claims, and replaced the ambiguous data-quality mapping with information integrity.
36-
- Documented the internal-first operating model, bounded maintenance policy, security scope, viable open-repository end state, and independent adoption pilot gate.
37-
- Added a structured GitHub issue form for independent pilot reports.
3843

3944
## [1.0.2] — 2026-06-12
4045

@@ -175,7 +180,8 @@ canonical pattern definition at <https://knowledge-as-code.com/>.
175180
site generator, `scripts/validate.js` cross-reference linter, example data for ISO 27001 and
176181
NIST CSF, dark/light themed static site output, JSON API, bridge pages, `CNAME` fixture.
177182

178-
[Unreleased]: https://github.com/snapsynapse/knowledge-as-code-template/compare/v1.0.2...HEAD
183+
[Unreleased]: https://github.com/snapsynapse/knowledge-as-code-template/compare/v1.1.0...HEAD
184+
[1.1.0]: https://github.com/snapsynapse/knowledge-as-code-template/releases/tag/v1.1.0
179185
[1.0.2]: https://github.com/snapsynapse/knowledge-as-code-template/releases/tag/v1.0.2
180186
[1.0.1]: https://github.com/snapsynapse/knowledge-as-code-template/releases/tag/v1.0.1
181187
[1.0.0]: https://github.com/snapsynapse/knowledge-as-code-template/releases/tag/v1.0.0

‎MANIFEST.yaml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
# - This file itself
2828

2929
bundle: knowledge-as-code-template
30-
bundle_version: 1.0.2
31-
bundle_date: 2026-06-12
30+
bundle_version: 1.1.0
31+
bundle_date: 2026-07-25
3232
description: >
3333
Knowledge as Code starter template — scaffolds a KaC site with
3434
Primary/Container/Authority/Secondary entities, gist ontology binding,
@@ -112,12 +112,12 @@ files:
112112

113113
- path: scripts/eval.js
114114
role: tooling
115-
hash: sha256:6b9bcb6254884340cb0186c6cac73c34fdae57b07f44aea5a696cf44220e672e
115+
hash: sha256:7e54c1463d232c5bd547efcd9176705e4e988439dd9536c07f308a43cb9ea8ff
116116
note: Behavioral and security regression suite
117117

118118
- path: mcp-server.js
119119
role: tooling
120-
hash: sha256:4d0581cda1be5b0e7aea639e3db8fc15a2a2607a85ac447d5c25a40d0458372b
120+
hash: sha256:7a6e590449baa4eaff376e8a23d5bedbcf8a546d1a75d149287bc0c13517840f
121121
note: Read-only MCP interface over canonical project data
122122

123123
- path: scripts/check-links.js

‎index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ <h1><span class="mark">Knowledge as Code</span></h1>
569569
<span class="sep">·</span>
570570
Updated <time datetime="2026-07-25">July 25, 2026</time>
571571
<span class="sep">·</span>
572-
<span class="version">v1.0</span>
572+
<span class="version">v1.1</span>
573573
<span class="sep">·</span>
574574
<a href="https://creativecommons.org/licenses/by/4.0/" rel="license">CC&nbsp;BY&nbsp;4.0</a>
575575
</p>

‎mcp-server.js‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
const fs = require('fs');
1515
const path = require('path');
16+
const packageMetadata = require('./package.json');
1617
const { loadProjectData } = require('./scripts/lib/data-loaders');
1718
const { parseYaml } = require('./scripts/lib/parsers');
1819

@@ -325,7 +326,7 @@ function handleMessage(msg) {
325326
capabilities: { tools: {} },
326327
serverInfo: {
327328
name: config.name || 'Knowledge Base MCP',
328-
version: '1.0.0'
329+
version: packageMetadata.version
329330
}
330331
});
331332
}

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "knowledge-as-code-template",
3-
"version": "1.0.2",
3+
"version": "1.1.0",
44
"description": "Zero-dependency generator for evidence-backed reference sites from Git-tracked Markdown and YAML.",
55
"license": "MIT",
66
"scripts": {

‎scripts/eval.js‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,25 @@ function evalWorkflowContract() {
891891
]) assertIncludes(workflow, required);
892892
}
893893

894+
function evalReleaseMetadata() {
895+
const packageMetadata = readJson(path.join(ROOT, 'package.json'));
896+
const version = packageMetadata.version;
897+
assert.match(version, /^\d+\.\d+\.\d+$/, 'package.json must contain a stable semantic version.');
898+
899+
const changelog = fs.readFileSync(path.join(ROOT, 'CHANGELOG.md'), 'utf8');
900+
const manifest = fs.readFileSync(path.join(ROOT, 'MANIFEST.yaml'), 'utf8');
901+
const landing = fs.readFileSync(path.join(ROOT, 'index.html'), 'utf8');
902+
assertIncludes(changelog, `## [${version}]`);
903+
assertIncludes(manifest, `bundle_version: ${version}`);
904+
assertIncludes(landing, `<span class="version">v${version.split('.').slice(0, 2).join('.')}</span>`);
905+
906+
const request = JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'initialize', params: {} }) + '\n';
907+
const mcp = spawnSync(process.execPath, ['mcp-server.js'], { cwd: ROOT, encoding: 'utf8', input: request });
908+
assert.strictEqual(mcp.status, 0, `MCP release metadata check failed:\n${mcp.stdout}\n${mcp.stderr}`);
909+
const response = JSON.parse(mcp.stdout.trim());
910+
assert.strictEqual(response.result.serverInfo.version, version);
911+
}
912+
894913
function evalMcpNotificationSilence() {
895914
const notification = '{"jsonrpc":"2.0","method":"unknown","params":{}}\n';
896915
const result = spawnSync(process.execPath, ['mcp-server.js'], {
@@ -966,6 +985,7 @@ const evals = [
966985
['MCP notification silence', evalMcpNotificationSilence],
967986
['generated artifact cleanliness', evalGeneratedArtifactCleanliness],
968987
['workflow contract', evalWorkflowContract],
988+
['release metadata', evalReleaseMetadata],
969989
['docs consistency', evalDocsConsistency]
970990
];
971991

0 commit comments

Comments
 (0)