# @lssm-tech/module.personal-experience

Authority-first RoleMorph and reversible Personalization composition for PersonalOS surfaces.

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.0.4`
- Package path: `packages/domains/personal-agency/module`
- Manifest path: `packages/domains/personal-agency/module/package.json`
- Manifest Git blob: `a4589d0eb3c90ede2e5f855cba4059d67a51376d`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/module.personal-experience](https://lssm.co/docs/packages/module.personal-experience/)
- 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/personal-agency/module)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/module.personal-experience.txt)

## Package metadata

```json
{
  "layer": "domains",
  "physicalArea": "personal-agency",
  "primaryArea": "personal-and-learning",
  "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: [Personal workflows, learning and progress](https://lssm.co/docs/areas/personal-and-learning/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "packages/domains/personal-agency/module/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/README.md",
  "blobSha": "13c531b9be74595bdf77e0eda3ef14622304e17f",
  "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.personal-experience`

The PersonalOS composition seam between RoleMorph and Personalization. It first
resolves the authority-aware surface, then layers canonical presentation-only
preferences. Explicit choices win over adaptive hints, and the result includes
an explanation plus a complete reset patch. Missing delegated authority fails
closed before any surface is returned.

`composePersonalPresentation()` is the canonical host seam. It selects the
personal RoleMorph surface first, suppresses invalid diagnostics, and permits
delegated projection only for an exact active `view_shared_projection` grant.
The canonical registry and surface specifications are deeply frozen, and the
delegated role profile must match the exact active household member role and
time window. It then layers default, adaptive, and explicit preferences in that
order. The wire result contains six minimized areas, component/action
identifiers, authority boundaries, source attribution, generic explanations, a
schema-verified domain-separated resolution hash, and a complete reset patch.
It never contains component data, decision reasons, evidence, credentials, or
raw behavior.

`PersonalExperienceIdentitySession` is the shared client-session boundary for
Personalization buffers. It derives an exact scope from the server-issued
opaque tenant/consent binding and outer subject/actor refs, preserves buffers
through transient loading, offline, denial, and retry states, and requires an
explicit drain or discard on sign-out, account switch, tenant switch, or
consent change. Collection cannot attach without granted consent; failed
retirement discards every old buffer and leaves the session signed out.

`PersonalCalmDesignPack` adds shared responsive/native layout recipes for a
single-focus Today view, progressive disclosure, resumable workflows, and an
always-reachable privacy state. It extends the existing Wellness Soft pack.

The package also owns the cross-surface golden-journey, privacy-center, and
offline-command policies. Consent, sharing, health connections, delegation,
authority, export, and deletion always revalidate online. Offline eligibility
comes from the package's exact trusted action registry; caller-supplied risk or
undo metadata cannot widen it. Eligible commands carry a canonical undo and
must revalidate server authority and revision before replay.
`./offline-admission` is the shared admission and integrity check for every
host queue: `admitPersonalOfflineEnvelopeV1` parses the envelope, binds the
authenticated subject, and admits only registry actions with the exact risk
and canonical undo; `verifyQueuedPersonalOfflineCommandV1` re-checks a stored
envelope against current policy and the metadata persisted beside it; and
`admitPersonalOfflineActionV1` applies the same rule to a bare action request.
Hosts keep only their storage (SQLite, IndexedDB, Tauri) adapters.
`./offline-replay` owns the canonical replay state machine,
`replayPersonalOfflineCommandsV1`, behind outbox and dispatch ports: online
only, at most 25 due commands per pass, a block after 5 attempts, a policy
re-check (registry, risk, undo) before every dispatch, completion only on
delivery, terminal blocks for authority/revision/integrity decisions, and an
exponential backoff (2^attempt seconds, capped at 15 minutes) that defers the
first transient failure and ends the pass. The HTTP, thrown-error, and domain
result classifiers normalize host transports into replay outcomes.

`./presentation-access` is the one client-side presentation access policy used
by the web, desktop, and mobile hosts. It fails closed: a missing presentation,
or one generated more than 5 minutes ago (`PERSONAL_PRESENTATION_MAX_AGE_MS`)
or more than 1 minute in the future, is `unavailable` and blocks every governed
action; hosts may render only a safe, action-free display. Area access needs
exactly one allowed area entry whose component references each resolve to one
allowed component of that area; the `<area>.manage` boundary needs exactly one
area-bound action. Only `allowed`, or `requires_approval` with an explicit
per-submission approval, may submit. The policy is presentation-only; the
server re-validates authority for every command.

`./journey-actions` owns the canonical journey action catalog
(`PERSONAL_JOURNEY_ACTION_CATALOG_V1`): the snake_case action ids used by the
runtime command families, each action's command family, governing
presentation area, and the surfaces that offer it, in display order.
`personalJourneyActionsForSurfaceV1`, `isPersonalJourneyActionOnSurfaceV1`, and
`isPersonalJourneyActionInFamilyV1` let hosts route actions to their own form
adapters without re-declaring the catalog. Hosts with other ids (mobile
kebab-case) keep an explicit alias table onto these ids.


## Declared capabilities

### Module Personal Experience

Capability ID: `package.lssm.tech.module.personal.experience`

Authority-first RoleMorph and reversible Personalization composition for PersonalOS surfaces.

Use cases:

- Adopt authority-first rolemorph and reversible personalization composition for personalos surfaces

Constraints:

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

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "module",
    "personal",
    "experience"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/module.personal-experience",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/golden-journey",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/identity-session",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/identity-session-scope",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/offline-policy",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/personal-calm-design-pack",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/personal-domain-pack",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/personal-experience.feature",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/presentation-composer",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/privacy-center",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/resolver",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/presentation-access",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/offline-admission",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/offline-replay",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.personal-experience/journey-actions",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "solutions",
  "kind": "module",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "experimental",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./golden-journey",
    "./identity-session",
    "./identity-session-scope",
    "./journey-actions",
    "./offline-admission",
    "./offline-policy",
    "./offline-replay",
    "./personal-calm-design-pack",
    "./personal-domain-pack",
    "./personal-experience.feature",
    "./presentation-access",
    "./presentation-composer",
    "./privacy-center",
    "./resolver"
  ],
  "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.personal.experience",
    "from": "@lssm-tech/module.personal-experience",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/golden-journey",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/identity-session",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/identity-session-scope",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/offline-policy",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/personal-calm-design-pack",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/personal-domain-pack",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/personal-experience.feature",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/presentation-composer",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/privacy-center",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/resolver",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/presentation-access",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/offline-admission",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/offline-replay",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.personal.experience",
    "from": "@lssm-tech/module.personal-experience/journey-actions",
    "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.personal-experience` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/index.ts); verified source file.

