You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/docs/specification/component-types.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -203,7 +203,7 @@ ccpkg defines a canonical (tool-neutral) event vocabulary for portable hook defi
203
203
|`pre-compact`| Before context/history compression |
204
204
|`user-prompt-submit`| When user submits a prompt |
205
205
206
-
Not all hosts support all canonical events. The mapping from canonical names to host-native event names is defined in each host's [adoption specification](assistant-adoption.md#hook-event-mappings). Hosts MAY also define additional events beyond the canonical vocabulary; these are documented in the host's adoption spec.
206
+
Not all hosts support all canonical events. The mapping from canonical names to host-native event names is defined in each host's [adoption specification](/assistants/#hook-event-mappings). Hosts MAY also define additional events beyond the canonical vocabulary; these are documented in the host's adoption spec.
Copy file name to clipboardExpand all lines: src/content/docs/specification/install-lifecycle.mdx
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,7 +85,7 @@ sequenceDiagram
85
85
86
86
12.**Generate host plugin manifest.** The installer generates the host's expected plugin manifest inside the install directory from the ccpkg manifest metadata. The manifest path and format are defined in the host's adoption specification. See [Plugin Registration](/specification/install-lifecycle#plugin-registration) for details.
87
87
88
-
13.**Register with host.** The installer registers the package with the host's extension system using the adapter operations defined in the host's [adoption specification](assistant-adoption.md). This ensures the host discovers the package on next session start.
88
+
13.**Register with host.** The installer registers the package with the host's extension system using the adapter operations defined in the host's [adoption specification](/assistants/). This ensures the host discovers the package on next session start.
89
89
90
90
14.**Update lockfile.** The installer writes or updates `ccpkg-lock.json` at the scope root (e.g., `~/.ccpkg/ccpkg-lock.json` for user scope). See [Lockfile Format](/specification/lockfile#lockfile-format).
91
91
@@ -152,21 +152,21 @@ For quick one-off testing without any persistent side effects, developers can us
152
152
153
153
# Host Integration
154
154
155
-
ccpkg integrates with each host's extension or plugin system, leveraging the host's runtime for component registration and namespace isolation. The specific integration mechanism is defined in each host's [adoption specification](assistant-adoption.md).
155
+
ccpkg integrates with each host's extension or plugin system, leveraging the host's runtime for component registration and namespace isolation. The specific integration mechanism is defined in each host's [adoption specification](/assistants/).
156
156
157
157
## Bootstrap
158
158
159
-
On first use, ccpkg registers itself with the host's extension discovery system. The bootstrap process varies by host — some use marketplace registration, others use directory scanning or plugin manifests. The exact mechanism is defined in the host's adoption specification under `plugin_model`.
159
+
On first use, ccpkg registers itself with the host's extension discovery system. The bootstrap process varies by host — some use marketplace registration, others use directory scanning or plugin manifests. The exact mechanism is defined in the host's adoption specification under `extension_model`.
160
160
161
161
## Plugin Registration
162
162
163
163
During installation, the installer performs two host-facing steps as defined by the host's adoption specification:
164
164
165
-
1.**Generate host plugin manifest.** The installer creates the host's expected plugin manifest inside the install directory, mapping ccpkg manifest fields (name, version, description, author) to the host's manifest format. The manifest path and format are defined in the host's `plugin_model.manifest_path` field. Package authors SHOULD NOT include host-specific plugin manifests in their archives. If a host-specific manifest is present, the installer MUST use the generated version and MAY warn the author.
165
+
1.**Generate host plugin manifest.** The installer creates the host's expected plugin manifest inside the install directory, mapping ccpkg manifest fields (name, version, description, author) to the host's manifest format. The manifest path and format are defined in the host's `extension_model.manifest.filename` field. Package authors SHOULD NOT include host-specific plugin manifests in their archives. If a host-specific manifest is present, the installer MUST use the generated version and MAY warn the author.
166
166
167
-
2.**Register with host.** The installer registers the package with the host's extension system as described in the host's `adapter_interface` operations. This ensures the host recognizes the package on the next session start.
167
+
2.**Register with host.** The installer registers the package with the host's extension system as described in the host's `extension_model.registration` mechanism. This ensures the host recognizes the package on the next session start.
168
168
169
-
These two steps — generating a plugin manifest and registering with the host — are the complete integration surface. The specific files and settings keys are defined in each host's [adoption specification](assistant-adoption.md).
169
+
These two steps — generating a plugin manifest and registering with the host — are the complete integration surface. The specific files and settings keys are defined in each host's [adoption specification](/assistants/).
170
170
171
171
## Namespacing
172
172
@@ -178,7 +178,7 @@ For example, a package named `api-testing` containing `skills/run-suite/` expose
178
178
179
179
## Scope and Settings
180
180
181
-
Each installation scope maps to a different host settings location. The specific paths vary by host and are defined in the host's [adoption specification](assistant-adoption.md) under `configuration.settings_paths`.
181
+
Each installation scope maps to a different host settings location. The specific paths vary by host and are defined in the host's [adoption specification](/assistants/) under `configuration.settings_paths`.
Copy file name to clipboardExpand all lines: src/content/docs/specification/manifest.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -126,7 +126,7 @@ The `compatibility` object declares version constraints for host tools. Each key
126
126
}
127
127
```
128
128
129
-
Keys are host identifiers as defined in individual [adoption specifications](assistant-adoption.md). Installers SHOULD warn the user if the host does not satisfy the declared compatibility constraint. Installers MUST NOT refuse installation solely based on an unrecognized tool identifier.
129
+
Keys are host identifiers as defined in individual [adoption specifications](/assistants/). Installers SHOULD warn the user if the host does not satisfy the declared compatibility constraint. Installers MUST NOT refuse installation solely based on an unrecognized tool identifier.
130
130
131
131
## Targets Object
132
132
@@ -156,7 +156,7 @@ The following standard fields are defined. Tool-specific adapters MAY define add
156
156
}
157
157
```
158
158
159
-
Each key is a host identifier matching an [adoption specification](assistant-adoption.md). The `hook_events` mapping translates canonical event names to host-native event names; the `instructions_file` declares the filename to which assembled instructions are written. Missing canonical events in a host's `hook_events` mean the host has no equivalent — hooks using those canonical names are silently skipped on that host. See individual adoption specs for the complete event mappings, instruction filenames, and MCP prefixes for each host.
159
+
Each key is a host identifier matching an [adoption specification](/assistants/). The `hook_events` mapping translates canonical event names to host-native event names; the `instructions_file` declares the filename to which assembled instructions are written. Missing canonical events in a host's `hook_events` mean the host has no equivalent — hooks using those canonical names are silently skipped on that host. See individual adoption specs for the complete event mappings, instruction filenames, and MCP prefixes for each host.
Copy file name to clipboardExpand all lines: src/content/docs/specification/overview.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ description: "Introduction to the ccpkg specification, design principles, and ar
5
5
6
6
# ccpkg Specification
7
7
8
-
**Specification Version: 2026-02-14 (Draft)**
8
+
**Specification Version: 2026-02-22 (Draft)**
9
9
10
10
## Status
11
11
@@ -115,6 +115,6 @@ stateDiagram-v2
115
115
116
116
The ccpkg specification is structured as a layered system. This core specification defines the universal packaging format — archive structure, manifest schema, component types, install lifecycle, and security model. It is intentionally tool-agnostic: no host-specific filenames, settings paths, or plugin registration mechanisms appear in the core spec.
117
117
118
-
Host-specific integration details are captured in **assistant adoption specifications**, one per AI coding assistant. Each adoption spec declares how ccpkg maps to a particular host's conventions: instruction filenames, hook event names, plugin registration steps, settings paths, and component support levels. Adoption specs are machine-validated against the [Assistant Adoption Specification Schema](schemas/assistant-adoption.schema.json) and published alongside this specification in the `spec/assistants/` directory.
118
+
Host-specific integration details are captured in **assistant adoption specifications**, one per AI coding assistant. Each adoption spec declares how ccpkg maps to a particular host's conventions: instruction filenames, hook event names, plugin registration steps, settings paths, and component support levels. Adoption specs are machine-validated against the [Assistant Adoption Specification Schema](https://github.com/zircote/ccpkg/blob/main/spec/schemas/assistant-adoption.schema.json) and published alongside this specification in the `spec/assistants/` directory.
119
119
120
-
The [Assistant Adoption Specification](assistant-adoption.md) defines the normative contract for what an adoption spec MUST contain. Installers use adoption specs at install time to perform host-specific adapter operations (generating plugin manifests, registering with the host, translating hook events). Package authors consult adoption specs to understand which components each host supports and how to structure portable packages.
120
+
The [Assistant Adoption Specification](/assistants/) defines the normative contract for what an adoption spec MUST contain. Installers use adoption specs at install time to perform host-specific adapter operations (generating plugin manifests, registering with the host, translating hook events). Package authors consult adoption specs to understand which components each host supports and how to structure portable packages.
Copy file name to clipboardExpand all lines: src/content/docs/specification/portability.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ The following components are tool-agnostic and work across any host that support
20
20
21
21
## Component Portability Matrix
22
22
23
-
The portability status of each component type is documented in each host's [adoption specification](assistant-adoption.md) under `component_support`. Consult the relevant adoption spec to determine which components a host supports and at what level.
23
+
The portability status of each component type is documented in each host's [adoption specification](/assistants/) under `component_support`. Consult the relevant adoption spec to determine which components a host supports and at what level.
24
24
25
25
**Support levels:**
26
26
-**Native**: Component type is natively supported by the host
@@ -49,7 +49,7 @@ Four mechanisms handle tool-specific differences:
49
49
- Prefer MCP for tool integration over host-specific mechanisms.
50
50
- Use `compatibility` to declare minimum host versions rather than excluding hosts.
51
51
- Use per-component `hosts` scoping for host-specific hooks or agents alongside universal skills.
52
-
- Use canonical event names for hook portability. Consult each host's [adoption specification](assistant-adoption.md) for supported events.
52
+
- Use canonical event names for hook portability. Consult each host's [adoption specification](/assistants/) for supported events.
53
53
- Scope agents to specific hosts via `hosts` — agent formats are not yet portable across hosts.
54
54
- Scope LSP components to hosts that support them. Check each host's `component_support.lsp_servers` in its adoption spec.
55
55
- When a host requires an MCP environment variable prefix, declare it via `targets.{host}.mcp_env_prefix`. See the host's adoption spec for the specific prefix value.
0 commit comments