contextos-agents 1.5.0

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 (310) hide show
  1. package/.agents/AGENTS.md +421 -0
  2. package/.agents/adapters/aider/export.js +137 -0
  3. package/.agents/adapters/claude/export.js +55 -0
  4. package/.agents/adapters/copilot/export.js +107 -0
  5. package/.agents/adapters/cursor/export.js +210 -0
  6. package/.agents/adapters/gemini/export.js +115 -0
  7. package/.agents/adapters/shared.js +119 -0
  8. package/.agents/adapters/zed/export.js +111 -0
  9. package/.agents/core/profiles/backend.yaml +47 -0
  10. package/.agents/core/profiles/enterprise.yaml +46 -0
  11. package/.agents/core/profiles/frontend.yaml +46 -0
  12. package/.agents/core/profiles/hackathon.yaml +45 -0
  13. package/.agents/core/profiles/mvp.yaml +43 -0
  14. package/.agents/core/profiles/startup.yaml +48 -0
  15. package/.agents/core/skills/adapters/EXAMPLES.md +19 -0
  16. package/.agents/core/skills/adapters/SKILL.md +105 -0
  17. package/.agents/core/skills/adapters/TROUBLESHOOTING.md +7 -0
  18. package/.agents/core/skills/adapters/VALIDATION.json +12 -0
  19. package/.agents/core/skills/adapters/skill.yaml +10 -0
  20. package/.agents/core/skills/architecture-diagrams/SKILL.md +108 -0
  21. package/.agents/core/skills/architecture-diagrams/VALIDATION.json +12 -0
  22. package/.agents/core/skills/architecture-diagrams/skill.yaml +8 -0
  23. package/.agents/core/skills/brutalist-design/SKILL.md +150 -0
  24. package/.agents/core/skills/brutalist-design/VALIDATION.json +12 -0
  25. package/.agents/core/skills/brutalist-design/skill.yaml +8 -0
  26. package/.agents/core/skills/context-manager/EXAMPLES.md +19 -0
  27. package/.agents/core/skills/context-manager/SKILL.md +126 -0
  28. package/.agents/core/skills/context-manager/TROUBLESHOOTING.md +7 -0
  29. package/.agents/core/skills/context-manager/VALIDATION.json +12 -0
  30. package/.agents/core/skills/context-manager/skill.yaml +10 -0
  31. package/.agents/core/skills/context-os/EXAMPLES.md +21 -0
  32. package/.agents/core/skills/context-os/SKILL.md +169 -0
  33. package/.agents/core/skills/context-os/TROUBLESHOOTING.md +7 -0
  34. package/.agents/core/skills/context-os/VALIDATION.json +12 -0
  35. package/.agents/core/skills/context-os/packs.yaml +59 -0
  36. package/.agents/core/skills/context-os/references/context-rules.md +68 -0
  37. package/.agents/core/skills/context-os/references/pipeline.md +119 -0
  38. package/.agents/core/skills/context-os/references/project-graph.md +103 -0
  39. package/.agents/core/skills/context-os/rules.yaml +135 -0
  40. package/.agents/core/skills/context-os/skill.yaml +10 -0
  41. package/.agents/core/skills/database/EXAMPLES.md +74 -0
  42. package/.agents/core/skills/database/SKILL.md +101 -0
  43. package/.agents/core/skills/database/TROUBLESHOOTING.md +18 -0
  44. package/.agents/core/skills/database/VALIDATION.json +11 -0
  45. package/.agents/core/skills/database/skill.yaml +25 -0
  46. package/.agents/core/skills/ddd/EXAMPLES.md +42 -0
  47. package/.agents/core/skills/ddd/SKILL.md +247 -0
  48. package/.agents/core/skills/ddd/TROUBLESHOOTING.md +19 -0
  49. package/.agents/core/skills/ddd/VALIDATION.json +12 -0
  50. package/.agents/core/skills/ddd/ddd.md +178 -0
  51. package/.agents/core/skills/ddd/skill.yaml +10 -0
  52. package/.agents/core/skills/decisions/EXAMPLES.md +35 -0
  53. package/.agents/core/skills/decisions/SKILL.md +90 -0
  54. package/.agents/core/skills/decisions/TROUBLESHOOTING.md +13 -0
  55. package/.agents/core/skills/decisions/VALIDATION.json +12 -0
  56. package/.agents/core/skills/decisions/skill.yaml +10 -0
  57. package/.agents/core/skills/docker/EXAMPLES.md +56 -0
  58. package/.agents/core/skills/docker/SKILL.md +63 -0
  59. package/.agents/core/skills/docker/TROUBLESHOOTING.md +18 -0
  60. package/.agents/core/skills/docker/VALIDATION.json +11 -0
  61. package/.agents/core/skills/docker/skill.yaml +23 -0
  62. package/.agents/core/skills/engineering-workflow/EXAMPLES.md +57 -0
  63. package/.agents/core/skills/engineering-workflow/SKILL.md +343 -0
  64. package/.agents/core/skills/engineering-workflow/TROUBLESHOOTING.md +19 -0
  65. package/.agents/core/skills/engineering-workflow/VALIDATION.json +12 -0
  66. package/.agents/core/skills/engineering-workflow/skill.yaml +13 -0
  67. package/.agents/core/skills/fastapi/EXAMPLES.md +36 -0
  68. package/.agents/core/skills/fastapi/SKILL.md +148 -0
  69. package/.agents/core/skills/fastapi/TROUBLESHOOTING.md +19 -0
  70. package/.agents/core/skills/fastapi/VALIDATION.json +12 -0
  71. package/.agents/core/skills/fastapi/fastapi.md +112 -0
  72. package/.agents/core/skills/fastapi/skill.yaml +10 -0
  73. package/.agents/core/skills/gemini-precision/SKILL.md +169 -0
  74. package/.agents/core/skills/gemini-precision/VALIDATION.json +12 -0
  75. package/.agents/core/skills/gemini-precision/skill.yaml +9 -0
  76. package/.agents/core/skills/generators/EXAMPLES.md +19 -0
  77. package/.agents/core/skills/generators/SKILL.md +112 -0
  78. package/.agents/core/skills/generators/TROUBLESHOOTING.md +7 -0
  79. package/.agents/core/skills/generators/VALIDATION.json +12 -0
  80. package/.agents/core/skills/generators/skill.yaml +10 -0
  81. package/.agents/core/skills/generators/templates/API.md +77 -0
  82. package/.agents/core/skills/generators/templates/ARCHITECTURE.md +70 -0
  83. package/.agents/core/skills/generators/templates/DATABASE.md +42 -0
  84. package/.agents/core/skills/generators/templates/DECISION.md +46 -0
  85. package/.agents/core/skills/generators/templates/PRD.md +67 -0
  86. package/.agents/core/skills/generators/templates/PROJECT_GRAPH.md +56 -0
  87. package/.agents/core/skills/generators/templates/ROADMAP.md +51 -0
  88. package/.agents/core/skills/generators/templates/TASKS.md +43 -0
  89. package/.agents/core/skills/generators/templates/UI.md +73 -0
  90. package/.agents/core/skills/graphify/EXAMPLES.md +73 -0
  91. package/.agents/core/skills/graphify/SKILL.md +130 -0
  92. package/.agents/core/skills/graphify/VALIDATION.json +12 -0
  93. package/.agents/core/skills/graphify/skill.yaml +13 -0
  94. package/.agents/core/skills/gstack-roles/EXAMPLES.md +23 -0
  95. package/.agents/core/skills/gstack-roles/SKILL.md +152 -0
  96. package/.agents/core/skills/gstack-roles/TROUBLESHOOTING.md +13 -0
  97. package/.agents/core/skills/gstack-roles/VALIDATION.json +12 -0
  98. package/.agents/core/skills/gstack-roles/skill.yaml +12 -0
  99. package/.agents/core/skills/impeccable-design/EXAMPLES.md +26 -0
  100. package/.agents/core/skills/impeccable-design/SKILL.md +201 -0
  101. package/.agents/core/skills/impeccable-design/TROUBLESHOOTING.md +19 -0
  102. package/.agents/core/skills/impeccable-design/VALIDATION.json +12 -0
  103. package/.agents/core/skills/impeccable-design/skill.yaml +14 -0
  104. package/.agents/core/skills/interview-me/SKILL.md +97 -0
  105. package/.agents/core/skills/interview-me/VALIDATION.json +12 -0
  106. package/.agents/core/skills/interview-me/skill.yaml +8 -0
  107. package/.agents/core/skills/microservices/EXAMPLES.md +38 -0
  108. package/.agents/core/skills/microservices/SKILL.md +164 -0
  109. package/.agents/core/skills/microservices/TROUBLESHOOTING.md +19 -0
  110. package/.agents/core/skills/microservices/VALIDATION.json +12 -0
  111. package/.agents/core/skills/microservices/microservices.md +119 -0
  112. package/.agents/core/skills/microservices/skill.yaml +10 -0
  113. package/.agents/core/skills/minimalist-design/SKILL.md +113 -0
  114. package/.agents/core/skills/minimalist-design/VALIDATION.json +12 -0
  115. package/.agents/core/skills/minimalist-design/skill.yaml +8 -0
  116. package/.agents/core/skills/nestjs/EXAMPLES.md +40 -0
  117. package/.agents/core/skills/nestjs/SKILL.md +139 -0
  118. package/.agents/core/skills/nestjs/TROUBLESHOOTING.md +19 -0
  119. package/.agents/core/skills/nestjs/VALIDATION.json +12 -0
  120. package/.agents/core/skills/nestjs/nestjs.md +103 -0
  121. package/.agents/core/skills/nestjs/skill.yaml +10 -0
  122. package/.agents/core/skills/nextjs/EXAMPLES.md +40 -0
  123. package/.agents/core/skills/nextjs/SKILL.md +163 -0
  124. package/.agents/core/skills/nextjs/TROUBLESHOOTING.md +19 -0
  125. package/.agents/core/skills/nextjs/VALIDATION.json +12 -0
  126. package/.agents/core/skills/nextjs/nextjs.md +67 -0
  127. package/.agents/core/skills/nextjs/skill.yaml +10 -0
  128. package/.agents/core/skills/node/EXAMPLES.md +80 -0
  129. package/.agents/core/skills/node/SKILL.md +128 -0
  130. package/.agents/core/skills/node/TROUBLESHOOTING.md +19 -0
  131. package/.agents/core/skills/node/VALIDATION.json +12 -0
  132. package/.agents/core/skills/node/node.md +87 -0
  133. package/.agents/core/skills/node/skill.yaml +10 -0
  134. package/.agents/core/skills/performance/EXAMPLES.md +30 -0
  135. package/.agents/core/skills/performance/SKILL.md +75 -0
  136. package/.agents/core/skills/performance/TROUBLESHOOTING.md +19 -0
  137. package/.agents/core/skills/performance/VALIDATION.json +12 -0
  138. package/.agents/core/skills/performance/performance.md +52 -0
  139. package/.agents/core/skills/performance/skill.yaml +10 -0
  140. package/.agents/core/skills/ponytail-mindset/EXAMPLES.md +45 -0
  141. package/.agents/core/skills/ponytail-mindset/SKILL.md +193 -0
  142. package/.agents/core/skills/ponytail-mindset/TROUBLESHOOTING.md +19 -0
  143. package/.agents/core/skills/ponytail-mindset/VALIDATION.json +12 -0
  144. package/.agents/core/skills/ponytail-mindset/skill.yaml +14 -0
  145. package/.agents/core/skills/react/EXAMPLES.md +79 -0
  146. package/.agents/core/skills/react/SKILL.md +132 -0
  147. package/.agents/core/skills/react/TROUBLESHOOTING.md +19 -0
  148. package/.agents/core/skills/react/VALIDATION.json +12 -0
  149. package/.agents/core/skills/react/react.md +93 -0
  150. package/.agents/core/skills/react/skill.yaml +10 -0
  151. package/.agents/core/skills/react-best-practices/SKILL.md +155 -0
  152. package/.agents/core/skills/react-best-practices/VALIDATION.json +12 -0
  153. package/.agents/core/skills/react-best-practices/skill.yaml +10 -0
  154. package/.agents/core/skills/redesign-audit/SKILL.md +117 -0
  155. package/.agents/core/skills/redesign-audit/VALIDATION.json +12 -0
  156. package/.agents/core/skills/redesign-audit/skill.yaml +8 -0
  157. package/.agents/core/skills/security/EXAMPLES.md +64 -0
  158. package/.agents/core/skills/security/SKILL.md +158 -0
  159. package/.agents/core/skills/security/TROUBLESHOOTING.md +19 -0
  160. package/.agents/core/skills/security/VALIDATION.json +12 -0
  161. package/.agents/core/skills/security/security.md +106 -0
  162. package/.agents/core/skills/security/skill.yaml +10 -0
  163. package/.agents/core/skills/soft-design/SKILL.md +108 -0
  164. package/.agents/core/skills/soft-design/VALIDATION.json +12 -0
  165. package/.agents/core/skills/soft-design/skill.yaml +8 -0
  166. package/.agents/core/skills/state-management/EXAMPLES.md +56 -0
  167. package/.agents/core/skills/state-management/SKILL.md +48 -0
  168. package/.agents/core/skills/state-management/TROUBLESHOOTING.md +18 -0
  169. package/.agents/core/skills/state-management/VALIDATION.json +11 -0
  170. package/.agents/core/skills/state-management/skill.yaml +22 -0
  171. package/.agents/core/skills/subagent-orchestrator/SKILL.md +100 -0
  172. package/.agents/core/skills/subagent-orchestrator/VALIDATION.json +12 -0
  173. package/.agents/core/skills/subagent-orchestrator/skill.yaml +8 -0
  174. package/.agents/core/skills/system-design/EXAMPLES.md +75 -0
  175. package/.agents/core/skills/system-design/SKILL.md +419 -0
  176. package/.agents/core/skills/system-design/TROUBLESHOOTING.md +19 -0
  177. package/.agents/core/skills/system-design/VALIDATION.json +12 -0
  178. package/.agents/core/skills/system-design/skill.yaml +13 -0
  179. package/.agents/core/skills/system-design/system-design.md +112 -0
  180. package/.agents/core/skills/testing/EXAMPLES.md +71 -0
  181. package/.agents/core/skills/testing/SKILL.md +70 -0
  182. package/.agents/core/skills/testing/TROUBLESHOOTING.md +18 -0
  183. package/.agents/core/skills/testing/VALIDATION.json +11 -0
  184. package/.agents/core/skills/testing/skill.yaml +26 -0
  185. package/.agents/core/skills/typescript/EXAMPLES.md +64 -0
  186. package/.agents/core/skills/typescript/SKILL.md +112 -0
  187. package/.agents/core/skills/typescript/TROUBLESHOOTING.md +19 -0
  188. package/.agents/core/skills/typescript/VALIDATION.json +12 -0
  189. package/.agents/core/skills/typescript/skill.yaml +10 -0
  190. package/.agents/core/skills/typescript/typescript.md +71 -0
  191. package/.agents/core/skills/ui-design/EXAMPLES.md +21 -0
  192. package/.agents/core/skills/ui-design/SKILL.md +124 -0
  193. package/.agents/core/skills/ui-design/TROUBLESHOOTING.md +19 -0
  194. package/.agents/core/skills/ui-design/VALIDATION.json +12 -0
  195. package/.agents/core/skills/ui-design/skill.yaml +10 -0
  196. package/.agents/core/skills/ui-design/ui.md +88 -0
  197. package/.agents/core/skills/ui-ux-pro/EXAMPLES.md +62 -0
  198. package/.agents/core/skills/ui-ux-pro/SKILL.md +375 -0
  199. package/.agents/core/skills/ui-ux-pro/TROUBLESHOOTING.md +19 -0
  200. package/.agents/core/skills/ui-ux-pro/VALIDATION.json +12 -0
  201. package/.agents/core/skills/ui-ux-pro/skill.yaml +13 -0
  202. package/.agents/core/skills/ux-design/EXAMPLES.md +36 -0
  203. package/.agents/core/skills/ux-design/SKILL.md +116 -0
  204. package/.agents/core/skills/ux-design/TROUBLESHOOTING.md +19 -0
  205. package/.agents/core/skills/ux-design/VALIDATION.json +12 -0
  206. package/.agents/core/skills/ux-design/skill.yaml +10 -0
  207. package/.agents/core/skills/ux-design/ux.md +80 -0
  208. package/.agents/core/skills/vercel-optimize/SKILL.md +83 -0
  209. package/.agents/core/skills/vercel-optimize/VALIDATION.json +12 -0
  210. package/.agents/core/skills/vercel-optimize/skill.yaml +10 -0
  211. package/.agents/core/skills/web-accessibility/EXAMPLES.md +39 -0
  212. package/.agents/core/skills/web-accessibility/SKILL.md +170 -0
  213. package/.agents/core/skills/web-accessibility/TROUBLESHOOTING.md +19 -0
  214. package/.agents/core/skills/web-accessibility/VALIDATION.json +12 -0
  215. package/.agents/core/skills/web-accessibility/accessibility.md +63 -0
  216. package/.agents/core/skills/web-accessibility/skill.yaml +10 -0
  217. package/.agents/ctx.js +370 -0
  218. package/.agents/generated/claude/skills/adapters/SKILL.md +126 -0
  219. package/.agents/generated/claude/skills/architecture-diagrams/SKILL.md +101 -0
  220. package/.agents/generated/claude/skills/brutalist-design/SKILL.md +145 -0
  221. package/.agents/generated/claude/skills/context-manager/SKILL.md +147 -0
  222. package/.agents/generated/claude/skills/context-os/SKILL.md +191 -0
  223. package/.agents/generated/claude/skills/database/SKILL.md +191 -0
  224. package/.agents/generated/claude/skills/ddd/SKILL.md +305 -0
  225. package/.agents/generated/claude/skills/decisions/SKILL.md +134 -0
  226. package/.agents/generated/claude/skills/docker/SKILL.md +135 -0
  227. package/.agents/generated/claude/skills/engineering-workflow/SKILL.md +414 -0
  228. package/.agents/generated/claude/skills/fastapi/SKILL.md +200 -0
  229. package/.agents/generated/claude/skills/gemini-precision/SKILL.md +161 -0
  230. package/.agents/generated/claude/skills/generators/SKILL.md +133 -0
  231. package/.agents/generated/claude/skills/graphify/SKILL.md +198 -0
  232. package/.agents/generated/claude/skills/gstack-roles/SKILL.md +184 -0
  233. package/.agents/generated/claude/skills/impeccable-design/SKILL.md +241 -0
  234. package/.agents/generated/claude/skills/interview-me/SKILL.md +90 -0
  235. package/.agents/generated/claude/skills/microservices/SKILL.md +218 -0
  236. package/.agents/generated/claude/skills/minimalist-design/SKILL.md +108 -0
  237. package/.agents/generated/claude/skills/nestjs/SKILL.md +195 -0
  238. package/.agents/generated/claude/skills/nextjs/SKILL.md +219 -0
  239. package/.agents/generated/claude/skills/node/SKILL.md +224 -0
  240. package/.agents/generated/claude/skills/performance/SKILL.md +121 -0
  241. package/.agents/generated/claude/skills/ponytail-mindset/SKILL.md +252 -0
  242. package/.agents/generated/claude/skills/react/SKILL.md +227 -0
  243. package/.agents/generated/claude/skills/react-best-practices/SKILL.md +146 -0
  244. package/.agents/generated/claude/skills/redesign-audit/SKILL.md +112 -0
  245. package/.agents/generated/claude/skills/security/SKILL.md +237 -0
  246. package/.agents/generated/claude/skills/soft-design/SKILL.md +103 -0
  247. package/.agents/generated/claude/skills/state-management/SKILL.md +120 -0
  248. package/.agents/generated/claude/skills/subagent-orchestrator/SKILL.md +93 -0
  249. package/.agents/generated/claude/skills/system-design/SKILL.md +507 -0
  250. package/.agents/generated/claude/skills/testing/SKILL.md +157 -0
  251. package/.agents/generated/claude/skills/typescript/SKILL.md +192 -0
  252. package/.agents/generated/claude/skills/ui-design/SKILL.md +161 -0
  253. package/.agents/generated/claude/skills/ui-ux-pro/SKILL.md +451 -0
  254. package/.agents/generated/claude/skills/ux-design/SKILL.md +168 -0
  255. package/.agents/generated/claude/skills/vercel-optimize/SKILL.md +76 -0
  256. package/.agents/generated/claude/skills/web-accessibility/SKILL.md +225 -0
  257. package/.agents/generated/gemini/skills/adapters/SKILL.md +135 -0
  258. package/.agents/generated/gemini/skills/architecture-diagrams/SKILL.md +107 -0
  259. package/.agents/generated/gemini/skills/brutalist-design/SKILL.md +151 -0
  260. package/.agents/generated/gemini/skills/context-manager/SKILL.md +156 -0
  261. package/.agents/generated/gemini/skills/context-os/SKILL.md +200 -0
  262. package/.agents/generated/gemini/skills/database/SKILL.md +200 -0
  263. package/.agents/generated/gemini/skills/ddd/SKILL.md +314 -0
  264. package/.agents/generated/gemini/skills/decisions/SKILL.md +143 -0
  265. package/.agents/generated/gemini/skills/docker/SKILL.md +144 -0
  266. package/.agents/generated/gemini/skills/engineering-workflow/SKILL.md +423 -0
  267. package/.agents/generated/gemini/skills/fastapi/SKILL.md +209 -0
  268. package/.agents/generated/gemini/skills/gemini-precision/SKILL.md +167 -0
  269. package/.agents/generated/gemini/skills/generators/SKILL.md +142 -0
  270. package/.agents/generated/gemini/skills/graphify/SKILL.md +205 -0
  271. package/.agents/generated/gemini/skills/gstack-roles/SKILL.md +193 -0
  272. package/.agents/generated/gemini/skills/impeccable-design/SKILL.md +250 -0
  273. package/.agents/generated/gemini/skills/interview-me/SKILL.md +96 -0
  274. package/.agents/generated/gemini/skills/microservices/SKILL.md +227 -0
  275. package/.agents/generated/gemini/skills/minimalist-design/SKILL.md +114 -0
  276. package/.agents/generated/gemini/skills/nestjs/SKILL.md +204 -0
  277. package/.agents/generated/gemini/skills/nextjs/SKILL.md +298 -0
  278. package/.agents/generated/gemini/skills/node/SKILL.md +323 -0
  279. package/.agents/generated/gemini/skills/performance/SKILL.md +185 -0
  280. package/.agents/generated/gemini/skills/ponytail-mindset/SKILL.md +261 -0
  281. package/.agents/generated/gemini/skills/react/SKILL.md +332 -0
  282. package/.agents/generated/gemini/skills/react-best-practices/SKILL.md +152 -0
  283. package/.agents/generated/gemini/skills/redesign-audit/SKILL.md +118 -0
  284. package/.agents/generated/gemini/skills/security/SKILL.md +355 -0
  285. package/.agents/generated/gemini/skills/soft-design/SKILL.md +109 -0
  286. package/.agents/generated/gemini/skills/state-management/SKILL.md +129 -0
  287. package/.agents/generated/gemini/skills/subagent-orchestrator/SKILL.md +99 -0
  288. package/.agents/generated/gemini/skills/system-design/SKILL.md +631 -0
  289. package/.agents/generated/gemini/skills/testing/SKILL.md +166 -0
  290. package/.agents/generated/gemini/skills/typescript/SKILL.md +275 -0
  291. package/.agents/generated/gemini/skills/ui-design/SKILL.md +170 -0
  292. package/.agents/generated/gemini/skills/ui-ux-pro/SKILL.md +460 -0
  293. package/.agents/generated/gemini/skills/ux-design/SKILL.md +177 -0
  294. package/.agents/generated/gemini/skills/vercel-optimize/SKILL.md +82 -0
  295. package/.agents/generated/gemini/skills/web-accessibility/SKILL.md +300 -0
  296. package/.agents/mcp/runtime.py +454 -0
  297. package/.agents/mcp/server.mjs +189373 -0
  298. package/.agents/plugins.js +574 -0
  299. package/.agents/profiles.js +267 -0
  300. package/.agents/resolver.js +336 -0
  301. package/.agents/skills-index.json +200 -0
  302. package/.agents/skills.json +6 -0
  303. package/.agents/validate.js +500 -0
  304. package/LICENSE +21 -0
  305. package/README.md +415 -0
  306. package/benchmarks/gemini-issues.js +533 -0
  307. package/bin/index.js +458 -0
  308. package/package.json +70 -0
  309. package/registry.json +53 -0
  310. package/registry.schema.json +32 -0
