@heytherevibin/skillforge 0.2.1

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 (402) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CODE_OF_CONDUCT.md +34 -0
  3. package/CONTRIBUTING.md +38 -0
  4. package/LICENSE +21 -0
  5. package/README.md +337 -0
  6. package/RELEASING.md +93 -0
  7. package/SECURITY.md +31 -0
  8. package/STRATEGY.md +26 -0
  9. package/bin/cli.js +547 -0
  10. package/lib/packs.js +184 -0
  11. package/package.json +38 -0
  12. package/python/app/__init__.py +0 -0
  13. package/python/app/__pycache__/__init__.cpython-312.pyc +0 -0
  14. package/python/app/__pycache__/auth.cpython-312.pyc +0 -0
  15. package/python/app/__pycache__/main.cpython-312.pyc +0 -0
  16. package/python/app/auth.py +63 -0
  17. package/python/app/cli.py +78 -0
  18. package/python/app/db_paths.py +26 -0
  19. package/python/app/events_cli.py +175 -0
  20. package/python/app/main.py +647 -0
  21. package/python/app/materialize.py +138 -0
  22. package/python/app/mcp_server.py +610 -0
  23. package/python/app/route_cli.py +117 -0
  24. package/python/requirements-dev.txt +1 -0
  25. package/python/requirements.txt +7 -0
  26. package/python/tests/test_db_paths.py +41 -0
  27. package/skills/accessibility/SKILL.md +145 -0
  28. package/skills/agent-architecture-audit/SKILL.md +256 -0
  29. package/skills/agent-eval/SKILL.md +144 -0
  30. package/skills/agent-harness-construction/SKILL.md +72 -0
  31. package/skills/agent-introspection-debugging/SKILL.md +152 -0
  32. package/skills/agent-payment-x402/SKILL.md +224 -0
  33. package/skills/agent-sort/SKILL.md +214 -0
  34. package/skills/agentic-engineering/SKILL.md +62 -0
  35. package/skills/agentic-os/SKILL.md +386 -0
  36. package/skills/ai-first-engineering/SKILL.md +50 -0
  37. package/skills/ai-regression-testing/SKILL.md +384 -0
  38. package/skills/android-clean-architecture/SKILL.md +338 -0
  39. package/skills/angular-developer/SKILL.md +153 -0
  40. package/skills/angular-developer/references/angular-animations.md +160 -0
  41. package/skills/angular-developer/references/angular-aria.md +410 -0
  42. package/skills/angular-developer/references/cli.md +86 -0
  43. package/skills/angular-developer/references/component-harnesses.md +59 -0
  44. package/skills/angular-developer/references/component-styling.md +91 -0
  45. package/skills/angular-developer/references/components.md +117 -0
  46. package/skills/angular-developer/references/creating-services.md +97 -0
  47. package/skills/angular-developer/references/data-resolvers.md +69 -0
  48. package/skills/angular-developer/references/define-routes.md +67 -0
  49. package/skills/angular-developer/references/defining-providers.md +72 -0
  50. package/skills/angular-developer/references/di-fundamentals.md +120 -0
  51. package/skills/angular-developer/references/e2e-testing.md +56 -0
  52. package/skills/angular-developer/references/effects.md +83 -0
  53. package/skills/angular-developer/references/hierarchical-injectors.md +43 -0
  54. package/skills/angular-developer/references/host-elements.md +80 -0
  55. package/skills/angular-developer/references/injection-context.md +63 -0
  56. package/skills/angular-developer/references/inputs.md +101 -0
  57. package/skills/angular-developer/references/linked-signal.md +59 -0
  58. package/skills/angular-developer/references/loading-strategies.md +61 -0
  59. package/skills/angular-developer/references/mcp.md +108 -0
  60. package/skills/angular-developer/references/navigate-to-routes.md +69 -0
  61. package/skills/angular-developer/references/outputs.md +86 -0
  62. package/skills/angular-developer/references/reactive-forms.md +122 -0
  63. package/skills/angular-developer/references/rendering-strategies.md +44 -0
  64. package/skills/angular-developer/references/resource.md +77 -0
  65. package/skills/angular-developer/references/route-animations.md +56 -0
  66. package/skills/angular-developer/references/route-guards.md +52 -0
  67. package/skills/angular-developer/references/router-lifecycle.md +45 -0
  68. package/skills/angular-developer/references/router-testing.md +87 -0
  69. package/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
  70. package/skills/angular-developer/references/signal-forms.md +795 -0
  71. package/skills/angular-developer/references/signals-overview.md +94 -0
  72. package/skills/angular-developer/references/tailwind-css.md +69 -0
  73. package/skills/angular-developer/references/template-driven-forms.md +114 -0
  74. package/skills/angular-developer/references/testing-fundamentals.md +65 -0
  75. package/skills/api-connector-builder/SKILL.md +120 -0
  76. package/skills/api-design/SKILL.md +522 -0
  77. package/skills/architecture-decision-records/SKILL.md +178 -0
  78. package/skills/article-writing/SKILL.md +78 -0
  79. package/skills/automation-audit-ops/SKILL.md +141 -0
  80. package/skills/autonomous-agent-harness/SKILL.md +272 -0
  81. package/skills/autonomous-loops/SKILL.md +609 -0
  82. package/skills/backend-patterns/SKILL.md +560 -0
  83. package/skills/benchmark/SKILL.md +92 -0
  84. package/skills/blueprint/SKILL.md +104 -0
  85. package/skills/browser-qa/SKILL.md +86 -0
  86. package/skills/bun-runtime/SKILL.md +83 -0
  87. package/skills/canary-watch/SKILL.md +98 -0
  88. package/skills/carrier-relationship-management/SKILL.md +211 -0
  89. package/skills/cisco-ios-patterns/SKILL.md +163 -0
  90. package/skills/ck/SKILL.md +147 -0
  91. package/skills/ck/commands/forget.mjs +44 -0
  92. package/skills/ck/commands/info.mjs +24 -0
  93. package/skills/ck/commands/init.mjs +143 -0
  94. package/skills/ck/commands/list.mjs +40 -0
  95. package/skills/ck/commands/migrate.mjs +202 -0
  96. package/skills/ck/commands/resume.mjs +36 -0
  97. package/skills/ck/commands/save.mjs +210 -0
  98. package/skills/ck/commands/shared.mjs +387 -0
  99. package/skills/ck/hooks/session-start.mjs +224 -0
  100. package/skills/claude-devfleet/SKILL.md +103 -0
  101. package/skills/click-path-audit/SKILL.md +244 -0
  102. package/skills/clickhouse-io/SKILL.md +438 -0
  103. package/skills/code-tour/SKILL.md +235 -0
  104. package/skills/codebase-onboarding/SKILL.md +232 -0
  105. package/skills/coding-standards/SKILL.md +548 -0
  106. package/skills/compose-multiplatform-patterns/SKILL.md +298 -0
  107. package/skills/connections-optimizer/SKILL.md +188 -0
  108. package/skills/content-engine/SKILL.md +126 -0
  109. package/skills/content-hash-cache-pattern/SKILL.md +160 -0
  110. package/skills/context-budget/SKILL.md +134 -0
  111. package/skills/continuous-agent-loop/SKILL.md +44 -0
  112. package/skills/continuous-learning/SKILL.md +129 -0
  113. package/skills/continuous-learning/config.json +18 -0
  114. package/skills/continuous-learning/evaluate-session.sh +69 -0
  115. package/skills/continuous-learning-v2/SKILL.md +358 -0
  116. package/skills/continuous-learning-v2/agents/observer-loop.sh +322 -0
  117. package/skills/continuous-learning-v2/agents/observer.md +198 -0
  118. package/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  119. package/skills/continuous-learning-v2/agents/start-observer.sh +248 -0
  120. package/skills/continuous-learning-v2/config.json +8 -0
  121. package/skills/continuous-learning-v2/hooks/observe.sh +476 -0
  122. package/skills/continuous-learning-v2/scripts/detect-project.sh +288 -0
  123. package/skills/continuous-learning-v2/scripts/instinct-cli.py +1519 -0
  124. package/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
  125. package/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +62 -0
  126. package/skills/continuous-learning-v2/scripts/test_parse_instinct.py +1018 -0
  127. package/skills/cost-aware-llm-pipeline/SKILL.md +182 -0
  128. package/skills/cost-tracking/SKILL.md +147 -0
  129. package/skills/council/SKILL.md +202 -0
  130. package/skills/cpp-coding-standards/SKILL.md +722 -0
  131. package/skills/cpp-testing/SKILL.md +323 -0
  132. package/skills/crosspost/SKILL.md +110 -0
  133. package/skills/csharp-testing/SKILL.md +320 -0
  134. package/skills/customer-billing-ops/SKILL.md +139 -0
  135. package/skills/customs-trade-compliance/SKILL.md +262 -0
  136. package/skills/dart-flutter-patterns/SKILL.md +562 -0
  137. package/skills/dashboard-builder/SKILL.md +108 -0
  138. package/skills/data-scraper-agent/SKILL.md +764 -0
  139. package/skills/database-migrations/SKILL.md +428 -0
  140. package/skills/deep-research/SKILL.md +158 -0
  141. package/skills/defi-amm-security/SKILL.md +166 -0
  142. package/skills/deployment-patterns/SKILL.md +426 -0
  143. package/skills/design-system/SKILL.md +81 -0
  144. package/skills/django-celery/SKILL.md +456 -0
  145. package/skills/django-patterns/SKILL.md +733 -0
  146. package/skills/django-security/SKILL.md +592 -0
  147. package/skills/django-tdd/SKILL.md +728 -0
  148. package/skills/django-verification/SKILL.md +468 -0
  149. package/skills/dmux-workflows/SKILL.md +190 -0
  150. package/skills/docker-patterns/SKILL.md +363 -0
  151. package/skills/documentation-lookup/SKILL.md +89 -0
  152. package/skills/dotnet-patterns/SKILL.md +320 -0
  153. package/skills/e2e-testing/SKILL.md +325 -0
  154. package/skills/email-ops/SKILL.md +120 -0
  155. package/skills/energy-procurement/SKILL.md +227 -0
  156. package/skills/enterprise-agent-ops/SKILL.md +49 -0
  157. package/skills/error-handling/SKILL.md +375 -0
  158. package/skills/eval-harness/SKILL.md +269 -0
  159. package/skills/evm-token-decimals/SKILL.md +130 -0
  160. package/skills/exa-search/SKILL.md +106 -0
  161. package/skills/fal-ai-media/SKILL.md +287 -0
  162. package/skills/fastapi-patterns/SKILL.md +327 -0
  163. package/skills/finance-billing-ops/SKILL.md +126 -0
  164. package/skills/flox-environments/SKILL.md +496 -0
  165. package/skills/flutter-dart-code-review/SKILL.md +434 -0
  166. package/skills/foundation-models-on-device/SKILL.md +243 -0
  167. package/skills/frontend-design-direction/SKILL.md +92 -0
  168. package/skills/frontend-patterns/SKILL.md +641 -0
  169. package/skills/frontend-slides/SKILL.md +183 -0
  170. package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  171. package/skills/frontend-slides/animation-patterns.md +122 -0
  172. package/skills/frontend-slides/html-template.md +419 -0
  173. package/skills/frontend-slides/scripts/export-pdf.sh +418 -0
  174. package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  175. package/skills/frontend-slides/viewport-base.css +153 -0
  176. package/skills/fsharp-testing/SKILL.md +279 -0
  177. package/skills/gan-style-harness/SKILL.md +278 -0
  178. package/skills/gateguard/SKILL.md +125 -0
  179. package/skills/git-workflow/SKILL.md +714 -0
  180. package/skills/github-ops/SKILL.md +143 -0
  181. package/skills/golang-patterns/SKILL.md +673 -0
  182. package/skills/golang-testing/SKILL.md +719 -0
  183. package/skills/google-workspace-ops/SKILL.md +94 -0
  184. package/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  185. package/skills/healthcare-emr-patterns/SKILL.md +159 -0
  186. package/skills/healthcare-eval-harness/SKILL.md +207 -0
  187. package/skills/healthcare-phi-compliance/SKILL.md +145 -0
  188. package/skills/hermes-imports/SKILL.md +87 -0
  189. package/skills/hexagonal-architecture/SKILL.md +275 -0
  190. package/skills/hipaa-compliance/SKILL.md +78 -0
  191. package/skills/homelab-network-readiness/SKILL.md +169 -0
  192. package/skills/homelab-network-setup/SKILL.md +129 -0
  193. package/skills/homelab-pihole-dns/SKILL.md +274 -0
  194. package/skills/homelab-vlan-segmentation/SKILL.md +311 -0
  195. package/skills/homelab-wireguard-vpn/SKILL.md +305 -0
  196. package/skills/hookify-rules/SKILL.md +128 -0
  197. package/skills/inventory-demand-planning/SKILL.md +246 -0
  198. package/skills/investor-materials/SKILL.md +95 -0
  199. package/skills/investor-outreach/SKILL.md +90 -0
  200. package/skills/ios-icon-gen/SKILL.md +157 -0
  201. package/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
  202. package/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  203. package/skills/iterative-retrieval/SKILL.md +209 -0
  204. package/skills/java-coding-standards/SKILL.md +382 -0
  205. package/skills/jira-integration/SKILL.md +292 -0
  206. package/skills/jpa-patterns/SKILL.md +150 -0
  207. package/skills/knowledge-ops/SKILL.md +153 -0
  208. package/skills/kotlin-coroutines-flows/SKILL.md +283 -0
  209. package/skills/kotlin-exposed-patterns/SKILL.md +718 -0
  210. package/skills/kotlin-ktor-patterns/SKILL.md +688 -0
  211. package/skills/kotlin-patterns/SKILL.md +710 -0
  212. package/skills/kotlin-testing/SKILL.md +823 -0
  213. package/skills/laravel-patterns/SKILL.md +414 -0
  214. package/skills/laravel-plugin-discovery/SKILL.md +228 -0
  215. package/skills/laravel-security/SKILL.md +284 -0
  216. package/skills/laravel-tdd/SKILL.md +282 -0
  217. package/skills/laravel-verification/SKILL.md +178 -0
  218. package/skills/lead-intelligence/SKILL.md +320 -0
  219. package/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  220. package/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  221. package/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  222. package/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  223. package/skills/liquid-glass-design/SKILL.md +279 -0
  224. package/skills/llm-trading-agent-security/SKILL.md +146 -0
  225. package/skills/logistics-exception-management/SKILL.md +221 -0
  226. package/skills/make-interfaces-feel-better/SKILL.md +151 -0
  227. package/skills/manim-video/SKILL.md +88 -0
  228. package/skills/manim-video/assets/network_graph_scene.py +52 -0
  229. package/skills/market-research/SKILL.md +74 -0
  230. package/skills/mcp-server-patterns/SKILL.md +68 -0
  231. package/skills/messages-ops/SKILL.md +103 -0
  232. package/skills/mle-workflow/SKILL.md +345 -0
  233. package/skills/motion-advanced/SKILL.md +596 -0
  234. package/skills/motion-foundations/SKILL.md +299 -0
  235. package/skills/motion-patterns/SKILL.md +435 -0
  236. package/skills/motion-ui/SKILL.md +574 -0
  237. package/skills/mysql-patterns/SKILL.md +411 -0
  238. package/skills/nanoclaw-repl/SKILL.md +32 -0
  239. package/skills/nestjs-patterns/SKILL.md +229 -0
  240. package/skills/netmiko-ssh-automation/SKILL.md +173 -0
  241. package/skills/network-bgp-diagnostics/SKILL.md +167 -0
  242. package/skills/network-config-validation/SKILL.md +210 -0
  243. package/skills/network-interface-health/SKILL.md +152 -0
  244. package/skills/nextjs-turbopack/SKILL.md +43 -0
  245. package/skills/nodejs-keccak256/SKILL.md +102 -0
  246. package/skills/nutrient-document-processing/SKILL.md +166 -0
  247. package/skills/nuxt4-patterns/SKILL.md +99 -0
  248. package/skills/openclaw-persona-forge/SKILL.md +288 -0
  249. package/skills/openclaw-persona-forge/gacha.py +224 -0
  250. package/skills/openclaw-persona-forge/gacha.sh +5 -0
  251. package/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  252. package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  253. package/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  254. package/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  255. package/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  256. package/skills/openclaw-persona-forge/references/output-template.md +166 -0
  257. package/skills/opensource-pipeline/SKILL.md +254 -0
  258. package/skills/perl-patterns/SKILL.md +503 -0
  259. package/skills/perl-security/SKILL.md +502 -0
  260. package/skills/perl-testing/SKILL.md +474 -0
  261. package/skills/plan-orchestrate/SKILL.md +253 -0
  262. package/skills/plankton-code-quality/SKILL.md +236 -0
  263. package/skills/postgres-patterns/SKILL.md +146 -0
  264. package/skills/product-capability/SKILL.md +140 -0
  265. package/skills/product-lens/SKILL.md +91 -0
  266. package/skills/production-audit/SKILL.md +206 -0
  267. package/skills/production-scheduling/SKILL.md +237 -0
  268. package/skills/project-flow-ops/SKILL.md +110 -0
  269. package/skills/prompt-optimizer/SKILL.md +398 -0
  270. package/skills/python-patterns/SKILL.md +749 -0
  271. package/skills/python-testing/SKILL.md +815 -0
  272. package/skills/pytorch-patterns/SKILL.md +395 -0
  273. package/skills/quality-nonconformance/SKILL.md +259 -0
  274. package/skills/quarkus-patterns/SKILL.md +721 -0
  275. package/skills/quarkus-security/SKILL.md +466 -0
  276. package/skills/quarkus-tdd/SKILL.md +810 -0
  277. package/skills/quarkus-verification/SKILL.md +478 -0
  278. package/skills/ralphinho-rfc-pipeline/SKILL.md +66 -0
  279. package/skills/redis-patterns/SKILL.md +402 -0
  280. package/skills/regex-vs-llm-structured-text/SKILL.md +219 -0
  281. package/skills/remotion-video-creation/SKILL.md +43 -0
  282. package/skills/remotion-video-creation/rules/3d.md +86 -0
  283. package/skills/remotion-video-creation/rules/animations.md +29 -0
  284. package/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  285. package/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  286. package/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  287. package/skills/remotion-video-creation/rules/assets.md +78 -0
  288. package/skills/remotion-video-creation/rules/audio.md +172 -0
  289. package/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  290. package/skills/remotion-video-creation/rules/can-decode.md +75 -0
  291. package/skills/remotion-video-creation/rules/charts.md +58 -0
  292. package/skills/remotion-video-creation/rules/compositions.md +146 -0
  293. package/skills/remotion-video-creation/rules/display-captions.md +126 -0
  294. package/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  295. package/skills/remotion-video-creation/rules/fonts.md +152 -0
  296. package/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  297. package/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  298. package/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  299. package/skills/remotion-video-creation/rules/gifs.md +138 -0
  300. package/skills/remotion-video-creation/rules/images.md +130 -0
  301. package/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  302. package/skills/remotion-video-creation/rules/lottie.md +67 -0
  303. package/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  304. package/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  305. package/skills/remotion-video-creation/rules/sequencing.md +106 -0
  306. package/skills/remotion-video-creation/rules/tailwind.md +11 -0
  307. package/skills/remotion-video-creation/rules/text-animations.md +20 -0
  308. package/skills/remotion-video-creation/rules/timing.md +179 -0
  309. package/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  310. package/skills/remotion-video-creation/rules/transitions.md +122 -0
  311. package/skills/remotion-video-creation/rules/trimming.md +52 -0
  312. package/skills/remotion-video-creation/rules/videos.md +171 -0
  313. package/skills/repo-scan/SKILL.md +78 -0
  314. package/skills/research-ops/SKILL.md +111 -0
  315. package/skills/returns-reverse-logistics/SKILL.md +239 -0
  316. package/skills/rules-distill/SKILL.md +263 -0
  317. package/skills/rules-distill/scripts/scan-rules.sh +58 -0
  318. package/skills/rules-distill/scripts/scan-skills.sh +129 -0
  319. package/skills/rust-patterns/SKILL.md +498 -0
  320. package/skills/rust-testing/SKILL.md +499 -0
  321. package/skills/safety-guard/SKILL.md +74 -0
  322. package/skills/santa-method/SKILL.md +306 -0
  323. package/skills/scientific-db-pubmed-database/SKILL.md +175 -0
  324. package/skills/scientific-db-uspto-database/SKILL.md +177 -0
  325. package/skills/scientific-pkg-gget/SKILL.md +166 -0
  326. package/skills/scientific-thinking-literature-review/SKILL.md +192 -0
  327. package/skills/scientific-thinking-scholar-evaluation/SKILL.md +160 -0
  328. package/skills/search-first/SKILL.md +181 -0
  329. package/skills/security-bounty-hunter/SKILL.md +99 -0
  330. package/skills/security-review/SKILL.md +502 -0
  331. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  332. package/skills/seo/SKILL.md +153 -0
  333. package/skills/skill-comply/SKILL.md +57 -0
  334. package/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  335. package/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  336. package/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
  337. package/skills/skill-comply/prompts/classifier.md +24 -0
  338. package/skills/skill-comply/prompts/scenario_generator.md +62 -0
  339. package/skills/skill-comply/prompts/spec_generator.md +42 -0
  340. package/skills/skill-comply/pyproject.toml +15 -0
  341. package/skills/skill-comply/scripts/__init__.py +0 -0
  342. package/skills/skill-comply/scripts/classifier.py +85 -0
  343. package/skills/skill-comply/scripts/grader.py +124 -0
  344. package/skills/skill-comply/scripts/parser.py +107 -0
  345. package/skills/skill-comply/scripts/report.py +170 -0
  346. package/skills/skill-comply/scripts/run.py +127 -0
  347. package/skills/skill-comply/scripts/runner.py +186 -0
  348. package/skills/skill-comply/scripts/scenario_generator.py +70 -0
  349. package/skills/skill-comply/scripts/spec_generator.py +72 -0
  350. package/skills/skill-comply/scripts/utils.py +13 -0
  351. package/skills/skill-comply/tests/test_grader.py +197 -0
  352. package/skills/skill-comply/tests/test_parser.py +90 -0
  353. package/skills/skill-comply/tests/test_runner.py +172 -0
  354. package/skills/skill-scout/SKILL.md +139 -0
  355. package/skills/skill-stocktake/SKILL.md +193 -0
  356. package/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  357. package/skills/skill-stocktake/scripts/save-results.sh +56 -0
  358. package/skills/skill-stocktake/scripts/scan.sh +170 -0
  359. package/skills/social-graph-ranker/SKILL.md +153 -0
  360. package/skills/springboot-patterns/SKILL.md +313 -0
  361. package/skills/springboot-security/SKILL.md +271 -0
  362. package/skills/springboot-tdd/SKILL.md +157 -0
  363. package/skills/springboot-verification/SKILL.md +230 -0
  364. package/skills/strategic-compact/SKILL.md +129 -0
  365. package/skills/strategic-compact/suggest-compact.sh +54 -0
  366. package/skills/swift-actor-persistence/SKILL.md +142 -0
  367. package/skills/swift-concurrency-6-2/SKILL.md +216 -0
  368. package/skills/swift-protocol-di-testing/SKILL.md +189 -0
  369. package/skills/swiftui-patterns/SKILL.md +259 -0
  370. package/skills/tdd-workflow/SKILL.md +462 -0
  371. package/skills/team-builder/SKILL.md +166 -0
  372. package/skills/terminal-ops/SKILL.md +108 -0
  373. package/skills/tinystruct-patterns/SKILL.md +130 -0
  374. package/skills/tinystruct-patterns/references/architecture.md +77 -0
  375. package/skills/tinystruct-patterns/references/data-handling.md +35 -0
  376. package/skills/tinystruct-patterns/references/routing.md +57 -0
  377. package/skills/tinystruct-patterns/references/system-usage.md +74 -0
  378. package/skills/tinystruct-patterns/references/testing.md +59 -0
  379. package/skills/token-budget-advisor/SKILL.md +133 -0
  380. package/skills/ui-demo/SKILL.md +464 -0
  381. package/skills/ui-to-vue/SKILL.md +134 -0
  382. package/skills/unified-notifications-ops/SKILL.md +186 -0
  383. package/skills/verification-loop/SKILL.md +125 -0
  384. package/skills/video-editing/SKILL.md +309 -0
  385. package/skills/videodb/SKILL.md +373 -0
  386. package/skills/videodb/reference/api-reference.md +550 -0
  387. package/skills/videodb/reference/capture-reference.md +407 -0
  388. package/skills/videodb/reference/capture.md +101 -0
  389. package/skills/videodb/reference/editor.md +443 -0
  390. package/skills/videodb/reference/generative.md +331 -0
  391. package/skills/videodb/reference/rtstream-reference.md +564 -0
  392. package/skills/videodb/reference/rtstream.md +65 -0
  393. package/skills/videodb/reference/search.md +230 -0
  394. package/skills/videodb/reference/streaming.md +406 -0
  395. package/skills/videodb/reference/use-cases.md +118 -0
  396. package/skills/videodb/scripts/ws_listener.py +282 -0
  397. package/skills/visa-doc-translate/README.md +86 -0
  398. package/skills/visa-doc-translate/SKILL.md +117 -0
  399. package/skills/vite-patterns/SKILL.md +448 -0
  400. package/skills/windows-desktop-e2e/SKILL.md +787 -0
  401. package/skills/workspace-surface-audit/SKILL.md +124 -0
  402. package/skills/x-api/SKILL.md +233 -0
