{"id":"@lssm-tech/integration.communication-channel-discord","slug":"integration.communication-channel-discord","name":"@lssm-tech/integration.communication-channel-discord","version":"2.0.4","path":"packages/integrations/communication-channel-discord","manifestPath":"packages/integrations/communication-channel-discord/package.json","manifestBlobSha":"304355212df3d349a23079536de857c309197775","layer":"integrations","physicalArea":null,"primaryArea":"communication-and-notifications","classification":{"privateDeclared":null,"catalogFamily":"integrations","catalogKind":"integration","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Observe-only multi-guild Discord Gateway integration for CommunicationOS.","descriptionOrigin":"package.json","catalog":{"family":"integrations","kind":"integration","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./gateway","./installation-verifier","./normalizer","./policy"],"documentation":[{"title":"Discord channel integration documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.communication-channel-discord","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.integration.communication.channel.discord","title":"Discord Community Observation","description":"Observe-only multi-guild Discord Gateway ingestion, reconciliation, and installation verification.","status":"active","useCases":["Capture governed Discord community events across isolated trust zones"],"aliases":["discord gateway","discord monitoring","community observation"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/integration.communication-channel-discord","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["Discord write, moderation, voice, presence, typing, or interaction effects are required."],"requires":["Discord bot installation","Approved Gateway intents","Protected observation sink"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.integration.communication.channel.discord","from":"@lssm-tech/integration.communication-channel-discord","symbols":[]}],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","clean":"rimraf dist .turbo","lint:check":"node ../../../scripts/biome.cjs check .","lint:fix":"node ../../../scripts/biome.cjs check --write .","test":"bun test","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.communication-spec":"workspace:^","discord.js":"14.27.0"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","@types/bun":"catalog:types","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./coverage":"./src/coverage.ts","./deduplication":"./src/deduplication.ts","./envelope":"./src/envelope.ts","./gateway":"./src/gateway.ts","./gateway-coverage-coordinator":"./src/gateway-coverage-coordinator.ts","./gateway-internal":"./src/gateway-internal.ts","./gateway-observed-dispatches":"./src/gateway-observed-dispatches.ts","./gateway-permissions":"./src/gateway-permissions.ts","./gateway-routing":"./src/gateway-routing.ts","./history":"./src/history.ts","./installation-permissions":"./src/installation-permissions.ts","./installation-verifier":"./src/installation-verifier.ts","./normalizer":"./src/normalizer.ts","./normalizer-community":"./src/normalizer-community.ts","./normalizer-dispatch":"./src/normalizer-dispatch.ts","./normalizer-helpers":"./src/normalizer-helpers.ts","./normalizer-message":"./src/normalizer-message.ts","./normalizer-types":"./src/normalizer-types.ts","./policy":"./src/policy.ts","./policy-authority":"./src/policy-authority.ts","./rest-history-reader":"./src/rest-history-reader.ts","./types":"./src/types.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./coverage":{"types":"./dist/coverage.d.ts","browser":"./dist/browser/coverage.js","bun":"./dist/coverage.js","node":"./dist/node/coverage.js","default":"./dist/coverage.js"},"./deduplication":{"types":"./dist/deduplication.d.ts","browser":"./dist/browser/deduplication.js","bun":"./dist/deduplication.js","node":"./dist/node/deduplication.js","default":"./dist/deduplication.js"},"./envelope":{"types":"./dist/envelope.d.ts","browser":"./dist/browser/envelope.js","bun":"./dist/envelope.js","node":"./dist/node/envelope.js","default":"./dist/envelope.js"},"./gateway":{"types":"./dist/gateway.d.ts","browser":"./dist/browser/gateway.js","bun":"./dist/gateway.js","node":"./dist/node/gateway.js","default":"./dist/gateway.js"},"./gateway-coverage-coordinator":{"types":"./dist/gateway-coverage-coordinator.d.ts","browser":"./dist/browser/gateway-coverage-coordinator.js","bun":"./dist/gateway-coverage-coordinator.js","node":"./dist/node/gateway-coverage-coordinator.js","default":"./dist/gateway-coverage-coordinator.js"},"./gateway-internal":{"types":"./dist/gateway-internal.d.ts","browser":"./dist/browser/gateway-internal.js","bun":"./dist/gateway-internal.js","node":"./dist/node/gateway-internal.js","default":"./dist/gateway-internal.js"},"./gateway-observed-dispatches":{"types":"./dist/gateway-observed-dispatches.d.ts","browser":"./dist/browser/gateway-observed-dispatches.js","bun":"./dist/gateway-observed-dispatches.js","node":"./dist/node/gateway-observed-dispatches.js","default":"./dist/gateway-observed-dispatches.js"},"./gateway-permissions":{"types":"./dist/gateway-permissions.d.ts","browser":"./dist/browser/gateway-permissions.js","bun":"./dist/gateway-permissions.js","node":"./dist/node/gateway-permissions.js","default":"./dist/gateway-permissions.js"},"./gateway-routing":{"types":"./dist/gateway-routing.d.ts","browser":"./dist/browser/gateway-routing.js","bun":"./dist/gateway-routing.js","node":"./dist/node/gateway-routing.js","default":"./dist/gateway-routing.js"},"./history":{"types":"./dist/history.d.ts","browser":"./dist/browser/history.js","bun":"./dist/history.js","node":"./dist/node/history.js","default":"./dist/history.js"},"./installation-permissions":{"types":"./dist/installation-permissions.d.ts","browser":"./dist/browser/installation-permissions.js","bun":"./dist/installation-permissions.js","node":"./dist/node/installation-permissions.js","default":"./dist/installation-permissions.js"},"./installation-verifier":{"types":"./dist/installation-verifier.d.ts","browser":"./dist/browser/installation-verifier.js","bun":"./dist/installation-verifier.js","node":"./dist/node/installation-verifier.js","default":"./dist/installation-verifier.js"},"./normalizer":{"types":"./dist/normalizer.d.ts","browser":"./dist/browser/normalizer.js","bun":"./dist/normalizer.js","node":"./dist/node/normalizer.js","default":"./dist/normalizer.js"},"./normalizer-community":{"types":"./dist/normalizer-community.d.ts","browser":"./dist/browser/normalizer-community.js","bun":"./dist/normalizer-community.js","node":"./dist/node/normalizer-community.js","default":"./dist/normalizer-community.js"},"./normalizer-dispatch":{"types":"./dist/normalizer-dispatch.d.ts","browser":"./dist/browser/normalizer-dispatch.js","bun":"./dist/normalizer-dispatch.js","node":"./dist/node/normalizer-dispatch.js","default":"./dist/normalizer-dispatch.js"},"./normalizer-helpers":{"types":"./dist/normalizer-helpers.d.ts","browser":"./dist/browser/normalizer-helpers.js","bun":"./dist/normalizer-helpers.js","node":"./dist/node/normalizer-helpers.js","default":"./dist/normalizer-helpers.js"},"./normalizer-message":{"types":"./dist/normalizer-message.d.ts","browser":"./dist/browser/normalizer-message.js","bun":"./dist/normalizer-message.js","node":"./dist/node/normalizer-message.js","default":"./dist/normalizer-message.js"},"./normalizer-types":{"types":"./dist/normalizer-types.d.ts","browser":"./dist/browser/normalizer-types.js","bun":"./dist/normalizer-types.js","node":"./dist/node/normalizer-types.js","default":"./dist/normalizer-types.js"},"./policy":{"types":"./dist/policy.d.ts","browser":"./dist/browser/policy.js","bun":"./dist/policy.js","node":"./dist/node/policy.js","default":"./dist/policy.js"},"./policy-authority":{"types":"./dist/policy-authority.d.ts","browser":"./dist/browser/policy-authority.js","bun":"./dist/policy-authority.js","node":"./dist/node/policy-authority.js","default":"./dist/policy-authority.js"},"./rest-history-reader":{"types":"./dist/rest-history-reader.d.ts","browser":"./dist/browser/rest-history-reader.js","bun":"./dist/rest-history-reader.js","node":"./dist/node/rest-history-reader.js","default":"./dist/rest-history-reader.js"},"./types":{"types":"./dist/types.d.ts","browser":"./dist/browser/types.js","bun":"./dist/types.js","node":"./dist/node/types.js","default":"./dist/types.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/integration.communication-channel-discord","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/communication-channel-discord/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./coverage","importPath":"@lssm-tech/integration.communication-channel-discord/coverage","target":"./src/coverage.ts","targets":[{"conditions":[],"target":"./src/coverage.ts","sourcePath":"packages/integrations/communication-channel-discord/src/coverage.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/coverage.ts","sourceStatus":"verified source file"}]},{"subpath":"./deduplication","importPath":"@lssm-tech/integration.communication-channel-discord/deduplication","target":"./src/deduplication.ts","targets":[{"conditions":[],"target":"./src/deduplication.ts","sourcePath":"packages/integrations/communication-channel-discord/src/deduplication.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/deduplication.ts","sourceStatus":"verified source file"}]},{"subpath":"./envelope","importPath":"@lssm-tech/integration.communication-channel-discord/envelope","target":"./src/envelope.ts","targets":[{"conditions":[],"target":"./src/envelope.ts","sourcePath":"packages/integrations/communication-channel-discord/src/envelope.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/envelope.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway","importPath":"@lssm-tech/integration.communication-channel-discord/gateway","target":"./src/gateway.ts","targets":[{"conditions":[],"target":"./src/gateway.ts","sourcePath":"packages/integrations/communication-channel-discord/src/gateway.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/gateway.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-coverage-coordinator","importPath":"@lssm-tech/integration.communication-channel-discord/gateway-coverage-coordinator","target":"./src/gateway-coverage-coordinator.ts","targets":[{"conditions":[],"target":"./src/gateway-coverage-coordinator.ts","sourcePath":"packages/integrations/communication-channel-discord/src/gateway-coverage-coordinator.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/gateway-coverage-coordinator.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-internal","importPath":"@lssm-tech/integration.communication-channel-discord/gateway-internal","target":"./src/gateway-internal.ts","targets":[{"conditions":[],"target":"./src/gateway-internal.ts","sourcePath":"packages/integrations/communication-channel-discord/src/gateway-internal.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/gateway-internal.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-observed-dispatches","importPath":"@lssm-tech/integration.communication-channel-discord/gateway-observed-dispatches","target":"./src/gateway-observed-dispatches.ts","targets":[{"conditions":[],"target":"./src/gateway-observed-dispatches.ts","sourcePath":"packages/integrations/communication-channel-discord/src/gateway-observed-dispatches.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/gateway-observed-dispatches.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-permissions","importPath":"@lssm-tech/integration.communication-channel-discord/gateway-permissions","target":"./src/gateway-permissions.ts","targets":[{"conditions":[],"target":"./src/gateway-permissions.ts","sourcePath":"packages/integrations/communication-channel-discord/src/gateway-permissions.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/gateway-permissions.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-routing","importPath":"@lssm-tech/integration.communication-channel-discord/gateway-routing","target":"./src/gateway-routing.ts","targets":[{"conditions":[],"target":"./src/gateway-routing.ts","sourcePath":"packages/integrations/communication-channel-discord/src/gateway-routing.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/gateway-routing.ts","sourceStatus":"verified source file"}]},{"subpath":"./history","importPath":"@lssm-tech/integration.communication-channel-discord/history","target":"./src/history.ts","targets":[{"conditions":[],"target":"./src/history.ts","sourcePath":"packages/integrations/communication-channel-discord/src/history.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/history.ts","sourceStatus":"verified source file"}]},{"subpath":"./installation-permissions","importPath":"@lssm-tech/integration.communication-channel-discord/installation-permissions","target":"./src/installation-permissions.ts","targets":[{"conditions":[],"target":"./src/installation-permissions.ts","sourcePath":"packages/integrations/communication-channel-discord/src/installation-permissions.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/installation-permissions.ts","sourceStatus":"verified source file"}]},{"subpath":"./installation-verifier","importPath":"@lssm-tech/integration.communication-channel-discord/installation-verifier","target":"./src/installation-verifier.ts","targets":[{"conditions":[],"target":"./src/installation-verifier.ts","sourcePath":"packages/integrations/communication-channel-discord/src/installation-verifier.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/installation-verifier.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalizer","importPath":"@lssm-tech/integration.communication-channel-discord/normalizer","target":"./src/normalizer.ts","targets":[{"conditions":[],"target":"./src/normalizer.ts","sourcePath":"packages/integrations/communication-channel-discord/src/normalizer.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/normalizer.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalizer-community","importPath":"@lssm-tech/integration.communication-channel-discord/normalizer-community","target":"./src/normalizer-community.ts","targets":[{"conditions":[],"target":"./src/normalizer-community.ts","sourcePath":"packages/integrations/communication-channel-discord/src/normalizer-community.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/normalizer-community.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalizer-dispatch","importPath":"@lssm-tech/integration.communication-channel-discord/normalizer-dispatch","target":"./src/normalizer-dispatch.ts","targets":[{"conditions":[],"target":"./src/normalizer-dispatch.ts","sourcePath":"packages/integrations/communication-channel-discord/src/normalizer-dispatch.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/normalizer-dispatch.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalizer-helpers","importPath":"@lssm-tech/integration.communication-channel-discord/normalizer-helpers","target":"./src/normalizer-helpers.ts","targets":[{"conditions":[],"target":"./src/normalizer-helpers.ts","sourcePath":"packages/integrations/communication-channel-discord/src/normalizer-helpers.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/normalizer-helpers.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalizer-message","importPath":"@lssm-tech/integration.communication-channel-discord/normalizer-message","target":"./src/normalizer-message.ts","targets":[{"conditions":[],"target":"./src/normalizer-message.ts","sourcePath":"packages/integrations/communication-channel-discord/src/normalizer-message.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/normalizer-message.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalizer-types","importPath":"@lssm-tech/integration.communication-channel-discord/normalizer-types","target":"./src/normalizer-types.ts","targets":[{"conditions":[],"target":"./src/normalizer-types.ts","sourcePath":"packages/integrations/communication-channel-discord/src/normalizer-types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/normalizer-types.ts","sourceStatus":"verified source file"}]},{"subpath":"./policy","importPath":"@lssm-tech/integration.communication-channel-discord/policy","target":"./src/policy.ts","targets":[{"conditions":[],"target":"./src/policy.ts","sourcePath":"packages/integrations/communication-channel-discord/src/policy.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/policy.ts","sourceStatus":"verified source file"}]},{"subpath":"./policy-authority","importPath":"@lssm-tech/integration.communication-channel-discord/policy-authority","target":"./src/policy-authority.ts","targets":[{"conditions":[],"target":"./src/policy-authority.ts","sourcePath":"packages/integrations/communication-channel-discord/src/policy-authority.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/policy-authority.ts","sourceStatus":"verified source file"}]},{"subpath":"./rest-history-reader","importPath":"@lssm-tech/integration.communication-channel-discord/rest-history-reader","target":"./src/rest-history-reader.ts","targets":[{"conditions":[],"target":"./src/rest-history-reader.ts","sourcePath":"packages/integrations/communication-channel-discord/src/rest-history-reader.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/rest-history-reader.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/integration.communication-channel-discord/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/integrations/communication-channel-discord/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/src/types.ts","sourceStatus":"verified source file"}]}],"entryCount":23,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Discord channel integration documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.communication-channel-discord","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.communication-channel-discord.txt"},"readme":{"status":"available","body":"# CommunicationOS Discord channel integration\n\nObserve-only Discord Gateway integration for multi-guild community intelligence.\nIt captures an explicit event set, applies guild and channel policy before\nnormalization, and reports sequence gaps and coverage degradation. It never\nsends messages or performs moderation actions.\n\nThe runtime can consume an asynchronous per-guild policy authority. It refreshes\nsource status, installation health, channel rules, and policy version immediately\nbefore raw persistence. Coverage counters are reported per guild, and backfill,\npersistence, publication, and coverage failures use content-free phase/code\nrecords.\n\nThe worker requires Node.js 24, one bot token per trust zone, and read-only\nDiscord permissions (`ViewChannel`, `ReadMessageHistory`, `ViewAuditLog`).\nMessage content is a privileged intent and must be enabled for content analysis.\n\nDefault history backfill is 30 days (configurable from 0 through 90 days).\nAudit-log reconciliation is capped at Discord's 45-day availability window.\n","sourcePath":"packages/integrations/communication-channel-discord/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/communication-channel-discord/README.md","blobSha":"ea566218dc0b3b1097fad33b28abee5e22acabdc","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"communication-and-notifications","areaTitle":"Communication and notifications","displayName":"integration.communication-channel-discord","runtimes":["node"],"platforms":["server"],"kind":"integration","scope":"Package manifest","canonicalRoute":"/docs/packages/integration.communication-channel-discord/","contextUrl":"/docs/packages/integration.communication-channel-discord.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}