package/bin/index.js ADDED
@@ -0,0 +1,458 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { version } = require('../package.json');
6
+ const profiles = require('../.agents/profiles.js');
7
+
8
+ // ── CLI argument parsing ──────────────────────────────────────────────────────
9
+ const args = process.argv.slice(2);
10
+ const flags = {
11
+ help: args.includes('--help') || args.includes('-h'),
12
+ ver: args.includes('--version') || args.includes('-v'),
13
+ dryRun: args.includes('--dry-run'),
14
+ force: args.includes('--force'),
15
+ skipCompile: args.includes('--skip-compile'),
16
+ auto: args.includes('--auto'),
17
+ withMcp: args.includes('--with-mcp') || args.includes('--mcp'),
18
+ profile: (() => {
19
+ const i = args.indexOf('--profile');
20
+ return i !== -1 ? args[i + 1] : null;
21
+ })(),
22
+ addSkill: (() => {
23
+ const i = args.indexOf('--add-skill');
24
+ return i !== -1 ? args[i + 1] : null;
25
+ })(),
26
+ };
27
+
28
+ // ── Help / Version ────────────────────────────────────────────────────────────
29
+ if (flags.ver) {
30
+ console.log(`contextos-agents v${version}`);
31
+ process.exit(0);
32
+ }
33
+
34
+ if (flags.help) {
35
+ console.log(`
36
+ contextos-agents v${version}
37
+ Install AI assistant skills and rules into your project.
38
+
39
+ Usage:
40
+ npx contextos-agents [options]
41
+
42
+ Options:
43
+ --help, -h Show this help message
44
+ --version, -v Show version number
45
+ --dry-run Preview what will be copied without making changes
46
+ --force Overwrite an existing .agents/ folder
47
+ --profile <name> Install a specific profile (mvp, startup, enterprise, frontend, backend)
48
+ --auto Auto-detect tech stack and apply recommended profile
49
+ --with-mcp, --mcp Install with MCP execution server enabled (.agents/mcp/ & mcp_config.json)
50
+ --skip-compile Skip running ctx.js export after installation
51
+ --add-skill <ref> Install a community plugin skill after setup
52
+
53
+ Commands:
54
+ audit Validate local skills (alias for validate)
55
+ detect Analyze project and display detected tech stack
56
+ install-skill Interactive skill installer (or pass <ref> / --from-repo)
57
+ setup-mcp Add MCP execution server to an existing .agents/ project
58
+
59
+ Profiles:
60
+ mvp Fastest shipping, minimalist monolith, excludes microservices & DDD
61
+ startup Balanced agile stack (modular monolith, security, testing)
62
+ enterprise Maximum rigor (DDD, microservices, security audit, ADRs, 80%+ tests)
63
+ frontend Frontend-focused (React, Next.js, UI/UX Pro, Accessibility, Design)
64
+ backend Backend-focused (Node, FastAPI, NestJS, DDD, Microservices, DB)
65
+ hackathon Rapid hackathon prototyping
66
+
67
+ Plugin ref formats:
68
+ username/repo GitHub repo with a SKILL.md at the root
69
+ username/repo@commit GitHub repo pinned to a commit
70
+ username/repo/path/to/skill GitHub skill in a subdirectory
71
+ npm-package-name A skill published as an npm package
72
+ @scope/npm-package A scoped npm skill package
73
+
74
+ Examples:
75
+ npx contextos-agents Install .agents/ into current project
76
+ npx contextos-agents --profile mvp Install with MVP profile
77
+ npx contextos-agents --auto Auto-detect tech stack and configure
78
+ npx contextos-agents --dry-run Preview files that would be copied
79
+ npx contextos-agents --add-skill alice/my-skill
80
+
81
+ Export skills to your AI tool:
82
+ node .agents/ctx.js export gemini → .agents/generated/gemini/ (Gemini / Antigravity)
83
+ node .agents/ctx.js export claude → .agents/generated/claude/ (Claude Code)
84
+ node .agents/ctx.js export cursor → .cursorrules & .cursor/rules (Cursor IDE)
85
+ node .agents/ctx.js export copilot → .github/copilot-instructions.md
86
+ node .agents/ctx.js export aider → .aider.conf.yml + CONVENTIONS.md
87
+ node .agents/ctx.js export zed → .zed/rules.md & .zed/prompts/ (Zed IDE)
88
+ node .agents/ctx.js export all → all of the above
89
+
90
+ Profile commands (after installation):
91
+ node .agents/ctx.js profile list List available profiles
92
+ node .agents/ctx.js profile apply <name> Switch project profile
93
+ node .agents/ctx.js detect Detect project tech stack
94
+ `);
95
+ process.exit(0);
96
+ }
97
+
98
+ // ── Top-level Commands ────────────────────────────────────────────────────────
99
+ const mainCommand = args[0] && !args[0].startsWith('-') ? args[0] : null;
100
+
101
+ if (mainCommand === 'audit') {
102
+ const ctxPath = path.join(process.cwd(), '.agents', 'ctx.js');
103
+ if (!fs.existsSync(ctxPath)) {
104
+ console.error('[ERROR] .agents/ctx.js not found. Are you in a ContextOS project?');
105
+ process.exit(1);
106
+ }
107
+ const { execFileSync } = require('child_process');
108
+ try {
109
+ execFileSync(process.execPath, [ctxPath, 'validate'], { stdio: 'inherit' });
110
+ } catch (e) {
111
+ process.exit(1);
112
+ }
113
+ process.exit(0);
114
+ }
115
+
116
+ if (mainCommand === 'detect') {
117
+ const stack = profiles.detectStack(process.cwd());
118
+ console.log('\nContextOS — Tech Stack Detection\n');
119
+ console.log(` Detected Technologies : ${stack.detected.length ? stack.detected.join(', ') : 'Generic JavaScript'}`);
120
+ console.log(` Recommended Profile : ${stack.recommendedProfile}`);
121
+ console.log(` Recommended Skills : ${stack.recommendedSkills.join(', ')}\n`);
122
+ process.exit(0);
123
+ }
124
+
125
+ if (mainCommand === 'install-skill') {
126
+ const ctxPath = path.join(process.cwd(), '.agents', 'ctx.js');
127
+ if (!fs.existsSync(ctxPath)) {
128
+ console.error('[ERROR] .agents/ctx.js not found. Are you in a ContextOS project?');
129
+ process.exit(1);
130
+ }
131
+
132
+ const fromRepo = (() => {
133
+ const i = args.indexOf('--from-repo');
134
+ return i !== -1 ? args[i + 1] : null;
135
+ })();
136
+
137
+ const ref = fromRepo || (args[1] && !args[1].startsWith('-') ? args[1] : null);
138
+
139
+ if (ref) {
140
+ const { execFileSync } = require('child_process');
141
+ try {
142
+ execFileSync(process.execPath, [ctxPath, 'skill', 'add', ref], { stdio: 'inherit' });
143
+ } catch (e) {
144
+ process.exit(1);
145
+ }
146
+ process.exit(0);
147
+ } else {
148
+ // Interactive menu
149
+ (async () => {
150
+ try {
151
+ const inquirer = require('inquirer');
152
+ const https = require('https');
153
+
154
+ console.log('Fetching community skills from registry...');
155
+
156
+ const fetchRegistry = () => new Promise((resolve, reject) => {
157
+ https.get('https://raw.githubusercontent.com/kok-o/contextos-agents/main/registry.json', (res) => {
158
+ let data = '';
159
+ res.on('data', chunk => data += chunk);
160
+ res.on('end', () => resolve(JSON.parse(data)));
161
+ }).on('error', reject);
162
+ });
163
+
164
+ const registry = await fetchRegistry();
165
+ const choices = registry.skills.map(s => ({
166
+ name: `${s.name} - ${s.description}`,
167
+ value: s.github ? `${s.github}${s.path ? '/' + s.path : ''}` : s.npm
168
+ }));
169
+
170
+ const answers = await inquirer.prompt([
171
+ {
172
+ type: 'checkbox',
173
+ name: 'selectedSkills',
174
+ message: 'Select skills to install:',
175
+ choices
176
+ }
177
+ ]);
178
+
179
+ if (!answers.selectedSkills || answers.selectedSkills.length === 0) {
180
+ console.log('No skills selected.');
181
+ process.exit(0);
182
+ }
183
+
184
+ const { execFileSync } = require('child_process');
185
+ for (const skillRef of answers.selectedSkills) {
186
+ try {
187
+ execFileSync(process.execPath, [ctxPath, 'skill', 'add', skillRef], { stdio: 'inherit' });
188
+ } catch (e) {
189
+ console.error(`Failed to install ${skillRef}`);
190
+ }
191
+ }
192
+ } catch (error) {
193
+ console.error('Failed to run interactive installer:', error.message);
194
+ if (error.code === 'MODULE_NOT_FOUND' && error.message.includes('inquirer')) {
195
+ console.error('It seems inquirer is not installed. Did you run npm install?');
196
+ }
197
+ process.exit(1);
198
+ }
199
+ })();
200
+ }
201
+ } else if (mainCommand === 'setup-mcp') {
202
+ const targetPath = path.join(process.cwd(), '.agents');
203
+ if (!fs.existsSync(targetPath)) {
204
+ console.error('[ERROR] .agents/ folder not found in current directory.');
205
+ console.error(' Run `npx contextos-agents` first or `npx contextos-agents --with-mcp`.');
206
+ process.exit(1);
207
+ }
208
+
209
+ const sourceMcp = path.join(__dirname, '..', '.agents', 'mcp');
210
+ const targetMcp = path.join(targetPath, 'mcp');
211
+ if (!fs.existsSync(sourceMcp)) {
212
+ console.error('[ERROR] Source MCP server bundle not found in package.');
213
+ process.exit(1);
214
+ }
215
+
216
+ try {
217
+ fs.cpSync(sourceMcp, targetMcp, { recursive: true, force: true });
218
+ console.log('[OK] Installed ContextOS MCP execution server into .agents/mcp/');
219
+
220
+ const mcpConfigPath = path.join(targetPath, 'mcp_config.json');
221
+ if (!fs.existsSync(mcpConfigPath) || flags.force) {
222
+ const defaultMcpConfig = {
223
+ mcpServers: {
224
+ "contextos": {
225
+ command: "node",
226
+ args: ["./.agents/mcp/server.mjs", "--dir", "."]
227
+ }
228
+ }
229
+ };
230
+ fs.writeFileSync(mcpConfigPath, JSON.stringify(defaultMcpConfig, null, 2));
231
+ console.log('[OK] Created MCP configuration (.agents/mcp_config.json)');
232
+ } else {
233
+ console.log('[INFO] Existing .agents/mcp_config.json retained.');
234
+ }
235
+ console.log('\n[SUCCESS] ContextOS MCP execution layer is configured.');
236
+ console.log('You can now use parallel subagents and git worktrees in your MCP-compatible IDE.\n');
237
+ } catch (err) {
238
+ console.error('[ERROR] Failed to configure MCP:', err.message);
239
+ process.exit(1);
240
+ }
241
+ process.exit(0);
242
+ } else {
243
+
244
+ // ── Paths ─────────────────────────────────────────────────────────────────────
245
+ const sourcePath = path.join(__dirname, '..', '.agents');
246
+ const targetPath = path.join(process.cwd(), '.agents');
247
+
248
+ function uniqueSiblingPath(basePath, suffix) {
249
+ let candidate = `${basePath}.${suffix}`;
250
+ let index = 1;
251
+ while (fs.existsSync(candidate)) {
252
+ candidate = `${basePath}.${suffix}-${index++}`;
253
+ }
254
+ return candidate;
255
+ }
256
+
257
+ /**
258
+ * Copy into a staging directory then replace the target with rollback.
259
+ */
260
+ function installAtomically(source, target, options = {}) {
261
+ const stagingPath = uniqueSiblingPath(target, 'staging');
262
+ const backupPath = uniqueSiblingPath(target, 'backup');
263
+ let movedExisting = false;
264
+
265
+ try {
266
+ fs.cpSync(source, stagingPath, {
267
+ recursive: true,
268
+ force: true,
269
+ filter: (src) => {
270
+ if (!options.withMcp) {
271
+ const norm = src.replace(/\\/g, '/');
272
+ if (norm.endsWith('/mcp') || norm.includes('/mcp/') || norm.endsWith('/mcp_config.json')) {
273
+ return false;
274
+ }
275
+ }
276
+ return true;
277
+ },
278
+ });
279
+ if (fs.existsSync(target)) {
280
+ fs.renameSync(target, backupPath);
281
+ movedExisting = true;
282
+ }
283
+ fs.renameSync(stagingPath, target);
284
+ if (movedExisting) {
285
+ try {
286
+ fs.rmSync(backupPath, { recursive: true, force: true });
287
+ } catch {
288
+ console.warn(`[WARN] Installed successfully; backup retained at ${backupPath}`);
289
+ }
290
+ }
291
+ } catch (error) {
292
+ fs.rmSync(stagingPath, { recursive: true, force: true });
293
+ if (movedExisting && !fs.existsSync(target) && fs.existsSync(backupPath)) {
294
+ fs.renameSync(backupPath, target);
295
+ }
296
+ throw error;
297
+ }
298
+ }
299
+
300
+ // ── Stack detection ───────────────────────────────────────────────────────────
301
+ const stackDetection = profiles.detectStack(process.cwd());
302
+
303
+ // ── Dry run ───────────────────────────────────────────────────────────────────
304
+ if (flags.dryRun) {
305
+ console.log('[DRY-RUN] No files will be written.\n');
306
+ if (!fs.existsSync(sourcePath)) {
307
+ console.error('[ERROR] Source .agents/ folder not found in package.');
308
+ process.exit(1);
309
+ }
310
+ const countFiles = (dir) => {
311
+ let count = 0;
312
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
313
+ const full = path.join(dir, entry.name);
314
+ if (!flags.withMcp) {
315
+ const norm = full.replace(/\\/g, '/');
316
+ if (norm.endsWith('/mcp') || norm.includes('/mcp/') || norm.endsWith('/mcp_config.json')) {
317
+ continue;
318
+ }
319
+ }
320
+ count += entry.isDirectory() ? countFiles(full) : 1;
321
+ }
322
+ return count;
323
+ };
324
+ const total = countFiles(sourcePath);
325
+ if (fs.existsSync(targetPath)) {
326
+ console.log(`[WARN] .agents/ already exists — would be overwritten with --force.`);
327
+ } else {
328
+ console.log(`[OK] Would create .agents/ in: ${process.cwd()}`);
329
+ }
330
+ console.log(`[INFO] Detected stack: ${stackDetection.detected.length ? stackDetection.detected.join(', ') : 'Generic JavaScript'}`);
331
+ const targetProfile = flags.profile || (flags.auto ? stackDetection.recommendedProfile : 'none');
332
+ console.log(`[INFO] Selected profile: ${targetProfile}`);
333
+ console.log(`[INFO] ${total} files would be copied from the package.`);
334
+ console.log('\nRun without --dry-run to apply changes.');
335
+ process.exit(0);
336
+ }
337
+
338
+ // ── Main install ──────────────────────────────────────────────────────────────
339
+ console.log('Installing AI assistant skills (.agents/)...');
340
+
341
+ try {
342
+ if (!fs.existsSync(sourcePath)) {
343
+ console.error('[ERROR] Source .agents/ folder not found in package.');
344
+ process.exit(1);
345
+ }
346
+
347
+ if (fs.existsSync(targetPath) && !flags.force) {
348
+ console.error('[ERROR] .agents/ already exists. Refusing to overwrite it.');
349
+ console.error(' Re-run with --force only after backing up your custom skills.');
350
+ process.exit(1);
351
+ }
352
+
353
+ if (path.resolve(sourcePath) === path.resolve(targetPath)) {
354
+ console.error('[ERROR] Refusing to install the package into itself. Run this command from the target project.');
355
+ process.exit(1);
356
+ }
357
+
358
+ installAtomically(sourcePath, targetPath, { withMcp: flags.withMcp });
359
+
360
+ console.log('[OK] .agents/ successfully installed in your project!');
361
+ if (stackDetection.detected.length > 0) {
362
+ console.log(`[OK] Detected project stack: ${stackDetection.detected.join(', ')}`);
363
+ }
364
+
365
+ // ── Create mcp_config.json only if --with-mcp ────────────────────────────────
366
+ if (flags.withMcp) {
367
+ const mcpConfigPath = path.join(targetPath, 'mcp_config.json');
368
+ if (!fs.existsSync(mcpConfigPath)) {
369
+ const defaultMcpConfig = {
370
+ mcpServers: {
371
+ "contextos": {
372
+ command: "node",
373
+ args: ["./.agents/mcp/server.mjs", "--dir", "."]
374
+ }
375
+ }
376
+ };
377
+ fs.writeFileSync(mcpConfigPath, JSON.stringify(defaultMcpConfig, null, 2));
378
+ console.log('[OK] Created default MCP configuration (.agents/mcp_config.json)');
379
+ }
380
+ }
381
+
382
+ // ── Apply profile if requested or auto ──────────────────────────────────────
383
+ const selectedProfile = flags.profile || (flags.auto ? stackDetection.recommendedProfile : null);
384
+ if (selectedProfile) {
385
+ try {
386
+ const applied = profiles.applyProfile(selectedProfile, process.cwd());
387
+ console.log(`[OK] Applied profile '${applied.name}' (excluded: ${(applied.exclude_skills || []).join(', ') || 'none'})`);
388
+ } catch (e) {
389
+ console.warn(`[WARN] Could not apply profile '${selectedProfile}': ${e.message}`);
390
+ }
391
+ }
392
+
393
+ console.log('[OK] Your AI assistant now has skills and rules configured.\n');
394
+
395
+ // ── Auto-compile skills ───────────────────────────────────────────────────
396
+ if (!flags.skipCompile) {
397
+ const ctxPath = path.join(targetPath, 'ctx.js');
398
+ if (fs.existsSync(ctxPath)) {
399
+ console.log('Compiling skills for Gemini...');
400
+ try {
401
+ const { execFileSync } = require('child_process');
402
+ execFileSync(process.execPath, [ctxPath, 'export', 'gemini'], {
403
+ cwd: process.cwd(),
404
+ stdio: 'inherit',
405
+ });
406
+ } catch (e) {
407
+ console.warn('[WARN] Skill compilation failed — run manually:');
408
+ console.warn(' node .agents/ctx.js export gemini');
409
+ }
410
+ }
411
+ } else {
412
+ console.log('Tip: Run `node .agents/ctx.js export gemini` to compile skills.');
413
+ }
414
+
415
+ console.log('\n Next steps:');
416
+ console.log(' 1. Open your project in your AI assistant');
417
+ console.log(' 2. The assistant will automatically load .agents/AGENTS.md');
418
+ console.log(' 3. Skills are pre-compiled in .agents/generated/gemini/skills/');
419
+ console.log(' 4. Switch profiles anytime:');
420
+ console.log(' node .agents/ctx.js profile list');
421
+ console.log(' node .agents/ctx.js profile apply mvp');
422
+ console.log(' 5. Export to other AI tools:');
423
+ console.log(' node .agents/ctx.js export cursor → .cursorrules & .cursor/rules');
424
+ console.log(' node .agents/ctx.js export copilot → .github/copilot-instructions.md');
425
+ console.log(' node .agents/ctx.js export aider → .aider.conf.yml + CONVENTIONS.md');
426
+ console.log(' 6. Add community skills (plugins):');
427
+ console.log(' node .agents/ctx.js skill add username/my-skill');
428
+ console.log(' node .agents/ctx.js skill list');
429
+ if (!flags.withMcp) {
430
+ console.log(' 7. Enable MCP parallel subagents & worktrees (optional):');
431
+ console.log(' npx contextos-agents setup-mcp');
432
+ }
433
+ console.log('');
434
+
435
+ // ── --add-skill flag ────────────────────────────────────────────────────────
436
+ if (flags.addSkill) {
437
+ const ctxPath = path.join(targetPath, 'ctx.js');
438
+ if (fs.existsSync(ctxPath)) {
439
+ console.log(`Installing plugin skill: ${flags.addSkill}`);
440
+ try {
441
+ const { execFileSync } = require('child_process');
442
+ execFileSync(process.execPath, [ctxPath, 'skill', 'add', flags.addSkill], {
443
+ cwd: process.cwd(),
444
+ stdio: 'inherit',
445
+ });
446
+ } catch (e) {
447
+ console.warn(`[WARN] Skill install failed — run manually:`);
448
+ console.warn(` node .agents/ctx.js skill add ${flags.addSkill}`);
449
+ }
450
+ }
451
+ }
452
+
453
+ } catch (error) {
454
+ console.error('[ERROR] Installation failed:', error.message);
455
+ process.exit(1);
456
+ }
457
+
458
+ } // end of main install else block
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "contextos-agents",
3
+ "version": "1.5.0",
4
+ "description": "Install a .agents folder into your project to teach AI assistants best practices: UI/UX, architecture, security, and engineering workflow skills.",
5
+ "bin": {
6
+ "contextos-agents": "./bin/index.js",
7
+ "koko-contextos-agents": "./bin/index.js"
8
+ },
9
+ "files": [
10
+ "bin",
11
+ "registry.json",
12
+ "registry.schema.json",
13
+ ".agents/AGENTS.md",
14
+ ".agents/skills.json",
15
+ ".agents/ctx.js",
16
+ ".agents/validate.js",
17
+ ".agents/plugins.js",
18
+ ".agents/profiles.js",
19
+ ".agents/resolver.js",
20
+ ".agents/skills-index.json",
21
+ ".agents/adapters",
22
+ ".agents/core",
23
+ ".agents/generated",
24
+ ".agents/mcp",
25
+ "benchmarks/gemini-issues.js"
26
+ ],
27
+ "scripts": {
28
+ "build": "node .agents/ctx.js export all",
29
+ "export": "node .agents/ctx.js export gemini",
30
+ "validate": "node .agents/ctx.js validate",
31
+ "benchmark": "node benchmarks/gemini-issues.js",
32
+ "benchmark:live": "node benchmarks/run-live-benchmark.js",
33
+ "benchmark:runtime": "node benchmarks/run-runtime-benchmark.js",
34
+ "lint:md": "markdownlint README.md CONTRIBUTING.md .agents/core/skills/**/*.md --ignore .agents/generated/** --config .markdownlint.json",
35
+ "test": "node --test --test-concurrency=1 tests/install.test.js tests/export.test.js tests/skills.test.js tests/validate.test.js tests/plugins.test.js tests/benchmark.test.js tests/profile.test.js tests/resolver.test.js",
36
+ "prepublishOnly": "npm run validate && cd contextos-mcp && npm install && npm run build:bundle && cd .. && npm run build"
37
+ },
38
+ "keywords": [
39
+ "ai",
40
+ "agents",
41
+ "contextos",
42
+ "ai-agents",
43
+ "claude",
44
+ "gemini",
45
+ "cursor",
46
+ "llm",
47
+ "prompt-engineering",
48
+ "skills",
49
+ "coding-assistant"
50
+ ],
51
+ "author": "koko-o",
52
+ "license": "MIT",
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "https://github.com/kok-o/contextos-agents.git"
56
+ },
57
+ "homepage": "https://github.com/kok-o/contextos-agents#readme",
58
+ "bugs": {
59
+ "url": "https://github.com/kok-o/contextos-agents/issues"
60
+ },
61
+ "engines": {
62
+ "node": ">=16.7.0"
63
+ },
64
+ "devDependencies": {
65
+ "markdownlint-cli": "^0.43.0"
66
+ },
67
+ "dependencies": {
68
+ "inquirer": "^8.2.7"
69
+ }
70
+ }
package/registry.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/kok-o/contextos-agents/main/registry.schema.json",
3
+ "version": "1",
4
+ "description": "ContextOS Community Skill Registry. Submit a PR to add your skill.",
5
+ "skills": [
6
+ {
7
+ "id": "koko-o/ponytail-mindset",
8
+ "name": "ponytail-mindset",
9
+ "description": "Minimalist coding mindset — 7-rung YAGNI ladder. Reduces code output ~54%.",
10
+ "author": "koko-o",
11
+ "tags": ["minimalism", "efficiency", "yagni"],
12
+ "npm": null,
13
+ "github": "kok-o/contextos-agents",
14
+ "path": ".agents/core/skills/ponytail-mindset",
15
+ "builtin": true
16
+ },
17
+ {
18
+ "id": "koko-o/gstack-roles",
19
+ "name": "gstack-roles",
20
+ "description": "23 specialist AI roles. Declare your role before each task phase.",
21
+ "author": "koko-o",
22
+ "tags": ["roles", "workflow", "planning"],
23
+ "npm": null,
24
+ "github": "kok-o/contextos-agents",
25
+ "path": ".agents/core/skills/gstack-roles",
26
+ "builtin": true
27
+ },
28
+ {
29
+ "id": "koko-o/impeccable-design",
30
+ "name": "impeccable-design",
31
+ "description": "50 deterministic design QA rules. Prevents AI design slop.",
32
+ "author": "koko-o",
33
+ "tags": ["ui", "design", "frontend", "anti-patterns"],
34
+ "npm": null,
35
+ "github": "kok-o/contextos-agents",
36
+ "path": ".agents/core/skills/impeccable-design",
37
+ "builtin": true
38
+ },
39
+ {
40
+ "id": "koko-o/graphify",
41
+ "name": "graphify",
42
+ "description": "Codebase knowledge graph generator via Tree-sitter AST parsing and semantic indexing.",
43
+ "author": "koko-o",
44
+ "tags": ["knowledge-graph", "ast", "tree-sitter", "dependencies", "architecture"],
45
+ "npm": null,
46
+ "github": "kok-o/contextos-agents",
47
+ "path": ".agents/core/skills/graphify",
48
+ "builtin": true
49
+ }
50
+ ],
51
+ "contributing": "https://github.com/kok-o/contextos-agents/blob/main/CONTRIBUTING.md#publishing-a-skill-as-a-plugin",
52
+ "schema": "https://raw.githubusercontent.com/kok-o/contextos-agents/main/registry.schema.json"
53
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "ContextOS Skill Registry Schema",
4
+ "description": "Schema for registry.json and individual skill package.json manifests",
5
+ "type": "object",
6
+ "required": ["version", "skills"],
7
+ "properties": {
8
+ "version": { "type": "string" },
9
+ "description": { "type": "string" },
10
+ "skills": {
11
+ "type": "array",
12
+ "items": { "$ref": "#/definitions/SkillEntry" }
13
+ }
14
+ },
15
+ "definitions": {
16
+ "SkillEntry": {
17
+ "type": "object",
18
+ "required": ["id", "name", "description", "author"],
19
+ "properties": {
20
+ "id": { "type": "string", "pattern": "^[a-z0-9-]+/[a-z0-9-]+$", "description": "Unique skill ID in author/name format" },
21
+ "name": { "type": "string", "description": "Skill directory name (slug)" },
22
+ "description": { "type": "string", "description": "One-line description" },
23
+ "author": { "type": "string", "description": "GitHub username or org" },
24
+ "tags": { "type": "array", "items": { "type": "string" } },
25
+ "npm": { "type": ["string", "null"], "description": "npm package name if published" },
26
+ "github": { "type": ["string", "null"], "description": "GitHub repo in owner/repo format" },
27
+ "path": { "type": ["string", "null"], "description": "Path within the GitHub repo to the skill directory" },
28
+ "builtin": { "type": "boolean", "description": "true = ships with contextos-agents core" }
29
+ }
30
+ }
31
+ }
32
+ }