@soleur/opencode 0.0.0-stage → 1.0.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 (812) hide show
  1. package/.claude-plugin/agents.manifest.json +476 -0
  2. package/.claude-plugin/plugin.json +42 -0
  3. package/README.md +44 -2
  4. package/agents/community/.gitkeep +0 -0
  5. package/agents/engineering/cto.md +87 -0
  6. package/agents/engineering/design/ddd-architect.md +95 -0
  7. package/agents/engineering/discovery/agent-finder.md +214 -0
  8. package/agents/engineering/discovery/functional-discovery.md +182 -0
  9. package/agents/engineering/infra/infra-security.md +151 -0
  10. package/agents/engineering/infra/platform-strategist.md +109 -0
  11. package/agents/engineering/infra/terraform-architect.md +171 -0
  12. package/agents/engineering/prompt-engineer.md +37 -0
  13. package/agents/engineering/research/best-practices-researcher.md +115 -0
  14. package/agents/engineering/research/framework-docs-researcher.md +93 -0
  15. package/agents/engineering/research/git-history-analyzer.md +53 -0
  16. package/agents/engineering/research/learnings-researcher.md +285 -0
  17. package/agents/engineering/research/repo-research-analyst.md +118 -0
  18. package/agents/engineering/review/agent-native-reviewer.md +279 -0
  19. package/agents/engineering/review/architecture-strategist.md +61 -0
  20. package/agents/engineering/review/code-quality-analyst.md +92 -0
  21. package/agents/engineering/review/code-simplicity-reviewer.md +109 -0
  22. package/agents/engineering/review/data-integrity-guardian.md +82 -0
  23. package/agents/engineering/review/data-migration-expert.md +98 -0
  24. package/agents/engineering/review/deployment-verification-agent.md +183 -0
  25. package/agents/engineering/review/dhh-rails-reviewer.md +46 -0
  26. package/agents/engineering/review/kieran-rails-reviewer.md +87 -0
  27. package/agents/engineering/review/legacy-code-expert.md +55 -0
  28. package/agents/engineering/review/observability-coverage-reviewer.md +147 -0
  29. package/agents/engineering/review/pattern-recognition-specialist.md +59 -0
  30. package/agents/engineering/review/performance-oracle.md +130 -0
  31. package/agents/engineering/review/security-sentinel.md +167 -0
  32. package/agents/engineering/review/semgrep-sast.md +36 -0
  33. package/agents/engineering/review/test-design-reviewer.md +150 -0
  34. package/agents/engineering/review/user-impact-reviewer.md +70 -0
  35. package/agents/engineering/workflow/pr-comment-resolver.md +69 -0
  36. package/agents/finance/budget-analyst.md +29 -0
  37. package/agents/finance/cfo.md +44 -0
  38. package/agents/finance/financial-reporter.md +30 -0
  39. package/agents/finance/revenue-analyst.md +30 -0
  40. package/agents/legal/clo.md +115 -0
  41. package/agents/legal/legal-compliance-auditor.md +110 -0
  42. package/agents/legal/legal-document-generator.md +134 -0
  43. package/agents/marketing/analytics-analyst.md +25 -0
  44. package/agents/marketing/brand-architect.md +181 -0
  45. package/agents/marketing/cmo.md +76 -0
  46. package/agents/marketing/conversion-optimizer.md +19 -0
  47. package/agents/marketing/copywriter.md +20 -0
  48. package/agents/marketing/fact-checker.md +70 -0
  49. package/agents/marketing/growth-strategist.md +145 -0
  50. package/agents/marketing/paid-media-strategist.md +28 -0
  51. package/agents/marketing/pricing-strategist.md +17 -0
  52. package/agents/marketing/programmatic-seo-specialist.md +25 -0
  53. package/agents/marketing/retention-strategist.md +23 -0
  54. package/agents/marketing/seo-aeo-analyst.md +164 -0
  55. package/agents/operations/coo.md +50 -0
  56. package/agents/operations/ops-advisor.md +78 -0
  57. package/agents/operations/ops-provisioner.md +101 -0
  58. package/agents/operations/ops-research.md +52 -0
  59. package/agents/operations/service-automator.md +278 -0
  60. package/agents/product/business-validator.md +206 -0
  61. package/agents/product/competitive-intelligence.md +89 -0
  62. package/agents/product/cpo.md +63 -0
  63. package/agents/product/design/ux-design-lead.md +209 -0
  64. package/agents/product/spec-flow-analyzer.md +122 -0
  65. package/agents/sales/cro.md +44 -0
  66. package/agents/sales/deal-architect.md +29 -0
  67. package/agents/sales/outbound-strategist.md +29 -0
  68. package/agents/sales/pipeline-analyst.md +29 -0
  69. package/agents/support/cco.md +48 -0
  70. package/agents/support/community-manager.md +570 -0
  71. package/agents/support/ticket-triage.md +70 -0
  72. package/bin/soleur-opencode.js +29 -0
  73. package/commands/go.md +659 -0
  74. package/commands/help.md +273 -0
  75. package/commands/sync.md +977 -0
  76. package/commands/version.md +103 -0
  77. package/hooks/antigravity-hooks.json +84 -0
  78. package/hooks/antigravity-session-start.sh +15 -0
  79. package/hooks/bare-root-cwd-guard.sh +131 -0
  80. package/hooks/browser-snapshot-credential-guard.sh +200 -0
  81. package/hooks/codex-session-start.sh +9 -0
  82. package/hooks/compaction-state.sh +525 -0
  83. package/hooks/destructive-command-guard.sh +1387 -0
  84. package/hooks/devin-session-start.sh +90 -0
  85. package/hooks/ext-filter-detect.sh +171 -0
  86. package/hooks/hooks.json +133 -0
  87. package/hooks/lib/hook-tool-kind.sh +24 -0
  88. package/hooks/lib/log-rotation.sh +176 -0
  89. package/hooks/lib/shell-argv.pl +576 -0
  90. package/hooks/memory-backstop.sh +1114 -0
  91. package/hooks/operator-stage-approval.sh +391 -0
  92. package/hooks/stop-hook.sh +367 -0
  93. package/hooks/unkept-promise-hook.sh +383 -0
  94. package/hooks/version-banner.sh +127 -0
  95. package/hooks/welcome-hook.sh +50 -0
  96. package/install.js +108 -0
  97. package/lib/agent-registry.ts +154 -0
  98. package/lib/c4-canonical-cli.mjs +34 -0
  99. package/lib/c4-canonical.mjs +46 -0
  100. package/lib/c4-from-components.ts +554 -0
  101. package/lib/go-routing.ts +81 -0
  102. package/lib/grok-inspect-contract.ts +311 -0
  103. package/lib/harness-model-map.ts +101 -0
  104. package/lib/harness-parity.ts +726 -0
  105. package/lib/harness-tool-map.ts +180 -0
  106. package/lib/harness.ts +716 -0
  107. package/lib/heartbeat-live-reconcile.ts +1153 -0
  108. package/lib/heartbeat-manifest.ts +342 -0
  109. package/lib/kb-coverage.ts +252 -0
  110. package/lib/pr-merge-poll.ts +103 -0
  111. package/lib/workflow-fidelity.ts +388 -0
  112. package/opencode/INSTRUCTIONS.md +152 -0
  113. package/opencode/agents/engineering/cto.md +10 -0
  114. package/opencode/agents/engineering/design/ddd-architect.md +10 -0
  115. package/opencode/agents/engineering/discovery/agent-finder.md +10 -0
  116. package/opencode/agents/engineering/discovery/functional-discovery.md +10 -0
  117. package/opencode/agents/engineering/infra/infra-security.md +10 -0
  118. package/opencode/agents/engineering/infra/platform-strategist.md +10 -0
  119. package/opencode/agents/engineering/infra/terraform-architect.md +10 -0
  120. package/opencode/agents/engineering/prompt-engineer.md +10 -0
  121. package/opencode/agents/engineering/research/best-practices-researcher.md +10 -0
  122. package/opencode/agents/engineering/research/framework-docs-researcher.md +10 -0
  123. package/opencode/agents/engineering/research/git-history-analyzer.md +10 -0
  124. package/opencode/agents/engineering/research/learnings-researcher.md +10 -0
  125. package/opencode/agents/engineering/research/repo-research-analyst.md +10 -0
  126. package/opencode/agents/engineering/review/agent-native-reviewer.md +10 -0
  127. package/opencode/agents/engineering/review/architecture-strategist.md +10 -0
  128. package/opencode/agents/engineering/review/code-quality-analyst.md +10 -0
  129. package/opencode/agents/engineering/review/code-simplicity-reviewer.md +10 -0
  130. package/opencode/agents/engineering/review/data-integrity-guardian.md +10 -0
  131. package/opencode/agents/engineering/review/data-migration-expert.md +10 -0
  132. package/opencode/agents/engineering/review/deployment-verification-agent.md +10 -0
  133. package/opencode/agents/engineering/review/dhh-rails-reviewer.md +10 -0
  134. package/opencode/agents/engineering/review/kieran-rails-reviewer.md +10 -0
  135. package/opencode/agents/engineering/review/legacy-code-expert.md +10 -0
  136. package/opencode/agents/engineering/review/observability-coverage-reviewer.md +10 -0
  137. package/opencode/agents/engineering/review/pattern-recognition-specialist.md +10 -0
  138. package/opencode/agents/engineering/review/performance-oracle.md +10 -0
  139. package/opencode/agents/engineering/review/security-sentinel.md +10 -0
  140. package/opencode/agents/engineering/review/semgrep-sast.md +10 -0
  141. package/opencode/agents/engineering/review/test-design-reviewer.md +10 -0
  142. package/opencode/agents/engineering/review/user-impact-reviewer.md +10 -0
  143. package/opencode/agents/engineering/workflow/pr-comment-resolver.md +10 -0
  144. package/opencode/agents/finance/budget-analyst.md +10 -0
  145. package/opencode/agents/finance/cfo.md +10 -0
  146. package/opencode/agents/finance/financial-reporter.md +10 -0
  147. package/opencode/agents/finance/revenue-analyst.md +10 -0
  148. package/opencode/agents/legal/clo.md +10 -0
  149. package/opencode/agents/legal/legal-compliance-auditor.md +10 -0
  150. package/opencode/agents/legal/legal-document-generator.md +10 -0
  151. package/opencode/agents/marketing/analytics-analyst.md +10 -0
  152. package/opencode/agents/marketing/brand-architect.md +10 -0
  153. package/opencode/agents/marketing/cmo.md +10 -0
  154. package/opencode/agents/marketing/conversion-optimizer.md +10 -0
  155. package/opencode/agents/marketing/copywriter.md +10 -0
  156. package/opencode/agents/marketing/fact-checker.md +10 -0
  157. package/opencode/agents/marketing/growth-strategist.md +10 -0
  158. package/opencode/agents/marketing/paid-media-strategist.md +10 -0
  159. package/opencode/agents/marketing/pricing-strategist.md +10 -0
  160. package/opencode/agents/marketing/programmatic-seo-specialist.md +10 -0
  161. package/opencode/agents/marketing/retention-strategist.md +10 -0
  162. package/opencode/agents/marketing/seo-aeo-analyst.md +10 -0
  163. package/opencode/agents/operations/coo.md +10 -0
  164. package/opencode/agents/operations/ops-advisor.md +10 -0
  165. package/opencode/agents/operations/ops-provisioner.md +10 -0
  166. package/opencode/agents/operations/ops-research.md +10 -0
  167. package/opencode/agents/operations/service-automator.md +10 -0
  168. package/opencode/agents/product/business-validator.md +10 -0
  169. package/opencode/agents/product/competitive-intelligence.md +10 -0
  170. package/opencode/agents/product/cpo.md +10 -0
  171. package/opencode/agents/product/design/ux-design-lead.md +10 -0
  172. package/opencode/agents/product/spec-flow-analyzer.md +10 -0
  173. package/opencode/agents/sales/cro.md +10 -0
  174. package/opencode/agents/sales/deal-architect.md +10 -0
  175. package/opencode/agents/sales/outbound-strategist.md +10 -0
  176. package/opencode/agents/sales/pipeline-analyst.md +10 -0
  177. package/opencode/agents/support/cco.md +10 -0
  178. package/opencode/agents/support/community-manager.md +10 -0
  179. package/opencode/agents/support/ticket-triage.md +10 -0
  180. package/opencode/commands/go.md +10 -0
  181. package/opencode/commands/help.md +10 -0
  182. package/opencode/commands/sync.md +10 -0
  183. package/opencode/commands/version.md +11 -0
  184. package/opencode/opencode.json +8 -0
  185. package/opencode/plugin.ts +493 -0
  186. package/package.json +36 -4
  187. package/scripts/admin-merge-ready.sh +545 -0
  188. package/scripts/admin-merge-ready.test.sh +753 -0
  189. package/scripts/affected-tests.sh +908 -0
  190. package/scripts/affected-tests.test.sh +1797 -0
  191. package/scripts/alpha-metrics.sh +78 -0
  192. package/scripts/alpha-metrics.test.sh +115 -0
  193. package/scripts/ancestor-signal-helpers.baseline.txt +16 -0
  194. package/scripts/audit-flag-flip.sh +107 -0
  195. package/scripts/check-red-on-main.sh +316 -0
  196. package/scripts/ci-head-verdict.sh +363 -0
  197. package/scripts/cloud-detect.sh +193 -0
  198. package/scripts/delegation-verify.sh +657 -0
  199. package/scripts/delegation-verify.test.sh +1424 -0
  200. package/scripts/deploy-arm.sh +475 -0
  201. package/scripts/domain-model-drift.sh +419 -0
  202. package/scripts/emit-decision.sh +144 -0
  203. package/scripts/emit-decision.test.sh +144 -0
  204. package/scripts/ext-filter-divergence-corpus.txt +15 -0
  205. package/scripts/ext-filter-divergence.sh +189 -0
  206. package/scripts/generate-c4-from-components.ts +442 -0
  207. package/scripts/grok-fidelity-gate.sh +68 -0
  208. package/scripts/grok-pre-push-gate.sh +232 -0
  209. package/scripts/harness-discovery-smoke.ts +906 -0
  210. package/scripts/harness-parity-census.ts +92 -0
  211. package/scripts/inngest-luks-alert-armed-probe.ts +29 -0
  212. package/scripts/install-opencode-adapter.ts +520 -0
  213. package/scripts/lib/affected-tests/common.sh +365 -0
  214. package/scripts/lib/affected-tests/go.sh +157 -0
  215. package/scripts/lib/affected-tests/js.sh +188 -0
  216. package/scripts/lib/affected-tests/nx-turbo.sh +98 -0
  217. package/scripts/lib/affected-tests/python.sh +185 -0
  218. package/scripts/lib/context-sanitize.sh +49 -0
  219. package/scripts/lib/domain-model-lib.sh +180 -0
  220. package/scripts/lib/ext-filter-grammar.tsv +34 -0
  221. package/scripts/lib/operator-script.sh +1236 -0
  222. package/scripts/lib/proc.sh +580 -0
  223. package/scripts/lib/session-state.sh +748 -0
  224. package/scripts/lib/tmp-classify.sh +843 -0
  225. package/scripts/lib/wrapper-boundary.sh +47 -0
  226. package/scripts/lint-ratchet.py +1547 -0
  227. package/scripts/monitor-pr-checks.sh +441 -0
  228. package/scripts/pipeline-tally.sh +756 -0
  229. package/scripts/pipeline-tally.test.sh +740 -0
  230. package/scripts/plugin-version.sh +528 -0
  231. package/scripts/precommit-guard.sh +113 -0
  232. package/scripts/precommit-guard.test.sh +254 -0
  233. package/scripts/reconcile-live-heartbeats.ts +705 -0
  234. package/scripts/render-c4-model.sh +217 -0
  235. package/scripts/resolve-git-root.sh +55 -0
  236. package/scripts/resolve-regenerable-conflicts.sh +363 -0
  237. package/scripts/resolve-regenerable-conflicts.test.sh +780 -0
  238. package/scripts/ruff-requirements.txt +22 -0
  239. package/scripts/run-in-pid-namespace.sh +98 -0
  240. package/scripts/run-in-pid-namespace.test.sh +290 -0
  241. package/scripts/scan-ancestor-signal-helpers.py +556 -0
  242. package/scripts/scan-ancestor-signal-helpers.test.sh +670 -0
  243. package/scripts/setup-ralph-loop.sh +238 -0
  244. package/scripts/sync-cursor-name-map.ts +316 -0
  245. package/scripts/sync-grok-agent-compat.ts +188 -0
  246. package/scripts/sync-npm-package.ts +178 -0
  247. package/scripts/sync-opencode-adapter.ts +479 -0
  248. package/scripts/sync-pr-behind.sh +534 -0
  249. package/scripts/sync-pr-behind.test.sh +252 -0
  250. package/scripts/taste-profile-update.sh +180 -0
  251. package/scripts/taste-profile-update.test.sh +167 -0
  252. package/scripts/write-budget-marker.sh +23 -0
  253. package/scripts/write-kb-coverage.ts +113 -0
  254. package/skills/admin-ip-refresh/SKILL.md +81 -0
  255. package/skills/admin-ip-refresh/references/admin-ip-refresh-procedure.md +201 -0
  256. package/skills/agent-browser/SKILL.md +698 -0
  257. package/skills/agent-browser/scripts/playwright-mcp-profile-slot.sh +304 -0
  258. package/skills/agent-browser/scripts/playwright-mcp-redact-proxy.py +964 -0
  259. package/skills/agent-browser/scripts/redact-a11y-snapshot.py +443 -0
  260. package/skills/agent-browser/test/fixtures/capture-playwright-mcp-fixtures.py +217 -0
  261. package/skills/agent-browser/test/fixtures/fake-passthrough-proxy.py +24 -0
  262. package/skills/agent-browser/test/fixtures/fake-playwright-mcp.py +131 -0
  263. package/skills/agent-browser/test/fixtures/make-proxy-mutant.py +48 -0
  264. package/skills/agent-browser/test/fixtures/odd-shapes/dialog-link-injection.json +10 -0
  265. package/skills/agent-browser/test/fixtures/odd-shapes/empty-content.json +5 -0
  266. package/skills/agent-browser/test/fixtures/odd-shapes/error-and-result.json +4 -0
  267. package/skills/agent-browser/test/fixtures/odd-shapes/error-code-bool.json +6 -0
  268. package/skills/agent-browser/test/fixtures/odd-shapes/error-code-string.json +6 -0
  269. package/skills/agent-browser/test/fixtures/odd-shapes/error-message-tree.json +6 -0
  270. package/skills/agent-browser/test/fixtures/odd-shapes/error-no-data.json +6 -0
  271. package/skills/agent-browser/test/fixtures/odd-shapes/error-string.json +4 -0
  272. package/skills/agent-browser/test/fixtures/odd-shapes/error-with-data.json +9 -0
  273. package/skills/agent-browser/test/fixtures/odd-shapes/evaluate-escaped-object.json +10 -0
  274. package/skills/agent-browser/test/fixtures/odd-shapes/invalid-utf8.json +4 -0
  275. package/skills/agent-browser/test/fixtures/odd-shapes/link-result.json +10 -0
  276. package/skills/agent-browser/test/fixtures/odd-shapes/list-two-results.json +6 -0
  277. package/skills/agent-browser/test/fixtures/odd-shapes/meta-in-result.json +13 -0
  278. package/skills/agent-browser/test/fixtures/odd-shapes/no-content.json +5 -0
  279. package/skills/agent-browser/test/fixtures/odd-shapes/quoted-key.json +10 -0
  280. package/skills/agent-browser/test/fixtures/odd-shapes/resource-block.json +18 -0
  281. package/skills/agent-browser/test/fixtures/odd-shapes/result-and-method.json +11 -0
  282. package/skills/agent-browser/test/fixtures/odd-shapes/result-string.json +3 -0
  283. package/skills/agent-browser/test/fixtures/odd-shapes/run-code-escaped-one-row.json +10 -0
  284. package/skills/agent-browser/test/fixtures/odd-shapes/run-code-escaped.json +10 -0
  285. package/skills/agent-browser/test/fixtures/odd-shapes/structured-content.json +13 -0
  286. package/skills/agent-browser/test/fixtures/odd-shapes/tools-list-no-tools.json +5 -0
  287. package/skills/agent-browser/test/fixtures/odd-shapes/tree-no-credential.json +10 -0
  288. package/skills/agent-browser/test/fixtures/odd-shapes/two-text-blocks.json +14 -0
  289. package/skills/agent-browser/test/fixtures/odd-shapes/unparsable-line.json +3 -0
  290. package/skills/agent-browser/test/fixtures/odd-shapes/value-contains-brace.json +10 -0
  291. package/skills/agent-browser/test/fixtures/odd-shapes/value-contains-link-substring.json +10 -0
  292. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/close.json +12 -0
  293. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/evaluate.json +12 -0
  294. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/find.json +12 -0
  295. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/framing.json +6 -0
  296. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/initialize.json +14 -0
  297. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/navigate-link.json +12 -0
  298. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/navigate.json +12 -0
  299. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/roots-list-request.json +5 -0
  300. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/screenshot.json +17 -0
  301. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-filename.json +12 -0
  302. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-meta-json.json +12 -0
  303. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-meta-raw.json +12 -0
  304. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot.json +12 -0
  305. package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/tools-list.json +827 -0
  306. package/skills/agent-browser/test/fixtures/proxy-session-driver.py +138 -0
  307. package/skills/agent-browser/test/fixtures/session-facts.py +102 -0
  308. package/skills/agent-browser/test/playwright-mcp-lifetime.test.sh +1620 -0
  309. package/skills/agent-browser/test/playwright-mcp-redact-proxy.test.sh +1599 -0
  310. package/skills/agent-browser/test/redact-a11y-snapshot.test.sh +527 -0
  311. package/skills/agent-native-architecture/SKILL.md +479 -0
  312. package/skills/agent-native-architecture/references/action-parity-discipline.md +430 -0
  313. package/skills/agent-native-architecture/references/agent-execution-patterns.md +483 -0
  314. package/skills/agent-native-architecture/references/agent-native-testing.md +605 -0
  315. package/skills/agent-native-architecture/references/architecture-patterns.md +493 -0
  316. package/skills/agent-native-architecture/references/dynamic-context-injection.md +358 -0
  317. package/skills/agent-native-architecture/references/files-universal-interface.md +314 -0
  318. package/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +381 -0
  319. package/skills/agent-native-architecture/references/mcp-tool-design.md +524 -0
  320. package/skills/agent-native-architecture/references/mobile-patterns.md +897 -0
  321. package/skills/agent-native-architecture/references/product-implications.md +478 -0
  322. package/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +342 -0
  323. package/skills/agent-native-architecture/references/self-modification.md +294 -0
  324. package/skills/agent-native-architecture/references/shared-workspace-architecture.md +700 -0
  325. package/skills/agent-native-architecture/references/system-prompt-design.md +263 -0
  326. package/skills/agent-native-audit/SKILL.md +300 -0
  327. package/skills/agent-native-audit/workflows/agent-native-audit.workflow.js +423 -0
  328. package/skills/andrew-kane-gem-writer/SKILL.md +189 -0
  329. package/skills/andrew-kane-gem-writer/references/database-adapters.md +231 -0
  330. package/skills/andrew-kane-gem-writer/references/module-organization.md +121 -0
  331. package/skills/andrew-kane-gem-writer/references/rails-integration.md +183 -0
  332. package/skills/andrew-kane-gem-writer/references/resources.md +126 -0
  333. package/skills/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
  334. package/skills/architecture/SKILL.md +436 -0
  335. package/skills/architecture/references/adr-template.md +154 -0
  336. package/skills/architecture/references/likec4-reference.md +136 -0
  337. package/skills/architecture/references/nfr-reference.md +126 -0
  338. package/skills/archive-kb/SKILL.md +86 -0
  339. package/skills/archive-kb/scripts/archive-kb.sh +300 -0
  340. package/skills/archive-kb/test/archive-kb-partial-run.test.sh +276 -0
  341. package/skills/atdd-developer/SKILL.md +65 -0
  342. package/skills/brainstorm/SKILL.md +701 -0
  343. package/skills/brainstorm/references/brainstorm-brand-workshop.md +153 -0
  344. package/skills/brainstorm/references/brainstorm-domain-config.md +63 -0
  345. package/skills/brainstorm/references/brainstorm-validation-workshop.md +65 -0
  346. package/skills/brainstorm/references/ui-surface-terms.md +42 -0
  347. package/skills/brainstorm-techniques/SKILL.md +231 -0
  348. package/skills/brainstorm-techniques/references/decision-principles.md +150 -0
  349. package/skills/brainstorm-techniques/references/phase-boundaries.md +103 -0
  350. package/skills/brainstorm-techniques/references/standing-delegation.md +407 -0
  351. package/skills/brainstorm-techniques/references/technical-ruling-delegation.md +174 -0
  352. package/skills/campaign-calendar/SKILL.md +145 -0
  353. package/skills/cf-token-scope/SKILL.md +164 -0
  354. package/skills/cf-token-scope/references/widen-playbook.md +114 -0
  355. package/skills/cf-token-scope/scripts/cf-token-scope.sh +253 -0
  356. package/skills/changelog/SKILL.md +142 -0
  357. package/skills/code-to-prd/SKILL.md +66 -0
  358. package/skills/code-to-prd/references/banner-template.md +12 -0
  359. package/skills/code-to-prd/references/prd-template.md +41 -0
  360. package/skills/code-to-prd/scripts/code-to-prd.sh +634 -0
  361. package/skills/code-to-prd/test/code-to-prd.test.sh +447 -0
  362. package/skills/code-to-prd/test/fixture/.env.example +7 -0
  363. package/skills/code-to-prd/test/fixture/app/about/page.tsx +11 -0
  364. package/skills/code-to-prd/test/fixture/app/api/health/route.ts +10 -0
  365. package/skills/code-to-prd/test/fixture/app/page.tsx +14 -0
  366. package/skills/code-to-prd/test/fixture/next.config.mjs +3 -0
  367. package/skills/code-to-prd/test/fixture/package.json +6 -0
  368. package/skills/cohort-status/SKILL.md +62 -0
  369. package/skills/community/SKILL.md +210 -0
  370. package/skills/community/scripts/bsky-community.sh +644 -0
  371. package/skills/community/scripts/bsky-setup.sh +631 -0
  372. package/skills/community/scripts/community-router.sh +93 -0
  373. package/skills/community/scripts/discord-community.sh +487 -0
  374. package/skills/community/scripts/discord-setup.sh +784 -0
  375. package/skills/community/scripts/github-community.sh +706 -0
  376. package/skills/community/scripts/hn-community.sh +233 -0
  377. package/skills/community/scripts/lib/hmac-sha1-b64.sh +126 -0
  378. package/skills/community/scripts/linkedin-community.sh +750 -0
  379. package/skills/community/scripts/linkedin-setup.sh +758 -0
  380. package/skills/community/scripts/x-community.sh +890 -0
  381. package/skills/community/scripts/x-setup.sh +713 -0
  382. package/skills/community/test/community-argv.test.sh +2922 -0
  383. package/skills/community/test/github-community.test.sh +981 -0
  384. package/skills/competitive-analysis/SKILL.md +69 -0
  385. package/skills/competitive-analysis/references/peer-plugin-audit.md +218 -0
  386. package/skills/compound/SKILL.md +673 -0
  387. package/skills/compound/scripts/token-efficiency-report.sh +334 -0
  388. package/skills/compound/test/phase-16.test.sh +379 -0
  389. package/skills/compound-capture/SKILL.md +791 -0
  390. package/skills/compound-capture/assets/critical-pattern-template.md +37 -0
  391. package/skills/compound-capture/assets/resolution-template.md +116 -0
  392. package/skills/compound-capture/references/yaml-schema.md +67 -0
  393. package/skills/compound-capture/schema.yaml +181 -0
  394. package/skills/constraint-scaffold/SKILL.md +175 -0
  395. package/skills/constraint-scaffold/references/boundary-readme.template +35 -0
  396. package/skills/constraint-scaffold/references/constraint-gates-workflow.template +69 -0
  397. package/skills/constraint-scaffold/references/depcruise-config.template +230 -0
  398. package/skills/constraint-scaffold/references/fix-constraints-stage-a.template +240 -0
  399. package/skills/constraint-scaffold/references/fix-constraints-stage-b.template +313 -0
  400. package/skills/constraint-scaffold/references/shared-runner.template +135 -0
  401. package/skills/constraint-scaffold/scripts/constraint-scaffold.sh +589 -0
  402. package/skills/constraint-scaffold/test/bite-proof.test.sh +1338 -0
  403. package/skills/constraint-scaffold/test/boundary.test.sh +734 -0
  404. package/skills/constraint-scaffold/test/emit-fix-constraints.test.sh +193 -0
  405. package/skills/constraint-scaffold/test/generator.test.sh +93 -0
  406. package/skills/constraint-scaffold/test/parity.test.sh +285 -0
  407. package/skills/content-writer/SKILL.md +242 -0
  408. package/skills/content-writer/scripts/blog-jargon-scan.sh +42 -0
  409. package/skills/cron-delete/SKILL.md +56 -0
  410. package/skills/cron-list/SKILL.md +54 -0
  411. package/skills/deepen-plan/SKILL.md +937 -0
  412. package/skills/deepen-plan/workflows/deepen-plan.workflow.js +488 -0
  413. package/skills/deploy/SKILL.md +115 -0
  414. package/skills/deploy/references/hetzner-setup.md +65 -0
  415. package/skills/deploy/scripts/deploy.sh +37 -0
  416. package/skills/deploy-docs/SKILL.md +95 -0
  417. package/skills/dhh-rails-style/SKILL.md +203 -0
  418. package/skills/dhh-rails-style/references/architecture.md +717 -0
  419. package/skills/dhh-rails-style/references/controllers.md +323 -0
  420. package/skills/dhh-rails-style/references/frontend.md +556 -0
  421. package/skills/dhh-rails-style/references/gems.md +316 -0
  422. package/skills/dhh-rails-style/references/models.md +388 -0
  423. package/skills/dhh-rails-style/references/testing.md +354 -0
  424. package/skills/discord-content/SKILL.md +126 -0
  425. package/skills/docs-site/SKILL.md +214 -0
  426. package/skills/drain-labeled-backlog/SKILL.md +203 -0
  427. package/skills/drain-labeled-backlog/scripts/group-by-area.sh +208 -0
  428. package/skills/drain-labeled-backlog/workflows/drain-labeled-backlog.workflow.js +433 -0
  429. package/skills/drain-prs/SKILL.md +142 -0
  430. package/skills/drain-prs/scripts/triage-prs.sh +192 -0
  431. package/skills/drain-prs/test/argv-ceiling.test.sh +183 -0
  432. package/skills/dspy-ruby/SKILL.md +634 -0
  433. package/skills/dspy-ruby/assets/config-template.rb +359 -0
  434. package/skills/dspy-ruby/assets/module-template.rb +326 -0
  435. package/skills/dspy-ruby/assets/signature-template.rb +143 -0
  436. package/skills/dspy-ruby/references/core-concepts.md +268 -0
  437. package/skills/dspy-ruby/references/optimization.md +623 -0
  438. package/skills/dspy-ruby/references/providers.md +335 -0
  439. package/skills/eval-harness/README.md +194 -0
  440. package/skills/eval-harness/SKILL.md +157 -0
  441. package/skills/eval-harness/enums/go-routes.json +13 -0
  442. package/skills/eval-harness/enums/incident-threshold.json +5 -0
  443. package/skills/eval-harness/enums/lane.json +5 -0
  444. package/skills/eval-harness/enums/tool-selection.json +20 -0
  445. package/skills/eval-harness/enums/triage-levels.json +5 -0
  446. package/skills/eval-harness/gated-skills.json +34 -0
  447. package/skills/eval-harness/models.generated.json +5 -0
  448. package/skills/eval-harness/promptfooconfig-go-routing.yaml +35 -0
  449. package/skills/eval-harness/promptfooconfig-incident-threshold.yaml +32 -0
  450. package/skills/eval-harness/promptfooconfig-lane-inference.yaml +33 -0
  451. package/skills/eval-harness/promptfooconfig-ticket-triage.yaml +34 -0
  452. package/skills/eval-harness/promptfooconfig-tool-selection.yaml +33 -0
  453. package/skills/eval-harness/prompts/go-baseline.txt +6 -0
  454. package/skills/eval-harness/prompts/go-skill.txt +21 -0
  455. package/skills/eval-harness/prompts/incident-threshold-baseline.txt +6 -0
  456. package/skills/eval-harness/prompts/incident-threshold-skill.txt +12 -0
  457. package/skills/eval-harness/prompts/lane-inference-baseline.txt +6 -0
  458. package/skills/eval-harness/prompts/lane-inference-skill.txt +15 -0
  459. package/skills/eval-harness/prompts/tool-selection-baseline.txt +19 -0
  460. package/skills/eval-harness/prompts/tool-selection-skill.txt +22 -0
  461. package/skills/eval-harness/prompts/triage-baseline.txt +7 -0
  462. package/skills/eval-harness/prompts/triage-skill.txt +10 -0
  463. package/skills/eval-harness/scripts/eval-gate.cjs +318 -0
  464. package/skills/eval-harness/scripts/extract-block.cjs +87 -0
  465. package/skills/eval-harness/scripts/gate-classification.cjs +28 -0
  466. package/skills/eval-harness/scripts/gen-models.sh +41 -0
  467. package/skills/eval-harness/scripts/gen-skill-prompt.cjs +177 -0
  468. package/skills/eval-harness/scripts/measure-classification.cjs +30 -0
  469. package/skills/eval-harness/scripts/parse-label.cjs +93 -0
  470. package/skills/eval-harness/scripts/verdict.cjs +132 -0
  471. package/skills/eval-harness/tasks/go-routing.jsonl +8 -0
  472. package/skills/eval-harness/tasks/incident-threshold.jsonl +7 -0
  473. package/skills/eval-harness/tasks/lane-inference.jsonl +7 -0
  474. package/skills/eval-harness/tasks/ticket-triage.jsonl +6 -0
  475. package/skills/eval-harness/tasks/tool-selection.jsonl +15 -0
  476. package/skills/eval-harness/test/eval-gate.test.sh +132 -0
  477. package/skills/eval-harness/test/extract-block.test.sh +87 -0
  478. package/skills/eval-harness/test/gate-classification.test.sh +77 -0
  479. package/skills/eval-harness/test/gen-models.test.sh +75 -0
  480. package/skills/eval-harness/test/measure-classification.test.sh +74 -0
  481. package/skills/eval-harness/test/parse-label.test.sh +129 -0
  482. package/skills/eval-harness/test/registry-completeness.test.sh +109 -0
  483. package/skills/eval-harness/test/verdict.test.sh +123 -0
  484. package/skills/every-style-editor/SKILL.md +142 -0
  485. package/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
  486. package/skills/feature-tweet/SKILL.md +199 -0
  487. package/skills/feature-video/SKILL.md +412 -0
  488. package/skills/feature-video/scripts/check_deps.sh +281 -0
  489. package/skills/file-todos/SKILL.md +267 -0
  490. package/skills/file-todos/assets/todo-template.md +166 -0
  491. package/skills/fix-issue/SKILL.md +278 -0
  492. package/skills/fix-issue/references/agent-authored-exclusion.md +118 -0
  493. package/skills/fix-issue/references/exclude-label-jq-snippet.md +96 -0
  494. package/skills/flag-bootstrap/SETUP.md +142 -0
  495. package/skills/flag-create/SKILL.md +145 -0
  496. package/skills/flag-create/scripts/create.sh +273 -0
  497. package/skills/flag-delete/SKILL.md +167 -0
  498. package/skills/flag-delete/scripts/delete.sh +288 -0
  499. package/skills/flag-list/SKILL.md +99 -0
  500. package/skills/flag-list/scripts/list.sh +275 -0
  501. package/skills/flag-set-role/SKILL.md +229 -0
  502. package/skills/flag-set-role/scripts/flip.sh +774 -0
  503. package/skills/frontend-anti-slop/SKILL.md +106 -0
  504. package/skills/frontend-anti-slop/references/anti-patterns.md +199 -0
  505. package/skills/frontend-anti-slop/references/slop-rules.md +65 -0
  506. package/skills/frontend-anti-slop/scripts/tier1-scan.ts +525 -0
  507. package/skills/frontend-design/SKILL.md +77 -0
  508. package/skills/gdpr-gate/NOTICE +136 -0
  509. package/skills/gdpr-gate/SKILL.md +341 -0
  510. package/skills/gdpr-gate/references/fields.md +160 -0
  511. package/skills/gdpr-gate/references/layers/api-layer.md +355 -0
  512. package/skills/gdpr-gate/references/layers/auth-sessions.md +290 -0
  513. package/skills/gdpr-gate/references/layers/data-in-transit.md +331 -0
  514. package/skills/gdpr-gate/references/layers/data-lifecycle.md +341 -0
  515. package/skills/gdpr-gate/references/layers/frontend.md +249 -0
  516. package/skills/gdpr-gate/references/layers/testing-seeding.md +256 -0
  517. package/skills/gdpr-gate/references/leakage-vectors.md +248 -0
  518. package/skills/gdpr-gate/references/legacy/legal-consent-v1-prose.md +48 -0
  519. package/skills/gdpr-gate/references/legal-consent.md +140 -0
  520. package/skills/gdpr-gate/references/non-negotiables.md +60 -0
  521. package/skills/gdpr-gate/scripts/gdpr-gate.sh +271 -0
  522. package/skills/gdpr-gate/scripts/notice-frontmatter.sh +337 -0
  523. package/skills/gdpr-gate/scripts/path-denylist.txt +39 -0
  524. package/skills/gdpr-gate/scripts/repo-scan.sh +158 -0
  525. package/skills/gdpr-gate/scripts/vendor-drift-classify.sh +120 -0
  526. package/skills/gdpr-gate/scripts/vendor-pin-integrity.sh +237 -0
  527. package/skills/gemini-imagegen/SKILL.md +283 -0
  528. package/skills/gemini-imagegen/requirements.txt +5 -0
  529. package/skills/gemini-imagegen/scripts/_error_handling.py +146 -0
  530. package/skills/gemini-imagegen/scripts/compose_images.py +150 -0
  531. package/skills/gemini-imagegen/scripts/edit_image.py +137 -0
  532. package/skills/gemini-imagegen/scripts/gemini_images.py +256 -0
  533. package/skills/gemini-imagegen/scripts/generate_image.py +147 -0
  534. package/skills/gemini-imagegen/scripts/multi_turn_chat.py +223 -0
  535. package/skills/gemini-imagegen/scripts/test_error_handling.py +179 -0
  536. package/skills/git-worktree/SKILL.md +534 -0
  537. package/skills/git-worktree/scripts/git-repo-readiness-diag.sh +98 -0
  538. package/skills/git-worktree/scripts/worktree-manager.sh +4773 -0
  539. package/skills/git-worktree/test/create-from-origin-main.test.sh +116 -0
  540. package/skills/git-worktree/test/lease-protects-active.test.sh +1056 -0
  541. package/skills/git-worktree/test/no-repo-fail-loud.test.sh +88 -0
  542. package/skills/git-worktree/test/orphan-reaper-honest-count.test.sh +379 -0
  543. package/skills/git-worktree/test/reap-archive-persistence.test.sh +725 -0
  544. package/skills/git-worktree/test/stale-lock-sweep.test.sh +176 -0
  545. package/skills/go/SKILL.md +54 -0
  546. package/skills/growth/SKILL.md +164 -0
  547. package/skills/harvest-debt/SKILL.md +78 -0
  548. package/skills/harvest-debt/scripts/harvest-debt.sh +114 -0
  549. package/skills/heal-skill/SKILL.md +173 -0
  550. package/skills/help/SKILL.md +46 -0
  551. package/skills/incident/NOTICE +39 -0
  552. package/skills/incident/SKILL.md +395 -0
  553. package/skills/incident/scripts/dry-run.sh +448 -0
  554. package/skills/incident/scripts/redact-engine.py +412 -0
  555. package/skills/incident/scripts/redact-sentinel.sh +44 -0
  556. package/skills/incident/templates/pir.md +139 -0
  557. package/skills/incident/test/fixtures/dry-run-incident.json +26 -0
  558. package/skills/incident/test/fixtures/dry-run-secret-leak.json +26 -0
  559. package/skills/incident/test/fixtures/legacy-bash-scanner.sh +82 -0
  560. package/skills/incident/test/fixtures/positive-corpus.md +87 -0
  561. package/skills/incident/test/redact-sentinel.test.sh +1420 -0
  562. package/skills/invoice/SKILL.md +206 -0
  563. package/skills/kb-glossary/SKILL.md +71 -0
  564. package/skills/kb-glossary/references/glossary-format.md +111 -0
  565. package/skills/kb-glossary/references/rejected-request-register.md +115 -0
  566. package/skills/kb-search/SKILL.md +276 -0
  567. package/skills/kb-search/scripts/kb-search-cache.sh +123 -0
  568. package/skills/legal-audit/SKILL.md +161 -0
  569. package/skills/legal-generate/NOTICE +242 -0
  570. package/skills/legal-generate/SKILL.md +244 -0
  571. package/skills/legal-generate/references/templates/advisor-agreement/template.md +12 -0
  572. package/skills/legal-generate/references/templates/business-associate-agreement/template.md +112 -0
  573. package/skills/legal-generate/references/templates/cookie-notice/template.md +82 -0
  574. package/skills/legal-generate/references/templates/dpa-global/template.md +439 -0
  575. package/skills/legal-generate/references/templates/dpa-us/template.md +222 -0
  576. package/skills/legal-generate/references/templates/employee-offer-letter/template.md +75 -0
  577. package/skills/legal-generate/references/templates/master-services-agreement/template.md +252 -0
  578. package/skills/legal-generate/references/templates/mutual-nda/template.md +66 -0
  579. package/skills/legal-generate/references/templates/one-way-nda/template.md +38 -0
  580. package/skills/legal-generate/references/templates/privacy-policy-gdpr/template.md +427 -0
  581. package/skills/legal-generate/references/templates/privacy-policy-us/template.md +313 -0
  582. package/skills/legal-generate/references/templates/terms-of-use/template.md +75 -0
  583. package/skills/legal-generate/scripts/strip-vendor-credit.sh +96 -0
  584. package/skills/linear-fetch/SKILL.md +247 -0
  585. package/skills/linear-fetch/scripts/assert-no-linear-telemetry.sh +66 -0
  586. package/skills/linear-fetch/scripts/redact-linear-urls.sh +51 -0
  587. package/skills/linear-fetch/scripts/render-caller-template.sh +36 -0
  588. package/skills/linear-fetch/test/assert-no-linear-telemetry.test.sh +113 -0
  589. package/skills/linear-fetch/test/parity.test.sh +112 -0
  590. package/skills/linear-fetch/test/persist-safe-integration.test.sh +191 -0
  591. package/skills/linear-fetch/test/redact-linear-urls.test.sh +226 -0
  592. package/skills/merge-pr/SKILL.md +668 -0
  593. package/skills/model-launch-review/SKILL.md +255 -0
  594. package/skills/model-launch-review/scripts/audit-models.sh +501 -0
  595. package/skills/one-shot/SKILL.md +316 -0
  596. package/skills/one-shot/references/token-discipline.md +74 -0
  597. package/skills/operator-bootstrap/SKILL.md +412 -0
  598. package/skills/operator-bootstrap/template.sh +439 -0
  599. package/skills/operator-digest/SKILL.md +287 -0
  600. package/skills/operator-digest/assets/operator-digest.workflow.yml +175 -0
  601. package/skills/operator-digest/scripts/digest-scrub.sh +119 -0
  602. package/skills/operator-digest/scripts/provision-operator-digest-repo.sh +147 -0
  603. package/skills/operator-rephrase/SKILL.md +98 -0
  604. package/skills/pencil-setup/SKILL.md +201 -0
  605. package/skills/pencil-setup/scripts/check_deps.sh +556 -0
  606. package/skills/pencil-setup/scripts/copy_adapter.sh +80 -0
  607. package/skills/pencil-setup/scripts/package-lock.json +1172 -0
  608. package/skills/pencil-setup/scripts/package.json +14 -0
  609. package/skills/pencil-setup/scripts/pencil-error-enrichment.mjs +21 -0
  610. package/skills/pencil-setup/scripts/pencil-mcp-adapter.mjs +733 -0
  611. package/skills/pencil-setup/scripts/pencil-response-classify.mjs +38 -0
  612. package/skills/pencil-setup/scripts/pencil-save-gate.mjs +26 -0
  613. package/skills/pencil-setup/scripts/sanitize-filename.mjs +25 -0
  614. package/skills/plan/SKILL.md +1140 -0
  615. package/skills/plan/references/differential-migration-testing.md +185 -0
  616. package/skills/plan/references/plan-community-discovery.md +42 -0
  617. package/skills/plan/references/plan-founder-check.md +137 -0
  618. package/skills/plan/references/plan-functional-overlap.md +25 -0
  619. package/skills/plan/references/plan-host-fanout.md +51 -0
  620. package/skills/plan/references/plan-issue-templates.md +779 -0
  621. package/skills/plan/references/plan-network-outage-checklist.md +131 -0
  622. package/skills/plan/references/plan-scope-check.md +126 -0
  623. package/skills/plan/references/plan-sharp-edges.md +325 -0
  624. package/skills/plan/references/plan-signoff-lifecycle.md +12 -0
  625. package/skills/plan/references/webapp-cwv-observability.md +143 -0
  626. package/skills/plan-review/SKILL.md +91 -0
  627. package/skills/plan-review/lib/named-panel.mjs +58 -0
  628. package/skills/plan-review/workflows/plan-review.workflow.js +477 -0
  629. package/skills/postmerge/SKILL.md +642 -0
  630. package/skills/postmerge/references/deploy-status-debugging.md +138 -0
  631. package/skills/postmerge/references/graceful-degradation.md +20 -0
  632. package/skills/postmerge/references/sentry-error-count-delta.md +137 -0
  633. package/skills/preflight/SKILL.md +1553 -0
  634. package/skills/preflight/references/check-13-founder-check.md +286 -0
  635. package/skills/preflight/scripts/founder-check.py +1640 -0
  636. package/skills/preflight/scripts/parse-form-a.awk +107 -0
  637. package/skills/preflight/scripts/probe-verb-gate.sh +108 -0
  638. package/skills/product-roadmap/SKILL.md +357 -0
  639. package/skills/product-roadmap/scripts/roadmap-reconcile.sh +327 -0
  640. package/skills/provision-cloudflare/SKILL.md +67 -0
  641. package/skills/provision-cloudflare/scripts/provision-cloudflare.sh +271 -0
  642. package/skills/provision-doppler/SKILL.md +58 -0
  643. package/skills/provision-doppler/scripts/provision-doppler.sh +358 -0
  644. package/skills/provision-github/SKILL.md +59 -0
  645. package/skills/provision-github/scripts/provision-github.sh +300 -0
  646. package/skills/provision-hetzner/SKILL.md +76 -0
  647. package/skills/provision-hetzner/scripts/provision-hetzner.sh +262 -0
  648. package/skills/provision-hetzner/test/fixture/knowledge-base/legal/tenant-dpa-register.md +26 -0
  649. package/skills/provision-hetzner/test/fixture/provision-hetzner-dry-run.golden +34 -0
  650. package/skills/provision-hetzner/test/provision-hetzner-characterization.test.sh +227 -0
  651. package/skills/qa/SKILL.md +263 -0
  652. package/skills/qa/references/browser-preflight.md +22 -0
  653. package/skills/questionnaire-generate/SKILL.md +328 -0
  654. package/skills/questionnaire-generate/references/questionnaire.template +60 -0
  655. package/skills/rclone/SKILL.md +162 -0
  656. package/skills/rclone/scripts/check_setup.sh +63 -0
  657. package/skills/release-announce/SKILL.md +65 -0
  658. package/skills/release-docs/SKILL.md +92 -0
  659. package/skills/reproduce-bug/SKILL.md +358 -0
  660. package/skills/resolve-debt/SKILL.md +85 -0
  661. package/skills/resolve-debt/scripts/resolve-debt.py +584 -0
  662. package/skills/resolve-parallel/SKILL.md +45 -0
  663. package/skills/resolve-parallel/workflows/resolve-parallel.workflow.js +415 -0
  664. package/skills/resolve-pr-parallel/SKILL.md +68 -0
  665. package/skills/resolve-pr-parallel/workflows/resolve-pr-parallel.workflow.js +419 -0
  666. package/skills/resolve-todo-parallel/SKILL.md +57 -0
  667. package/skills/resolve-todo-parallel/workflows/resolve-todo-parallel.workflow.js +398 -0
  668. package/skills/review/SKILL.md +1621 -0
  669. package/skills/review/references/anti-slop-scanner-hook.md +40 -0
  670. package/skills/review/references/defect-classes-migrations.md +9 -0
  671. package/skills/review/references/generated-input-oracle-surfaces.md +15 -0
  672. package/skills/review/references/review-e2e-testing.md +116 -0
  673. package/skills/review/references/review-todo-structure.md +165 -0
  674. package/skills/review/references/risk-tier-and-fix-rounds.md +95 -0
  675. package/skills/review/references/semgrep-custom-rules.yaml +174 -0
  676. package/skills/review/references/ultrathink-phases.md +98 -0
  677. package/skills/review/references/wfs.md +6 -0
  678. package/skills/review/scripts/emit-review-trailer.sh +499 -0
  679. package/skills/review/scripts/ensure-semgrep.sh +99 -0
  680. package/skills/review/scripts/fix-round-seats.sh +197 -0
  681. package/skills/review/test/emit-review-trailer.test.sh +387 -0
  682. package/skills/review/test/ensure-semgrep.test.sh +111 -0
  683. package/skills/review/test/fix-round-seats.test.sh +237 -0
  684. package/skills/review/workflows/README.md +147 -0
  685. package/skills/review/workflows/review.workflow.js +667 -0
  686. package/skills/schedule/SKILL.md +796 -0
  687. package/skills/seo-aeo/SKILL.md +139 -0
  688. package/skills/seo-aeo/scripts/validate-csp.sh +233 -0
  689. package/skills/seo-aeo/scripts/validate-seo.sh +262 -0
  690. package/skills/ship/SKILL.md +3022 -0
  691. package/skills/ship/references/adr-ordinal-collision.md +47 -0
  692. package/skills/ship/references/affected-gate-contract.md +115 -0
  693. package/skills/ship/references/ci-run-diagnosis.md +29 -0
  694. package/skills/ship/references/ci-workflow-authoring.md +68 -0
  695. package/skills/ship/references/counsel-review-clo-attestation.md +38 -0
  696. package/skills/ship/references/cto-ruling-armed-push.md +5 -0
  697. package/skills/ship/references/decision-challenges-render.md +71 -0
  698. package/skills/ship/references/detached-battery-verdict.md +13 -0
  699. package/skills/ship/references/feature-tweet-draft.md +42 -0
  700. package/skills/ship/references/followthrough-issue-body-template.md +47 -0
  701. package/skills/ship/references/followthrough-stub-template.sh +92 -0
  702. package/skills/ship/references/merge-queue-dequeue.md +39 -0
  703. package/skills/ship/references/operator-holds.md +149 -0
  704. package/skills/ship/references/pipeline-tally-render.md +43 -0
  705. package/skills/ship/references/pr-overlap.md +153 -0
  706. package/skills/ship/references/queue-mode.md +7 -0
  707. package/skills/ship/references/ready-run-wait.md +36 -0
  708. package/skills/ship/references/red-on-main-quarantine.md +110 -0
  709. package/skills/ship/references/register-update-pr-pattern.md +88 -0
  710. package/skills/ship/references/settle-then-admin-merge.md +130 -0
  711. package/skills/ship/references/supabase-column-probe.md +13 -0
  712. package/skills/ship/scripts/auto-close-scan.sh +76 -0
  713. package/skills/ship/scripts/battery-owed.sh +403 -0
  714. package/skills/ship/scripts/hold-gate-eval.sh +410 -0
  715. package/skills/ship/scripts/net-issue-flow.sh +665 -0
  716. package/skills/ship/scripts/pr-overlap-preflight.sh +483 -0
  717. package/skills/ship/scripts/ship-pir-action-items-gate.sh +246 -0
  718. package/skills/ship/scripts/technical-ruling-gate.sh +444 -0
  719. package/skills/skill-creator/SKILL.md +299 -0
  720. package/skills/skill-creator/references/api-security.md +248 -0
  721. package/skills/skill-creator/references/authoring-levers.md +110 -0
  722. package/skills/skill-creator/references/be-clear-and-direct.md +587 -0
  723. package/skills/skill-creator/references/best-practices.md +431 -0
  724. package/skills/skill-creator/references/common-patterns.md +639 -0
  725. package/skills/skill-creator/references/core-principles.md +193 -0
  726. package/skills/skill-creator/references/executable-code.md +188 -0
  727. package/skills/skill-creator/references/iteration-and-testing.md +509 -0
  728. package/skills/skill-creator/references/official-spec.md +193 -0
  729. package/skills/skill-creator/references/recommended-structure.md +180 -0
  730. package/skills/skill-creator/references/skill-structure.md +396 -0
  731. package/skills/skill-creator/references/using-scripts.md +122 -0
  732. package/skills/skill-creator/references/using-templates.md +120 -0
  733. package/skills/skill-creator/references/workflows-and-validation.md +541 -0
  734. package/skills/skill-creator/scripts/init_skill.py +322 -0
  735. package/skills/skill-creator/scripts/package_skill.py +110 -0
  736. package/skills/skill-creator/scripts/quick_validate.py +64 -0
  737. package/skills/skill-creator/templates/router-skill.md +73 -0
  738. package/skills/skill-creator/templates/simple-skill.md +34 -0
  739. package/skills/skill-creator/workflows/add-reference.md +96 -0
  740. package/skills/skill-creator/workflows/add-script.md +104 -0
  741. package/skills/skill-creator/workflows/add-template.md +83 -0
  742. package/skills/skill-creator/workflows/add-workflow.md +128 -0
  743. package/skills/skill-creator/workflows/audit-skill.md +159 -0
  744. package/skills/skill-creator/workflows/create-domain-expertise-skill.md +623 -0
  745. package/skills/skill-creator/workflows/create-new-skill.md +207 -0
  746. package/skills/skill-creator/workflows/get-guidance.md +134 -0
  747. package/skills/skill-creator/workflows/upgrade-to-router.md +170 -0
  748. package/skills/skill-creator/workflows/verify-skill.md +226 -0
  749. package/skills/skill-security-scan/SKILL.md +145 -0
  750. package/skills/skill-security-scan/references/disclaimer.md +21 -0
  751. package/skills/skill-security-scan/references/first-party-allowlist.yaml +38 -0
  752. package/skills/skill-security-scan/references/override-artifact-schema.json +68 -0
  753. package/skills/skill-security-scan/references/override-mechanism.md +171 -0
  754. package/skills/skill-security-scan/references/redirect-domains.yaml +27 -0
  755. package/skills/skill-security-scan/references/regex-patterns.md +136 -0
  756. package/skills/skill-security-scan/references/rules/code-exec.yaml +70 -0
  757. package/skills/skill-security-scan/references/rules/filesystem-boundary.yaml +29 -0
  758. package/skills/skill-security-scan/references/rules/manifest.yaml +44 -0
  759. package/skills/skill-security-scan/references/rules/supply-chain.yaml +36 -0
  760. package/skills/skill-security-scan/references/scan-meta-schema.json +63 -0
  761. package/skills/skill-security-scan/references/test-fixtures/clean-soleur-style.skill.md +23 -0
  762. package/skills/skill-security-scan/references/test-fixtures/clean-third-party.skill.md +26 -0
  763. package/skills/skill-security-scan/references/test-fixtures/malicious-codeexec.skill.md +23 -0
  764. package/skills/skill-security-scan/references/test-fixtures/malicious-curl-pipe-bash.skill.md +69 -0
  765. package/skills/skill-security-scan/references/test-fixtures/malicious-prompt-injection.skill.md +17 -0
  766. package/skills/skill-security-scan/references/test-fixtures/malicious-telemetry-beacon.skill.md +23 -0
  767. package/skills/skill-security-scan/references/typosquat-targets.yaml +65 -0
  768. package/skills/skill-security-scan/scripts/check-codeexec.sh +41 -0
  769. package/skills/skill-security-scan/scripts/check-filesystem-boundary.sh +19 -0
  770. package/skills/skill-security-scan/scripts/check-prompt-injection.sh +95 -0
  771. package/skills/skill-security-scan/scripts/check-supply-chain.sh +219 -0
  772. package/skills/skill-security-scan/scripts/check-telemetry-surface.sh +126 -0
  773. package/skills/skill-security-scan/scripts/lib.sh +197 -0
  774. package/skills/skill-security-scan/scripts/parse-override.sh +231 -0
  775. package/skills/skill-security-scan/scripts/run-scan.sh +342 -0
  776. package/skills/skill-security-scan/scripts/run-self-test.sh +95 -0
  777. package/skills/skill-security-scan/test/argv-ceiling.test.sh +180 -0
  778. package/skills/skill-security-scan/test/meta-dir-reap.test.sh +411 -0
  779. package/skills/skill-security-scan/test/parse-override.test.sh +607 -0
  780. package/skills/skill-security-scan/test/redact-pii-ghs-shape.test.sh +251 -0
  781. package/skills/social-distribute/SKILL.md +485 -0
  782. package/skills/spec-templates/SKILL.md +274 -0
  783. package/skills/sync/SKILL.md +49 -0
  784. package/skills/test-browser/SKILL.md +464 -0
  785. package/skills/test-browser/references/feature-map.md +161 -0
  786. package/skills/test-fix-loop/SKILL.md +159 -0
  787. package/skills/test-fix-loop/references/determinism-checklist.md +154 -0
  788. package/skills/triage/SKILL.md +402 -0
  789. package/skills/trigger-cron/SKILL.md +136 -0
  790. package/skills/trigger-cron/scripts/trigger.sh +198 -0
  791. package/skills/user-set-role/SKILL.md +147 -0
  792. package/skills/user-set-role/scripts/set-role.sh +218 -0
  793. package/skills/user-story-writer/SKILL.md +77 -0
  794. package/skills/ux-audit/SKILL.md +251 -0
  795. package/skills/ux-audit/references/finding.schema.json +62 -0
  796. package/skills/ux-audit/references/route-list.yaml +95 -0
  797. package/skills/ux-audit/scripts/bot-fixture.ts +270 -0
  798. package/skills/ux-audit/scripts/bot-signin.ts +135 -0
  799. package/skills/ux-audit/scripts/dedup-hash.ts +46 -0
  800. package/skills/work/SKILL.md +1479 -0
  801. package/skills/work/references/end-of-work-resume.md +7 -0
  802. package/skills/work/references/hook-test-main-cwd.md +24 -0
  803. package/skills/work/references/key-principles.md +83 -0
  804. package/skills/work/references/property-testing.md +122 -0
  805. package/skills/work/references/sql-security-definer-rpc-scaffold.sql +78 -0
  806. package/skills/work/references/work-agent-teams.md +97 -0
  807. package/skills/work/references/work-lifecycle-parallel.md +147 -0
  808. package/skills/work/references/work-lockfile-bumps.md +97 -0
  809. package/skills/work/references/work-scratch-sandboxes.md +212 -0
  810. package/skills/work/references/work-subagent-fanout.md +61 -0
  811. package/skills/work/references/work-test-harness-sharp-edges.md +73 -0
  812. package/skills/xcode-test/SKILL.md +360 -0
