Create PCD Skill
create_pcd_skillCreate a reusable working method when the user wants a procedure preserved for future use. Use update_pcd_skill to revise an existing method.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Skill name — lowercase, underscores/hyphens, max 48 chars. Unique per deck; if shared, unique across the container. | |
| action | No | Default 'write'. 'validate': pre-send check — name format/cap (48), description shape, signal_emission — WITHOUT writing; returns { valid, missing_required[], over_cap: [{field, len, cap}], not_checked? }. Uniqueness and deck resolution still run at write time. | |
| shared | No | If true, skill is visible to vertical neighbours at boot. Container-context shared → specialized-contexts inherit. Specialized-context shared → container-context inherits. Default false. | |
| contract | No | Help mode — return the complete contract with no operation performed. | |
| deck_handle | Yes | Handle of the deck this skill belongs to — must be a container-context or specialized-context deck | |
| description | Yes | Structured metadata for indexing and LLM dispatch | |
| container_id | Yes | Container ID | |
| raw_markdown | No | Full instruction body the LLM reads when the skill is invoked. May reference declared resources via {{ref:Name}} syntax. Omit to create a stub. | |
| signal_emission | No | Optional. Declares the signal this skill emits. The client AI fires write_signal at the declared point — run_pcd_skill surfaces it as an explicit emit_contract; the worker never auto-fires. |