@kungfu-tech/kfd 1.0.0-alpha.2 → 1.0.0-alpha.20
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 +753 -0
- package/.buildchain/kfd-2/kfd-foundation.trust-assessment.json +238 -0
- package/.buildchain/kfd-2/kfd-foundation.trust-claims.json +225 -0
- package/.buildchain/kfd-2/public-release-trust.claim.json +131 -0
- package/.buildchain/kfd-3/collaboration-interface.artifact.json +774 -0
- package/.buildchain/kfd-3/collaboration-interface.json +421 -0
- package/.buildchain/kfd-3/collaboration-interface.prebuild.json +1141 -0
- package/README.md +149 -29
- package/TRADEMARKS.md +60 -0
- package/buildchain.contract-lock.json +86 -0
- package/buildchain.release-propagation.json +32 -0
- package/decisions/{kfd-1.md → KFD-1.md} +77 -35
- package/decisions/{kfd-2.md → KFD-2.md} +63 -11
- package/decisions/{kfd-3.md → KFD-3.md} +54 -16
- package/decisions/KFD-4.md +182 -0
- package/docs/KFD-1-usage.md +37 -0
- package/docs/KFD-2-usage.md +123 -0
- package/docs/KFD-3-usage.md +98 -0
- package/docs/KFD-4-usage.md +31 -0
- package/docs/MAP.md +20 -3
- package/docs/release-governance.md +28 -0
- package/kfd.release.json +13 -0
- package/package.json +28 -2
- package/registry.json +15 -5
- package/release-impact.json +113 -0
- package/schemas/kfd-1/contract-world.schema.json +67 -4
- package/schemas/kfd-1/witness.schema.json +113 -0
- package/schemas/kfd-2/release-claims.schema.json +331 -0
- package/schemas/kfd-2/release-trust-passport.schema.json +276 -0
- package/schemas/kfd-2/trust-assessment.schema.json +313 -0
- package/schemas/kfd-2/trust-claims.schema.json +334 -0
- package/schemas/kfd-2/trust-taxonomy.schema.json +219 -0
- package/schemas/kfd-3/collaboration-interface.schema.json +542 -0
- package/schemas/kfd-3/witness.schema.json +167 -0
- package/schemas/kfd-4/observer-perspective.schema.json +272 -0
- package/schemas/kfd-standards.schema.json +163 -0
- package/scripts/check.mjs +930 -0
- package/scripts/npm-publish-transaction.mjs +220 -0
- package/scripts/update-kfd-1-witness.mjs +35 -0
- package/scripts/update-kfd-2-claim.mjs +304 -0
- package/scripts/update-kfd-3-witness.mjs +261 -0
- package/scripts/update-site-bundle.mjs +353 -0
- package/site/kfd-site.json +251 -12
- package/standards.json +775 -15
package/site/kfd-site.json
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"routes": {
|
|
11
11
|
"home": "/",
|
|
12
12
|
"decisionPattern": "/{number}",
|
|
13
|
+
"decisionUsagePattern": "/{number}/usage",
|
|
13
14
|
"llms": "/llms.txt",
|
|
14
15
|
"manifest": "/manifest.json"
|
|
15
16
|
},
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
"commitments": [
|
|
24
25
|
{
|
|
25
26
|
"id": "KFD-1",
|
|
26
|
-
"text": "
|
|
27
|
+
"text": "facts must not drift."
|
|
27
28
|
},
|
|
28
29
|
{
|
|
29
30
|
"id": "KFD-2",
|
|
@@ -31,10 +32,10 @@
|
|
|
31
32
|
},
|
|
32
33
|
{
|
|
33
34
|
"id": "KFD-3",
|
|
34
|
-
"text": "cooperation must start from
|
|
35
|
+
"text": "cooperation must start from trusted value."
|
|
35
36
|
}
|
|
36
37
|
],
|
|
37
|
-
"summary": "Together they define the load-bearing path for Kungfu products: make
|
|
38
|
+
"summary": "Together they define the load-bearing path for Kungfu products: make facts non-drifting, make trust inspectable from those facts, and let humans and agents cooperate through trusted value rather than hidden pressure."
|
|
38
39
|
},
|
|
39
40
|
"foundationModel": {
|
|
40
41
|
"heading": "Foundation model",
|
|
@@ -44,7 +45,7 @@
|
|
|
44
45
|
"layer": "Fact-source ontology",
|
|
45
46
|
"decision": "KFD-1",
|
|
46
47
|
"readerQuestion": "What can count as a fact?",
|
|
47
|
-
"commitment": "
|
|
48
|
+
"commitment": "Facts must not drift: a load-bearing contract world comes from one declared fact source."
|
|
48
49
|
},
|
|
49
50
|
{
|
|
50
51
|
"layer": "Participant-to-object trust",
|
|
@@ -56,37 +57,274 @@
|
|
|
56
57
|
"layer": "Participant-to-participant cooperation",
|
|
57
58
|
"decision": "KFD-3",
|
|
58
59
|
"readerQuestion": "How should peer intelligent participants cooperate?",
|
|
59
|
-
"commitment": "Cooperation starts from transparent
|
|
60
|
+
"commitment": "Cooperation starts from trusted value: value becomes trustable through transparent facts, stable choice, and explainable constraints."
|
|
60
61
|
}
|
|
61
62
|
],
|
|
62
|
-
"chain": "
|
|
63
|
+
"chain": "non-drifting facts -> inspectable trust -> trusted value -> voluntary cooperation",
|
|
63
64
|
"explanation": [
|
|
64
|
-
"This is why KFDs are not only internal governance text. KFD-1
|
|
65
|
-
"Real-world agent work turns ordinary work into a dense system of products, files, repositories, traces, policies, humans, and agents. In that world, complexity cannot be made safe by hidden state or forced compliance. It has to be compressed through non-drifting facts, inspectable trust, and voluntary cooperation. The goal is not to force increasingly capable participants into compliance through stronger pressure. It is to give humans and agents a shared worldview for adapting to a more complex world."
|
|
65
|
+
"This is why KFDs are not only internal governance text. KFD-1 gives the foundation model its first layer by making fact sources operational: a fact-bearing contract world must be declared, inspectable, and unable to drift invisibly. KFD-2 then defines how trust can stand on those facts. KFD-3 defines how humans and agents can cooperate once facts and trust are visible.",
|
|
66
|
+
"Real-world agent work turns ordinary work into a dense system of products, files, repositories, traces, policies, humans, and agents. In that world, complexity cannot be made safe by hidden state or forced compliance. It has to be compressed through non-drifting facts, inspectable trust, and voluntary cooperation. The goal is not to force increasingly capable participants into compliance through stronger pressure. It is to give humans and agents a shared worldview for adapting to a more complex world.",
|
|
67
|
+
"This also changes what a product interface means. Agent-facing CLI, API, documentation, envelopes, and local fact surfaces are not secondary integration channels after the human GUI. They are first-class interfaces for intelligent participants that may use the system more frequently than humans do. A control plane in this model is a shared work environment for humans and agents, not only a human dashboard over agent activity.",
|
|
68
|
+
"This model used to be expensive to practice. Stable facts require engineering, iteration, and disciplined evidence paths, so older systems often survived by leaning on cheaper substitutes such as authority, habit, reputation, or intuition. Agents change both sides of that equation: they make the world more complex, and they also provide more intelligence for building fact-bearing systems. KFD is part of that bootstrap: the worldview is forged through the same transparent and inspectable mechanisms it asks products to provide.",
|
|
69
|
+
"This README states the architecture; KFD-1, KFD-2, and KFD-3 provide the foundation rules."
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"practiceGuidelines": {
|
|
73
|
+
"heading": "Practice guidelines",
|
|
74
|
+
"intro": "KFDs after the foundation triad may define practice guidelines: procedures that apply the foundation to a specific class of real-world product behavior. They do not expand the foundation triad; they show how the foundation behaves when a product must make a concrete kind of reality legible.",
|
|
75
|
+
"guidelines": [
|
|
76
|
+
{
|
|
77
|
+
"layer": "Perspective-bearing views",
|
|
78
|
+
"decision": "KFD-4",
|
|
79
|
+
"readerQuestion": "How should a product show time, history, replay, sync, or mixed-source work state?",
|
|
80
|
+
"commitment": "Timelines must declare their observer: a useful view states who is observing, which facts were accepted, and how concurrent facts were projected."
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"explanation": [
|
|
84
|
+
"| Layer | Decision | Reader question | Commitment | |---|---|---|---| | Perspective-bearing views | KFD-4 | How should a product show time, history, replay, sync, or mixed-source work state? | Timelines must declare their observer: a useful view states who is observing, which facts were accepted, and how concurrent facts were projected. |",
|
|
85
|
+
"KFD-4 is the first such guideline. It applies KFD-1/2/3 to the problem of perspective and timeline order. In a multi-machine or multi-agent world, a product should not pretend to own a universal global clock. It should preserve non-drifting facts, make trust start from those facts, and let participants cooperate by exposing the observer, accepted ranges, causal constraints, and projection policy behind the view."
|
|
66
86
|
]
|
|
67
87
|
},
|
|
68
88
|
"productProofPath": {
|
|
69
89
|
"heading": "Product proof path",
|
|
70
|
-
"body": "KFDs are not a detached manifesto, but they are not a demand that readers adopt a Kungfu product before understanding the decisions. A philosophy becomes load-bearing only when it can be seen in a concrete case. For
|
|
90
|
+
"body": "KFDs are not a detached manifesto, but they are not a demand that readers adopt a Kungfu product before understanding the decisions. A philosophy becomes load-bearing only when it can be seen in a concrete case. The first concrete case is this package itself: `standards.json`, `schemas/`, `docs/`, `site/kfd-site.json`, and `scripts/check.mjs` show how KFD-1, KFD-2, KFD-3, and KFD-4 are expressed as consumable interfaces for both humans and agents. For the broader product case, use the main Kungfu product entrypoint (`https://kungfu.tech`) for product philosophy, and Buildchain (`https://buildchain.libkungfu.dev`) for release and provenance accountability. This registry states the commitments; this package and those entrypoints show how the commitments are meant to be borne in practice."
|
|
71
91
|
},
|
|
72
92
|
"currentDecisions": {
|
|
73
93
|
"heading": "Current decisions",
|
|
74
94
|
"source": "registry.json"
|
|
95
|
+
},
|
|
96
|
+
"sections": [
|
|
97
|
+
{
|
|
98
|
+
"id": "foundation-triad",
|
|
99
|
+
"sourcePath": "README.md",
|
|
100
|
+
"sourceHeading": "Foundation triad",
|
|
101
|
+
"title": "Foundation triad",
|
|
102
|
+
"renderRole": "first-screen",
|
|
103
|
+
"homepagePriority": 10,
|
|
104
|
+
"defaultPresentation": "triad-cards",
|
|
105
|
+
"includeInFirstScreen": true,
|
|
106
|
+
"markdown": "The first three KFDs form the public foundation for kungfu-systems:\n\n```text\nKFD-1: facts must not drift.\nKFD-2: trust must start from facts.\nKFD-3: cooperation must start from trusted value.\n```\n\nTogether they define the load-bearing path for Kungfu products: make facts\nnon-drifting, make trust inspectable from those facts, and let humans and\nagents cooperate through trusted value rather than hidden pressure."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "foundation-model",
|
|
110
|
+
"sourcePath": "README.md",
|
|
111
|
+
"sourceHeading": "Foundation model",
|
|
112
|
+
"title": "Foundation model",
|
|
113
|
+
"renderRole": "primary",
|
|
114
|
+
"homepagePriority": 20,
|
|
115
|
+
"defaultPresentation": "layered-model",
|
|
116
|
+
"includeInFirstScreen": true,
|
|
117
|
+
"markdown": "The triad is intentionally ordered. It is a compact model for surviving and\nevolving in complex systems, especially in a world where agents can observe,\nact, delegate, and remember across many surfaces.\n\n| Layer | Decision | Reader question | Commitment |\n|---|---|---|---|\n| Fact-source ontology | KFD-1 | What can count as a fact? | Facts must not drift: a load-bearing contract world comes from one declared fact source. |\n| Participant-to-object trust | KFD-2 | When can a user or agent trust a claim, product, artifact, or control surface? | Trust starts from inspectable facts and responsibility state. |\n| Participant-to-participant cooperation | KFD-3 | How should peer intelligent participants cooperate? | Cooperation starts from trusted value: value becomes trustable through transparent facts, stable choice, and explainable constraints. |\n\nIn short:\n\n```text\nnon-drifting facts -> inspectable trust -> trusted value -> voluntary cooperation\n```\n\nThis is why KFDs are not only internal governance text. KFD-1 gives the\nfoundation model its first layer by making fact sources operational: a\nfact-bearing contract world must be declared, inspectable, and unable to drift\ninvisibly. KFD-2 then defines how trust can stand on those facts. KFD-3\ndefines how humans and agents can cooperate once facts and trust are visible.\n\nReal-world agent work turns ordinary work into a dense system of products,\nfiles, repositories, traces, policies, humans, and agents. In that world,\ncomplexity cannot be made safe by hidden state or forced compliance. It has to\nbe compressed through non-drifting facts, inspectable trust, and voluntary\ncooperation. The goal is not to force increasingly capable participants into\ncompliance through stronger pressure. It is to give humans and agents a shared\nworldview for adapting to a more complex world.\n\nThis also changes what a product interface means. Agent-facing CLI, API,\ndocumentation, envelopes, and local fact surfaces are not secondary integration\nchannels after the human GUI. They are first-class interfaces for intelligent\nparticipants that may use the system more frequently than humans do. A control\nplane in this model is a shared work environment for humans and agents, not\nonly a human dashboard over agent activity.\n\nThis model used to be expensive to practice. Stable facts require engineering,\niteration, and disciplined evidence paths, so older systems often survived by\nleaning on cheaper substitutes such as authority, habit, reputation, or\nintuition. Agents change both sides of that equation: they make the world more\ncomplex, and they also provide more intelligence for building fact-bearing\nsystems. KFD is part of that bootstrap: the worldview is forged through the same\ntransparent and inspectable mechanisms it asks products to provide.\n\nThis README states the architecture; KFD-1, KFD-2, and KFD-3 provide the\nfoundation rules."
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "adoption-boundary",
|
|
121
|
+
"sourcePath": "README.md",
|
|
122
|
+
"sourceHeading": "Adoption boundary",
|
|
123
|
+
"title": "Adoption boundary",
|
|
124
|
+
"renderRole": "primary",
|
|
125
|
+
"homepagePriority": 25,
|
|
126
|
+
"defaultPresentation": "boundary-note",
|
|
127
|
+
"includeInFirstScreen": false,
|
|
128
|
+
"markdown": "KFD is an engineering discipline, not a belief test.\nKFD governs systems before it judges people.\nNo one should be pressured to adopt KFD in the name of KFD.\nDisagreement is a valid cooperation state.\n\nA constraint can be strict and still KFD-compatible when it is fact-bound,\nexplainable, auditable, and proportionate."
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "practice-guidelines",
|
|
132
|
+
"sourcePath": "README.md",
|
|
133
|
+
"sourceHeading": "Practice guidelines",
|
|
134
|
+
"title": "Practice guidelines",
|
|
135
|
+
"renderRole": "primary",
|
|
136
|
+
"homepagePriority": 27,
|
|
137
|
+
"defaultPresentation": "practice-table",
|
|
138
|
+
"includeInFirstScreen": false,
|
|
139
|
+
"markdown": "KFDs after the foundation triad may define practice guidelines: procedures\nthat apply the foundation to a specific class of real-world product behavior.\nThey do not expand the foundation triad; they show how the foundation behaves\nwhen a product must make a concrete kind of reality legible.\n\n| Layer | Decision | Reader question | Commitment |\n|---|---|---|---|\n| Perspective-bearing views | KFD-4 | How should a product show time, history, replay, sync, or mixed-source work state? | Timelines must declare their observer: a useful view states who is observing, which facts were accepted, and how concurrent facts were projected. |\n\nKFD-4 is the first such guideline. It applies KFD-1/2/3 to the problem of\nperspective and timeline order. In a multi-machine or multi-agent world, a\nproduct should not pretend to own a universal global clock. It should preserve\nnon-drifting facts, make trust start from those facts, and let participants\ncooperate by exposing the observer, accepted ranges, causal constraints, and\nprojection policy behind the view."
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "product-proof-path",
|
|
143
|
+
"sourcePath": "README.md",
|
|
144
|
+
"sourceHeading": "Product proof path",
|
|
145
|
+
"title": "Product proof path",
|
|
146
|
+
"renderRole": "primary",
|
|
147
|
+
"homepagePriority": 30,
|
|
148
|
+
"defaultPresentation": "proof-path",
|
|
149
|
+
"includeInFirstScreen": false,
|
|
150
|
+
"markdown": "KFDs are not a detached manifesto, but they are not a demand that readers adopt\na Kungfu product before understanding the decisions. A philosophy becomes\nload-bearing only when it can be seen in a concrete case. The first concrete\ncase is this package itself: `standards.json`, `schemas/`, `docs/`,\n`site/kfd-site.json`, and `scripts/check.mjs` show how KFD-1, KFD-2, KFD-3,\nand KFD-4 are expressed as consumable interfaces for both humans and agents.\nFor the broader product case, use the main Kungfu product entrypoint\n(`https://kungfu.tech`) for product philosophy, and Buildchain\n(`https://buildchain.libkungfu.dev`) for release and provenance\naccountability. This registry states the commitments; this package and those\nentrypoints show how the commitments are meant to be borne in practice.\n\nRendered index: `https://kfd.libkungfu.dev` (stable machine path per entry,\ne.g. `https://kfd.libkungfu.dev/1`). This repository publishes\n`@kungfu-tech/kfd` — the decision texts plus a machine-readable\n`registry.json` — which the site consumes as its single fact source.\n\nMachine consumers that need KFD-owned standard identity should read\n`standards.json`. It is the versioned metadata surface for stable standard\nkeys, document routes and SHA-256 digests, schema IDs, KFD-owned concept names,\nand machine-interface contract versions. In Node or TypeScript projects, import\nit as:\n\n```js\nimport standards from \"@kungfu-tech/kfd/standards.json\" with { type: \"json\" };\n```"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "agent-quickstart",
|
|
154
|
+
"sourcePath": "README.md",
|
|
155
|
+
"sourceHeading": "Agent Quickstart",
|
|
156
|
+
"title": "Agent Quickstart",
|
|
157
|
+
"renderRole": "support",
|
|
158
|
+
"homepagePriority": 40,
|
|
159
|
+
"defaultPresentation": "ordered-steps",
|
|
160
|
+
"includeInFirstScreen": false,
|
|
161
|
+
"markdown": "Agents consuming this package should start from the same sources as humans:\n\n1. Read this README for the foundation model and package map.\n2. Read `standards.json` for canonical KFD numbers, schema IDs, concept names,\n and interface contracts.\n3. Use `site/kfd-site.json` decision metadata or the KFD-3 collaboration\n interface fact-source metadata to identify the public KFD fact source.\n4. Use `schemas/kfd-2/trust-taxonomy.schema.json` for KFD-2 residual-risk and\n trust-downgrade values. Unknown taxonomy values are invalid.\n5. Use `schemas/kfd-2/trust-claims.schema.json` and\n `schemas/kfd-2/trust-assessment.schema.json` when a claim needs generic\n KFD-2 assessment instead of a release-specific passport.\n6. Use `schemas/kfd-3/collaboration-interface.schema.json` and\n `schemas/kfd-3/witness.schema.json` to inspect collaboration interfaces.\n7. If a needed KFD-2 taxonomy value is missing, open a KFD GitHub issue rather\n than inventing a local value:\n `https://github.com/kungfu-systems/kfd/issues/new?title=KFD-2%20trust%20taxonomy%20extension%20request`.\n\nKFD package semver is only the distribution version. KFD-owned machine\ninterfaces carry their own `schemaVersion` and `contract` fields. Compatible\nadditions may keep the same interface version; semantic changes, required-field\nchanges, verification meaning changes, or responsibility-boundary changes must\nuse a new interface version or contract.\n\nKFD-2 publishes trust-taxonomy, trust-claims, trust-assessment,\nrelease-claims, and release-trust-passport schemas under `schemas/kfd-2/`.\nThe generic schemas let humans, agents, Buildchain, and other systems assess\nwhether claims about KFD-1, KFD-3, KFD-4, future KFDs, or product surfaces are\nbound to source facts, evidence, hashes, audit boundaries, residual risk, and\nresponsibility state. The release schemas are a release-specific projection of\nthat model. See [`docs/KFD-2-usage.md`](docs/KFD-2-usage.md).\n\nKFD-3 also publishes a general collaboration-interface schema and witness\nschema under `schemas/kfd-3/`. These schemas are for participant-facing product\ninterfaces, not only agent APIs. A product such as Kungfu may implement an\nagent-first profile, but that profile remains a product-specific realization of\nKFD-3. The KFD-owned boundary is the standard vocabulary, schema IDs, and\nclosed-world evidence shape. See\n[`docs/KFD-3-usage.md`](docs/KFD-3-usage.md).\n\nKFD-4 publishes an observer-perspective schema under `schemas/kfd-4/`. It gives\nhumans and agents a standard vocabulary for observer, accepted facts,\nprojection policy, causal constraints, degraded evidence, and verification\nstate when a product shows a perspective-bearing timeline."
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "decision-metadata",
|
|
165
|
+
"sourcePath": "README.md",
|
|
166
|
+
"sourceHeading": "Decision metadata",
|
|
167
|
+
"title": "Decision metadata",
|
|
168
|
+
"renderRole": "support",
|
|
169
|
+
"homepagePriority": 50,
|
|
170
|
+
"defaultPresentation": "fact-source",
|
|
171
|
+
"includeInFirstScreen": false,
|
|
172
|
+
"markdown": "Every rendered decision page should make the KFD fact source explicit. The\npublic KFD fact source is the GitHub-hosted `kungfu-systems/kfd` git\nrepository. GitHub is the current canonical coordination and hosting surface;\nthe load-bearing facts are the commit-addressed repository contents.\n\nDecision metadata should expose:\n\n- Public fact source: `https://github.com/kungfu-systems/kfd`\n- Load-bearing coordinate: commit-addressed repository contents.\n- Canonical paths: `decisions/KFD-N.md`, `registry.json`, `standards.json`.\n- Stable rendered index: `https://kfd.libkungfu.dev`.\n- Rendered URL: `https://kfd.libkungfu.dev/N`.\n\nRendered pages, npm package contents, Buildchain release passports, and\n`kfd.libkungfu.dev` are projections or evidence surfaces. A GitHub issue is an\nextension request path, not a KFD fact by itself; it becomes part of the KFD\nfact source only after the resulting change is committed to the repository."
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
"displayPlan": {
|
|
176
|
+
"firstScreen": {
|
|
177
|
+
"include": [
|
|
178
|
+
"title",
|
|
179
|
+
"lead",
|
|
180
|
+
"foundation-triad",
|
|
181
|
+
"foundation-model.chain"
|
|
182
|
+
],
|
|
183
|
+
"maxPrimarySections": 2,
|
|
184
|
+
"note": "The first viewport should establish KFD identity and the three-decision worldview without showing renderer or developer contract text."
|
|
185
|
+
},
|
|
186
|
+
"primary": [
|
|
187
|
+
"foundation-triad",
|
|
188
|
+
"foundation-model",
|
|
189
|
+
"adoption-boundary",
|
|
190
|
+
"practice-guidelines",
|
|
191
|
+
"product-proof-path"
|
|
192
|
+
],
|
|
193
|
+
"support": [
|
|
194
|
+
"agent-quickstart",
|
|
195
|
+
"decision-metadata"
|
|
196
|
+
],
|
|
197
|
+
"currentDecisions": {
|
|
198
|
+
"source": "registry.json",
|
|
199
|
+
"placement": "after-primary",
|
|
200
|
+
"ids": [
|
|
201
|
+
"KFD-1",
|
|
202
|
+
"KFD-2",
|
|
203
|
+
"KFD-3",
|
|
204
|
+
"KFD-4"
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"rendererContract": {
|
|
209
|
+
"id": "homepage-content-contract",
|
|
210
|
+
"sourcePath": "README.md",
|
|
211
|
+
"sourceHeading": "Homepage content contract",
|
|
212
|
+
"title": "Homepage content contract",
|
|
213
|
+
"renderRole": "renderer-contract",
|
|
214
|
+
"homepagePriority": 90,
|
|
215
|
+
"defaultPresentation": "developer-note",
|
|
216
|
+
"includeInFirstScreen": false,
|
|
217
|
+
"markdown": "This README is also the homepage text source for `https://kfd.libkungfu.dev`.\nWhen `site-libkungfu-dev` consumes the `@kungfu-tech/kfd` npm package to render\nthe KFD site, it should treat this file as the canonical homepage copy, not as\nan implementation note to paraphrase in the site repository.\n\nThe first screen should be derived from this README:\n\n- Page identity: the top-level heading.\n- Lead: the opening paragraph that defines KFD as the organization-wide\n decision registry.\n- Foundation signal: the `Foundation triad` section, especially the three\n one-line commitments.\n- First-screen explanation: the beginning of `Foundation model`, ending at the\n `non-drifting facts -> inspectable trust -> trusted value -> voluntary\n cooperation` chain.\n- Practice signal: the `Practice guidelines` section, starting with KFD-4 as\n the declared-observer rule for perspective-bearing timeline views.\n\nDecision cards, detail links, and machine paths should come from\n`registry.json`. The machine-readable site bundle lives at `site/kfd-site.json`\nand gives renderers stable fields for the homepage, foundation model, product\nproof path, decision routes, and rendering boundary. A site renderer may adapt\nlayout, navigation, typography, and visual assets, but it should not maintain\nseparate homepage wording that can drift from this package.\n\n`site/kfd-site.json` is generated from this README by\n`scripts/update-site-bundle.mjs`. The generated bundle exposes both compatible\ntop-level homepage fields and ordered `homepage.sections` entries. The\n`homepage.displayPlan` tells renderers which sections belong in the first\nscreen, primary narrative, and support area. Site repositories should consume\nthat bundle instead of parsing this README themselves. The renderer contract is\nexposed as machine/implementation metadata, not as ordinary homepage content.",
|
|
218
|
+
"renderAsHomepageContent": false,
|
|
219
|
+
"note": "This is a machine/renderer contract for site implementers. It should not be rendered as ordinary homepage content."
|
|
75
220
|
}
|
|
76
221
|
},
|
|
77
222
|
"decisionPages": {
|
|
78
223
|
"source": "registry.json",
|
|
79
224
|
"bodySource": "registry.entries[].path",
|
|
80
|
-
"stableUrlField": "url"
|
|
225
|
+
"stableUrlField": "url",
|
|
226
|
+
"usagePages": {
|
|
227
|
+
"source": "registry.entries[] + docs/KFD-N-usage.md",
|
|
228
|
+
"bodySource": "docs/KFD-{number}-usage.md",
|
|
229
|
+
"stableUrlPattern": "/{number}/usage",
|
|
230
|
+
"relationship": "usage-child-of-decision",
|
|
231
|
+
"pages": [
|
|
232
|
+
{
|
|
233
|
+
"id": "KFD-1-usage",
|
|
234
|
+
"decisionId": "KFD-1",
|
|
235
|
+
"decisionNumber": 1,
|
|
236
|
+
"parentPath": "decisions/KFD-1.md",
|
|
237
|
+
"parentUrl": "https://kfd.libkungfu.dev/1",
|
|
238
|
+
"path": "docs/KFD-1-usage.md",
|
|
239
|
+
"url": "https://kfd.libkungfu.dev/1/usage",
|
|
240
|
+
"sourcePath": "docs/KFD-1-usage.md",
|
|
241
|
+
"sourceExists": true,
|
|
242
|
+
"relationship": "usage-child-of-decision",
|
|
243
|
+
"title": "KFD-1 usage"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"id": "KFD-2-usage",
|
|
247
|
+
"decisionId": "KFD-2",
|
|
248
|
+
"decisionNumber": 2,
|
|
249
|
+
"parentPath": "decisions/KFD-2.md",
|
|
250
|
+
"parentUrl": "https://kfd.libkungfu.dev/2",
|
|
251
|
+
"path": "docs/KFD-2-usage.md",
|
|
252
|
+
"url": "https://kfd.libkungfu.dev/2/usage",
|
|
253
|
+
"sourcePath": "docs/KFD-2-usage.md",
|
|
254
|
+
"sourceExists": true,
|
|
255
|
+
"relationship": "usage-child-of-decision",
|
|
256
|
+
"title": "KFD-2 usage"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"id": "KFD-3-usage",
|
|
260
|
+
"decisionId": "KFD-3",
|
|
261
|
+
"decisionNumber": 3,
|
|
262
|
+
"parentPath": "decisions/KFD-3.md",
|
|
263
|
+
"parentUrl": "https://kfd.libkungfu.dev/3",
|
|
264
|
+
"path": "docs/KFD-3-usage.md",
|
|
265
|
+
"url": "https://kfd.libkungfu.dev/3/usage",
|
|
266
|
+
"sourcePath": "docs/KFD-3-usage.md",
|
|
267
|
+
"sourceExists": true,
|
|
268
|
+
"relationship": "usage-child-of-decision",
|
|
269
|
+
"title": "KFD-3 usage"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"id": "KFD-4-usage",
|
|
273
|
+
"decisionId": "KFD-4",
|
|
274
|
+
"decisionNumber": 4,
|
|
275
|
+
"parentPath": "decisions/KFD-4.md",
|
|
276
|
+
"parentUrl": "https://kfd.libkungfu.dev/4",
|
|
277
|
+
"path": "docs/KFD-4-usage.md",
|
|
278
|
+
"url": "https://kfd.libkungfu.dev/4/usage",
|
|
279
|
+
"sourcePath": "docs/KFD-4-usage.md",
|
|
280
|
+
"sourceExists": true,
|
|
281
|
+
"relationship": "usage-child-of-decision",
|
|
282
|
+
"title": "KFD-4 usage"
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
"metadata": {
|
|
287
|
+
"licenseBoundary": {
|
|
288
|
+
"license": "Apache-2.0",
|
|
289
|
+
"licenseFile": "LICENSE",
|
|
290
|
+
"officialStatusAndTrademarks": "TRADEMARKS.md",
|
|
291
|
+
"summary": "Apache-2.0 covers repository contents; it does not grant KFD/Kungfu trademarks, official status, certification status, or endorsement."
|
|
292
|
+
},
|
|
293
|
+
"publicFactSource": {
|
|
294
|
+
"kind": "git-repository",
|
|
295
|
+
"host": "github",
|
|
296
|
+
"repository": "kungfu-systems/kfd",
|
|
297
|
+
"url": "https://github.com/kungfu-systems/kfd",
|
|
298
|
+
"loadBearingCoordinate": "commit-addressed repository contents",
|
|
299
|
+
"stableRenderedIndex": "https://kfd.libkungfu.dev",
|
|
300
|
+
"canonicalPaths": [
|
|
301
|
+
"decisions/KFD-N.md",
|
|
302
|
+
"registry.json",
|
|
303
|
+
"standards.json"
|
|
304
|
+
],
|
|
305
|
+
"projectionSurfaces": [
|
|
306
|
+
"https://kfd.libkungfu.dev/N",
|
|
307
|
+
"npm:@kungfu-tech/kfd",
|
|
308
|
+
"Buildchain release passports"
|
|
309
|
+
],
|
|
310
|
+
"extensionRequestNote": "GitHub issues are extension request paths; KFD facts are created only by committed repository contents."
|
|
311
|
+
}
|
|
312
|
+
}
|
|
81
313
|
},
|
|
82
314
|
"renderingBoundary": {
|
|
83
315
|
"ownedByKfd": [
|
|
84
316
|
"homepage title and text",
|
|
317
|
+
"homepage section projection from README.md",
|
|
85
318
|
"foundation triad commitments",
|
|
86
319
|
"foundation model layers and chain",
|
|
87
320
|
"product proof path text",
|
|
321
|
+
"agent quickstart text",
|
|
88
322
|
"decision metadata",
|
|
89
|
-
"decision
|
|
323
|
+
"decision metadata fact source",
|
|
324
|
+
"license and official-status boundary",
|
|
325
|
+
"decision markdown bodies",
|
|
326
|
+
"decision usage page mapping",
|
|
327
|
+
"decision usage markdown bodies"
|
|
90
328
|
],
|
|
91
329
|
"ownedBySite": [
|
|
92
330
|
"HTML structure",
|
|
@@ -95,7 +333,8 @@
|
|
|
95
333
|
"navigation layout",
|
|
96
334
|
"visual assets",
|
|
97
335
|
"decorative images",
|
|
98
|
-
"markdown-to-HTML renderer"
|
|
336
|
+
"markdown-to-HTML renderer",
|
|
337
|
+
"section presentation and progressive disclosure within KFD displayPlan constraints"
|
|
99
338
|
]
|
|
100
339
|
}
|
|
101
340
|
}
|