AGENTS.md
Guidance for coding agents working on AlexandrAI Tools Triangle Calculator in the alexandrai-tools project.
Project overview
This guide covers src/tools/triangle-calculator/index.ts. The tool validates all three sides as positive and satisfying the triangle inequality, returns zero area for invalid triangles from heronArea, and returns a structured invalid result with an error from calcTriangle.
Primary source files
- src/tools/triangle-calculator/index.ts defines meta, TriangleResult, heronArea, isValidTriangle, and calcTriangle.
- src/tools/triangle-calculator/index.test.ts covers 3-4-5 triangles, equilateral triangles, invalid triangles, zero sides, valid calcTriangle output, and invalid calcTriangle errors.
- src/tools/triangle-calculator/Body.astro owns browser controls.
- src/tools/triangle-calculator/i18n.ts owns localized copy.
- src/lib/tools.ts registers metadata.
Setup commands
npm install npm test npm run typecheck npm run build npm run dev
Change rules
- Require each side to be greater than zero.
- Require all triangle inequality checks to pass.
- Return zero area from heronArea for invalid triangles.
- Compute semiperimeter as (a + b + c) / 2.
- Compute area with Heron formula.
- Return perimeter as a + b + c for valid triangles.
- Keep invalid calcTriangle output structured with valid false and an error.
Testing
Test right triangles, equilateral triangles, degenerate triangles, zero sides, negative sides, invalid inequality in each side position, fractional sides, perimeter, area, and UI error display.
PR checklist
- npm test passes for triangle-calculator.
- Validation, formatting, and numeric precision behavior remain documented.
- Pure helpers stay browser-local and side-effect free.
- UI labels, metadata, and tests update together for behavior changes.