@@ -0,0 +1,117 @@
1
+ """Terminal routing — same pipeline as MCP ``route_skills`` (for scripting and parity checks)."""
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import asyncio
6
+ import json
7
+ import sys
8
+ import time
9
+ from pathlib import Path
10
+
11
+ from app.db_paths import resolve_orchestrator_db
12
+ from app.main import build_router_and_skills, init_db, run_route_turn
13
+
14
+
15
+ def _parse_args(argv: list[str] | None) -> argparse.Namespace:
16
+ p = argparse.ArgumentParser(description="Route a prompt through Skillforge (stdio: skill bodies + metadata).")
17
+ p.add_argument(
18
+ "prompt_parts",
19
+ nargs="*",
20
+ help="Prompt text (whitespace-joined). Prefer this or use --prompt.",
21
+ )
22
+ p.add_argument("--prompt", "-p", default="", help="Prompt string (alternative to positional words).")
23
+ p.add_argument(
24
+ "--project-root",
25
+ default="",
26
+ help="Repo root — uses .skillforge/orchestrator.db; else SKILLFORGE_PROJECT_ROOT or global DB.",
27
+ )
28
+ p.add_argument("--session-id", default="", help="Stable session id (reuse across turns for reroute stats).")
29
+ p.add_argument("--user-id", default="", help="Logical user id for weights/sessions/events.")
30
+ p.add_argument("--json-meta", action="store_true", help="Print routing metadata as JSON on stderr after output.")
31
+ return p.parse_args(argv)
32
+
33
+
34
+ async def _run(args: argparse.Namespace) -> int:
35
+ text = " ".join(args.prompt_parts).strip() or args.prompt.strip()
36
+ if not text:
37
+ print("skillforge route: provide a prompt (positional words or --prompt).", file=sys.stderr)
38
+ return 2
39
+
40
+ pr = (args.project_root or "").strip() or None
41
+ db_path = resolve_orchestrator_db(pr)
42
+ con = init_db(db_path)
43
+
44
+ router, skills = await asyncio.to_thread(build_router_and_skills, log=True, log_prefix="[skillforge-route]")
45
+ session_id = args.session_id.strip() or None
46
+ user_id = args.user_id.strip()
47
+
48
+ try:
49
+ result = await run_route_turn(
50
+ con,
51
+ router,
52
+ text,
53
+ conversation=[],
54
+ user_id=user_id,
55
+ session_id=session_id,
56
+ )
57
+ finally:
58
+ con.close()
59
+
60
+ picked_names = result["picked_names"]
61
+ reasoning = result["reasoning"]
62
+ sid = result["session_id"]
63
+
64
+ if pr:
65
+ try:
66
+ d = Path(pr).expanduser().resolve() / ".skillforge"
67
+ d.mkdir(parents=True, exist_ok=True)
68
+ snap = {
69
+ "ts": time.time(),
70
+ "session_id": sid,
71
+ "picked": picked_names,
72
+ "reasoning": reasoning,
73
+ "route_ms": round(result["route_ms"], 1),
74
+ "user_id": user_id,
75
+ "source": "cli_route",
76
+ }
77
+ (d / "last_route.json").write_text(json.dumps(snap, indent=2), encoding="utf-8")
78
+ except OSError:
79
+ pass
80
+
81
+ blocks = [
82
+ f"# Skillforge — routed {len(picked_names)} skill(s)",
83
+ f"_DB:_ `{db_path}`",
84
+ f"_Reasoning: {reasoning}_" if reasoning else "",
85
+ "",
86
+ ]
87
+ for n in picked_names:
88
+ s = skills.get(n)
89
+ if s:
90
+ blocks.append(f"---\n## Skill: {s.name}\n\n{s.body}\n")
91
+ if not picked_names:
92
+ blocks.append("_No skills matched this prompt closely enough to load._")
93
+ print("\n".join(b for b in blocks if b is not None))
94
+
95
+ if args.json_meta:
96
+ meta = {
97
+ "picked": picked_names,
98
+ "reasoning": reasoning,
99
+ "session_id": sid,
100
+ "user_id": user_id,
101
+ "rerouted": result["rerouted"],
102
+ "change_pct": round(result["change"] * 100, 1),
103
+ "route_ms": round(result["route_ms"], 1),
104
+ "orchestrator_db": str(db_path),
105
+ }
106
+ print(json.dumps(meta, indent=2), file=sys.stderr)
107
+
108
+ return 0
109
+
110
+
111
+ def main(argv: list[str] | None = None) -> None:
112
+ args = _parse_args(argv)
113
+ raise SystemExit(asyncio.run(_run(args)))
114
+
115
+
116
+ if __name__ == "__main__":
117
+ main()
@@ -0,0 +1 @@
1
+ pytest>=8,<9
@@ -0,0 +1,7 @@
1
+ fastapi>=0.110
2
+ uvicorn[standard]>=0.27
3
+ anthropic>=0.39
4
+ sentence-transformers>=2.7
5
+ numpy>=1.26
6
+ pydantic>=2.6
7
+ httpx>=0.27
@@ -0,0 +1,41 @@
1
+ """Lightweight tests (stdlib + app.db_paths only)."""
2
+ from __future__ import annotations
3
+
4
+ import os
5
+ from pathlib import Path
6
+
7
+ import pytest
8
+
9
+ from app.db_paths import global_db_path, resolve_orchestrator_db
10
+
11
+
12
+ def test_resolve_orchestrator_db_empty_uses_global(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
13
+ global_db = tmp_path / "global.db"
14
+ monkeypatch.delenv("SKILLFORGE_PROJECT_ROOT", raising=False)
15
+ monkeypatch.setenv("SKILLFORGE_DB_PATH", str(global_db))
16
+ assert resolve_orchestrator_db("") == global_db
17
+ assert resolve_orchestrator_db(None) == global_db
18
+ assert resolve_orchestrator_db(" ") == global_db
19
+
20
+
21
+ def test_resolve_orchestrator_db_project_root(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
22
+ monkeypatch.delenv("SKILLFORGE_PROJECT_ROOT", raising=False)
23
+ monkeypatch.setenv("SKILLFORGE_DB_PATH", str(tmp_path / "ignored.db"))
24
+ proj = tmp_path / "myrepo"
25
+ proj.mkdir()
26
+ expected = proj / ".skillforge" / "orchestrator.db"
27
+ assert resolve_orchestrator_db(str(proj)) == expected
28
+
29
+
30
+ def test_resolve_orchestrator_db_env_fallback(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
31
+ monkeypatch.setenv("SKILLFORGE_DB_PATH", str(tmp_path / "global.db"))
32
+ proj = tmp_path / "w"
33
+ proj.mkdir()
34
+ monkeypatch.setenv("SKILLFORGE_PROJECT_ROOT", str(proj))
35
+ assert resolve_orchestrator_db("") == proj / ".skillforge" / "orchestrator.db"
36
+
37
+
38
+ def test_global_db_path_env(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
39
+ p = tmp_path / "x.db"
40
+ monkeypatch.setenv("SKILLFORGE_DB_PATH", str(p))
41
+ assert global_db_path() == p
@@ -0,0 +1,145 @@
1
+ ---
2
+ name: accessibility
3
+ description: Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA
4
+ standards. Use this skill to generate semantic ARIA for Web and accessibility traits for Web and Native platforms (iOS/Android).
5
+ ---
6
+
7
+ # Accessibility (WCAG 2.2)
8
+
9
+ This skill ensures that digital interfaces are Perceivable, Operable, Understandable, and Robust (POUR) for all users, including those using screen readers, switch controls, or keyboard navigation. It focuses on the technical implementation of WCAG 2.2 success criteria.
10
+
11
+ ## When to Use
12
+
13
+ - Defining UI component specifications for Web, iOS, or Android.
14
+ - Auditing existing code for accessibility barriers or compliance gaps.
15
+ - Implementing new WCAG 2.2 standards like Target Size (Minimum) and Focus Appearance.
16
+ - Mapping high-level design requirements to technical attributes (ARIA roles, traits, hints).
17
+
18
+ ## Core Concepts
19
+
20
+ - **POUR Principles**: The foundation of WCAG (Perceivable, Operable, Understandable, Robust).
21
+ - **Semantic Mapping**: Using native elements over generic containers to provide built-in accessibility.
22
+ - **Accessibility Tree**: The representation of the UI that assistive technologies actually "read."
23
+ - **Focus Management**: Controlling the order and visibility of the keyboard/screen reader cursor.
24
+ - **Labeling & Hints**: Providing context through `aria-label`, `accessibilityLabel`, and `contentDescription`.
25
+
26
+ ## How It Works
27
+
28
+ ### Step 1: Identify the Component Role
29
+
30
+ Determine the functional purpose (e.g., Is this a button, a link, or a tab?). Use the most semantic native element available before resorting to custom roles.
31
+
32
+ ### Step 2: Define Perceivable Attributes
33
+
34
+ - Ensure text contrast meets **4.5:1** (normal) or **3:1** (large/UI).
35
+ - Add text alternatives for non-text content (images, icons).
36
+ - Implement responsive reflow (up to 400% zoom without loss of function).
37
+
38
+ ### Step 3: Implement Operable Controls
39
+
40
+ - Ensure a minimum **24x24 CSS pixel** target size (WCAG 2.2 SC 2.5.8).
41
+ - Verify all interactive elements are reachable via keyboard and have a visible focus indicator (SC 2.4.11).
42
+ - Provide single-pointer alternatives for dragging movements.
43
+
44
+ ### Step 4: Ensure Understandable Logic
45
+
46
+ - Use consistent navigation patterns.
47
+ - Provide descriptive error messages and suggestions for correction (SC 3.3.3).
48
+ - Implement "Redundant Entry" (SC 3.3.7) to prevent asking for the same data twice.
49
+
50
+ ### Step 5: Verify Robust Compatibility
51
+
52
+ - Use correct `Name, Role, Value` patterns.
53
+ - Implement `aria-live` or live regions for dynamic status updates.
54
+
55
+ ## Accessibility Architecture Diagram
56
+
57
+ ```mermaid
58
+ flowchart TD
59
+ UI["UI Component"] --> Platform{Platform?}
60
+ Platform -->|Web| ARIA["WAI-ARIA + HTML5"]
61
+ Platform -->|iOS| SwiftUI["Accessibility Traits + Labels"]
62
+ Platform -->|Android| Compose["Semantics + ContentDesc"]
63
+
64
+ ARIA --> AT["Assistive Technology (Screen Readers, Switches)"]
65
+ SwiftUI --> AT
66
+ Compose --> AT
67
+ ```
68
+
69
+ ## Cross-Platform Mapping
70
+
71
+ | Feature | Web (HTML/ARIA) | iOS (SwiftUI) | Android (Compose) |
72
+ | :----------------- | :----------------------- | :----------------------------------- | :---------------------------------------------------------- |
73
+ | **Primary Label** | `aria-label` / `<label>` | `.accessibilityLabel()` | `contentDescription` |
74
+ | **Secondary Hint** | `aria-describedby` | `.accessibilityHint()` | `Modifier.semantics { stateDescription = ... }` |
75
+ | **Action Role** | `role="button"` | `.accessibilityAddTraits(.isButton)` | `Modifier.semantics { role = Role.Button }` |
76
+ | **Live Updates** | `aria-live="polite"` | `.accessibilityLiveRegion(.polite)` | `Modifier.semantics { liveRegion = LiveRegionMode.Polite }` |
77
+
78
+ ## Examples
79
+
80
+ ### Web: Accessible Search
81
+
82
+ ```html
83
+ <form role="search">
84
+ <label for="search-input" class="sr-only">Search products</label>
85
+ <input type="search" id="search-input" placeholder="Search..." />
86
+ <button type="submit" aria-label="Submit Search">
87
+ <svg aria-hidden="true">...</svg>
88
+ </button>
89
+ </form>
90
+ ```
91
+
92
+ ### iOS: Accessible Action Button
93
+
94
+ ```swift
95
+ Button(action: deleteItem) {
96
+ Image(systemName: "trash")
97
+ }
98
+ .accessibilityLabel("Delete item")
99
+ .accessibilityHint("Permanently removes this item from your list")
100
+ .accessibilityAddTraits(.isButton)
101
+ ```
102
+
103
+ ### Android: Accessible Toggle
104
+
105
+ ```kotlin
106
+ Switch(
107
+ checked = isEnabled,
108
+ onCheckedChange = { onToggle() },
109
+ modifier = Modifier.semantics {
110
+ contentDescription = "Enable notifications"
111
+ }
112
+ )
113
+ ```
114
+
115
+ ## Anti-Patterns to Avoid
116
+
117
+ - **Div-Buttons**: Using a `<div>` or `<span>` for a click event without adding a role and keyboard support.
118
+ - **Color-Only Meaning**: Indicating an error or status _only_ with a color change (e.g., turning a border red).
119
+ - **Uncontained Modal Focus**: Modals that don't trap focus, allowing keyboard users to navigate background content while the modal is open. Focus must be contained _and_ escapable via the `Escape` key or an explicit close button (WCAG SC 2.1.2).
120
+ - **Redundant Alt Text**: Using "Image of..." or "Picture of..." in alt text (screen readers already announce the role "Image").
121
+
122
+ ## Best Practices Checklist
123
+
124
+ - [ ] Interactive elements meet the **24x24px** (Web) or **44x44pt** (Native) target size.
125
+ - [ ] Focus indicators are clearly visible and high-contrast.
126
+ - [ ] Modals **contain focus** while open, and release it cleanly on close (`Escape` key or close button).
127
+ - [ ] Dropdowns and menus restore focus to the trigger element on close.
128
+ - [ ] Forms provide text-based error suggestions.
129
+ - [ ] All icon-only buttons have a descriptive text label.
130
+ - [ ] Content reflows properly when text is scaled.
131
+
132
+ ## References
133
+
134
+ - [WCAG 2.2 Guidelines](https://www.w3.org/TR/WCAG22/)
135
+ - [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices/)
136
+ - [iOS Accessibility Programming Guide](https://developer.apple.com/documentation/accessibility)
137
+ - [iOS Human Interface Guidelines - Accessibility](https://developer.apple.com/design/human-interface-guidelines/accessibility)
138
+ - [Android Accessibility Developer Guide](https://developer.android.com/guide/topics/ui/accessibility)
139
+
140
+ ## Related Skills
141
+
142
+ - `frontend-patterns`
143
+ - `design-system`
144
+ - `liquid-glass-design`
145
+ - `swiftui-patterns`
@@ -0,0 +1,256 @@
1
+ ---
2
+ name: agent-architecture-audit
3
+ description: Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature.
4
+ origin: oh-my-agent-check
5
+ tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # Agent Architecture Audit
9
+
10
+ A diagnostic workflow for agent systems that hide failures behind wrapper layers, stale memory, retry loops, or transport/rendering mutations.
11
+
12
+ ## When to Activate
13
+
14
+ **MANDATORY for:**
15
+ - Releasing any agent or LLM-powered application to production
16
+ - Shipping features with tool calling, memory, or multi-step workflows
17
+ - Agent behavior degrades after adding wrapper layers
18
+ - User reports "the agent is getting worse" or "tools are flaky"
19
+ - Same model works in playground but breaks inside your wrapper
20
+ - Debugging agent behavior for more than 15 minutes without finding root cause
21
+
22
+ **Especially critical when:**
23
+ - You've added new prompt layers, tool definitions, or memory systems
24
+ - Different agents in your system behave inconsistently
25
+ - The model was fine yesterday but is hallucinating today
26
+ - You suspect hidden repair/retry loops silently mutating responses
27
+
28
+ **Do not use for:**
29
+ - General code debugging — use `agent-introspection-debugging`
30
+ - Code review — use language-specific reviewer agents
31
+ - Security scanning — use `security-review` or `security-review/scan`
32
+ - Agent performance benchmarking — use `agent-eval`
33
+ - Writing new features — use the appropriate workflow skill
34
+
35
+ ## The 12-Layer Stack
36
+
37
+ Every agent system has these layers. Any of them can corrupt the answer:
38
+
39
+ | # | Layer | What Goes Wrong |
40
+ |---|-------|----------------|
41
+ | 1 | System prompt | Conflicting instructions, instruction bloat |
42
+ | 2 | Session history | Stale context injection from previous turns |
43
+ | 3 | Long-term memory | Pollution across sessions, old topics in new conversations |
44
+ | 4 | Distillation | Compressed artifacts re-entering as pseudo-facts |
45
+ | 5 | Active recall | Redundant re-summary layers wasting context |
46
+ | 6 | Tool selection | Wrong tool routing, model skips required tools |
47
+ | 7 | Tool execution | Hallucinated execution — claims to call but doesn't |
48
+ | 8 | Tool interpretation | Misread or ignored tool output |
49
+ | 9 | Answer shaping | Format corruption in final response |
50
+ | 10 | Platform rendering | Transport-layer mutation (UI, API, CLI mutates valid answers) |
51
+ | 11 | Hidden repair loops | Silent fallback/retry agents running second LLM pass |
52
+ | 12 | Persistence | Expired state or cached artifacts reused as live evidence |
53
+
54
+ ## Common Failure Patterns
55
+
56
+ ### 1. Wrapper Regression
57
+
58
+ The base model produces correct answers, but the wrapper layers make it worse.
59
+
60
+ **Symptoms:**
61
+ - Model works fine in playground or direct API call, breaks in your agent
62
+ - Added a new prompt layer, existing behavior degraded
63
+ - Agent sounds confident but is confidently wrong
64
+ - "It was working before the last update"
65
+
66
+ ### 2. Memory Contamination
67
+
68
+ Old topics leak into new conversations through history, memory retrieval, or distillation.
69
+
70
+ **Symptoms:**
71
+ - Agent brings up unrelated past topics
72
+ - User corrections don't stick (old memory overwrites new)
73
+ - Same-session artifacts re-enter as pseudo-facts
74
+ - Memory grows without bound, degrading response quality over time
75
+
76
+ ### 3. Tool Discipline Failure
77
+
78
+ Tools are declared in the prompt but not enforced in code. The model skips them or hallucinates execution.
79
+
80
+ **Symptoms:**
81
+ - "Must use tool X" in prompt, but model answers without calling it
82
+ - Tool results look correct but were never actually executed
83
+ - Different tools fight over the same responsibility
84
+ - Model uses tool when it shouldn't, or skips it when it must
85
+
86
+ ### 4. Rendering/Transport Corruption
87
+
88
+ The agent's internal answer is correct, but the platform layer mutates it during delivery.
89
+
90
+ **Symptoms:**
91
+ - Logs show correct answer, user sees broken output
92
+ - Markdown rendering, JSON parsing, or streaming fragments corrupt valid responses
93
+ - Hidden fallback agent quietly replaces the answer before delivery
94
+ - Output differs between terminal and UI
95
+
96
+ ### 5. Hidden Agent Layers
97
+
98
+ Silent repair, retry, summarization, or recall agents run without explicit contracts.
99
+
100
+ **Symptoms:**
101
+ - Output changes between internal generation and user delivery
102
+ - "Auto-fix" loops run a second LLM pass the user doesn't know about
103
+ - Multiple agents modify the same output without coordination
104
+ - Answers get "smoothed" or "corrected" by invisible layers
105
+
106
+ ## Audit Workflow
107
+
108
+ ### Phase 1: Scope
109
+
110
+ Define what you're auditing:
111
+
112
+ - **Target system** — what agent application?
113
+ - **Entrypoints** — how do users interact with it?
114
+ - **Model stack** — which LLM(s) and providers?
115
+ - **Symptoms** — what does the user report?
116
+ - **Time window** — when did it start?
117
+ - **Layers to audit** — which of the 12 layers apply?
118
+
119
+ ### Phase 2: Evidence Collection
120
+
121
+ Gather evidence from the codebase:
122
+
123
+ - **Source code** — agent loop, tool router, memory admission, prompt assembly
124
+ - **Logs** — historical session traces, tool call records
125
+ - **Config** — prompt templates, tool schemas, provider settings
126
+ - **Memory files** — SOPs, knowledge bases, session archives
127
+
128
+ Use `rg` to search for anti-patterns:
129
+
130
+ ```bash
131
+ # Tool requirements expressed only in prompt text (not code)
132
+ rg "must.*tool|必须.*工具|required.*call" --type md
133
+
134
+ # Tool execution without validation
135
+ rg "tool_call|toolCall|tool_use" --type py --type ts
136
+
137
+ # Hidden LLM calls outside main agent loop
138
+ rg "completion|chat\.create|messages\.create|llm\.invoke"
139
+
140
+ # Memory admission without user-correction priority
141
+ rg "memory.*admit|long.*term.*update|persist.*memory" --type py --type ts
142
+
143
+ # Fallback loops that run additional LLM calls
144
+ rg "fallback|retry.*llm|repair.*prompt|re-?prompt" --type py --type ts
145
+
146
+ # Silent output mutation
147
+ rg "mutate|rewrite.*response|transform.*output|shap" --type py --type ts
148
+ ```
149
+
150
+ ### Phase 3: Failure Mapping
151
+
152
+ For each finding, document:
153
+
154
+ - **Symptom** — what the user sees
155
+ - **Mechanism** — how the wrapper causes it
156
+ - **Source layer** — which of the 12 layers
157
+ - **Root cause** — the deepest cause
158
+ - **Evidence** — file:line or log:row reference
159
+ - **Confidence** — 0.0 to 1.0
160
+
161
+ ### Phase 4: Fix Strategy
162
+
163
+ Default fix order (code-first, not prompt-first):
164
+
165
+ 1. **Code-gate tool requirements** — enforce in code, not just prompt text
166
+ 2. **Remove or narrow hidden repair agents** — make fallback explicit with contracts
167
+ 3. **Reduce context duplication** — same info through prompt + history + memory + distillation
168
+ 4. **Tighten memory admission** — user corrections > agent assertions
169
+ 5. **Tighten distillation triggers** — don't compress what shouldn't be compressed
170
+ 6. **Reduce rendering mutation** — pass-through, don't transform
171
+ 7. **Convert to typed JSON envelopes** — structured internal flow, not freeform prose
172
+
173
+ ## Severity Model
174
+
175
+ | Level | Meaning | Action |
176
+ |-------|---------|--------|
177
+ | `critical` | Agent can confidently produce wrong operational behavior | Fix before next release |
178
+ | `high` | Agent frequently degrades correctness or stability | Fix this sprint |
179
+ | `medium` | Correctness usually survives but output is fragile or wasteful | Plan for next cycle |
180
+ | `low` | Mostly cosmetic or maintainability issues | Backlog |
181
+
182
+ ## Output Format
183
+
184
+ Present findings to the user in this order:
185
+
186
+ 1. **Severity-ranked findings** (most critical first)
187
+ 2. **Architecture diagnosis** (which layer corrupted what, and why)
188
+ 3. **Ordered fix plan** (code-first, not prompt-first)
189
+
190
+ Do not lead with compliments or summaries. If the system is broken, say so directly.
191
+
192
+ ## Quick Diagnostic Questions
193
+
194
+ When auditing an agent system, answer these:
195
+
196
+ | # | Question | If Yes → |
197
+ |---|----------|----------|
198
+ | 1 | Can the model skip a required tool and still answer? | Tool not code-gated |
199
+ | 2 | Does old conversation content appear in new turns? | Memory contamination |
200
+ | 3 | Is the same info in system prompt AND memory AND history? | Context duplication |
201
+ | 4 | Does the platform run a second LLM pass before delivery? | Hidden repair loop |
202
+ | 5 | Does the output differ between internal generation and user delivery? | Rendering corruption |
203
+ | 6 | Are "must use tool X" rules only in prompt text? | Tool discipline failure |
204
+ | 7 | Can the agent's own monologue become persistent memory? | Memory poisoning |
205
+
206
+ ## Anti-Patterns to Avoid
207
+
208
+ - Avoid blaming the model before falsifying wrapper-layer regressions.
209
+ - Avoid blaming memory without showing the contamination path.
210
+ - Do not let a clean current state erase a dirty historical incident.
211
+ - Do not treat markdown prose as a trustworthy internal protocol.
212
+ - Do not accept "must use tool" in prompt text when code never enforces it.
213
+ - Keep findings direct, evidence-backed, and severity-ranked.
214
+
215
+ ## Report Schema
216
+
217
+ Audits should produce structured reports following this shape:
218
+
219
+ ```json
220
+ {
221
+ "schema_version": "skillforge.agent-architecture-audit.report.v1",
222
+ "executive_verdict": {
223
+ "overall_health": "high_risk",
224
+ "primary_failure_mode": "string",
225
+ "most_urgent_fix": "string"
226
+ },
227
+ "scope": {
228
+ "target_name": "string",
229
+ "model_stack": ["string"],
230
+ "layers_to_audit": ["string"]
231
+ },
232
+ "findings": [
233
+ {
234
+ "severity": "critical|high|medium|low",
235
+ "title": "string",
236
+ "mechanism": "string",
237
+ "source_layer": "string",
238
+ "root_cause": "string",
239
+ "evidence_refs": ["file:line"],
240
+ "confidence": 0.0,
241
+ "recommended_fix": "string"
242
+ }
243
+ ],
244
+ "ordered_fix_plan": [
245
+ { "order": 1, "goal": "string", "why_now": "string", "expected_effect": "string" }
246
+ ]
247
+ }
248
+ ```
249
+
250
+ ## Related Skills
251
+
252
+ - `agent-introspection-debugging` — Debug agent runtime failures (loops, timeouts, state errors)
253
+ - `agent-eval` — Benchmark agent performance head-to-head
254
+ - `security-review` — Security audit for code and configuration
255
+ - `autonomous-agent-harness` — Set up autonomous agent operations
256
+ - `agent-harness-construction` — Build agent harnesses from scratch