# @stravica-ai/engineering-pa-librarian

Identity: `@stravica-ai/engineering-pa-librarian` — librarian client + deployed distillation service.

## Status

**Skeleton — v0.1.0.** Workspace-internal, `"private": true`, not individually published.

Two distinct surfaces ship here, in different phases:

- **Phase 1 Task 4** — role-as-library librarian: in-session distillation for personal/operator knowledge. Ported from Stravica/dave's predecessor implementation.
- **Phase 3** — deployed librarian service: runs scheduled (cron-style) on a team-deployment host (smarthome01 for HQ, per-team VM elsewhere), pulls each PA's `intake/{paName}/`, distills into the team library's `canonical/`, commits a PR, auto-merges. The sole writer to `canonical/`.

Both surfaces obey the [knowledge-system standard](https://github.com/Stravica/dave/blob/main/operator/knowledge/engineering/standards/knowledge-system.md): raw/canonical/schema layer separation, KCS Solve/Evolve routing, Wikipedia-NPOV per-claim conflict blocks, Mem0-style hybrid retrieval, LangMem semantic/episodic/procedural memory typing.

## Layout

```
packages/librarian/
  index.mjs            # placeholder export; populated in Task 4 / Phase 3
  package.json         # name, version, scripts
  README.md            # this file
  test/index.test.mjs
```

## Open operator decisions

The knowledge-system standard surfaces eight deferred operator decisions (personal-vs-team routing default, confirmation semantics, cross-PA notification mechanism, schema versioning lifecycle, GraphRAG summaries, personal-vs-team librarian role, talk-page equivalent, multi-tenant write enforcement). None are resolved in this skeleton.

## Tests

```bash
pnpm --filter @stravica-ai/engineering-pa-librarian test
```

## Standards

Follows the [tooling standard](../../CONTRIBUTING.md#standards): JS only, zero npm deps, `node:test`, camelCase JSON.
