{"id":46396,"plugin_id":"plugin_asdk_app_6a8437fecfec819181eda17dc8faa4c8","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:29:35.535Z","digest":"13cf27f1704ff56664fac32989b0524220e8c62e76552f912613b2ec01222804","against":null,"payload":{"description":"Create, edit, fork, repair, compile, and configure reusable Spera graph modules through the remote Spera MCP server. Use when a user asks Claude Code, Codex, or Cursor to build or modify a Spera module. Requires spera-foundations, exact revisions, repair-in-place, and module ports only after a clean compile; never deploys or operates bots.","included_files":[],"name":"spera-build-module","skill_md_contents":"---\nname: spera-build-module\ndescription: Create, edit, fork, repair, compile, and configure reusable Spera graph modules through the remote Spera MCP server. Use when a user asks Claude Code, Codex, or Cursor to build or modify a Spera module. Requires spera-foundations, exact revisions, repair-in-place, and module ports only after a clean compile; never deploys or operates bots.\n---\n\n# Build a Spera module\n\nRead and follow `spera-foundations` first. A module is complete only after its graph compiles and its\nexact input/output contract is persisted.\n\n## Build or edit\n\n1. Call `spera_context_get` for the exact project and retain `workflowId` plus `stateToken`.\n2. Read the compact node catalog, then batch exact details only for selected node types.\n3. For an edit, resolve and read one exact module ID. If `projectIds` contains multiple projects, pass\n   the intended project to `spera_artifact_get`; use its returned `projectId` and current revision for\n   every mutation. If it is read-only, fork only when the user asked to edit it and continue on the\n   returned owned ID.\n4. Call `spera_module_create` or `spera_module_patch` with the minimum graph operations and a fresh\n   idempotency key. Every `add_node` payload includes `id`, `type`, `category`, and `config`; every\n   `add_edge` payload includes `id`, `source`, `target`, and exact catalog port handles when wiring.\n5. Repair validation or compile diagnostics in place exactly as directed. A validation correction uses\n   the returned state token and a fresh idempotency key; only a byte-identical replay reuses the original\n   key. Never recreate the module or consume retries on a repeated byte-equivalent patch.\n\n## Configure ports and finish\n\n1. Continue only when the graph result is compile-clean and explicitly allows\n   `spera_module_ports_set`.\n2. Send the complete input and output arrays against the exact compiled module revision. Every output\n   must name an existing internal node and exact output handle; every fallback node must exist.\n3. On a stale revision, refresh rather than overwrite. On invalid ports, correct only the named port.\n4. Stop at the terminal result. Retain its complete `artifact.moduleReference` and port arrays as the\n   only supported strategy-embedding contract. `moduleReference` is ready to copy into a module node's\n   `config`; its `moduleVersion` is the semantic/draft version, not the artifact revision or commit ID.\n   Report the owned module ID, module version, final revision, and verified compile receipt.\n\nNever configure ports before a clean compile, infer handles from display names, or attempt bot, Fleet,\ndeployment, trading, backtest, custom-node, Project Knowledge, or documentation operations.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}