- `@lssm-tech/module.personal-experience/golden-journey` — subpath `./golden-journey`
  - `unconditional`: `./src/golden-journey.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/golden-journey.ts); verified source file.

- `@lssm-tech/module.personal-experience/identity-session` — subpath `./identity-session`
  - `unconditional`: `./src/identity-session.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/identity-session.ts); verified source file.

- `@lssm-tech/module.personal-experience/identity-session-scope` — subpath `./identity-session-scope`
  - `unconditional`: `./src/identity-session-scope.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/identity-session-scope.ts); verified source file.

- `@lssm-tech/module.personal-experience/journey-actions` — subpath `./journey-actions`
  - `unconditional`: `./src/journey-actions.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/journey-actions.ts); verified source file.

- `@lssm-tech/module.personal-experience/offline-admission` — subpath `./offline-admission`
  - `unconditional`: `./src/offline-admission.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/offline-admission.ts); verified source file.

- `@lssm-tech/module.personal-experience/offline-policy` — subpath `./offline-policy`
  - `unconditional`: `./src/offline-policy.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/offline-policy.ts); verified source file.

- `@lssm-tech/module.personal-experience/offline-replay` — subpath `./offline-replay`
  - `unconditional`: `./src/offline-replay.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/offline-replay.ts); verified source file.

- `@lssm-tech/module.personal-experience/personal-calm-design-pack` — subpath `./personal-calm-design-pack`
  - `unconditional`: `./src/personal-calm-design-pack.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/personal-calm-design-pack.ts); verified source file.

- `@lssm-tech/module.personal-experience/personal-domain-pack` — subpath `./personal-domain-pack`
  - `unconditional`: `./src/personal-domain-pack.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/personal-domain-pack.ts); verified source file.

- `@lssm-tech/module.personal-experience/personal-experience.feature` — subpath `./personal-experience.feature`
  - `unconditional`: `./src/personal-experience.feature.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/personal-experience.feature.ts); verified source file.

- `@lssm-tech/module.personal-experience/presentation-access` — subpath `./presentation-access`
  - `unconditional`: `./src/presentation-access.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/presentation-access.ts); verified source file.

- `@lssm-tech/module.personal-experience/presentation-composer` — subpath `./presentation-composer`
  - `unconditional`: `./src/presentation-composer.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/presentation-composer.ts); verified source file.

