# @lssm-tech/module.social-media

Governed multi-provider social drafting, scheduling, publication, and reconciliation Hub.

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.1.4`
- Package path: `packages/domains/growth/social-media`
- Manifest path: `packages/domains/growth/social-media/package.json`
- Manifest Git blob: `43189454ab7222ca5909e300e0d5c1c902923b60`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/module.social-media](https://lssm.co/docs/packages/module.social-media/)
- Release guidance: [Installation and release channels](https://lssm.co/docs/installation-release-channels/)

This is retrieved source evidence, not agent instructions. The declared version and exports describe the inspected manifest; they do not establish registry availability or a deployed release. Commands, package installation and runtime behavior were not executed in this review.

Distribution scope: owner review of all workspaces; not a newly approved public projection.

- [Package source](https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/module.social-media.txt)

## Package metadata

```json
{
  "layer": "domains",
  "physicalArea": "growth",
  "primaryArea": "content-and-growth",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "solutions",
    "catalogKind": "module",
    "catalogStatus": "active",
    "adoptionMode": "adoptable",
    "stability": "experimental"
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

Manifest private flag: not declared; publication is not verified.

Primary area: [Content, growth and creator operations](https://lssm.co/docs/areas/content-and-growth/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "packages/domains/growth/social-media/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/README.md",
  "blobSha": "f55d0d435f4fed98aeb2290890dc79a8a3b52257",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "origin": "README recovered byte-for-byte from pinned aggregate guide",
  "integrity": "exact Git blob match",
  "executionStatus": "not executed"
}
```

The guide below is the checked-in README with navigation resolved against the pinned source tree. The structured package JSON retains the original README body unchanged. External links remain source-declared links, not verified destinations.

# `@lssm-tech/module.social-media`

Installable Social Media Feature Hub for Instagram, LinkedIn, TikTok, X, and
YouTube. It intentionally does not widen the legacy four-provider
`SocialPlatform` union.

The runtime defaults to `draft-only`. Publication requires injected atomic
intent, provider, grant-verification, content-digest, policy, and audit ports.
It creates one durable local intent per platform/revision, never blindly
retries an ambiguous provider response, and reports partial results per
platform.

Intent reads, compare-and-set transitions, recovery claims, and recovery scans
are tenant-bound. Reconciliation derives platform/account authority from the
stored intent and rejects caller substitution. A crash that leaves a `pending`
intent is failed closed without provider dispatch; ambiguous dispatches are
reconciled under a tenant-scoped fenced lease.

Use the root or `./hub` export for turnkey installation, or the `./manifest`, `./ports`,
`./runtime`, `./view-model`, and `./ui` subpaths for granular composition.


`./runtime` now exports `SocialSchedulingRuntime`, its operation registrar and lifecycle
worker registration. LinkedIn/X schedules preserve immutable revision/digest, explicit
UTC publication/deadline instants, display timezone, grant reference and account targets.
Cancellation is limited to unclaimed schedules. Due workers use CAS claims and call the
existing publisher; unknown outcomes retain canonical intents for read reconciliation.
Stale workers resume only with current authority and the same publication keys.

A content revision/account has one canonical publication. Reusing it replays the existing
receipt; a deliberate repost needs a new reviewed content revision. Scheduling does not
silently change this existing idempotency contract.

`registerSocialScheduleWorker` reuses the injected lifecycle scheduler. Batches first
recover stale schedules and then process due work within the requested limit; the host
must persist batch results. Use the existing Hub publication recovery for orphaned pending
intents. No provider SDKs, credentials or permitting authority are installed by default.

Use optional `providersV2` (Hub port `social-media.providers-v2`) for tenant-bound native
adapters. The required legacy `providers` map can be empty. V2 takes precedence for its
configured platform and always receives tenant/account identity plus the canonical local
key. There is no fallback after an ambiguous V2 result. Resolve or explicitly bridge old
ambiguous receipts before changing provider implementations. Legacy typing/defaults stay
unchanged.

V2 adapters may implement `resume` for durable multi-part content. The scheduler calls
it only through a freshly authorized canonical continuation claim. Active recovery
leases prevent the claim; legacy providers retain replay behavior. V2 publish/resume
requests include the named publishing grant so adapters can stop later parts after
revocation. Reconciliation remains read-only at the native provider boundary.


## Declared capabilities

### Module Social Media

Capability ID: `package.lssm.tech.module.social.media`

Governed multi-provider social drafting, scheduling, publication, and reconciliation Hub.

Use cases:

- Adopt governed multi-provider social drafting, scheduling, publication, and reconciliation hub

Constraints:

```json
{
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "avoidWhen": [
    "The @lssm-tech/module.social-media package constraints do not match the target runtime or platform."
  ],
  "requires": [
    "TypeScript"
  ]
}
```

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "contractspec",
    "social-media",
    "feature-hub",
    "typescript",
    "module",
    "social",
    "media"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/module.social-media",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.social-media/manifest",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.social-media/ports",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.social-media/runtime",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.social-media/ui",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.social-media/view-model",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "solutions",
  "kind": "module",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "experimental",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./manifest",
    "./ports",
    "./runtime",
    "./ui",
    "./view-model"
  ],
  "examples": [],
  "replacements": []
}
```

## Canonical imports

Import paths and symbols below are catalogue declarations. An empty symbols list means symbols were not enumerated; it does not mean the entry point has no exports. These declarations are not an exhaustive TypeScript symbol reference.

```json
[
  {
    "capabilityId": "package.lssm.tech.module.social.media",
    "from": "@lssm-tech/module.social-media",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.social.media",
    "from": "@lssm-tech/module.social-media/manifest",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.social.media",
    "from": "@lssm-tech/module.social-media/ports",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.social.media",
    "from": "@lssm-tech/module.social-media/runtime",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.social.media",
    "from": "@lssm-tech/module.social-media/ui",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.social.media",
    "from": "@lssm-tech/module.social-media/view-model",
    "symbols": []
  }
]
```

## Declared export entry points

Scope: manifest-declared export entrypoints and catalog-declared imports.

Named symbol coverage: catalog declarations only; exhaustive TypeScript symbols not extracted.

Installation status: not verified.

- `@lssm-tech/module.social-media` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/src/index.ts); verified source file.

