[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CTH4QVT79NFBHPFEG7D4F0":3,"skill-same:01M7CTH4QVT79NFBHPFEG7D4F0":45},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M7CTH4QVT79NFBHPFEG7D4F0","change-dag-lifecycle",null,"Operate an authored Change DAG through dag_start, dag_status, dag_stop, retry, and dag_archive. Use when Nyx starts, monitors, recovers, retries, or archives Change DAG execution.","xiaden\u002FSkyScow","xiaden","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3605480?v=4","01M7CTGKNTD1XNQE710J977HVD","Lucian Hardy","01M7CTGKPVQ3XRNXNRJ3A6E31F",1,"MIT","https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fchange-dag-lifecycle\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: change-dag-lifecycle\ndescription: Operate an authored Change DAG through dag_start, dag_status, dag_stop, retry, and dag_archive. Use when Nyx starts, monitors, recovers, retries, or archives Change DAG execution.\n---\n\n# Change DAG lifecycle\n\nNyx owns lifecycle control. `dag_executor` owns deterministic application. Change-DAG-Author performs one initial semantic `dag_create` and exits; the controller — the deterministic, Nyx-invoked construction-control surface (`dag_construction_state`, `dag_construction_review`, `dag_construction_start`, `dag_semantic_repair_start`) — owns construction motion, serialized Worker admission, mandatory review, repair routing, and final validation. Change-DAG-Reviewer is optional, bounded, and read-only. This skill operates the existing runtime; it does not define or modify it.\n\n## Start\n\n1. Confirm the DAG is present, schema-valid, and executable through the lifecycle tools.\n2. Call `dag_start(slug, retry?)` for whole-DAG execution only.\n3. If the root is already runtime-satisfied, `dag_start` returns an idempotent `root_satisfied` result instead of launching: no queue entry, execution lock, marker, launch, or checkpoint. `retry=true` never relaunches a satisfied DAG.\n4. Interpret `running` as executor launched and `queued` as waiting for the workspace execution slot.\n5. Unresolved semantic nodes may remain while authoring, but such a DAG is not executable: `dag_start` refuses any non-executable DAG — unresolved semantic state or a deterministic compiler\u002Fcontext conflict — surfacing all admission issues.\n6. `anchor_commit` is provenance, not a commit binding. Live repository drift can produce ordinary terminal failure and recovery.\n\n## Status\n\nPoll `dag_status(slug?)` until the DAG is `root_satisfied` or idle\u002Fnot active. Inspect failed and `in_progress` terminal nodes when execution stops. There is no durable `quiescent` state.\n\n## Stop and recovery\n\n- `dag_stop(slug)` is lifecycle control, not rollback. Satisfied work remains satisfied; a queued DAG may be removed. Nyx owns this operation but does not decide semantic construction or repair content.\n- The runtime handles process termination and interrupted-work reconciliation. Interrupted mechanical work is reconciled; an interrupted `run` becomes failed.\n- A running DAG is immutable. Do not mutate nodes or work while it runs.\n- When execution stops with failed mutable work, route the bounded scope through the controller: exact terminal defects to `change-dag-fixer`, semantic\u002Fgraph defects to `change-dag-semantic-repairer`, and authority issues to escalation. After the stopped DAG is repaired and validated, call `dag_start(slug, retry=true)` to retry the whole DAG.\n- There is no node- or subgraph-execution mode.\n\n## Completion and archive\n\n- When the root becomes satisfied, the executor records inherited starting-worktree evidence, creates the executor-owned local checkpoint, and records it in the Work Log. Nyx does not stage or create this checkpoint manually; it is not publication.\n- Provenance logging is enabled by default and disabled by `SKYSCOW_CHANGE_DAG_MUTATION_LOGGING=0`, `false`, or `off`; append failure after DAG persistence is nonfatal and exposed only as success metadata warning. No agent-facing mutation-log reader is provided.\n- Call `dag_archive(slug, reason)` when retiring a DAG from the pending working set. `reason` is required and non-empty. The bundle separates `DAG.json` (current construction state), optional `DAG_MUTATIONS.jsonl` (construction provenance), `EXECUTION_STATE.json` (execution lifecycle), and `WORK_LOG.jsonl` (execution evidence); archival moves all of them as-is, adds an `ARCHIVE.json` disposition record (`archived_at`, `reason`, `state_at_archive`, `artifacts_moved`), and moves the bundle to `artifacts\u002Fchange-dags\u002Farchived\u002F`. Construction provenance is not merged into the Work Log. Provenance logging is enabled by default and disabled by `SKYSCOW_CHANGE_DAG_MUTATION_LOGGING=0`, `false`, or `off`; append failure after DAG persistence is nonfatal and exposed only as success metadata warning. No agent-facing mutation-log reader is provided.\n- Archival is cleanup, not certification: a DAG may be archived after success, failure, abandonment, supersession, or cancellation. It does not require resolution, executability, root satisfaction, a failure-free state, or QA. Only operational safety applies: stop a running DAG first, and cancel a queued DAG with `dag_stop`. Read the disposition record for the outcome; archive location is not success evidence.\n\n## QA boundary\n\nRoute completed work to independent QA after execution. QA is not a DAG phase or archive gate. A completed DAG is never reopened for QA: use a bounded raw repair for a small defect, or create a new remediation DAG for a substantial or cross-cutting defect.\n","# Change DAG lifecycle\n\nNyx owns lifecycle control. `dag_executor` owns deterministic application. Change-DAG-Author performs one initial semantic `dag_create` and exits; the controller — the deterministic, Nyx-invoked construction-control surface (`dag_construction_state`, `dag_construction_review`, `dag_construction_start`, `dag_semantic_repair_start`) — owns construction motion, serialized Worker admission, mandatory review, repair routing, and final validation. Change-DAG-Reviewer is optional, bounded, and read-only. This skill operates the existing runtime; it does not define or modify it.\n\n## Start\n\n1. Confirm the DAG is present, schema-valid, and executable through the lifecycle tools.\n2. Call `dag_start(slug, retry?)` for whole-DAG execution only.\n3. If the root is already runtime-satisfied, `dag_start` returns an idempotent `root_satisfied` result instead of launching: no queue entry, execution lock, marker, launch, or checkpoint. `retry=true` never relaunches a satisfied DAG.\n4. Interpret `running` as executor launched and `queued` as waiting for the workspace execution slot.\n5. Unresolved semantic nodes may remain while authoring, but such a DAG is not executable: `dag_start` refuses any non-executable DAG — unresolved semantic state or a deterministic compiler\u002Fcontext conflict — surfacing all admission issues.\n6. `anchor_commit` is provenance, not a commit binding. Live repository drift can produce ordinary terminal failure and recovery.\n\n## Status\n\nPoll `dag_status(slug?)` until the DAG is `root_satisfied` or idle\u002Fnot active. Inspect failed and `in_progress` terminal nodes when execution stops. There is no durable `quiescent` state.\n\n## Stop and recovery\n\n- `dag_stop(slug)` is lifecycle control, not rollback. Satisfied work remains satisfied; a queued DAG may be removed. Nyx owns this operation but does not decide semantic construction or repair content.\n- The runtime handles process termination and interrupted-work reconciliation. Interrupted mechanical work is reconciled; an interrupted `run` becomes failed.\n- A running DAG is immutable. Do not mutate nodes or work while it runs.\n- When execution stops with failed mutable work, route the bounded scope through the controller: exact terminal defects to `change-dag-fixer`, semantic\u002Fgraph defects to `change-dag-semantic-repairer`, and authority issues to escalation. After the stopped DAG is repaired and validated, call `dag_start(slug, retry=true)` to retry the whole DAG.\n- There is no node- or subgraph-execution mode.\n\n## Completion and archive\n\n- When the root becomes satisfied, the executor records inherited starting-worktree evidence, creates the executor-owned local checkpoint, and records it in the Work Log. Nyx does not stage or create this checkpoint manually; it is not publication.\n- Provenance logging is enabled by default and disabled by `SKYSCOW_CHANGE_DAG_MUTATION_LOGGING=0`, `false`, or `off`; append failure after DAG persistence is nonfatal and exposed only as success metadata warning. No agent-facing mutation-log reader is provided.\n- Call `dag_archive(slug, reason)` when retiring a DAG from the pending working set. `reason` is required and non-empty. The bundle separates `DAG.json` (current construction state), optional `DAG_MUTATIONS.jsonl` (construction provenance), `EXECUTION_STATE.json` (execution lifecycle), and `WORK_LOG.jsonl` (execution evidence); archival moves all of them as-is, adds an `ARCHIVE.json` disposition record (`archived_at`, `reason`, `state_at_archive`, `artifacts_moved`), and moves the bundle to `artifacts\u002Fchange-dags\u002Farchived\u002F`. Construction provenance is not merged into the Work Log. Provenance logging is enabled by default and disabled by `SKYSCOW_CHANGE_DAG_MUTATION_LOGGING=0`, `false`, or `off`; append failure after DAG persistence is nonfatal and exposed only as success metadata warning. No agent-facing mutation-log reader is provided.\n- Archival is cleanup, not certification: a DAG may be archived after success, failure, abandonment, supersession, or cancellation. It does not require resolution, executability, root satisfaction, a failure-free state, or QA. Only operational safety applies: stop a running DAG first, and cancel a queued DAG with `dag_stop`. Read the disposition record for the outcome; archive location is not success evidence.\n\n## QA boundary\n\nRoute completed work to independent QA after execution. QA is not a DAG phase or archive gate. A completed DAG is never reopened for QA: use a bounded raw repair for a small defect, or create a new remediation DAG for a substantial or cross-cutting defect.\n",{"name":5,"description":7},"main","8f95d6b7cbf4ec39161b4e6c8bc5e1493e58003c","config\u002Fskills\u002Fchange-dag-lifecycle",0,"https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow","https:\u002F\u002Fgithub.com\u002Fxiaden","2026-09-30 22:33:49",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add xiaden\u002FSkyScow --skill change-dag-lifecycle",{"tool":37,"command":38},"bunx","bunx skills add xiaden\u002FSkyScow --skill change-dag-lifecycle",{"tool":40,"command":41},"pnpm","pnpm dlx skills add xiaden\u002FSkyScow --skill change-dag-lifecycle","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fchange-dag-lifecycle\u002FSKILL.md",true,[],[46,52,59,65,72,79],{"skillNo":47,"name":48,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":49,"categories":50,"keywords":51,"publishedAt":19},"01M7CTNJ49PJ794TEFBCNYYKQM","unquoted-colon","https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Ftools\u002Ftests\u002Ffixtures\u002Fskills\u002Funquoted-colon\u002FSKILL.md",[],[],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M7CTNENFBZPEX63HNSRBCW4T","quoted-description","Use when a plain scalar contains a colon: like this one.","https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Ftools\u002Ftests\u002Ffixtures\u002Fskills\u002Fquoted-description\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":19},"01M7CTNBBPKA6GMCVEM3GPB59F","block-description","https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Ftools\u002Ftests\u002Ffixtures\u002Fskills\u002Fblock-description\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":19},"01M7CTN4M0SR4Z4TPJMHWC3A3B","work-routing","Canonical authority for who owns the next unit of work — direct work versus delegation, task tiers, bounded localization, the Change DAG size threshold, R&D evaluation routing, progressive research escalation, researcher scope signals, and QA\u002Fsupport owner selection. Use before choosing execution, investigation, design, or QA ownership; do not use to construct dispatch prompts, handoff schemas, or Change DAG\u002FDD tool operation.","https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fwork-routing\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":19},"01M7CTMY5AY3NSNHGQJA0M7VP9","update-docs","Update project documentation to match code changes — generate codemaps, refresh READMEs, detect doc\u002Fcode drift using AST analysis. Use when updating documentation after code changes, generating codemaps, verifying doc accuracy, or detecting stale documentation. Do NOT use for writing API reference docs from scratch (use doc-coauthoring) or for creating new skill files (use making-editing-skills).","https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fupdate-docs\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":19},"01M7CTMSQD82CPD53C6F07J0R9","skill-loading-system","Explain or troubleshoot OpenCode skill discovery, loading, permissions, availability, or prompt injection.","https:\u002F\u002Fgithub.com\u002Fxiaden\u002FSkyScow\u002Fblob\u002Fmain\u002Fconfig\u002Fskills\u002Fskill-loading-system\u002FSKILL.md",[],[]]