@glexcorp/gskp 0.1.1 → 0.1.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 (280) hide show
  1. package/AGENTS.md +2 -2
  2. package/CLAUDE.md +3 -3
  3. package/README.md +76 -77
  4. package/{global → base}/claude/fork-idea-branch/SKILL.md +1 -1
  5. package/{global → base}/claude/init-agentic-skills/CHANGELOG.md +8 -0
  6. package/base/claude/init-agentic-skills/SKILL.md +41 -0
  7. package/base/claude/init-agentic-skills/archive/v0.9/SKILL.md +56 -0
  8. package/{global → base}/claude/pack/CHANGELOG.md +8 -0
  9. package/base/claude/pack/SKILL.md +170 -0
  10. package/base/claude/pack/archive/v0.9/SKILL.md +170 -0
  11. package/{global → base}/claude/provision-agentic-config/CHANGELOG.md +4 -0
  12. package/base/claude/provision-agentic-config/SKILL.md +320 -0
  13. package/base/claude/provision-agentic-config/archive/v0.9/SKILL.md +320 -0
  14. package/{global → base}/claude/skills/CHANGELOG.md +4 -0
  15. package/base/claude/skills/SKILL.md +141 -0
  16. package/{global → base}/codex/init-agentic-skills/CHANGELOG.md +12 -0
  17. package/base/codex/init-agentic-skills/SKILL.md +43 -0
  18. package/base/codex/init-agentic-skills/agents/openai.yaml +7 -0
  19. package/base/codex/init-agentic-skills/archive/v0.10/SKILL.md +58 -0
  20. package/base/codex/init-agentic-skills/archive/v0.9/SKILL.md +58 -0
  21. package/{global → base}/codex/pack/CHANGELOG.md +8 -0
  22. package/base/codex/pack/SKILL.md +172 -0
  23. package/base/codex/pack/archive/v0.9/SKILL.md +172 -0
  24. package/{global → base}/codex/provision-agentic-config/CHANGELOG.md +4 -0
  25. package/base/codex/provision-agentic-config/SKILL.md +307 -0
  26. package/base/codex/provision-agentic-config/archive/v0.9/SKILL.md +307 -0
  27. package/{global → base}/codex/skills/CHANGELOG.md +4 -0
  28. package/base/codex/skills/SKILL.md +140 -0
  29. package/dist/skillpacks-manifest.json +155 -130
  30. package/docs/QUICKSTART.md +26 -24
  31. package/docs/decks.md +17 -17
  32. package/docs/packs.md +46 -46
  33. package/docs/skillpacks-npm-distribution.md +120 -72
  34. package/package.json +3 -4
  35. package/packs/alignment-page-admin/claude/upgrade-alignment-pages/SKILL.md +1 -1
  36. package/packs/alignment-page-admin/codex/upgrade-alignment-pages/SKILL.md +1 -1
  37. package/packs/docs-health/claude/hygiene/SKILL.md +10 -10
  38. package/packs/docs-health/codex/hygiene/SKILL.md +10 -10
  39. package/packs/exec-loop/claude/exec/SKILL.md +1 -1
  40. package/packs/exec-loop/claude/ship/SKILL.md +1 -1
  41. package/packs/exec-loop/codex/exec/SKILL.md +4 -4
  42. package/packs/exec-loop/codex/ship/SKILL.md +1 -1
  43. package/packs/gitops/claude/sync/CHANGELOG.md +10 -0
  44. package/packs/gitops/claude/sync/SKILL.md +12 -12
  45. package/packs/gitops/claude/sync/archive/v0.4/SKILL.md +175 -0
  46. package/packs/gitops/claude/sync/archive/v0.5/SKILL.md +175 -0
  47. package/packs/gitops/codex/sync/CHANGELOG.md +10 -0
  48. package/packs/gitops/codex/sync/SKILL.md +12 -12
  49. package/packs/gitops/codex/sync/archive/v0.4/SKILL.md +149 -0
  50. package/packs/gitops/codex/sync/archive/v0.5/SKILL.md +149 -0
  51. package/packs/monorepo/PACK.md +2 -2
  52. package/packs/monorepo/claude/mono-detect/SKILL.md +3 -3
  53. package/packs/monorepo/claude/mono-exec/SKILL.md +1 -1
  54. package/packs/monorepo/claude/mono-guard/SKILL.md +2 -2
  55. package/packs/monorepo/claude/mono-ship/SKILL.md +1 -1
  56. package/packs/monorepo/claude/scaffold/SKILL.md +1 -1
  57. package/packs/monorepo/codex/mono-detect/SKILL.md +3 -3
  58. package/packs/monorepo/codex/mono-exec/SKILL.md +1 -1
  59. package/packs/monorepo/codex/mono-guard/SKILL.md +2 -2
  60. package/packs/monorepo/codex/mono-ship/SKILL.md +1 -1
  61. package/packs/monorepo/codex/scaffold/SKILL.md +1 -1
  62. package/packs/session-analytics/claude/prompt-history-backfill/SKILL.md +1 -1
  63. package/packs/session-analytics/claude/session-triage/SKILL.md +1 -1
  64. package/packs/session-analytics/codex/prompt-history-backfill/SKILL.md +1 -1
  65. package/packs/session-analytics/codex/session-triage/SKILL.md +1 -1
  66. package/packs/skill-dev/claude/create-agentic-skill/CHANGELOG.md +8 -0
  67. package/packs/skill-dev/claude/create-agentic-skill/SKILL.md +4 -4
  68. package/packs/skill-dev/claude/create-agentic-skill/archive/v0.1/SKILL.md +91 -0
  69. package/packs/skill-dev/claude/create-agentic-skill/archive/v0.2/SKILL.md +91 -0
  70. package/packs/skill-dev/claude/create-local-skill/CHANGELOG.md +4 -0
  71. package/packs/skill-dev/claude/create-local-skill/SKILL.md +6 -6
  72. package/packs/skill-dev/claude/create-local-skill/archive/v0.1/SKILL.md +91 -0
  73. package/packs/skill-dev/claude/skill-interview/SKILL.md +3 -3
  74. package/packs/skill-dev/claude/targeted-skill-builder/CHANGELOG.md +4 -0
  75. package/packs/skill-dev/claude/targeted-skill-builder/SKILL.md +5 -5
  76. package/packs/skill-dev/claude/targeted-skill-builder/archive/v0.3/SKILL.md +116 -0
  77. package/packs/skill-dev/codex/create-agentic-skill/CHANGELOG.md +8 -0
  78. package/packs/skill-dev/codex/create-agentic-skill/SKILL.md +4 -4
  79. package/packs/skill-dev/codex/create-agentic-skill/archive/v0.1/SKILL.md +93 -0
  80. package/packs/skill-dev/codex/create-agentic-skill/archive/v0.2/SKILL.md +93 -0
  81. package/packs/skill-dev/codex/create-local-skill/CHANGELOG.md +4 -0
  82. package/packs/skill-dev/codex/create-local-skill/SKILL.md +6 -6
  83. package/packs/skill-dev/codex/create-local-skill/archive/v0.1/SKILL.md +80 -0
  84. package/packs/skill-dev/codex/skill-interview/SKILL.md +3 -3
  85. package/packs/skill-dev/codex/targeted-skill-builder/CHANGELOG.md +4 -0
  86. package/packs/skill-dev/codex/targeted-skill-builder/SKILL.md +6 -6
  87. package/packs/skill-dev/codex/targeted-skill-builder/archive/v0.3/SKILL.md +118 -0
  88. package/scripts/pack.sh +8 -2
  89. package/scripts/skill-links.sh +2 -2
  90. package/scripts/upgrade-alignment-page.mjs +1 -1
  91. package/src/cli/lifecycle.mjs +39 -11
  92. package/src/cli/pack-normalization.mjs +1 -1
  93. package/src/cli/run-pack-script.mjs +6 -16
  94. package/src/cli/update-check.mjs +1 -1
  95. package/global/claude/init-agentic-skills/scripts/init-agentic-skills.sh +0 -227
  96. package/global/codex/init-agentic-skills/agents/openai.yaml +0 -7
  97. package/global/codex/init-agentic-skills/scripts/init-agentic-skills.sh +0 -227
  98. package/init.sh +0 -207
  99. /package/{global → base}/claude/afps-status/ALIGNMENT-PAGE.md +0 -0
  100. /package/{global → base}/claude/afps-status/CHANGELOG.md +0 -0
  101. /package/{global → base}/claude/afps-status/SKILL.md +0 -0
  102. /package/{global → base}/claude/afps-status/archive/v0.0/SKILL.md +0 -0
  103. /package/{global → base}/claude/afps-status/archive/v0.1/SKILL.md +0 -0
  104. /package/{global → base}/claude/afps-status/archive/v0.2/SKILL.md +0 -0
  105. /package/{global → base}/claude/afps-status/archive/v0.3/SKILL.md +0 -0
  106. /package/{global → base}/claude/animation-design-planner/ALIGNMENT-PAGE.md +0 -0
  107. /package/{global → base}/claude/animation-design-planner/CHANGELOG.md +0 -0
  108. /package/{global → base}/claude/animation-design-planner/SKILL.md +0 -0
  109. /package/{global → base}/claude/animation-design-planner/archive/v0.0/SKILL.md +0 -0
  110. /package/{global → base}/claude/animation-design-planner/frameworks/css-transitions/SKILL.md +0 -0
  111. /package/{global → base}/claude/animation-design-planner/frameworks/gsap/SKILL.md +0 -0
  112. /package/{global → base}/claude/animation-design-planner/frameworks/motion-framer/SKILL.md +0 -0
  113. /package/{global → base}/claude/animation-design-planner/frameworks/threejs/SKILL.md +0 -0
  114. /package/{global → base}/claude/animation-design-planner/frameworks/web-animations-api/SKILL.md +0 -0
  115. /package/{global → base}/claude/autoresearch/CHANGELOG.md +0 -0
  116. /package/{global → base}/claude/autoresearch/SKILL.md +0 -0
  117. /package/{global → base}/claude/autoresearch-prep/CHANGELOG.md +0 -0
  118. /package/{global → base}/claude/autoresearch-prep/SKILL.md +0 -0
  119. /package/{global → base}/claude/codebase-status/CHANGELOG.md +0 -0
  120. /package/{global → base}/claude/codebase-status/SKILL.md +0 -0
  121. /package/{global → base}/claude/codebase-status/archive/v0.0/SKILL.md +0 -0
  122. /package/{global → base}/claude/codebase-status/archive/v0.1/SKILL.md +0 -0
  123. /package/{global → base}/claude/codebase-status/archive/v0.2/SKILL.md +0 -0
  124. /package/{global → base}/claude/codebase-status/archive/v0.3/SKILL.md +0 -0
  125. /package/{global → base}/claude/codebase-status/archive/v0.4/SKILL.md +0 -0
  126. /package/{global → base}/claude/codebase-status/archive/v0.5/SKILL.md +0 -0
  127. /package/{global → base}/claude/codebase-status/archive/v0.6/SKILL.md +0 -0
  128. /package/{global → base}/claude/codebase-status/archive/v0.7/SKILL.md +0 -0
  129. /package/{global → base}/claude/codebase-status/archive/v0.8/SKILL.md +0 -0
  130. /package/{global → base}/claude/codebase-status/archive/v0.9/SKILL.md +0 -0
  131. /package/{global → base}/claude/fork-idea-branch/ALIGNMENT-PAGE.md +0 -0
  132. /package/{global → base}/claude/fork-idea-branch/CHANGELOG.md +0 -0
  133. /package/{global → base}/claude/idea-scope-brief/ALIGNMENT-PAGE.md +0 -0
  134. /package/{global → base}/claude/idea-scope-brief/CHANGELOG.md +0 -0
  135. /package/{global → base}/claude/idea-scope-brief/SKILL.md +0 -0
  136. /package/{global → base}/claude/idea-scope-brief/archive/v0.0/SKILL.md +0 -0
  137. /package/{global → base}/claude/idea-scope-brief/archive/v0.1/SKILL.md +0 -0
  138. /package/{global → base}/claude/idea-scope-brief/archive/v0.10/SKILL.md +0 -0
  139. /package/{global → base}/claude/idea-scope-brief/archive/v0.11/SKILL.md +0 -0
  140. /package/{global → base}/claude/idea-scope-brief/archive/v0.12/SKILL.md +0 -0
  141. /package/{global → base}/claude/idea-scope-brief/archive/v0.13/SKILL.md +0 -0
  142. /package/{global → base}/claude/idea-scope-brief/archive/v0.14/SKILL.md +0 -0
  143. /package/{global → base}/claude/idea-scope-brief/archive/v0.15/SKILL.md +0 -0
  144. /package/{global → base}/claude/idea-scope-brief/archive/v0.2/SKILL.md +0 -0
  145. /package/{global → base}/claude/idea-scope-brief/archive/v0.3/SKILL.md +0 -0
  146. /package/{global → base}/claude/idea-scope-brief/archive/v0.4/SKILL.md +0 -0
  147. /package/{global → base}/claude/idea-scope-brief/archive/v0.5/SKILL.md +0 -0
  148. /package/{global → base}/claude/idea-scope-brief/archive/v0.6/SKILL.md +0 -0
  149. /package/{global → base}/claude/idea-scope-brief/archive/v0.7/SKILL.md +0 -0
  150. /package/{global → base}/claude/idea-scope-brief/archive/v0.8/SKILL.md +0 -0
  151. /package/{global → base}/claude/idea-scope-brief/archive/v0.9/SKILL.md +0 -0
  152. /package/{global → base}/claude/init-agentic-skills/archive/v0.0/SKILL.md +0 -0
  153. /package/{global → base}/claude/init-agentic-skills/archive/v0.1/SKILL.md +0 -0
  154. /package/{global → base}/claude/init-agentic-skills/archive/v0.2/SKILL.md +0 -0
  155. /package/{global → base}/claude/init-agentic-skills/archive/v0.3/SKILL.md +0 -0
  156. /package/{global → base}/claude/init-agentic-skills/archive/v0.4/SKILL.md +0 -0
  157. /package/{global → base}/claude/init-agentic-skills/archive/v0.5/SKILL.md +0 -0
  158. /package/{global → base}/claude/init-agentic-skills/archive/v0.6/SKILL.md +0 -0
  159. /package/{global → base}/claude/init-agentic-skills/archive/v0.7/SKILL.md +0 -0
  160. /package/{global/claude/init-agentic-skills → base/claude/init-agentic-skills/archive/v0.8}/SKILL.md +0 -0
  161. /package/{global → base}/claude/pack/archive/v0.0/SKILL.md +0 -0
  162. /package/{global → base}/claude/pack/archive/v0.1/SKILL.md +0 -0
  163. /package/{global → base}/claude/pack/archive/v0.2/SKILL.md +0 -0
  164. /package/{global → base}/claude/pack/archive/v0.3/SKILL.md +0 -0
  165. /package/{global → base}/claude/pack/archive/v0.4/SKILL.md +0 -0
  166. /package/{global → base}/claude/pack/archive/v0.5/SKILL.md +0 -0
  167. /package/{global → base}/claude/pack/archive/v0.6/SKILL.md +0 -0
  168. /package/{global → base}/claude/pack/archive/v0.7/SKILL.md +0 -0
  169. /package/{global/claude/pack → base/claude/pack/archive/v0.8}/SKILL.md +0 -0
  170. /package/{global → base}/claude/pack/scripts/pack.sh +0 -0
  171. /package/{global → base}/claude/provision-agentic-config/ALIGNMENT-PAGE.md +0 -0
  172. /package/{global → base}/claude/provision-agentic-config/archive/v0.0/SKILL.md +0 -0
  173. /package/{global → base}/claude/provision-agentic-config/archive/v0.1/SKILL.md +0 -0
  174. /package/{global/claude/provision-agentic-config → base/claude/provision-agentic-config/archive/v0.10}/SKILL.md +0 -0
  175. /package/{global → base}/claude/provision-agentic-config/archive/v0.2/SKILL.md +0 -0
  176. /package/{global → base}/claude/provision-agentic-config/archive/v0.3/SKILL.md +0 -0
  177. /package/{global → base}/claude/provision-agentic-config/archive/v0.4/SKILL.md +0 -0
  178. /package/{global → base}/claude/provision-agentic-config/archive/v0.5/SKILL.md +0 -0
  179. /package/{global → base}/claude/provision-agentic-config/archive/v0.6/SKILL.md +0 -0
  180. /package/{global → base}/claude/provision-agentic-config/archive/v0.7/SKILL.md +0 -0
  181. /package/{global → base}/claude/provision-agentic-config/archive/v0.8/SKILL.md +0 -0
  182. /package/{global → base}/claude/skills/archive/v0.0/SKILL.md +0 -0
  183. /package/{global → base}/claude/skills/archive/v0.1/SKILL.md +0 -0
  184. /package/{global → base}/claude/skills/archive/v0.2/SKILL.md +0 -0
  185. /package/{global → base}/claude/skills/archive/v0.3/SKILL.md +0 -0
  186. /package/{global → base}/claude/skills/archive/v0.4/SKILL.md +0 -0
  187. /package/{global → base}/claude/skills/archive/v0.5/SKILL.md +0 -0
  188. /package/{global → base}/claude/skills/archive/v0.6/SKILL.md +0 -0
  189. /package/{global/claude/skills → base/claude/skills/archive/v0.7}/SKILL.md +0 -0
  190. /package/{global → base}/codex/afps-status/ALIGNMENT-PAGE.md +0 -0
  191. /package/{global → base}/codex/afps-status/CHANGELOG.md +0 -0
  192. /package/{global → base}/codex/afps-status/SKILL.md +0 -0
  193. /package/{global → base}/codex/afps-status/agents/openai.yaml +0 -0
  194. /package/{global → base}/codex/afps-status/archive/v0.0/SKILL.md +0 -0
  195. /package/{global → base}/codex/afps-status/archive/v0.1/SKILL.md +0 -0
  196. /package/{global → base}/codex/afps-status/archive/v0.2/SKILL.md +0 -0
  197. /package/{global → base}/codex/afps-status/archive/v0.3/SKILL.md +0 -0
  198. /package/{global → base}/codex/animation-design-planner/ALIGNMENT-PAGE.md +0 -0
  199. /package/{global → base}/codex/animation-design-planner/CHANGELOG.md +0 -0
  200. /package/{global → base}/codex/animation-design-planner/SKILL.md +0 -0
  201. /package/{global → base}/codex/animation-design-planner/agents/openai.yaml +0 -0
  202. /package/{global → base}/codex/animation-design-planner/archive/v0.0/SKILL.md +0 -0
  203. /package/{global → base}/codex/animation-design-planner/frameworks/css-transitions/SKILL.md +0 -0
  204. /package/{global → base}/codex/animation-design-planner/frameworks/gsap/SKILL.md +0 -0
  205. /package/{global → base}/codex/animation-design-planner/frameworks/motion-framer/SKILL.md +0 -0
  206. /package/{global → base}/codex/animation-design-planner/frameworks/threejs/SKILL.md +0 -0
  207. /package/{global → base}/codex/animation-design-planner/frameworks/web-animations-api/SKILL.md +0 -0
  208. /package/{global → base}/codex/codebase-status/CHANGELOG.md +0 -0
  209. /package/{global → base}/codex/codebase-status/SKILL.md +0 -0
  210. /package/{global → base}/codex/codebase-status/agents/openai.yaml +0 -0
  211. /package/{global → base}/codex/codebase-status/archive/v0.0/SKILL.md +0 -0
  212. /package/{global → base}/codex/codebase-status/archive/v0.1/SKILL.md +0 -0
  213. /package/{global → base}/codex/codebase-status/archive/v0.2/SKILL.md +0 -0
  214. /package/{global → base}/codex/codebase-status/archive/v0.3/SKILL.md +0 -0
  215. /package/{global → base}/codex/codebase-status/archive/v0.4/SKILL.md +0 -0
  216. /package/{global → base}/codex/codebase-status/archive/v0.5/SKILL.md +0 -0
  217. /package/{global → base}/codex/codebase-status/archive/v0.6/SKILL.md +0 -0
  218. /package/{global → base}/codex/codebase-status/archive/v0.7/SKILL.md +0 -0
  219. /package/{global → base}/codex/codebase-status/archive/v0.8/SKILL.md +0 -0
  220. /package/{global → base}/codex/codebase-status/archive/v0.9/SKILL.md +0 -0
  221. /package/{global → base}/codex/idea-scope-brief/ALIGNMENT-PAGE.md +0 -0
  222. /package/{global → base}/codex/idea-scope-brief/CHANGELOG.md +0 -0
  223. /package/{global → base}/codex/idea-scope-brief/SKILL.md +0 -0
  224. /package/{global → base}/codex/idea-scope-brief/agents/openai.yaml +0 -0
  225. /package/{global → base}/codex/idea-scope-brief/archive/v0.0/SKILL.md +0 -0
  226. /package/{global → base}/codex/idea-scope-brief/archive/v0.1/SKILL.md +0 -0
  227. /package/{global → base}/codex/idea-scope-brief/archive/v0.10/SKILL.md +0 -0
  228. /package/{global → base}/codex/idea-scope-brief/archive/v0.11/SKILL.md +0 -0
  229. /package/{global → base}/codex/idea-scope-brief/archive/v0.12/SKILL.md +0 -0
  230. /package/{global → base}/codex/idea-scope-brief/archive/v0.13/SKILL.md +0 -0
  231. /package/{global → base}/codex/idea-scope-brief/archive/v0.14/SKILL.md +0 -0
  232. /package/{global → base}/codex/idea-scope-brief/archive/v0.15/SKILL.md +0 -0
  233. /package/{global → base}/codex/idea-scope-brief/archive/v0.16/SKILL.md +0 -0
  234. /package/{global → base}/codex/idea-scope-brief/archive/v0.2/SKILL.md +0 -0
  235. /package/{global → base}/codex/idea-scope-brief/archive/v0.3/SKILL.md +0 -0
  236. /package/{global → base}/codex/idea-scope-brief/archive/v0.4/SKILL.md +0 -0
  237. /package/{global → base}/codex/idea-scope-brief/archive/v0.5/SKILL.md +0 -0
  238. /package/{global → base}/codex/idea-scope-brief/archive/v0.6/SKILL.md +0 -0
  239. /package/{global → base}/codex/idea-scope-brief/archive/v0.7/SKILL.md +0 -0
  240. /package/{global → base}/codex/idea-scope-brief/archive/v0.8/SKILL.md +0 -0
  241. /package/{global → base}/codex/idea-scope-brief/archive/v0.9/SKILL.md +0 -0
  242. /package/{global → base}/codex/init-agentic-skills/archive/v0.0/SKILL.md +0 -0
  243. /package/{global → base}/codex/init-agentic-skills/archive/v0.1/SKILL.md +0 -0
  244. /package/{global → base}/codex/init-agentic-skills/archive/v0.2/SKILL.md +0 -0
  245. /package/{global → base}/codex/init-agentic-skills/archive/v0.3/SKILL.md +0 -0
  246. /package/{global → base}/codex/init-agentic-skills/archive/v0.4/SKILL.md +0 -0
  247. /package/{global → base}/codex/init-agentic-skills/archive/v0.5/SKILL.md +0 -0
  248. /package/{global → base}/codex/init-agentic-skills/archive/v0.6/SKILL.md +0 -0
  249. /package/{global → base}/codex/init-agentic-skills/archive/v0.7/SKILL.md +0 -0
  250. /package/{global/codex/init-agentic-skills → base/codex/init-agentic-skills/archive/v0.8}/SKILL.md +0 -0
  251. /package/{global → base}/codex/pack/archive/v0.0/SKILL.md +0 -0
  252. /package/{global → base}/codex/pack/archive/v0.1/SKILL.md +0 -0
  253. /package/{global → base}/codex/pack/archive/v0.2/SKILL.md +0 -0
  254. /package/{global → base}/codex/pack/archive/v0.3/SKILL.md +0 -0
  255. /package/{global → base}/codex/pack/archive/v0.4/SKILL.md +0 -0
  256. /package/{global → base}/codex/pack/archive/v0.5/SKILL.md +0 -0
  257. /package/{global → base}/codex/pack/archive/v0.6/SKILL.md +0 -0
  258. /package/{global → base}/codex/pack/archive/v0.7/SKILL.md +0 -0
  259. /package/{global/codex/pack → base/codex/pack/archive/v0.8}/SKILL.md +0 -0
  260. /package/{global → base}/codex/pack/scripts/pack.sh +0 -0
  261. /package/{global → base}/codex/provision-agentic-config/ALIGNMENT-PAGE.md +0 -0
  262. /package/{global → base}/codex/provision-agentic-config/agents/openai.yaml +0 -0
  263. /package/{global → base}/codex/provision-agentic-config/archive/v0.0/SKILL.md +0 -0
  264. /package/{global → base}/codex/provision-agentic-config/archive/v0.1/SKILL.md +0 -0
  265. /package/{global/codex/provision-agentic-config → base/codex/provision-agentic-config/archive/v0.10}/SKILL.md +0 -0
  266. /package/{global → base}/codex/provision-agentic-config/archive/v0.2/SKILL.md +0 -0
  267. /package/{global → base}/codex/provision-agentic-config/archive/v0.3/SKILL.md +0 -0
  268. /package/{global → base}/codex/provision-agentic-config/archive/v0.4/SKILL.md +0 -0
  269. /package/{global → base}/codex/provision-agentic-config/archive/v0.5/SKILL.md +0 -0
  270. /package/{global → base}/codex/provision-agentic-config/archive/v0.6/SKILL.md +0 -0
  271. /package/{global → base}/codex/provision-agentic-config/archive/v0.7/SKILL.md +0 -0
  272. /package/{global → base}/codex/provision-agentic-config/archive/v0.8/SKILL.md +0 -0
  273. /package/{global → base}/codex/skills/archive/v0.0/SKILL.md +0 -0
  274. /package/{global → base}/codex/skills/archive/v0.1/SKILL.md +0 -0
  275. /package/{global → base}/codex/skills/archive/v0.2/SKILL.md +0 -0
  276. /package/{global → base}/codex/skills/archive/v0.3/SKILL.md +0 -0
  277. /package/{global → base}/codex/skills/archive/v0.4/SKILL.md +0 -0
  278. /package/{global → base}/codex/skills/archive/v0.5/SKILL.md +0 -0
  279. /package/{global → base}/codex/skills/archive/v0.6/SKILL.md +0 -0
  280. /package/{global/codex/skills → base/codex/skills/archive/v0.7}/SKILL.md +0 -0
