# ASHR.work product integration pack

This folder is the **source of truth** for everything the Miatz learning and
certification platform needs in order to train, assess and certify people on
ASHR.work. It is authored here, in the ASHR.work repo, versioned with the
product, and served publicly at `https://ashr.work/miatz/…`.

Contract it implements: `docs/b2b/PRODUCT-INTEGRATION-PACK.md` (v1, 2026-08-07)
in the `miatz-as/miatz` repo — Part A, items A1, A3, A4 and A5.

## The boundary this pack is written under

Miatz is a **separate company** (`miatz-as` GitHub org, its own Vercel team, its
own Supabase org — `ECOSYSTEM.md` §1). Demystify Systems, which owns ASHR.work,
is a **customer tenant and reseller** of that platform, not a co-owner of it.

Three consequences, all of them load-bearing:

1. **The integration is registry-first and pull-based.** ASHR.work *publishes*
   artifacts at stable public URLs it owns. Miatz crawls them. This repo holds
   no Miatz credential, calls no Miatz API, and registers nothing.
2. **ASHR.work does not rebuild the LMS.** No courses, no player, no assessment
   engine, no certificate issuance lives in this repo, and none is planned. The
   items in `assessment/` are *seed content published for import*, not an exam
   ASHR.work runs.
3. **Nothing here is written to Miatz's schema by this repo.** Import is a
   platform-side, service-role operation. If the shapes below drift from the
   contract, the contract wins and this folder is corrected.

## What is in here

| File | Contract item | What it is |
|---|---|---|
| `miatz.product.json` | A1 | The manifest — the single index the platform reads first. Every URL it advertises resolves to a real route or file in this repo (asserted by `tests/api/miatz-pack.test.ts`). |
| `tracks.md` | A3 | Persona → `role_track` × `level` map, personas keyed to the six ids in `docs/strategy/ICP.md`. |
| `assessment/<track>/blueprint.json` | A4 | Weighted domain map per track. Weights sum to 1.0. Cut score is **not** here — it comes from the Angoff panel on-platform. |
| `assessment/<track>/items/<domain>.json` | A4 | Seed items per domain, ≥ 3× the blueprint `count`. |
| `assessment/<track>/credential.json` | A4 | The credential's face, including `validity_days` and the renewal window. |
| `sme-roster.md` | A5 | The roster **shape** and the roles that must be filled. The named humans are a human decision, not an agent's. |

### Layout note — per-track directories

The contract's A4 example shows `blueprint.json`, `items/` and `credential.json`
directly under `miatz/assessment/`, because it illustrates a single track. This
pack publishes **two** tracks, and A4's own wording is *"per certification
track, provide…"*, so each track gets its own directory. The manifest's
`tracks[]` array indexes them explicitly, so a crawler never has to guess the
layout from a path convention.

## Divergences from the earlier `ashr-ops` pack

An `ashr` pack previously lived inside the Miatz repo at
`content/packs/ashr/`. This folder supersedes it. Three deliberate changes:

1. **Items are grounded in the real ASHR.work corpus.** The earlier pack said,
   honestly, that ASHR.work had no public docs site and that its items were
   therefore "grounded in generic people-operations practice, not in cited
   product pages". That is no longer true: `/docs` and `/help` are live. Every
   item in this pack carries a `cites` array of ASHR.work URLs that resolve
   in-tree, and the questions test **how ASHR.work behaves** — how a payroll run
   moves from draft to locked, what an anonymous concern's tracking token is
   for — not generic HR theory.
2. **`answer_key.correct` is an array**, per the contract's A4 example
   (`{ "correct": ["b"] }`). The earlier pack wrote a bare string. The contract
   wins.
3. **Canonical brand spelling.** `name` is `ASHR.work`, not `ashr.work`. The
   `id` stays `ashr` — it is the apps-catalog slug and must not change. It is
   never `asher`.

## Honest limits

- **The item bank is a seed, not a bank.** 36 items across two tracks: 21 for
  `ashr-ops`, 15 for `ashr-posh`. That meets the contract's 3× floor against the
  blueprint counts published here, and no more. Blueprint counts were sized to
  what could be authored honestly, not the other way round.
- **No cut score is proposed.** Setting one without the Angoff panel would be
  inventing a number. The panel is a human step (see `sme-roster.md`).
- **No developer track.** ASHR.work does have a public API and an OpenAPI
  document (`openapi_url` above), so a `ashr-developer` track is now *possible*
  where it was not before — but authoring one is separate work, not a side
  effect of this pack.
- **The POSH source policy is a template awaiting legal review.** See
  `tracks.md` → `ashr-posh` for exactly what that means for the track.
