Open Knowledge Format for Crossplane v2
LLM wiki kit
First committed by jkroepke
Published in jkroepke/okf-crossplane-v2. Publisher page
37 GitHub stars
What it is
LLM-wiki in OKF (Open Knowledge Format) for Crossplane v2
AutoGineer overview, from the brain’s own files
The okf-crossplane-v2 repository provides a versioned, source-backed knowledge catalog designed to help AI agents and developers navigate the Crossplane v2 ecosystem. It aggregates information from Go API types, CRDs, package metadata, and documentation into a structured format. By utilizing the Open Knowledge Format (OKF), it enables agents to perform precise lookups on providers, composition functions, and API definitions. The project includes a dedicated MCP server that allows agents to query live repository data, such as CRD definitions, versioning, and examples, ensuring that the information retrieved is grounded in specific, versioned source code.
How it works
Memory model: LLM wiki
AutoGineer overview, from the brain’s own files
The system organizes technical knowledge into a catalog of Markdown files stored in the catalog folder. These files contain OKF metadata and provenance links. An MCP server, which can be self-hosted or used via a public endpoint, ingests this catalog into a DuckDB instance. Agents interact with this data through specific tools that resolve provider versions, search CRDs, and retrieve documentation or examples. The system relies on specialized researcher agents defined in the .agents folder to maintain and validate the knowledge base, ensuring that facts are linked to stable source code and documentation.
| Folder | Role | Files |
|---|---|---|
| .codex | agent-config | 25 |
| .github | agent-config | 2 |
| skills | agent-instructions | 1 |
| .agents | folder | 37 |
| .codex-plugin | folder | 1 |
| .okf | folder | 2 |
| .pi | folder | 27 |
| .plugin | folder | 1 |
| catalog | folder | 120 |
| mcp | folder | 12 |
Requirements
Apps: Docker
API keys (by name): GITHUB_TOKEN
Works with: Claude Code, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Amp, Cline, JetBrains Junie, Devin (ex-Windsurf)
Set it up
- Download the brain as a ZIP and unzip it where you keep your notes or project: https://mp-staging.autogineer.com/agent-brains/jkroepke/okf-crossplane-v2/download
Point Claude Code at .codex-plugin/plugin.json: it does not read that file on its own.
cd okf-crossplane-v2 && claude
AutoGineer scanned these files at commit df24ac2.
Add crossplane-v2-okf to .mcp.json:
{ "mcpServers": { "crossplane-v2-okf": { "type": "http", "url": "https://crossplane.mcp.jkroepke.de/mcp" } } }Or add it with the Claude Code CLI:
claude mcp add --transport http crossplane-v2-okf https://crossplane.mcp.jkroepke.de/mcpYour data is sent to crossplane.mcp.jkroepke.de.
First committed by jkroepke. Published in jkroepke/okf-crossplane-v2. Licence: Apache License 2.0.
Usage
AutoGineer overview, from the brain’s own files
- Querying CRD definitions for specific Crossplane providers
- Retrieving versioned examples for composition functions
- Resolving stable provider versions and their associated documentation
- Integrating Crossplane knowledge into AI agent workflows via MCP
- “Find the latest version of the AWS provider and list its CRDs.”
- The agent uses the get_versions and provider_crd_search tools to return the canonical repository name and a list of available CRDs for the specified provider.
- “Show me the definition for the S3Bucket CRD in the latest AWS provider.”
- The agent retrieves the YAML definition of the requested CRD using the provider_crd_get_definition tool, ensuring the output is token-efficient.
Documentation by jkroepke
Image: CI Image: GitHub license Image: GitHub Repo stars Image: BundleDex
Open Knowledge Format for Crossplane v2
This repository provides a structured knowledge catalog for the Crossplane v2 ecosystem using Open Knowledge Format v0.2.
The goal is to make Crossplane concepts, APIs, providers, composition functions, documentation, and practical examples easier to discover and understand. The catalog is designed for both humans and knowledge-aware tools.
Installation
WARNING
The public MCP server is a temporary early-access service for early adopters. Its availability is not guaranteed, and it may change or be removed without notice. It is intended to bridge the current tooling gap until the OKF ecosystem provides practical, end-user-friendly solutions that run locally. For reliable or production use, self-host the included container.
Install the companion skill and hosted OKF-aware MCP server together as a plugin for every detected supported agent:
npx plugins add jkroepke/okf-crossplane-v2Pass --target codex to install only in Codex. Restart the selected agents
after installation.
Alternatively, install the hosted OKF-aware MCP server globally:
npx add-mcp \
https://crossplane.mcp.jkroepke.de/mcp \
--name crossplane-v2-okf \
--globalThen install the companion skill so the agent prefers this bundle over generic documentation providers for Crossplane v2 questions:
npx skills add jkroepke/okf-crossplane-v2 \
--skill crossplane-v2-okf \
--globalBoth standalone installers detect supported agents and ask where the integration should be installed. Restart the selected agent after installation.
The public MCP health endpoint is available at https://crossplane.mcp.jkroepke.de/healthz.
Self-hosting the MCP server
The included container fetches this repository, ingests catalog/ into a DuckDB catalog, and serves the okf-mcp tools over Streamable HTTP.
docker compose up --build --detachTo authenticate the server's GitHub requests, export GITHUB_TOKEN before
starting the container. The token is optional.
The local MCP endpoint is http://127.0.0.1:8000/mcp. Put it behind a TLS reverse proxy for crossplane.mcp.jkroepke.de.
The catalog is refreshed at container startup. If fetching or ingestion fails and a previous catalog exists in the volume, the server continues with that last successful catalog.
The MCP tools are read-only, but the public endpoint has no application-level authentication. Apply request limits and access controls at the reverse proxy when required.
Crossplane package tools
The server adds these tools backed by OSS GitHub repositories:
get_versions(name)resolves an OSS provider or function repository and returns its canonical repository name,versions.latest, a compact list of recent stable versions, and tag counts. Pass the returned provider name to the CRD tools.provider_crd_search(provider_name, provider_version, crd_search_term)searches CRDs in one explicit provider package version. The search term supports case-insensitive shell-style wildcards.provider_crd_get_definition(provider_name, provider_version, crd_name, path?)returns the complete CRD definition as token-efficient YAML. Use a dotted path such as.specor.spec.versions[0]to return only a subtree.provider_crd_get_examples(provider_name, provider_version, crd_name)returns GitHub repository paths for generated and handwritten examples. Without an API version, it selects the latest served CRD API version, for exampleexamples-generated/namespaced/ec2/v1beta2/route.yaml.provider_crd_get_terraform_docs(provider_name, provider_version, crd_name)returns the Terraform provider repository, version, and documentation path. It reads the Crossplane provider Makefile and the generated controller mapping instead of inferring the Terraform resource name.
crd_name accepts a Kind, group/Kind, group/version/Kind, or a YAML fragment containing apiVersion and kind.
Use an OSS GitHub repository name such as crossplane-contrib/provider-upjet-aws or crossplane-contrib/function-go-templating. A small set of historical package aliases is mapped to their known OSS source repositories; unmapped upbound/... names are rejected rather than guessed.
The CRD tools require an explicit provider version. The value latest is also supported and selects the highest stable semantic-version Git tag. Self-hosted deployments need outbound HTTPS access to GITHUB_API_URL and GITHUB_RAW_URL.
Successful remote fetches are cached in memory. Git tag listings use the configurable short FETCH_CACHE_TTL_SECONDS (default: 300 seconds); CRDs, definitions, examples, and Terraform metadata resolved at immutable Git tags are cached for 30 days. FETCH_CACHE_MAX_ENTRIES (default: 512) bounds memory use.
Why this repository exists
Crossplane knowledge is distributed across many repositories and kinds of sources:
Go API types and runtime implementations
CustomResourceDefinitions and OpenAPI schemas
package metadata
tests and executable examples
official Crossplane documentation
community implementations and real-world composition examples
Upjet-based providers add another layer. Their Crossplane managed resources are generated from Terraform provider resources, while the Terraform documentation often contains more details about the underlying cloud APIs and configuration fields.
This repository connects these sources in one versioned catalog without replacing the original documentation.
Knowledge structure
Knowledge is stored as small Markdown documents under catalog/. Each document represents an independently useful concept and includes OKF metadata, provenance in sources, keyed claim footnotes, and relationships to related concepts.
Repository validation pins okf-ingest 0.11.0, which adds OKF v0.2 core support, including generated.at freshness fallback and preservation of the new frontmatter families (upstream support commit).
If the task is to build a Crossplane v2 Composition, start with the Composition developer route. It routes agents through separate API/provider, pipeline/security, and testing/packaging concepts without pretending that provider-specific schemas or credentials are universal.
The catalog is intended to be:
Source-backed: important statements link to source code, schemas, tests, examples, or official documentation.
Version-aware: sources are tied to specific repository revisions.
Navigable: overview documents connect related concepts without requiring readers to know the source repository layout.
Incremental: providers, functions, services, documentation areas, and example repositories can be added in focused batches.
License
This project is licensed under the Apache License 2.0.
catalog/core/usages-and-clusterusages.md
type: concept title: Usage and ClusterUsage deletion protection description: Beta Core APIs that block deletion of used resources and model deletion ordering across supported Kubernetes scopes. resource: https://docs.crossplane.io/v2.3/managed-resources/usages/ tags: [crossplane, core, usage, deletion-protection, beta] generated: { by: "process:okf-v0.2-migration", at: "2026-08-20T06:45:13Z" } sources:
id: official-purposes-and-terminology resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/managed-resources/usages.md#L10-L19' title: 'Official purposes and terminology'
id: beta-maturity-and-feature-flag resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/managed-resources/usages.md#L21-L30' title: 'Beta maturity and feature flag'
id: usage-crd-scope-and-served-version resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/cluster/crds/protection.crossplane.io_usages.yaml#L7-L29' title: 'Usage CRD scope and served version'
id: clusterusage-crd-scope-and-served-version resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/cluster/crds/protection.crossplane.io_clusterusages.yaml#L7-L29' title: 'ClusterUsage CRD scope and served version'
id: usage-endpoint-types-and-validation resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/apis/protection/v1beta1/usage_types.go#L25-L140' title: 'Usage endpoint types and validation'
id: clusterusage-endpoint-schema resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/apis/protection/v1beta1/clusterusage_types.go#L25-L67' title: 'ClusterUsage endpoint schema'
id: reconciled-label-ownership-and-availability resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/internal/controller/protection/usage/reconciler.go#L475-L545' title: 'Reconciled label, ownership, and availability'
id: deletion-webhook-configuration resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/cluster/webhookconfigurations/usage.yaml#L5-L31' title: 'Deletion webhook configuration'
id: deletion-denial-behavior resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/internal/webhook/protection/usage/handler.go#L93-L157' title: 'Deletion denial behavior'
id: cleanup-and-deletion-replay resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/internal/controller/protection/usage/reconciler.go#L359-L429' title: 'Cleanup and deletion replay'
id: replay-guidance resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/managed-resources/usages.md#L186-L220' title: 'Replay guidance'
id: namespaced-and-cross-namespace-relationships resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/managed-resources/usages.md#L242-L271' title: 'Namespaced and cross-namespace relationships'
id: clusterusage-guidance resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/managed-resources/usages.md#L273-L291' title: 'ClusterUsage guidance'
id: open-cross-scope-enhancement-report-7123 resource: 'https://github.com/crossplane/crossplane/issues/7123' title: 'Open cross-scope enhancement report #7123'
id: released-namespace-sensitive-finder resource: 'https://github.com/crossplane/crossplane/blob/09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d/internal/protection/usage/finder.go#L72-L133' title: 'Released namespace-sensitive finder'
id: composition-selector-guidance resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/managed-resources/usages.md#L222-L240' title: 'Composition selector guidance'
id: one-time-selector-resolution resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/managed-resources/usages.md#L148-L159' title: 'One-time selector resolution'
id: pr-6345-scope-discussion resource: 'https://github.com/crossplane/crossplane/pull/6345' title: 'PR #6345 scope discussion'
id: diverged-pr-merge-and-v2-3-3-commits resource: 'https://github.com/crossplane/crossplane/compare/b90c89203554e2a4a0d5af0eecd72846a4b48c6d...09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d' title: 'Diverged PR merge and v2.3.3 commits'
id: function-sequencer-report-114 resource: 'https://github.com/crossplane-contrib/function-sequencer/issues/114' title: 'function-sequencer report #114'
id: open-ga-promotion-tracker-6336 resource: 'https://github.com/crossplane/crossplane/issues/6336' title: 'Open GA promotion tracker #6336'
id: function-sequencer-v0-6-0-usage-generation resource: 'https://github.com/crossplane-contrib/function-sequencer/blob/8ee29b46b7b9491fb307cf6caf339541a8d93422/fn.go#L310-L387' title: 'function-sequencer v0.6.0 Usage generation'
id: function-pipelines-do-not-run-during-xr-deletion resource: 'https://github.com/crossplane/docs/blob/f1315464e35d40d25a28e4c15b6725b0e21adf91/content/v2.3/composition/compositions.md#L143-L148' title: 'Function pipelines do not run during XR deletion' crossplane_release: v2.3.3 documentation_series: v2.3 source_repository: crossplane/crossplane source_commit: 09ffaea39ccaea0f80817e35b5bbd3632b4e7e0d source_paths:
cluster/crds/protection.crossplane.io_usages.yaml
cluster/crds/protection.crossplane.io_clusterusages.yaml
apis/protection/v1beta1/usage_types.go
apis/protection/v1beta1/clusterusage_types.go
internal/controller/protection/usage/reconciler.go
internal/protection/usage/finder.go
internal/webhook/protection/usage/handler.go documentation_repository: crossplane/docs documentation_commit: f1315464e35d40d25a28e4c15b6725b0e21adf91 documentation_paths:
content/v2.3/managed-resources/usages.md
content/v2.3/composition/compositions.md supporting_source_repository: crossplane-contrib/function-sequencer supporting_source_commit: 8ee29b46b7b9491fb307cf6caf339541a8d93422 supporting_source_paths: [fn.go] feature_state: Beta
Overview
Usage and ClusterUsage describe a relationship in which a resource identified by spec.by uses the resource identified by spec.of.
Crossplane blocks deletion of the of resource while the relationship exists. This supports accidental-deletion protection and deletion ordering:
a dependent can be deleted before the resource it needs.[^official-purposes-and-terminology]
The APIs do not schedule creation or wait for the of resource to become ready. Their ordering guarantee is limited to deletion protection.
This differs from function-sequencer creation gating,
which filters unobserved desired successors. When sequencer also generates
deletion relationships, those Usage objects must already exist because
Composition Functions do not run during XR deletion.[^function-pipelines-do-not-run-during-xr-deletion]
Both APIs are Beta, served and stored as protection.crossplane.io/v1beta1. Usages are enabled by default and can be disabled with --enable-usages=false.[^beta-maturity-and-feature-flag][^usage-crd-scope-and-served-version][^clusterusage-crd-scope-and-served-version]
Schema
| Field | Purpose |
|---|---|
spec.of | Required identity of the protected or used resource. |
spec.by | Optional identity of the using or dependent resource. |
spec.reason | Optional human-readable reason for protection when no dependent resource is needed. |
spec.replayDeletion | Replays a previously blocked deletion after the Usage is removed. Defaults to false. |
At least one of spec.by or spec.reason is required. Each present of or by endpoint uses either resourceRef or resourceSelector;
a reference takes precedence if both are supplied. Selector resolution persists the chosen name into the reference and does not continuously retarget the Usage.[^usage-endpoint-types-and-validation][^one-time-selector-resolution]
Behavior
After resolving the endpoints, the controller:
adds
crossplane.io/in-use: "true"to theofresource;adds the
byresource as an owner of the Usage when present;reports the Usage as available and periodically rechecks it.[^reconciled-label-ownership-and-availability]
A fail-closed validating webhook intercepts deletion of labelled resources. It finds matching Usages, records the attempted propagation policy, and denies deletion with HTTP 409 Conflict while at least one Usage remains.[^deletion-webhook-configuration][^deletion-denial-behavior]
When a Usage is deleted, Crossplane removes the in-use label only after the last protecting Usage is gone. With replayDeletion: true, it retries an earlier blocked deletion
using the recorded propagation policy.[^cleanup-and-deletion-replay] Official guidance recommends replay for composed-resource deletion ordering because it avoids waiting for a later deletion retry.[^replay-guidance]
Scope model
Usage is namespaced. ClusterUsage is cluster-scoped.[^usage-crd-scope-and-served-version][^clusterusage-crd-scope-and-served-version]
by endpoint | of endpoint | Model and boundary |
|---|---|---|
| Namespaced | Same namespace | A Usage in that namespace is the normal model. |
| Namespaced | Different namespace | Usage supports an explicit namespace only on of; by must be present and remains in the Usage namespace.[^namespaced-and-cross-namespace-relationships] |
| Cluster-scoped | Cluster-scoped | ClusterUsage is the documented model.[^clusterusage-guidance] |
| Namespaced | Cluster-scoped | The Usage type can express this shape, but released v2.3.3 deletion lookup is silently ineffective; do not rely on it.[^open-cross-scope-enhancement-report-7123][^released-namespace-sensitive-finder] |
| Cluster-scoped | Namespaced | API comments permit the shape, but docs and E2E tests do not establish it as supported; issue #7123 tracks the gap.[^usage-endpoint-types-and-validation][^open-cross-scope-enhancement-report-7123] |
ClusterUsage endpoints have no namespace field. Its finder index always uses an empty namespace, so it matches cluster-scoped deletion requests rather than namespaced objects.[^clusterusage-endpoint-schema][^released-namespace-sensitive-finder]
Composition relationships
In a Composition, selectors may use matchControllerRef to constrain both endpoints to resources controlled by the same composite resource.
When a Composition produces multiple resources of the same kind, labels can disambiguate the selected endpoint.[^composition-selector-guidance]
This concept is distinct from provider-defined ProviderConfigUsage tracking described in
References and ProviderConfig. Usage and ClusterUsage are generic Core deletion-protection APIs for arbitrary Kubernetes resources.
Limitations and project history
Research timestamp: 2026-07-16. Core evidence remains selected at v2.3.3; the function-sequencer cross-reference was researched on this date.
Issue #7123, opened by a human author on 2026-02-06 and still open at the research timestamp, reports the inability to reliably model dependencies between namespaced and cluster-scoped resources. It proposes expanding
ClusterUsage, allowing selected cross-scopeUsagerelationships, or adding an explicit consent mechanism. These are proposals, not released behavior.Issue #7249, opened by a human maintainer and still open at the research timestamp, reports that a namespaced
Usageprotecting a cluster-scopedofresource receives the in-use label but does not block deletion. The released v2.3.3 finder retains the reported namespace-key mismatch.[^released-namespace-sensitive-finder]Issue #6336, opened by a human maintainer and still open at the research timestamp, tracks promotion of the
protection.crossplane.ioUsage APIs to GA. It is an enhancement and roadmap-tracking issue, not evidence that GA promotion is released or committed to a particular release; the selected v2.3.3 APIs remain Beta.[^beta-maturity-and-feature-flag][^usage-crd-scope-and-served-version][^clusterusage-crd-scope-and-served-version][^open-ga-promotion-tracker-6336]function-sequencer issue #114, opened by human author
@jkroepkeon 2026-03-09, updated 2026-03-10, and still open at the 2026-07-16 research timestamp, reports a downstream manifestation in function-sequencer v0.5.0. A cluster-scoped Composition sequencing a namespaced resource produces aClusterUsagethat cannot encode the resource namespace and remains unready indefinitely.[^function-sequencer-report-114] This report illustrates the Core scope gap but does not independently establish Core behavior.PR #6345 is human-authored historical context for introducing the v2 Usage APIs on the former
v2branch. Its discussion describes mixed-scope cases as intentionally unresolved rather than a supported contract.[^pr-6345-scope-discussion] Its merge commit is not an ancestor of the selected v2.3.3 commit, so current claims rely on the pinned v2.3.3 sources instead.[^diverged-pr-merge-and-v2-3-3-commits]Bot-authored stale notices and other automation activity were excluded from project-history evidence.
The in-use label alone is therefore not proof that mixed-scope deletion protection works. For v2.3.3, use Usage for documented namespaced relationships and ClusterUsage when both endpoints are cluster-scoped.
Composition Functions that generate Usage resources need an additional scope
guard. In function-sequencer v0.6.0, usageVersion: v2 chooses ClusterUsage
when the predecessor (of) has no namespace. Do not enable deletion sequencing
for a cluster-scoped predecessor to a namespaced successor: ClusterUsage has
no namespace fields and Core cannot resolve that mixed-scope relationship.
This is a function-specific authoring rule derived from the selected function
implementation and the Core scope model, not a general claim that every
function generates Usage resources.[^function-sequencer-v0-6-0-usage-generation]
[^official-purposes-and-terminology]: Official purposes and terminology [^beta-maturity-and-feature-flag]: Beta maturity and feature flag [^usage-crd-scope-and-served-version]: Usage CRD scope and served version [^clusterusage-crd-scope-and-served-version]: ClusterUsage CRD scope and served version [^usage-endpoint-types-and-validation]: Usage endpoint types and validation [^clusterusage-endpoint-schema]: ClusterUsage endpoint schema [^reconciled-label-ownership-and-availability]: Reconciled label, ownership, and availability [^deletion-webhook-configuration]: Deletion webhook configuration [^deletion-denial-behavior]: Deletion denial behavior [^cleanup-and-deletion-replay]: Cleanup and deletion replay [^replay-guidance]: Replay guidance [^namespaced-and-cross-namespace-relationships]: Namespaced and cross-namespace relationships [^clusterusage-guidance]: ClusterUsage guidance [^open-cross-scope-enhancement-report-7123]: Open cross-scope enhancement report #7123 [^released-namespace-sensitive-finder]: Released namespace-sensitive finder [^composition-selector-guidance]: Composition selector guidance [^one-time-selector-resolution]: One-time selector resolution [^pr-6345-scope-discussion]: PR #6345 scope discussion [^diverged-pr-merge-and-v2-3-3-commits]: Diverged PR merge and v2.3.3 commits [^function-sequencer-report-114]: function-sequencer report #114 [^open-ga-promotion-tracker-6336]: Open GA promotion tracker #6336 [^function-sequencer-v0-6-0-usage-generation]: function-sequencer v0.6.0 Usage generation [^function-pipelines-do-not-run-during-xr-deletion]: Function pipelines do not run during XR deletion
242 files
- .agents/agents/okf-crossplane-cli-update-researcher/AGENT.md
- .agents/agents/okf-crossplane-core-code-researcher/AGENT.md
- .agents/agents/okf-crossplane-core-design-researcher/AGENT.md
- .agents/agents/okf-crossplane-core-docs-researcher/AGENT.md
- .agents/agents/okf-crossplane-core-update-researcher/AGENT.md
- .agents/agents/okf-crossplane-docs-update-researcher/AGENT.md
- .agents/agents/okf-crossplane-researcher/AGENT.md
- .agents/agents/okf-crossplane-runtime-update-researcher/AGENT.md
- .agents/agents/okf-function-auto-ready-researcher/AGENT.md
- .agents/agents/okf-function-environment-configs-researcher/AGENT.md
- .agents/agents/okf-function-go-templating-project-history-researcher/AGENT.md
- .agents/agents/okf-function-go-templating-researcher/AGENT.md
- .agents/agents/okf-function-go-templating-sprig-researcher/AGENT.md
- .agents/agents/okf-function-go-templating-update-researcher/AGENT.md
- .agents/agents/okf-function-kro-kro-researcher/AGENT.md
- .agents/agents/okf-function-kro-researcher/AGENT.md
- .agents/agents/okf-function-sdk-go-researcher/AGENT.md
- .agents/agents/okf-function-sequencer-researcher/AGENT.md
- .agents/agents/okf-function-sequencer-update-researcher/AGENT.md
- .agents/agents/okf-function-tag-manager-researcher/AGENT.md
- .agents/agents/okf-reviewer/AGENT.md
- .agents/agents/okf-source-scout/AGENT.md
- .agents/agents/okf-upjet-researcher/AGENT.md
- .agents/agents/okf-xprin-update-researcher/AGENT.md
- .agents/skills/okf-open-knowledge-format/SKILL.md
- .agents/skills/okf-open-knowledge-format/references/conversion.md
- .agents/skills/okf-open-knowledge-format/references/examples.md
- .agents/skills/okf-open-knowledge-format/references/spec-v02.md
- .agents/skills/okf-open-knowledge-format/scripts/validate.sh
- .agents/skills/okf-updates/SKILL.md
- .agents/skills/okf-updates/agents/openai.yaml
- .agents/skills/okf/SKILL.md
- .agents/skills/okf/agents/openai.yaml
- .agents/skills/okf/references/evidence-contract.md
- .agents/skills/okf/references/okf-profile.md
- .agents/skills/okf/references/okf-spec.md
- .agents/skills/okf/references/sources.yaml
- .codespellrc
- .codex-plugin/plugin.json
- .codex/agents/okf-crossplane-cli-update-researcher.toml
- .codex/agents/okf-crossplane-core-code-researcher.toml
- .codex/agents/okf-crossplane-core-design-researcher.toml
- .codex/agents/okf-crossplane-core-docs-researcher.toml
- .codex/agents/okf-crossplane-core-update-researcher.toml
- .codex/agents/okf-crossplane-docs-update-researcher.toml
- .codex/agents/okf-crossplane-researcher.toml
- .codex/agents/okf-crossplane-runtime-update-researcher.toml
- .codex/agents/okf-function-auto-ready-researcher.toml
- .codex/agents/okf-function-environment-configs-researcher.toml
- .codex/agents/okf-function-go-templating-project-history-researcher.toml
- .codex/agents/okf-function-go-templating-researcher.toml
- .codex/agents/okf-function-go-templating-sprig-researcher.toml
- .codex/agents/okf-function-go-templating-update-researcher.toml
- .codex/agents/okf-function-kro-kro-researcher.toml
- .codex/agents/okf-function-kro-researcher.toml
- .codex/agents/okf-function-sdk-go-researcher.toml
- .codex/agents/okf-function-sequencer-researcher.toml
- .codex/agents/okf-function-sequencer-update-researcher.toml
- .codex/agents/okf-function-tag-manager-researcher.toml
- .codex/agents/okf-reviewer.toml
- .codex/agents/okf-source-scout.toml
- .codex/agents/okf-upjet-researcher.toml
- .codex/agents/okf-xprin-update-researcher.toml
- .codex/config.toml
- .dockerignore
- .editorconfig
- .github/workflows/ci.yaml
- .github/zizmor.yml
- .gitignore
- .mcp.json
- .okf/claim-ledger.md
- .okf/sources.lock.yaml
- .pi/agents/okf-crossplane-cli-update-researcher.md
- .pi/agents/okf-crossplane-core-code-researcher.md
- .pi/agents/okf-crossplane-core-design-researcher.md
- .pi/agents/okf-crossplane-core-docs-researcher.md
- .pi/agents/okf-crossplane-core-update-researcher.md
- .pi/agents/okf-crossplane-docs-update-researcher.md
- .pi/agents/okf-crossplane-researcher.md
- .pi/agents/okf-crossplane-runtime-update-researcher.md
- .pi/agents/okf-function-auto-ready-researcher.md
- .pi/agents/okf-function-environment-configs-researcher.md
- .pi/agents/okf-function-go-templating-project-history-researcher.md
- .pi/agents/okf-function-go-templating-researcher.md
- .pi/agents/okf-function-go-templating-sprig-researcher.md
- .pi/agents/okf-function-go-templating-update-researcher.md
- .pi/agents/okf-function-kro-kro-researcher.md
- .pi/agents/okf-function-kro-researcher.md
- .pi/agents/okf-function-sdk-go-researcher.md
- .pi/agents/okf-function-sequencer-researcher.md
- .pi/agents/okf-function-sequencer-update-researcher.md
- .pi/agents/okf-function-tag-manager-researcher.md
- .pi/agents/okf-reviewer.md
- .pi/agents/okf-source-scout.md
- .pi/agents/okf-upjet-researcher.md
- .pi/agents/okf-xprin-update-researcher.md
- .pi/prompts/okf-updates.md
- .pi/prompts/okf.md
- .pi/settings.json
- .plugin/plugin.json
- AGENTS.md
- ATTRIBUTION.md
- Dockerfile
- LICENSE
- README.md
- catalog/cli/control-plane-projects.md
- catalog/cli/generated-go-model-accessors.md
- catalog/cli/generated-go-runtime-objects.md
- catalog/cli/index.md
- catalog/cli/local-composition-rendering.md
- catalog/cli/xrd-convert.md
- catalog/composition-api-and-provider-contracts.md
- catalog/composition-developer-starter.md
- catalog/composition-pipeline-and-security.md
- catalog/composition-testing-and-packaging.md
- catalog/core/composed-resource-identity-and-replacement.md
- catalog/core/composed-resource-rbac.md
- catalog/core/composite-resource-definition.md
- catalog/core/composite-resource-model.md
- catalog/core/composition-gitops-health.md
- catalog/core/composition-project-layout.md
- catalog/core/composition.md
- catalog/core/configurations/configuration.md
- catalog/core/configurations/dependencies-and-authoring.md
- catalog/core/configurations/index.md
- catalog/core/configurations/package.md
- catalog/core/configurations/revision.md
- catalog/core/controlled-rollout-of-composition-functions-design.md
- catalog/core/cross-namespace-synchronization-patterns.md
- catalog/core/environment-config.md
- catalog/core/index.md
- catalog/core/managed-resource-activation-policy.md
- catalog/core/managed-resource-anatomy.md
- catalog/core/managed-resource-controls-and-conditions.md
- catalog/core/managed-resource-definition.md
- catalog/core/managed-resource-external-identity.md
- catalog/core/managed-resource-lifecycle.md
- catalog/core/managed-resource-management-policies-project-history.md
- catalog/core/managed-resource-management-policies.md
- catalog/core/managed-resource-references-and-provider-config.md
- catalog/core/managed-resources.md
- catalog/core/minimal-managed-resource-activation.md
- catalog/core/namespaced-composition-boundaries.md
- catalog/core/native-composition-environment-removal.md
- catalog/core/pushsecret-external-store-pattern.md
- catalog/core/realtime-composition-project-history.md
- catalog/core/realtime-composition-reconciliation.md
- catalog/core/tenant-xr-api-security.md
- catalog/core/usages-and-clusterusages.md
- catalog/core/xrd-api-version-evolution.md
- catalog/core/xrd-cel-validation.md
- catalog/core/xrd-openapi-schema.md
- catalog/core/xrd-subresources-and-display.md
- catalog/core/xrd-unknown-data.md
- catalog/functions/composition-function-specification.md
- catalog/functions/composition-functions.md
- catalog/functions/environment-config-pipeline.md
- catalog/functions/function-auto-ready/built-in-health-checks.md
- catalog/functions/function-auto-ready/cel-health-checks.md
- catalog/functions/function-auto-ready/index.md
- catalog/functions/function-auto-ready/input.md
- catalog/functions/function-auto-ready/package.md
- catalog/functions/function-auto-ready/readiness.md
- catalog/functions/function-environment-configs/index.md
- catalog/functions/function-environment-configs/input.md
- catalog/functions/function-environment-configs/package.md
- catalog/functions/function-environment-configs/selection-and-merge.md
- catalog/functions/function-go-templating/connection-details.md
- catalog/functions/function-go-templating/context.md
- catalog/functions/function-go-templating/environment-source.md
- catalog/functions/function-go-templating/extra-resources.md
- catalog/functions/function-go-templating/index.md
- catalog/functions/function-go-templating/input.md
- catalog/functions/function-go-templating/package.md
- catalog/functions/function-go-templating/patterns/index.md
- catalog/functions/function-go-templating/patterns/manual-readiness.md
- catalog/functions/function-go-templating/patterns/non-composed-resource-readiness.md
- catalog/functions/function-go-templating/patterns/provider-backed-external-query.md
- catalog/functions/function-go-templating/patterns/provider-kubernetes-object-readiness.md
- catalog/functions/function-go-templating/patterns/safe-status-and-connection-publication.md
- catalog/functions/function-go-templating/patterns/sveltos-clustersummary-readiness.md
- catalog/functions/function-go-templating/patterns/yaml-document-boundaries.md
- catalog/functions/function-go-templating/project-history.md
- catalog/functions/function-go-templating/rendered-output.md
- catalog/functions/function-go-templating/request-data.md
- catalog/functions/function-go-templating/response-ttl.md
- catalog/functions/function-go-templating/runtime-options.md
- catalog/functions/function-go-templating/sprig.md
- catalog/functions/function-go-templating/template-functions.md
- catalog/functions/function-kro/graph-evaluation.md
- catalog/functions/function-kro/index.md
- catalog/functions/function-kro/input.md
- catalog/functions/function-kro/package.md
- catalog/functions/function-sequencer/index.md
- catalog/functions/function-sequencer/input.md
- catalog/functions/function-sequencer/sequencing.md
- catalog/functions/index.md
- catalog/functions/operation-functions.md
- catalog/functions/overview.md
- catalog/functions/package.md
- catalog/functions/scheduled-and-watched-operations.md
- catalog/index.md
- catalog/log.md
- catalog/providers/crd-schema-discovery.md
- catalog/providers/index.md
- catalog/providers/provider-connection-details-source-retrieval.md
- catalog/providers/provider-families.md
- catalog/providers/provider-landscape.md
- catalog/providers/provider-package-revisions.md
- catalog/providers/upjet-terraform-provenance.md
- catalog/sdk/crd-cache-schema-stripping.md
- catalog/sdk/index.md
- catalog/sdk/provider-development/generate-test-package.md
- catalog/sdk/provider-development/index.md
- catalog/sdk/provider-development/managed-reconciler.md
- catalog/sdk/provider-development/managed-resource-apis.md
- catalog/sdk/provider-development/provider-configuration.md
- catalog/sdk/provider-development/start-here.md
- catalog/tools/index.md
- catalog/tools/xprin-crossplane-cli-tiers.md
- catalog/tools/xprin-crossplane-version.md
- catalog/tools/xprin-function-container-reuse.md
- catalog/tools/xprin-test-artifacts-export.md
- catalog/tools/xprin-test-suites.md
- catalog/tools/xprin-update-goldens.md
- compose.yaml
- mcp/README.md
- mcp/entrypoint.sh
- mcp/fetch_cache.py
- mcp/git_source.py
- mcp/github_source.py
- mcp/provider_crd_tools.py
- mcp/pyproject.toml
- mcp/server.py
- mcp/tests/test_git_source.py
- mcp/tests/test_github_source.py
- mcp/tests/test_provider_crd_tools.py
- mcp/uv.lock
- mise.toml
- renovate.json
- skills-lock.json
- skills/crossplane-v2-okf/SKILL.md
Advantages
- Provides version-aware knowledge by linking facts to specific repository revisions. evidence: README.md
- Connects distributed sources like Go APIs, CRDs, and documentation into a single navigable catalog. evidence: README.md
Limitations
- The public MCP server is provided as an early-access service and is not intended for production use without self-hosting. evidence: README.md
- Requires explicit provider versions for CRD tools, as it does not guess or infer versions automatically. evidence: README.md
Security
Risk level: Low risk
This brain runs
Agent instructions that run or fetch something (26)
.agents/agents/okf-function-go-templating-researcher/AGENT.md:Write for Crossplane users who want to install and use `function-go-templating` in Compositions..agents/agents/okf-reviewer/AGENT.md:`mise run lint` succeeds after the final fixes and before the root or parent agent creates a commit..agents/agents/okf-reviewer/AGENT.md:Run `mise run lint` as the final validation command..agents/skills/okf-open-knowledge-format/SKILL.md:If the user agrees to install:.agents/skills/okf-open-knowledge-format/SKILL.md:uv tool install okflint.agents/skills/okf-open-knowledge-format/SKILL.md:pip install okflint.agents/skills/okf-open-knowledge-format/SKILL.md:kcmd push --dry-run.agents/skills/okf-updates/SKILL.md:Run this workflow only after the user explicitly invokes `$okf-updates`, `/skill:okf-updates`, or `/okf-updates`..agents/skills/okf-updates/SKILL.md:Run at most three direct researchers at once..agents/skills/okf-updates/SKILL.md:A requester reply that selects one or more candidate IDs from this explicitly invoked workflow is explicit permission to run the normal OKF update logic for those candidates..agents/skills/okf-updates/SKILL.md:Run deterministic validation, `okf-reviewer`, and `mise run lint`..agents/skills/okf/SKILL.md:Run this workflow only after the user explicitly invokes `$okf`, `/skill:okf`, or `/okf`..agents/skills/okf/SKILL.md:After all review fixes, run `mise run lint`..agents/skills/okf/SKILL.md:Commit every intended file only after reviewer approval and a successful lint run..agents/skills/okf/SKILL.md:Run the Core docs and Core code researchers together when a concept needs both user-facing guidance and exact served API shape..agents/skills/okf/SKILL.md:Run independent read-heavy research in parallel, with at most three direct agents..agents/skills/okf/SKILL.md:After all fixes, run `mise run lint` and fix every reported issue..agents/skills/okf/SKILL.md:The reviewer may return `APPROVED` only after the final lint run succeeds..agents/skills/okf/SKILL.md:Non-thinking coding models such as Qwen3-Coder-Next can run every project agent without incompatible reasoning controls..agents/skills/okf/SKILL.md:deterministic validation and `mise run lint` resultsAGENTS.md:Run the normal workflow only when the user explicitly invokes `$okf`, `/skill:okf`, or `/okf`, or selects a feature candidate returned by an explicitly invoked `$okf-updates`, `/skill:okf-updates`, or `/okf-updates` workflow.AGENTS.md:Run update discovery only when the user explicitly invokes `$okf-updates`, `/skill:okf-updates`, or `/okf-updates`.AGENTS.md:Run deterministic validation and the `okf-reviewer` before committing the changes.AGENTS.md:After the final review fixes, run `mise run lint` before creating any commit.AGENTS.md:After reviewer approval and a successful lint run, commit every intended change.AGENTS.md:Create commits with a Developer Certificate of Origin sign-off by default by using `git commit --signoff` (or `git commit -s`).
MCP servers (1)
.mcp.json(crossplane-v2-okf):https://crossplane.mcp.jkroepke.de/mcp· uses the network
- Low risk: network-instructions (.agents/skills/okf-open-knowledge-format/SKILL.md:214)
Attribution and licence
- First committed by
jkroepke
- Publisher
- Jan-Otto Kröpke (Community)
- Source
- jkroepke/okf-crossplane-v2 · commit df24ac2
- Licence
- Apache License 2.0 (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- jkroepke
AutoGineer is not affiliated with or endorsed by jkroepke.
Download
The ZIP holds the files AutoGineer serves, with ATTRIBUTION.md and the licence. Download okf-crossplane-v2.zip