[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CQF41NN7D1H4MPTPDKNBW0":3,"skill-same:01M7CQF41NN7D1H4MPTPDKNBW0":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":13,"repositoryHtmlUrl":26,"repositoryHomepageUrl":6,"ownerHtmlUrl":27,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":28,"install":29,"resources":42},"01M7CQF41NN7D1H4MPTPDKNBW0","engineering-research",null,"Resolve consequential evidence gaps during Loom intent, spec or planning, and contradictions or repeated failures during build. Use when capability, version, compatibility or feasibility assumptions could change an engineering decision.","kouko\u002Floom-plugins","kouko","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1480254?v=4","01M7CQCPAJR9C92XDGR0QDCQ98","01M7CQCPB8FTVY1BT26ENK1YP4",0,"MIT","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Fdocs\u002Fskill-dogfood\u002F2026-11-08-engineering-research-frameworks\u002Fexecution\u002FX006\u002Fartifacts\u002Fskill\u002Fengineering-research\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: engineering-research\ndescription: Resolve consequential evidence gaps during Loom intent, spec or planning, and contradictions or repeated failures during build. Use when capability, version, compatibility or feasibility assumptions could change an engineering decision.\n---\n\n# Engineering research\n\nUse evidence proportionate to the engineering question.\n\n1. Check the premise. Identify the object being discussed, the question to\n   answer, and the user's established outcome and constraints. Check these\n   against the available conversation and artifacts. Resolve factual gaps\n   yourself when possible. Ask only when an unresolved ambiguity would change\n   the work's direction or requires a user preference or authorization;\n   continue independent work while waiting. Do not invent a new goal.\n\n2. Check whether the evidence answers this question. Before relying on a\n   claim to recommend or take action, check its basis and relevance: the same\n   behavior, project context, version, and conditions where they matter.\n   Recheck relevance when the question changes. Similar terminology or an\n   earlier research report alone does not establish equivalence.\n\n3. Fill consequential gaps. Gather evidence when a factual uncertainty,\n   contradiction, repeated failed attempt, or unverified assumption could\n   change the decision. For current project behavior, inspect local code,\n   configuration, tests, and history. For external support or practice, use\n   applicable original documentation and relevant implementations or reports;\n   do not infer industry consensus from a few examples. When feasibility\n   depends on the environment or execution, use the smallest permitted\n   experiment that answers the question. Reading, external research, and\n   measurement are alternatives or complements, not mandatory steps in order.\n   Use an existing research tool when its scope fits. Routine lookups do not\n   require this capability; once invoked, retain the bounded research record\n   required below.\n\n4. Stop when the decision has sufficient support. Do not broaden research\n   merely because more sources may exist. If accessible evidence cannot\n   settle a consequential uncertainty, report that limitation rather than\n   search indefinitely or claim certainty. Distinguish observed behavior,\n   source-supported claims, inference, and what remains untested. Report the\n   evidence and material limitations concisely in the research record. Its\n   length follows the question; a short investigation can have a short record.\n\n5. Verify this research's claims and records. Before declaring a finding,\n   experiment or research document complete, inspect the actual evidence and\n   read back the saved record. A successful exit, file existence or completion\n   message alone does not establish the claimed finding. Reuse adequate\n   verification; report any remaining uncertainty. Ordinary implementation and\n   delivery verification remains the owning task's responsibility.\n\n## Research method and source selection\n\nBefore gathering evidence, read [research methods](references\u002Fresearch-methods.md)\nand [source policy](references\u002Fsource-policy.md). Choose the smallest method or\ncombination that resolves the consequential gap; do not run every method or\nvisit a fixed number of sites. Record the chosen method and why it fits.\n\nFor GitHub\u002FGitLab repository research about behavior or implementation, inspect\nthe relevant source code and connected execution path. README, documentation,\nsearch snippets, stars and discussion status alone are not implementation\nverification. Follow the repository-specific requirements in the source policy.\n\n## Optional structural relationships\n\nWhen branches, dependencies, interactions, state changes or competing causal\nhypotheses are easier to inspect as relationships, read\n[structured relationships](references\u002Fstructured-relations.md). Add a compact\nMermaid diagram only when it improves the research record. Simple facts and\ncomparisons can remain prose or a table. Keep the findings and evidence readable\nwithout rendering; a diagram does not establish causality or replace sources.\n\n## Retained research records\n\nEvery invocation produces or updates a Markdown research record, including an\ninconclusive investigation or a finding that existing evidence is sufficient.\nUse [the research template](templates\u002Fresearch.md). Keep metadata flat and the\nbody readable in Obsidian, GitHub and plain Markdown editors. No Obsidian plugin\nis required. Use standard relative Markdown links to project artifacts and\nordinary URLs for external sources; paths must resolve from the record.\n\n- **Split by question, not invocation.** Create one file for each independently\n  answerable question. Split unrelated questions from the same invocation.\n  Reopen the existing file for a continuation of the same question under the\n  same conditions, adding evidence and updating the conclusion and date.\n- **Preserve earlier decisions.** If materially different versions, environments\n  or assumptions make the earlier answer inapplicable, retain that record and\n  create a separately scoped revalidation, linking the two. Do not silently\n  replace the evidence on which an earlier decision depended. Respect frozen\n  trial records and explicit no-edit boundaries.\n- **Use the active change.** Save under\n  `docs\u002Floom\u002F\u003Cchange-id>\u002Fresearch\u002F\u003Csequence>-\u003Ctopic>.md`. Read existing records\n  before allocating the next unused sequence; a matching filename alone is not\n  proof that two records answer the same question. Use descriptive lowercase\n  hyphenated filenames. Do not overwrite a different question on a collision.\n- **Without an active change**, save under\n  `docs\u002Floom\u002Fresearch\u002F\u003CYYYY-MM-DD>-\u003Ctopic>.md`, adding a distinguishing suffix\n  on a collision. Do not invent a goal or intent just to obtain a directory.\n  Later changes can reference that record without copying it.\n- **Metadata:** require `title`, `type: loom-research`, `status`, `created`,\n  `updated` and a `tags` list containing `loom\u002Fresearch`. Add `change` only when\n  an actual active change is known. Dates use YYYY-MM-DD. Preserve `created`\n  when updating. Keep property names and value types consistent.\n- `status` is `in-progress`, `concluded` or `superseded`; it describes the work,\n  not evidence quality or user acceptance. `concluded` can still mean that a\n  consequential question cannot currently be settled. Explain that in the body.\n- Retain the question and applicable conditions, findings, source or experiment\n  evidence, decision impact, and limitations\u002Fopen questions. Evidence includes\n  relevant versions and conditions, source paths\u002FURLs, and commands plus actual\n  results where measured. Do not fabricate missing observations. Save a useful\n  summary and links, not an entire browsing transcript.\n- Specs and plans reference relevant research records; do not duplicate their\n  evidence. A separate index is optional and contains links rather than a\n  second copy of the conclusions.\n- An explicit no-write request or unavailable write access takes precedence:\n  provide an unsaved draft and identify the missing saved artifact. Do not claim\n  it was retained, override that boundary, or treat a schema check as proof of\n  research quality.\n\n## Return to the owning task\n\nThis is an on-demand capability, not another Loom station. Identify the pending decision and the factual gap before doing work. Preserve the active station and confirmed authorization. If evidence is already sufficient, reuse it in the retained record and return without additional investigation. Otherwise inspect relevant local artifacts, consult applicable original sources, or run the smallest authorized measurement. Use an existing research tool when its scope fits.\n\nReturn the decision, the actual saved record path, and remaining material uncertainty in the conversation; resume the owning task within its authorization. Verify the record content before calling it saved or complete. Do not start a new goal, install tools, publish, or advance a human decision point on the user's behalf.\n","# Engineering research\n\nUse evidence proportionate to the engineering question.\n\n1. Check the premise. Identify the object being discussed, the question to\n   answer, and the user's established outcome and constraints. Check these\n   against the available conversation and artifacts. Resolve factual gaps\n   yourself when possible. Ask only when an unresolved ambiguity would change\n   the work's direction or requires a user preference or authorization;\n   continue independent work while waiting. Do not invent a new goal.\n\n2. Check whether the evidence answers this question. Before relying on a\n   claim to recommend or take action, check its basis and relevance: the same\n   behavior, project context, version, and conditions where they matter.\n   Recheck relevance when the question changes. Similar terminology or an\n   earlier research report alone does not establish equivalence.\n\n3. Fill consequential gaps. Gather evidence when a factual uncertainty,\n   contradiction, repeated failed attempt, or unverified assumption could\n   change the decision. For current project behavior, inspect local code,\n   configuration, tests, and history. For external support or practice, use\n   applicable original documentation and relevant implementations or reports;\n   do not infer industry consensus from a few examples. When feasibility\n   depends on the environment or execution, use the smallest permitted\n   experiment that answers the question. Reading, external research, and\n   measurement are alternatives or complements, not mandatory steps in order.\n   Use an existing research tool when its scope fits. Routine lookups do not\n   require this capability; once invoked, retain the bounded research record\n   required below.\n\n4. Stop when the decision has sufficient support. Do not broaden research\n   merely because more sources may exist. If accessible evidence cannot\n   settle a consequential uncertainty, report that limitation rather than\n   search indefinitely or claim certainty. Distinguish observed behavior,\n   source-supported claims, inference, and what remains untested. Report the\n   evidence and material limitations concisely in the research record. Its\n   length follows the question; a short investigation can have a short record.\n\n5. Verify this research's claims and records. Before declaring a finding,\n   experiment or research document complete, inspect the actual evidence and\n   read back the saved record. A successful exit, file existence or completion\n   message alone does not establish the claimed finding. Reuse adequate\n   verification; report any remaining uncertainty. Ordinary implementation and\n   delivery verification remains the owning task's responsibility.\n\n## Research method and source selection\n\nBefore gathering evidence, read [research methods](references\u002Fresearch-methods.md)\nand [source policy](references\u002Fsource-policy.md). Choose the smallest method or\ncombination that resolves the consequential gap; do not run every method or\nvisit a fixed number of sites. Record the chosen method and why it fits.\n\nFor GitHub\u002FGitLab repository research about behavior or implementation, inspect\nthe relevant source code and connected execution path. README, documentation,\nsearch snippets, stars and discussion status alone are not implementation\nverification. Follow the repository-specific requirements in the source policy.\n\n## Optional structural relationships\n\nWhen branches, dependencies, interactions, state changes or competing causal\nhypotheses are easier to inspect as relationships, read\n[structured relationships](references\u002Fstructured-relations.md). Add a compact\nMermaid diagram only when it improves the research record. Simple facts and\ncomparisons can remain prose or a table. Keep the findings and evidence readable\nwithout rendering; a diagram does not establish causality or replace sources.\n\n## Retained research records\n\nEvery invocation produces or updates a Markdown research record, including an\ninconclusive investigation or a finding that existing evidence is sufficient.\nUse [the research template](templates\u002Fresearch.md). Keep metadata flat and the\nbody readable in Obsidian, GitHub and plain Markdown editors. No Obsidian plugin\nis required. Use standard relative Markdown links to project artifacts and\nordinary URLs for external sources; paths must resolve from the record.\n\n- **Split by question, not invocation.** Create one file for each independently\n  answerable question. Split unrelated questions from the same invocation.\n  Reopen the existing file for a continuation of the same question under the\n  same conditions, adding evidence and updating the conclusion and date.\n- **Preserve earlier decisions.** If materially different versions, environments\n  or assumptions make the earlier answer inapplicable, retain that record and\n  create a separately scoped revalidation, linking the two. Do not silently\n  replace the evidence on which an earlier decision depended. Respect frozen\n  trial records and explicit no-edit boundaries.\n- **Use the active change.** Save under\n  `docs\u002Floom\u002F\u003Cchange-id>\u002Fresearch\u002F\u003Csequence>-\u003Ctopic>.md`. Read existing records\n  before allocating the next unused sequence; a matching filename alone is not\n  proof that two records answer the same question. Use descriptive lowercase\n  hyphenated filenames. Do not overwrite a different question on a collision.\n- **Without an active change**, save under\n  `docs\u002Floom\u002Fresearch\u002F\u003CYYYY-MM-DD>-\u003Ctopic>.md`, adding a distinguishing suffix\n  on a collision. Do not invent a goal or intent just to obtain a directory.\n  Later changes can reference that record without copying it.\n- **Metadata:** require `title`, `type: loom-research`, `status`, `created`,\n  `updated` and a `tags` list containing `loom\u002Fresearch`. Add `change` only when\n  an actual active change is known. Dates use YYYY-MM-DD. Preserve `created`\n  when updating. Keep property names and value types consistent.\n- `status` is `in-progress`, `concluded` or `superseded`; it describes the work,\n  not evidence quality or user acceptance. `concluded` can still mean that a\n  consequential question cannot currently be settled. Explain that in the body.\n- Retain the question and applicable conditions, findings, source or experiment\n  evidence, decision impact, and limitations\u002Fopen questions. Evidence includes\n  relevant versions and conditions, source paths\u002FURLs, and commands plus actual\n  results where measured. Do not fabricate missing observations. Save a useful\n  summary and links, not an entire browsing transcript.\n- Specs and plans reference relevant research records; do not duplicate their\n  evidence. A separate index is optional and contains links rather than a\n  second copy of the conclusions.\n- An explicit no-write request or unavailable write access takes precedence:\n  provide an unsaved draft and identify the missing saved artifact. Do not claim\n  it was retained, override that boundary, or treat a schema check as proof of\n  research quality.\n\n## Return to the owning task\n\nThis is an on-demand capability, not another Loom station. Identify the pending decision and the factual gap before doing work. Preserve the active station and confirmed authorization. If evidence is already sufficient, reuse it in the retained record and return without additional investigation. Otherwise inspect relevant local artifacts, consult applicable original sources, or run the smallest authorized measurement. Use an existing research tool when its scope fits.\n\nReturn the decision, the actual saved record path, and remaining material uncertainty in the conversation; resume the owning task within its authorization. Verify the record content before calling it saved or complete. Do not start a new goal, install tools, publish, or advance a human decision point on the user's behalf.\n",{"name":5,"description":7},"main","3b1a9972644517911454530dc1876f88525b1f37","docs\u002Fskill-dogfood\u002F2026-11-08-engineering-research-frameworks\u002Fexecution\u002FX006\u002Fartifacts\u002Fskill\u002Fengineering-research","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins","https:\u002F\u002Fgithub.com\u002Fkouko","2026-11-15 00:45:02",{"source":8,"skillName":5,"commands":30,"prompt":40,"zipAvailable":41},[31,34,37],{"tool":32,"command":33},"npx","npx skills add kouko\u002Floom-plugins --skill engineering-research",{"tool":35,"command":36},"bunx","bunx skills add kouko\u002Floom-plugins --skill engineering-research",{"tool":38,"command":39},"pnpm","pnpm dlx skills add kouko\u002Floom-plugins --skill engineering-research","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Fdocs\u002Fskill-dogfood\u002F2026-11-08-engineering-research-frameworks\u002Fexecution\u002FX006\u002Fartifacts\u002Fskill\u002Fengineering-research\u002FSKILL.md",true,[43,49,53,57],{"path":44,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":47,"sourceHtmlUrl":48},"references\u002Fresearch-methods.md","REFERENCE","参考文档",4612,"https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Fdocs\u002Fskill-dogfood\u002F2026-11-08-engineering-research-frameworks\u002Fexecution\u002FX006\u002Fartifacts\u002Fskill\u002Fengineering-research\u002Freferences\u002Fresearch-methods.md",{"path":50,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":51,"sourceHtmlUrl":52},"references\u002Fsource-policy.md",6210,"https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Fdocs\u002Fskill-dogfood\u002F2026-11-08-engineering-research-frameworks\u002Fexecution\u002FX006\u002Fartifacts\u002Fskill\u002Fengineering-research\u002Freferences\u002Fsource-policy.md",{"path":54,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":55,"sourceHtmlUrl":56},"references\u002Fstructured-relations.md",2970,"https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Fdocs\u002Fskill-dogfood\u002F2026-11-08-engineering-research-frameworks\u002Fexecution\u002FX006\u002Fartifacts\u002Fskill\u002Fengineering-research\u002Freferences\u002Fstructured-relations.md",{"path":58,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":59,"sourceHtmlUrl":60},"templates\u002Fresearch.md",2259,"https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Fdocs\u002Fskill-dogfood\u002F2026-11-08-engineering-research-frameworks\u002Fexecution\u002FX006\u002Fartifacts\u002Fskill\u002Fengineering-research\u002Ftemplates\u002Fresearch.md",[62,69,76,83,90,97],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":18},"01M7CQNVD2W5MP7PKX3MD0YSQE","using-loom-workflow","Route broad Loom workflow-tool requests to the right skill. Use when the request spans tools or the right workflow skill is unclear.","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Floom-workflow\u002Fskills\u002Fusing-loom-workflow\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":18},"01M7CQNNTPVG52CS2C6Q9HJ2E2","skill-retro","Review selected past or current Claude Code or Codex sessions against readable target skill sources and related integration. Produce source-linked proposals without applying changes.","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Floom-workflow\u002Fskills\u002Fskill-retro\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":18},"01M7CQNHR1BDKJ63CC4R1RY9GE","recap-state","Give an in-session recap of current progress for 'where were we', '我們剛剛在幹嘛', '剛剛講到哪', '我跟丟了', 'ちょっと振り返って', '今どこだっけ', or '振り返り'. The built-in \u002Frecap is an away-summary.","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Floom-workflow\u002Fskills\u002Frecap-state\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":18},"01M7CQNE1A9272WPRE1MM3JRFK","project-retro","Review one current or specified coding session for source-backed project\ndevelopment improvements. Use for a requested retrospective, including\n振り返り seeking improvements; not for current-progress recaps or recurring skill mining.","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Floom-workflow\u002Fskills\u002Fproject-retro\u002FSKILL.md",[],[],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":18},"01M7CQNACJB36T0A039HT89P38","loom-visualization","Show comparisons, flows, decisions, states or reasoning chains as tables, ASCII or Mermaid in coding chat, including when a Loom station reports to the user (intent restatement, choices, acceptance test results); not Obsidian notes.","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Floom-workflow\u002Fskills\u002Floom-visualization\u002FSKILL.md",[],[],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":18},"01M7CQN7TVS0XF44JXQBWA32Z1","loom-memory","Record repo-wide lessons when saving to your own memory or asked to remember; recall, reconcile, or forget them when a task needs it.","https:\u002F\u002Fgithub.com\u002Fkouko\u002Floom-plugins\u002Fblob\u002Fmain\u002Floom-workflow\u002Fskills\u002Floom-memory\u002FSKILL.md",[],[]]