AGENTS.md · diff

git:20260726.68739c3 to git:20260730.8dcdbc1

32 added, 13 removed. Audit A to A.

# pdf-reader-mcp — local agent notes only
Static engineering and delivery standards load from the active Skills runtime
([SylphxAI/skills](https://github.com/SylphxAI/skills) is binding instruction
- SSOT). Doctrine and Mission Control are retired historical lineage and must not
- be loaded as current instruction authority.
+ SSOT). Doctrine, Mission Control, and GroundAtlas package dogfood are retired
+ historical lineage and must not be loaded as current instruction or live-state
+ authority.
- Local truth: `PROJECT.md`, `.doctrine/project.json` when present.
+ Local truth:
+ - `PROJECT.md` — human projection
+ - `project.manifest.json` — machine fact authority (project-manifest-standard)
+
## Boundary hazards
- Local-first privacy: do not upload documents or call remote providers unless
+ the caller explicitly selects a remote provider adapter.
- No hosted auth, billing, storage, tenancy, durable work, or customer-account
+ state in this package.
- No direct provider secrets, Gateway credentials, or product-specific model
+ routing.
- Optional OCR/vision/region providers stay behind typed adapters with
+ fail-closed defaults.
- Public MCP schemas are contracts — version and regression-test option/output
+ shapes. Production schema authority is the Rust MCP server, not residual TS.
- Preserve page/region/source provenance on extraction and analysis outputs.
- - Package publishing is Changesets / bot-owned; do not publish from a human shell
+ - Package publishing is Changesets / bot-owned; do not publish from a human shell.
- Never commit secrets, private documents, or customer data.
## Local commands
```bash
+ bun install --frozen-lockfile
bun run typecheck
bun run test
bun run check
bun run build
bun run docs:build
bun test test/project-control.test.ts
+ bun run check:ts-production-absence
```
## Validation notes
- Prefer the **narrowest** affected check before full workspace runs.
- - Report layers honestly: local diff · trunk FF · deploy · prod proof (do not collapse).
+ - Report layers honestly: local diff · trunk land · package publish · registry
+ readback (do not collapse).
+ - Adoption gaps live in `project.manifest.json`; do not claim `adopted` while
+ residual TS, version skew, or trunk CI gaps remain open.
## Backend false-authority fence
- Work: wi_01KYFN6993PMG8WD00Q51AE231
-
If this repository has completed a **Rust backend** cutover:
- 1. Production backend behavior authority is the Rust crate/binary/service path declared in `sylphx.toml` / deploy manifests / package `bin` native path / Docker ENTRYPOINT.
- 2. Residual TypeScript service trees or alternate TS engines are **not** product authority unless explicitly proven still on the live path.
- 3. Do not "fix production" by editing residual TypeScript and assuming deploy/runtime will pick it up.
- 4. Prefer deleting residual TS backend trees after Rust sole proof; keep history in Git.
- 5. Intentional TypeScript frontends, npm packaging wrappers, and native-binding surfaces may remain.
+ 1. Production backend behavior authority is the Rust crate/binary path declared
+ in package `bin` / native optional packages / Docker ENTRYPOINT when present.
+ 2. Residual TypeScript service trees or alternate TS engines are **not** product
+ authority unless explicitly proven still on the live path.
+ 3. Do not "fix production" by editing residual TypeScript and assuming
+ deploy/runtime will pick it up.
+ 4. Prefer deleting residual TS backend trees after sole-Rust proof; keep history
+ in Git.
+ 5. Intentional TypeScript packaging wrappers and native-binding surfaces may remain.
### Repo-specific note
- Native Rust engine is product authority; npm dist/bin wrappers are packaging surface only, not alternate backend authority.
+ Native Rust engine is product authority; npm `dist/runtime-entry.js` and
+ `dist/pure-rust.js` are packaging/launcher surfaces only, not an alternate PDF
+ backend. Historical TypeScript LKG (if needed) is the external pin
+ `@sylphx/pdf-reader-mcp@3.0.14`, not residual source under `src/`.