Skip to main content

cortexfs-extension-development

This skill should be used when the user asks to "build a CortexFS tool", "create a CortexFS agent", "package a CortexFS extension", "write a cortexfs.object/v1 or cortexfs.object/v2 manifest", "install an external tool", or "install an external agent".

ソース情報

リポジトリ
LIghtJUNction/cortexfs
ソースの最終更新活動
2026年8月22日 05:55
検出された SKILL.md の言語
英語
スター
4
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
3 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
cortexfs-extension-development
description
This skill should be used when the user asks to "build a CortexFS tool", "create a CortexFS agent", "package a CortexFS extension", "write a cortexfs.object/v1 or cortexfs.object/v2 manifest", "install an external tool", or "install an external agent".
# CortexFS Extension Development Build executable Tool SDK and Agent SDK extensions without adding a root ABI, provider special case, watcher, queue, or alternate orchestration path. ## Workflow 1. Read `docs/architecture.md`, `docs/naming-guide.md`, and the relevant files under `docs/spec/` before changing an ABI surface. 2. Use CodeGraph before text search when `.codegraph/` exists. 3. Reuse the Rust SDK matching the object class: `cortexfs-tool-sdk` for tools and `cortexfs-agent-sdk` for agents. 4. Implement one executable per object. Tools accept argv or stdin; agents accept only the hosted typed invocation envelope. Emit canonical JSONL. The Agent SDK entrypoint performs the runtime startup capability ping; do not bypass it. Keep model-provider formats outside the extension contract. Treat `CTX_SOURCE` only as a candidate path: runtime receipt dev/inode/type is authoritative for durable writes. Every Agent SDK extension must set the required agent control `abi` to `sdk-envelope-v1`. Follow the normative [Agent Runtime envelope](../../../docs/spec/agent-runtime.md) rather than duplicating its schema in extension documentation. 5. Create a strict `cortexfs.object/v2` manifest with an object SemVer and a Cargo-style CortexFS SemVer requirement. Use `cortexfs.object/v1` only for an intentionally legacy manifest, and then omit `version` and `compatibility` completely. Read `references/manifest.md` before choosing controls, compatibility, or an install tier. 6. Build the executable, calculate its SHA-256, and place the exact digest in the object manifest. For a distributed `cortexfs.package/v1` bundle, also place the exact lowercase digest in every tool and agent `sha256` field. Do not put commands, arguments, wrappers, secrets, or policy grants for unrelated objects in the manifest. 7. Validate source and manifest changes without installing first. Run `ctx object check MANIFEST` for each rendered manifest; it requires no source tree and performs no backing-tree writes. A v2 manifest incompatible with the compiled CortexFS version is invalid and exits 2. For a local source `cortexfs.package/v1` bundle, run `ctx install --check PACKAGE`. For a distributed/prebuilt bundle, run `ctx install --check --require-hashes PACKAGE`; declared digests are always checked and this flag also rejects missing digests. Both modes render and check every object without writing a backing tree. Follow `references/testing.md` for the staged test ladder. 8. Perform installation only after an explicit mutation request. Invoke `ctx object install --source PATH MANIFEST --tier user|system`, where PATH is the durable backing tree. Never use `/ctx`, `CTX_ROOT`, or `--root` as the writable target, and never copy directly into a live object directory. 9. For an existing receipt-managed object, validate a v2 candidate and dry-run `ctx object replace|upgrade|rollback --source PATH MANIFEST --tier user|system`. Apply only after an explicit mutation request by adding `--yes`. Use `replace` for v1 migration or unordered replacement, `upgrade` only for a higher v2 version, and `rollback` only for a lower caller-supplied v2 manifest and artifact. 10. Verify discovery, metadata, policy denial, authorized execution, JSONL ordering, and durable agent behavior through the installed path. ## Boundaries - Keep `/ctx/status`, `/ctx/bin`, `/ctx/model`, `/ctx/agent`, `/ctx/tool`, `/ctx/home`, and `/ctx/shared` as the only root classes. - Treat installation as new-object-only and replacement as a separate explicit lifecycle. Candidates are always v2. Replacement may migrate a receipt-managed v1 or v2 object; upgrade and rollback require current v2 and strict higher/lower ordering. CortexFS stores no version history, so rollback requires the caller's old manifest and artifact. - Treat the executable publication as the object commit boundary. Do not fabricate runtime-owned `status`, `pid`, `log`, or socket state. - Keep tool installation separate from authorization. Installing a tool must not edit an agent policy. - Treat v2 compatibility as install-admission metadata, not authority. It does not grant policy access or start a runtime, and a later mismatch must not prevent receipt-managed uninstall. - Treat replacement as dry-run unless `--yes` is explicit. It uses a same-filesystem stage, hides the old executable first, and publishes the new executable last. It is not pair-atomic and may retain safety residue on a conflict; it must not intentionally replace a foreign inode at receipt checkpoints. - Quiesce the matching runtime and same-authority writers before applied replacement. The lifecycle command does not stop/start a runtime, grant policy, create sockets, or retain a version archive. - Install user tools under `/ctx/home/<effective-uid>/tool` and system tools under `/ctx/tool`. Install agents under `/ctx/agent`; although the root ABI defines `/ctx/home/<effective-uid>/agent`, neither manifest schema carries tier identity to the root socket runtime, so the installer rejects user-tier agents. - Use Git commits or process restarts as development refresh boundaries. Do not add polling, watchers, or hot reload. - Preserve executable plugins as the supported extension path. Do not claim the Tool SDK `DynamicTool` loader or native resident cache is wired into the core runtime until a core consumer and end-to-end proof exist. - Treat package hashes as descriptor-to-payload integrity, not publisher or registry authentication. `cortexfs.package/v1` has no signature field; use an authenticated trusted channel to acquire its descriptor and digests. ## Canonical Example Use `examples/extensions/echo/` as the canonical paired extension. It contains one Tool SDK executable, one Agent SDK executable, strict manifest templates, and an explicitly opted-in installer that installs the tool before the agent. Link to this example instead of copying it into skill resources. ## References - `references/manifest.md` — manifest schema, controls, tiers, and security. - `references/testing.md` — read-only validation and opt-in live acceptance.
GitHubで見る