# @lssm-tech/module.learning-journey

Comprehensive learning journey engine - onboarding, LMS, flashcards, gamification, and AI personalization

## Source and release context

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

## Package metadata

```json
{
  "layer": "domains",
  "physicalArea": "learning",
  "primaryArea": "personal-and-learning",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "solutions",
    "catalogKind": "module",
    "catalogStatus": "active",
    "adoptionMode": "adoptable",
    "stability": "stable"
  },
  "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/learning/module/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/learning/module/README.md",
  "blobSha": "f7291f90c3275e1ae85b1d95b76495af608f3c17",
  "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.learning-journey

Website: https://contractspec.io

**Canonical adaptive journey runtime for onboarding, drills, coaching, LMS, flashcards, gamification, and AI personalization.**

## What It Provides

- **Layer**: module.
- **Consumers**: bundles (library, contractspec-studio), apps (web-landing).
- `src/contracts/` contains contract specs, operations, entities, and registry exports.
- `src/docs/` contains docblocks and documentation-facing exports.

## Installation

`npm install @lssm-tech/module.learning-journey`

or

`bun add @lssm-tech/module.learning-journey`

## Usage

Import the root entrypoint from `@lssm-tech/module.learning-journey`, or choose a documented subpath when you only need one part of the package surface.

Existing `StreakEngine`, `XPEngine`, singleton, root, and engine-subpath exports
remain unchanged. The `./engines` surface also provides adapters for projecting
legacy `Date`-based learning state and XP receipts into the storage-neutral
`@lssm-tech/lib.gamification-runtime` shapes.

Use `./engines/gamification-progress-adapters` to serialize and restore the
unchanged `JourneyProgressState` shape without losing its `Date` fields. These
adapters do not alter legacy timezone, streak, or XP rounding behavior.

Creator training can use `./contracts/competencies` and
`./runtime/competencies` for evidence-backed mastery projections, plus
`./contracts/coaching` and `./runtime/coaching` for contestable assistive
coaching proposals. These projections never grant product authority.

## Architecture

- `src/contracts/` contains contract specs, operations, entities, and registry exports.
- `src/docs/` contains docblocks and documentation-facing exports.
- `src/engines` is part of the package's public or composition surface.
- `src/entities/` contains domain entities and value objects.
- `src/events.ts` is package-level event definitions.
- `src/i18n` is part of the package's public or composition surface.
- `src/index.ts` is the root public barrel and package entrypoint.

## Public Entry Points

- Export `.` resolves through `./src/index.ts`.
- Export `./contracts` resolves through `./src/contracts/index.ts`.
- Export `./contracts/coaching` resolves through `./src/contracts/coaching.ts`.
- Export `./contracts/competencies` resolves through `./src/contracts/competencies.ts`.
- Export `./contracts/models` resolves through `./src/contracts/models.ts`.
- Export `./contracts/journey` resolves through `./src/contracts/journey.ts`.
- Export `./contracts/onboarding` resolves through `./src/contracts/onboarding.ts`.
- Export `./contracts/operations` resolves through `./src/contracts/operations.ts`.
- Export `./contracts/shared` resolves through `./src/contracts/shared.ts`.
- Export `./docs` resolves through `./src/docs/index.ts`.
- Export `./docs/learning-journey.docblock` resolves through `./src/docs/learning-journey.docblock.ts`.
- Export `./engines` resolves through `./src/engines/index.ts`.
- Export `./engines/gamification-adapters` resolves through `./src/engines/gamification-adapters.ts`.
- Export `./engines/gamification-progress-adapters` resolves through `./src/engines/gamification-progress-adapters.ts`.
- Export `./engines/srs` resolves through `./src/engines/srs.ts`.
- Export `./runtime` resolves through `./src/runtime/index.ts`.
- Export `./runtime/coaching` resolves through `./src/runtime/coaching.ts`.
- Export `./runtime/competencies` resolves through `./src/runtime/competencies.ts`.
- Export `./runtime/onboarding-runtime` resolves through `./src/runtime/onboarding-runtime.ts`.
- The package publishes 41 total export subpaths; keep docs aligned with `package.json`.

## Local Commands

- `bun run dev` — contractspec-bun-build dev
- `bun run build` — contractspec-bun-build build
- `bun run test` — bun test
- `bun run lint` — bun lint:fix
- `bun run lint:check` — biome check .
- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
- `bun run typecheck` — tsgo --noEmit
- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
- `bun run publish:pkg:canary` — bun publish:pkg --tag canary
- `bun run clean` — rimraf dist .turbo
- `bun run build:bundle` — contractspec-bun-build transpile
- `bun run build:types` — contractspec-bun-build types
- `bun run prebuild` — contractspec-bun-build prebuild

## Recent Updates

- Replace eslint+prettier by biomejs to optimize speed.
- Add full i18n support across all 10 packages (en/fr/es, 460 keys).

## Notes

- SRS/streak/XP engines are pure functions -- keep them side-effect-free.
- i18n catalogs must stay in sync across all supported locales (en, es, fr).
- Entity schemas are shared with the UI; breaking changes propagate to all learning surfaces.


## Declared capabilities

### Module Learning Journey

Capability ID: `package.lssm.tech.module.learning.journey`

Comprehensive learning journey engine - onboarding, LMS, flashcards, gamification, and AI personalization

Use cases:

- Adopt comprehensive learning journey engine - onboarding, lms, flashcards, gamification, and ai personalization

Constraints:

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

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "contractspec",
    "learning",
    "onboarding",
    "gamification",
    "lms",
    "typescript",
    "module",
    "journey"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/module.learning-journey",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts/coaching",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts/competencies",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts/journey",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts/models",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts/onboarding",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts/operations",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/contracts/shared",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/docs",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/docs/learning-journey.docblock",
    "symbols": []
  },
  {
    "from": "@lssm-tech/module.learning-journey/engines",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "solutions",
  "kind": "module",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "stable",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./contracts",
    "./contracts/coaching",
    "./contracts/competencies",
    "./contracts/journey",
    "./contracts/models",
    "./contracts/onboarding",
    "./contracts/operations",
    "./contracts/shared",
    "./docs",
    "./docs/learning-journey.docblock",
    "./engines",
    "./engines/gamification-adapters",
    "./engines/gamification-progress-adapters",
    "./engines/srs",
    "./engines/streak",
    "./engines/xp",
    "./entities",
    "./entities/ai",
    "./entities/course",
    "./entities/flashcard",
    "./entities/gamification",
    "./entities/journey",
    "./entities/learner",
    "./entities/quiz",
    "./events",
    "./i18n",
    "./i18n/catalogs",
    "./i18n/catalogs/en",
    "./i18n/catalogs/es",
    "./i18n/catalogs/fr",
    "./i18n/keys",
    "./i18n/locale",
    "./i18n/messages",
    "./learning-journey.capability",
    "./learning-journey.feature",
    "./runtime",
    "./runtime/coaching",
    "./runtime/competencies",
    "./runtime/matchers",
    "./runtime/onboarding-runtime",
    "./runtime/progress-state",
    "./runtime/scenario-adapters",
    "./runtime/snapshot",
    "./track-spec"
  ],
  "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.learning.journey",
    "from": "@lssm-tech/module.learning-journey",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts/coaching",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts/competencies",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts/journey",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts/models",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts/onboarding",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts/operations",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/contracts/shared",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/docs",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/docs/learning-journey.docblock",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.module.learning.journey",
    "from": "@lssm-tech/module.learning-journey/engines",
    "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.learning-journey` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/learning/module/src/index.ts); verified source file.

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

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

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

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

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

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

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

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

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

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

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

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

