widgettdc-api / docs /GUARDRAILS.md
Kraft102's picture
fix: sql.js Docker/Alpine compatibility layer for PatternMemory and FailureMemory
5a81b95
# Repository Guardrails & Best Practices
## 1. Monorepo Structure Integrity
To maintain a clean "One Source of Truth" architecture, the following rules must be strictly enforced:
### 🚫 Root Directory Restrictions
The root directory must **ONLY** contain:
- Project configuration (`package.json`, `tsconfig.json`, `.gitignore`, etc.)
- Core documentation (`README.md`, `CONTRIBUTING.md`, `SECURITY.md`)
- Workspace folders (`apps/`, `packages/`, `docs/`, `scripts/`)
**NEVER** create:
- Source code folders (`src/`, `utils/`, `components/`) in root.
- Random script files (`.py`, `.sh`, `.bat`) in root.
- Temporary folders (`temp/`, `debug/`) in root.
### πŸ“‚ File Placement Guide
| Type | Correct Location |
|------|------------------|
| **Frontend Code** | `apps/matrix-frontend/src/` |
| **Backend Code** | `apps/backend/src/` |
| **Shared Types** | `packages/domain-types/` or `packages/mcp-types/` |
| **Shared Logic** | `packages/shared-utils/` (Future) |
| **Documentation** | `docs/{category}/` (e.g., `docs/architecture/`) |
| **Scripts** | `scripts/` |
| **Design Assets** | `design-references/` |
## 2. Development Workflow
### πŸ“¦ Dependency Management
- **Root `package.json`**: Only for dev-dependencies (eslint, typescript, vitest) and orchestration scripts.
- **App `package.json`**: Application-specific dependencies (react, express, etc.) must live in `apps/{app-name}/package.json`.
### πŸ”„ Single Command Start
Always use the root `npm run dev` to start the full stack. This ensures all services run in the correct context with correct environment variables.
## 3. Documentation Standards
- **Consolidation**: Do not create new `.md` files in root for status updates. Update existing files in `docs/status/`.
- **Archive**: When a feature is complete or a document is obsolete, move it to `docs/archive/` instead of leaving it to clutter the active documentation.
## 4. Automated Enforcement (Future)
To ensure these rules are followed, we will implement:
- **Husky Hooks**: Pre-commit checks to prevent committing files in root.
- **Lint-Staged**: Ensure all committed code passes linting.
- **CI Checks**: Fail build if unauthorized directories appear in root.