@inkeep/open-knowledge 0.48.0-beta.0 → 0.48.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/dist/THIRD_PARTY_NOTICES.md +5 -0
  2. package/dist/{acp-harness-probe-CLjNYBeh.mjs → acp-harness-probe-DgjLEALo.mjs} +2 -2
  3. package/dist/assets/skills/discovery/SKILL.md +1 -1
  4. package/dist/assets/skills/packs/codebase-wiki/SKILL.md +2 -2
  5. package/dist/assets/skills/packs/entity-vault/SKILL.md +2 -2
  6. package/dist/assets/skills/packs/knowledge-base/SKILL.md +6 -6
  7. package/dist/assets/skills/packs/knowledge-base/consolidate/SKILL.md +4 -4
  8. package/dist/assets/skills/packs/knowledge-base/research/SKILL.md +6 -6
  9. package/dist/assets/skills/packs/okf/SKILL.md +2 -2
  10. package/dist/assets/skills/packs/plain-notes/SKILL.md +2 -2
  11. package/dist/assets/skills/packs/software-lifecycle/SKILL.md +7 -7
  12. package/dist/assets/skills/packs/software-lifecycle/frame-a-proposal/SKILL.md +2 -2
  13. package/dist/assets/skills/packs/software-lifecycle/record-a-decision/SKILL.md +2 -2
  14. package/dist/assets/skills/packs/software-lifecycle/review-a-design/SKILL.md +2 -2
  15. package/dist/assets/skills/packs/software-lifecycle/write-a-postmortem/SKILL.md +2 -2
  16. package/dist/assets/skills/packs/software-lifecycle/write-a-spec/SKILL.md +2 -2
  17. package/dist/assets/skills/packs/worldbuilding/SKILL.md +2 -2
  18. package/dist/assets/skills/packs/writing-pipeline/SKILL.md +2 -2
  19. package/dist/assets/skills/project/SKILL.md +3 -3
  20. package/dist/assets/skills/project/references/starter-packs.md +2 -2
  21. package/dist/assets/skills/write-skill/SKILL.md +1 -1
  22. package/dist/cli.mjs +30 -30
  23. package/dist/constants-uLxFyV1-.mjs +2 -0
  24. package/dist/{git-handle-DDjBzdsL.mjs → git-handle-D6plgfL-.mjs} +2 -2
  25. package/dist/git-handle-qS6DQPrF.mjs +1 -0
  26. package/dist/index.mjs +1 -1
  27. package/dist/init-DKGnIaVq.mjs +643 -0
  28. package/dist/init-mzZ0flqJ.mjs +1 -0
  29. package/dist/{launch-json-removal-CW5dt-YP.mjs → launch-json-removal-DaoUddem.mjs} +2 -2
  30. package/dist/{loader-BcI3tO-1.mjs → loader-B5E-OO52.mjs} +2 -2
  31. package/dist/loader-BHzsvYfj.mjs +1 -0
  32. package/dist/md-manager-CpKO8i9i.mjs +2 -0
  33. package/dist/{open-browser-B3-Ef7NQ.mjs → open-browser-ifD987S6.mjs} +2 -2
  34. package/dist/parse-worker.mjs +1 -1
  35. package/dist/{preview-CVcIMjjs.mjs → preview-CKl5PSpe.mjs} +2 -2
  36. package/dist/preview-jJpFrlNd.mjs +1 -0
  37. package/dist/public/assets/{ActivityModeContent-DjiQUaxK.js → ActivityModeContent-8B7wGd5y.js} +1 -1
  38. package/dist/public/assets/{AgentDiffPane-DVqNjX-B.js → AgentDiffPane-BeWRgbnA.js} +1 -1
  39. package/dist/public/assets/{AgentThreadClientBinder-DWbG4rs8.js → AgentThreadClientBinder-FT8wNbjk.js} +1 -1
  40. package/dist/public/assets/{ChangedOutsideBadge-BXDsfsDT.js → ChangedOutsideBadge-Bb-re-nG.js} +1 -1
  41. package/dist/public/assets/{CodeMirrorPropInput-CBS5Kedm.js → CodeMirrorPropInput-BQoCzCdy.js} +1 -1
  42. package/dist/public/assets/{DocumentContext-DsVUZHbY.js → DocumentContext-CcK-mNAi.js} +2 -2
  43. package/dist/public/assets/{EditorModeToggle-DTHXAfTy.js → EditorModeToggle-NV902SqC.js} +1 -1
  44. package/dist/public/assets/{EnableSyncConfirmDialog-Rkcv8fFX.js → EnableSyncConfirmDialog-B3txwN8d.js} +1 -1
  45. package/dist/public/assets/FeedbackForm-1y4YvRvd.js +1 -0
  46. package/dist/public/assets/{GraphPanel-CCCwgc9t.js → GraphPanel-z_BpNtFU.js} +1 -1
  47. package/dist/public/assets/{ImportSkillDialog-DTNfVQlS.js → ImportSkillDialog-CyLMLgQN.js} +1 -1
  48. package/dist/public/assets/{LintConfigEditor-BGSFYjxS.js → LintConfigEditor-SRropTDk.js} +1 -1
  49. package/dist/public/assets/ManagedArtifactProperties-CbgN40D5.js +1 -0
  50. package/dist/public/assets/{ManagedArtifactProperties-ybtGabat.js → ManagedArtifactProperties-DwV7emUI.js} +1 -1
  51. package/dist/public/assets/{McpConsentDialogBody-0WUuivuI.js → McpConsentDialogBody-BiF_k0VW.js} +1 -1
  52. package/dist/public/assets/{MermaidDocEditor-DiODDcNN.js → MermaidDocEditor-DkkZ1470.js} +1 -1
  53. package/dist/public/assets/{ReportBugDialogBody-Bz6zj2ya.js → ReportBugDialogBody-CtlgCQX3.js} +1 -1
  54. package/dist/public/assets/{SchemaConfigEditor-HM0KvRBJ.js → SchemaConfigEditor-DOmoubBM.js} +1 -1
  55. package/dist/public/assets/{SessionsHost-2riVqKto.js → SessionsHost-DCZv6SXD.js} +2 -2
  56. package/dist/public/assets/{SettingsDialogBody-C-RLLaSQ.js → SettingsDialogBody-BegCUhJP.js} +1 -1
  57. package/dist/public/assets/{ShareBranchSwitchDialog-LWhsqKpx.js → ShareBranchSwitchDialog-DYf_N6bq.js} +1 -1
  58. package/dist/public/assets/{ShareReceiveDialog-DkiMKpYB.js → ShareReceiveDialog-ayJ6qYFK.js} +1 -1
  59. package/dist/public/assets/{ShareReceiveMissDialog-BlfRjTjz.js → ShareReceiveMissDialog-OcYPcuBz.js} +1 -1
  60. package/dist/public/assets/{SkillEditBanner-BKknMb0n.js → SkillEditBanner-DBJEqMg4.js} +1 -1
  61. package/dist/public/assets/{SkillOriginInline-BTfGYiOL.js → SkillOriginInline-FJ-Hk1Uz.js} +1 -1
  62. package/dist/public/assets/{SkillToolbarControls-6kAZOtPa.js → SkillToolbarControls-CKBT36Fc.js} +1 -1
  63. package/dist/public/assets/{SourceEditor-D6opP3B_.js → SourceEditor-OE-lSW6p.js} +1 -1
  64. package/dist/public/assets/{TerminalPanel-DpTpMxPr.js → TerminalPanel-DN4Eag17.js} +1 -1
  65. package/dist/public/assets/{TerminalWindowApp-Hmiqsizv.js → TerminalWindowApp-BAn1bShz.js} +1 -1
  66. package/dist/public/assets/{TextDocEditor-B9cpkQ1h.js → TextDocEditor-gUC9Hdas.js} +1 -1
  67. package/dist/public/assets/{ThreadView-ClOb6d2G.js → ThreadView-CklwWwdl.js} +1 -1
  68. package/dist/public/assets/{TimelineDiffPane-Co8A5WJX.js → TimelineDiffPane-R2I1Oytb.js} +1 -1
  69. package/dist/public/assets/{agent-diff-store-DefFCgDx.js → agent-diff-store-BABq_wfE.js} +1 -1
  70. package/dist/public/assets/{agent-visibility-pSgQW56D.js → agent-visibility-p6xMSDdk.js} +1 -1
  71. package/dist/public/assets/{auth-state-cache-DtDuE8TC.js → auth-state-cache-B-pK5XlG.js} +1 -1
  72. package/dist/public/assets/{client-version-kugr1poH.js → client-version-1hLDBtWZ.js} +1 -1
  73. package/dist/public/assets/{comment-chips-eKJtA_0z.js → comment-chips-DhFlg6Lg.js} +1 -1
  74. package/dist/public/assets/{config-context-BwIW8FCz.js → config-context-JFJadbOg.js} +1 -1
  75. package/dist/public/assets/{config-provider-CQHfxw_T.js → config-provider-GgI7K6tF.js} +1 -1
  76. package/dist/public/assets/{dist-DYnLkWYw2.js → dist-D0lKV18u2.js} +2 -2
  77. package/dist/public/assets/{doc-paths-zGDWSnP4.js → doc-paths-BuYvs-Sl.js} +1 -1
  78. package/dist/public/assets/{documents-events-DrpYhlm4.js → documents-events-CZXYlWJs.js} +1 -1
  79. package/dist/public/assets/{file-tree-adapter-VrQojY1R.js → file-tree-adapter-VPm5Cnie.js} +1 -1
  80. package/dist/public/assets/{file-tree-utils-DwQGrZOA.js → file-tree-utils-DEJGOhLm.js} +1 -1
  81. package/dist/public/assets/{folder-config-api-hHnKg-gr.js → folder-config-api-CkzVN79U.js} +1 -1
  82. package/dist/public/assets/{follow-file-LHobDt_S.js → follow-file-Ad0qyANw.js} +1 -1
  83. package/dist/public/assets/{globals-isQ8TLSF.js → globals-CGSd7dgM.js} +1 -1
  84. package/dist/public/assets/{index-CqKKVkkU.js → index-D7Hnjtop.js} +108 -108
  85. package/dist/public/assets/{lint-config-client-iegX1n8T.js → lint-config-client-CKLyoxWn.js} +1 -1
  86. package/dist/public/assets/{markdownlint-rule-browser-DLGYhzDM.js → markdownlint-rule-browser-BJyF5XvC.js} +1 -1
  87. package/dist/public/assets/{navigation-targets-BCEN_wqJ.js → navigation-targets-kcw1-114.js} +1 -1
  88. package/dist/public/assets/{open-managed-artifact-tab-CkjRYJU3.js → open-managed-artifact-tab-CRB-rvl-.js} +1 -1
  89. package/dist/public/assets/{pending-receive-nav-store-BQi_7hNu.js → pending-receive-nav-store-yAE2j52e.js} +1 -1
  90. package/dist/public/assets/{prop-types-CO1vfdpW.js → prop-types-C-VFVfev.js} +1 -1
  91. package/dist/public/assets/{receive-store-Zkulsnri.js → receive-store-C3RyDFMU.js} +1 -1
  92. package/dist/public/assets/{selection-context--eUfBqxv.js → selection-context-CojvRwo6.js} +1 -1
  93. package/dist/public/assets/skill-actions-BVQGnmjM.js +2 -0
  94. package/dist/public/assets/{skill-scope-CE5P-qa2.js → skill-scope-DwDLnOOD.js} +1 -1
  95. package/dist/public/assets/{skills-api-DiFi6C13.js → skills-api-BBaU5yMj.js} +1 -1
  96. package/dist/public/assets/{src-DJkafp4E.js → src-BFaead-K.js} +1 -1
  97. package/dist/public/assets/{tag-pill-input-3_tUFZqt.js → tag-pill-input-T8jCzKA4.js} +1 -1
  98. package/dist/public/assets/{target-navigation-intent-BgP4rk-A.js → target-navigation-intent-ur7EfH9N.js} +1 -1
  99. package/dist/public/assets/{terminal-launch-events-AQ_xnG-R.js → terminal-launch-events-CIEJD8Ca.js} +1 -1
  100. package/dist/public/assets/{terminal-telemetry-BMEqHABV.js → terminal-telemetry-D3CzWhx2.js} +1 -1
  101. package/dist/public/assets/{typing-burst-detector-NUP-QLEw.js → typing-burst-detector-DCq4EEJa.js} +1 -1
  102. package/dist/public/assets/{uninstall-38Y5JJ_e.js → uninstall-oyd1jRGx.js} +1 -1
  103. package/dist/public/assets/{use-activity-panel-W5wD2DFm.js → use-activity-panel-BPsAzeX7.js} +1 -1
  104. package/dist/public/assets/{use-collab-url-BwWR4HI-.js → use-collab-url-oYOwLAYB.js} +1 -1
  105. package/dist/public/assets/{use-live-xterm-theme-KbfqWxbp.js → use-live-xterm-theme-DEdN-vX3.js} +1 -1
  106. package/dist/public/assets/{use-open-skill-BJSoBcc-.js → use-open-skill-Ljj3_grf.js} +1 -1
  107. package/dist/public/assets/{use-settings-route-BOYDhit3.js → use-settings-route-B1Atzr9C.js} +1 -1
  108. package/dist/public/assets/{use-skill-directory-CEid-P_G.js → use-skill-directory-Ie653N2P.js} +1 -1
  109. package/dist/public/assets/{use-skill-origin-DR4xcMJo.js → use-skill-origin-LsbeWa_R.js} +1 -1
  110. package/dist/public/assets/{use-skills-1DslFHtO.js → use-skills-CtCsB6PZ.js} +1 -1
  111. package/dist/public/assets/{use-terminal-enabled-Cf5f3wmZ.js → use-terminal-enabled-BArDTeSK.js} +1 -1
  112. package/dist/public/assets/{use-timeline-entry-diff-DOTzJbQP.js → use-timeline-entry-diff-s1PlK0BB.js} +1 -1
  113. package/dist/public/assets/{use-workspace-BlkDxHAu.js → use-workspace-3mjuTrTC.js} +1 -1
  114. package/dist/public/index.html +44 -44
  115. package/dist/public/uninstall.html +3 -3
  116. package/dist/{repair-launch-json-DSzK0I0T.mjs → repair-launch-json-D2WeY50Y.mjs} +2 -2
  117. package/dist/{repair-mcp-configs-Drmmkvoh.mjs → repair-mcp-configs-BJ9v8T7k.mjs} +2 -2
  118. package/dist/{repair-skills-BzVqzuuo.mjs → repair-skills-Cm70zKLA.mjs} +2 -2
  119. package/dist/repair-skills-DT7FGT3w.mjs +1 -0
  120. package/dist/server-lock-CQ1oOrnO.mjs +1 -0
  121. package/dist/{server-lock--0V-ESY4.mjs → server-lock-DQJq-D9V.mjs} +2 -2
  122. package/dist/{skill-teardown-Crg4l1lZ.mjs → skill-teardown-BQ0YQ9rO.mjs} +2 -2
  123. package/dist/src-BTCvmkZK.mjs +2030 -0
  124. package/dist/src-BuZeH4bR.mjs +1 -0
  125. package/dist/src-CmzmL097.mjs +20 -0
  126. package/dist/{src-Bnk118Ag.mjs → src-y-VpYk60.mjs} +121 -121
  127. package/dist/start-BYT6GfDm.mjs +1 -0
  128. package/dist/{start-CjGC35eg.mjs → start-DT_8Fr-l.mjs} +3 -3
  129. package/dist/{write-project-skill-D_wY5RR9.mjs → write-project-skill-DQTCLDNM.mjs} +4 -4
  130. package/package.json +5 -5
  131. package/dist/constants-T8XJZcO-.mjs +0 -2
  132. package/dist/git-handle-DtHx3JAy.mjs +0 -1
  133. package/dist/init-CFsgSbpu.mjs +0 -643
  134. package/dist/init-DqUHC_mm.mjs +0 -1
  135. package/dist/loader-OdYvbJHt.mjs +0 -1
  136. package/dist/md-manager-BURSRub5.mjs +0 -2
  137. package/dist/preview-CRaIYBd0.mjs +0 -1
  138. package/dist/public/assets/FeedbackForm-wBTRDqbC.js +0 -1
  139. package/dist/public/assets/ManagedArtifactProperties-Ck3NkHUQ.js +0 -1
  140. package/dist/public/assets/skill-actions-Bm9dmT9V.js +0 -2
  141. package/dist/repair-skills-BdXdNQUC.mjs +0 -1
  142. package/dist/server-lock-owrYVjgw.mjs +0 -1
  143. package/dist/src-CX7TfFa6.mjs +0 -2030
  144. package/dist/src-DAPOkcDv.mjs +0 -1
  145. package/dist/src-p8pvGFyq.mjs +0 -20
  146. package/dist/start-C4e_XF0z.mjs +0 -1
