@kungfu-tech/kfd 1.0.0-alpha.0 → 1.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.buildchain/kfd-1/contract-world.witness.json +185 -0
- package/.buildchain/kfd-2/public-release-trust.claim.json +107 -0
- package/.buildchain/kfd-3/collaboration-interface.artifact.json +520 -0
- package/.buildchain/kfd-3/collaboration-interface.json +274 -0
- package/.buildchain/kfd-3/collaboration-interface.prebuild.json +803 -0
- package/README.md +45 -4
- package/buildchain.release-propagation.json +32 -0
- package/decisions/kfd-1.md +6 -4
- package/docs/MAP.md +4 -0
- package/docs/kfd-2-release-trust.md +46 -0
- package/docs/kfd-3-collaboration-interface.md +59 -0
- package/kfd.release.json +13 -0
- package/package.json +49 -5
- package/release-impact.json +65 -0
- package/schemas/kfd-1/contract-world.schema.json +57 -0
- package/schemas/kfd-1/witness.schema.json +63 -0
- package/schemas/kfd-2/release-claims.schema.json +332 -0
- package/schemas/kfd-2/release-trust-passport.schema.json +278 -0
- package/schemas/kfd-3/collaboration-interface.schema.json +348 -0
- package/schemas/kfd-3/witness.schema.json +153 -0
- package/schemas/kfd-standards.schema.json +239 -0
- package/standards.json +189 -0
package/README.md
CHANGED
|
@@ -113,6 +113,36 @@ e.g. `https://kfd.libkungfu.dev/1`). This repository publishes
|
|
|
113
113
|
`@kungfu-tech/kfd` — the decision texts plus a machine-readable
|
|
114
114
|
`registry.json` — which the site consumes as its single fact source.
|
|
115
115
|
|
|
116
|
+
Machine consumers that need KFD-owned standard identity should read
|
|
117
|
+
`standards.json`. It is the versioned metadata surface for stable standard
|
|
118
|
+
keys, document routes and SHA-256 digests, schema IDs, KFD-owned concept names,
|
|
119
|
+
and machine-interface contract versions. In Node or TypeScript projects, import
|
|
120
|
+
it as:
|
|
121
|
+
|
|
122
|
+
```js
|
|
123
|
+
import standards from "@kungfu-tech/kfd/standards.json" with { type: "json" };
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
KFD package semver is only the distribution version. KFD-owned machine
|
|
127
|
+
interfaces carry their own `schemaVersion` and `contract` fields. Compatible
|
|
128
|
+
additions may keep the same interface version; semantic changes, required-field
|
|
129
|
+
changes, verification meaning changes, or responsibility-boundary changes must
|
|
130
|
+
use a new interface version or contract.
|
|
131
|
+
|
|
132
|
+
KFD-2 publishes release-claims and release-trust-passport schemas under
|
|
133
|
+
`schemas/kfd-2/`. These schemas let Buildchain and other release systems audit
|
|
134
|
+
whether public release claims are bound to source facts, evidence, hashes,
|
|
135
|
+
audit boundaries, residual risk, and responsibility state. See
|
|
136
|
+
[`docs/kfd-2-release-trust.md`](docs/kfd-2-release-trust.md).
|
|
137
|
+
|
|
138
|
+
KFD-3 also publishes a general collaboration-interface schema and witness
|
|
139
|
+
schema under `schemas/kfd-3/`. These schemas are for participant-facing product
|
|
140
|
+
interfaces, not only agent APIs. A product such as Kungfu may implement an
|
|
141
|
+
agent-first profile, but that profile remains a product-specific realization of
|
|
142
|
+
KFD-3. The KFD-owned boundary is the standard vocabulary, schema IDs, and
|
|
143
|
+
closed-world evidence shape. See
|
|
144
|
+
[`docs/kfd-3-collaboration-interface.md`](docs/kfd-3-collaboration-interface.md).
|
|
145
|
+
|
|
116
146
|
## Current decisions
|
|
117
147
|
|
|
118
148
|
| ID | Kind | Title | Status |
|
|
@@ -137,16 +167,25 @@ reference KFDs; KFDs never depend on repository internals.
|
|
|
137
167
|
```text
|
|
138
168
|
decisions/ one markdown file per decision (kfd-N.md)
|
|
139
169
|
registry.json machine-readable index (schemaVersion 1, contract kfd-registry)
|
|
170
|
+
standards.json machine-readable KFD standard metadata (schemaVersion 1,
|
|
171
|
+
contract kfd-standards-metadata)
|
|
172
|
+
schemas/ JSON schemas for package metadata and KFD-owned schema IDs
|
|
140
173
|
site/ machine-readable site bundle for kfd.libkungfu.dev renderers
|
|
174
|
+
buildchain.release-propagation.json
|
|
175
|
+
Buildchain release propagation graph for KFD -> site consumers
|
|
141
176
|
release-impact.json
|
|
142
177
|
Buildchain surface-aware impact ledger for production release passports
|
|
143
178
|
scripts/ conformance check: registry and documents must agree
|
|
144
179
|
```
|
|
145
180
|
|
|
146
181
|
`node scripts/check.mjs` (also `pnpm run check`) verifies numbering
|
|
147
|
-
uniqueness, registry/document agreement,
|
|
148
|
-
|
|
149
|
-
|
|
182
|
+
uniqueness, registry/document agreement, standards metadata/schema agreement,
|
|
183
|
+
status validity, decision document SHA-256 bindings, interface contract
|
|
184
|
+
version bindings, and the release impact ledger required by Buildchain
|
|
185
|
+
production release passports. Releases are governed by Buildchain; this package
|
|
186
|
+
versions itself under KFD-1's own rules: the outer package line remains `v1.0`,
|
|
187
|
+
while patch and prerelease numbers are advanced by Buildchain release
|
|
188
|
+
promotion.
|
|
150
189
|
|
|
151
190
|
## Release impact ledger
|
|
152
191
|
|
|
@@ -160,7 +199,9 @@ release-passport-impact-json: release-impact.json
|
|
|
160
199
|
For ordinary KFD content changes, keep `kfd-content` at `patch`. Move
|
|
161
200
|
`kfd-registry-schema` or `kfd-package-structure` to `minor` or `major` only
|
|
162
201
|
when those machine-consumed surfaces add or break fields, meanings, package
|
|
163
|
-
paths, or published structure under KFD-1.
|
|
202
|
+
paths, or published structure under KFD-1. These values are Buildchain release
|
|
203
|
+
passport impact classifications; they do not by themselves open a new
|
|
204
|
+
`@kungfu-tech/kfd` package major or minor line.
|
|
164
205
|
|
|
165
206
|
## License
|
|
166
207
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-release-propagation-graph",
|
|
4
|
+
"nodes": [
|
|
5
|
+
{
|
|
6
|
+
"id": "kfd",
|
|
7
|
+
"repository": "kungfu-systems/kfd",
|
|
8
|
+
"package": "@kungfu-tech/kfd"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"id": "site-libkungfu-dev",
|
|
12
|
+
"repository": "kungfu-systems/site-libkungfu-dev",
|
|
13
|
+
"lockPath": "buildchain.upstreams/kfd.release.json",
|
|
14
|
+
"baseRef": "main"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"edges": [
|
|
18
|
+
{
|
|
19
|
+
"id": "kfd-to-site-libkungfu-dev",
|
|
20
|
+
"from": "kfd",
|
|
21
|
+
"to": "site-libkungfu-dev",
|
|
22
|
+
"channelPolicy": "preserve",
|
|
23
|
+
"consumes": [
|
|
24
|
+
"@kungfu-tech/kfd",
|
|
25
|
+
"site/kfd-site.json",
|
|
26
|
+
"registry.json",
|
|
27
|
+
"standards.json",
|
|
28
|
+
"decisions/*.md"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
package/decisions/kfd-1.md
CHANGED
|
@@ -157,10 +157,12 @@ and does not drift invisibly.
|
|
|
157
157
|
KFD documents are append-only. A KFD's number is immutable and is the
|
|
158
158
|
content-layer coordinate; substantive semantic change is made by minting a new
|
|
159
159
|
KFD that supersedes the old number (namespace welding applied to decisions).
|
|
160
|
-
Consequently, in the `@kungfu-tech/kfd` package,
|
|
161
|
-
|
|
162
|
-
surfaces of the package itself (the
|
|
163
|
-
can
|
|
160
|
+
Consequently, in the `@kungfu-tech/kfd` package, the outer package line stays
|
|
161
|
+
fixed at `v1.0`. Content operations — new KFDs, status flips, editorial
|
|
162
|
+
clarifications — are patches. Machine surfaces of the package itself (the
|
|
163
|
+
registry schema, the package structure) can still require `minor` or `major`
|
|
164
|
+
surface-impact review in the Buildchain release passport, but that review
|
|
165
|
+
classification is not a silent package-line upgrade.
|
|
164
166
|
|
|
165
167
|
## Adopters
|
|
166
168
|
|
package/docs/MAP.md
CHANGED
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
| What should a site renderer consume to render `kfd.libkungfu.dev`? | [`../site/kfd-site.json`](../site/kfd-site.json) |
|
|
9
9
|
| What is the top-level product accountability principle? | [KFD-2](../decisions/kfd-2.md) |
|
|
10
10
|
| What stance should products take toward humans and agents as reasoning participants? | [KFD-3](../decisions/kfd-3.md) |
|
|
11
|
+
| What schema should products use for KFD-3 participant-facing collaboration interfaces? | [`kfd-3-collaboration-interface.md`](kfd-3-collaboration-interface.md) |
|
|
11
12
|
| What does a specific decision say? | [`../decisions/`](../decisions) (index: [`../registry.json`](../registry.json)) |
|
|
13
|
+
| What machine metadata should Buildchain or another consumer import for KFD standard identity and schema IDs? | [`../standards.json`](../standards.json) |
|
|
14
|
+
| What schema validates the standards metadata surface? | [`../schemas/kfd-standards.schema.json`](../schemas/kfd-standards.schema.json) |
|
|
15
|
+
| What schema should release systems use for KFD-2 release claims and trust passports? | [`kfd-2-release-trust.md`](kfd-2-release-trust.md) |
|
|
12
16
|
| How do I cite a decision? | [`../README.md`](../README.md) — cite by number, e.g. `KFD-1` |
|
|
13
17
|
| How do decisions change over time? | [`../CONTRIBUTING.md`](../CONTRIBUTING.md) — append-only; explicit supersession mints a new number |
|
|
14
18
|
| How is this package versioned and released? | [KFD-1](../decisions/kfd-1.md) applied to itself; Buildchain governs releases |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# KFD-2 Release Trust Metadata
|
|
2
|
+
|
|
3
|
+
KFD-2 says that trust must start from inspectable facts and responsibility
|
|
4
|
+
state. For releases, that means a product must not ask users or agents to trust
|
|
5
|
+
release claims only because they appear in prose, changelogs, or repository
|
|
6
|
+
history.
|
|
7
|
+
|
|
8
|
+
This package defines two KFD-owned machine interfaces:
|
|
9
|
+
|
|
10
|
+
- `schemas/kfd-2/release-claims.schema.json`: the product's declared public
|
|
11
|
+
release claims.
|
|
12
|
+
- `schemas/kfd-2/release-trust-passport.schema.json`: the verifier's result
|
|
13
|
+
after auditing those claims against evidence.
|
|
14
|
+
|
|
15
|
+
The intended Buildchain flow is:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
release claims -> evidence audit -> release trust passport -> release passport
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Each claim should declare the statement being made, the source of the claim,
|
|
22
|
+
machine-readable evidence, the audit boundary, residual risk, and responsibility
|
|
23
|
+
state. The trust passport should then record whether each claim is bound to
|
|
24
|
+
evidence, which evidence was checked, what the result was, and who owns the
|
|
25
|
+
release decision.
|
|
26
|
+
|
|
27
|
+
## Interface Versioning
|
|
28
|
+
|
|
29
|
+
KFD package semver is only the distribution version. It is not the version of a
|
|
30
|
+
KFD-owned machine interface.
|
|
31
|
+
|
|
32
|
+
Every KFD-owned machine interface uses:
|
|
33
|
+
|
|
34
|
+
- `schemaVersion`: the interface version consumed by tools.
|
|
35
|
+
- `contract`: the stable contract name, such as `kfd-2-release-claims`.
|
|
36
|
+
- `$id`: the canonical schema URL for the current stable interface.
|
|
37
|
+
|
|
38
|
+
Compatible additions may keep `schemaVersion: 1`. A change that alters required
|
|
39
|
+
fields, field semantics, verification meaning, audit boundary semantics, or
|
|
40
|
+
responsibility semantics must not silently reuse the same interface contract.
|
|
41
|
+
It must introduce a new interface version or, when the standard itself changes,
|
|
42
|
+
a new KFD decision or amendment path.
|
|
43
|
+
|
|
44
|
+
The same rule applies to KFD-1 and KFD-3 schemas. Their current schemas already
|
|
45
|
+
carry `schemaVersion: 1` and a `contract` value; this document makes the
|
|
46
|
+
evolution rule explicit across the KFD package.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# KFD-3 Collaboration Interface
|
|
2
|
+
|
|
3
|
+
KFD-3 is a cooperation standard for intelligent participants. It is not an
|
|
4
|
+
agent-only standard. Products can use it for humans, agents, operators,
|
|
5
|
+
extension authors, API consumers, hosted-service users, service integrators,
|
|
6
|
+
maintainers, and other participants who need to understand value, choices, and
|
|
7
|
+
constraints before cooperating.
|
|
8
|
+
|
|
9
|
+
The KFD-owned schema surface is intentionally general:
|
|
10
|
+
|
|
11
|
+
- `schemas/kfd-3/collaboration-interface.schema.json` declares a product's
|
|
12
|
+
participant-facing collaboration interface.
|
|
13
|
+
- `schemas/kfd-3/witness.schema.json` declares release or build evidence that
|
|
14
|
+
the interface is discoverable, classified, constraint-transparent, and closed
|
|
15
|
+
over reachable participant-facing entrypoints.
|
|
16
|
+
|
|
17
|
+
KFD owns the standard identity, schema IDs, concept names, and compatibility
|
|
18
|
+
rules. Product repositories own their concrete profiles. For example, Kungfu
|
|
19
|
+
may expose an agent-first profile because agents are a first-class participant
|
|
20
|
+
in the current product, but that profile remains a Kungfu implementation of
|
|
21
|
+
KFD-3 rather than the definition of KFD-3 itself.
|
|
22
|
+
|
|
23
|
+
## Required shape
|
|
24
|
+
|
|
25
|
+
A product collaboration interface should identify:
|
|
26
|
+
|
|
27
|
+
- participant profiles, such as `human`, `agent`, `operator`,
|
|
28
|
+
`extension-author`, or `api-consumer`;
|
|
29
|
+
- minimal entrypoints that let each participant discover the rest of the
|
|
30
|
+
interface;
|
|
31
|
+
- participant-visible surfaces, such as CLI commands, JSON APIs, manuals,
|
|
32
|
+
skills, GUI routes, envelopes, packages, or protocols;
|
|
33
|
+
- visible constraints, including what is restricted, why, and where review or
|
|
34
|
+
escalation happens;
|
|
35
|
+
- choice paths that let participants choose or decline safe cooperation modes;
|
|
36
|
+
- a closure policy for reachable participant-facing entrypoints.
|
|
37
|
+
|
|
38
|
+
The KFD-3 witness schema is intentionally stricter about closure: a passing
|
|
39
|
+
closed-world proof reports reachable entrypoints, classified entrypoints, and
|
|
40
|
+
an empty `unclassifiedEntrypoints` list. This prevents a product from exposing
|
|
41
|
+
a participant-facing or callable backdoor API outside the declared interface.
|
|
42
|
+
|
|
43
|
+
## Product profile boundary
|
|
44
|
+
|
|
45
|
+
Concrete product profiles may add their own contracts, registry fields, command
|
|
46
|
+
metadata, generated manuals, or audit output. Those fields should reference the
|
|
47
|
+
KFD-3 schema IDs from `standards.json` instead of copying KFD-owned terms.
|
|
48
|
+
|
|
49
|
+
Examples:
|
|
50
|
+
|
|
51
|
+
- A Kungfu agent-first bridge can map local commands, provider skills, command
|
|
52
|
+
metadata, and operating manuals into a KFD-3 collaboration interface.
|
|
53
|
+
- A Buildchain release passport can carry a KFD-3 witness once a downstream
|
|
54
|
+
product can freeze and verify the concrete interface artifact.
|
|
55
|
+
- A hosted surface can use the same standard to show where policy constraints,
|
|
56
|
+
permission gates, and user choices are visible before cooperation is
|
|
57
|
+
requested.
|
|
58
|
+
|
|
59
|
+
This keeps KFD-3 general while making real product interfaces testable.
|
package/kfd.release.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kfd-release-anchor",
|
|
4
|
+
"line": "v1.0",
|
|
5
|
+
"channel": "alpha",
|
|
6
|
+
"npmPackage": "@kungfu-tech/kfd",
|
|
7
|
+
"npmVersion": "1.0.0-alpha.12",
|
|
8
|
+
"source": {
|
|
9
|
+
"repository": "kungfu-systems/kfd",
|
|
10
|
+
"branch": "alpha/v1/v1.0"
|
|
11
|
+
},
|
|
12
|
+
"rationale": "KFD uses an anchored/manual Buildchain mode: the public package version is an explicit release fact, while the outer KFD line remains v1.0."
|
|
13
|
+
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/kfd",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.12",
|
|
4
4
|
"description": "Kung Fu Decisions (KFD): the kungfu-systems organization-wide decision registry, as a consumable artifact",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
-
"files": [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
"files": [
|
|
7
|
+
"README.md",
|
|
8
|
+
"decisions",
|
|
9
|
+
"registry.json",
|
|
10
|
+
"standards.json",
|
|
11
|
+
"kfd.release.json",
|
|
12
|
+
"schemas",
|
|
13
|
+
"site",
|
|
14
|
+
"buildchain.release-propagation.json",
|
|
15
|
+
"release-impact.json",
|
|
16
|
+
".buildchain/kfd-1/contract-world.witness.json",
|
|
17
|
+
".buildchain/kfd-2",
|
|
18
|
+
".buildchain/kfd-3",
|
|
19
|
+
"docs"
|
|
20
|
+
],
|
|
21
|
+
"exports": {
|
|
22
|
+
"./package.json": "./package.json",
|
|
23
|
+
"./README.md": "./README.md",
|
|
24
|
+
"./registry.json": "./registry.json",
|
|
25
|
+
"./standards.json": "./standards.json",
|
|
26
|
+
"./kfd.release.json": "./kfd.release.json",
|
|
27
|
+
"./site/kfd-site.json": "./site/kfd-site.json",
|
|
28
|
+
"./buildchain.release-propagation.json": "./buildchain.release-propagation.json",
|
|
29
|
+
"./release-impact.json": "./release-impact.json",
|
|
30
|
+
"./buildchain/kfd-1/contract-world.witness.json": "./.buildchain/kfd-1/contract-world.witness.json",
|
|
31
|
+
"./buildchain/kfd-2/public-release-trust.claim.json": "./.buildchain/kfd-2/public-release-trust.claim.json",
|
|
32
|
+
"./buildchain/kfd-3/collaboration-interface.json": "./.buildchain/kfd-3/collaboration-interface.json",
|
|
33
|
+
"./buildchain/kfd-3/collaboration-interface.prebuild.json": "./.buildchain/kfd-3/collaboration-interface.prebuild.json",
|
|
34
|
+
"./buildchain/kfd-3/collaboration-interface.artifact.json": "./.buildchain/kfd-3/collaboration-interface.artifact.json",
|
|
35
|
+
"./schemas/*.json": "./schemas/*.json",
|
|
36
|
+
"./schemas/*/*.json": "./schemas/*/*.json",
|
|
37
|
+
"./decisions/*.md": "./decisions/*.md",
|
|
38
|
+
"./docs/*": "./docs/*"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"check": "node scripts/check.mjs",
|
|
42
|
+
"update:kfd-1-witness": "node scripts/update-kfd-1-witness.mjs",
|
|
43
|
+
"update:kfd-2-claim": "node scripts/update-kfd-2-claim.mjs",
|
|
44
|
+
"update:kfd-3-witness": "node scripts/update-kfd-3-witness.mjs"
|
|
45
|
+
},
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"registry": "https://registry.npmjs.org/",
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"repository": {
|
|
51
|
+
"type": "git",
|
|
52
|
+
"url": "git+https://github.com/kungfu-systems/kfd.git"
|
|
53
|
+
}
|
|
10
54
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-impact",
|
|
4
|
+
"release": {
|
|
5
|
+
"line": "v1.0",
|
|
6
|
+
"channel": "release",
|
|
7
|
+
"targetRef": "release/v1/v1.0"
|
|
8
|
+
},
|
|
9
|
+
"versionImpact": {
|
|
10
|
+
"final": "minor",
|
|
11
|
+
"source": "kfd-surface-register",
|
|
12
|
+
"rationale": "This change additively registers KFD-owned standards metadata, KFD-2 release trust schemas, KFD-3 collaboration-interface schemas, KFD-3 self-verification witnesses, and KFD-1 document/interface integrity bindings while keeping existing registry and decision surfaces compatible."
|
|
13
|
+
},
|
|
14
|
+
"surfaceImpacts": [
|
|
15
|
+
{
|
|
16
|
+
"id": "kfd-content",
|
|
17
|
+
"impact": "patch",
|
|
18
|
+
"class": "content",
|
|
19
|
+
"rationale": "KFD documents are append-only content coordinates; current decision text changes do not alter a machine-consumed surface."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "kfd-registry-schema",
|
|
23
|
+
"impact": "patch",
|
|
24
|
+
"class": "compatible",
|
|
25
|
+
"rationale": "registry.json keeps schemaVersion 1 and the existing entry shape, including number, id, slug, title, kind, status, path, and url; slug and path values are stable number coordinates."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "kfd-standards-metadata",
|
|
29
|
+
"impact": "minor",
|
|
30
|
+
"class": "additive",
|
|
31
|
+
"rationale": "standards.json and schemas/ add KFD-2 release-claims and release-trust-passport schema IDs, explicit KFD-1/2/3 interface versions, KFD document SHA-256 bindings, and KFD-owned concept names for downstream consumers."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "kfd-package-structure",
|
|
35
|
+
"impact": "minor",
|
|
36
|
+
"class": "additive",
|
|
37
|
+
"rationale": "The npm package now also publishes KFD-2 schemas, KFD-2 documentation, and KFD-3 self collaboration-interface witnesses through existing schemas/, docs/, standards.json, .buildchain/, and subpath exports while preserving existing README.md, decisions/, registry.json, and site/ paths."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "kfd-3-self-collaboration",
|
|
41
|
+
"impact": "minor",
|
|
42
|
+
"class": "release-passport",
|
|
43
|
+
"rationale": "KFD now declares its own participant-facing collaboration interface and ships pre-build plus artifact-side KFD-3 witnesses so Buildchain can audit interface closure in the release passport."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "kfd-2-public-release-trust-claim",
|
|
47
|
+
"impact": "minor",
|
|
48
|
+
"class": "release-passport",
|
|
49
|
+
"rationale": "KFD now ships an explicit machine-bound public KFD-2 release trust claim and passes it into Buildchain release passport generation."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "kfd-release-anchor",
|
|
53
|
+
"impact": "minor",
|
|
54
|
+
"class": "release-governance",
|
|
55
|
+
"rationale": "KFD now declares its package version through an anchored/manual release manifest so package version state is an explicit release fact rather than an auto-derived Buildchain side effect."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "kfd-release-propagation",
|
|
59
|
+
"impact": "patch",
|
|
60
|
+
"class": "compatible",
|
|
61
|
+
"rationale": "The KFD to site-libkungfu-dev propagation graph now targets the downstream site's actual main branch and documents the exact KFD package surfaces consumed by kfd.libkungfu.dev, without changing the release propagation graph contract."
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"summary": "KFD v1.0 production promotion is minor-impact because it additively exposes KFD-2 release trust metadata, KFD-1/2/3 interface version metadata, KFD-3 self-verification witnesses, document integrity bindings, and a corrected site release-propagation target for Buildchain and other consumers; existing registry, decision text, site bundle, and propagation graph contracts remain compatible."
|
|
65
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://kfd.libkungfu.dev/schemas/kfd-1/contract-world.schema.json",
|
|
4
|
+
"title": "KFD-1 contract world",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"schemaVersion",
|
|
8
|
+
"contract",
|
|
9
|
+
"standard",
|
|
10
|
+
"factSource",
|
|
11
|
+
"surfaces"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"schemaVersion": {
|
|
15
|
+
"const": 1
|
|
16
|
+
},
|
|
17
|
+
"contract": {
|
|
18
|
+
"const": "kfd-1-contract-world"
|
|
19
|
+
},
|
|
20
|
+
"standard": {
|
|
21
|
+
"const": "kfd-1"
|
|
22
|
+
},
|
|
23
|
+
"factSource": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1
|
|
26
|
+
},
|
|
27
|
+
"surfaces": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"required": [
|
|
32
|
+
"id",
|
|
33
|
+
"class",
|
|
34
|
+
"description"
|
|
35
|
+
],
|
|
36
|
+
"properties": {
|
|
37
|
+
"id": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
|
|
40
|
+
},
|
|
41
|
+
"class": {
|
|
42
|
+
"enum": [
|
|
43
|
+
"integration-time",
|
|
44
|
+
"cross-time"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"description": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"additionalProperties": false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"additionalProperties": true
|
|
57
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://kfd.libkungfu.dev/schemas/kfd-1/witness.schema.json",
|
|
4
|
+
"title": "KFD-1 witness",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"schemaVersion",
|
|
8
|
+
"contract",
|
|
9
|
+
"standard",
|
|
10
|
+
"contractWorld",
|
|
11
|
+
"evidence"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"schemaVersion": {
|
|
15
|
+
"const": 1
|
|
16
|
+
},
|
|
17
|
+
"contract": {
|
|
18
|
+
"const": "kfd-1-witness"
|
|
19
|
+
},
|
|
20
|
+
"standard": {
|
|
21
|
+
"const": "kfd-1"
|
|
22
|
+
},
|
|
23
|
+
"contractWorld": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"required": [
|
|
26
|
+
"schemaId",
|
|
27
|
+
"digest"
|
|
28
|
+
],
|
|
29
|
+
"properties": {
|
|
30
|
+
"schemaId": {
|
|
31
|
+
"const": "https://kfd.libkungfu.dev/schemas/kfd-1/contract-world.schema.json"
|
|
32
|
+
},
|
|
33
|
+
"digest": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"minLength": 1
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"additionalProperties": false
|
|
39
|
+
},
|
|
40
|
+
"evidence": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"items": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"required": [
|
|
45
|
+
"kind",
|
|
46
|
+
"path"
|
|
47
|
+
],
|
|
48
|
+
"properties": {
|
|
49
|
+
"kind": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1
|
|
52
|
+
},
|
|
53
|
+
"path": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"minLength": 1
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"additionalProperties": true
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"additionalProperties": true
|
|
63
|
+
}
|