{"_id":"@deloitte-digital-il/sf-toolkit","_rev":"8-bd4a5eef9457d47be707cc799de60785","name":"@deloitte-digital-il/sf-toolkit","dist-tags":{"latest":"3.0.2"},"versions":{"1.0.0":{"name":"@deloitte-digital-il/sf-toolkit","version":"1.0.0","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","_id":"@deloitte-digital-il/sf-toolkit@1.0.0","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"bin":{"dsf":"bin/cli.js"},"dist":{"shasum":"32f0d4f200497bbfec9e600ecb8f6c063bc72369","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-1.0.0.tgz","fileCount":52,"integrity":"sha512-W+nSENWSGmQqc2kPTMXum9XWihDggTOE90bkmK7o+RlgBCBL+GuHEU4P9Bt36Z8E/deXK8DfY7nuWCGzQ8jDWg==","signatures":[{"sig":"MEQCICP2W8SoMv5/K4/L3vdY6ETk8lYV0U0DJn/euarH2BcKAiBn8nMyitzjn5XMEcN+nKuKcM1le9mcvhFNLSjnlXb6/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162719},"engines":{"node":">=18.0.0"},"gitHead":"57e7a9f1e31be2220fb430aa9e877b726b1b979d","_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"repository":{"url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git","type":"git"},"_npmVersion":"11.12.0","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sf-toolkit_1.0.0_1775464722123_0.9013924938801554","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@deloitte-digital-il/sf-toolkit","version":"1.0.1","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","_id":"@deloitte-digital-il/sf-toolkit@1.0.1","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"bin":{"dsf":"bin/cli.js"},"dist":{"shasum":"5f7be9679954cc4456df6328199a6ab8dfd6efef","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-1.0.1.tgz","fileCount":102,"integrity":"sha512-ncVYMKyjRzyFSimg3bYVys2zhyrpkezSs7hUAuEMwUAwjlgO/clpL64aO8SZDx2qs/XSZKMol+2EZHIbeyhD5Q==","signatures":[{"sig":"MEYCIQCSQRWXNDLLQPIBLervMRCB5KSD7KcJIgdu/uMiJLYVlwIhAIjR1lBuNJWKFzlcpgUa7FvgDT7aMmE/LBskb7keXPJw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353727},"engines":{"node":">=18.0.0"},"gitHead":"1dbfd8e3891544b5fb8580df7a4d7630f8980bda","_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"repository":{"url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git","type":"git"},"_npmVersion":"11.12.1","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sf-toolkit_1.0.1_1776019182083_0.0452059346834186","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@deloitte-digital-il/sf-toolkit","version":"2.0.0","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","_id":"@deloitte-digital-il/sf-toolkit@2.0.0","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"bin":{"dsf":"bin/cli.js"},"dist":{"shasum":"c40da64183fbc115252484e693ddea6b059fbad5","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-2.0.0.tgz","fileCount":8630,"integrity":"sha512-yAkBoV/m5J6EYfK5GndA1jOzelgkUU8vE3oVXtj7Q883Fjb8El4vDOi8PmOEJrkoBIl70ZAKcYhCM8DUBn72JQ==","signatures":[{"sig":"MEQCIDj8KYLebabxGEckvzaWzMmokf3ffL2wk9A2fGpLHxFIAiAgky7IFSa84delDvr9YuSnxz5aYFMl1MzUCZZYLwJyQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67659118},"engines":{"node":">=18.0.0"},"gitHead":"00b9350f6d5bd0f4fc271f4331fbd43da9586615","_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"repository":{"url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git","type":"git"},"_npmVersion":"11.12.1","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sf-toolkit_2.0.0_1776117332404_0.617365442708623","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@deloitte-digital-il/sf-toolkit","version":"2.0.1","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","_id":"@deloitte-digital-il/sf-toolkit@2.0.1","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"bin":{"dsf":"bin/cli.js"},"dist":{"shasum":"380c5ff29f1142ad997caffc08530116e5580f95","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-2.0.1.tgz","fileCount":8631,"integrity":"sha512-nQmw7HUSEyvBR69TeUHvFhkQV1OljFPtGl4mpx6Q9bpNvnNe/uJW0tDktuvW7zYKruhEJC8iYBfkZrmtzE+wCQ==","signatures":[{"sig":"MEUCIQDM7uQX1AXpgITsQKc6fkOGYDPdfhq1V8IWKDyL31zKbQIgUDAS6GXWOiu0yjJdzVGuRPFm/IxFaXkm+73BBQIZFwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67664412},"engines":{"node":">=18.0.0"},"gitHead":"4626bcbfc73ee9c8cb80de762b4192f2585d3d81","_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"repository":{"url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git","type":"git"},"_npmVersion":"11.12.1","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sf-toolkit_2.0.1_1776168115949_0.36132165057461685","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@deloitte-digital-il/sf-toolkit","version":"2.0.2","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","_id":"@deloitte-digital-il/sf-toolkit@2.0.2","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"bin":{"dsf":"bin/cli.js"},"dist":{"shasum":"37b424d6f50cbdc7fd0137ed258bcf57941db1e1","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-2.0.2.tgz","fileCount":8812,"integrity":"sha512-ffiH2KJLkJqKO2QfuFTzOvXAi4+XqlN+NM/RsPBiyzh79Dw6hEOpNojLtZuWqSBDqqREJbB6K5CuRbUIoEquDA==","signatures":[{"sig":"MEQCIG7plNX5Lc9mgM2FTGR2BAAL4DEouEkNhhrZElkX3Gj/AiAC10IJ6u3sIfKDT48r10qFqu004iyXN9s1K6VTY9ONiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69037121},"engines":{"node":">=18.0.0"},"gitHead":"e00f365f8fda16b18f8436ec20a05a465dba4999","_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"repository":{"url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git","type":"git"},"_npmVersion":"11.12.1","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sf-toolkit_2.0.2_1777458717143_0.31470211812185456","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@deloitte-digital-il/sf-toolkit","version":"3.0.0","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","_id":"@deloitte-digital-il/sf-toolkit@3.0.0","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"bin":{"dsf":"bin/cli.js"},"dist":{"shasum":"2207e93443c79ea20f7a7b347216f04a6f5ea63e","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-3.0.0.tgz","fileCount":243,"integrity":"sha512-Sl7SJ7TzU3tM9dOsm4HMW+SHWbVajmWvhhRaUiQxbMmt7cPTzPtfSZ6n4BbcdRjD/JzwK8shuQAJb24eFQU47Q==","signatures":[{"sig":"MEYCIQC150ffjcNqWtJ9mqC6c+dM4um16Xd7z4hmXQT0UpDmJAIhAOiYHCtepb6U587zPGnnyVB130Hi25RdPKF7dtv7DoJ7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988983},"engines":{"node":">=18.0.0"},"gitHead":"0db4b2368c180cbf7b4bc1ef9f1180f79d1501ea","scripts":{"test":"npm run lint:spawn && npm run lint:stdm && npm run test:health-checks && npm run test:lint-stdm && npm run test:migrate && npm run test:structural","lint:stdm":"node scripts/lint-stdm.js","lint:spawn":"node scripts/lint-spawn.js","test:migrate":"node --test __tests__/migrate-registry.test.js __tests__/migrate-runner.test.js __tests__/migrate-v2-to-v3.test.js __tests__/migrate-rollback.test.js __tests__/migrate-partial-recovery.test.js __tests__/migrate-noop-minor-patch.test.js __tests__/migrate-review-fixes.test.js __tests__/migrate-legacy-agent-node.test.js","test:lint-stdm":"node --test __tests__/lint-stdm.test.js","test:structural":"node scripts/run-structural-tests.js","test:health-checks":"node --test __tests__/health-checks.test.js","test:migrate:coverage":"node scripts/migrations/check-coverage.js"},"_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"repository":{"url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git","type":"git"},"_npmVersion":"11.12.1","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","directories":{},"_nodeVersion":"24.9.0","dependencies":{"cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.4"},"_npmOperationalInternal":{"tmp":"tmp/sf-toolkit_3.0.0_1778136925347_0.6470245786049511","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@deloitte-digital-il/sf-toolkit","version":"3.0.1","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","_id":"@deloitte-digital-il/sf-toolkit@3.0.1","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"bin":{"dsf":"bin/cli.js"},"dist":{"shasum":"d6c95576f2dd4705f7595851f76933edee3892ba","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-3.0.1.tgz","fileCount":243,"integrity":"sha512-wzIuuzJ7Gychjvt6V4kNCcEfV1Hx2dEmm9O/PIAVyzZVmcgNrteOzgPckCGAGYuJi0jtDzRZB+LHCJuY04oR0Q==","signatures":[{"sig":"MEQCIEfByePDlLj/EGk/y2YgoHIcQJIDeE78inGrcPL4I7p3AiAPjia7+HCCu9ZKSewAbQ2WsxcJoX2YJAzGP0gFIaeHcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":989667},"engines":{"node":">=18.0.0"},"gitHead":"db8b9a23c8043e41b979b79ee0c7198d96bd0975","scripts":{"test":"npm run lint:spawn && npm run lint:stdm && npm run test:health-checks && npm run test:lint-stdm && npm run test:migrate && npm run test:structural","lint:stdm":"node scripts/lint-stdm.js","lint:spawn":"node scripts/lint-spawn.js","test:migrate":"node --test __tests__/migrate-registry.test.js __tests__/migrate-runner.test.js __tests__/migrate-v2-to-v3.test.js __tests__/migrate-rollback.test.js __tests__/migrate-partial-recovery.test.js __tests__/migrate-noop-minor-patch.test.js __tests__/migrate-review-fixes.test.js __tests__/migrate-legacy-agent-node.test.js","test:lint-stdm":"node --test __tests__/lint-stdm.test.js","test:structural":"node scripts/run-structural-tests.js","test:health-checks":"node --test __tests__/health-checks.test.js","test:migrate:coverage":"node scripts/migrations/check-coverage.js"},"_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"repository":{"url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git","type":"git"},"_npmVersion":"11.12.1","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","directories":{},"_nodeVersion":"24.9.0","dependencies":{"cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.4"},"_npmOperationalInternal":{"tmp":"tmp/sf-toolkit_3.0.1_1778138157756_0.1635981117901728","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@deloitte-digital-il/sf-toolkit","version":"3.0.2","description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","bin":{"dsf":"bin/cli.js"},"publishConfig":{"access":"public"},"keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","repository":{"type":"git","url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git"},"engines":{"node":">=18.0.0"},"dependencies":{"cross-spawn":"^7.0.6"},"scripts":{"lint:spawn":"node scripts/lint-spawn.js","lint:stdm":"node scripts/lint-stdm.js","test:health-checks":"node --test __tests__/health-checks.test.js","test:lint-stdm":"node --test __tests__/lint-stdm.test.js","test:migrate":"node --test __tests__/migrate-registry.test.js __tests__/migrate-runner.test.js __tests__/migrate-v2-to-v3.test.js __tests__/migrate-rollback.test.js __tests__/migrate-partial-recovery.test.js __tests__/migrate-noop-minor-patch.test.js __tests__/migrate-review-fixes.test.js __tests__/migrate-legacy-agent-node.test.js","test:migrate:coverage":"node scripts/migrations/check-coverage.js","test:structural":"node scripts/run-structural-tests.js","test":"npm run lint:spawn && npm run lint:stdm && npm run test:health-checks && npm run test:lint-stdm && npm run test:migrate && npm run test:structural"},"devDependencies":{"yaml":"^2.8.4"},"gitHead":"43fd3ab42d3296f19e2d6845c5078c356bf57dd7","_id":"@deloitte-digital-il/sf-toolkit@3.0.2","bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","_nodeVersion":"24.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-PPQfGjKxwrsT4KDXA7LkkQiqECZBOwV7yVY8/e2NnoBZmU8wpqMxp7+FlmRQJ2TmKuvaPj3GpNWhv/yl0lnU6A==","shasum":"bd8c461d5c81dbc90a3795826c24abccefdd3153","tarball":"https://registry.npmjs.org/@deloitte-digital-il/sf-toolkit/-/sf-toolkit-3.0.2.tgz","fileCount":243,"unpackedSize":990319,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCrCcV2+naK+rSLjher0GmLMiq9iyBPQABoVc/qOrVXFgIgGqTi/c/q/EjJCQ9OYrqcOnPD6vaZlLDWzr6OHeZPI60="}]},"_npmUser":{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"},"directories":{},"maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sf-toolkit_3.0.2_1778146175888_0.3710336324690515"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-06T08:38:41.983Z","modified":"2026-05-07T09:29:36.277Z","1.0.0":"2026-04-06T08:38:42.263Z","1.0.1":"2026-04-12T18:39:42.230Z","2.0.0":"2026-04-13T21:55:32.994Z","2.0.1":"2026-04-14T12:01:56.519Z","2.0.2":"2026-04-29T10:31:57.742Z","3.0.0":"2026-05-07T06:55:25.502Z","3.0.1":"2026-05-07T07:15:57.973Z","3.0.2":"2026-05-07T09:29:36.149Z"},"bugs":{"url":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit/issues"},"author":{"name":"Deloitte Digital Israel"},"license":"UNLICENSED","homepage":"https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit#readme","keywords":["salesforce","claude-code","deloitte","agents","skills","agentforce","data-cloud"],"repository":{"type":"git","url":"git+https://github.com/Deloitte-US-Consulting/deloitte-sf-toolkit.git"},"description":"Deloitte Salesforce Practice Toolkit — Agents, skills, and templates for Claude Code","maintainers":[{"name":"okinarti-deloitte","email":"okinarti@deloitte.co.il"}],"readme":"# Deloitte Salesforce Practice Toolkit\n\nA shared knowledge base and agent framework for Salesforce implementations, powered by Claude Code.\n\n## What This Is\n\nAn npm-installable toolkit that provides AI-powered Salesforce implementation assistance:\n\n- **5 Specialized Agents** — architect, developer, QA, code reviewer, communications\n- **21 Skills** — firm standards, cloud-specific patterns, quality checklists, review workflows\n- **Templates** — solution designs (standard, Agentforce, Data Cloud), task specs, runbooks, project scaffolds\n- **Learning Loop** — automated capture, admin-gated promotion of lessons learned\n- **Checklists** — security review, go-live readiness\n\n## Requirements\n\n- [Node.js](https://nodejs.org/) 18+\n- [Claude Code](https://claude.ai/claude-code) CLI installed and authenticated\n\n## Installation\n\n### Recommended (all platforms)\n\n```bash\nnpm install -g @deloitte-digital-il/sf-toolkit\ndsf install\n```\n\n### Clone-and-run\n\nIf you have cloned this repo and want to install without going through npm,\nuse the platform-native script:\n\n```bash\n# macOS / Linux\n./install.sh\n\n# Windows (PowerShell 5.1 or 7)\npowershell -ExecutionPolicy Bypass -Scope Process -File .\\install.ps1\n```\n\nThe `-ExecutionPolicy Bypass -Scope Process` flag affects only the current\nPowerShell process; it does not change machine policy. No admin elevation\nrequired.\n\nThis installs:\n- **5 agents** to `~/.claude/agents/` (available in all Claude Code sessions)\n- **6 slash commands** to `~/.claude/commands/`\n- **Skills** symlinked to `~/.claude/skills/deloitte-sf-toolkit/`\n- **Templates**, **learnings**, and **checklists** symlinked for access\n- **~/.claude/CLAUDE.md** updated with toolkit reference\n\nAfter installing, restart Claude Code (or start a new session).\n\n## CLI Commands\n\n```bash\ndsf install      # Install/update agents, skills, and commands\ndsf uninstall    # Remove all toolkit components from Claude Code\ndsf update       # Check for and install the latest version from npm\ndsf status       # Show installation status, versions, and component health\ndsf todos        # List TODO items that need your firm's standards\ndsf migrate      # Migrate a v2.0.x project to v3.0.0 (backup + idempotent)\ndsf help         # Show help\n```\n\n### Migrating a v2.0.x project to v3.0.0\n\nRun `dsf migrate` from the project root. The runner snapshots every declared path to `.dsf/migrations/<timestamp>/backup/` **before** any mutation, then applies the v2_to_v3 transform. The migration is idempotent (safe to re-run) and reversible (`dsf migrate --rollback <timestamp>`).\n\nFor the per-transform breakdown, the backup tree shape, the `--rollback` and `--list-backups` flags, and troubleshooting, see [`docs/migrations/v2-to-v3.md`](docs/migrations/v2-to-v3.md).\n\n### Updating\n\n```bash\ndsf update       # Downloads latest version from npm\ndsf install      # Applies the update (copies agents/commands, refreshes symlinks)\n```\n\n### Uninstalling\n\n```bash\ndsf uninstall                                      # Remove toolkit from Claude Code\nnpm uninstall -g @deloitte-digital-il/sf-toolkit   # Remove npm package\n```\n\n## Quick Start\n\n```bash\nclaude /dsf:scaffold                              # 1. create a project\ncd <project> && claude                            # 2. start a session in it\n/dsf:discovery \"case management with SLA tracking\" # 3. define requirements (prints SPEC-NNN)\n/dsf:design <SPEC-id from step 3>                 # 4. design + decompose (prints TASK-NNN per task)\n/dsf:develop <TASK-id from step 4>                # 5. build + review\n/dsf:qa <TASK-id>                                 # 6. test\n/dsf:release                                      # 7. pre-deployment checks\n```\n\nFor Agentforce projects, `/dsf:design` runs the canonical `sf agent generate agent-spec` DX flow when `Agentforce ∈ clouds_in_scope`. `/dsf:develop` runs `sf agent create` to materialize the bundle; `/dsf:qa` runs `sf agent test create` + `sf agent test run`.\n\nOther commands: `/dsf:review`, `/dsf:document`, `/dsf:status`, `/dsf:diagnose`, `/dsf:estimate`, `/dsf:eval`. Run `dsf guide` for the full workflow.\n\n## Agents\n\n| Agent | Model | Purpose |\n|-------|-------|---------|\n| **sf-architect** | Opus | Solution design, architecture decisions, ADRs, task specs |\n| **sf-developer** | Sonnet | Code generation from task specs (Apex, LWC, Flows) |\n| **sf-qa** | Sonnet | Adversarial testing, defect reporting, test planning |\n| **sf-reviewer** | Opus | Code review, standards enforcement, design conformance |\n| **sf-comms** | Sonnet | Client emails, status updates, meeting summaries |\n\nAgents auto-delegate based on context, or you can invoke them explicitly. They communicate through structured files in the project repo (`docs/architecture/`, `docs/qa/`, `docs/reviews/`, `docs/learnings/inbox/`).\n\n## Skills\n\nSkills provide domain-specific knowledge that agents read before performing work.\n\n| Category | Skills |\n|----------|--------|\n| **Foundation** | firm-standards, architecture-decisions, project-scaffolding, session-management |\n| **Development** | apex-development, lwc-development, flow-development, integration-development, soql, connected-apps |\n| **DevOps** | deployment |\n| **Clouds** | **Agentforce triad** — `developing-agentforce/` (AScript reference, agent-spec YAML, action authoring), `testing-agentforce/` (test specs, preview, async test runs, CI), `observing-agentforce/` (STDM, traces, Observe → Reproduce → Improve loop) — plus data-cloud, marketing-cloud |\n| **Quality** | code-review, testing, debugging, documentation, diagrams, permissions-audit, architecture-review, review-and-revise, iterative-feedback |\n\nEach skill has a TLDR for quick relevance assessment and a `references/` directory with distilled knowledge docs (anti-patterns, patterns, checklists).\n\n## Project Structure\n\n```\n├── CLAUDE.md                  # Master config — standards, skill routing\n├── claude-progress.md         # Cross-session progress tracking (per project)\n├── .claude/\n│   ├── agents/                # Agent definitions (5 agents)\n│   └── commands/              # Slash commands (scaffold, document, etc.)\n├── skills/                    # Domain knowledge (SKILL.md + references/)\n│   ├── foundation/            # Standards, architecture, scaffolding\n│   ├── development/           # Apex, LWC, Flow, integration, SOQL\n│   ├── devops/                # Deployment\n│   ├── clouds/                # Agentforce, Data Cloud, Marketing Cloud\n│   └── quality/               # Review, testing, debugging, docs\n├── templates/                 # Document and project templates\n│   ├── solution-design/       # Standard, Agentforce, Data Cloud\n│   ├── task-spec/             # Standard, Agentforce\n│   ├── runbook/               # Standard runbook\n│   └── project-scaffold/      # SFDX project files\n├── mcp-configs/               # Per-agent MCP server configurations\n├── learnings/                 # Lessons learned system\n│   ├── promoted/              # Admin-approved lessons (read by agents)\n│   └── review-queue/          # Entries awaiting admin review\n├── checklists/                # Go-live, security review\n├── evals/                     # Agent evaluation framework\n│   ├── tasks/                 # Eval scenarios per agent\n│   ├── graders/               # Grading rubrics\n│   └── results/               # Eval run results\n├── bin/                       # CLI (dsf command)\n└── package.json               # npm package definition\n```\n\n## Salesforce DX MCP Integration\n\nAgents interact with Salesforce orgs through the [Salesforce DX MCP server](https://github.com/salesforcecli/mcp) (`@salesforce/mcp`).\n\n**Prerequisites:**\n1. Install the Salesforce CLI: https://developer.salesforce.com/tools/salesforcecli\n2. Authenticate your org: `sf org login web --alias my-org`\n3. Run `/dsf:scaffold` — it generates `.mcp.json` with the correct DX MCP configuration\n\n**What agents can do via MCP:**\n- Retrieve and inspect metadata (`retrieve_metadata`)\n- Query org data (`run_soql_query`)\n- Run Apex tests (`run_apex_test`) and agent tests (`run_agent_test`)\n- Deploy to sandboxes (`deploy_metadata`) — never directly to production\n- Run static code analysis (`run_code_analyzer`)\n\n**Configuration:**\n- Project-level `.mcp.json` is the canonical runtime config\n- Role-specific toolset examples are in `mcp-configs/` (not active at runtime)\n\n## Customization\n\nAfter installing, run `dsf todos` to see placeholders that need your firm's actual standards:\n\n- Trigger framework interface code\n- Service/Selector examples\n- Error handling patterns\n- TestDataFactory\n- API version numbers\n\nEdit `CLAUDE.md` and `skills/foundation/firm-standards/SKILL.md` to customize.\n\n### Adding a New Skill\n\n1. Create a directory in `skills/[category]/` (kebab-case)\n2. Add `SKILL.md` with YAML frontmatter (`name` + `description` required)\n3. Include a `> **TLDR:**` line after frontmatter for quick relevance assessment\n4. Add `references/` for detailed knowledge docs\n5. Update the skill routing table in `CLAUDE.md`\n\n### Reviewing Learnings\n\nAgents write learning entries to `docs/learnings/inbox/` during their work. Review and promote them:\n\n```\nclaude /review-learnings\n```\n\n## License\n\nUNLICENSED — Deloitte Confidential\n","readmeFilename":"README.md"}