@@ -1301,6 +1301,11 @@ Homepage: https://hocuspocus.dev
1301
1301
 
1302
1302
  Copyright (c) 2023, Tiptap GmbH
1303
1303
 
1304
+ ### `@hono/node-server@2.0.12`
1305
+ Homepage: https://github.com/honojs/node-server
1306
+
1307
+ Copyright (c) 2022 - present, Yusuke Wada and Hono contributors
1308
+
1304
1309
  ### `@hono/node-server@1.19.14`
1305
1310
  Homepage: https://github.com/honojs/node-server
1306
1311
 
@@ -1,3 +1,3 @@
1
- import{Y as e}from"./sleep-ByqzSHar.mjs";import{h as t,s as n,v as r}from"./write-project-skill-D_wY5RR9.mjs";import{d as i}from"./init-CFsgSbpu.mjs";import{execFileSync as a}from"node:child_process";import{dirname as o,join as s}from"node:path";import{existsSync as c,mkdirSync as l,readFileSync as u,writeFileSync as d}from"node:fs";import{homedir as f}from"node:os";var p=e();const m=`open-knowledge`;function h(e){try{e()}catch{}}var g=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(m,e).getPassword()}catch(t){return h(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return h(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return h(()=>this.onKeychainRead?.({kind:`corrupt-entry`,host:e,error:`corrupt-entry`})),null}}async set(e,t,n,r){let{Entry:i}=await import(`@napi-rs/keyring`),a=new i(m,e),o={login:t,token:n,...r};a.setPassword(JSON.stringify(o))}async clear(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{new t(m,e).deletePassword()}catch{}}},_=class{backend=`file`;authFile;constructor(e){this.authFile=e??s(f(),`.ok`,`auth.yml`)}read(){if(!c(this.authFile))return{};try{return(0,p.parse)(u(this.authFile,`utf-8`))??{}}catch(e){let t=e instanceof Error?e.message:`unknown error`;return process.stderr.write(`[auth] Failed to parse ${this.authFile}: ${t}. Starting with empty credentials.\n`),{}}}write(e){let t=o(this.authFile);c(t)||l(t,{recursive:!0,mode:448}),d(this.authFile,(0,p.stringify)(e),{mode:384})}async get(e){return this.read()[e]??null}async set(e,t,n,r){let i=this.read();i[e]={login:t,token:n,...r},this.write(i)}async clear(e){let t=this.read();delete t[e],this.write(t)}},v=class{backend=`keyring`;constructor(e,t){this.keychain=e,this.file=t}async get(e){let t=await this.keychain.get(e);if(t!=null)return t;let n=await this.file.get(e);if(n==null)return null;try{await this.keychain.set(e,n.login,n.token,{gitProtocol:n.gitProtocol,name:n.name,email:n.email}),await this.file.clear(e),process.stderr.write(`[auth] migrated ${e} credential from ~/.ok/auth.yml to the OS keychain\n`)}catch{}return n}set(e,t,n,r){return this.keychain.set(e,t,n,r)}async clear(e){await this.keychain.clear(e),await this.file.get(e)!=null&&await this.file.clear(e)}};async function y(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(m,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
1
+ import{Y as e}from"./sleep-ByqzSHar.mjs";import{h as t,s as n,v as r}from"./write-project-skill-DQTCLDNM.mjs";import{d as i}from"./init-DKGnIaVq.mjs";import{execFileSync as a}from"node:child_process";import{dirname as o,join as s}from"node:path";import{existsSync as c,mkdirSync as l,readFileSync as u,writeFileSync as d}from"node:fs";import{homedir as f}from"node:os";var p=e();const m=`open-knowledge`;function h(e){try{e()}catch{}}var g=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(m,e).getPassword()}catch(t){return h(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return h(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return h(()=>this.onKeychainRead?.({kind:`corrupt-entry`,host:e,error:`corrupt-entry`})),null}}async set(e,t,n,r){let{Entry:i}=await import(`@napi-rs/keyring`),a=new i(m,e),o={login:t,token:n,...r};a.setPassword(JSON.stringify(o))}async clear(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{new t(m,e).deletePassword()}catch{}}},_=class{backend=`file`;authFile;constructor(e){this.authFile=e??s(f(),`.ok`,`auth.yml`)}read(){if(!c(this.authFile))return{};try{return(0,p.parse)(u(this.authFile,`utf-8`))??{}}catch(e){let t=e instanceof Error?e.message:`unknown error`;return process.stderr.write(`[auth] Failed to parse ${this.authFile}: ${t}. Starting with empty credentials.\n`),{}}}write(e){let t=o(this.authFile);c(t)||l(t,{recursive:!0,mode:448}),d(this.authFile,(0,p.stringify)(e),{mode:384})}async get(e){return this.read()[e]??null}async set(e,t,n,r){let i=this.read();i[e]={login:t,token:n,...r},this.write(i)}async clear(e){let t=this.read();delete t[e],this.write(t)}},v=class{backend=`keyring`;constructor(e,t){this.keychain=e,this.file=t}async get(e){let t=await this.keychain.get(e);if(t!=null)return t;let n=await this.file.get(e);if(n==null)return null;try{await this.keychain.set(e,n.login,n.token,{gitProtocol:n.gitProtocol,name:n.name,email:n.email}),await this.file.clear(e),process.stderr.write(`[auth] migrated ${e} credential from ~/.ok/auth.yml to the OS keychain\n`)}catch{}return n}set(e,t,n,r){return this.keychain.set(e,t,n,r)}async clear(e){await this.keychain.clear(e),await this.file.get(e)!=null&&await this.file.clear(e)}};async function y(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(m,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
2
2
  `),h(()=>t?.onBackendSelected?.({backend:`keyring`})),new v(new g(t?.onKeychainRead),new _(e))}catch(n){let r=n instanceof Error?`${n.name}: ${n.message}`:String(n);return process.stderr.write(`[auth] token storage: file (~/.ok/auth.yml) — OS keychain unavailable: ${r}\n`),h(()=>t?.onBackendSelected?.({backend:`file`,reason:r})),new _(e)}}function b(e){let t=null;return function(){if(t)return t;let n=2e3;return t=(async()=>{let t=null,r=new Promise(r=>{t=setTimeout(()=>{process.stderr.write(`[auth] token storage: keyring init exceeded ${n}ms; falling back to file (~/.ok/auth.yml)\n`),r(new _(e))},n)});try{return await Promise.race([y(e),r])}catch{return new _(e)}finally{t!==null&&clearTimeout(t)}})(),t}}function x(e){let t=b(e);return{async get(e){let n=await(await t()).get(e);return n===null?null:{token:n.token}}}}function S(e){let t=b(e);return{backend:`file`,async get(e){return(await t()).get(e)},async set(e,n,r,i){return(await t()).set(e,n,r,i)},async clear(e){return(await t()).clear(e)}}}async function C(e,t){let n=[],r=new _(t);await r.get(e)!=null&&(await r.clear(e),n.push(`file`));let i;try{let{Entry:t}=await import(`@napi-rs/keyring`);new t(m,`__probe__`);let r,a=await new g(e=>{e.kind===`read-error`&&(r=e.error??`read-error`)}).get(e);if(r!==void 0)i=r;else if(a!=null)try{new t(m,e).deletePassword(),n.push(`keychain`)}catch(e){i=e instanceof Error?e.name:`delete-error`}}catch{}return{touched:n,keychainError:i}}const w=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],T={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function E(e,t={}){let n=t._exec??a,r=t._fileExists??c,i=[`auth`,`token`,...e?[`--hostname`,e]:[]],o=[`gh`,...w.filter(r)];for(let e of o)try{let t=n(e,i,T).toString().trim();if(t.length>0)return{available:!0,token:t}}catch{}return{available:!1}}function D(e,a,o){let s=n[e],c=e===`opencode`?r:t,l=[],u=s.projectConfigPath?.(a);u!==void 0&&l.push({scope:`project`,configPath:u});try{l.push({scope:`user`,configPath:s.configPath(a,o)})}catch{}for(let t of l){let n=i(s,a,o,t.configPath);if(n!==null&&c(n))return{editorId:e,scope:t.scope,configPath:t.configPath}}return null}export{x as a,y as i,E as n,S as o,C as r,D as t};
3
- //# sourceMappingURL=acp-harness-probe-CLjNYBeh.mjs.map
3
+ //# sourceMappingURL=acp-harness-probe-DgjLEALo.mjs.map
@@ -4,7 +4,7 @@ description: "Read when the user asks what OpenKnowledge is, wants to install it
4
4
  compatibility: "Any agent host — no MCP server required. Pure discovery + install guidance."
5
5
  metadata:
6
6
  author: "Inkeep"
7
- repository: "https://github.com/inkeep/open-knowledge"
7
+ repository: "https://github.com/inkeep/open-knowledge-skills"
8
8
  ---
9
9
  # OpenKnowledge — what it is and how to install it
10
10
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-codebase-wiki
2
+ name: codebase-wiki
3
3
  description: "How to work in a Codebase Wiki project (the `codebase-wiki` starter pack): an agent-authored, source-grounded wiki of the surrounding codebase. Read when the project has a `wiki/` knowledge base with `architecture/`, `modules/`, `flows/`, `concepts/`, and `guides/` sections plus `wiki/OVERVIEW.md`, or when asked to generate or refresh a wiki of this codebase. Carries the per-folder rules and freshness + log discipline, summarizes the audience/depth knobs and source-reference convention, and bundles the full generate/refresh procedure in `references/`. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack codebase-wiki`."
5
5
  metadata:
6
6
  pack: "codebase-wiki"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Codebase Wiki pack — how to work here
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-entity-vault
2
+ name: personal-crm
3
3
  description: "How to work in a Personal CRM project (the `entity-vault` starter pack, GBrain-compatible): a typed-entity vault of people, companies, meetings, and concepts, each a dossier with a rewritable summary plus an append-only timeline. Read when the project has these folders, OR when asked to capture notes about a person or company, log a meeting, prep for an upcoming meeting, or answer who someone is and what was last said. Carries the dossier convention and entity-extraction behaviors so that guidance does not live inside template bodies or folder descriptions. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack entity-vault`."
5
5
  metadata:
6
6
  pack: "entity-vault"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Personal CRM (GBrain-compatible) — how to work here
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-knowledge-base
2
+ name: knowledge-base
3
3
  description: "How to work in a Knowledge Base project (the `knowledge-base` starter pack). Read when the project has the three-layer source-grounded layout — `external-sources/` → `research/` → `articles/` — or when asked how this project is organized. Carries the layer model, per-folder rules, status flows, and log discipline so this guidance does NOT live inside template bodies or log.md. The three procedures live elsewhere: ingest in the platform `open-knowledge` skill, research and consolidate as their own sibling skills in this pack. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack knowledge-base`."
5
5
  metadata:
6
6
  pack: "knowledge-base"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Knowledge Base pack — how to work here
11
11
 
@@ -38,8 +38,8 @@ Each layer has a full, STOP-gated procedure, and each ships as its own skill so
38
38
  | Procedure | Where it lives | When |
39
39
  | --- | --- | --- |
40
40
  | ingest | Platform `open-knowledge` skill (`references/ingest-and-sources.md`) — its Grounding rule depends on it everywhere, so it ships with every project, not just this pack. | Preserve a shared URL / PDF / file verbatim, OR you fetched a URL to ground a KB claim (binary sources preserved, not scraped). |
41
- | research | Sibling skill `open-knowledge-pack-knowledge-base-research` | Investigate / compare / synthesize multiple sources → `status: provisional` article + `sources:`. |
42
- | consolidate | Sibling skill `open-knowledge-pack-knowledge-base-consolidate` | A decision was actually made → commit canonical source-of-truth with a `supersedes:` chain. |
41
+ | research | Sibling skill `research-with-sources` | Investigate / compare / synthesize multiple sources → `status: provisional` article + `sources:`. |
42
+ | consolidate | Sibling skill `consolidate-notes` | A decision was actually made → commit canonical source-of-truth with a `supersedes:` chain. |
43
43
 
44
44
  Typical day-2 flow: user shares a URL → **ingest** (preserve) → user asks "now research this" → **research** (provisional article, ingesting more sources as needed) → decision lands → **consolidate** (canonical article, supersedes the research).
45
45
 
@@ -51,9 +51,9 @@ Typical day-2 flow: user shares a URL → **ingest** (preserve) → user asks "n
51
51
 
52
52
  **`external-sources/`** — Raw sources saved verbatim, not just cited: the actual fetched text of URLs, extracted text of PDFs, copies of referenced files. Each file's frontmatter carries the original URL, access date, and any author/publisher metadata. Produced by the ingest procedure (applies whether the user shared the URL or you fetched it yourself to ground a claim). Immutable after capture — update only to refresh a stale fetch. **No analysis here**; that belongs in `research/`.
53
53
 
54
- **`research/`** — Provisional analysis synthesizing external sources. Produced by the `research` skill. Every factual claim cites a specific doc in `external-sources/` (or an inline URL if ingest was skipped); no unsourced assertions. Keep the `sources:` frontmatter list aligned with the docs actually linked in the body. Promote to `articles/` via the `consolidate` skill once the team decides the findings are stable.
54
+ **`research/`** — Provisional analysis synthesizing external sources. Produced by the `research-with-sources` skill. Every factual claim cites a specific doc in `external-sources/` (or an inline URL if ingest was skipped); no unsourced assertions. Keep the `sources:` frontmatter list aligned with the docs actually linked in the body. Promote to `articles/` via the `consolidate-notes` skill once the team decides the findings are stable.
55
55
 
56
- **`articles/`** — Canonical knowledge, committed after a team decision. Produced by the `consolidate` skill. Carries a `supersedes:` chain tying back to the `research/` docs it replaces (which in turn cite `external-sources/`) so the full evidence chain is traceable without leaving the repo. Source-of-truth for the domain; update only when a new decision supersedes it.
56
+ **`articles/`** — Canonical knowledge, committed after a team decision. Produced by the `consolidate-notes` skill. Carries a `supersedes:` chain tying back to the `research/` docs it replaces (which in turn cite `external-sources/`) so the full evidence chain is traceable without leaving the repo. Source-of-truth for the domain; update only when a new decision supersedes it.
57
57
 
58
58
  ## Status flow
59
59
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-knowledge-base-consolidate
3
- description: "Promote existing research into a canonical article under `articles/` in a Knowledge Base project (the `knowledge-base` starter pack). Read when a decision has actually been made and the team wants the source-of-truth written down, or when asked to consolidate, canonicalize, promote research, or supersede an older article. Carries the decision-confirmation gate, the `supersedes:` chain that keeps the evidence trail intact, and the canonical voice. Does not conduct new research — that is the sibling `research` skill."
2
+ name: consolidate-notes
3
+ description: "Promote existing research into a canonical article under `articles/` in a Knowledge Base project (the `knowledge-base` starter pack). Read when a decision has actually been made and the team wants the source-of-truth written down, or when asked to consolidate, canonicalize, promote research, or supersede an older article. Carries the decision-confirmation gate, the `supersedes:` chain that keeps the evidence trail intact, and the canonical voice. Does not conduct new research — that is the sibling `research-with-sources` skill."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack knowledge-base`."
5
5
  metadata:
6
6
  pack: "knowledge-base"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Consolidate — promote research into a canonical article
11
11
 
@@ -58,7 +58,7 @@ Locate research articles on this topic:
58
58
  - Follow its `sources:` frontmatter list — read every referenced source file
59
59
  - Also read any existing canonical article on the topic — if one already exists, you may be **updating** it rather than creating a new one
60
60
 
61
- If there is no research to consolidate, stop. Consolidation is promotion, not creation. Do the `research` skill first.
61
+ If there is no research to consolidate, stop. Consolidation is promotion, not creation. Do the `research-with-sources` skill first.
62
62
 
63
63
  ### 2. Re-confirm the decision
64
64
 
@@ -1,17 +1,17 @@
1
1
  ---
2
- name: open-knowledge-pack-knowledge-base-research
3
- description: "Investigate a topic against preserved sources and write a provisional research article under `research/` in a Knowledge Base project (the `knowledge-base` starter pack). Read when asked to research a topic, compare options, synthesize sources, gather evidence, or extend an existing research doc. Carries the full procedure: scan existing coverage, agree a research rubric, capture every source verbatim before analyzing, write the article incrementally so a crash never loses work, cite every claim, and link it back into the graph. Does not promote findings to canonical knowledge — that is the sibling `consolidate` skill, after a decision lands."
2
+ name: research-with-sources
3
+ description: "Investigate a topic against preserved sources and write a provisional research article under `research/` in a Knowledge Base project (the `knowledge-base` starter pack). Read when asked to research a topic, compare options, synthesize sources, gather evidence, or extend an existing research doc. Carries the full procedure: scan existing coverage, agree a research rubric, capture every source verbatim before analyzing, write the article incrementally so a crash never loses work, cite every claim, and link it back into the graph. Does not promote findings to canonical knowledge — that is the sibling `consolidate-notes` skill, after a decision lands."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack knowledge-base`."
5
5
  metadata:
6
6
  pack: "knowledge-base"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Research — gather sources and write provisional findings
11
11
 
12
12
  > This skill is pack guidance. The platform `open-knowledge` skill (read/write/preview/linking/grounding rules) still governs every markdown operation — this layers the procedure on top.
13
13
 
14
- Conduct **evidence-driven research** on a topic and produce a provisional research article under `research/`. Provisional, not canonical: research articles capture findings, trade-offs, and open questions at a point in time. They are promoted to canonical articles via the `consolidate` skill only when decisions solidify.
14
+ Conduct **evidence-driven research** on a topic and produce a provisional research article under `research/`. Provisional, not canonical: research articles capture findings, trade-offs, and open questions at a point in time. They are promoted to canonical articles via the `consolidate-notes` skill only when decisions solidify.
15
15
 
16
16
  The content directory is the resolved `content.dir` — read it with `config({ key: 'content.dir' })` if you don't already know it. Paths below are relative to it.
17
17
 
@@ -296,7 +296,7 @@ sources:
296
296
  ### Voice
297
297
 
298
298
  - **Provisional, not canonical.** Use "tentative", "initial findings", "based on current understanding."
299
- - **Do NOT write as if it were canonical** — that's misleading. Canonicality is the `consolidate` skill's job, after decisions land.
299
+ - **Do NOT write as if it were canonical** — that's misleading. Canonicality is the `consolidate-notes` skill's job, after decisions land.
300
300
  - **Explicit about uncertainty.** Research is the layer where uncertainty is allowed to live.
301
301
 
302
302
  ---
@@ -366,7 +366,7 @@ In headless mode, write the recap into the research article's "Further reading"
366
366
 
367
367
  ## Non-goals
368
368
 
369
- - **Don't promote to a canonical article.** That's the `consolidate` skill's job after a decision actually lands. Premature canonicalization buries uncertainty and misleads future readers.
369
+ - **Don't promote to a canonical article.** That's the `consolidate-notes` skill's job after a decision actually lands. Premature canonicalization buries uncertainty and misleads future readers.
370
370
  - **Don't hide uncertainty.** Research is the layer where "we don't know yet" is acceptable prose. Say it explicitly.
371
371
  - **Don't skip ingest.** Always capture raw sources first, then analyze. An article without preserved sources is opinion.
372
372
  - **Don't skip the Step 1 scan.** Duplicate research wastes the user's time AND misses chances to extend prior work.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: open-knowledge-pack-okf
2
+ name: okf-knowledge-base
3
3
  description: "How to work in an OKF starter project (the `okf` starter pack): a knowledge base that is conformant with Google's Open Knowledge Format (OKF) from commit one — `concepts/`, `references/`, `notes/`, a reserved `index.md` navigation hub, and a reserved `log.md` change history. Read when the project has these folders plus reserved files, OR when asked whether a document is OKF-conformant, or to add a document to an OKF knowledge base. Carries the OKF conventions (non-empty `type` on every non-reserved doc; reserved files carry no frontmatter) as guidance, not enforcement. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack okf`."
5
5
  # `type` keeps this skill doc OKF-conformant: it installs as project-local
@@ -10,7 +10,7 @@ type: Document
10
10
  metadata:
11
11
  pack: "okf"
12
12
  author: "Inkeep"
13
- repository: "https://github.com/inkeep/open-knowledge"
13
+ repository: "https://github.com/inkeep/open-knowledge-skills"
14
14
  ---
15
15
  # OKF starter pack — how to work here
16
16
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-plain-notes
2
+ name: note-taking
3
3
  description: "How to work in a Plain Notes project (the `plain-notes` starter pack): a flat notes/ folder plus a daily/ journal. The 'I just want to write' layout. Read when the project has these folders, OR when asked to jot a note, capture a quick thought, or write today's journal entry. Carries the linking habit and daily-entry behavior so templates and folder descriptions stay minimal. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack plain-notes`."
5
5
  metadata:
6
6
  pack: "plain-notes"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Plain Notes pack — how to work here
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-software-lifecycle
2
+ name: software-lifecycle
3
3
  description: "How to work in a Software Lifecycle project (the `software-lifecycle` starter pack): proposals → decisions → specs → postmortems, plus guides. Read when the project has these folders, or when asked how this project is organized. Carries the doc lifecycle, status flows, and per-folder agent behaviors so that guidance does not live inside template bodies or folder descriptions. The five workflows — frame a proposal, write a spec, record a decision, write a postmortem, review a design — each ship as their own sibling skill in this pack. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
5
5
  metadata:
6
6
  pack: "software-lifecycle"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Software Lifecycle pack — how to work here
11
11
 
@@ -44,11 +44,11 @@ Authoring in this project is procedural, not conventional. Each workflow ships a
44
44
 
45
45
  | Workflow | Sibling skill | When |
46
46
  | --- | --- | --- |
47
- | Frame a proposal | `open-knowledge-pack-software-lifecycle-frame-a-proposal` | A change needs designing and arguing before anyone builds it. |
48
- | Write a spec | `open-knowledge-pack-software-lifecycle-write-a-spec` | An accepted proposal needs scoping into an implementable spec. |
49
- | Record a decision | `open-knowledge-pack-software-lifecycle-record-a-decision` | A decision was actually made and needs its context and consequences preserved. |
50
- | Write a postmortem | `open-knowledge-pack-software-lifecycle-write-a-postmortem` | An incident happened and the team needs a blameless write-up. |
51
- | Review a design | `open-knowledge-pack-software-lifecycle-review-a-design` | An existing proposal, spec, or decision needs pressure-testing for soundness. |
47
+ | Frame a proposal | `frame-a-proposal` | A change needs designing and arguing before anyone builds it. |
48
+ | Write a spec | `write-a-spec` | An accepted proposal needs scoping into an implementable spec. |
49
+ | Record a decision | `record-a-decision` | A decision was actually made and needs its context and consequences preserved. |
50
+ | Write a postmortem | `write-a-postmortem` | An incident happened and the team needs a blameless write-up. |
51
+ | Review a design | `review-a-design` | An existing proposal, spec, or decision needs pressure-testing for soundness. |
52
52
 
53
53
  ## Templates
54
54
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-software-lifecycle-frame-a-proposal
2
+ name: frame-a-proposal
3
3
  description: "Frame a new design proposal (RFC-shape) under proposals/ — problem before solution, named beneficiary and observable change, real alternatives, honest drawbacks, and a live open-questions backlog. Read when asked to frame a proposal, write an RFC, propose a design, pitch a change, draft a PRD-style design doc, or open a design proposal for review. Do NOT read to record a decision after it is accepted (use record-a-decision), to write an implementation spec (use write-a-spec), to write a postmortem (use write-a-postmortem), or to review or critique an existing design (use review-a-design)."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
5
5
  metadata:
6
6
  pack: "software-lifecycle"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
 
11
11
  # Frame a proposal — turn a problem into a reviewable RFC
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-software-lifecycle-record-a-decision
2
+ name: record-a-decision
3
3
  description: "Records an architecture decision as a Nygard/MADR-shaped ADR under decisions/ — capturing the context that forced the choice, the options weighed, the decision itself, and its consequences in both directions, plus the supersedes chain that keeps a decision log honest. Read when asked to record an architecture decision, write an ADR, log the decision we made, document why we chose X over Y, capture this decision for the record, or supersede an old decision with a new one. Do NOT read to frame a proposal or explore an idea not yet decided (frame-a-proposal), to write a spec or implementation plan (write-a-spec), to write an incident postmortem (write-a-postmortem), or to judge whether a design is sound (review-a-design). This skill records a decision already made; it does not make one."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
5
5
  metadata:
6
6
  pack: "software-lifecycle"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
 
11
11
  # Record a decision — write an ADR under `decisions/`
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-software-lifecycle-review-a-design
2
+ name: review-a-design
3
3
  description: "Reviews whether a design is SOUND — solving the right problem, derived from its stated goals and constraints — and emits ranked, evidence-backed findings, not edits. Read when asked to 'review this design', 'is this design sound', 'pressure-test this proposal', 'do a design review', 'does this solve the right problem', 'poke holes in this spec', 'should we build this', or to critique a proposal / spec / ADR / architecture or product decision. Do NOT read when the user wants to AUTHOR one of these — routing a new proposal is frame-a-proposal, a spec is write-a-spec, a decision record is record-a-decision, a postmortem is write-a-postmortem. Do NOT read for code review of a diff, or to fact-check individual claims (that is a correctness pass, a different job)."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
5
5
  metadata:
6
6
  pack: "software-lifecycle"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
 
11
11
  # Review a design — is it sound, not just complete
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-software-lifecycle-write-a-postmortem
2
+ name: write-a-postmortem
3
3
  description: "Write a blameless incident postmortem under postmortems/ following the Google SRE shape — evidence-based timeline, trigger vs root cause vs symptom, contributing factors, what went well, and owned+dated+verifiable action items. Read when asked to write a postmortem, do an incident review, run a root cause analysis, write up the outage, retro on the outage, or when the user says we had an incident and wants it documented. Do NOT read to frame a proposal (use frame-a-proposal), write a spec (use write-a-spec), record a decision (use record-a-decision), or review a design (use review-a-design) — a postmortem documents an incident that already happened, it does not propose, specify, decide, or critique future work."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
5
5
  metadata:
6
6
  pack: "software-lifecycle"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
 
11
11
  # Write a postmortem
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-software-lifecycle-write-a-spec
2
+ name: write-a-spec
3
3
  description: "Scope a feature end to end and write an implementation spec under specs/ from an accepted proposal — current-system mapping, goals/non-goals, a Decision Log for one-way-door choices, a live Open Questions backlog, and a real migration + test plan. Read when asked to write a spec, scope this feature, turn this proposal into a spec, plan the implementation, or break this into tasks. Do NOT fire on frame a proposal or write the PRD (sibling frame-a-proposal — a PRD frames a change before it is accepted; this skill starts once one is), record a decision or write the ADR (record-a-decision), write a postmortem (write-a-postmortem), or review this design (review-a-design) — those are separate skills. Complements the platform open-knowledge skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
5
5
  metadata:
6
6
  pack: "software-lifecycle"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Write a spec — scope a feature and commit an implementation spec
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-worldbuilding
2
+ name: worldbuilding
3
3
  description: "How to work in a Worldbuilding project (the `worldbuilding` starter pack): a fiction encyclopedia of characters, settings, themes, factions, and lore. Read when the project has these folders, OR when asked to add a character, setting, faction, or piece of lore, or to check the world for internal consistency. Carries the auto-stub and consistency behaviors so that guidance does not live inside template bodies or folder descriptions. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack worldbuilding`."
5
5
  metadata:
6
6
  pack: "worldbuilding"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Worldbuilding pack — how to work here
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: open-knowledge-pack-writing-pipeline
2
+ name: writing-workflow
3
3
  description: "How to work in a Writing Pipeline project (the `writing-pipeline` starter pack): a three-stage drafting flow, ideas → drafts → published. Read when the project has these folders, OR when asked to capture an idea, start or revise a draft, review a piece before it ships, or publish it. Carries the stage flow and review behaviors so that guidance does not live inside template bodies or folder descriptions. Complements the platform `open-knowledge` skill; does not replace it."
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack writing-pipeline`."
5
5
  metadata:
6
6
  pack: "writing-pipeline"
7
7
  author: "Inkeep"
8
- repository: "https://github.com/inkeep/open-knowledge"
8
+ repository: "https://github.com/inkeep/open-knowledge-skills"
9
9
  ---
10
10
  # Writing Pipeline pack — how to work here
11
11
 
@@ -4,7 +4,7 @@ description: "Authoritative agent-runtime contract for working inside an OpenKno
4
4
  compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server + code execution."
5
5
  metadata:
6
6
  author: "Inkeep"
7
- repository: "https://github.com/inkeep/open-knowledge"
7
+ repository: "https://github.com/inkeep/open-knowledge-skills"
8
8
  ---
9
9
  # OpenKnowledge — agent guidance
10
10
 
@@ -115,8 +115,8 @@ Three recurring practices, not tool calls — each a full procedure that ships a
115
115
  | Layer | When | Procedure |
116
116
  | --- | --- | --- |
117
117
  | **ingest** | Preserve a shared URL/PDF/file verbatim, or you fetched a URL to ground a claim (binary sources preserved, not scraped). | `references/ingest-and-sources.md` — ships here, §Grounding depends on it |
118
- | **research** | Investigate / compare / synthesize sources → `status: provisional` article + `sources:`. | `open-knowledge-pack-knowledge-base-research` skill |
119
- | **consolidate** | A decision was made → canonical source-of-truth with a `supersedes:` chain. | `open-knowledge-pack-knowledge-base-consolidate` skill |
118
+ | **research** | Investigate / compare / synthesize sources → `status: provisional` article + `sources:`. | `research-with-sources` skill |
119
+ | **consolidate** | A decision was made → canonical source-of-truth with a `supersedes:` chain. | `consolidate-notes` skill |
120
120
 
121
121
  Research and consolidate arrive with `ok seed --pack knowledge-base`. **Without that pack you do not have those procedures** — don't improvise one; do the work as an ordinary grounded `write`, or offer to seed it (`ok seed --pack knowledge-base --dry-run` shows what it would add).
122
122
 
@@ -12,8 +12,8 @@ Typical day-2 flow: user shares a URL → ingest (preserve) → user asks "now r
12
12
 
13
13
  - ingest → reference file `ingest-and-sources.md`, here in this bundle. Ships with every `ok init` because Core's Grounding rule depends on it, pack or no pack.
14
14
  - onboard a repo that already has content → reference file `onboard-existing-repo.md`, here in this bundle.
15
- - research / consolidate → their own skills, `open-knowledge-pack-knowledge-base-research` and `open-knowledge-pack-knowledge-base-consolidate`, installed alongside their pack by `ok seed --pack knowledge-base`. **Not available otherwise** — if the pack isn't seeded, say so rather than improvising a lookalike pipeline.
16
- - generate / refresh a codebase wiki → reference file `generate-and-refresh.md`, inside the `open-knowledge-pack-codebase-wiki` skill's bundle and readable once that skill loads. Installed by `ok seed --pack codebase-wiki`.
15
+ - research / consolidate → their own skills, `research-with-sources` and `consolidate-notes`, installed alongside their pack by `ok seed --pack knowledge-base`. **Not available otherwise** — if the pack isn't seeded, say so rather than improvising a lookalike pipeline.
16
+ - generate / refresh a codebase wiki → reference file `generate-and-refresh.md`, inside the `codebase-wiki` skill's bundle and readable once that skill loads. Installed by `ok seed --pack codebase-wiki`.
17
17
 
18
18
  Read the relevant procedure and execute its numbered steps with the OK verbs; don't skip its STOP gates.
19
19
 
@@ -4,7 +4,7 @@ description: "Use when the user wants to create, author, write, or design a new
4
4
  compatibility: "OpenKnowledge project recommended (uses the `write` / `edit` / `install` MCP verbs). Authoring + validation are pure file ops; live preview + eval want a running server (`ok start`)."
5
5
  metadata:
6
6
  author: "Inkeep"
7
- repository: "https://github.com/inkeep/open-knowledge"
7
+ repository: "https://github.com/inkeep/open-knowledge-skills"
8
8
  ---
9
9
 
10
10
  # Writing an OpenKnowledge skill