- `@lssm-tech/module.learning-journey/engines/gamification-progress-adapters` — subpath `./engines/gamification-progress-adapters`
  - `unconditional`: `./src/engines/gamification-progress-adapters.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/learning/module/src/engines/gamification-progress-adapters.ts); verified source file.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- `@lssm-tech/module.learning-journey/track-spec` — subpath `./track-spec`
  - `unconditional`: `./src/track-spec.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/learning/module/src/track-spec.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"
    },
    "./contracts": {
      "types": "./dist/contracts/index.d.ts",
      "browser": "./dist/browser/contracts/index.js",
      "bun": "./dist/contracts/index.js",
      "node": "./dist/node/contracts/index.js",
      "default": "./dist/contracts/index.js"
    },
    "./contracts/coaching": {
      "types": "./dist/contracts/coaching.d.ts",
      "browser": "./dist/browser/contracts/coaching.js",
      "bun": "./dist/contracts/coaching.js",
      "node": "./dist/node/contracts/coaching.js",
      "default": "./dist/contracts/coaching.js"
    },
    "./contracts/competencies": {
      "types": "./dist/contracts/competencies.d.ts",
      "browser": "./dist/browser/contracts/competencies.js",
      "bun": "./dist/contracts/competencies.js",
      "node": "./dist/node/contracts/competencies.js",
      "default": "./dist/contracts/competencies.js"
    },
    "./contracts/journey": {
      "types": "./dist/contracts/journey.d.ts",
      "browser": "./dist/browser/contracts/journey.js",
      "bun": "./dist/contracts/journey.js",
      "node": "./dist/node/contracts/journey.js",
      "default": "./dist/contracts/journey.js"
    },
    "./contracts/models": {
      "types": "./dist/contracts/models.d.ts",
      "browser": "./dist/browser/contracts/models.js",
      "bun": "./dist/contracts/models.js",
      "node": "./dist/node/contracts/models.js",
      "default": "./dist/contracts/models.js"
    },
    "./contracts/onboarding": {
      "types": "./dist/contracts/onboarding.d.ts",
      "browser": "./dist/browser/contracts/onboarding.js",
      "bun": "./dist/contracts/onboarding.js",
      "node": "./dist/node/contracts/onboarding.js",
      "default": "./dist/contracts/onboarding.js"
    },
    "./contracts/operations": {
      "types": "./dist/contracts/operations.d.ts",
      "browser": "./dist/browser/contracts/operations.js",
      "bun": "./dist/contracts/operations.js",
      "node": "./dist/node/contracts/operations.js",
      "default": "./dist/contracts/operations.js"
    },
    "./contracts/shared": {
      "types": "./dist/contracts/shared.d.ts",
      "browser": "./dist/browser/contracts/shared.js",
      "bun": "./dist/contracts/shared.js",
      "node": "./dist/node/contracts/shared.js",
      "default": "./dist/contracts/shared.js"
    },
    "./docs": {
      "types": "./dist/docs/index.d.ts",
      "browser": "./dist/browser/docs/index.js",
      "bun": "./dist/docs/index.js",
      "node": "./dist/node/docs/index.js",
      "default": "./dist/docs/index.js"
    },
    "./docs/learning-journey.docblock": {
      "types": "./dist/docs/learning-journey.docblock.d.ts",
      "browser": "./dist/browser/docs/learning-journey.docblock.js",
      "bun": "./dist/docs/learning-journey.docblock.js",
      "node": "./dist/node/docs/learning-journey.docblock.js",
      "default": "./dist/docs/learning-journey.docblock.js"
    },
    "./engines": {
      "types": "./dist/engines/index.d.ts",
      "browser": "./dist/browser/engines/index.js",
      "bun": "./dist/engines/index.js",
      "node": "./dist/node/engines/index.js",
      "default": "./dist/engines/index.js"
    },
    "./engines/gamification-adapters": {
      "types": "./dist/engines/gamification-adapters.d.ts",
      "browser": "./dist/browser/engines/gamification-adapters.js",
      "bun": "./dist/engines/gamification-adapters.js",
      "node": "./dist/node/engines/gamification-adapters.js",
      "default": "./dist/engines/gamification-adapters.js"
    },
    "./engines/gamification-progress-adapters": {
      "types": "./dist/engines/gamification-progress-adapters.d.ts",
      "browser": "./dist/browser/engines/gamification-progress-adapters.js",
      "bun": "./dist/engines/gamification-progress-adapters.js",
      "node": "./dist/node/engines/gamification-progress-adapters.js",
      "default": "./dist/engines/gamification-progress-adapters.js"
    },
    "./engines/srs": {
      "types": "./dist/engines/srs.d.ts",
      "browser": "./dist/browser/engines/srs.js",
      "bun": "./dist/engines/srs.js",
      "node": "./dist/node/engines/srs.js",
      "default": "./dist/engines/srs.js"
    },
    "./engines/streak": {
      "types": "./dist/engines/streak.d.ts",
      "browser": "./dist/browser/engines/streak.js",
      "bun": "./dist/engines/streak.js",
      "node": "./dist/node/engines/streak.js",
      "default": "./dist/engines/streak.js"
    },
    "./engines/xp": {
      "types": "./dist/engines/xp.d.ts",
      "browser": "./dist/browser/engines/xp.js",
      "bun": "./dist/engines/xp.js",
      "node": "./dist/node/engines/xp.js",
      "default": "./dist/engines/xp.js"
    },
    "./entities": {
      "types": "./dist/entities/index.d.ts",
      "browser": "./dist/browser/entities/index.js",
      "bun": "./dist/entities/index.js",
      "node": "./dist/node/entities/index.js",
      "default": "./dist/entities/index.js"
    },
    "./entities/ai": {
      "types": "./dist/entities/ai.d.ts",
      "browser": "./dist/browser/entities/ai.js",
      "bun": "./dist/entities/ai.js",
      "node": "./dist/node/entities/ai.js",
      "default": "./dist/entities/ai.js"
    },
    "./entities/course": {
      "types": "./dist/entities/course.d.ts",
      "browser": "./dist/browser/entities/course.js",
      "bun": "./dist/entities/course.js",
      "node": "./dist/node/entities/course.js",
      "default": "./dist/entities/course.js"
    },
    "./entities/flashcard": {
      "types": "./dist/entities/flashcard.d.ts",
      "browser": "./dist/browser/entities/flashcard.js",
      "bun": "./dist/entities/flashcard.js",
      "node": "./dist/node/entities/flashcard.js",
      "default": "./dist/entities/flashcard.js"
    },
    "./entities/gamification": {
      "types": "./dist/entities/gamification.d.ts",
      "browser": "./dist/browser/entities/gamification.js",
      "bun": "./dist/entities/gamification.js",
      "node": "./dist/node/entities/gamification.js",
      "default": "./dist/entities/gamification.js"
    },
    "./entities/journey": {
      "types": "./dist/entities/journey.d.ts",
      "browser": "./dist/browser/entities/journey.js",
      "bun": "./dist/entities/journey.js",
      "node": "./dist/node/entities/journey.js",
      "default": "./dist/entities/journey.js"
    },
    "./entities/learner": {
      "types": "./dist/entities/learner.d.ts",
      "browser": "./dist/browser/entities/learner.js",
      "bun": "./dist/entities/learner.js",
      "node": "./dist/node/entities/learner.js",
      "default": "./dist/entities/learner.js"
    },
    "./entities/quiz": {
      "types": "./dist/entities/quiz.d.ts",
      "browser": "./dist/browser/entities/quiz.js",
      "bun": "./dist/entities/quiz.js",
      "node": "./dist/node/entities/quiz.js",
      "default": "./dist/entities/quiz.js"
    },
    "./events": {
      "types": "./dist/events.d.ts",
      "browser": "./dist/browser/events.js",
      "bun": "./dist/events.js",
      "node": "./dist/node/events.js",
      "default": "./dist/events.js"
    },
    "./i18n": {
      "types": "./dist/i18n/index.d.ts",
      "browser": "./dist/browser/i18n/index.js",
      "bun": "./dist/i18n/index.js",
      "node": "./dist/node/i18n/index.js",
      "default": "./dist/i18n/index.js"
    },
    "./i18n/catalogs": {
      "types": "./dist/i18n/catalogs/index.d.ts",
      "browser": "./dist/browser/i18n/catalogs/index.js",
      "bun": "./dist/i18n/catalogs/index.js",
      "node": "./dist/node/i18n/catalogs/index.js",
      "default": "./dist/i18n/catalogs/index.js"
    },
    "./i18n/catalogs/en": {
      "types": "./dist/i18n/catalogs/en.d.ts",
      "browser": "./dist/browser/i18n/catalogs/en.js",
      "bun": "./dist/i18n/catalogs/en.js",
      "node": "./dist/node/i18n/catalogs/en.js",
      "default": "./dist/i18n/catalogs/en.js"
    },
    "./i18n/catalogs/es": {
      "types": "./dist/i18n/catalogs/es.d.ts",
      "browser": "./dist/browser/i18n/catalogs/es.js",
      "bun": "./dist/i18n/catalogs/es.js",
      "node": "./dist/node/i18n/catalogs/es.js",
      "default": "./dist/i18n/catalogs/es.js"
    },
    "./i18n/catalogs/fr": {
      "types": "./dist/i18n/catalogs/fr.d.ts",
      "browser": "./dist/browser/i18n/catalogs/fr.js",
      "bun": "./dist/i18n/catalogs/fr.js",
      "node": "./dist/node/i18n/catalogs/fr.js",
      "default": "./dist/i18n/catalogs/fr.js"
    },
    "./i18n/keys": {
      "types": "./dist/i18n/keys.d.ts",
      "browser": "./dist/browser/i18n/keys.js",
      "bun": "./dist/i18n/keys.js",
      "node": "./dist/node/i18n/keys.js",
      "default": "./dist/i18n/keys.js"
    },
    "./i18n/locale": {
      "types": "./dist/i18n/locale.d.ts",
      "browser": "./dist/browser/i18n/locale.js",
      "bun": "./dist/i18n/locale.js",
      "node": "./dist/node/i18n/locale.js",
      "default": "./dist/i18n/locale.js"
    },
    "./i18n/messages": {
      "types": "./dist/i18n/messages.d.ts",
      "browser": "./dist/browser/i18n/messages.js",
      "bun": "./dist/i18n/messages.js",
      "node": "./dist/node/i18n/messages.js",
      "default": "./dist/i18n/messages.js"
    },
    "./learning-journey.capability": {
      "types": "./dist/learning-journey.capability.d.ts",
      "browser": "./dist/browser/learning-journey.capability.js",
      "bun": "./dist/learning-journey.capability.js",
      "node": "./dist/node/learning-journey.capability.js",
      "default": "./dist/learning-journey.capability.js"
    },
    "./learning-journey.feature": {
      "types": "./dist/learning-journey.feature.d.ts",
      "browser": "./dist/browser/learning-journey.feature.js",
      "bun": "./dist/learning-journey.feature.js",
      "node": "./dist/node/learning-journey.feature.js",
      "default": "./dist/learning-journey.feature.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"
    },
    "./runtime/coaching": {
      "types": "./dist/runtime/coaching.d.ts",
      "browser": "./dist/browser/runtime/coaching.js",
      "bun": "./dist/runtime/coaching.js",
      "node": "./dist/node/runtime/coaching.js",
      "default": "./dist/runtime/coaching.js"
    },
    "./runtime/competencies": {
      "types": "./dist/runtime/competencies.d.ts",
      "browser": "./dist/browser/runtime/competencies.js",
      "bun": "./dist/runtime/competencies.js",
      "node": "./dist/node/runtime/competencies.js",
      "default": "./dist/runtime/competencies.js"
    },
    "./runtime/matchers": {
      "types": "./dist/runtime/matchers.d.ts",
      "browser": "./dist/browser/runtime/matchers.js",
      "bun": "./dist/runtime/matchers.js",
      "node": "./dist/node/runtime/matchers.js",
      "default": "./dist/runtime/matchers.js"
    },
    "./runtime/onboarding-runtime": {
      "types": "./dist/runtime/onboarding-runtime.d.ts",
      "browser": "./dist/browser/runtime/onboarding-runtime.js",
      "bun": "./dist/runtime/onboarding-runtime.js",
      "node": "./dist/node/runtime/onboarding-runtime.js",
      "default": "./dist/runtime/onboarding-runtime.js"
    },
    "./runtime/progress-state": {
      "types": "./dist/runtime/progress-state.d.ts",
      "browser": "./dist/browser/runtime/progress-state.js",
      "bun": "./dist/runtime/progress-state.js",
      "node": "./dist/node/runtime/progress-state.js",
      "default": "./dist/runtime/progress-state.js"
    },
    "./runtime/scenario-adapters": {
      "types": "./dist/runtime/scenario-adapters.d.ts",
      "browser": "./dist/browser/runtime/scenario-adapters.js",
      "bun": "./dist/runtime/scenario-adapters.js",
      "node": "./dist/node/runtime/scenario-adapters.js",
      "default": "./dist/runtime/scenario-adapters.js"
    },
    "./runtime/snapshot": {
      "types": "./dist/runtime/snapshot.d.ts",
      "browser": "./dist/browser/runtime/snapshot.js",
      "bun": "./dist/runtime/snapshot.js",
      "node": "./dist/node/runtime/snapshot.js",
      "default": "./dist/runtime/snapshot.js"
    },
    "./track-spec": {
      "types": "./dist/track-spec.d.ts",
      "browser": "./dist/browser/track-spec.js",
      "bun": "./dist/track-spec.js",
      "node": "./dist/node/track-spec.js",
      "default": "./dist/track-spec.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.gamification-runtime](https://lssm.co/docs/packages/lib.gamification-runtime/): `workspace:^`
- [@lssm-tech/lib.gamification-spec](https://lssm.co/docs/packages/lib.gamification-spec/): `workspace:^`
- [@lssm-tech/lib.schema](https://lssm.co/docs/packages/lib.schema/): `workspace:^`
- [@lssm-tech/lib.surface-runtime](https://lssm.co/docs/packages/lib.surface-runtime/): `workspace:^`
- [@lssm-tech/lib.translation-runtime](https://lssm.co/docs/packages/lib.translation-runtime/): `workspace:^`
- `zod`: `catalog:`

### 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 --unsafe --only=nursery/useSortedClasses . && 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 Learning Journey documentation](https://www.npmjs.com/package/%40lssm-tech%2Fmodule.learning-journey) — declared link; destination not verified.

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

## Existing agent-guide projection

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