{"_id":"@arii/boomtick-mcp","_rev":"6-1456e8b1d764ea602bf51182202d85ac","name":"@arii/boomtick-mcp","dist-tags":{"latest":"0.4.1"},"versions":{"0.3.3":{"name":"@arii/boomtick-mcp","version":"0.3.3","_id":"@arii/boomtick-mcp@0.3.3","maintainers":[{"name":"anders.ariel","email":"anders.ariel@gmail.com"}],"bin":{"boomtick-mcp":"dist/index.js"},"dist":{"shasum":"a920cd55af5255b1423055f6b8233b1c8d55cc1b","tarball":"https://registry.npmjs.org/@arii/boomtick-mcp/-/boomtick-mcp-0.3.3.tgz","fileCount":187,"integrity":"sha512-iUgc1Epld3cMRVk5OHApFarKORU7+jixKHjK5fF7+GDS6khJMLusOQe76kdHHB5YB215CEa3MUfwut0lL62rJA==","signatures":[{"sig":"MEUCICzdSksO0BkWp3O/4PBxy0kG7RTqMpGPJ0hIEhtsObIwAiEA8MYg/6IE+3d4RMtI5B3ybjVsR2N+A8T/tGLbWFtpfeA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390138},"main":"dist/index.js","type":"module","engines":{"node":"24.x","pnpm":"10.28.2"},"scripts":{"lint":"tsx scripts/sync-contracts.ts && tsc --noEmit","test":"tsx scripts/sync-contracts.ts && vitest run","build":"tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts","start":"node dist/index.js","watch":"tsc -w","run-evals":"node dist/evals/run-evals.js","type-check":"tsx scripts/sync-contracts.ts && tsc","release:major":"pnpm version major","release:minor":"pnpm version minor","release:patch":"pnpm version patch","sync-contracts":"tsx scripts/sync-contracts.ts","sync:mcp-schemas":"tsx scripts/sync-mcp-schemas.ts"},"_npmUser":{"name":"anders.ariel","email":"anders.ariel@gmail.com"},"_npmVersion":"12.0.1","description":"Boomtick MCP Guide: PR Rescue + Merge Conflict Agent","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"shx":"^0.4.0","tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^5.7.3","@types/node":"^20.17.15","json-schema-to-zod":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/boomtick-mcp_0.3.3_1784585590215_0.5195801197460517","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@arii/boomtick-mcp","version":"0.3.5","_id":"@arii/boomtick-mcp@0.3.5","maintainers":[{"name":"anders.ariel","email":"anders.ariel@gmail.com"}],"homepage":"https://github.com/arii/boomtick#readme","bugs":{"url":"https://github.com/arii/boomtick/issues"},"bin":{"boomtick-mcp":"dist/index.js"},"dist":{"shasum":"0a0f30dd5f6fcb1c9d228b48fbf5d8ae2ae4d685","tarball":"https://registry.npmjs.org/@arii/boomtick-mcp/-/boomtick-mcp-0.3.5.tgz","fileCount":186,"integrity":"sha512-EzLUCb9GQ3UtIExZ9zePpCd2dX1VGGC0EjSiQFdNohHfdd8zshQjbJ8tNo2G48PGLJmYdz8Dalxf4/MJL6PA4g==","signatures":[{"sig":"MEYCIQCINhRGhY6I3Gu5CkdAlsW4mpUmX8IPaanKu9EhzHtXewIhAKTGYv/Zl93mDog475SOsma7kHbf/QKdgDElFILJ3VF2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arii%2fboomtick-mcp@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":398248},"main":"dist/index.js","type":"module","_from":"file:arii-boomtick-mcp-0.3.5.tgz","engines":{"node":"24.x","pnpm":"10.28.2"},"scripts":{"lint":"tsx scripts/sync-contracts.ts && tsc --noEmit","test":"tsx scripts/sync-contracts.ts && vitest run","build":"tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts","start":"node dist/index.js","watch":"tsc -w","run-evals":"node dist/evals/run-evals.js","type-check":"tsx scripts/sync-contracts.ts && tsc","release:major":"pnpm version major","release:minor":"pnpm version minor","release:patch":"pnpm version patch","sync-contracts":"tsx scripts/sync-contracts.ts","sync:mcp-schemas":"tsx scripts/sync-mcp-schemas.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9717b677-4cc1-4958-9844-162ce0f00577"}},"_resolved":"/tmp/c4c14c7cfacea7a9ac922bb2ff30c381/arii-boomtick-mcp-0.3.5.tgz","_integrity":"sha512-EzLUCb9GQ3UtIExZ9zePpCd2dX1VGGC0EjSiQFdNohHfdd8zshQjbJ8tNo2G48PGLJmYdz8Dalxf4/MJL6PA4g==","repository":{"url":"git+https://github.com/arii/boomtick.git","type":"git","directory":"mcp"},"_npmVersion":"11.13.0","description":"Boomtick MCP Guide: PR Rescue + Merge Conflict Agent","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^5.7.3","@types/node":"^20.17.15","json-schema-to-zod":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/boomtick-mcp_0.3.5_1785964201702_0.08882824213296736","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@arii/boomtick-mcp","version":"0.3.6","_id":"@arii/boomtick-mcp@0.3.6","maintainers":[{"name":"anders.ariel","email":"anders.ariel@gmail.com"}],"homepage":"https://github.com/arii/boomtick#readme","bugs":{"url":"https://github.com/arii/boomtick/issues"},"bin":{"boomtick-mcp":"dist/index.js"},"dist":{"shasum":"40340a23fe7f560e273bd223bf32cc4d1f3c80cb","tarball":"https://registry.npmjs.org/@arii/boomtick-mcp/-/boomtick-mcp-0.3.6.tgz","fileCount":188,"integrity":"sha512-0yFaEa2gklbCl1/68u7zB+6WHqZhXnnnE+XaKXSat4OchwlZZIeeF8KvMDlA9uQI7B1W3yLzVRiofgUW38Nmiw==","signatures":[{"sig":"MEUCIGR+L8ArMtxOw/t7Aoc8PbgAYEmsVckIpkJ8KKPU5KXgAiEA8uuyLtJnn4edL6e6kkak5mu29rkEYeRx4xEmpjGUV34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arii%2fboomtick-mcp@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":455588},"main":"dist/index.js","type":"module","_from":"file:arii-boomtick-mcp-0.3.6.tgz","engines":{"node":"24.x","pnpm":"10.28.2"},"scripts":{"lint":"tsx scripts/sync-contracts.ts && tsc --noEmit","test":"tsx scripts/sync-contracts.ts && vitest run","build":"tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts","start":"node dist/index.js","watch":"tsc -w","run-evals":"node dist/evals/run-evals.js","type-check":"tsx scripts/sync-contracts.ts && tsc","release:major":"pnpm version major","release:minor":"pnpm version minor","release:patch":"pnpm version patch","sync-contracts":"tsx scripts/sync-contracts.ts","sync:mcp-schemas":"tsx scripts/sync-mcp-schemas.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9717b677-4cc1-4958-9844-162ce0f00577"}},"_resolved":"/tmp/cdbab854e2039f6476211294e672bede/arii-boomtick-mcp-0.3.6.tgz","_integrity":"sha512-0yFaEa2gklbCl1/68u7zB+6WHqZhXnnnE+XaKXSat4OchwlZZIeeF8KvMDlA9uQI7B1W3yLzVRiofgUW38Nmiw==","repository":{"url":"git+https://github.com/arii/boomtick.git","type":"git","directory":"mcp"},"_npmVersion":"11.13.0","description":"Boomtick MCP Guide: PR Rescue + Merge Conflict Agent","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsx":"^4.22.4","yaml":"^2.9.0","vitest":"^4.1.9","typescript":"^5.7.3","@types/node":"^20.17.15","json-schema-to-zod":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/boomtick-mcp_0.3.6_1786583242682_0.2684349398535568","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@arii/boomtick-mcp","version":"0.3.7","_id":"@arii/boomtick-mcp@0.3.7","maintainers":[{"name":"anders.ariel","email":"anders.ariel@gmail.com"}],"homepage":"https://github.com/arii/boomtick#readme","bugs":{"url":"https://github.com/arii/boomtick/issues"},"bin":{"boomtick-mcp":"dist/index.js"},"dist":{"shasum":"03b25df5d30fc7796f845dd53977db1cdf397273","tarball":"https://registry.npmjs.org/@arii/boomtick-mcp/-/boomtick-mcp-0.3.7.tgz","fileCount":188,"integrity":"sha512-Bz+XM2A0EhxTMXSqtq7t/RMDVishZz65DtBp4NF1gBwQu935/npGcXZKLrpCFWy/efKJUoALdb42476PlmU5xw==","signatures":[{"sig":"MEUCIQDf8Y+SKBDVQje9eIJooLeIFF5GLqNdMK4yY4byCgRX0wIgQScyALaF+6VTkfn74L6G6mAS3XjR0RMqCrXL7B/FJz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arii%2fboomtick-mcp@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":459009},"main":"dist/index.js","type":"module","_from":"file:arii-boomtick-mcp-0.3.7.tgz","engines":{"node":"24.x","pnpm":"10.28.2"},"scripts":{"lint":"tsx scripts/sync-contracts.ts && tsc --noEmit","test":"tsx scripts/sync-contracts.ts && vitest run","build":"tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts","start":"node dist/index.js","watch":"tsc -w","run-evals":"node dist/evals/run-evals.js","type-check":"tsx scripts/sync-contracts.ts && tsc","release:major":"pnpm version major","release:minor":"pnpm version minor","release:patch":"pnpm version patch","sync-contracts":"tsx scripts/sync-contracts.ts","sync:mcp-schemas":"tsx scripts/sync-mcp-schemas.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9717b677-4cc1-4958-9844-162ce0f00577"}},"_resolved":"/tmp/f38ffe9081524ce630353e4ceb141038/arii-boomtick-mcp-0.3.7.tgz","_integrity":"sha512-Bz+XM2A0EhxTMXSqtq7t/RMDVishZz65DtBp4NF1gBwQu935/npGcXZKLrpCFWy/efKJUoALdb42476PlmU5xw==","repository":{"url":"git+https://github.com/arii/boomtick.git","type":"git","directory":"mcp"},"_npmVersion":"11.13.0","description":"Boomtick MCP Guide: PR Rescue + Merge Conflict Agent","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsx":"^4.22.4","yaml":"^2.9.0","vitest":"^4.1.9","typescript":"^5.7.3","@types/node":"^20.17.15","json-schema-to-zod":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/boomtick-mcp_0.3.7_1787007621002_0.8614532559525547","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@arii/boomtick-mcp","version":"0.4.0","_id":"@arii/boomtick-mcp@0.4.0","maintainers":[{"name":"anders.ariel","email":"anders.ariel@gmail.com"}],"homepage":"https://github.com/arii/boomtick#readme","bugs":{"url":"https://github.com/arii/boomtick/issues"},"bin":{"boomtick-mcp":"dist/index.js"},"dist":{"shasum":"9dc9763a991e9ea739b304ad9fc3d75bd354326d","tarball":"https://registry.npmjs.org/@arii/boomtick-mcp/-/boomtick-mcp-0.4.0.tgz","fileCount":200,"integrity":"sha512-QnzR5xR3AbqvZ1XBFv2aZY3w2RSNrL0HcsiBVfUhksGn9dkangRUi+hCDqowjicrhuC0RVKlcj6CgmL7JLIbdA==","signatures":[{"sig":"MEQCIDWGfh3yV3skIucS1oDxv5YOBV90x6C4OwO7kFsK4H90AiBYSqmVShIg4HAov0RBQSQiR3SbK6iSFzZOYe3mAH+rvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arii%2fboomtick-mcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":512473},"main":"dist/index.js","type":"module","_from":"file:arii-boomtick-mcp-0.4.0.tgz","engines":{"node":"24.x","pnpm":"10.28.2"},"scripts":{"lint":"tsx scripts/sync-contracts.ts && tsc --noEmit","test":"tsx scripts/sync-contracts.ts && vitest run","build":"tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts","start":"node dist/index.js","watch":"tsc -w","run-evals":"node dist/evals/run-evals.js","type-check":"tsx scripts/sync-contracts.ts && tsc","release:major":"pnpm version major","release:minor":"pnpm version minor","release:patch":"pnpm version patch","sync-contracts":"tsx scripts/sync-contracts.ts","sync:mcp-schemas":"tsx scripts/sync-mcp-schemas.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9717b677-4cc1-4958-9844-162ce0f00577"}},"_resolved":"/tmp/f397cc521aecdbb5c4935911dc922554/arii-boomtick-mcp-0.4.0.tgz","_integrity":"sha512-QnzR5xR3AbqvZ1XBFv2aZY3w2RSNrL0HcsiBVfUhksGn9dkangRUi+hCDqowjicrhuC0RVKlcj6CgmL7JLIbdA==","repository":{"url":"git+https://github.com/arii/boomtick.git","type":"git","directory":"mcp"},"_npmVersion":"11.13.0","description":"Boomtick MCP Guide: PR Rescue + Merge Conflict Agent","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsx":"^4.22.4","yaml":"^2.9.0","vitest":"^4.1.9","typescript":"^5.7.3","@types/node":"^20.17.15","json-schema-to-zod":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/boomtick-mcp_0.4.0_1788482597080_0.6235504940594123","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@arii/boomtick-mcp@0.4.1","bin":{"boomtick-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/arii/boomtick/issues"},"dist":{"shasum":"8515b6962cdbd3714ca1df6bd90b7a0dc4d21e3b","tarball":"https://registry.npmjs.org/@arii/boomtick-mcp/-/boomtick-mcp-0.4.1.tgz","fileCount":200,"integrity":"sha512-SNTURkdv+elm/I612sCpHFS1EGpb9kWyRyahec1goGluJkmX4M2ORM51ca5hAY0wEZbol//iqu4OL2JvarVrLw==","signatures":[{"sig":"MEUCIQCz6co+k28qyClj4uVct5aIZyV+dEcdIRVnTJdNH4a6qQIgOKKeUXiKEbegrpxt9gev9NCg1lxG6jhz6BbAbDG59uU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAvLVg3Yn3INFZqSMXA9Ue5k9ki5EJrwkCmkZbg5l/sCAiEAp7y4DCUVz39/Qdpz/jo9wPGIIr0Nfql00ghaOr9o5JY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arii%2fboomtick-mcp@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":516639},"main":"dist/index.js","name":"@arii/boomtick-mcp","type":"module","_from":"file:arii-boomtick-mcp-0.4.1.tgz","engines":{"node":"24.x","pnpm":"10.28.2"},"scripts":{"lint":"tsx scripts/sync-contracts.ts && tsc --noEmit","test":"tsx scripts/sync-contracts.ts && vitest run","build":"tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts","start":"node dist/index.js","watch":"tsc -w","run-evals":"node dist/evals/run-evals.js","type-check":"tsx scripts/sync-contracts.ts && tsc","release:major":"pnpm version major","release:minor":"pnpm version minor","release:patch":"pnpm version patch","sync-contracts":"tsx scripts/sync-contracts.ts","sync:mcp-schemas":"tsx scripts/sync-mcp-schemas.ts"},"version":"0.4.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9717b677-4cc1-4958-9844-162ce0f00577"}},"homepage":"https://github.com/arii/boomtick#readme","_resolved":"/tmp/65b66d54ca1b9bde3a0e3e444ccda566/arii-boomtick-mcp-0.4.1.tgz","_integrity":"sha512-SNTURkdv+elm/I612sCpHFS1EGpb9kWyRyahec1goGluJkmX4M2ORM51ca5hAY0wEZbol//iqu4OL2JvarVrLw==","repository":{"url":"git+https://github.com/arii/boomtick.git","type":"git","directory":"mcp"},"_npmVersion":"11.13.0","description":"Boomtick MCP Guide: PR Rescue + Merge Conflict Agent","directories":{},"maintainers":[{"name":"anders.ariel","email":"anders.ariel@gmail.com"}],"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsx":"^4.22.4","yaml":"^2.9.0","vitest":"^4.1.9","typescript":"^5.7.3","@types/node":"^20.17.15","json-schema-to-zod":"^2.8.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/boomtick-mcp_0.4.1_1790208299117_0.5131441308285107"}}},"time":{"created":"2026-07-20T22:13:10.096Z","modified":"2026-09-24T00:04:59.686Z","0.3.3":"2026-07-20T22:13:10.399Z","0.3.5":"2026-08-05T21:10:02.082Z","0.3.6":"2026-08-13T01:07:22.836Z","0.3.7":"2026-08-17T23:00:21.240Z","0.4.0":"2026-09-04T00:43:17.248Z","0.4.1":"2026-09-24T00:04:59.200Z"},"bugs":{"url":"https://github.com/arii/boomtick/issues"},"homepage":"https://github.com/arii/boomtick#readme","repository":{"url":"git+https://github.com/arii/boomtick.git","type":"git","directory":"mcp"},"description":"Boomtick MCP Guide: PR Rescue + Merge Conflict Agent","maintainers":[{"name":"anders.ariel","email":"anders.ariel@gmail.com"}],"readme":"# Boomtick MCP: PR Rescue + Merge Conflict Agent\n\nA Model Context Protocol (MCP) server designed to empower AI agents with structured access to GitHub Pull Requests, repository state, CI logs, and validation tools.\n\n## Features\n\n### 🛠 Tools\n- **GitHub Ops**: Search PRs, get diffs, detect merge conflicts, open replacement PRs, and triage comments.\n- **Repo Ops**: Inspect changed files, extract package scripts, map application routes, and read CI logs.\n- **Validation**: Isolated repair branch creation, and running verification suites (Tests, Lighthouse, Playwright).\n- **Jules Operations**: Create, monitor, and interact with macro-agent Jules sessions.\n\n### 📄 Resources\n- `repo://package-json`: Access root package manifest.\n- `repo://routes`: Access application route-to-content mapping.\n- `repo://design-tokens`: Access UI design tokens.\n- `repo://diff/{prNumber}`: Access full PR diff text.\n- `repo://ci/{prNumber}`: Access detailed CI check results and logs.\n\n### 🧠 Prompts\n- `prompt://conflict-scout`: Scout for PRs needing rescue.\n- `prompt://pr-consolidation`: Guidelines for analyzing and proposing consolidation of overlapping PRs.\n- `prompt://repo-context`: Gather context before repair.\n- `prompt://repair-agent`: Apply minimal safe fixes.\n- `prompt://verifier-agent`: Prove the repair works.\n- `prompt://pr-writer`: Write professional replacement PR summaries.\n\n### 📝 Scripts\n- `scripts/create_instructions.sh`: Generates the `pr-consolidation.prompt.md` instructions file based on PR overlaps.\n\n## Safety First\n- **Isolated Worktrees**: All repair and merge operations happen in temporary git worktrees to prevent mutating your local working directory.\n- **Safe Shell**: All commands are restricted via an allowlist with automatic token redaction and timeouts.\n- **Write Guards**: Mutating operations (commits, branch creation, PR opening) require explicit `writeMode: true` or `pushMode: true` flags.\n\n## Setup\n\n### Prerequisites\n- Node.js >= 22\n- pnpm >= 10\n- GitHub CLI (`gh`) authenticated and in your PATH.\n\n### Installation\n```bash\ncd boomtick-mcp\npnpm install\npnpm build\n```\n\n### Installation via MCP Client (e.g. Claude Desktop)\nAdd the following to your MCP client configuration (e.g. `claude_desktop_config.json`):\n```json\n{\n  \"mcpServers\": {\n    \"boomtick\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/boomtick-mcp/dist/index.js\"],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"your_pat\",\n        \"GITHUB_OWNER\": \"your_org\",\n        \"GITHUB_REPO\": \"your_repo\",\n        \"BOOMTICK_REPO_PATH\": \"/absolute/path/to/repo\"\n      }\n    }\n  }\n}\n```\n\n### Configuration\nCreate a `.env` file in the `boomtick-mcp` directory:\n```env\nGITHUB_TOKEN=your_pat\nGITHUB_OWNER=your_org\nGITHUB_REPO=your_repo\nBOOMTICK_REPO_PATH=/path/to/repo\n```\n\n## Usage\nRun the server via stdio:\n```bash\nnode dist/index.js\n```\n\n## Release Process\n1. Run tests: `pnpm test`\n2. Run evals: `pnpm run run-evals`\n3. Update version: `pnpm run release:patch` (or `minor`/`major`)\n4. Build: `pnpm run build`\n5. Push changes and tags.\n\n## Future Roadmap\n\n### ContentOps + Merch Compliance\n- `content.validate_affiliate_disclosure`: Ensure Amazon mandatory wording is present.\n- `content.check_trademark_risk`: Flag potential trademark issues in blog posts.\n- `amazon.validate_affiliate_card`: Verify affiliate links and product names match media.\n\n### UX Regression + Spec-Driven Redesign\n- `ux.capture_screenshot`: Capture multi-viewport screenshots.\n- `ux.compare_screenshots`: Detect visual regressions using Playwright.\n- `ux.run_accessibility_check`: Automated Axe-core audits.\n\n## Development\n- **Build**: `pnpm run build`\n- **Test**: `pnpm test`\n- **Verify**: `pnpm run run-evals`\n\nFor detailed verification steps, see [docs/testing.md](./docs/testing.md).\n","readmeFilename":"README.md"}