Schema · Metadata
Metadata, intent and domain
The first three sections of a CKF package describe what the package is, why it exists and where it sits in a domain map.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
| package_id | string | yes | Stable slug. Kebab-case. Used for cross-package references. |
| protocol_version | string | yes | Version of CKF this package targets. |
| source_type | string | yes | article | book | transcript | code | policy | … |
| source_title | string | yes | Original title of the source. |
| source_author | string | yes | Author name. Use "unknown" if missing. |
| domain | Domain | yes | Top-level domain enum. |
| subdomains | string[] | no | Free-form sub-areas relevant to the source. |
| language | string | yes | BCP-47 language tag. |
| created_at | string | yes | ISO-8601 timestamp. |
| compression_level | enum | yes | How aggressive the structuring was. |
| human_readability | number | yes | 0.00–1.00. How easy a human can still read the package. |
| ai_utility_score | number | yes | 0.00–1.00. How useful the extractor judged it for agents. |
ts
interface CkfMetadata {
package_id: string; // stable slug, kebab-case
protocol_version: string; // e.g. "0.1"
source_type: string; // article | book | transcript | code | ...
source_title: string;
source_author: string;
domain: Domain;
subdomains: string[];
language: string; // BCP-47, e.g. "en", "pt-BR"
created_at: string; // ISO-8601
compression_level: "light" | "standard" | "dense" | "agentic";
human_readability: number; // 0.00 - 1.00
ai_utility_score: number; // 0.00 - 1.00
}core_intent
Why the package exists, who it's for, and what an agent should do with it.
ts
interface CoreIntent {
primary_purpose: string;
intended_user: string;
intended_agent_use: string;
transformation_goal: string;
key_value: string;
}domain_map
Locates the package in a domain graph so retrieval systems can score relevance across topics.
ts
interface DomainMap {
main_domain: Domain;
subdomains: { name: string; relevance: number; related_concepts: string[] }[];
adjacent_domains: string[];
excluded_domains: string[];
}