principles.md•1.92 kB
# Development Principles
This project adheres to the following core principles, based on the provided TypeScript Project Development Guidelines:
## 1. Impact-Driven
The primary goal is to solve the real problem of AI agents needing access to PDF content securely and efficiently. Features are added to serve this core purpose.
## 2. Simplicity & Minimalism
We aim for the most direct approach:
- A single, consolidated `read_pdf` tool instead of multiple specific tools.
- Leveraging the robust `pdfjs-dist` library for core parsing.
- Avoiding unnecessary abstractions.
## 3. Functional Programming Style (Influences)
While not strictly functional, the code emphasizes:
- Pure helper functions where possible (like path resolution checks).
- Minimizing side effects within core logic (parsing doesn't alter files).
- Using standard asynchronous patterns (`async/await`) effectively.
## 4. Minimal Dependencies
- Core functionality relies on `@modelcontextprotocol/sdk` and `pdfjs-dist`.
- Development dependencies are standard tools (TypeScript, ESLint, Prettier, Vitest).
- Dependencies like `glob`, `zod`, `zod-to-json-schema` provide essential validation and utility.
- Unused dependencies inherited from the template (`diff`, `detect-indent`) have been removed.
## 5. Code Quality & Consistency
- **Strict TypeScript:** Using the strictest compiler options (`strict: true`, etc.).
- **Rigorous Linting:** Employing ESLint with recommended and strict type-checked rules.
- **Consistent Formatting:** Enforced by Prettier.
- **Comprehensive Testing:** Aiming for high test coverage (currently ~95%) using Vitest, with a 100% threshold configured.
## 6. Security Focus
- Path traversal prevention is critical. All file paths are resolved relative to the project root and validated.
## 7. No Sponsorship
This project does not accept financial contributions, and all related information has been removed.