shmakk 1.1.0 → 1.2.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 (450) hide show
  1. package/README.md +16 -1
  2. package/package.json +6 -3
  3. package/scripts/import-skills.js +536 -0
  4. package/scripts/install-skills.js +64 -0
  5. package/skills/ai-elements.md +482 -0
  6. package/skills/architecture.md +151 -0
  7. package/skills/backend-adapter-aws-lambda.md +204 -0
  8. package/skills/backend-adapter-express.md +177 -0
  9. package/skills/backend-adapter-fastify.md +222 -0
  10. package/skills/backend-adapter-fetch.md +200 -0
  11. package/skills/backend-api-docs.md +22 -0
  12. package/skills/backend-aspire.md +232 -0
  13. package/skills/backend-aspnet-core.md +62 -0
  14. package/skills/backend-build-chatgpt-app.md +321 -0
  15. package/skills/backend-build-mcp-app.md +393 -0
  16. package/skills/backend-build-mcp-server.md +222 -0
  17. package/skills/backend-build-mcpb.md +200 -0
  18. package/skills/backend-building-ai-agent-on-cloudflare.md +401 -0
  19. package/skills/backend-caching.md +206 -0
  20. package/skills/backend-chatgpt-app-submission.md +157 -0
  21. package/skills/backend-chatgpt-apps.md +321 -0
  22. package/skills/backend-client-setup.md +318 -0
  23. package/skills/backend-containerize-aspnet-framework.md +455 -0
  24. package/skills/backend-create-spring-boot-java-project.md +164 -0
  25. package/skills/backend-create-spring-boot-kotlin-project.md +148 -0
  26. package/skills/backend-csharp-async.md +50 -0
  27. package/skills/backend-csharp-docs.md +63 -0
  28. package/skills/backend-csharp-mcp-server-generator.md +60 -0
  29. package/skills/backend-dotenv.md +201 -0
  30. package/skills/backend-dotenvx.md +119 -0
  31. package/skills/backend-env-vars.md +259 -0
  32. package/skills/backend-error-handling.md +254 -0
  33. package/skills/backend-fastapi.md +437 -0
  34. package/skills/backend-go-mcp-server-generator.md +335 -0
  35. package/skills/backend-java-mcp-server-generator.md +757 -0
  36. package/skills/backend-kotlin-mcp-server-generator.md +450 -0
  37. package/skills/backend-middlewares.md +243 -0
  38. package/skills/backend-multi-stage-dockerfile.md +47 -0
  39. package/skills/backend-nestjs.md +192 -0
  40. package/skills/backend-next-forge.md +375 -0
  41. package/skills/backend-nextjs.md +746 -0
  42. package/skills/backend-openapi-to-application-code.md +113 -0
  43. package/skills/backend-php-mcp-server-generator.md +523 -0
  44. package/skills/backend-python-mcp-server-generator.md +106 -0
  45. package/skills/backend-routing-middleware.md +251 -0
  46. package/skills/backend-ruby-mcp-server-generator.md +661 -0
  47. package/skills/backend-rust-mcp-server-generator.md +578 -0
  48. package/skills/backend-semantic-kernel.md +57 -0
  49. package/skills/backend-server-setup.md +379 -0
  50. package/skills/backend-server-side-calls.md +250 -0
  51. package/skills/backend-subscriptions.md +407 -0
  52. package/skills/backend-swift-mcp-server-generator.md +670 -0
  53. package/skills/backend-trpc-router.md +152 -0
  54. package/skills/backend-typescript-mcp-server-generator.md +91 -0
  55. package/skills/backend-validators.md +229 -0
  56. package/skills/backend.md +76 -0
  57. package/skills/backup.md +165 -0
  58. package/skills/budget.md +140 -0
  59. package/skills/business-gtm-0-to-1-launch.md +322 -0
  60. package/skills/business-gtm-operating-cadence.md +421 -0
  61. package/skills/business-gtm-positioning-strategy.md +439 -0
  62. package/skills/business-gtm-product-led-growth.md +340 -0
  63. package/skills/calendar.md +95 -0
  64. package/skills/code-review.md +130 -0
  65. package/skills/compliance.md +168 -0
  66. package/skills/contracts.md +130 -0
  67. package/skills/daily-job-run.md +46 -0
  68. package/skills/daily-webdesign.md +187 -0
  69. package/skills/database-bigquery-pipeline-audit.md +130 -0
  70. package/skills/database-cosmosdb-datamodeling.md +1046 -0
  71. package/skills/database-durable-objects.md +187 -0
  72. package/skills/database-ef-core.md +76 -0
  73. package/skills/database-fabric-lakehouse.md +107 -0
  74. package/skills/database-neon-postgres-egress-optimizer.md +213 -0
  75. package/skills/database-neon-postgres.md +218 -0
  76. package/skills/database-postgresql-code-review.md +213 -0
  77. package/skills/database-postgresql-optimization.md +405 -0
  78. package/skills/database-sql-code-review.md +302 -0
  79. package/skills/database-sql-optimization.md +297 -0
  80. package/skills/dependency-audit.md +165 -0
  81. package/skills/design-kami-landing.md +234 -0
  82. package/skills/design.md +221 -0
  83. package/skills/dev-acquire-codebase-knowledge.md +175 -0
  84. package/skills/dev-add-educational-comments.md +129 -0
  85. package/skills/dev-add-model-descriptions.md +74 -0
  86. package/skills/dev-adr-review.md +56 -0
  87. package/skills/dev-boost-prompt.md +26 -0
  88. package/skills/dev-build-run-debug.md +130 -0
  89. package/skills/dev-chunk.md +49 -0
  90. package/skills/dev-claude-md-improver.md +180 -0
  91. package/skills/dev-code-exemplars-blueprint-generator.md +127 -0
  92. package/skills/dev-code-tour.md +434 -0
  93. package/skills/dev-comment-code-generate-a-tutorial.md +27 -0
  94. package/skills/dev-commit.md +81 -0
  95. package/skills/dev-context-map.md +53 -0
  96. package/skills/dev-conventional-commit.md +73 -0
  97. package/skills/dev-create-architectural-decision-record.md +98 -0
  98. package/skills/dev-create-draft-pr.md +17 -0
  99. package/skills/dev-create-pr.md +17 -0
  100. package/skills/dev-create-readme.md +22 -0
  101. package/skills/dev-csharp-mstest.md +479 -0
  102. package/skills/dev-csharp-nunit.md +72 -0
  103. package/skills/dev-csharp-tunit.md +101 -0
  104. package/skills/dev-csharp-xunit.md +69 -0
  105. package/skills/dev-debug-failing-test.md +90 -0
  106. package/skills/dev-diff-analyze.md +32 -0
  107. package/skills/dev-diffs.md +24 -0
  108. package/skills/dev-dotnet-best-practices.md +86 -0
  109. package/skills/dev-dotnet-design-pattern-review.md +43 -0
  110. package/skills/dev-dotnet-timezone.md +110 -0
  111. package/skills/dev-dotnet-upgrade.md +117 -0
  112. package/skills/dev-doublecheck.md +278 -0
  113. package/skills/dev-explain-error.md +15 -0
  114. package/skills/dev-finding-discovery.md +164 -0
  115. package/skills/dev-fix-finding.md +111 -0
  116. package/skills/dev-full-file-edit.md +25 -0
  117. package/skills/dev-git-commit.md +125 -0
  118. package/skills/dev-git-flow-branch-creator.md +293 -0
  119. package/skills/dev-git-workflow.md +46 -0
  120. package/skills/dev-github-automation.md +64 -0
  121. package/skills/dev-github-code-review.md +1140 -0
  122. package/skills/dev-github-issues.md +202 -0
  123. package/skills/dev-gpt-5-4-prompting.md +55 -0
  124. package/skills/dev-investigation-mode.md +277 -0
  125. package/skills/dev-java-add-graalvm-native-image-support.md +450 -0
  126. package/skills/dev-java-docs.md +24 -0
  127. package/skills/dev-java-refactoring-extract-method.md +105 -0
  128. package/skills/dev-java-refactoring-remove-parameter.md +85 -0
  129. package/skills/dev-merge.md +73 -0
  130. package/skills/dev-migrate-create.md +36 -0
  131. package/skills/dev-migrate-validate.md +36 -0
  132. package/skills/dev-my-issues.md +9 -0
  133. package/skills/dev-my-pull-requests.md +15 -0
  134. package/skills/dev-planning-oracle-to-postgres-migration-integration-testing.md +45 -0
  135. package/skills/dev-playwright-generate-test.md +18 -0
  136. package/skills/dev-playwright.md +148 -0
  137. package/skills/dev-prompt-builder.md +142 -0
  138. package/skills/dev-pytest-coverage.md +29 -0
  139. package/skills/dev-python-manager-discovery.md +330 -0
  140. package/skills/dev-python-pypi-package-builder.md +445 -0
  141. package/skills/dev-readme-blueprint-generator.md +79 -0
  142. package/skills/dev-refactor-method-complexity-reduce.md +99 -0
  143. package/skills/dev-refactor-plan.md +66 -0
  144. package/skills/dev-refactor.md +646 -0
  145. package/skills/dev-review-and-refactor.md +16 -0
  146. package/skills/dev-reviewing-oracle-to-postgres-migration.md +68 -0
  147. package/skills/dev-ruff-recursive-fix.md +201 -0
  148. package/skills/dev-run-e2e-tests.md +126 -0
  149. package/skills/dev-run-pre-commit-checks.md +133 -0
  150. package/skills/dev-run-smoke-tests.md +127 -0
  151. package/skills/dev-scaffolding-oracle-to-postgres-migration-test-project.md +55 -0
  152. package/skills/dev-spring-boot-testing.md +190 -0
  153. package/skills/dev-sync-upstream.md +32 -0
  154. package/skills/dev-sync.md +74 -0
  155. package/skills/dev-tdd-workflow.md +23 -0
  156. package/skills/dev-terraform-azurerm-set-diff-analyzer.md +49 -0
  157. package/skills/dev-test-driven-development.md +372 -0
  158. package/skills/dev-test-gaps.md +18 -0
  159. package/skills/dev-test-triage.md +55 -0
  160. package/skills/dev-typer.md +267 -0
  161. package/skills/dev-typescript-setup.md +25 -0
  162. package/skills/dev-unified-diff-edit.md +16 -0
  163. package/skills/dev-unit-test-vue-pinia.md +198 -0
  164. package/skills/dev-using-git-worktrees.md +216 -0
  165. package/skills/dev-validation.md +99 -0
  166. package/skills/dev-verification.md +168 -0
  167. package/skills/dev-webapp-testing.md +134 -0
  168. package/skills/dev-write-coding-standards-from-file.md +317 -0
  169. package/skills/dev-write-tests.md +16 -0
  170. package/skills/devops-appinsights-instrumentation.md +49 -0
  171. package/skills/devops-az-cost-optimize.md +306 -0
  172. package/skills/devops-chronicle.md +154 -0
  173. package/skills/devops-deployments-cicd.md +331 -0
  174. package/skills/devops-devops-rollout-plan.md +118 -0
  175. package/skills/devops-geistdocs.md +276 -0
  176. package/skills/devops-observability.md +774 -0
  177. package/skills/devops-observe-metrics.md +35 -0
  178. package/skills/devops-observe-trace.md +30 -0
  179. package/skills/devops-phoenix-cli.md +163 -0
  180. package/skills/devops-phoenix-tracing.md +140 -0
  181. package/skills/devops-publish-to-pages.md +108 -0
  182. package/skills/devops-telemetry.md +87 -0
  183. package/skills/devops-update-avm-modules-in-bicep.md +61 -0
  184. package/skills/devops.md +81 -0
  185. package/skills/diagrams-canvas.md +204 -0
  186. package/skills/diagrams-draw-io-diagram-generator.md +463 -0
  187. package/skills/diagrams-excalidraw-diagram-generator.md +614 -0
  188. package/skills/diagrams-graphify.md +1277 -0
  189. package/skills/docs-bear-notes.md +108 -0
  190. package/skills/docs-create-llms.md +211 -0
  191. package/skills/docs-doc-gen.md +20 -0
  192. package/skills/docs-documentation-writer.md +46 -0
  193. package/skills/docs-llm-config.md +33 -0
  194. package/skills/docs-mkdocs-translations.md +109 -0
  195. package/skills/docs-obsidian-vault-maintainer.md +14 -0
  196. package/skills/docs-obsidian.md +82 -0
  197. package/skills/docs-prose.md +324 -0
  198. package/skills/docs-update-llms.md +217 -0
  199. package/skills/docs-update-markdown-file-index.md +77 -0
  200. package/skills/docs-wiki-maintainer.md +20 -0
  201. package/skills/documents.md +120 -0
  202. package/skills/email.md +113 -0
  203. package/skills/expenses.md +140 -0
  204. package/skills/file-ops.md +149 -0
  205. package/skills/files-convert-plaintext-to-md.md +363 -0
  206. package/skills/files-doc.md +81 -0
  207. package/skills/files-docx.md +594 -0
  208. package/skills/files-markdown-to-html.md +917 -0
  209. package/skills/files-nano-pdf.md +39 -0
  210. package/skills/files-pdf.md +315 -0
  211. package/skills/files-pdftk-server.md +163 -0
  212. package/skills/files-pptx-html-fidelity-audit.md +255 -0
  213. package/skills/files-pptx.md +231 -0
  214. package/skills/files-xlsx.md +301 -0
  215. package/skills/find-jobs.md +78 -0
  216. package/skills/format-conversion.md +157 -0
  217. package/skills/frontend-ai-elements.md +483 -0
  218. package/skills/frontend-ai-gateway.md +563 -0
  219. package/skills/frontend-ai-generation-persistence.md +242 -0
  220. package/skills/frontend-ai-sdk.md +799 -0
  221. package/skills/frontend-ai-visibility.md +127 -0
  222. package/skills/frontend-angular-developer.md +130 -0
  223. package/skills/frontend-aspnet-minimal-api-openapi.md +42 -0
  224. package/skills/frontend-bencium-innovative-ux-designer.md +719 -0
  225. package/skills/frontend-chat-sdk.md +666 -0
  226. package/skills/frontend-chrome-devtools.md +98 -0
  227. package/skills/frontend-frontend-app-builder.md +186 -0
  228. package/skills/frontend-frontend-design.md +43 -0
  229. package/skills/frontend-frontend-testing-debugging.md +143 -0
  230. package/skills/frontend-gsap-framer-scroll-animation.md +152 -0
  231. package/skills/frontend-internal-linking.md +109 -0
  232. package/skills/frontend-json-render.md +335 -0
  233. package/skills/frontend-keyword-clustering.md +118 -0
  234. package/skills/frontend-next-intl-add-language.md +20 -0
  235. package/skills/frontend-on-page-seo.md +112 -0
  236. package/skills/frontend-premium-frontend-ui.md +114 -0
  237. package/skills/frontend-react-best-practices.md +143 -0
  238. package/skills/frontend-schema-markup.md +160 -0
  239. package/skills/frontend-seo-audit.md +110 -0
  240. package/skills/frontend-swr.md +215 -0
  241. package/skills/frontend-technical-seo.md +162 -0
  242. package/skills/frontend-use-dom.md +418 -0
  243. package/skills/frontend-web-coder.md +564 -0
  244. package/skills/frontend-web-design-reviewer.md +369 -0
  245. package/skills/frontend-web-perf.md +202 -0
  246. package/skills/frontend.md +125 -0
  247. package/skills/general-adapter-standalone.md +199 -0
  248. package/skills/general-auth.md +356 -0
  249. package/skills/general-containerize-aspnetcore.md +393 -0
  250. package/skills/general-create-technical-spike.md +231 -0
  251. package/skills/general-cron-jobs.md +72 -0
  252. package/skills/general-ddd-aggregate.md +52 -0
  253. package/skills/general-ddd-context.md +46 -0
  254. package/skills/general-ddd-validate.md +51 -0
  255. package/skills/general-dependency-check.md +26 -0
  256. package/skills/general-email-marketing.md +86 -0
  257. package/skills/general-healthcheck.md +246 -0
  258. package/skills/general-import-infrastructure-as-code.md +368 -0
  259. package/skills/general-init.md +49 -0
  260. package/skills/general-java-junit.md +64 -0
  261. package/skills/general-java-springboot.md +66 -0
  262. package/skills/general-javascript-typescript-jest.md +45 -0
  263. package/skills/general-kotlin-springboot.md +71 -0
  264. package/skills/general-make-repo-contribution.md +91 -0
  265. package/skills/general-market-research.md +78 -0
  266. package/skills/general-marketplace.md +468 -0
  267. package/skills/general-model-recommendation.md +673 -0
  268. package/skills/general-payments.md +352 -0
  269. package/skills/general-quality-playbook.md +480 -0
  270. package/skills/general-run-integration-tests.md +113 -0
  271. package/skills/general-superjson.md +274 -0
  272. package/skills/general-swiftpm-macos.md +51 -0
  273. package/skills/general-threat-model.md +61 -0
  274. package/skills/invoices.md +167 -0
  275. package/skills/licenses.md +159 -0
  276. package/skills/logs.md +156 -0
  277. package/skills/marketing.md +139 -0
  278. package/skills/media-image-manipulation-image-magick.md +253 -0
  279. package/skills/media-imagegen.md +357 -0
  280. package/skills/media-openai-whisper-api.md +63 -0
  281. package/skills/media-openai-whisper.md +39 -0
  282. package/skills/media-peekaboo.md +191 -0
  283. package/skills/media-screenshot.md +268 -0
  284. package/skills/media-speech.md +145 -0
  285. package/skills/media-transcribe.md +82 -0
  286. package/skills/media-video-frames.md +47 -0
  287. package/skills/mobile-android-emulator-qa.md +81 -0
  288. package/skills/mobile-android-performance.md +280 -0
  289. package/skills/mobile-building-mcp-server-on-cloudflare.md +267 -0
  290. package/skills/mobile-building-native-ui.md +322 -0
  291. package/skills/mobile-expo-api-routes.md +369 -0
  292. package/skills/mobile-expo-cicd-workflows.md +92 -0
  293. package/skills/mobile-expo-deployment.md +191 -0
  294. package/skills/mobile-expo-dev-client.md +165 -0
  295. package/skills/mobile-expo-module.md +177 -0
  296. package/skills/mobile-expo-tailwind-setup.md +481 -0
  297. package/skills/mobile-expo-ui-jetpack-compose.md +41 -0
  298. package/skills/mobile-expo-ui-swift-ui.md +40 -0
  299. package/skills/mobile-ios-app-intents.md +78 -0
  300. package/skills/mobile-ios-debugger-agent.md +52 -0
  301. package/skills/mobile-ios-ettrace-performance.md +198 -0
  302. package/skills/mobile-ios-memgraph-leaks.md +77 -0
  303. package/skills/mobile-native-data-fetching.md +508 -0
  304. package/skills/mobile-packaging-notarization.md +48 -0
  305. package/skills/mobile-react-native-architecture.md +672 -0
  306. package/skills/mobile-react-native-mobile-design.md +438 -0
  307. package/skills/mobile-signing-entitlements.md +59 -0
  308. package/skills/mobile-swiftui-liquid-glass.md +91 -0
  309. package/skills/mobile-swiftui-patterns.md +210 -0
  310. package/skills/mobile-swiftui-performance-audit.md +108 -0
  311. package/skills/mobile-swiftui-ui-patterns.md +97 -0
  312. package/skills/mobile-swiftui-view-refactor.md +204 -0
  313. package/skills/mobile-upgrading-expo.md +134 -0
  314. package/skills/mobile.md +183 -0
  315. package/skills/notes.md +106 -0
  316. package/skills/planning-adr-create.md +62 -0
  317. package/skills/planning-adr-index.md +67 -0
  318. package/skills/planning-architecture-blueprint-generator.md +323 -0
  319. package/skills/planning-brainstorming.md +165 -0
  320. package/skills/planning-breakdown-epic-arch.md +67 -0
  321. package/skills/planning-breakdown-epic-pm.md +59 -0
  322. package/skills/planning-breakdown-feature-implementation.md +129 -0
  323. package/skills/planning-breakdown-feature-prd.md +62 -0
  324. package/skills/planning-breakdown-plan.md +510 -0
  325. package/skills/planning-breakdown-test.md +366 -0
  326. package/skills/planning-cloud-design-patterns.md +63 -0
  327. package/skills/planning-content-brief.md +128 -0
  328. package/skills/planning-content-strategy.md +138 -0
  329. package/skills/planning-content-translation.md +143 -0
  330. package/skills/planning-create-github-action-workflow-specification.md +277 -0
  331. package/skills/planning-create-github-issues-feature-from-implementation-plan.md +29 -0
  332. package/skills/planning-create-github-issues-for-unmet-specification-requirements.md +36 -0
  333. package/skills/planning-create-github-pull-request-from-specification.md +25 -0
  334. package/skills/planning-create-implementation-plan.md +158 -0
  335. package/skills/planning-create-specification.md +128 -0
  336. package/skills/planning-first-ask.md +31 -0
  337. package/skills/planning-folder-structure-blueprint-generator.md +406 -0
  338. package/skills/planning-gen-specs-as-issues.md +166 -0
  339. package/skills/planning-generate-snapshot.md +144 -0
  340. package/skills/planning-generate-status-report.md +336 -0
  341. package/skills/planning-metric-pack-designer.md +27 -0
  342. package/skills/planning-pm-spec.md +53 -0
  343. package/skills/planning-prd.md +144 -0
  344. package/skills/planning-project-assessment.md +182 -0
  345. package/skills/planning-project-setup-info-local.md +128 -0
  346. package/skills/planning-project-workflow-analysis-blueprint-generator.md +294 -0
  347. package/skills/planning-service-oriented-architecture.md +248 -0
  348. package/skills/planning-spec-to-backlog.md +544 -0
  349. package/skills/planning-technology-stack-blueprint-generator.md +243 -0
  350. package/skills/planning-update-implementation-plan.md +158 -0
  351. package/skills/planning-update-specification.md +128 -0
  352. package/skills/planning-what-context-needed.md +40 -0
  353. package/skills/planning-writing-plans.md +153 -0
  354. package/skills/prepare-application.md +81 -0
  355. package/skills/productivity-apple-notes.md +78 -0
  356. package/skills/productivity-apple-reminders.md +119 -0
  357. package/skills/productivity-capture-tasks-from-meeting-notes.md +680 -0
  358. package/skills/productivity-daily-prep.md +156 -0
  359. package/skills/productivity-email-drafter.md +101 -0
  360. package/skills/productivity-hr-onboarding.md +53 -0
  361. package/skills/productivity-things-mac.md +87 -0
  362. package/skills/productivity-update.md +169 -0
  363. package/skills/reminders.md +109 -0
  364. package/skills/research-dossier-collect.md +71 -0
  365. package/skills/research-kg-extract.md +37 -0
  366. package/skills/research-openai-docs.md +89 -0
  367. package/skills/research-research-add-items.md +31 -0
  368. package/skills/research-research-report.md +94 -0
  369. package/skills/research-research-synthesize.md +63 -0
  370. package/skills/research-summarize.md +88 -0
  371. package/skills/research-transformers-js.md +635 -0
  372. package/skills/research.md +119 -0
  373. package/skills/security-ai-prompt-engineering-safety-review.md +231 -0
  374. package/skills/security-attack-path-analysis.md +182 -0
  375. package/skills/security-gdpr-compliant.md +284 -0
  376. package/skills/security-mcp-security-audit.md +279 -0
  377. package/skills/security-pii-detect.md +31 -0
  378. package/skills/security-secret-scanning.md +243 -0
  379. package/skills/security-security-best-practices.md +87 -0
  380. package/skills/security-security-ownership-map.md +207 -0
  381. package/skills/security-security-review.md +169 -0
  382. package/skills/security-security-scan.md +138 -0
  383. package/skills/security-security-threat-model.md +82 -0
  384. package/skills/security-threat-model-analyst.md +76 -0
  385. package/skills/sysmon.md +181 -0
  386. package/skills/system-arch-linux-triage.md +32 -0
  387. package/skills/system-centos-linux-triage.md +32 -0
  388. package/skills/system-debian-linux-triage.md +32 -0
  389. package/skills/system-fedora-linux-triage.md +32 -0
  390. package/skills/system-geofeed-tuner.md +865 -0
  391. package/skills/system-iot-anomalies.md +15 -0
  392. package/skills/system-iot-firmware.md +16 -0
  393. package/skills/system-iot-fleet.md +14 -0
  394. package/skills/system-iot-register.md +19 -0
  395. package/skills/system-iot-witness-verify.md +15 -0
  396. package/skills/system-tmux.md +171 -0
  397. package/skills/system-window-management.md +228 -0
  398. package/skills/task-management.md +90 -0
  399. package/skills/tasks.md +102 -0
  400. package/skills/test-coverage.md +188 -0
  401. package/skills/ux-ui.md +128 -0
  402. package/skills/web.md +186 -0
  403. package/skills/workflow-act-on-feedback.md +15 -0
  404. package/skills/workflow-automate-this.md +245 -0
  405. package/skills/workflow-autoresearch.md +276 -0
  406. package/skills/workflow-coding-agent.md +317 -0
  407. package/skills/workflow-deep-research.md +44 -0
  408. package/skills/workflow-dispatching-parallel-agents.md +183 -0
  409. package/skills/workflow-eval-driven-dev.md +148 -0
  410. package/skills/workflow-executing-plans.md +71 -0
  411. package/skills/workflow-mentoring-juniors.md +311 -0
  412. package/skills/workflow-receiving-code-review.md +214 -0
  413. package/skills/workflow-repo-story-time.md +155 -0
  414. package/skills/workflow-requesting-code-review.md +104 -0
  415. package/skills/workflow-session-report.md +43 -0
  416. package/skills/workflow-structured-autonomy-generate.md +126 -0
  417. package/skills/workflow-subagent-driven-development.md +280 -0
  418. package/skills/writing.md +106 -0
  419. package/src/agent.js +0 -0
  420. package/src/browser.js +297 -0
  421. package/src/cli.js +25 -4
  422. package/src/code-reviewer.js +119 -0
  423. package/src/completions.js +1 -1
  424. package/src/control.js +222 -30
  425. package/src/coordinator.js +303 -0
  426. package/src/correction.js +29 -8
  427. package/src/edit-tracker.js +21 -0
  428. package/src/edit-viewer.js +414 -0
  429. package/src/endpoints.js +64 -15
  430. package/src/index.js +45 -11
  431. package/src/llm.js +86 -2
  432. package/src/mcp-client.js +416 -0
  433. package/src/memory.js +182 -0
  434. package/src/planner.js +216 -0
  435. package/src/rules.js +90 -0
  436. package/src/self-commands.js +757 -0
  437. package/src/services/voice.js +10 -7
  438. package/src/session-search.js +427 -0
  439. package/src/session.js +487 -99
  440. package/src/shmakk-server.js +91 -0
  441. package/src/skills.js +410 -3
  442. package/src/subagent.js +4 -1
  443. package/src/system-prompt.js +13 -5
  444. package/src/task-file.js +114 -0
  445. package/src/taskClassifier.js +246 -0
  446. package/src/team.js +752 -0
  447. package/src/tools.js +142 -21
  448. package/src/web.js +35 -5
  449. package/src/workflows.js +261 -0
  450. package/src/workspace-index.js +25 -6