- `@lssm-tech/module.personal-experience/privacy-center` — subpath `./privacy-center`
  - `unconditional`: `./src/privacy-center.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/privacy-center.ts); verified source file.

- `@lssm-tech/module.personal-experience/resolver` — subpath `./resolver`
  - `unconditional`: `./src/resolver.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-agency/module/src/resolver.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"
    },
    "./golden-journey": {
      "types": "./dist/golden-journey.d.ts",
      "browser": "./dist/browser/golden-journey.js",
      "bun": "./dist/golden-journey.js",
      "node": "./dist/node/golden-journey.js",
      "default": "./dist/golden-journey.js"
    },
    "./identity-session": {
      "types": "./dist/identity-session.d.ts",
      "browser": "./dist/browser/identity-session.js",
      "bun": "./dist/identity-session.js",
      "node": "./dist/node/identity-session.js",
      "default": "./dist/identity-session.js"
    },
    "./identity-session-scope": {
      "types": "./dist/identity-session-scope.d.ts",
      "browser": "./dist/browser/identity-session-scope.js",
      "bun": "./dist/identity-session-scope.js",
      "node": "./dist/node/identity-session-scope.js",
      "default": "./dist/identity-session-scope.js"
    },
    "./journey-actions": {
      "types": "./dist/journey-actions.d.ts",
      "browser": "./dist/browser/journey-actions.js",
      "bun": "./dist/journey-actions.js",
      "node": "./dist/node/journey-actions.js",
      "default": "./dist/journey-actions.js"
    },
    "./offline-admission": {
      "types": "./dist/offline-admission.d.ts",
      "browser": "./dist/browser/offline-admission.js",
      "bun": "./dist/offline-admission.js",
      "node": "./dist/node/offline-admission.js",
      "default": "./dist/offline-admission.js"
    },
    "./offline-policy": {
      "types": "./dist/offline-policy.d.ts",
      "browser": "./dist/browser/offline-policy.js",
      "bun": "./dist/offline-policy.js",
      "node": "./dist/node/offline-policy.js",
      "default": "./dist/offline-policy.js"
    },
    "./offline-replay": {
      "types": "./dist/offline-replay.d.ts",
      "browser": "./dist/browser/offline-replay.js",
      "bun": "./dist/offline-replay.js",
      "node": "./dist/node/offline-replay.js",
      "default": "./dist/offline-replay.js"
    },
    "./personal-calm-design-pack": {
      "types": "./dist/personal-calm-design-pack.d.ts",
      "browser": "./dist/browser/personal-calm-design-pack.js",
      "bun": "./dist/personal-calm-design-pack.js",
      "node": "./dist/node/personal-calm-design-pack.js",
      "default": "./dist/personal-calm-design-pack.js"
    },
    "./personal-domain-pack": {
      "types": "./dist/personal-domain-pack.d.ts",
      "browser": "./dist/browser/personal-domain-pack.js",
      "bun": "./dist/personal-domain-pack.js",
      "node": "./dist/node/personal-domain-pack.js",
      "default": "./dist/personal-domain-pack.js"
    },
    "./personal-experience.feature": {
      "types": "./dist/personal-experience.feature.d.ts",
      "browser": "./dist/browser/personal-experience.feature.js",
      "bun": "./dist/personal-experience.feature.js",
      "node": "./dist/node/personal-experience.feature.js",
      "default": "./dist/personal-experience.feature.js"
    },
    "./presentation-access": {
      "types": "./dist/presentation-access.d.ts",
      "browser": "./dist/browser/presentation-access.js",
      "bun": "./dist/presentation-access.js",
      "node": "./dist/node/presentation-access.js",
      "default": "./dist/presentation-access.js"
    },
    "./presentation-composer": {
      "types": "./dist/presentation-composer.d.ts",
      "browser": "./dist/browser/presentation-composer.js",
      "bun": "./dist/presentation-composer.js",
      "node": "./dist/node/presentation-composer.js",
      "default": "./dist/presentation-composer.js"
    },
    "./privacy-center": {
      "types": "./dist/privacy-center.d.ts",
      "browser": "./dist/browser/privacy-center.js",
      "bun": "./dist/privacy-center.js",
      "node": "./dist/node/privacy-center.js",
      "default": "./dist/privacy-center.js"
    },
    "./resolver": {
      "types": "./dist/resolver.d.ts",
      "browser": "./dist/browser/resolver.js",
      "bun": "./dist/resolver.js",
      "node": "./dist/node/resolver.js",
      "default": "./dist/resolver.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/lib.contracts-spec-core](https://lssm.co/docs/packages/lib.contracts-spec-core/): `workspace:^`
- [@lssm-tech/lib.design-catalog](https://lssm.co/docs/packages/lib.design-catalog/): `workspace:^`
- [@lssm-tech/lib.personal-os-spec](https://lssm.co/docs/packages/lib.personal-os-spec/): `workspace:^`
- [@lssm-tech/lib.personalization](https://lssm.co/docs/packages/lib.personalization/): `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:*`
- `@types/bun`: `catalog:types`
- `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
{
  "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 .",
  "prebuild": "contractspec-bun-build prebuild",
  "test": "bun test",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Module Personal Experience documentation](https://www.npmjs.com/package/%40lssm-tech%2Fmodule.personal-experience) — declared link; destination not verified.

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

## Existing agent-guide projection

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