@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.
- package/.claude-plugin/agents.manifest.json +476 -0
- package/.claude-plugin/plugin.json +42 -0
- package/README.md +44 -2
- package/agents/community/.gitkeep +0 -0
- package/agents/engineering/cto.md +87 -0
- package/agents/engineering/design/ddd-architect.md +95 -0
- package/agents/engineering/discovery/agent-finder.md +214 -0
- package/agents/engineering/discovery/functional-discovery.md +182 -0
- package/agents/engineering/infra/infra-security.md +151 -0
- package/agents/engineering/infra/platform-strategist.md +109 -0
- package/agents/engineering/infra/terraform-architect.md +171 -0
- package/agents/engineering/prompt-engineer.md +37 -0
- package/agents/engineering/research/best-practices-researcher.md +115 -0
- package/agents/engineering/research/framework-docs-researcher.md +93 -0
- package/agents/engineering/research/git-history-analyzer.md +53 -0
- package/agents/engineering/research/learnings-researcher.md +285 -0
- package/agents/engineering/research/repo-research-analyst.md +118 -0
- package/agents/engineering/review/agent-native-reviewer.md +279 -0
- package/agents/engineering/review/architecture-strategist.md +61 -0
- package/agents/engineering/review/code-quality-analyst.md +92 -0
- package/agents/engineering/review/code-simplicity-reviewer.md +109 -0
- package/agents/engineering/review/data-integrity-guardian.md +82 -0
- package/agents/engineering/review/data-migration-expert.md +98 -0
- package/agents/engineering/review/deployment-verification-agent.md +183 -0
- package/agents/engineering/review/dhh-rails-reviewer.md +46 -0
- package/agents/engineering/review/kieran-rails-reviewer.md +87 -0
- package/agents/engineering/review/legacy-code-expert.md +55 -0
- package/agents/engineering/review/observability-coverage-reviewer.md +147 -0
- package/agents/engineering/review/pattern-recognition-specialist.md +59 -0
- package/agents/engineering/review/performance-oracle.md +130 -0
- package/agents/engineering/review/security-sentinel.md +167 -0
- package/agents/engineering/review/semgrep-sast.md +36 -0
- package/agents/engineering/review/test-design-reviewer.md +150 -0
- package/agents/engineering/review/user-impact-reviewer.md +70 -0
- package/agents/engineering/workflow/pr-comment-resolver.md +69 -0
- package/agents/finance/budget-analyst.md +29 -0
- package/agents/finance/cfo.md +44 -0
- package/agents/finance/financial-reporter.md +30 -0
- package/agents/finance/revenue-analyst.md +30 -0
- package/agents/legal/clo.md +115 -0
- package/agents/legal/legal-compliance-auditor.md +110 -0
- package/agents/legal/legal-document-generator.md +134 -0
- package/agents/marketing/analytics-analyst.md +25 -0
- package/agents/marketing/brand-architect.md +181 -0
- package/agents/marketing/cmo.md +76 -0
- package/agents/marketing/conversion-optimizer.md +19 -0
- package/agents/marketing/copywriter.md +20 -0
- package/agents/marketing/fact-checker.md +70 -0
- package/agents/marketing/growth-strategist.md +145 -0
- package/agents/marketing/paid-media-strategist.md +28 -0
- package/agents/marketing/pricing-strategist.md +17 -0
- package/agents/marketing/programmatic-seo-specialist.md +25 -0
- package/agents/marketing/retention-strategist.md +23 -0
- package/agents/marketing/seo-aeo-analyst.md +164 -0
- package/agents/operations/coo.md +50 -0
- package/agents/operations/ops-advisor.md +78 -0
- package/agents/operations/ops-provisioner.md +101 -0
- package/agents/operations/ops-research.md +52 -0
- package/agents/operations/service-automator.md +278 -0
- package/agents/product/business-validator.md +206 -0
- package/agents/product/competitive-intelligence.md +89 -0
- package/agents/product/cpo.md +63 -0
- package/agents/product/design/ux-design-lead.md +209 -0
- package/agents/product/spec-flow-analyzer.md +122 -0
- package/agents/sales/cro.md +44 -0
- package/agents/sales/deal-architect.md +29 -0
- package/agents/sales/outbound-strategist.md +29 -0
- package/agents/sales/pipeline-analyst.md +29 -0
- package/agents/support/cco.md +48 -0
- package/agents/support/community-manager.md +570 -0
- package/agents/support/ticket-triage.md +70 -0
- package/bin/soleur-opencode.js +29 -0
- package/commands/go.md +659 -0
- package/commands/help.md +273 -0
- package/commands/sync.md +977 -0
- package/commands/version.md +103 -0
- package/hooks/antigravity-hooks.json +84 -0
- package/hooks/antigravity-session-start.sh +15 -0
- package/hooks/bare-root-cwd-guard.sh +131 -0
- package/hooks/browser-snapshot-credential-guard.sh +200 -0
- package/hooks/codex-session-start.sh +9 -0
- package/hooks/compaction-state.sh +525 -0
- package/hooks/destructive-command-guard.sh +1387 -0
- package/hooks/devin-session-start.sh +90 -0
- package/hooks/ext-filter-detect.sh +171 -0
- package/hooks/hooks.json +133 -0
- package/hooks/lib/hook-tool-kind.sh +24 -0
- package/hooks/lib/log-rotation.sh +176 -0
- package/hooks/lib/shell-argv.pl +576 -0
- package/hooks/memory-backstop.sh +1114 -0
- package/hooks/operator-stage-approval.sh +391 -0
- package/hooks/stop-hook.sh +367 -0
- package/hooks/unkept-promise-hook.sh +383 -0
- package/hooks/version-banner.sh +127 -0
- package/hooks/welcome-hook.sh +50 -0
- package/install.js +108 -0
- package/lib/agent-registry.ts +154 -0
- package/lib/c4-canonical-cli.mjs +34 -0
- package/lib/c4-canonical.mjs +46 -0
- package/lib/c4-from-components.ts +554 -0
- package/lib/go-routing.ts +81 -0
- package/lib/grok-inspect-contract.ts +311 -0
- package/lib/harness-model-map.ts +101 -0
- package/lib/harness-parity.ts +726 -0
- package/lib/harness-tool-map.ts +180 -0
- package/lib/harness.ts +716 -0
- package/lib/heartbeat-live-reconcile.ts +1153 -0
- package/lib/heartbeat-manifest.ts +342 -0
- package/lib/kb-coverage.ts +252 -0
- package/lib/pr-merge-poll.ts +103 -0
- package/lib/workflow-fidelity.ts +388 -0
- package/opencode/INSTRUCTIONS.md +152 -0
- package/opencode/agents/engineering/cto.md +10 -0
- package/opencode/agents/engineering/design/ddd-architect.md +10 -0
- package/opencode/agents/engineering/discovery/agent-finder.md +10 -0
- package/opencode/agents/engineering/discovery/functional-discovery.md +10 -0
- package/opencode/agents/engineering/infra/infra-security.md +10 -0
- package/opencode/agents/engineering/infra/platform-strategist.md +10 -0
- package/opencode/agents/engineering/infra/terraform-architect.md +10 -0
- package/opencode/agents/engineering/prompt-engineer.md +10 -0
- package/opencode/agents/engineering/research/best-practices-researcher.md +10 -0
- package/opencode/agents/engineering/research/framework-docs-researcher.md +10 -0
- package/opencode/agents/engineering/research/git-history-analyzer.md +10 -0
- package/opencode/agents/engineering/research/learnings-researcher.md +10 -0
- package/opencode/agents/engineering/research/repo-research-analyst.md +10 -0
- package/opencode/agents/engineering/review/agent-native-reviewer.md +10 -0
- package/opencode/agents/engineering/review/architecture-strategist.md +10 -0
- package/opencode/agents/engineering/review/code-quality-analyst.md +10 -0
- package/opencode/agents/engineering/review/code-simplicity-reviewer.md +10 -0
- package/opencode/agents/engineering/review/data-integrity-guardian.md +10 -0
- package/opencode/agents/engineering/review/data-migration-expert.md +10 -0
- package/opencode/agents/engineering/review/deployment-verification-agent.md +10 -0
- package/opencode/agents/engineering/review/dhh-rails-reviewer.md +10 -0
- package/opencode/agents/engineering/review/kieran-rails-reviewer.md +10 -0
- package/opencode/agents/engineering/review/legacy-code-expert.md +10 -0
- package/opencode/agents/engineering/review/observability-coverage-reviewer.md +10 -0
- package/opencode/agents/engineering/review/pattern-recognition-specialist.md +10 -0
- package/opencode/agents/engineering/review/performance-oracle.md +10 -0
- package/opencode/agents/engineering/review/security-sentinel.md +10 -0
- package/opencode/agents/engineering/review/semgrep-sast.md +10 -0
- package/opencode/agents/engineering/review/test-design-reviewer.md +10 -0
- package/opencode/agents/engineering/review/user-impact-reviewer.md +10 -0
- package/opencode/agents/engineering/workflow/pr-comment-resolver.md +10 -0
- package/opencode/agents/finance/budget-analyst.md +10 -0
- package/opencode/agents/finance/cfo.md +10 -0
- package/opencode/agents/finance/financial-reporter.md +10 -0
- package/opencode/agents/finance/revenue-analyst.md +10 -0
- package/opencode/agents/legal/clo.md +10 -0
- package/opencode/agents/legal/legal-compliance-auditor.md +10 -0
- package/opencode/agents/legal/legal-document-generator.md +10 -0
- package/opencode/agents/marketing/analytics-analyst.md +10 -0
- package/opencode/agents/marketing/brand-architect.md +10 -0
- package/opencode/agents/marketing/cmo.md +10 -0
- package/opencode/agents/marketing/conversion-optimizer.md +10 -0
- package/opencode/agents/marketing/copywriter.md +10 -0
- package/opencode/agents/marketing/fact-checker.md +10 -0
- package/opencode/agents/marketing/growth-strategist.md +10 -0
- package/opencode/agents/marketing/paid-media-strategist.md +10 -0
- package/opencode/agents/marketing/pricing-strategist.md +10 -0
- package/opencode/agents/marketing/programmatic-seo-specialist.md +10 -0
- package/opencode/agents/marketing/retention-strategist.md +10 -0
- package/opencode/agents/marketing/seo-aeo-analyst.md +10 -0
- package/opencode/agents/operations/coo.md +10 -0
- package/opencode/agents/operations/ops-advisor.md +10 -0
- package/opencode/agents/operations/ops-provisioner.md +10 -0
- package/opencode/agents/operations/ops-research.md +10 -0
- package/opencode/agents/operations/service-automator.md +10 -0
- package/opencode/agents/product/business-validator.md +10 -0
- package/opencode/agents/product/competitive-intelligence.md +10 -0
- package/opencode/agents/product/cpo.md +10 -0
- package/opencode/agents/product/design/ux-design-lead.md +10 -0
- package/opencode/agents/product/spec-flow-analyzer.md +10 -0
- package/opencode/agents/sales/cro.md +10 -0
- package/opencode/agents/sales/deal-architect.md +10 -0
- package/opencode/agents/sales/outbound-strategist.md +10 -0
- package/opencode/agents/sales/pipeline-analyst.md +10 -0
- package/opencode/agents/support/cco.md +10 -0
- package/opencode/agents/support/community-manager.md +10 -0
- package/opencode/agents/support/ticket-triage.md +10 -0
- package/opencode/commands/go.md +10 -0
- package/opencode/commands/help.md +10 -0
- package/opencode/commands/sync.md +10 -0
- package/opencode/commands/version.md +11 -0
- package/opencode/opencode.json +8 -0
- package/opencode/plugin.ts +493 -0
- package/package.json +36 -4
- package/scripts/admin-merge-ready.sh +545 -0
- package/scripts/admin-merge-ready.test.sh +753 -0
- package/scripts/affected-tests.sh +908 -0
- package/scripts/affected-tests.test.sh +1797 -0
- package/scripts/alpha-metrics.sh +78 -0
- package/scripts/alpha-metrics.test.sh +115 -0
- package/scripts/ancestor-signal-helpers.baseline.txt +16 -0
- package/scripts/audit-flag-flip.sh +107 -0
- package/scripts/check-red-on-main.sh +316 -0
- package/scripts/ci-head-verdict.sh +363 -0
- package/scripts/cloud-detect.sh +193 -0
- package/scripts/delegation-verify.sh +657 -0
- package/scripts/delegation-verify.test.sh +1424 -0
- package/scripts/deploy-arm.sh +475 -0
- package/scripts/domain-model-drift.sh +419 -0
- package/scripts/emit-decision.sh +144 -0
- package/scripts/emit-decision.test.sh +144 -0
- package/scripts/ext-filter-divergence-corpus.txt +15 -0
- package/scripts/ext-filter-divergence.sh +189 -0
- package/scripts/generate-c4-from-components.ts +442 -0
- package/scripts/grok-fidelity-gate.sh +68 -0
- package/scripts/grok-pre-push-gate.sh +232 -0
- package/scripts/harness-discovery-smoke.ts +906 -0
- package/scripts/harness-parity-census.ts +92 -0
- package/scripts/inngest-luks-alert-armed-probe.ts +29 -0
- package/scripts/install-opencode-adapter.ts +520 -0
- package/scripts/lib/affected-tests/common.sh +365 -0
- package/scripts/lib/affected-tests/go.sh +157 -0
- package/scripts/lib/affected-tests/js.sh +188 -0
- package/scripts/lib/affected-tests/nx-turbo.sh +98 -0
- package/scripts/lib/affected-tests/python.sh +185 -0
- package/scripts/lib/context-sanitize.sh +49 -0
- package/scripts/lib/domain-model-lib.sh +180 -0
- package/scripts/lib/ext-filter-grammar.tsv +34 -0
- package/scripts/lib/operator-script.sh +1236 -0
- package/scripts/lib/proc.sh +580 -0
- package/scripts/lib/session-state.sh +748 -0
- package/scripts/lib/tmp-classify.sh +843 -0
- package/scripts/lib/wrapper-boundary.sh +47 -0
- package/scripts/lint-ratchet.py +1547 -0
- package/scripts/monitor-pr-checks.sh +441 -0
- package/scripts/pipeline-tally.sh +756 -0
- package/scripts/pipeline-tally.test.sh +740 -0
- package/scripts/plugin-version.sh +528 -0
- package/scripts/precommit-guard.sh +113 -0
- package/scripts/precommit-guard.test.sh +254 -0
- package/scripts/reconcile-live-heartbeats.ts +705 -0
- package/scripts/render-c4-model.sh +217 -0
- package/scripts/resolve-git-root.sh +55 -0
- package/scripts/resolve-regenerable-conflicts.sh +363 -0
- package/scripts/resolve-regenerable-conflicts.test.sh +780 -0
- package/scripts/ruff-requirements.txt +22 -0
- package/scripts/run-in-pid-namespace.sh +98 -0
- package/scripts/run-in-pid-namespace.test.sh +290 -0
- package/scripts/scan-ancestor-signal-helpers.py +556 -0
- package/scripts/scan-ancestor-signal-helpers.test.sh +670 -0
- package/scripts/setup-ralph-loop.sh +238 -0
- package/scripts/sync-cursor-name-map.ts +316 -0
- package/scripts/sync-grok-agent-compat.ts +188 -0
- package/scripts/sync-npm-package.ts +178 -0
- package/scripts/sync-opencode-adapter.ts +479 -0
- package/scripts/sync-pr-behind.sh +534 -0
- package/scripts/sync-pr-behind.test.sh +252 -0
- package/scripts/taste-profile-update.sh +180 -0
- package/scripts/taste-profile-update.test.sh +167 -0
- package/scripts/write-budget-marker.sh +23 -0
- package/scripts/write-kb-coverage.ts +113 -0
- package/skills/admin-ip-refresh/SKILL.md +81 -0
- package/skills/admin-ip-refresh/references/admin-ip-refresh-procedure.md +201 -0
- package/skills/agent-browser/SKILL.md +698 -0
- package/skills/agent-browser/scripts/playwright-mcp-profile-slot.sh +304 -0
- package/skills/agent-browser/scripts/playwright-mcp-redact-proxy.py +964 -0
- package/skills/agent-browser/scripts/redact-a11y-snapshot.py +443 -0
- package/skills/agent-browser/test/fixtures/capture-playwright-mcp-fixtures.py +217 -0
- package/skills/agent-browser/test/fixtures/fake-passthrough-proxy.py +24 -0
- package/skills/agent-browser/test/fixtures/fake-playwright-mcp.py +131 -0
- package/skills/agent-browser/test/fixtures/make-proxy-mutant.py +48 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/dialog-link-injection.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/empty-content.json +5 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-and-result.json +4 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-code-bool.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-code-string.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-message-tree.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-no-data.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-string.json +4 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-with-data.json +9 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/evaluate-escaped-object.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/invalid-utf8.json +4 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/link-result.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/list-two-results.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/meta-in-result.json +13 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/no-content.json +5 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/quoted-key.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/resource-block.json +18 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/result-and-method.json +11 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/result-string.json +3 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/run-code-escaped-one-row.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/run-code-escaped.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/structured-content.json +13 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/tools-list-no-tools.json +5 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/tree-no-credential.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/two-text-blocks.json +14 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/unparsable-line.json +3 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/value-contains-brace.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/value-contains-link-substring.json +10 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/close.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/evaluate.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/find.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/framing.json +6 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/initialize.json +14 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/navigate-link.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/navigate.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/roots-list-request.json +5 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/screenshot.json +17 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-filename.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-meta-json.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-meta-raw.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/tools-list.json +827 -0
- package/skills/agent-browser/test/fixtures/proxy-session-driver.py +138 -0
- package/skills/agent-browser/test/fixtures/session-facts.py +102 -0
- package/skills/agent-browser/test/playwright-mcp-lifetime.test.sh +1620 -0
- package/skills/agent-browser/test/playwright-mcp-redact-proxy.test.sh +1599 -0
- package/skills/agent-browser/test/redact-a11y-snapshot.test.sh +527 -0
- package/skills/agent-native-architecture/SKILL.md +479 -0
- package/skills/agent-native-architecture/references/action-parity-discipline.md +430 -0
- package/skills/agent-native-architecture/references/agent-execution-patterns.md +483 -0
- package/skills/agent-native-architecture/references/agent-native-testing.md +605 -0
- package/skills/agent-native-architecture/references/architecture-patterns.md +493 -0
- package/skills/agent-native-architecture/references/dynamic-context-injection.md +358 -0
- package/skills/agent-native-architecture/references/files-universal-interface.md +314 -0
- package/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +381 -0
- package/skills/agent-native-architecture/references/mcp-tool-design.md +524 -0
- package/skills/agent-native-architecture/references/mobile-patterns.md +897 -0
- package/skills/agent-native-architecture/references/product-implications.md +478 -0
- package/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +342 -0
- package/skills/agent-native-architecture/references/self-modification.md +294 -0
- package/skills/agent-native-architecture/references/shared-workspace-architecture.md +700 -0
- package/skills/agent-native-architecture/references/system-prompt-design.md +263 -0
- package/skills/agent-native-audit/SKILL.md +300 -0
- package/skills/agent-native-audit/workflows/agent-native-audit.workflow.js +423 -0
- package/skills/andrew-kane-gem-writer/SKILL.md +189 -0
- package/skills/andrew-kane-gem-writer/references/database-adapters.md +231 -0
- package/skills/andrew-kane-gem-writer/references/module-organization.md +121 -0
- package/skills/andrew-kane-gem-writer/references/rails-integration.md +183 -0
- package/skills/andrew-kane-gem-writer/references/resources.md +126 -0
- package/skills/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
- package/skills/architecture/SKILL.md +436 -0
- package/skills/architecture/references/adr-template.md +154 -0
- package/skills/architecture/references/likec4-reference.md +136 -0
- package/skills/architecture/references/nfr-reference.md +126 -0
- package/skills/archive-kb/SKILL.md +86 -0
- package/skills/archive-kb/scripts/archive-kb.sh +300 -0
- package/skills/archive-kb/test/archive-kb-partial-run.test.sh +276 -0
- package/skills/atdd-developer/SKILL.md +65 -0
- package/skills/brainstorm/SKILL.md +701 -0
- package/skills/brainstorm/references/brainstorm-brand-workshop.md +153 -0
- package/skills/brainstorm/references/brainstorm-domain-config.md +63 -0
- package/skills/brainstorm/references/brainstorm-validation-workshop.md +65 -0
- package/skills/brainstorm/references/ui-surface-terms.md +42 -0
- package/skills/brainstorm-techniques/SKILL.md +231 -0
- package/skills/brainstorm-techniques/references/decision-principles.md +150 -0
- package/skills/brainstorm-techniques/references/phase-boundaries.md +103 -0
- package/skills/brainstorm-techniques/references/standing-delegation.md +407 -0
- package/skills/brainstorm-techniques/references/technical-ruling-delegation.md +174 -0
- package/skills/campaign-calendar/SKILL.md +145 -0
- package/skills/cf-token-scope/SKILL.md +164 -0
- package/skills/cf-token-scope/references/widen-playbook.md +114 -0
- package/skills/cf-token-scope/scripts/cf-token-scope.sh +253 -0
- package/skills/changelog/SKILL.md +142 -0
- package/skills/code-to-prd/SKILL.md +66 -0
- package/skills/code-to-prd/references/banner-template.md +12 -0
- package/skills/code-to-prd/references/prd-template.md +41 -0
- package/skills/code-to-prd/scripts/code-to-prd.sh +634 -0
- package/skills/code-to-prd/test/code-to-prd.test.sh +447 -0
- package/skills/code-to-prd/test/fixture/.env.example +7 -0
- package/skills/code-to-prd/test/fixture/app/about/page.tsx +11 -0
- package/skills/code-to-prd/test/fixture/app/api/health/route.ts +10 -0
- package/skills/code-to-prd/test/fixture/app/page.tsx +14 -0
- package/skills/code-to-prd/test/fixture/next.config.mjs +3 -0
- package/skills/code-to-prd/test/fixture/package.json +6 -0
- package/skills/cohort-status/SKILL.md +62 -0
- package/skills/community/SKILL.md +210 -0
- package/skills/community/scripts/bsky-community.sh +644 -0
- package/skills/community/scripts/bsky-setup.sh +631 -0
- package/skills/community/scripts/community-router.sh +93 -0
- package/skills/community/scripts/discord-community.sh +487 -0
- package/skills/community/scripts/discord-setup.sh +784 -0
- package/skills/community/scripts/github-community.sh +706 -0
- package/skills/community/scripts/hn-community.sh +233 -0
- package/skills/community/scripts/lib/hmac-sha1-b64.sh +126 -0
- package/skills/community/scripts/linkedin-community.sh +750 -0
- package/skills/community/scripts/linkedin-setup.sh +758 -0
- package/skills/community/scripts/x-community.sh +890 -0
- package/skills/community/scripts/x-setup.sh +713 -0
- package/skills/community/test/community-argv.test.sh +2922 -0
- package/skills/community/test/github-community.test.sh +981 -0
- package/skills/competitive-analysis/SKILL.md +69 -0
- package/skills/competitive-analysis/references/peer-plugin-audit.md +218 -0
- package/skills/compound/SKILL.md +673 -0
- package/skills/compound/scripts/token-efficiency-report.sh +334 -0
- package/skills/compound/test/phase-16.test.sh +379 -0
- package/skills/compound-capture/SKILL.md +791 -0
- package/skills/compound-capture/assets/critical-pattern-template.md +37 -0
- package/skills/compound-capture/assets/resolution-template.md +116 -0
- package/skills/compound-capture/references/yaml-schema.md +67 -0
- package/skills/compound-capture/schema.yaml +181 -0
- package/skills/constraint-scaffold/SKILL.md +175 -0
- package/skills/constraint-scaffold/references/boundary-readme.template +35 -0
- package/skills/constraint-scaffold/references/constraint-gates-workflow.template +69 -0
- package/skills/constraint-scaffold/references/depcruise-config.template +230 -0
- package/skills/constraint-scaffold/references/fix-constraints-stage-a.template +240 -0
- package/skills/constraint-scaffold/references/fix-constraints-stage-b.template +313 -0
- package/skills/constraint-scaffold/references/shared-runner.template +135 -0
- package/skills/constraint-scaffold/scripts/constraint-scaffold.sh +589 -0
- package/skills/constraint-scaffold/test/bite-proof.test.sh +1338 -0
- package/skills/constraint-scaffold/test/boundary.test.sh +734 -0
- package/skills/constraint-scaffold/test/emit-fix-constraints.test.sh +193 -0
- package/skills/constraint-scaffold/test/generator.test.sh +93 -0
- package/skills/constraint-scaffold/test/parity.test.sh +285 -0
- package/skills/content-writer/SKILL.md +242 -0
- package/skills/content-writer/scripts/blog-jargon-scan.sh +42 -0
- package/skills/cron-delete/SKILL.md +56 -0
- package/skills/cron-list/SKILL.md +54 -0
- package/skills/deepen-plan/SKILL.md +937 -0
- package/skills/deepen-plan/workflows/deepen-plan.workflow.js +488 -0
- package/skills/deploy/SKILL.md +115 -0
- package/skills/deploy/references/hetzner-setup.md +65 -0
- package/skills/deploy/scripts/deploy.sh +37 -0
- package/skills/deploy-docs/SKILL.md +95 -0
- package/skills/dhh-rails-style/SKILL.md +203 -0
- package/skills/dhh-rails-style/references/architecture.md +717 -0
- package/skills/dhh-rails-style/references/controllers.md +323 -0
- package/skills/dhh-rails-style/references/frontend.md +556 -0
- package/skills/dhh-rails-style/references/gems.md +316 -0
- package/skills/dhh-rails-style/references/models.md +388 -0
- package/skills/dhh-rails-style/references/testing.md +354 -0
- package/skills/discord-content/SKILL.md +126 -0
- package/skills/docs-site/SKILL.md +214 -0
- package/skills/drain-labeled-backlog/SKILL.md +203 -0
- package/skills/drain-labeled-backlog/scripts/group-by-area.sh +208 -0
- package/skills/drain-labeled-backlog/workflows/drain-labeled-backlog.workflow.js +433 -0
- package/skills/drain-prs/SKILL.md +142 -0
- package/skills/drain-prs/scripts/triage-prs.sh +192 -0
- package/skills/drain-prs/test/argv-ceiling.test.sh +183 -0
- package/skills/dspy-ruby/SKILL.md +634 -0
- package/skills/dspy-ruby/assets/config-template.rb +359 -0
- package/skills/dspy-ruby/assets/module-template.rb +326 -0
- package/skills/dspy-ruby/assets/signature-template.rb +143 -0
- package/skills/dspy-ruby/references/core-concepts.md +268 -0
- package/skills/dspy-ruby/references/optimization.md +623 -0
- package/skills/dspy-ruby/references/providers.md +335 -0
- package/skills/eval-harness/README.md +194 -0
- package/skills/eval-harness/SKILL.md +157 -0
- package/skills/eval-harness/enums/go-routes.json +13 -0
- package/skills/eval-harness/enums/incident-threshold.json +5 -0
- package/skills/eval-harness/enums/lane.json +5 -0
- package/skills/eval-harness/enums/tool-selection.json +20 -0
- package/skills/eval-harness/enums/triage-levels.json +5 -0
- package/skills/eval-harness/gated-skills.json +34 -0
- package/skills/eval-harness/models.generated.json +5 -0
- package/skills/eval-harness/promptfooconfig-go-routing.yaml +35 -0
- package/skills/eval-harness/promptfooconfig-incident-threshold.yaml +32 -0
- package/skills/eval-harness/promptfooconfig-lane-inference.yaml +33 -0
- package/skills/eval-harness/promptfooconfig-ticket-triage.yaml +34 -0
- package/skills/eval-harness/promptfooconfig-tool-selection.yaml +33 -0
- package/skills/eval-harness/prompts/go-baseline.txt +6 -0
- package/skills/eval-harness/prompts/go-skill.txt +21 -0
- package/skills/eval-harness/prompts/incident-threshold-baseline.txt +6 -0
- package/skills/eval-harness/prompts/incident-threshold-skill.txt +12 -0
- package/skills/eval-harness/prompts/lane-inference-baseline.txt +6 -0
- package/skills/eval-harness/prompts/lane-inference-skill.txt +15 -0
- package/skills/eval-harness/prompts/tool-selection-baseline.txt +19 -0
- package/skills/eval-harness/prompts/tool-selection-skill.txt +22 -0
- package/skills/eval-harness/prompts/triage-baseline.txt +7 -0
- package/skills/eval-harness/prompts/triage-skill.txt +10 -0
- package/skills/eval-harness/scripts/eval-gate.cjs +318 -0
- package/skills/eval-harness/scripts/extract-block.cjs +87 -0
- package/skills/eval-harness/scripts/gate-classification.cjs +28 -0
- package/skills/eval-harness/scripts/gen-models.sh +41 -0
- package/skills/eval-harness/scripts/gen-skill-prompt.cjs +177 -0
- package/skills/eval-harness/scripts/measure-classification.cjs +30 -0
- package/skills/eval-harness/scripts/parse-label.cjs +93 -0
- package/skills/eval-harness/scripts/verdict.cjs +132 -0
- package/skills/eval-harness/tasks/go-routing.jsonl +8 -0
- package/skills/eval-harness/tasks/incident-threshold.jsonl +7 -0
- package/skills/eval-harness/tasks/lane-inference.jsonl +7 -0
- package/skills/eval-harness/tasks/ticket-triage.jsonl +6 -0
- package/skills/eval-harness/tasks/tool-selection.jsonl +15 -0
- package/skills/eval-harness/test/eval-gate.test.sh +132 -0
- package/skills/eval-harness/test/extract-block.test.sh +87 -0
- package/skills/eval-harness/test/gate-classification.test.sh +77 -0
- package/skills/eval-harness/test/gen-models.test.sh +75 -0
- package/skills/eval-harness/test/measure-classification.test.sh +74 -0
- package/skills/eval-harness/test/parse-label.test.sh +129 -0
- package/skills/eval-harness/test/registry-completeness.test.sh +109 -0
- package/skills/eval-harness/test/verdict.test.sh +123 -0
- package/skills/every-style-editor/SKILL.md +142 -0
- package/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
- package/skills/feature-tweet/SKILL.md +199 -0
- package/skills/feature-video/SKILL.md +412 -0
- package/skills/feature-video/scripts/check_deps.sh +281 -0
- package/skills/file-todos/SKILL.md +267 -0
- package/skills/file-todos/assets/todo-template.md +166 -0
- package/skills/fix-issue/SKILL.md +278 -0
- package/skills/fix-issue/references/agent-authored-exclusion.md +118 -0
- package/skills/fix-issue/references/exclude-label-jq-snippet.md +96 -0
- package/skills/flag-bootstrap/SETUP.md +142 -0
- package/skills/flag-create/SKILL.md +145 -0
- package/skills/flag-create/scripts/create.sh +273 -0
- package/skills/flag-delete/SKILL.md +167 -0
- package/skills/flag-delete/scripts/delete.sh +288 -0
- package/skills/flag-list/SKILL.md +99 -0
- package/skills/flag-list/scripts/list.sh +275 -0
- package/skills/flag-set-role/SKILL.md +229 -0
- package/skills/flag-set-role/scripts/flip.sh +774 -0
- package/skills/frontend-anti-slop/SKILL.md +106 -0
- package/skills/frontend-anti-slop/references/anti-patterns.md +199 -0
- package/skills/frontend-anti-slop/references/slop-rules.md +65 -0
- package/skills/frontend-anti-slop/scripts/tier1-scan.ts +525 -0
- package/skills/frontend-design/SKILL.md +77 -0
- package/skills/gdpr-gate/NOTICE +136 -0
- package/skills/gdpr-gate/SKILL.md +341 -0
- package/skills/gdpr-gate/references/fields.md +160 -0
- package/skills/gdpr-gate/references/layers/api-layer.md +355 -0
- package/skills/gdpr-gate/references/layers/auth-sessions.md +290 -0
- package/skills/gdpr-gate/references/layers/data-in-transit.md +331 -0
- package/skills/gdpr-gate/references/layers/data-lifecycle.md +341 -0
- package/skills/gdpr-gate/references/layers/frontend.md +249 -0
- package/skills/gdpr-gate/references/layers/testing-seeding.md +256 -0
- package/skills/gdpr-gate/references/leakage-vectors.md +248 -0
- package/skills/gdpr-gate/references/legacy/legal-consent-v1-prose.md +48 -0
- package/skills/gdpr-gate/references/legal-consent.md +140 -0
- package/skills/gdpr-gate/references/non-negotiables.md +60 -0
- package/skills/gdpr-gate/scripts/gdpr-gate.sh +271 -0
- package/skills/gdpr-gate/scripts/notice-frontmatter.sh +337 -0
- package/skills/gdpr-gate/scripts/path-denylist.txt +39 -0
- package/skills/gdpr-gate/scripts/repo-scan.sh +158 -0
- package/skills/gdpr-gate/scripts/vendor-drift-classify.sh +120 -0
- package/skills/gdpr-gate/scripts/vendor-pin-integrity.sh +237 -0
- package/skills/gemini-imagegen/SKILL.md +283 -0
- package/skills/gemini-imagegen/requirements.txt +5 -0
- package/skills/gemini-imagegen/scripts/_error_handling.py +146 -0
- package/skills/gemini-imagegen/scripts/compose_images.py +150 -0
- package/skills/gemini-imagegen/scripts/edit_image.py +137 -0
- package/skills/gemini-imagegen/scripts/gemini_images.py +256 -0
- package/skills/gemini-imagegen/scripts/generate_image.py +147 -0
- package/skills/gemini-imagegen/scripts/multi_turn_chat.py +223 -0
- package/skills/gemini-imagegen/scripts/test_error_handling.py +179 -0
- package/skills/git-worktree/SKILL.md +534 -0
- package/skills/git-worktree/scripts/git-repo-readiness-diag.sh +98 -0
- package/skills/git-worktree/scripts/worktree-manager.sh +4773 -0
- package/skills/git-worktree/test/create-from-origin-main.test.sh +116 -0
- package/skills/git-worktree/test/lease-protects-active.test.sh +1056 -0
- package/skills/git-worktree/test/no-repo-fail-loud.test.sh +88 -0
- package/skills/git-worktree/test/orphan-reaper-honest-count.test.sh +379 -0
- package/skills/git-worktree/test/reap-archive-persistence.test.sh +725 -0
- package/skills/git-worktree/test/stale-lock-sweep.test.sh +176 -0
- package/skills/go/SKILL.md +54 -0
- package/skills/growth/SKILL.md +164 -0
- package/skills/harvest-debt/SKILL.md +78 -0
- package/skills/harvest-debt/scripts/harvest-debt.sh +114 -0
- package/skills/heal-skill/SKILL.md +173 -0
- package/skills/help/SKILL.md +46 -0
- package/skills/incident/NOTICE +39 -0
- package/skills/incident/SKILL.md +395 -0
- package/skills/incident/scripts/dry-run.sh +448 -0
- package/skills/incident/scripts/redact-engine.py +412 -0
- package/skills/incident/scripts/redact-sentinel.sh +44 -0
- package/skills/incident/templates/pir.md +139 -0
- package/skills/incident/test/fixtures/dry-run-incident.json +26 -0
- package/skills/incident/test/fixtures/dry-run-secret-leak.json +26 -0
- package/skills/incident/test/fixtures/legacy-bash-scanner.sh +82 -0
- package/skills/incident/test/fixtures/positive-corpus.md +87 -0
- package/skills/incident/test/redact-sentinel.test.sh +1420 -0
- package/skills/invoice/SKILL.md +206 -0
- package/skills/kb-glossary/SKILL.md +71 -0
- package/skills/kb-glossary/references/glossary-format.md +111 -0
- package/skills/kb-glossary/references/rejected-request-register.md +115 -0
- package/skills/kb-search/SKILL.md +276 -0
- package/skills/kb-search/scripts/kb-search-cache.sh +123 -0
- package/skills/legal-audit/SKILL.md +161 -0
- package/skills/legal-generate/NOTICE +242 -0
- package/skills/legal-generate/SKILL.md +244 -0
- package/skills/legal-generate/references/templates/advisor-agreement/template.md +12 -0
- package/skills/legal-generate/references/templates/business-associate-agreement/template.md +112 -0
- package/skills/legal-generate/references/templates/cookie-notice/template.md +82 -0
- package/skills/legal-generate/references/templates/dpa-global/template.md +439 -0
- package/skills/legal-generate/references/templates/dpa-us/template.md +222 -0
- package/skills/legal-generate/references/templates/employee-offer-letter/template.md +75 -0
- package/skills/legal-generate/references/templates/master-services-agreement/template.md +252 -0
- package/skills/legal-generate/references/templates/mutual-nda/template.md +66 -0
- package/skills/legal-generate/references/templates/one-way-nda/template.md +38 -0
- package/skills/legal-generate/references/templates/privacy-policy-gdpr/template.md +427 -0
- package/skills/legal-generate/references/templates/privacy-policy-us/template.md +313 -0
- package/skills/legal-generate/references/templates/terms-of-use/template.md +75 -0
- package/skills/legal-generate/scripts/strip-vendor-credit.sh +96 -0
- package/skills/linear-fetch/SKILL.md +247 -0
- package/skills/linear-fetch/scripts/assert-no-linear-telemetry.sh +66 -0
- package/skills/linear-fetch/scripts/redact-linear-urls.sh +51 -0
- package/skills/linear-fetch/scripts/render-caller-template.sh +36 -0
- package/skills/linear-fetch/test/assert-no-linear-telemetry.test.sh +113 -0
- package/skills/linear-fetch/test/parity.test.sh +112 -0
- package/skills/linear-fetch/test/persist-safe-integration.test.sh +191 -0
- package/skills/linear-fetch/test/redact-linear-urls.test.sh +226 -0
- package/skills/merge-pr/SKILL.md +668 -0
- package/skills/model-launch-review/SKILL.md +255 -0
- package/skills/model-launch-review/scripts/audit-models.sh +501 -0
- package/skills/one-shot/SKILL.md +316 -0
- package/skills/one-shot/references/token-discipline.md +74 -0
- package/skills/operator-bootstrap/SKILL.md +412 -0
- package/skills/operator-bootstrap/template.sh +439 -0
- package/skills/operator-digest/SKILL.md +287 -0
- package/skills/operator-digest/assets/operator-digest.workflow.yml +175 -0
- package/skills/operator-digest/scripts/digest-scrub.sh +119 -0
- package/skills/operator-digest/scripts/provision-operator-digest-repo.sh +147 -0
- package/skills/operator-rephrase/SKILL.md +98 -0
- package/skills/pencil-setup/SKILL.md +201 -0
- package/skills/pencil-setup/scripts/check_deps.sh +556 -0
- package/skills/pencil-setup/scripts/copy_adapter.sh +80 -0
- package/skills/pencil-setup/scripts/package-lock.json +1172 -0
- package/skills/pencil-setup/scripts/package.json +14 -0
- package/skills/pencil-setup/scripts/pencil-error-enrichment.mjs +21 -0
- package/skills/pencil-setup/scripts/pencil-mcp-adapter.mjs +733 -0
- package/skills/pencil-setup/scripts/pencil-response-classify.mjs +38 -0
- package/skills/pencil-setup/scripts/pencil-save-gate.mjs +26 -0
- package/skills/pencil-setup/scripts/sanitize-filename.mjs +25 -0
- package/skills/plan/SKILL.md +1140 -0
- package/skills/plan/references/differential-migration-testing.md +185 -0
- package/skills/plan/references/plan-community-discovery.md +42 -0
- package/skills/plan/references/plan-founder-check.md +137 -0
- package/skills/plan/references/plan-functional-overlap.md +25 -0
- package/skills/plan/references/plan-host-fanout.md +51 -0
- package/skills/plan/references/plan-issue-templates.md +779 -0
- package/skills/plan/references/plan-network-outage-checklist.md +131 -0
- package/skills/plan/references/plan-scope-check.md +126 -0
- package/skills/plan/references/plan-sharp-edges.md +325 -0
- package/skills/plan/references/plan-signoff-lifecycle.md +12 -0
- package/skills/plan/references/webapp-cwv-observability.md +143 -0
- package/skills/plan-review/SKILL.md +91 -0
- package/skills/plan-review/lib/named-panel.mjs +58 -0
- package/skills/plan-review/workflows/plan-review.workflow.js +477 -0
- package/skills/postmerge/SKILL.md +642 -0
- package/skills/postmerge/references/deploy-status-debugging.md +138 -0
- package/skills/postmerge/references/graceful-degradation.md +20 -0
- package/skills/postmerge/references/sentry-error-count-delta.md +137 -0
- package/skills/preflight/SKILL.md +1553 -0
- package/skills/preflight/references/check-13-founder-check.md +286 -0
- package/skills/preflight/scripts/founder-check.py +1640 -0
- package/skills/preflight/scripts/parse-form-a.awk +107 -0
- package/skills/preflight/scripts/probe-verb-gate.sh +108 -0
- package/skills/product-roadmap/SKILL.md +357 -0
- package/skills/product-roadmap/scripts/roadmap-reconcile.sh +327 -0
- package/skills/provision-cloudflare/SKILL.md +67 -0
- package/skills/provision-cloudflare/scripts/provision-cloudflare.sh +271 -0
- package/skills/provision-doppler/SKILL.md +58 -0
- package/skills/provision-doppler/scripts/provision-doppler.sh +358 -0
- package/skills/provision-github/SKILL.md +59 -0
- package/skills/provision-github/scripts/provision-github.sh +300 -0
- package/skills/provision-hetzner/SKILL.md +76 -0
- package/skills/provision-hetzner/scripts/provision-hetzner.sh +262 -0
- package/skills/provision-hetzner/test/fixture/knowledge-base/legal/tenant-dpa-register.md +26 -0
- package/skills/provision-hetzner/test/fixture/provision-hetzner-dry-run.golden +34 -0
- package/skills/provision-hetzner/test/provision-hetzner-characterization.test.sh +227 -0
- package/skills/qa/SKILL.md +263 -0
- package/skills/qa/references/browser-preflight.md +22 -0
- package/skills/questionnaire-generate/SKILL.md +328 -0
- package/skills/questionnaire-generate/references/questionnaire.template +60 -0
- package/skills/rclone/SKILL.md +162 -0
- package/skills/rclone/scripts/check_setup.sh +63 -0
- package/skills/release-announce/SKILL.md +65 -0
- package/skills/release-docs/SKILL.md +92 -0
- package/skills/reproduce-bug/SKILL.md +358 -0
- package/skills/resolve-debt/SKILL.md +85 -0
- package/skills/resolve-debt/scripts/resolve-debt.py +584 -0
- package/skills/resolve-parallel/SKILL.md +45 -0
- package/skills/resolve-parallel/workflows/resolve-parallel.workflow.js +415 -0
- package/skills/resolve-pr-parallel/SKILL.md +68 -0
- package/skills/resolve-pr-parallel/workflows/resolve-pr-parallel.workflow.js +419 -0
- package/skills/resolve-todo-parallel/SKILL.md +57 -0
- package/skills/resolve-todo-parallel/workflows/resolve-todo-parallel.workflow.js +398 -0
- package/skills/review/SKILL.md +1621 -0
- package/skills/review/references/anti-slop-scanner-hook.md +40 -0
- package/skills/review/references/defect-classes-migrations.md +9 -0
- package/skills/review/references/generated-input-oracle-surfaces.md +15 -0
- package/skills/review/references/review-e2e-testing.md +116 -0
- package/skills/review/references/review-todo-structure.md +165 -0
- package/skills/review/references/risk-tier-and-fix-rounds.md +95 -0
- package/skills/review/references/semgrep-custom-rules.yaml +174 -0
- package/skills/review/references/ultrathink-phases.md +98 -0
- package/skills/review/references/wfs.md +6 -0
- package/skills/review/scripts/emit-review-trailer.sh +499 -0
- package/skills/review/scripts/ensure-semgrep.sh +99 -0
- package/skills/review/scripts/fix-round-seats.sh +197 -0
- package/skills/review/test/emit-review-trailer.test.sh +387 -0
- package/skills/review/test/ensure-semgrep.test.sh +111 -0
- package/skills/review/test/fix-round-seats.test.sh +237 -0
- package/skills/review/workflows/README.md +147 -0
- package/skills/review/workflows/review.workflow.js +667 -0
- package/skills/schedule/SKILL.md +796 -0
- package/skills/seo-aeo/SKILL.md +139 -0
- package/skills/seo-aeo/scripts/validate-csp.sh +233 -0
- package/skills/seo-aeo/scripts/validate-seo.sh +262 -0
- package/skills/ship/SKILL.md +3022 -0
- package/skills/ship/references/adr-ordinal-collision.md +47 -0
- package/skills/ship/references/affected-gate-contract.md +115 -0
- package/skills/ship/references/ci-run-diagnosis.md +29 -0
- package/skills/ship/references/ci-workflow-authoring.md +68 -0
- package/skills/ship/references/counsel-review-clo-attestation.md +38 -0
- package/skills/ship/references/cto-ruling-armed-push.md +5 -0
- package/skills/ship/references/decision-challenges-render.md +71 -0
- package/skills/ship/references/detached-battery-verdict.md +13 -0
- package/skills/ship/references/feature-tweet-draft.md +42 -0
- package/skills/ship/references/followthrough-issue-body-template.md +47 -0
- package/skills/ship/references/followthrough-stub-template.sh +92 -0
- package/skills/ship/references/merge-queue-dequeue.md +39 -0
- package/skills/ship/references/operator-holds.md +149 -0
- package/skills/ship/references/pipeline-tally-render.md +43 -0
- package/skills/ship/references/pr-overlap.md +153 -0
- package/skills/ship/references/queue-mode.md +7 -0
- package/skills/ship/references/ready-run-wait.md +36 -0
- package/skills/ship/references/red-on-main-quarantine.md +110 -0
- package/skills/ship/references/register-update-pr-pattern.md +88 -0
- package/skills/ship/references/settle-then-admin-merge.md +130 -0
- package/skills/ship/references/supabase-column-probe.md +13 -0
- package/skills/ship/scripts/auto-close-scan.sh +76 -0
- package/skills/ship/scripts/battery-owed.sh +403 -0
- package/skills/ship/scripts/hold-gate-eval.sh +410 -0
- package/skills/ship/scripts/net-issue-flow.sh +665 -0
- package/skills/ship/scripts/pr-overlap-preflight.sh +483 -0
- package/skills/ship/scripts/ship-pir-action-items-gate.sh +246 -0
- package/skills/ship/scripts/technical-ruling-gate.sh +444 -0
- package/skills/skill-creator/SKILL.md +299 -0
- package/skills/skill-creator/references/api-security.md +248 -0
- package/skills/skill-creator/references/authoring-levers.md +110 -0
- package/skills/skill-creator/references/be-clear-and-direct.md +587 -0
- package/skills/skill-creator/references/best-practices.md +431 -0
- package/skills/skill-creator/references/common-patterns.md +639 -0
- package/skills/skill-creator/references/core-principles.md +193 -0
- package/skills/skill-creator/references/executable-code.md +188 -0
- package/skills/skill-creator/references/iteration-and-testing.md +509 -0
- package/skills/skill-creator/references/official-spec.md +193 -0
- package/skills/skill-creator/references/recommended-structure.md +180 -0
- package/skills/skill-creator/references/skill-structure.md +396 -0
- package/skills/skill-creator/references/using-scripts.md +122 -0
- package/skills/skill-creator/references/using-templates.md +120 -0
- package/skills/skill-creator/references/workflows-and-validation.md +541 -0
- package/skills/skill-creator/scripts/init_skill.py +322 -0
- package/skills/skill-creator/scripts/package_skill.py +110 -0
- package/skills/skill-creator/scripts/quick_validate.py +64 -0
- package/skills/skill-creator/templates/router-skill.md +73 -0
- package/skills/skill-creator/templates/simple-skill.md +34 -0
- package/skills/skill-creator/workflows/add-reference.md +96 -0
- package/skills/skill-creator/workflows/add-script.md +104 -0
- package/skills/skill-creator/workflows/add-template.md +83 -0
- package/skills/skill-creator/workflows/add-workflow.md +128 -0
- package/skills/skill-creator/workflows/audit-skill.md +159 -0
- package/skills/skill-creator/workflows/create-domain-expertise-skill.md +623 -0
- package/skills/skill-creator/workflows/create-new-skill.md +207 -0
- package/skills/skill-creator/workflows/get-guidance.md +134 -0
- package/skills/skill-creator/workflows/upgrade-to-router.md +170 -0
- package/skills/skill-creator/workflows/verify-skill.md +226 -0
- package/skills/skill-security-scan/SKILL.md +145 -0
- package/skills/skill-security-scan/references/disclaimer.md +21 -0
- package/skills/skill-security-scan/references/first-party-allowlist.yaml +38 -0
- package/skills/skill-security-scan/references/override-artifact-schema.json +68 -0
- package/skills/skill-security-scan/references/override-mechanism.md +171 -0
- package/skills/skill-security-scan/references/redirect-domains.yaml +27 -0
- package/skills/skill-security-scan/references/regex-patterns.md +136 -0
- package/skills/skill-security-scan/references/rules/code-exec.yaml +70 -0
- package/skills/skill-security-scan/references/rules/filesystem-boundary.yaml +29 -0
- package/skills/skill-security-scan/references/rules/manifest.yaml +44 -0
- package/skills/skill-security-scan/references/rules/supply-chain.yaml +36 -0
- package/skills/skill-security-scan/references/scan-meta-schema.json +63 -0
- package/skills/skill-security-scan/references/test-fixtures/clean-soleur-style.skill.md +23 -0
- package/skills/skill-security-scan/references/test-fixtures/clean-third-party.skill.md +26 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-codeexec.skill.md +23 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-curl-pipe-bash.skill.md +69 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-prompt-injection.skill.md +17 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-telemetry-beacon.skill.md +23 -0
- package/skills/skill-security-scan/references/typosquat-targets.yaml +65 -0
- package/skills/skill-security-scan/scripts/check-codeexec.sh +41 -0
- package/skills/skill-security-scan/scripts/check-filesystem-boundary.sh +19 -0
- package/skills/skill-security-scan/scripts/check-prompt-injection.sh +95 -0
- package/skills/skill-security-scan/scripts/check-supply-chain.sh +219 -0
- package/skills/skill-security-scan/scripts/check-telemetry-surface.sh +126 -0
- package/skills/skill-security-scan/scripts/lib.sh +197 -0
- package/skills/skill-security-scan/scripts/parse-override.sh +231 -0
- package/skills/skill-security-scan/scripts/run-scan.sh +342 -0
- package/skills/skill-security-scan/scripts/run-self-test.sh +95 -0
- package/skills/skill-security-scan/test/argv-ceiling.test.sh +180 -0
- package/skills/skill-security-scan/test/meta-dir-reap.test.sh +411 -0
- package/skills/skill-security-scan/test/parse-override.test.sh +607 -0
- package/skills/skill-security-scan/test/redact-pii-ghs-shape.test.sh +251 -0
- package/skills/social-distribute/SKILL.md +485 -0
- package/skills/spec-templates/SKILL.md +274 -0
- package/skills/sync/SKILL.md +49 -0
- package/skills/test-browser/SKILL.md +464 -0
- package/skills/test-browser/references/feature-map.md +161 -0
- package/skills/test-fix-loop/SKILL.md +159 -0
- package/skills/test-fix-loop/references/determinism-checklist.md +154 -0
- package/skills/triage/SKILL.md +402 -0
- package/skills/trigger-cron/SKILL.md +136 -0
- package/skills/trigger-cron/scripts/trigger.sh +198 -0
- package/skills/user-set-role/SKILL.md +147 -0
- package/skills/user-set-role/scripts/set-role.sh +218 -0
- package/skills/user-story-writer/SKILL.md +77 -0
- package/skills/ux-audit/SKILL.md +251 -0
- package/skills/ux-audit/references/finding.schema.json +62 -0
- package/skills/ux-audit/references/route-list.yaml +95 -0
- package/skills/ux-audit/scripts/bot-fixture.ts +270 -0
- package/skills/ux-audit/scripts/bot-signin.ts +135 -0
- package/skills/ux-audit/scripts/dedup-hash.ts +46 -0
- package/skills/work/SKILL.md +1479 -0
- package/skills/work/references/end-of-work-resume.md +7 -0
- package/skills/work/references/hook-test-main-cwd.md +24 -0
- package/skills/work/references/key-principles.md +83 -0
- package/skills/work/references/property-testing.md +122 -0
- package/skills/work/references/sql-security-definer-rpc-scaffold.sql +78 -0
- package/skills/work/references/work-agent-teams.md +97 -0
- package/skills/work/references/work-lifecycle-parallel.md +147 -0
- package/skills/work/references/work-lockfile-bumps.md +97 -0
- package/skills/work/references/work-scratch-sandboxes.md +212 -0
- package/skills/work/references/work-subagent-fanout.md +61 -0
- package/skills/work/references/work-test-harness-sharp-edges.md +73 -0
- 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.
|