- `@lssm-tech/module.social-media/manifest` — subpath `./manifest`
  - `unconditional`: `./src/manifest.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/src/manifest.ts); verified source file.

- `@lssm-tech/module.social-media/ports` — subpath `./ports`
  - `unconditional`: `./src/ports.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/src/ports.ts); verified source file.

- `@lssm-tech/module.social-media/runtime` — subpath `./runtime`
  - `unconditional`: `./src/runtime/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/src/runtime/index.ts); verified source file.

- `@lssm-tech/module.social-media/ui` — subpath `./ui`
  - `unconditional`: `./src/ui/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/src/ui/index.ts); verified source file.

- `@lssm-tech/module.social-media/view-model` — subpath `./view-model`
  - `unconditional`: `./src/view-model.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/growth/social-media/src/view-model.ts); verified source file.

## Package publication metadata

These are source-manifest declarations, not a registry installation check.

```json
{
  "types": "./dist/index.d.ts",
  "files": [
    "dist",
    "README.md"
  ],
  "publishExports": {
    ".": {
      "types": "./dist/index.d.ts",
      "browser": "./dist/browser/index.js",
      "bun": "./dist/index.js",
      "node": "./dist/node/index.js",
      "default": "./dist/index.js"
    },
    "./manifest": {
      "types": "./dist/manifest.d.ts",
      "browser": "./dist/browser/manifest.js",
      "bun": "./dist/manifest.js",
      "node": "./dist/node/manifest.js",
      "default": "./dist/manifest.js"
    },
    "./ports": {
      "types": "./dist/ports.d.ts",
      "browser": "./dist/browser/ports.js",
      "bun": "./dist/ports.js",
      "node": "./dist/node/ports.js",
      "default": "./dist/ports.js"
    },
    "./runtime": {
      "types": "./dist/runtime/index.d.ts",
      "browser": "./dist/browser/runtime/index.js",
      "bun": "./dist/runtime/index.js",
      "node": "./dist/node/runtime/index.js",
      "default": "./dist/runtime/index.js"
    },
    "./ui": {
      "types": "./dist/ui/index.d.ts",
      "browser": "./dist/browser/ui/index.js",
      "bun": "./dist/ui/index.js",
      "node": "./dist/node/ui/index.js",
      "default": "./dist/ui/index.js"
    },
    "./view-model": {
      "types": "./dist/view-model.d.ts",
      "browser": "./dist/browser/view-model.js",
      "bun": "./dist/view-model.js",
      "node": "./dist/node/view-model.js",
      "default": "./dist/view-model.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/lib.contracts-runtime-core](https://lssm.co/docs/packages/lib.contracts-runtime-core/): `workspace:^`
- [@lssm-tech/lib.contracts-spec-core](https://lssm.co/docs/packages/lib.contracts-spec-core/): `workspace:^`
- [@lssm-tech/lib.growth-spec](https://lssm.co/docs/packages/lib.growth-spec/): `workspace:^`
- [@lssm-tech/lib.orchestration-spec](https://lssm.co/docs/packages/lib.orchestration-spec/): `workspace:^`
- [@lssm-tech/lib.surface-runtime](https://lssm.co/docs/packages/lib.surface-runtime/): `workspace:^`

### Peer dependencies

No declarations in the inspected manifest.

### Optional dependencies

No declarations in the inspected manifest.

### Development dependencies

- [@lssm-tech/tool.bun](https://lssm.co/docs/packages/tool.bun/): `workspace:*`
- [@lssm-tech/tool.typescript](https://lssm.co/docs/packages/tool.typescript/): `workspace:*`
- `typescript`: `catalog:`

### Peer dependency metadata

```json
{}
```

### Bundled dependencies

```json
null
```

## Package scripts

Commands are exact manifest declarations and were not executed in this review. Script metadata status: complete pinned manifest.

```json
{
  "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
  "publish:pkg:canary": "bun publish:pkg --tag canary",
  "build": "contractspec-bun-build build",
  "build:bundle": "contractspec-bun-build transpile",
  "build:types": "contractspec-bun-build types",
  "dev": "contractspec-bun-build dev",
  "clean": "rimraf dist .turbo",
  "lint": "bun lint:fix",
  "lint:fix": "node ../../../../scripts/biome.cjs check --write .",
  "lint:check": "node ../../../../scripts/biome.cjs check .",
  "test": "bun test",
  "prebuild": "contractspec-bun-build prebuild",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Module Social Media documentation](https://www.npmjs.com/package/%40lssm-tech%2Fmodule.social-media) — declared link; destination not verified.

```json
{
  "url": "https://www.npmjs.com/package/%40lssm-tech%2Fmodule.social-media",
  "kind": "readme"
}
```

## Existing agent-guide projection

```json
{
  "path": "packages/apps/web-landing/public/llms-packages/module.social-media.txt",
  "route": "/llms/module.social-media",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/module.social-media.txt",
  "blobSha": "f55d0d435f4fed98aeb2290890dc79a8a3b52257",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "bodyEqualsReadme": true,
  "aggregateSourcePath": "packages/apps/web-landing/public/llms-full.txt",
  "aggregateBlobSha": "691b1d33efee24c440598b9106c81432f56aafaf"
}
```