@@ -12,6 +12,7 @@ import {
12
12
  unlinkSync,
13
13
  writeFileSync
14
14
  } from 'node:fs';
15
+ import { homedir } from 'node:os';
15
16
  import { basename, dirname, join, relative, resolve } from 'node:path';
16
17
  import { fileURLToPath } from 'node:url';
17
18
  import {
@@ -33,7 +34,7 @@ const HIBERNATED_REACTIVATION_TEXT =
33
34
  'Reactivation requires a stable service/API, a known auth contract, and updated smoke tests.';
34
35
  const TOOLS = ['claude', 'codex'];
35
36
  const AGENT_DOCS = ['AGENTS.md', 'CLAUDE.md'];
36
- const KNOWN_PROVISION_AGENTIC_CONFIG_VERSIONS = new Set(['v0.5', 'v0.6', 'v0.7', 'v0.8', 'v0.9', 'v0.10']);
37
+ const KNOWN_PROVISION_AGENTIC_CONFIG_VERSIONS = new Set(['v0.5', 'v0.6', 'v0.7', 'v0.8', 'v0.9', 'v0.10', 'v0.11']);
37
38
  const moduleDir = dirname(fileURLToPath(import.meta.url));
38
39
  const packageRoot = resolve(moduleDir, '..', '..');
39
40
  const checkoutRoot = resolve(packageRoot, '..', '..');
@@ -126,7 +127,7 @@ function packSkillEntries(manifest, packName, tool) {
126
127
 
127
128
  function baseSkillEntries(manifest, tool) {
128
129
  return manifestSkills(manifest).filter((skill) => {
129
- return skill.scope === 'global' && skill.platform === tool && skill.path;
130
+ return skill.scope === 'base' && skill.platform === tool && skill.path;
130
131
  });
131
132
  }
132
133
 
@@ -144,7 +145,7 @@ function uniqueBaseSkillNames(manifest) {
144
145
  return [
145
146
  ...new Set(
146
147
  manifestSkills(manifest)
147
- .filter((skill) => skill.scope === 'global' && skill.name)
148
+ .filter((skill) => skill.scope === 'base' && skill.name)
148
149
  .map((skill) => skill.name)
149
150
  )
150
151
  ].sort((a, b) => a.localeCompare(b));
@@ -269,11 +270,11 @@ function managedMarkerField(target, field) {
269
270
 
270
271
  function sourceOwnedBySkillpacks(source) {
271
272
  const ownedPrefixes = [
272
- join(packageRoot, 'global', 'claude'),
273
- join(packageRoot, 'global', 'codex'),
273
+ join(packageRoot, 'base', 'claude'),
274
+ join(packageRoot, 'base', 'codex'),
274
275
  join(packageRoot, 'packs'),
275
- join(checkoutRoot, 'global', 'claude'),
276
- join(checkoutRoot, 'global', 'codex'),
276
+ join(checkoutRoot, 'base', 'claude'),
277
+ join(checkoutRoot, 'base', 'codex'),
277
278
  join(checkoutRoot, 'packs')
278
279
  ];
279
280
 
@@ -614,7 +615,7 @@ function staleProjectPackError(pack, location, reason = '') {
614
615
  const detail = reason ? ` ${reason}` : '';
615
616
  return new Error(
616
617
  `Stale pack entry '${pack}' in .agents/project.json ${location}.${detail} ` +
617
- `Run 'npx @glexcorp/gskp remove ${pack}' or edit .agents/project.json to remove or rename it.`
618
+ `Run 'npx skillpacks remove ${pack}' or edit .agents/project.json to remove or rename it.`
618
619
  );
619
620
  }
620
621
 
@@ -887,6 +888,29 @@ export async function initProject({ manifest, projectRoot = process.cwd() }) {
887
888
  });
888
889
  }
889
890
 
891
+ export async function uninstallGlobal({ homeRoot = homedir() } = {}) {
892
+ let removed = 0;
893
+
894
+ for (const tool of TOOLS) {
895
+ const root = join(homeRoot, `.${tool}`, 'skills');
896
+ if (!existsSync(root)) {
897
+ continue;
898
+ }
899
+
900
+ for (const entry of readdirSync(root).sort((a, b) => a.localeCompare(b))) {
901
+ const target = join(root, entry);
902
+ if (removeRepoSkillInstall(target)) {
903
+ console.log(`Removed ${relative(homeRoot, target)}`);
904
+ removed += 1;
905
+ }
906
+ }
907
+ }
908
+
909
+ console.log(`Done. Removed ${removed} repo-managed base skill install(s) from ${homeRoot}.`);
910
+ console.log('Base skills now install project-local via `npx skillpacks init`.');
911
+ return 0;
912
+ }
913
+
890
914
  export async function installResolved({ manifest, projectRoot = process.cwd(), packs = [], skills = [] }) {
891
915
  return withProjectLock(projectRoot, `install ${[...packs, ...skills].join(' ')}`.trim(), async () => {
892
916
  for (const pack of packs) {
@@ -983,7 +1007,7 @@ function pruneOrphanedSkillRoots({ manifest, projectRoot, dryRun = false }) {
983
1007
  }
984
1008
 
985
1009
  function provisionerSkillText() {
986
- const sourcePath = resolvePackagedPath('global/codex/provision-agentic-config/SKILL.md');
1010
+ const sourcePath = resolvePackagedPath('base/codex/provision-agentic-config/SKILL.md');
987
1011
  if (!existsSync(sourcePath)) {
988
1012
  throw new Error(`Cannot find canonical provision-agentic-config skill at ${sourcePath}`);
989
1013
  }
@@ -1202,6 +1226,10 @@ export async function doctorProject({ manifest, projectRoot = process.cwd(), arg
1202
1226
  console.log(`Project skill update mode: ${mode}`);
1203
1227
  console.log('Skill install drift (.claude/skills, .codex/skills):');
1204
1228
 
1229
+ const refreshCmd = existsSync(join(checkoutRoot, '.git'))
1230
+ ? `${checkoutRoot}/scripts/pack.sh refresh`
1231
+ : 'npx skillpacks refresh';
1232
+
1205
1233
  let found = false;
1206
1234
  let anyStale = false;
1207
1235
  for (const target of installedSkillTargets(projectRoot)) {
@@ -1220,7 +1248,7 @@ export async function doctorProject({ manifest, projectRoot = process.cwd(), arg
1220
1248
  console.log(` pinned ${rel} (frozen ${status.recordedVersion || '?'})`);
1221
1249
  break;
1222
1250
  case 'unknown':
1223
- console.log(` unknown ${rel} — run refresh to enable drift tracking`);
1251
+ console.log(` unknown ${rel} — run \`${refreshCmd}\` to enable drift tracking`);
1224
1252
  break;
1225
1253
  case 'missing-source':
1226
1254
  console.log(` missing ${rel} — canonical source no longer exists`);
@@ -1242,7 +1270,7 @@ export async function doctorProject({ manifest, projectRoot = process.cwd(), arg
1242
1270
 
1243
1271
  if (anyStale) {
1244
1272
  console.log('');
1245
- console.log('Fix: npx @glexcorp/gskp refresh (or scripts/pack.sh refresh from a source checkout)');
1273
+ console.log(`Fix: ${refreshCmd}`);
1246
1274
  return 1;
1247
1275
  }
1248
1276
 
@@ -440,7 +440,7 @@ function allPacksExist(packs, activePacks) {
440
440
  }
441
441
 
442
442
  function unknownNameError(token, manifest) {
443
- return new Error(`Unknown pack or skill '${token}'. Available packs: ${availablePacksInline(manifest)}\nRun 'npx @glexcorp/gskp list' to see all available skills.`);
443
+ return new Error(`Unknown pack or skill '${token}'. Available packs: ${availablePacksInline(manifest)}\nRun 'npx skillpacks list' to see all available skills.`);
444
444
  }
445
445
 
446
446
  function hibernatedPackError(requested, pack) {
@@ -17,6 +17,7 @@ import {
17
17
  pruneProject,
18
18
  refreshProject,
19
19
  removeResolved,
20
+ uninstallGlobal,
20
21
  unpinSkill
21
22
  } from './lifecycle.mjs';
22
23
 
@@ -25,7 +26,6 @@ const packageRoot = resolve(moduleDir, '..', '..');
25
26
  const checkoutRoot = resolve(packageRoot, '..', '..');
26
27
  const packageJsonPath = join(packageRoot, 'package.json');
27
28
  const packScriptPath = resolvePackagedPath('scripts/pack.sh');
28
- const initScriptPath = resolvePackagedPath('init.sh');
29
29
  const manifestPath = resolvePackagedPath('dist/skillpacks-manifest.json');
30
30
  const alignmentUpgradeScriptPath = resolvePackagedPath('scripts/upgrade-alignment-page.mjs');
31
31
  const alignmentAuditScriptPath = resolvePackagedPath('scripts/audit-alignment-pages.mjs');
@@ -116,11 +116,6 @@ function runCommand(command, args, options = {}) {
116
116
  });
117
117
  }
118
118
 
119
- function runGlobalInit(args) {
120
- requireCommand('bash', 'Install bash before running gskp.');
121
- return runCommand('bash', [initScriptPath, ...args]);
122
- }
123
-
124
119
  function assertNoArgs(command, args) {
125
120
  if (args.length > 0) {
126
121
  throw new Error(`${command} does not accept arguments`);
@@ -364,7 +359,7 @@ Commands:
364
359
  install <name...> Enable packs or individual skills
365
360
  install-deck <deck> [--full] Enable packs selected by deck metadata
366
361
  init Install base skills into this project
367
- init --global [args...] Install user-home global core skills with packaged init.sh
362
+ uninstall-global Remove legacy repo-managed base skills from ~/.claude and ~/.codex
368
363
  remove <name...> Remove packs or individual skills
369
364
  refresh Recreate local skill roots from project config
370
365
  doctor Report skill-install drift
@@ -383,7 +378,6 @@ Commands:
383
378
  unpin <skill> Revert a pinned skill to latest
384
379
  set-mode <mode> Set project agent mode
385
380
  which <skill> Show which pack provides a skill
386
- init-global [args...] Alias for init --global
387
381
 
388
382
  Project-local commands write to the current working directory.`);
389
383
  }
@@ -433,8 +427,9 @@ export async function runSkillpacksCli(args) {
433
427
  return setUpdateMode(rest[0]);
434
428
  }
435
429
 
436
- if (command === 'init-global') {
437
- return runGlobalInit(rest);
430
+ if (command === 'uninstall-global') {
431
+ assertNoArgs('uninstall-global', rest);
432
+ return uninstallGlobal();
438
433
  }
439
434
 
440
435
  if (command === 'install-deck') {
@@ -452,13 +447,8 @@ export async function runSkillpacksCli(args) {
452
447
  }
453
448
 
454
449
  if (command === 'init') {
455
- if (rest[0] === '--global') {
456
- return runGlobalInit(rest.slice(1));
457
- }
458
450
  if (rest.length > 0) {
459
- throw new Error(
460
- "init does not accept arguments except '--global'. Use 'gskp init --global' for user-home global core skills."
461
- );
451
+ throw new Error('init does not accept arguments');
462
452
  }
463
453
  return initProject({
464
454
  manifest: readManifest(),
@@ -62,7 +62,7 @@ export async function printUpdateNotice(checkPromise, currentVersion) {
62
62
  if (compareVersions(currentVersion, latest) >= 0) return;
63
63
 
64
64
  const msg = ` Update available: ${currentVersion} → ${latest}`;
65
- const run = ' Run: npx @glexcorp/gskp@latest';
65
+ const run = ' Run: npx skillpacks@latest';
66
66
  const width = Math.max(msg.length, run.length) + 2;
67
67
  const pad = (s) => s + ' '.repeat(width - s.length);
68
68
  const border = '─'.repeat(width);
@@ -1,227 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
5
- DELEGATE_SCRIPT="init.sh"
6
-
7
- resolve_repo_root() {
8
- local source_tree_root
9
- if source_tree_root="$(cd "$SKILL_DIR/../../.." 2>/dev/null && pwd -P)"; then
10
- if [ -f "$source_tree_root/$DELEGATE_SCRIPT" ]; then
11
- printf '%s\n' "$source_tree_root"
12
- return 0
13
- fi
14
- else
15
- source_tree_root="<unresolved>"
16
- fi
17
-
18
- local managed_file="$SKILL_DIR/.agentic-skills-managed"
19
- local managed_source=""
20
- if [ -f "$managed_file" ]; then
21
- while IFS= read -r line; do
22
- case "$line" in
23
- source=*)
24
- managed_source="${line#source=}"
25
- break
26
- ;;
27
- esac
28
- done < "$managed_file"
29
- fi
30
-
31
- local provenance_root="<unresolved>"
32
- if [ -n "$managed_source" ] && [ -d "$managed_source" ]; then
33
- if provenance_root="$(cd "$managed_source/../../.." 2>/dev/null && pwd -P)"; then
34
- if [ -f "$provenance_root/$DELEGATE_SCRIPT" ]; then
35
- printf '%s\n' "$provenance_root"
36
- return 0
37
- fi
38
- else
39
- provenance_root="<unresolved>"
40
- fi
41
- fi
42
-
43
- {
44
- echo "ERROR: Unable to resolve agentic-skills repository root for init-agentic-skills launcher."
45
- echo "Tried source-tree candidate: $source_tree_root"
46
- echo "Tried managed-install provenance: $managed_file source=${managed_source:-<missing>} -> $provenance_root"
47
- echo "Expected delegated script: $DELEGATE_SCRIPT"
48
- } >&2
49
- return 1
50
- }
51
-
52
- REPO_ROOT="$(resolve_repo_root)"
53
-
54
- PREFERENCES_FILE="$HOME/.agentic-skills/preferences.json"
55
- SETTINGS_FILE="$HOME/.claude/settings.json"
56
- DRIFT_HOOK_CMD="bash $REPO_ROOT/scripts/skill-drift-hook.sh"
57
-
58
- status() {
59
- echo "agentic-skills checkout: $REPO_ROOT"
60
- git -C "$REPO_ROOT" rev-parse --short HEAD 2>/dev/null | sed 's/^/local commit: /' || true
61
- git -C "$REPO_ROOT" remote get-url origin 2>/dev/null | sed 's/^/remote URL: /' || echo "remote URL: unavailable"
62
-
63
- if [ -f "$PREFERENCES_FILE" ]; then
64
- python3 -c 'import json, pathlib, sys
65
- path = pathlib.Path(sys.argv[1])
66
- try:
67
- value = json.loads(path.read_text()).get("sync", {}).get("github_freshness_check")
68
- except Exception:
69
- value = None
70
- print("github freshness preference: " + (value if value in {"ask", "always", "never"} else "unset"))' "$PREFERENCES_FILE"
71
- else
72
- echo "github freshness preference: unset"
73
- fi
74
- }
75
-
76
- doctor() {
77
- # shellcheck source=/dev/null
78
- source "$REPO_ROOT/scripts/skill-links.sh" || { echo "ERROR: unable to load skill-links.sh" >&2; return 1; }
79
- echo "Global skill install drift (~/.claude/skills, ~/.codex/skills):"
80
- local found=false any_stale=false target line status rec cur
81
- while IFS= read -r target; do
82
- [ -n "$target" ] || continue
83
- line="$(skill_install_status "$target")"
84
- IFS=$'\t' read -r status rec cur <<< "$line"
85
- [ "$status" = "not-managed" ] && continue
86
- found=true
87
- case "$status" in
88
- ok) printf ' ok %s\n' "$target" ;;
89
- pinned) printf ' pinned %s (frozen %s)\n' "$target" "${rec:-?}" ;;
90
- unknown) printf ' unknown %s — rerun init to enable drift tracking\n' "$target" ;;
91
- missing-source) printf ' missing %s — canonical source no longer exists\n' "$target" ;;
92
- stale) printf ' STALE %s (%s -> %s)\n' "$target" "${rec:-?}" "${cur:-?}"; any_stale=true ;;
93
- esac
94
- done < <(find "$HOME/.claude/skills" "$HOME/.codex/skills" -mindepth 1 -maxdepth 1 \( -type l -o -type d \) -print 2>/dev/null | sort)
95
- $found || echo " (no managed global skill installs found)"
96
- if $any_stale; then
97
- echo ""
98
- echo "Fix: /init-agentic-skills update (re-copies global skills from this checkout)"
99
- return 1
100
- fi
101
- return 0
102
- }
103
-
104
- set_pref() {
105
- local key="$1" val="$2" jqval
106
- case "$key" in
107
- session_start_hook|auto_refresh) ;;
108
- *) echo "ERROR: unknown preference '$key' (use session_start_hook or auto_refresh)" >&2; return 1 ;;
109
- esac
110
- case "$val" in
111
- true) jqval=true ;;
112
- false) jqval=false ;;
113
- *) echo "ERROR: value must be true or false" >&2; return 1 ;;
114
- esac
115
- command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required to set preferences" >&2; return 1; }
116
- mkdir -p "$(dirname "$PREFERENCES_FILE")"
117
- [ -f "$PREFERENCES_FILE" ] || echo '{}' > "$PREFERENCES_FILE"
118
- local tmp
119
- tmp="$(jq --arg k "$key" --argjson v "$jqval" '.skills = ((.skills // {}) + {($k): $v})' "$PREFERENCES_FILE")" || { echo "ERROR: jq failed updating $PREFERENCES_FILE" >&2; return 1; }
120
- [ -n "$tmp" ] || { echo "ERROR: jq produced empty output for $PREFERENCES_FILE" >&2; return 1; }
121
- echo "$tmp" > "$PREFERENCES_FILE"
122
- echo "Set skills.$key = $val in $PREFERENCES_FILE"
123
- }
124
-
125
- hook_enable() {
126
- command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required to register the hook" >&2; return 1; }
127
- mkdir -p "$(dirname "$SETTINGS_FILE")"
128
- [ -f "$SETTINGS_FILE" ] || echo '{}' > "$SETTINGS_FILE"
129
- local tmp
130
- tmp="$(jq --arg cmd "$DRIFT_HOOK_CMD" '
131
- .hooks = (.hooks // {})
132
- | .hooks.SessionStart = (.hooks.SessionStart // [])
133
- | if ([.hooks.SessionStart[]?.hooks[]? | select(.command == $cmd)] | length) > 0
134
- then .
135
- else .hooks.SessionStart += [ { "hooks": [ { "type": "command", "command": $cmd } ] } ]
136
- end
137
- ' "$SETTINGS_FILE")" || { echo "ERROR: jq failed updating $SETTINGS_FILE" >&2; return 1; }
138
- [ -n "$tmp" ] || { echo "ERROR: jq produced empty output for $SETTINGS_FILE" >&2; return 1; }
139
- echo "$tmp" > "$SETTINGS_FILE"
140
- set_pref session_start_hook true
141
- echo "Registered SessionStart drift hook in $SETTINGS_FILE"
142
- }
143
-
144
- hook_disable() {
145
- set_pref session_start_hook false
146
- command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required to remove the hook" >&2; return 1; }
147
- [ -f "$SETTINGS_FILE" ] || { echo "No $SETTINGS_FILE; nothing to remove."; return 0; }
148
- local tmp
149
- tmp="$(jq --arg cmd "$DRIFT_HOOK_CMD" '
150
- if .hooks.SessionStart then
151
- .hooks.SessionStart = ([ .hooks.SessionStart[]
152
- | .hooks = ([ .hooks[]? | select(.command != $cmd) ])
153
- | select((.hooks | length) > 0) ])
154
- | if (.hooks.SessionStart | length) == 0 then del(.hooks.SessionStart) else . end
155
- | if (.hooks | length) == 0 then del(.hooks) else . end
156
- else . end
157
- ' "$SETTINGS_FILE")" || { echo "ERROR: jq failed updating $SETTINGS_FILE" >&2; return 1; }
158
- [ -n "$tmp" ] || { echo "ERROR: jq produced empty output for $SETTINGS_FILE" >&2; return 1; }
159
- echo "$tmp" > "$SETTINGS_FILE"
160
- echo "Removed SessionStart drift hook from $SETTINGS_FILE"
161
- }
162
-
163
- show_prefs() {
164
- if [ -f "$PREFERENCES_FILE" ] && command -v jq >/dev/null 2>&1; then
165
- echo "session_start_hook: $(jq -r '.skills.session_start_hook // false' "$PREFERENCES_FILE")"
166
- echo "auto_refresh: $(jq -r '.skills.auto_refresh // false' "$PREFERENCES_FILE")"
167
- else
168
- echo "session_start_hook: false"
169
- echo "auto_refresh: false"
170
- fi
171
- }
172
-
173
- confirm_update() {
174
- if [ "${1:-}" = "--yes" ] || [ "${1:-}" = "-y" ]; then
175
- return 0
176
- fi
177
- printf "Check GitHub, fast-forward this checkout if possible, and rerun init.sh? [y/N] "
178
- read -r reply
179
- case "$reply" in
180
- y|Y|yes|YES) return 0 ;;
181
- *) echo "Update cancelled."; return 1 ;;
182
- esac
183
- }
184
-
185
- update_latest() {
186
- confirm_update "${1:-}"
187
- git -C "$REPO_ROOT" fetch origin
188
- git -C "$REPO_ROOT" rev-parse --short HEAD | sed 's/^/local before: /'
189
- git -C "$REPO_ROOT" rev-parse --short origin/HEAD | sed 's/^/origin HEAD: /'
190
- git -C "$REPO_ROOT" merge --ff-only origin/HEAD
191
- bash "$REPO_ROOT/$DELEGATE_SCRIPT"
192
- echo "Refresh complete."
193
- echo "Claude Code: run /reload-skills first; /clear starts a new empty-context conversation and can pick up the refreshed registry. Restart Claude Code if the top-level .claude/skills directory did not exist at session start or the skill is still invisible."
194
- echo 'Codex: start a fresh Codex CLI session if the $ skill list remains stale.'
195
- }
196
-
197
- case "${1:-}" in
198
- status)
199
- status
200
- ;;
201
- doctor)
202
- doctor
203
- ;;
204
- update|latest)
205
- mode="$1"
206
- shift
207
- update_latest "${1:-}"
208
- ;;
209
- set-pref)
210
- shift
211
- set_pref "${1:-}" "${2:-}"
212
- ;;
213
- show-prefs)
214
- show_prefs
215
- ;;
216
- hook)
217
- shift
218
- case "${1:-}" in
219
- enable) hook_enable ;;
220
- disable) hook_disable ;;
221
- *) echo "Usage: init-agentic-skills.sh hook <enable|disable>" >&2; exit 2 ;;
222
- esac
223
- ;;
224
- *)
225
- exec bash "$REPO_ROOT/$DELEGATE_SCRIPT" "$@"
226
- ;;
227
- esac
@@ -1,7 +0,0 @@
1
- interface:
2
- display_name: "Init Agentic Skills"
3
- short_description: "Initialize global Claude and Codex skills from this checkout"
4
- default_prompt: "Use $init-agentic-skills to run the agentic-skills initializer, refresh global managed skill installs, and explain how to enable project-local packs."
5
-
6
- policy:
7
- allow_implicit_invocation: true
@@ -1,227 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
5
- DELEGATE_SCRIPT="init.sh"
6
-
7
- resolve_repo_root() {
8
- local source_tree_root
9
- if source_tree_root="$(cd "$SKILL_DIR/../../.." 2>/dev/null && pwd -P)"; then
10
- if [ -f "$source_tree_root/$DELEGATE_SCRIPT" ]; then
11
- printf '%s\n' "$source_tree_root"
12
- return 0
13
- fi
14
- else
15
- source_tree_root="<unresolved>"
16
- fi
17
-
18
- local managed_file="$SKILL_DIR/.agentic-skills-managed"
19
- local managed_source=""
20
- if [ -f "$managed_file" ]; then
21
- while IFS= read -r line; do
22
- case "$line" in
23
- source=*)
24
- managed_source="${line#source=}"
25
- break
26
- ;;
27
- esac
28
- done < "$managed_file"
29
- fi
30
-
31
- local provenance_root="<unresolved>"
32
- if [ -n "$managed_source" ] && [ -d "$managed_source" ]; then
33
- if provenance_root="$(cd "$managed_source/../../.." 2>/dev/null && pwd -P)"; then
34
- if [ -f "$provenance_root/$DELEGATE_SCRIPT" ]; then
35
- printf '%s\n' "$provenance_root"
36
- return 0
37
- fi
38
- else
39
- provenance_root="<unresolved>"
40
- fi
41
- fi
42
-
43
- {
44
- echo "ERROR: Unable to resolve agentic-skills repository root for init-agentic-skills launcher."
45
- echo "Tried source-tree candidate: $source_tree_root"
46
- echo "Tried managed-install provenance: $managed_file source=${managed_source:-<missing>} -> $provenance_root"
47
- echo "Expected delegated script: $DELEGATE_SCRIPT"
48
- } >&2
49
- return 1
50
- }
51
-
52
- REPO_ROOT="$(resolve_repo_root)"
53
-
54
- PREFERENCES_FILE="$HOME/.agentic-skills/preferences.json"
55
- SETTINGS_FILE="$HOME/.claude/settings.json"
56
- DRIFT_HOOK_CMD="bash $REPO_ROOT/scripts/skill-drift-hook.sh"
57
-
58
- status() {
59
- echo "agentic-skills checkout: $REPO_ROOT"
60
- git -C "$REPO_ROOT" rev-parse --short HEAD 2>/dev/null | sed 's/^/local commit: /' || true
61
- git -C "$REPO_ROOT" remote get-url origin 2>/dev/null | sed 's/^/remote URL: /' || echo "remote URL: unavailable"
62
-
63
- if [ -f "$PREFERENCES_FILE" ]; then
64
- python3 -c 'import json, pathlib, sys
65
- path = pathlib.Path(sys.argv[1])
66
- try:
67
- value = json.loads(path.read_text()).get("sync", {}).get("github_freshness_check")
68
- except Exception:
69
- value = None
70
- print("github freshness preference: " + (value if value in {"ask", "always", "never"} else "unset"))' "$PREFERENCES_FILE"
71
- else
72
- echo "github freshness preference: unset"
73
- fi
74
- }
75
-
76
- doctor() {
77
- # shellcheck source=/dev/null
78
- source "$REPO_ROOT/scripts/skill-links.sh" || { echo "ERROR: unable to load skill-links.sh" >&2; return 1; }
79
- echo "Global skill install drift (~/.claude/skills, ~/.codex/skills):"
80
- local found=false any_stale=false target line status rec cur
81
- while IFS= read -r target; do
82
- [ -n "$target" ] || continue
83
- line="$(skill_install_status "$target")"
84
- IFS=$'\t' read -r status rec cur <<< "$line"
85
- [ "$status" = "not-managed" ] && continue
86
- found=true
87
- case "$status" in
88
- ok) printf ' ok %s\n' "$target" ;;
89
- pinned) printf ' pinned %s (frozen %s)\n' "$target" "${rec:-?}" ;;
90
- unknown) printf ' unknown %s — rerun init to enable drift tracking\n' "$target" ;;
91
- missing-source) printf ' missing %s — canonical source no longer exists\n' "$target" ;;
92
- stale) printf ' STALE %s (%s -> %s)\n' "$target" "${rec:-?}" "${cur:-?}"; any_stale=true ;;
93
- esac
94
- done < <(find "$HOME/.claude/skills" "$HOME/.codex/skills" -mindepth 1 -maxdepth 1 \( -type l -o -type d \) -print 2>/dev/null | sort)
95
- $found || echo " (no managed global skill installs found)"
96
- if $any_stale; then
97
- echo ""
98
- echo "Fix: /init-agentic-skills update (re-copies global skills from this checkout)"
99
- return 1
100
- fi
101
- return 0
102
- }
103
-
104
- set_pref() {
105
- local key="$1" val="$2" jqval
106
- case "$key" in
107
- session_start_hook|auto_refresh) ;;
108
- *) echo "ERROR: unknown preference '$key' (use session_start_hook or auto_refresh)" >&2; return 1 ;;
109
- esac
110
- case "$val" in
111
- true) jqval=true ;;
112
- false) jqval=false ;;
113
- *) echo "ERROR: value must be true or false" >&2; return 1 ;;
114
- esac
115
- command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required to set preferences" >&2; return 1; }
116
- mkdir -p "$(dirname "$PREFERENCES_FILE")"
117
- [ -f "$PREFERENCES_FILE" ] || echo '{}' > "$PREFERENCES_FILE"
118
- local tmp
119
- tmp="$(jq --arg k "$key" --argjson v "$jqval" '.skills = ((.skills // {}) + {($k): $v})' "$PREFERENCES_FILE")" || { echo "ERROR: jq failed updating $PREFERENCES_FILE" >&2; return 1; }
120
- [ -n "$tmp" ] || { echo "ERROR: jq produced empty output for $PREFERENCES_FILE" >&2; return 1; }
121
- echo "$tmp" > "$PREFERENCES_FILE"
122
- echo "Set skills.$key = $val in $PREFERENCES_FILE"
123
- }
124
-
125
- hook_enable() {
126
- command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required to register the hook" >&2; return 1; }
127
- mkdir -p "$(dirname "$SETTINGS_FILE")"
128
- [ -f "$SETTINGS_FILE" ] || echo '{}' > "$SETTINGS_FILE"
129
- local tmp
130
- tmp="$(jq --arg cmd "$DRIFT_HOOK_CMD" '
131
- .hooks = (.hooks // {})
132
- | .hooks.SessionStart = (.hooks.SessionStart // [])
133
- | if ([.hooks.SessionStart[]?.hooks[]? | select(.command == $cmd)] | length) > 0
134
- then .
135
- else .hooks.SessionStart += [ { "hooks": [ { "type": "command", "command": $cmd } ] } ]
136
- end
137
- ' "$SETTINGS_FILE")" || { echo "ERROR: jq failed updating $SETTINGS_FILE" >&2; return 1; }
138
- [ -n "$tmp" ] || { echo "ERROR: jq produced empty output for $SETTINGS_FILE" >&2; return 1; }
139
- echo "$tmp" > "$SETTINGS_FILE"
140
- set_pref session_start_hook true
141
- echo "Registered SessionStart drift hook in $SETTINGS_FILE"
142
- }
143
-
144
- hook_disable() {
145
- set_pref session_start_hook false
146
- command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required to remove the hook" >&2; return 1; }
147
- [ -f "$SETTINGS_FILE" ] || { echo "No $SETTINGS_FILE; nothing to remove."; return 0; }
148
- local tmp
149
- tmp="$(jq --arg cmd "$DRIFT_HOOK_CMD" '
150
- if .hooks.SessionStart then
151
- .hooks.SessionStart = ([ .hooks.SessionStart[]
152
- | .hooks = ([ .hooks[]? | select(.command != $cmd) ])
153
- | select((.hooks | length) > 0) ])
154
- | if (.hooks.SessionStart | length) == 0 then del(.hooks.SessionStart) else . end
155
- | if (.hooks | length) == 0 then del(.hooks) else . end
156
- else . end
157
- ' "$SETTINGS_FILE")" || { echo "ERROR: jq failed updating $SETTINGS_FILE" >&2; return 1; }
158
- [ -n "$tmp" ] || { echo "ERROR: jq produced empty output for $SETTINGS_FILE" >&2; return 1; }
159
- echo "$tmp" > "$SETTINGS_FILE"
160
- echo "Removed SessionStart drift hook from $SETTINGS_FILE"
161
- }
162
-
163
- show_prefs() {
164
- if [ -f "$PREFERENCES_FILE" ] && command -v jq >/dev/null 2>&1; then
165
- echo "session_start_hook: $(jq -r '.skills.session_start_hook // false' "$PREFERENCES_FILE")"
166
- echo "auto_refresh: $(jq -r '.skills.auto_refresh // false' "$PREFERENCES_FILE")"
167
- else
168
- echo "session_start_hook: false"
169
- echo "auto_refresh: false"
170
- fi
171
- }
172
-
173
- confirm_update() {
174
- if [ "${1:-}" = "--yes" ] || [ "${1:-}" = "-y" ]; then
175
- return 0
176
- fi
177
- printf "Check GitHub, fast-forward this checkout if possible, and rerun init.sh? [y/N] "
178
- read -r reply
179
- case "$reply" in
180
- y|Y|yes|YES) return 0 ;;
181
- *) echo "Update cancelled."; return 1 ;;
182
- esac
183
- }
184
-
185
- update_latest() {
186
- confirm_update "${1:-}"
187
- git -C "$REPO_ROOT" fetch origin
188
- git -C "$REPO_ROOT" rev-parse --short HEAD | sed 's/^/local before: /'
189
- git -C "$REPO_ROOT" rev-parse --short origin/HEAD | sed 's/^/origin HEAD: /'
190
- git -C "$REPO_ROOT" merge --ff-only origin/HEAD
191
- bash "$REPO_ROOT/$DELEGATE_SCRIPT"
192
- echo "Refresh complete."
193
- echo "Claude Code: run /reload-skills first; /clear starts a new empty-context conversation and can pick up the refreshed registry. Restart Claude Code if the top-level .claude/skills directory did not exist at session start or the skill is still invisible."
194
- echo 'Codex: start a fresh Codex CLI session if the $ skill list remains stale.'
195
- }
196
-
197
- case "${1:-}" in
198
- status)
199
- status
200
- ;;
201
- doctor)
202
- doctor
203
- ;;
204
- update|latest)
205
- mode="$1"
206
- shift
207
- update_latest "${1:-}"
208
- ;;
209
- set-pref)
210
- shift
211
- set_pref "${1:-}" "${2:-}"
212
- ;;
213
- show-prefs)
214
- show_prefs
215
- ;;
216
- hook)
217
- shift
218
- case "${1:-}" in
219
- enable) hook_enable ;;
220
- disable) hook_disable ;;
221
- *) echo "Usage: init-agentic-skills.sh hook <enable|disable>" >&2; exit 2 ;;
222
- esac
223
- ;;
224
- *)
225
- exec bash "$REPO_ROOT/$DELEGATE_SCRIPT" "$@"
226
- ;;
227
- esac