{"id":"e7f79e8f-ec63-4c2a-9063-65fe90944d17","shortId":"Bv9F7t","kind":"skill","title":"chatcrystal-task-writeback","tagline":"Write reusable ChatCrystal task memories after substantive work completes. Use when implementation or debugging produced a durable fix, pitfall, pattern, or decision worth preserving, and when the environment can either persist it through `write_task_memory` or emit a structured ","description":"# ChatCrystal Task Writeback\n\nUse this skill after meaningful work completes. Let ChatCrystal Core decide whether a memory should be skipped, merged, or created.\n\n## Workflow\n\n1. Trigger only after substantive work completes and the result produced reusable knowledge.\n2. Good candidates include:\n   - a durable fix\n   - a meaningful pitfall\n   - a reusable pattern\n   - an explicit engineering decision\n3. If `write_task_memory` is available and the runtime has a stable run or session key, call it with:\n   - `mode: \"auto\"`\n   - `source_run_key`: the stable run or session key\n   - `task.goal`, `task.task_kind`, `task.project_dir`, `task.cwd`, `task.branch`\n   - `task.source_agent` when known\n   - `memory.summary`: concise and durable, not chatty\n   - `memory.outcome_type`: one of `pitfall`, `fix`, `pattern`, `decision`\n   - `memory.root_cause`, `memory.resolution`, `memory.error_signatures`, `memory.files_touched`, `memory.tags` when relevant\n4. Use `mode: \"manual\"` only for an explicit manual save flow, never as a silent fallback for automatic writeback.\n5. Default to project-scoped knowledge. Only use global scope for clearly cross-project knowledge and only in an explicit manual save flow.\n6. Report the persistence result accurately:\n   - `created`\n   - `merged`\n   - `skipped`\n\n## Example MCP Input\n\nUse this shape when calling `write_task_memory` after a completed task with a stable run key:\n\n```json\n{\n  \"mode\": \"auto\",\n  \"source_run_key\": \"agent-session-or-run-id\",\n  \"scope\": \"project\",\n  \"task\": {\n    \"goal\": \"Fix MCP recall schema validation\",\n    \"task_kind\": \"debug\",\n    \"project_dir\": \"/path/to/project\",\n    \"cwd\": \"/path/to/project\",\n    \"branch\": \"fix/mcp-recall-schema\",\n    \"files_touched\": [\n      \"server/src/services/memory/schemas.ts\",\n      \"server/src/cli/mcp/server.ts\"\n    ],\n    \"error_signatures\": [\n      \"invalid_type\",\n      \"recall_for_task schema mismatch\"\n    ],\n    \"source_agent\": \"codex\"\n  },\n  \"memory\": {\n    \"summary\": \"MCP tool schemas must stay aligned with memory service request shapes; mismatches surface as validation failures before tool execution.\",\n    \"outcome_type\": \"fix\",\n    \"root_cause\": \"The MCP tool input shape diverged from the service schema.\",\n    \"resolution\": \"Reused the shared request shape in the MCP server registration.\",\n    \"files_touched\": [\n      \"server/src/services/memory/schemas.ts\",\n      \"server/src/cli/mcp/server.ts\"\n    ],\n    \"tags\": [\n      \"mcp\",\n      \"memory-loop\",\n      \"schema\"\n    ]\n  }\n}\n```\n\n## Full Mode\n\nFull mode requires ChatCrystal Core plus MCP access to `write_task_memory`.\n\n- Do not reimplement skip or merge logic in the skill.\n- Trust Core to decide whether the memory should be skipped, merged, or created.\n- If the tool reports `skipped`, keep the task result but do not force persistence.\n\n## Degraded Mode\n\nIf ChatCrystal Core or the MCP tool is unavailable, or if no stable run key exists for automatic writeback:\n\n- Do not claim that the memory was saved.\n- Emit a structured memory candidate in the response for later save.\n- Keep the candidate aligned with the `write_task_memory.memory` payload shape so it can be reused later.\n- Do not instruct the runtime to auto-install ChatCrystal Core as part of the skill flow.","tags":["chatcrystal","task","writeback","zengliangyi","agent-skills","ai-memory","ai-tools","claude-code","codex","cursor","electron","knowledge-graph"],"capabilities":["skill","source-zengliangyi","skill-chatcrystal-task-writeback","topic-agent-skills","topic-ai-memory","topic-ai-tools","topic-claude-code","topic-codex","topic-cursor","topic-electron","topic-knowledge-graph","topic-knowledge-management","topic-llm","topic-mcp","topic-mcp-server"],"categories":["ChatCrystal"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/ZengLiangYi/ChatCrystal/chatcrystal-task-writeback","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add ZengLiangYi/ChatCrystal","source_repo":"https://github.com/ZengLiangYi/ChatCrystal","install_from":"skills.sh"}},"qualityScore":"0.458","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 16 github stars · SKILL.md body (3,248 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T19:01:45.593Z","embedding":null,"createdAt":"2026-04-24T07:02:28.179Z","updatedAt":"2026-04-25T19:01:45.593Z","lastSeenAt":"2026-04-25T19:01:45.593Z","tsv":"'/path/to/project':264,266 '1':69 '2':82 '3':99 '4':165 '5':184 '6':209 'access':351 'accur':214 'agent':138,245,283 'agent-session-or-run-id':244 'align':292,436 'auto':120,240,455 'auto-instal':454 'automat':182,412 'avail':105 'branch':267 'call':116,225 'candid':84,426,435 'caus':156,310 'chatcryst':2,7,45,56,347,396,457 'chatcrystal-task-writeback':1 'chatti':146 'claim':416 'clear':196 'codex':284 'complet':13,54,75,231 'concis':142 'core':57,348,367,397,458 'creat':67,215,378 'cross':198 'cross-project':197 'cwd':265 'debug':18,261 'decid':58,369 'decis':26,98,154 'default':185 'degrad':393 'dir':134,263 'diverg':316 'durabl':21,87,144 'either':34 'emit':42,422 'engin':97 'environ':32 'error':273 'exampl':218 'execut':305 'exist':410 'explicit':96,172,205 'failur':302 'fallback':180 'file':269,332 'fix':22,88,152,254,308 'fix/mcp-recall-schema':268 'flow':175,208,464 'forc':391 'full':342,344 'global':193 'goal':253 'good':83 'id':249 'implement':16 'includ':85 'input':220,314 'instal':456 'instruct':450 'invalid':275 'json':238 'keep':384,433 'key':115,123,129,237,243,409 'kind':132,260 'knowledg':81,190,200 'known':140 'later':431,447 'let':55 'logic':362 'loop':340 'manual':168,173,206 'mcp':219,255,287,312,329,337,350,400 'meaning':52,90 'memori':9,40,61,103,228,285,294,339,355,372,419,425 'memory-loop':338 'memory.error':158 'memory.files':160 'memory.outcome':147 'memory.resolution':157 'memory.root':155 'memory.summary':141 'memory.tags':162 'merg':65,216,361,376 'mismatch':281,298 'mode':119,167,239,343,345,394 'must':290 'never':176 'one':149 'outcom':306 'part':460 'pattern':24,94,153 'payload':440 'persist':35,212,392 'pitfal':23,91,151 'plus':349 'preserv':28 'produc':19,79 'project':188,199,251,262 'project-scop':187 'recal':256,277 'registr':331 'reimplement':358 'relev':164 'report':210,382 'request':296,325 'requir':346 'resolut':321 'respons':429 'result':78,213,387 'reus':322,446 'reusabl':6,80,93 'root':309 'run':112,122,126,236,242,248,408 'runtim':108,452 'save':174,207,421,432 'schema':257,280,289,320,341 'scope':189,194,250 'server':330 'server/src/cli/mcp/server.ts':272,335 'server/src/services/memory/schemas.ts':271,334 'servic':295,319 'session':114,128,246 'shape':223,297,315,326,441 'share':324 'signatur':159,274 'silent':179 'skill':50,365,463 'skill-chatcrystal-task-writeback' 'skip':64,217,359,375,383 'sourc':121,241,282 'source-zengliangyi' 'stabl':111,125,235,407 'stay':291 'structur':44,424 'substant':11,73 'summari':286 'surfac':299 'tag':336 'task':3,8,39,46,102,227,232,252,259,279,354,386 'task.branch':136 'task.cwd':135 'task.goal':130 'task.project':133 'task.source':137 'task.task':131 'tool':288,304,313,381,401 'topic-agent-skills' 'topic-ai-memory' 'topic-ai-tools' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-electron' 'topic-knowledge-graph' 'topic-knowledge-management' 'topic-llm' 'topic-mcp' 'topic-mcp-server' 'touch':161,270,333 'trigger':70 'trust':366 'type':148,276,307 'unavail':403 'use':14,48,166,192,221 'valid':258,301 'whether':59,370 'work':12,53,74 'workflow':68 'worth':27 'write':5,38,101,226,353 'write_task_memory.memory':439 'writeback':4,47,183,413","prices":[{"id":"d3d433cd-dc30-4fb3-a750-34c20a7bad5f","listingId":"e7f79e8f-ec63-4c2a-9063-65fe90944d17","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"ZengLiangYi","category":"ChatCrystal","install_from":"skills.sh"},"createdAt":"2026-04-24T07:02:28.179Z"}],"sources":[{"listingId":"e7f79e8f-ec63-4c2a-9063-65fe90944d17","source":"github","sourceId":"ZengLiangYi/ChatCrystal/chatcrystal-task-writeback","sourceUrl":"https://github.com/ZengLiangYi/ChatCrystal/tree/main/skills/chatcrystal-task-writeback","isPrimary":false,"firstSeenAt":"2026-04-24T07:02:28.179Z","lastSeenAt":"2026-04-25T19:01:45.593Z"}],"details":{"listingId":"e7f79e8f-ec63-4c2a-9063-65fe90944d17","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ZengLiangYi","slug":"chatcrystal-task-writeback","github":{"repo":"ZengLiangYi/ChatCrystal","stars":16,"topics":["agent-skills","ai-memory","ai-tools","claude-code","codex","cursor","electron","knowledge-graph","knowledge-management","llm","mcp","mcp-server","ollama","semantic-search"],"license":"mit","html_url":"https://github.com/ZengLiangYi/ChatCrystal","pushed_at":"2026-04-24T06:23:57Z","description":"Crystallize knowledge from AI conversations. Import from Claude Code / Cursor / Codex CLI,   summarize with LLM, search by semantics.","skill_md_sha":"bae218404c7b8774c30624fbd64a5e3c8c857740","skill_md_path":"skills/chatcrystal-task-writeback/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ZengLiangYi/ChatCrystal/tree/main/skills/chatcrystal-task-writeback"},"layout":"multi","source":"github","category":"ChatCrystal","frontmatter":{"name":"chatcrystal-task-writeback","description":"Write reusable ChatCrystal task memories after substantive work completes. Use when implementation or debugging produced a durable fix, pitfall, pattern, or decision worth preserving, and when the environment can either persist it through `write_task_memory` or emit a structured memory candidate for later save."},"skills_sh_url":"https://skills.sh/ZengLiangYi/ChatCrystal/chatcrystal-task-writeback"},"updatedAt":"2026-04-25T19:01:45.593Z"}}