package/src/planner.js ADDED
@@ -0,0 +1,216 @@
1
+ // Planner — handles approval-first execution for very large multi-day projects.
2
+ // Most work is handled by:
3
+ // - Team PM agent: decomposes multi-agent tasks, runs agents in parallel/pipeline
4
+ // - Single agent: handles individual tasks directly
5
+ //
6
+ // Planner only triggers for enormous projects (500+ chars with explicit scope signals).
7
+ // Use '+' prefix to force planning, '!' prefix to skip it.
8
+ //
9
+ // Flow (rare):
10
+ // session receives input
11
+ // → shouldPlan(input)? only for massive projects
12
+ // → generatePlan(input) → plan JSON
13
+ // → user approves
14
+ // → execute tasks via agents
15
+
16
+ const fs = require('fs');
17
+ const path = require('path');
18
+ const { makeClient, modelFor } = require('./llm');
19
+
20
+ // Questions and conversational inputs that should bypass planning.
21
+ // These get direct answers from the agent without plan overhead.
22
+ const SKIP_PLAN = [
23
+ // Wh-questions: "what does X do", "how does Y work"
24
+ /^(?:what|how|why|when|where|who|which)\s+(?:is|are|does|do|did|was|were|can|could|should|would|will)\b/i,
25
+ // Ends with question mark (most natural questions)
26
+ /\?$/,
27
+ // Explanation requests without action
28
+ /^(?:explain|describe|tell\s+me\s+(?:about|what|how)|show\s+me\s+(?:what|how)|what\s+is\s+(?:a\s+)?|what\s+are\s+|how\s+does\s+|how\s+do\s+)/i,
29
+ // Conversational acknowledgements
30
+ /^(?:yes|no|ok|okay|sure|thanks|thank\s+you|got\s+it|sounds\s+good|alright|great|perfect|cool|nice|agreed)\b/i,
31
+ // Very short (one-liners under 30 chars almost never need a plan)
32
+ ];
33
+
34
+ // Action verbs that signal multi-step implementation work — these get a plan.
35
+ // Excludes read-only queries and trivial modifications.
36
+ const PLAN_SIGNALS = [
37
+ // Create/build work (substantial)
38
+ /\b(?:add|create|build|implement|write|develop|generate)\b/i,
39
+ // Debugging (substantial)
40
+ /\b(?:debug|resolve|solve|diagnose)\b/i,
41
+ // Refactoring (substantial, multi-file)
42
+ /\b(?:refactor|rewrite|migrate|restructure|reorganize)\b/i,
43
+ // Infrastructure (substantial)
44
+ /\b(?:set\s+up|configure|install|integrate|deploy|connect|wire\s+up)\b/i,
45
+ // Removal/cleanup (needs care)
46
+ /\b(?:remove|delete|purge)\b/i,
47
+ // Testing (substantial)
48
+ /\b(?:test|spec|coverage)\b/i,
49
+ ];
50
+
51
+ // Multi-word phrases that indicate complexity (plan these if 60+ chars)
52
+ const COMPLEXITY_SIGNALS = [
53
+ /\b(?:multiple|across)\s+(?:files|modules|components)\b/i,
54
+ /\bfrom\s+scratch\b/i,
55
+ /\b(?:end.to.end|integration)\b/i,
56
+ /\b(?:architecture|design|system)\b/i,
57
+ /\b(?:migration|upgrade|conversion)\b/i,
58
+ ];
59
+
60
+ // shouldPlan returns true only for very large, multi-day projects.
61
+ // The team PM agent handles planning for multi-agent tasks.
62
+ // Single agents handle most work directly without explicit plans.
63
+ // Prefix input with '!' to bypass, or '+' to force planning.
64
+ function shouldPlan(input) {
65
+ const text = String(input || '').trim();
66
+ if (text.startsWith('!')) return false; // explicit bypass
67
+ if (text.startsWith('+')) return true; // force plan
68
+
69
+ // Skip conversational inputs
70
+ if (SKIP_PLAN.some((p) => p.test(text))) return false;
71
+
72
+ // Only plan for enormous multi-day projects with explicit scope signals
73
+ // Most reasonable work goes to team PM (multi-agent) or single agent
74
+ const isLargeScope = text.length > 500 && (
75
+ /\b(?:build|create|implement).+(?:from\s+scratch|complete|entire)/i.test(text) ||
76
+ /\b(?:multi-day|week|sprint|phase)/i.test(text) ||
77
+ /\b(?:migrate|rewrite|refactor).*\b(?:entire|complete|whole|full|comprehensive)\b/i.test(text)
78
+ );
79
+
80
+ return isLargeScope;
81
+ }
82
+
83
+ // generatePlan calls the LLM to decompose the user's request into a plan.
84
+ // Returns a plan object or throws.
85
+ async function generatePlan(input, { signal } = {}) {
86
+ const client = makeClient('agent');
87
+ const model = modelFor('agent');
88
+
89
+ // Estimate complexity: longer requests with more context likely need more steps
90
+ const textLen = String(input).length;
91
+ const hasCode = /```|file:/.test(input);
92
+ const hasMultiFile = /multiple\s+files|several\s+files|across\s+files/i.test(input);
93
+
94
+ let maxSteps = 3;
95
+ if (textLen > 150) maxSteps = 4;
96
+ if (textLen > 300 || hasCode) maxSteps = 5;
97
+ if (hasMultiFile) maxSteps = 6;
98
+
99
+ const systemPrompt = `You are a planning assistant that decomposes tasks into ordered, minimal steps.
100
+ Each step must be:
101
+ - Atomic: completable in one focused session
102
+ - Specific: clear about what action and why
103
+ - Ordered: each step builds on the previous
104
+
105
+ Be concise. Avoid unnecessary steps. Group related work together.
106
+ Output ONLY valid JSON. No prose.`;
107
+
108
+ const userPrompt = `Break this task into ${Math.min(maxSteps, 6)} or fewer ordered steps (minimum 2):
109
+
110
+ "${input}"
111
+
112
+ Output format (JSON only):
113
+ {
114
+ "title": "Short overall goal (under 60 chars)",
115
+ "tasks": [
116
+ {
117
+ "id": "1",
118
+ "title": "Short action title (under 10 words)",
119
+ "description": "What this step does and why"
120
+ }
121
+ ]
122
+ }`;
123
+
124
+ const response = await client.chat.completions.create({
125
+ model,
126
+ messages: [
127
+ { role: 'system', content: systemPrompt },
128
+ { role: 'user', content: userPrompt },
129
+ ],
130
+ temperature: 0,
131
+ stream: false,
132
+ }, { signal });
133
+
134
+ const raw = response.choices?.[0]?.message?.content || '';
135
+ const match = raw.match(/\{[\s\S]*\}/);
136
+ if (!match) throw new Error('plan generation returned no valid JSON');
137
+
138
+ const parsed = JSON.parse(match[0]);
139
+ if (!Array.isArray(parsed.tasks) || !parsed.tasks.length) {
140
+ throw new Error('plan has no tasks');
141
+ }
142
+
143
+ return {
144
+ id: Math.random().toString(36).slice(2, 10),
145
+ title: String(parsed.title || 'Plan').slice(0, 80),
146
+ status: 'pending_approval',
147
+ currentTaskIndex: 0,
148
+ createdAt: new Date().toISOString(),
149
+ updatedAt: new Date().toISOString(),
150
+ originalRequest: String(input).slice(0, 500),
151
+ tasks: parsed.tasks.slice(0, 15).map((t, i) => ({
152
+ id: String(t.id || i + 1),
153
+ title: String(t.title || `Step ${i + 1}`).slice(0, 100),
154
+ description: String(t.description || '').slice(0, 300),
155
+ status: 'pending',
156
+ completedAt: null,
157
+ })),
158
+ };
159
+ }
160
+
161
+ // formatPlan produces a terminal-friendly plan display string.
162
+ function formatPlan(plan) {
163
+ const STATUS_ICON = {
164
+ completed: '\x1b[32m✓\x1b[0m',
165
+ failed: '\x1b[31m✗\x1b[0m',
166
+ skipped: '\x1b[33m–\x1b[0m',
167
+ in_progress: '\x1b[36m▸\x1b[0m',
168
+ pending: ' ',
169
+ };
170
+ const sep = '─'.repeat(44);
171
+ const lines = [
172
+ '',
173
+ `\x1b[1mPLAN: ${plan.title}\x1b[0m`,
174
+ sep,
175
+ ];
176
+ for (const t of plan.tasks) {
177
+ const icon = STATUS_ICON[t.status] || ' ';
178
+ lines.push(` ${icon} ${t.id}. ${t.title}`);
179
+ if (t.description) {
180
+ lines.push(` \x1b[2m${t.description}\x1b[0m`);
181
+ }
182
+ }
183
+ lines.push('');
184
+ return lines.join('\r\n');
185
+ }
186
+
187
+ // Plan persistence — stored separately from the task journal so --show-plan
188
+ // can read it without interfering with per-task resume behavior.
189
+
190
+ function activePlanPath(root) {
191
+ return path.join(root, '.shmakk', 'state', 'active-plan.json');
192
+ }
193
+
194
+ function savePlan(root, plan) {
195
+ try {
196
+ const p = activePlanPath(root);
197
+ fs.mkdirSync(path.dirname(p), { recursive: true });
198
+ fs.writeFileSync(p, JSON.stringify({ ...plan, updatedAt: new Date().toISOString() }, null, 2));
199
+ } catch {}
200
+ }
201
+
202
+ function loadPlan(root) {
203
+ try {
204
+ const p = activePlanPath(root);
205
+ if (!fs.existsSync(p)) return null;
206
+ return JSON.parse(fs.readFileSync(p, 'utf8'));
207
+ } catch {
208
+ return null;
209
+ }
210
+ }
211
+
212
+ function clearPlan(root) {
213
+ try { fs.rmSync(activePlanPath(root), { force: true }); } catch {}
214
+ }
215
+
216
+ module.exports = { shouldPlan, generatePlan, formatPlan, savePlan, loadPlan, clearPlan, activePlanPath };
package/src/rules.js ADDED
@@ -0,0 +1,90 @@
1
+ // User rules loader.
2
+ //
3
+ // Loads ~/.config/shmakk/rules.md (global) and .shmakk/rules.md (workspace)
4
+ // and merges them into a single block that gets injected near the top of
5
+ // the system prompt — so they take priority over default agent behavior.
6
+ //
7
+ // Workspace rules apply ON TOP of global rules (additive, not replacing).
8
+ // If both define conflicting guidance, workspace wins because it appears
9
+ // later in the prompt and is more specific to the current context.
10
+
11
+ const fs = require('fs');
12
+ const os = require('os');
13
+ const path = require('path');
14
+
15
+ const MAX_RULES_BYTES = 16 * 1024; // 16KB hard cap per file
16
+
17
+ function globalRulesPath() {
18
+ return path.join(os.homedir(), '.config', 'shmakk', 'rules.md');
19
+ }
20
+
21
+ function workspaceRulesPath(cwd = process.cwd()) {
22
+ return path.join(cwd, '.shmakk', 'rules.md');
23
+ }
24
+
25
+ function readRulesFile(p) {
26
+ try {
27
+ if (!fs.existsSync(p)) return null;
28
+ const stat = fs.statSync(p);
29
+ let raw = fs.readFileSync(p, 'utf8');
30
+ if (stat.size > MAX_RULES_BYTES) {
31
+ raw = raw.slice(0, MAX_RULES_BYTES) + '\n\n[... rules truncated at 16KB ...]';
32
+ }
33
+ raw = raw.trim();
34
+ return raw || null;
35
+ } catch {
36
+ return null;
37
+ }
38
+ }
39
+
40
+ // Returns the concatenated, raw rules text (for display via self-command).
41
+ function loadRules(cwd = process.cwd()) {
42
+ const global = readRulesFile(globalRulesPath());
43
+ const workspace = readRulesFile(workspaceRulesPath(cwd));
44
+ if (!global && !workspace) return '';
45
+ const parts = [];
46
+ if (global) parts.push(`# Global rules (~/.config/shmakk/rules.md)\n\n${global}`);
47
+ if (workspace) parts.push(`# Workspace rules (.shmakk/rules.md)\n\n${workspace}`);
48
+ return parts.join('\n\n');
49
+ }
50
+
51
+ // Returns the rules block formatted for injection into the system prompt.
52
+ // Empty string if no rules — caller should append this with a leading
53
+ // newline so the prompt stays clean when there are no rules.
54
+ function renderRulesForPrompt(cwd = process.cwd()) {
55
+ const global = readRulesFile(globalRulesPath());
56
+ const workspace = readRulesFile(workspaceRulesPath(cwd));
57
+ if (!global && !workspace) return '';
58
+ const blocks = [];
59
+ if (global) blocks.push(global);
60
+ if (workspace) blocks.push(`(workspace-specific, takes precedence over global):\n${workspace}`);
61
+ return `USER RULES — highest priority. Follow these in every response, every tool call, every code suggestion. They override the default agent behavior described later in this prompt.
62
+
63
+ ${blocks.join('\n\n')}`;
64
+ }
65
+
66
+ // Returns a tiny diagnostic summary — used by `show rules` self-command.
67
+ function rulesStatus(cwd = process.cwd()) {
68
+ const gp = globalRulesPath();
69
+ const wp = workspaceRulesPath(cwd);
70
+ const globalExists = fs.existsSync(gp);
71
+ const workspaceExists = fs.existsSync(wp);
72
+ const globalBytes = globalExists ? fs.statSync(gp).size : 0;
73
+ const workspaceBytes = workspaceExists ? fs.statSync(wp).size : 0;
74
+ return {
75
+ globalPath: gp,
76
+ workspacePath: wp,
77
+ globalExists,
78
+ workspaceExists,
79
+ globalBytes,
80
+ workspaceBytes,
81
+ };
82
+ }
83
+
84
+ module.exports = {
85
+ loadRules,
86
+ renderRulesForPrompt,
87
+ rulesStatus,
88
+ globalRulesPath,
89
+ workspaceRulesPath,
90
+ };