# mDMS Document-management strategy + tooling: Paperless-ngx + Paperless-AI + Canon SMB bridge. **Memory group_id:** `mdms` (new — formerly `otto` for these issues) **Project type:** infrastructure + AI-classification pipeline. No web frontend, no application server. Deploys live on mDock; data on mTrueNAS. ## Spinout context Migrated out of `m/otto` on 2026-05-15. Strategy doc + paperless-AI tooling + samba-canon bridge moved here. The original implementation history is in `m/otto` issues #429–#438. Going forward, file all mDMS issues here. ## Layout - `docs/strategy.md` — the bible. Taxonomy (10 types, 13 tags), filename conventions, OCR-pipeline decisions. Read first. - `infra/paperless/` — AI-classification layer config: `SYSTEM_PROMPT.txt`, audit log, `migrate_types.py`. - `infra/samba-canon/` — host-network Samba 4.10 SMB1 bridge for Canon MB5100. ## Sibling repo `m/paperless` — separate, bare Docker Compose for Paperless-ngx itself. `~/paperless/` on mDock is its checkout. Keep that for deployment; this repo is for *strategy* + *AI/classification* + *Canon bridge*. ## Live deployment touchpoints - `mdock:8777` — Paperless-ngx (managed via `~/paperless/`, i.e. `m/paperless` repo) - `mdock:3077` — Paperless-AI (config in this repo: `infra/paperless/`) - mDock `~/samba-canon/` — Canon SMB bridge (source in this repo: `infra/samba-canon/`) - mDock `~/mdms-mover/` — Age-gated inbox mover (source still in `m/otto` per issue #438, to be migrated in) When code in this repo and the live deployment drift, fix in the repo first, then deploy. ## Conventions - Audit JSON: `infra/paperless/_.json` — keep them in-repo as historical record (migrate_types_audit_*.json etc.) - Issues filed here, not in `m/otto`. - Per global CLAUDE.md: Always `--netrc-file ~/.netrc-mai` for Gitea API as mAi.