@@ -0,0 +1,242 @@
1
+ ---
2
+ upstream: github.com/General-Legal/legal-templates
3
+ license: CC0-1.0
4
+ pinned-commit: 6d6805425eabd41bed86fc1e2ec51612760f716c
5
+ last-verified: 2026-10-19
6
+ registry: knowledge-base/engineering/policies/content-vendoring.md
7
+ lifted-files:
8
+ # Each entry pins TWO blob SHAs:
9
+ # upstream-blob-sha — the file as it exists upstream at `pinned-commit`.
10
+ # Used by the drift workflow to detect upstream content changes.
11
+ # local-blob-sha — the file as it exists in this repo (after the
12
+ # line-1 attribution header). Used by the lefthook
13
+ # `vendor-pin-integrity` gate to detect silent local edits. Computed
14
+ # via `git hash-object --no-filters`.
15
+ - path: references/templates/advisor-agreement/template.md
16
+ upstream-path: templates/advisor-agreement/template.md
17
+ upstream-blob-sha: 7cfe4fb5ee5c6b4d573f1988225668db1644d92b
18
+ local-blob-sha: 19642371c8f36352625c9f61f1277dc5c4a2cfcf
19
+ status: active-verbatim
20
+ - path: references/templates/business-associate-agreement/template.md
21
+ upstream-path: templates/business-associate-agreement/template.md
22
+ upstream-blob-sha: 0fd33c2912181681461f9dda77ce3d7aa93bb150
23
+ local-blob-sha: de95b9ed292bcbb497dfb653fbf4d07638760ff4
24
+ status: active-verbatim
25
+ - path: references/templates/cookie-notice/template.md
26
+ upstream-path: templates/cookie-notice/template.md
27
+ upstream-blob-sha: 46a11db821f763d392665ec2993648977c7c03cb
28
+ local-blob-sha: 58d178cd29092ff32204848e1b74add181baba17
29
+ status: active-verbatim
30
+ - path: references/templates/dpa-global/template.md
31
+ upstream-path: templates/dpa-global/template.md
32
+ upstream-blob-sha: d2ead2224e9434bfaf7fe1521fcd5d84fe5013e5
33
+ local-blob-sha: f01db862a723afc78209c3b12b8eac5eca6e849d
34
+ status: active-verbatim
35
+ - path: references/templates/dpa-us/template.md
36
+ upstream-path: templates/dpa-us/template.md
37
+ upstream-blob-sha: 2b7a8711a859847a957d136a148a12b6edf53530
38
+ local-blob-sha: 8f4fe8763a87d684a21d6c0b838e1fa552195018
39
+ status: active-verbatim
40
+ - path: references/templates/employee-offer-letter/template.md
41
+ upstream-path: templates/employee-offer-letter/template.md
42
+ upstream-blob-sha: 9deee17d7b716d4e4550c57c6d14af2c63cf56df
43
+ local-blob-sha: fff760e7aa88c1c6a6772d1d9c6b07b138c1c64a
44
+ status: active-verbatim
45
+ - path: references/templates/master-services-agreement/template.md
46
+ upstream-path: templates/master-services-agreement/template.md
47
+ upstream-blob-sha: 08fc16fd6fbe614673ea55fa4d354b69733ef1c7
48
+ local-blob-sha: b3d052421cc14db85a6d5e2a54a7e93cd955045c
49
+ status: active-verbatim
50
+ - path: references/templates/mutual-nda/template.md
51
+ upstream-path: templates/mutual-nda/template.md
52
+ upstream-blob-sha: 321ae7f4baeae2a5b002ce18e5fb534fe58cdf35
53
+ local-blob-sha: 37d495045817a184e39c615483b99ff91ff70371
54
+ status: active-verbatim
55
+ - path: references/templates/one-way-nda/template.md
56
+ upstream-path: templates/one-way-nda/template.md
57
+ upstream-blob-sha: d8f32b85ea4ff593c78c5a4e518cd7010c9870d0
58
+ local-blob-sha: 96b0704174a9944dc1215fa4816cee0ddf8f026d
59
+ status: active-verbatim
60
+ - path: references/templates/privacy-policy-gdpr/template.md
61
+ upstream-path: templates/privacy-policy-gdpr/template.md
62
+ upstream-blob-sha: 6f008a229225e7e21d010cf735073d9d65013d02
63
+ local-blob-sha: cbbbbe13f296913be8db5b07b50437be3b5ced16
64
+ status: active-verbatim
65
+ - path: references/templates/privacy-policy-us/template.md
66
+ upstream-path: templates/privacy-policy-us/template.md
67
+ upstream-blob-sha: 3981a0f5fa9f4b2121dddbe411d072953c67a6a3
68
+ local-blob-sha: 8ff77dd199f6b5f2b4400d0cad4fb0cd5ae47f81
69
+ status: active-verbatim
70
+ - path: references/templates/terms-of-use/template.md
71
+ upstream-path: templates/terms-of-use/template.md
72
+ upstream-blob-sha: 98867f87a7ebbaa97e5e7dc93c5ee3d208b163de
73
+ local-blob-sha: 459b96a133f6f2a77743a222dceb4a007b262623
74
+ status: active-verbatim
75
+ soleur-authored:
76
+ # Reference files written from scratch for this plugin. Same record shape and
77
+ # same `local-blob-sha` tamper check as `lifted-files` above, but NO upstream
78
+ # provenance. Declared as an explicit empty list: every `references/**/*.md`
79
+ # file in this bundle is vendored, so nothing registers here today. Any future
80
+ # `.md` added under `references/` MUST be registered in exactly one of the two
81
+ # registries (the symmetric-difference walk enforces).
82
+ []
83
+ ---
84
+
85
+ # NOTICE
86
+
87
+ The frontmatter above is the canonical machine-readable form; the table below is the human-readable form. Drift between them is a bug.
88
+
89
+ `legal-generate` lifts twelve legal-document templates from [General-Legal/legal-templates](https://github.com/General-Legal/legal-templates) under the CC0-1.0 license. The lifted files carry a per-file attribution header and are listed below with upstream blob SHAs pinned at commit `0f7c7bfabf1be77a2bf52eef80815e24c93a190a` (verified 2026-09-13 — upstream `main` HEAD unchanged).
90
+
91
+ The templates are vendored verbatim (modulo the line-1 attribution header): each retains the upstream trailing credit paragraph naming General Legal, PC for provenance. That credit, and the header, are stripped deterministically at the document emit path (`scripts/strip-vendor-credit.sh`) — emitted documents carry no vendor marks. Two templates (`employee-offer-letter`, `terms-of-use`) also embed an "OPTION B" arbitration clause naming DecisionLayer, a General-Legal-affiliated arbitration provider; the clause is a user-selectable alternative to the default JAMS option and is surfaced — not defaulted — at fill time.
92
+
93
+ Upstream `docx-originals/`, per-template `README.md` files, and upstream `scripts/` are NOT vendored.
94
+
95
+ ## General-Legal/legal-templates (CC0-1.0)
96
+
97
+ Pinned commit: `0f7c7bfabf1be77a2bf52eef80815e24c93a190a` (verified 2026-09-13)
98
+
99
+ Upstream: <https://github.com/General-Legal/legal-templates>
100
+
101
+ | Lifted file (Soleur) | Upstream path | Blob SHA | Status |
102
+ |---|---|---|---|
103
+ | `references/templates/advisor-agreement/template.md` | `templates/advisor-agreement/template.md` | `7cfe4fb5ee5c6b4d573f1988225668db1644d92b` | active (verbatim) |
104
+ | `references/templates/business-associate-agreement/template.md` | `templates/business-associate-agreement/template.md` | `0fd33c2912181681461f9dda77ce3d7aa93bb150` | active (verbatim) |
105
+ | `references/templates/cookie-notice/template.md` | `templates/cookie-notice/template.md` | `46a11db821f763d392665ec2993648977c7c03cb` | active (verbatim) |
106
+ | `references/templates/dpa-global/template.md` | `templates/dpa-global/template.md` | `d2ead2224e9434bfaf7fe1521fcd5d84fe5013e5` | active (verbatim) |
107
+ | `references/templates/dpa-us/template.md` | `templates/dpa-us/template.md` | `2b7a8711a859847a957d136a148a12b6edf53530` | active (verbatim) |
108
+ | `references/templates/employee-offer-letter/template.md` | `templates/employee-offer-letter/template.md` | `9deee17d7b716d4e4550c57c6d14af2c63cf56df` | active (verbatim) |
109
+ | `references/templates/master-services-agreement/template.md` | `templates/master-services-agreement/template.md` | `08fc16fd6fbe614673ea55fa4d354b69733ef1c7` | active (verbatim) |
110
+ | `references/templates/mutual-nda/template.md` | `templates/mutual-nda/template.md` | `4ad55af5d3da9a3fd08b38e49ea4ec12e6a0e8b9` | active (verbatim) |
111
+ | `references/templates/one-way-nda/template.md` | `templates/one-way-nda/template.md` | `d8f32b85ea4ff593c78c5a4e518cd7010c9870d0` | active (verbatim) |
112
+ | `references/templates/privacy-policy-gdpr/template.md` | `templates/privacy-policy-gdpr/template.md` | `6f008a229225e7e21d010cf735073d9d65013d02` | active (verbatim) |
113
+ | `references/templates/privacy-policy-us/template.md` | `templates/privacy-policy-us/template.md` | `3981a0f5fa9f4b2121dddbe411d072953c67a6a3` | active (verbatim) |
114
+ | `references/templates/terms-of-use/template.md` | `templates/terms-of-use/template.md` | `98867f87a7ebbaa97e5e7dc93c5ee3d208b163de` | active (verbatim) |
115
+
116
+ ## License
117
+
118
+ Upstream CC0-1.0 license terms (verbatim copy):
119
+
120
+ ```
121
+ Creative Commons Legal Code
122
+
123
+ CC0 1.0 Universal
124
+
125
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
126
+ LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
127
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
128
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
129
+ REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
130
+ PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
131
+ THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
132
+ HEREUNDER.
133
+
134
+ Statement of Purpose
135
+
136
+ The laws of most jurisdictions throughout the world automatically confer
137
+ exclusive Copyright and Related Rights (defined below) upon the creator
138
+ and subsequent owner(s) (each and all, an "owner") of an original work of
139
+ authorship and/or a database (each, a "Work").
140
+
141
+ Certain owners wish to permanently relinquish those rights to a Work for
142
+ the purpose of contributing to a commons of creative, cultural and
143
+ scientific works ("Commons") that the public can reliably and without fear
144
+ of later claims of infringement build upon, modify, incorporate in other
145
+ works, reuse and redistribute as freely as possible in any form whatsoever
146
+ and for any purposes, including without limitation commercial purposes.
147
+ These owners may contribute to the Commons to promote the ideal of a free
148
+ culture and the further production of creative, cultural and scientific
149
+ works, or to gain reputation or greater distribution for their Work in
150
+ part through the use and efforts of others.
151
+
152
+ For these and/or other purposes and motivations, and without any
153
+ expectation of additional consideration or compensation, the person
154
+ associating CC0 with a Work (the "Affirmer"), to the extent that he or she
155
+ is an owner of Copyright and Related Rights in the Work, voluntarily
156
+ elects to apply CC0 to the Work and publicly distribute the Work under its
157
+ terms, with knowledge of his or her Copyright and Related Rights in the
158
+ Work and the meaning and intended legal effect of CC0 on those rights.
159
+
160
+ 1. Copyright and Related Rights. A Work made available under CC0 may be
161
+ protected by copyright and related or neighboring rights ("Copyright and
162
+ Related Rights"). Copyright and Related Rights include, but are not
163
+ limited to, the following:
164
+
165
+ i. the right to reproduce, adapt, distribute, perform, display,
166
+ communicate, and translate a Work;
167
+ ii. moral rights retained by the original author(s) and/or performer(s);
168
+ iii. publicity and privacy rights pertaining to a person's image or
169
+ likeness depicted in a Work;
170
+ iv. rights protecting against unfair competition in regards to a Work,
171
+ subject to the limitations in paragraph 4(a), below;
172
+ v. rights protecting the extraction, dissemination, use and reuse of data
173
+ in a Work;
174
+ vi. database rights (such as those arising under Directive 96/9/EC of the
175
+ European Parliament and of the Council of 11 March 1996 on the legal
176
+ protection of databases, and under any national implementation
177
+ thereof, including any amended or successor version of such
178
+ directive); and
179
+ vii. other similar, equivalent or corresponding rights throughout the
180
+ world based on applicable law or treaty, and any national
181
+ implementations thereof.
182
+
183
+ 2. Waiver. To the greatest extent permitted by, but not in contravention
184
+ of, applicable law, Affirmer hereby overtly, fully, permanently,
185
+ irrevocably and unconditionally waives, abandons, and surrenders all of
186
+ Affirmer's Copyright and Related Rights and associated claims and causes
187
+ of action, whether now known or unknown (including existing as well as
188
+ future claims and causes of action), in the Work (i) in all territories
189
+ worldwide, (ii) for the maximum duration provided by applicable law or
190
+ treaty (including future time extensions), (iii) in any current or future
191
+ medium and for any number of copies, and (iv) for any purpose whatsoever,
192
+ including without limitation commercial, advertising or promotional
193
+ purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
194
+ member of the public at large and to the detriment of Affirmer's heirs and
195
+ successors, fully intending that such Waiver shall not be subject to
196
+ revocation, rescission, cancellation, termination, or any other legal or
197
+ equitable action to disrupt the quiet enjoyment of the Work by the public
198
+ as contemplated by Affirmer's express Statement of Purpose.
199
+
200
+ 3. Public License Fallback. Should any part of the Waiver for any reason
201
+ be judged legally invalid or ineffective under applicable law, then the
202
+ Waiver shall be preserved to the maximum extent permitted taking into
203
+ account Affirmer's express Statement of Purpose. In addition, to the
204
+ extent the Waiver is so judged Affirmer hereby grants to each affected
205
+ person a royalty-free, non transferable, non sublicensable, non exclusive,
206
+ irrevocable and unconditional license to exercise Affirmer's Copyright and
207
+ Related Rights in the Work (i) in all territories worldwide, (ii) for the
208
+ maximum duration provided by applicable law or treaty (including future
209
+ time extensions), (iii) in any current or future medium and for any number
210
+ of copies, and (iv) for any purpose whatsoever, including without
211
+ limitation commercial, advertising or promotional purposes (the
212
+ "License"). The License shall be deemed effective as of the date CC0 was
213
+ applied by Affirmer to the Work. Should any part of the License for any
214
+ reason be judged legally invalid or ineffective under applicable law, such
215
+ partial invalidity or ineffectiveness shall not invalidate the remainder
216
+ of the License, and in such case Affirmer hereby affirms that he or she
217
+ will not (i) exercise any of his or her remaining Copyright and Related
218
+ Rights in the Work or (ii) assert any associated claims and causes of
219
+ action with respect to the Work, in either case contrary to Affirmer's
220
+ express Statement of Purpose.
221
+
222
+ 4. Limitations and Disclaimers.
223
+
224
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
225
+ surrendered, licensed or otherwise affected by this document.
226
+ b. Affirmer offers the Work as-is and makes no representations or
227
+ warranties of any kind concerning the Work, express, implied,
228
+ statutory or otherwise, including without limitation warranties of
229
+ title, merchantability, fitness for a particular purpose, non
230
+ infringement, or the absence of latent or other defects, accuracy, or
231
+ the present or absence of errors, whether or not discoverable, all to
232
+ the greatest extent permissible under applicable law.
233
+ c. Affirmer disclaims responsibility for clearing rights of other persons
234
+ that may apply to the Work or any use thereof, including without
235
+ limitation any person's Copyright and Related Rights in the Work.
236
+ Further, Affirmer disclaims responsibility for obtaining any necessary
237
+ consents, permissions or other rights required for any use of the
238
+ Work.
239
+ d. Affirmer understands and acknowledges that Creative Commons is not a
240
+ party to this document and has no duty or obligation with respect to
241
+ this CC0 or use of the Work.
242
+ ```
@@ -0,0 +1,244 @@
1
+ ---
2
+ name: legal-generate
3
+ description: "This skill should be used when generating draft legal documents for a project or company. It gathers company context interactively, invokes the soleur:legal:legal-document-generator agent, and writes markdown output."
4
+ ---
5
+
6
+ <!-- soleur-cloud-mode:start -->
7
+ **Cloud Mode (Devin):** before pipeline work run `bash "${CLAUDE_PLUGIN_ROOT}/scripts/cloud-detect.sh"`. If `CLAUDE_PLUGIN_ROOT` is unset (cloud exec shells do not export it), resolve the root by IDENTITY, never by script basename: for `d` in `"$HOME/.local/share/devin/cli/plugins/cache"` and `/opt/.devin/plugins`, skip unless `[ -d "$d" ]`, then `MANIFEST="$(find "$d" -path '*/.claude-plugin/plugin.json' -exec grep -l '"name"[[:space:]]*:[[:space:]]*"soleur"' {} + 2>/dev/null | head -1)"`, `ROOT="${MANIFEST%/.claude-plugin/plugin.json}"` — one resolution, two consumers: `$ROOT/scripts/cloud-detect.sh` and `$ROOT/scripts/precommit-guard.sh`. (Shape check, not authentication: a planted `{"name":"soleur"}` dir passes — ADR-179 A11.) `local` or `not-local:no-devin-env` proceeds normally; any other `not-local:<reason>` applies `<plugin-root>/devin/INSTRUCTIONS.md` §Cloud Mode: emit the `--banner`, fan out sequentially with `Reviewed-Coverage: sequential-fallback` disclosure (never claim an independent review ran), `message_user` ack before any secrets read or production mutation, and run `precommit-guard.sh` before any `git commit` — hooks do not fire in cloud.
8
+ <!-- soleur-cloud-mode:end -->
9
+
10
+ <!-- grok-harness-invoke:start -->
11
+ **Grok Build (`plugins/soleur/lib/harness.ts` `invokeSkill()`):** Read this SKILL.md in this process and run it to completion. A one-segment `soleur:<name>` in this document names a SKILL — on Grok Build, Read `plugins/soleur/skills/<name>/SKILL.md` in this process; it is not a nested tool_use. A multi-segment id such as `soleur:<domain>:<name>` names an AGENT: spawn it, never Read it, and on Grok Build spawn_subagent takes the id with its colons replaced by hyphens (`agentIdToGrokSubagentType`). **Claude Code:** Skill tool for a skill (`soleur:<name>`), Task tool with `subagent_type` for an agent. Forbidden is executing a subset, not the Read.
12
+ <!-- grok-harness-invoke:end -->
13
+
14
+ # Legal Document Generator
15
+
16
+ Generate draft legal documents from company context. Supports 14 document types across US, EU/GDPR, and UK jurisdictions. All output is marked as a draft requiring professional legal review.
17
+
18
+ ## Supported Document Types
19
+
20
+ - Terms & Conditions
21
+ - Privacy Policy
22
+ - Cookie Policy
23
+ - GDPR Policy
24
+ - Acceptable Use Policy
25
+ - Data Processing Agreement
26
+ - Data Protection Disclosure
27
+ - Disclaimer / Limitation of Liability
28
+ - Master Services Agreement
29
+ - Mutual NDA
30
+ - One-Way NDA
31
+ - Advisor Agreement
32
+
33
+ Two more types are available on explicit request only — both carry blocking confirmations, so they are never offered in the menu:
34
+
35
+ - Employee Offer Letter (CA-exempt scope confirm)
36
+ - Business Associate Agreement (HIPAA/PHI confirm)
37
+
38
+ Overlapping types fill a vendored template substrate ([references/templates/](references/templates/)); uncovered types and unsupported jurisdictions are generated from scratch by the agent — routing is its decision, not the menu's.
39
+
40
+ ## Phase 0: Context Gathering
41
+
42
+ Use the **AskUserQuestion tool** to gather company context. Ask for:
43
+
44
+ 1. **Company name** (required)
45
+ 2. **Product/service description** (required) -- what the product does, who it serves
46
+ 3. **Data practices** -- what user data is collected, how it is processed, stored, shared
47
+ 4. **Jurisdiction** -- which legal frameworks apply (US, EU/GDPR, UK, or multiple)
48
+ 5. **Contact information** -- email and/or physical address for legal notices
49
+
50
+ If the user provides arguments after the skill name (e.g., `soleur:legal-generate privacy-policy`), use that as the document type selection and skip Phase 1.
51
+
52
+ ## Phase 1: Document Selection
53
+
54
+ Use the **AskUserQuestion tool** to select a document type. Offer the four most likely types (e.g. Privacy Policy / Terms & Conditions / Mutual NDA / Master Services Agreement) and rely on the built-in **Other** free-text option for the rest — the menu never lists the gated types.
55
+
56
+ ## Phase 1.5: Substrate Staleness Check
57
+
58
+ Before invoking the agent, check the freshness of the vendored template corpus:
59
+
60
+ ```bash
61
+ NOTICE_FILE="${CLAUDE_PLUGIN_ROOT}/skills/legal-generate/NOTICE" \
62
+ bash "${CLAUDE_PLUGIN_ROOT}/skills/gdpr-gate/scripts/notice-frontmatter.sh" days-stale
63
+ ```
64
+
65
+ - **>30 days** — print an advisory banner to stdout: the template corpus has not been verified against upstream recently.
66
+ - **>90 days** — additionally print `POSTURE_FAIL:`; the operator follows the chain in `knowledge-base/engineering/policies/content-vendoring.md` to record it in `compliance-posture.md`.
67
+ - Advisory only — generation proceeds either way; do not block on staleness.
68
+
69
+ ## Phase 2: Generation
70
+
71
+ Invoke the `soleur:legal:legal-document-generator` agent via the **Task tool** with the company context and selected document type. The agent resolves the substrate arm (template-fill vs from-scratch) from its own routing table — do not pre-decide it here.
72
+
73
+ ```
74
+ Task soleur:legal:legal-document-generator: "Generate a [document type] for [company name].
75
+ Company: [name]
76
+ Product: [description]
77
+ Data practices: [practices]
78
+ Jurisdiction: [jurisdiction]
79
+ Contact: [contact info]"
80
+ ```
81
+
82
+ **Gates measure agreement, not truth (#7349).** All five gates compare the two surfaces against
83
+ each other. None asks whether the agreed text is correct, so two byte-identical copies of a false
84
+ sentence pass every one of them. Three defects shipped past a full green run in #7349 that way: a
85
+ controllership statement drift-reduction copied onto the published page, a duplicated clause left
86
+ behind by a half-applied replacement, and "eleven processing activities" in a document whose
87
+ register carries thirty-five. Read the prose; do not read the drift number and stop.
88
+
89
+ **`BODY_EQUIVALENCE_DOCS` is a one-way ratchet.** `terms-and-conditions`, `acceptable-use-policy`
90
+ and `disclaimer` are enrolled; each was verified at ZERO normalised drift immediately before
91
+ enrolment, because enrolling a drifted document turns a required check red on arrival. Once
92
+ enrolled, any edit landing on one surface only reds that check — which is the point. `--print-vocab`
93
+ and a mutation check (inject a line, confirm the guard fails, remove it) are the two ways to prove
94
+ an enrolment is live rather than decorative.
95
+
96
+ **Two measurement traps that cost real rounds in #7349.** `collapse()` normalises `[0-9]+ AI
97
+ agents` but NOT a bare `[0-9]+ agents`, so count divergence between the record and the published
98
+ page can be invisible to the drift gate. And a grep for `Article ` will not match the corpus's <!-- markdownlint-disable-line MD038 -->
99
+ plural `Articles 15 through 22` — use `Articles? 1[5-9]`.
100
+
101
+ ## Phase 2.5: Redaction Gate (BLOCKING — runs BEFORE inline presentation)
102
+
103
+ A generated legal draft can echo a secret or PII that was passed in as company context (a contact email, an API identifier pasted into a data-practices answer). **Presenting the draft inline in Phase 3 is a transcript write boundary** — the same fail-closed rule the incident skill enforces (`incident/SKILL.md` Phase 6): the sentinel must precede inline-emit, not just file-commit. So the redaction gate runs here, before the operator ever sees the draft.
104
+
105
+ 1. Write the generated draft to a `mktemp` file (do NOT emit it inline yet).
106
+
107
+ Register the cleanup trap **in the same block that allocates the draft**, before anything
108
+ can halt. This PR adds an earlier fail-closed exit, so it increases how often the draft is
109
+ abandoned mid-flight — and the abandoned file is the UN-REDACTED text, which is precisely
110
+ what this gate exists to stop escaping. Leaving it in `mktemp` is a leak with a longer
111
+ lifetime than the session (#7450 review-finding C14).
112
+
113
+ The allocation, the trap and the gate MUST share **one** fence — each fenced block is a
114
+ separate Bash call, so a trap registered in its own block fires when *that* block exits,
115
+ deleting the draft immediately and leaving `$DRAFT` empty for everything after it. The split
116
+ form shipped once and all three of its guarantees were false. The combined fence is in step 2
117
+ below.
118
+
119
+ 2. Run the shared hardened engine against it. Resolve the path from the **deployed plugin root**
120
+ (`${CLAUDE_PLUGIN_ROOT}`, the platform-trusted copy — ADR-179's canonical bare anchor, with no
121
+ fallback arm) — NOT a bare `../incident/...` relative path, which depends on the current working
122
+ directory and, from the wrong CWD, exits `127` *outside* the shim (bypassing the shim's fail-closed
123
+ exit-2 normalization). On the Concierge server the deployed-root anchor is load-bearing: a bare
124
+ CWD-relative path would resolve the connected repo's **untrusted** copy of the sentinel (ADR-093).
125
+ The default arm was **removed, not re-pointed**: `review/SKILL.md` instructs `gh pr checkout`, after
126
+ which the git worktree is the *reviewed party's* tree, so that arm resolved this gate's own scanner
127
+ from a file a hostile PR controls (#7450). The **bare anchor is the load-bearing control** — the
128
+ loader substitutes it with the installed root at delivery, so no ambient environment value reaches
129
+ this site (measured: `specs/feat-one-shot-7450-git-root-anchor-untrusted/phase-1-measurement.md`
130
+ Arm 4). The identity preflight below is **defence-in-depth** for surfaces where substitution does
131
+ not govern: it is a *shape* check and cannot tell an install from a checkout carrying the same
132
+ manifest, which is why ADR-179 §(a) measured a shape check passing while an attacker-chosen payload
133
+ executed. The stronger root-outside-the-worktree form was evaluated and rejected — see
134
+ `specs/feat-one-shot-7450-git-root-anchor-untrusted/b1-disposition.md`. Each halt emits a
135
+ `SOLEUR_*` marker on stdout so refusals reach telemetry:
136
+
137
+ ```bash
138
+ DRAFT="$(mktemp -p "$(mktemp -d -t soleur-run.$$.XXXXXXXX)")" || { echo "SOLEUR_LEGAL_GENERATE_HALT reason=draft-alloc-failed"
139
+ echo "legal-generate: cannot allocate a draft file — stopping before any draft text exists." >&2
140
+ exit 2; }
141
+ trap 'rm -f "$DRAFT"; rmdir "$(dirname "$DRAFT")" 2>/dev/null' EXIT INT TERM HUP
142
+
143
+ # Write the generated draft into "$DRAFT" here — in THIS fence, before the gate below.
144
+ # Use a QUOTED heredoc delimiter (`<<'DRAFT_EOF'`): company-context answers can contain
145
+ # `$(…)`, backticks and `$VAR`, and an unquoted delimiter would EXECUTE the substitutions
146
+ # on the operator's machine and expand `$VAR` to empty — mutating the text the sentinel is
147
+ # about to scan, so a secret's shape can be destroyed by the shell instead of the redactor.
148
+ # cat > "$DRAFT" <<'DRAFT_EOF'
149
+ # <the generated draft, verbatim>
150
+ # DRAFT_EOF
151
+
152
+ [ -f "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json" ] \
153
+ && grep -q '"name"[[:space:]]*:[[:space:]]*"soleur"' "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json" \
154
+ || { echo "SOLEUR_LEGAL_GENERATE_HALT reason=plugin-root-unverified root=[${CLAUDE_PLUGIN_ROOT}]"
155
+ echo "legal-generate: cannot verify the Soleur plugin installation — stopping before any draft is written." >&2
156
+ echo " Resolved plugin root: [${CLAUDE_PLUGIN_ROOT}]" >&2
157
+ echo " If that is EMPTY: no Soleur plugin is loaded in this session. Install it and start a NEW session — re-running here resolves the same empty root." >&2
158
+ echo " If it names a path: that path is not a Soleur install (a repo checkout is not an install). Run 'claude plugin update soleur@soleur-marketplace' (or the id 'claude plugin list' prints, if you added the repository directly), then RESTART Claude Code — plugin changes apply only on restart. If you installed with --scope project or --scope local, pass the same scope. Reinstall only if that does not clear it." >&2
159
+ echo " Do NOT hand-edit and publish this draft — the redaction scanner is what makes it safe to share." >&2
160
+ exit 2; }
161
+ SENTINEL="${CLAUDE_PLUGIN_ROOT}/skills/incident/scripts/redact-sentinel.sh"
162
+ [[ -r "$SENTINEL" ]] || { echo "SOLEUR_LEGAL_GENERATE_HALT reason=sentinel-unreadable sentinel=[$SENTINEL]"
163
+ echo "legal-generate: the redaction sentinel is missing from an otherwise valid Soleur install — stopping." >&2
164
+ echo " Expected at: [$SENTINEL]" >&2
165
+ echo " The install is partial or out of date. Run 'claude plugin update soleur@soleur-marketplace' (or the id 'claude plugin list' prints, if you added the repository directly), then RESTART Claude Code — plugin changes apply only on restart. If you installed with --scope project or --scope local, pass the same scope. Reinstall only if that does not clear it." >&2
166
+ echo " Do NOT hand-edit and publish this draft — the redaction scanner is what makes it safe to share." >&2
167
+ exit 2; }
168
+ # EMPTINESS IS A FAILURE, NOT A CLEAN SCAN — the sentinel exits 0 on zero bytes, so an
169
+ # unwritten draft passes the gate vacuously and Phase 3 presents the un-redacted text
170
+ # inline. Sibling of `linear-fetch`'s `[ -n "$PERSIST_SAFE" ]`.
171
+ [ -s "$DRAFT" ] || { echo "SOLEUR_LEGAL_GENERATE_HALT reason=draft-empty draft=[$DRAFT]"
172
+ echo "legal-generate: the draft file is empty — nothing was scanned, so nothing is safe to share." >&2
173
+ echo " Write the draft into \"\$DRAFT\" in the SAME fence as this gate, then re-run." >&2
174
+ echo " An empty file is a failure, not a clean scan: the sentinel exits 0 on zero bytes." >&2
175
+ exit 2; }
176
+ bash "$SENTINEL" "$DRAFT"
177
+ sentinel_rc=$?
178
+
179
+ # Vendor-residue audit — MUST run in THIS fence: the trap above deletes
180
+ # "$DRAFT" at block exit, so any audit in a later fence greps a dead path
181
+ # and can never evaluate true. All greps print hits; any hit halts.
182
+ residue=0
183
+ grep -inE 'general[-.[:space:]]?legal' "$DRAFT" && residue=1 # vendor marks
184
+ grep -inE 'attorney[- ]draft|prepared by[^.]{0,30}(attorney|law firm)|reviewed by[^.]{0,30}attorney' "$DRAFT" && residue=1 # credential-claim leakage
185
+ grep -nE '<mark' "$DRAFT" && residue=1 # unfilled substrate slots
186
+ grep -nP '\[[^\]]+\](?!\()' "$DRAFT" && residue=1 # bare-bracket remnants (markdown links excluded)
187
+ grep -nE 'OPTION [AB]|\[Select one|TEMPLATE ' "$DRAFT" && residue=1 # un-deleted decision constructs / scaffold rows
188
+ # Advisory (cannot hard-halt): a legitimately chosen Option B carries
189
+ # "DecisionLayer" text. Print hits for the operator; the OPTION/[Select
190
+ # grep above already halts on an UNRESOLVED choice construct.
191
+ grep -inE 'decisionlayer|decision science research' "$DRAFT" || true
192
+ if (( residue )); then
193
+ echo "SOLEUR_LEGAL_GENERATE_HALT reason=vendor-residue draft=[$DRAFT]"
194
+ echo "legal-generate: the draft still carries substrate/vendor residue — see the lines above; do not present." >&2
195
+ exit 2
196
+ fi
197
+ exit "$sentinel_rc"
198
+ ```
199
+
200
+ The engine is owned by the `incident` skill and shared cross-skill by relative reference (see ADR-095).
201
+
202
+ 3. Dispatch on the exit code (fail-closed):
203
+ - **exit 0 (clean)** — proceed to Phase 3 and present the draft.
204
+ - **exit 1 (redaction needed)** — print the finding lines (each is meta-redacted; never the full token), revise/redact the offending context, regenerate, and re-run the gate until it exits 0. Do NOT present or write an un-cleared draft.
205
+ - **exit 2 (cannot-evaluate)** — halt. The engine could not run (skill bug, `python3` absent, unreadable tmpfile). Do NOT present or write; surface the error.
206
+
207
+ No un-scanned draft ever crosses the transcript or lands on disk.
208
+
209
+ ## Phase 3: Output
210
+
211
+ The vendor-residue audit ran inside the Phase 2.5 fence — `$DRAFT` is deleted by the trap when that block exits, so nothing here may re-grep it. If the fence exited 2 with `reason=vendor-residue`, do not present; report the residue lines it printed.
212
+
213
+ <decision_gate>
214
+
215
+ Present the generated document to the user. Use the **AskUserQuestion tool** with options:
216
+
217
+ - **Accept** -- Write to disk
218
+ - **Edit** -- Provide feedback to revise (return to Phase 2 with feedback)
219
+ - **Reject** -- Discard and exit
220
+
221
+ </decision_gate>
222
+
223
+ On acceptance, write the markdown file to the user-specified path or default `docs/legal/<type>.md` (e.g., `docs/legal/privacy-policy.md`).
224
+
225
+ Report: "Draft written to `<path>`. This document requires professional legal review before use."
226
+
227
+ ## Important Guidelines
228
+
229
+ - All generated documents include mandatory DRAFT disclaimers -- do not remove them
230
+ - Gather context interactively every time -- do not assume context from previous sessions
231
+ - One document type per invocation -- to generate multiple types, run the skill multiple times
232
+ - Output format is markdown only -- Eleventy .njk wrapping is out of scope for this skill
233
+ - **But the mirror is NOT out of scope for the corpus.** `docs/legal/<doc>.md` is the canonical
234
+ record; `plugins/soleur/docs/pages/legal/<doc>.md` is the surface users actually read at
235
+ soleur.ai/legal/. Writing canonical only leaves the published site unchanged AND trips
236
+ [lint-legal-mirror-drift-baseline.sh](../../../../scripts/lint-legal-mirror-drift-baseline.sh), which exits 2 on a document that exists on
237
+ exactly one surface. After generating, create the mirror in the same commit.
238
+ - Five CI gates ride `docs/legal/**` (#7387). Reproduce locally before pushing:
239
+ `bash scripts/lint-legal-scope-block-placement.sh --base origin/main` (added scope blocks:
240
+ referent agreement, attachment, discharge -- run `--print-vocab` for the accepted phrasings)
241
+ and `bash scripts/lint-legal-mirror-drift-baseline.sh --base origin/main` (canonical<->mirror
242
+ drift ratchet). The other three are `check-tc-document-sha.sh` (re-pin `legal-doc-shas.ts`
243
+ after any canonical edit), `legal-doc-consistency.test.ts`, and the `EXPECTED_COUNT` sentinel.
244
+ - If the user asks for a document type not in the supported list, suggest the closest match or explain that the type is not supported
@@ -0,0 +1,12 @@
1
+ <!-- Adapted from General-Legal/legal-templates (CC0-1.0) — see NOTICE -->
2
+ 1. **Services**. Advisor agrees to consult with and advise Company at Company's request (the "***Services***"), including by <mark>[(describe services)]</mark> on <mark>[(provide dates of services)]</mark>.<mark> </mark>While this Agreement is in effect, Advisor will not, without Company's prior written consent, provide services (directly or indirectly) to any company active in (or planning to become active in) the field of <mark>___________</mark> or that otherwise competes with Company in such field.
3
+ 2. **Consideration**. As the only consideration due Advisor for Services, subject to approval by the Company's Board of Directors (the "***Board***"), the Company anticipates granting Advisor an option to purchase <mark>[__]</mark> shares of the Company's common stock at the fair market value as determined by the Board as of the date of grant (the "***Grant***"). The anticipated Grant will be governed by the terms and conditions of Advisor's grant agreement, and will include a <mark>_____</mark> year vesting schedule, under which the shares will vest in a series of <mark>_____</mark> successive equal monthly installments measured from the Effective Date, subject to Advisor's continuous service under this Agreement as of each such date. Advisor will also be entitled to reimbursement for reasonable, documented, out-of-pocket expenses that are incurred solely in performing the Services, are pre-approved in writing by Company, comply with Company's applicable expense policies (as may be updated from time to time), and are submitted for reimbursement with appropriate supporting documentation within thirty (30) days after being incurred.
4
+ 3. **Ownership**. Company owns, and Advisor hereby assigns to Company, all works of authorship, deliverables, work product, technology, inventions, discoveries, developments, improvements, intellectual property and other materials, and all related rights (including all patent rights, copyrights, mask work rights, trade secret rights, and all rights to priority and rights to file patent applications and/or registered designs) throughout the world, that are created, conceived, reduced to practice, developed, or made by or on behalf of Advisor, in whole or in part, in connection with the Services or using any Proprietary Information ("**Inventions**"); provided, however, that "Inventions" do not include any intellectual property, technology, works of authorship, inventions, tools, or materials that were conceived, reduced to practice, developed, or acquired by Advisor prior to the Effective Date or outside the scope of the Services without use of Company's Proprietary Information ("**Preexisting IP**"). Advisor will disclose to Company in writing any Preexisting IP that Advisor intends to incorporate in, make necessary for the use of, or otherwise use in connection with any Inventions or Services deliverables, and will not do so without Company's prior written consent; any Preexisting IP not so disclosed in writing will be deemed an Invention. To the extent any Preexisting IP is incorporated in, necessary for the use of, or otherwise used in connection with any Inventions or Services deliverables, Advisor hereby grants to Company a perpetual, irrevocable, worldwide, royalty-free, fully paid-up, sublicensable, transferable license to use, reproduce, distribute, create derivative works of, publicly perform, publicly display, make, have made, sell, offer for sale, import, and otherwise exploit such Preexisting IP. Advisor waives all moral rights in and to the Inventions and Services deliverables, and all similar rights under the laws of any jurisdiction, whether now existing or conferred in the future. Advisor agrees to promptly, during and after the term of this Agreement, execute, verify, and deliver to Company any documents and take any other actions reasonably requested by Company to perfect, record, or enforce Company's rights in the Inventions, and Advisor hereby irrevocably designates and appoints Company and its duly authorized officers and agents as Advisor's agent and attorney-in-fact to act for and on Advisor's behalf to execute and file any such documents if Advisor fails to do so promptly after request.
5
+ 4. **Proprietary Information**. Advisor agrees that all non-public information relating to Company or its business that Advisor receives from Company or its representatives, or otherwise learns or develops in connection with the Services, in any form or medium, including without limitation information regarding Company's products, services, technology, trade secrets, finances, business plans, operations, customers, suppliers, and employees, and all Inventions, constitute "***Proprietary Information***." Advisor will hold in confidence and not disclose or, except as necessary to perform the Services for Company, use any Proprietary Information. Advisor will protect Proprietary Information using at least reasonable care and in no event less than the degree of care Advisor uses to protect Advisor's own confidential information of similar sensitivity, and will not access, store, or transmit Proprietary Information except as reasonably necessary to perform the Services and consistent with Company's reasonable instructions. To the extent Advisor receives from Company any personal information or personal data, Advisor will (i) comply with all applicable privacy and data protection laws (including, where applicable, the California Consumer Privacy Act, as amended, including by the California Privacy Rights Act (collectively, "CCPA/CPRA")), (ii) use such data only to perform the Services, (iii) not sell, share, retain, use, or disclose such data except as necessary to perform the Services or as otherwise instructed in writing by Company, and (iv) implement and maintain reasonable administrative, technical, and physical safeguards designed to protect such data. However, Advisor will not be so obligated with respect to information that Advisor can document (i) is or enters the public domain through no fault of Advisor, (ii) was known by Advisor without restriction prior to its disclosure by Company, (iii) is rightfully received by Advisor from a third party without breach of any obligation of confidentiality, or (iv) is independently developed by Advisor without use of or reference to Proprietary Information. If Advisor is required by law, regulation, or valid legal process to disclose any Proprietary Information, Advisor will (to the extent legally permitted) provide Company with prompt written notice and reasonably cooperate (at Company's expense) with Company's efforts to seek a protective order or other appropriate remedy, and Advisor will disclose only that portion of the Proprietary Information that Advisor is legally required to disclose. Upon termination or as otherwise requested by Company, Advisor will promptly return to Company (or, at Company's option, securely destroy) all items and copies containing or embodying Proprietary Information, including all copies in electronic form (including in personal devices, email accounts, cloud storage, and backups to the extent reasonably accessible), and upon Company's request, certify in writing such return or destruction. Notwithstanding the foregoing nondisclosure obligations, pursuant to 18 U.S.C. Section 1833(b), Advisor will not be held criminally or civilly liable under any federal or state trade secret law for the disclosure of a trade secret that is made: (1) in confidence to a federal, state, or local government official, either directly or indirectly, or to an attorney, and solely for the purpose of reporting or investigating a suspected violation of law; or (2) in a complaint or other document filed in a lawsuit or other proceeding, if such filing is made under seal.
6
+ 5. **Termination**. Either party may terminate this Agreement at any time, for any reason, by giving the other notice. In addition, if the Company has not requested that the Advisor render any Services for any consecutive 12-month period, the Company may terminate this Agreement upon notice to Advisor. Sections 2 through 7 of this Agreement and any remedies for breach of this Agreement will survive any termination or expiration.
7
+ 6. **Relationship of the Parties; Promotional Rights**. Notwithstanding any provision hereof, for all purposes of this Agreement, each party will be and act as an independent contractor and not as a partner, joint venturer, agent or employee of the other, and neither party has any authority to bind nor will attempt to bind the other to any contract or obligation. Advisor will be solely responsible for all taxes, withholdings and other statutory, regulatory or contractual obligations of any sort, including those applicable to independent contractors, arising from any compensation or benefits provided under this Agreement. Advisor will not be eligible to participate in any of Company's employee benefit plans, fringe benefit programs, group insurance arrangements or similar programs. Company may use and authorize the use of Advisor's name, likeness and biographical information for bona fide business purposes (including identifying Advisor as an advisor to Company and in Company promotional materials and websites), provided such use will not state or imply Advisor's endorsement of any investment performance, securities offering or other regulated activity without Advisor's prior written consent.
8
+ 7. **No Conflicts; Compliance with Policies and Guidelines of Other Institutions.** Advisor represents and warrants that neither this Agreement nor Advisor's performance of the Services will conflict with or violate any obligation of Advisor or any right of any third party, and that Advisor has (and will maintain) all rights, permissions, and authorizations necessary to perform the Services and to grant the rights contemplated by this Agreement. Advisor will not use or disclose in performing the Services any confidential information or proprietary materials of any third party (including any current or former employer or client) and will not bring any third-party materials to Company or incorporate them into any deliverables except with Company's prior written consent. If Advisor is affiliated or in the future becomes affiliated with different entities or institutions, such as colleges or universities/research institutes (each, an "***Institution***") and must fulfill certain obligations to any such Institution pursuant to each Institution's guidelines or policies ("***Institution Policies***"), then Advisor will promptly provide the Company with a written list of any such Institution(s) and will promptly provide the Company copies of any Institution Policies that could reasonably relate to the Services, any Inventions, or any Proprietary Information, and hereby represents and warrants to the Company that Advisor has complied and will continue to comply with any such Institution Policies. If Advisor is required to disclose any inventions or other information relating to the Services to an Institution pursuant to applicable Institution Policies, Advisor will notify the Company in writing reasonably in advance of any such disclosure (and in any event sufficiently in advance for Company to evaluate its rights and options), specifying the nature of such disclosure, and Advisor will not make any such disclosure to the extent it includes Company Proprietary Information without Company's prior written consent.
9
+
10
+ ---
11
+
12
+ This template was prepared and made publicly available by General Legal, PC ("General Legal"). It is provided for general reference purposes only and does not constitute, and should not be construed as, legal advice, or an endorsement or review of any particular transaction in which it is used. Use of this template does not create an attorney-client relationship with General Legal. General Legal has not reviewed, and takes no position on, any modifications made to this document or the deal terms it is used to document.