一键导入
single-turn-process-carton-edit-desc
WHAT: Precision editing of CartON concept descriptions WHEN: When you need to update a concept description with surgical edits
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
WHAT: Precision editing of CartON concept descriptions WHEN: When you need to update a concept description with surgical edits
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
WHAT: the development-flow for the split-content capability — separating a concept whose description (n.d) holds raw CONTENT (a data dump / pasted document) from a real DESCRIPTION, by splitting the raw content into its own `{concept_name}_Desc_Content` node. Covers `carton_split_content.py` (both `build_split_spec`, the pure spec function, and `split_content_concept`, the thin neo4j-writing wrapper — self-contained, ONE module, per the one-capability-one-module law), the `Desc_Content` universal type, the `has_desc_content` relationship, and the `split_content_concept` MCP tool. WHEN: when editing `carton_split_content.py`, `split_content_concept`, the `Desc_Content` type, or the `has_desc_content` relationship; or adding a new capability that also needs the content-vs-description split (any of).
WHAT: the dev-flow for the OPTIONAL domain/subdomain/personal_domain/produces params on add_concept_tool_func — the internal chokepoint function every CartON concept-creation caller (Dragonbones, sm_gate.py, split_content_concept, the migration scripts) passes through, whether or not they use the add_concept MCP tool. WHEN: when editing add_concept_tool_func's domain/subdomain/personal_domain/produces params, merge_optional_domain_fields, or PERSONAL_DOMAINS in add_concept_tool.py (any of).
WHAT: the development-flow for changing the CartON KV / CartonObj capability — the embedded-structured-KV-in-concept-descriptions feature (a <CartonObj name=..>{ JSON-with-bare-refs }</CartonObj> fence in n.d): the carton_kv parser/normalizer, edit_carton_obj (surgical single-leaf body edits + remove_fence), validate_carton_obj (schema + did-you-mean refs), the auto_link_description fence-opacity, fence-preservation (carry_forward_fences), ref-expansion, and the is_schema schema registry. It is the COMPLETE distributed edit-set (lib ↔ utils wrappers ↔ MCP tools ↔ the linker ↔ the daemon's live parse path ↔ the schema graph) + deploy + the only valid E2E test. WHEN: when editing carton_kv.py, the edit_carton_obj / validate_carton_obj / get_concept-expand MCP tools, the auto_link_description fence-opacity masking, the daemon fence/desc-mode parse path (parse_queue_file_to_concepts / batch_create_concepts_neo4j), or the is_schema schema-registry; or adding ANY new CartonObj capability (any of).
WHAT: the dev-flow for editing the WEBBING AGENT — carton's standing CONCEPT-ATOMIZATION daemon, CLONED from the proven Sophia (docmirror-cohere) architecture: CODE detects a batch of under-structured, autolinker-processed, main-agent-authored concepts (linked=true, source in CHAT_SOURCES, webbed IS NULL), serves them to a fresh SDNAC run each tick, the agent ADDS real is_a/part_of/instantiates/produces structure + child concepts, and CODE verifies + marks webbed=true. Covers webbing_agent.py, webbing_agent_worker.py, and the one-line SYSTEM_SOURCES coupling in observation_worker_daemon.py. WHEN: when editing webbing_agent.py, webbing_agent_worker.py, the eligibility predicate (_is_underdeveloped), the batch-goal builder (_build_batch_goal), the WEBBER_SYSTEM_PROMPT, the webbed/source recursion-guard, or CHAT_SOURCES/SYSTEM_SOURCES in observation_worker_daemon.py (any of).
WHAT: just-in-time building of TreeShell nodes from CartON graph relationships — when a jump targets a coordinate not found in any family JSON config, resolve the CartON concept into a cached Menu node whose options come from its HAS_PART relationships. WHEN: when a TreeShell jump target is not found in any loaded family JSON config, you need a node built on the fly from a CartON concept, or working on JIT node resolution for SANCREV game navigation.
WHAT: the CartON MCP — a persistent knowledge graph (Neo4j + ChromaDB) you add concepts to, query, edit, and project. WHEN: persisting knowledge, creating observations/concepts, querying concept networks, semantic search, or editing a concept's description/structured data.
| name | single-turn-process-carton-edit-desc |
| description | WHAT: Precision editing of CartON concept descriptions WHEN: When you need to update a concept description with surgical edits |
Category: single_turn_process
Edit a CartON concept's description (n.d). There are now FOUR desc_update_modes on add_concept:
edit (surgical str-replace, PREFERRED for a targeted change), replace (whole value), append,
prepend. Plus the legacy path whole-rewrite flow. Pick the smallest one that does the job.
desc_update_mode="edit" — surgical in-place str-replace (added 2026-06-17, commit c754f18)A true in-place edit of n.d via heaven_base EditHelper — no temp file, no full re-ingest. The
old_str_for_edit_case substring must match the STORED n.d EXACTLY ONCE; the rest of n.d (including
any <CartonObj> fence) stays byte-identical, and a per-node undo log is written (daily-clearing,
$HEAVEN_DATA_DIR/carton_undo/<date>/). A 0-or->1 match fails GRACEFULLY (n.d unchanged).
mcp__carton__add_concept(
concept_name="Concept_Name",
is_a=[...], part_of=[...], instantiates=[...], # same values the concept already has
desc_update_mode="edit",
old_str_for_edit_case="<exact existing substring of n.d to find>",
concept="<the new text to replace it with>")
desc_update_mode="path" — whole-description rewrite via a fileUse only when you're rewriting the WHOLE description: project to a temp file, Edit it, re-ingest.
mcp__carton__substrate_projector(target="Concept_Name", substrate={"type":"file","path":"/tmp/carton_edit.md"}, description_only=true)
# ...edit /tmp/carton_edit.md...
mcp__carton__add_concept(concept_name="Concept_Name", is_a=[...], part_of=[...], instantiates=[...], concept="/tmp/carton_edit.md", desc_update_mode="path")
If the edit is to a <CartonObj> JSON fence inside the description, use edit_carton_obj (set/remove a
leaf, refs validated, prose + sibling fences preserved) — see the edit-carton-kv skill. Do not
hand-str-replace inside a fence.
CoR: "Now I'll edit the CartON concept's n.d. For a targeted change: desc_update_mode='edit' with old_str_for_edit_case (exact-once). For a fenced KV change: edit_carton_obj (edit-carton-kv). For a whole rewrite: the path flow."