Building an internal tool with AI: from CSV rules to a tested interface
Define inputs, aggregation rules, error handling, and verification when building a CSV business tool with an AI coding agent, using a concrete example.

A small tool for repetitive work needs defined inputs, processing rules, outputs, and completion conditions. “Build a CSV analysis screen” is less useful than explaining which columns to read, what to calculate, and how errors should appear.
Wissly Code writes and edits code from a request and runs it in an isolated environment on an internal server. A business user can explain the rules while developers or IT staff review code and execution conditions.
Divide the workflow into inputs, rules, and outputs
For example, consider a tool that counts submitted cases by owner and lists overdue cases from a CSV.
| Part | Decision |
|---|---|
| Input | Case ID, owner, submitted date, due date, status |
| Processing | Owner totals and overdue incomplete cases |
| Output | Owner table, overdue list, invalid rows |
| Errors | Missing columns, empty owners, invalid dates, duplicate IDs |
| Completion | Example output agrees with a manual calculation |
Specify whether a case due today is overdue, whether completed cases are excluded, and how repeated case IDs should be handled. Without these rules, an attractive interface can still produce the wrong business result.
Prepare a small file and expected output
Include invalid rows as well as normal ones. For example:
| Case ID | Owner | Due date | Status |
|---|---|---|---|
| R-01 | A | 2026-09-28 | Incomplete |
| R-02 | A | 2026-10-02 | Complete |
| R-03 | B | Invalid date | Incomplete |
With an example test date of 2026-09-29, owner A has two valid cases and R-01 appears in the overdue list. R-03 belongs in the date-error list and is kept separate from valid aggregation. Define reference-date and timezone rules for actual operation.
CSV values can contain commas, quotation marks, and line breaks. A format-aware parser, such as Python's CSV tools, is more appropriate than splitting each line at every comma.
Put the requirements into the request
An example request could be:
Read this test CSV and show valid case counts by owner. List incomplete cases whose due date is earlier than the reference date. Put invalid dates in an error list and keep processing valid rows. Do not overwrite the original file. Check the output against the example results.
Validate parsing and calculations before refining the interface. Otherwise, visual changes can obscure an unresolved data-processing problem.
Check calculations and the interface separately
For calculations, inspect row counts, totals, excluded records, and invalid rows. Your team should be able to account for the input records across those categories.
For the interface, check file selection, progress, result tables, error messages, and small-screen layout. With no input or a missing column, the user should understand what to do next.
Wissly Code's preview shows the running project application. A working preview does not publish a service for other users. Sharing and production operation need a separate deployment decision.
Prepare dependencies and connections
The default runtime supports Node.js and Python. Excel processing or database access requires appropriate packages and connections. In an isolated network, provide an internal package source or install dependencies beforehand.
Begin with test CSV data. Before using business records, agree storage location, access permissions, and output retention. The air-gapped preparation guide covers the runtime prerequisites.
Give the tool an operating owner
A changed business rule can require changes to both code and tests. Assign responsibility for renamed columns, new statuses, aggregation changes, and user-reported errors.
Review the code and results before production deployment through internal CI/CD. Wissly Code is available in beta; share the tool you want to build and your development environment when discussing access.
The product screenshot shows the Korean interface.
