AGENTS.md
Guidance for coding agents working on AlexandrAI Tools CSV to Markdown in the alexandrai-tools project.
Project overview
This guide covers src/tools/csv-to-markdown/index.ts. The tool parses delimited rows with support for double-quoted fields, escaped quotes, configurable delimiter, optional header behavior, column padding, and pipe escaping before emitting a GitHub-flavored Markdown table.
Primary source files
- src/tools/csv-to-markdown/index.ts defines meta, CsvResult, CsvOptions, row parsing, cell escaping, and csvToMarkdown.
- src/tools/csv-to-markdown/index.test.ts covers simple conversion, quoted commas, escaped quotes, empty input, header-only output, pipe escaping, and custom delimiters.
- src/tools/csv-to-markdown/Body.astro owns the browser textarea and options.
- src/tools/csv-to-markdown/i18n.ts owns localized copy.
- src/lib/tools.ts registers metadata for the utility site.
Setup commands
npm install npm test npm run typecheck npm run build npm run dev
Change rules
- Keep quoted-field parsing deterministic and independent from browser state.
- Escape pipe characters before writing Markdown cells.
- Replace cell newlines with spaces so generated Markdown stays row-oriented.
- Pad short rows to the maximum parsed column count.
- Return ok true with empty output for empty or whitespace-only input.
- Do not upload CSV content or send it to a parser service.
- If multiline quoted CSV is added, update parser assumptions and tests together.
Testing
Test simple CSV, quoted delimiters, escaped quotes, custom delimiters, ragged rows, header-only output, no-header mode, empty input, pipe escaping, and multiline-cell behavior if supported later.
PR checklist
- npm test passes for csv-to-markdown.
- Generated tables preserve column count.
- Pipes in cells cannot break table structure.
- CSV content remains browser-local.