reph

Templates · Engineering

README template

Project overview, setup, usage and contributing

Start with this template →Sign in

Opens on reph with the template ready to start. No account needed; sign in to keep your document.

Use it when

A repository, library or internal service needs the front page a newcomer reads first: what it is, how to run it and how to contribute

Who it's for

EngineerTech lead

Filled example

The template filled in for a made-up company, so you can see what good looks like.

ledgerline

A small Node.js service that imports bank statement CSVs, categorizes each transaction, and posts the result to Northwind's finance warehouse. Built for the finance ops team.

Features

  • Imports CSV statements from five bank formats, detected automatically.
  • Categorizes transactions with editable rules in rules/*.yaml, no code changes needed.
  • Flags duplicates across overlapping statement periods before anything is posted.
  • Posts clean batches to the warehouse and writes a reconciliation report per run.

Getting started

Prerequisites

  • Node.js 20 or newer
  • Docker, for the local Postgres used in tests
  • A warehouse service account (ask #finance-eng for read-only dev credentials)

Installation

git clone git@github.com:northwind/ledgerline.git
cd ledgerline
npm install
cp .env.example .env

Usage

npm run dev

Import one statement and preview the result without posting anything:

npm run import -- --file samples/acme-bank-2026-08.csv --dry-run

The dry run prints a table of categorized transactions and any suspected duplicates. Drop --dry-run to post the batch.

Configuration

Variable Default Description
DATABASE_URL postgres://localhost:5432/ledgerline Local staging database
WAREHOUSE_URL none Warehouse endpoint; required unless --dry-run
WAREHOUSE_TOKEN none Service account token, never committed
RULES_DIR ./rules Folder of categorization rule files
LOG_LEVEL info One of debug, info, warn, error

Development

docker compose up -d db
npm test
npm run lint

Tests use fixture statements in test/fixtures/. When adding a bank format, add a fixture with at least one duplicate and one unknown category so both paths are covered.

Contributing

Open an issue in the Finance Engineering project before large changes. Branch names follow feat/<short-name> or fix/<short-name>, and every pull request needs one review from the finance-eng group plus a green CI run. Rule-only changes in rules/ can be approved by finance ops directly.

License

Internal to Northwind. Owned by the Finance Engineering team; questions go to #finance-eng.

The template

Show the blank template

README

One-line description of what this project does and who it's for.

Features

The three or four things this project actually does, not an exhaustive API list.

Getting started

Prerequisites

  • Runtime version, required accounts/credentials, system dependencies

Installation

git clone <repo-url>
cd README
npm install

Usage

npm run dev

A minimal, copy-pasteable example of the most common thing someone will do with this.

Configuration

Variable Default Description

Development

How to run tests, lint, and the local dev loop. Link CONTRIBUTING.md if it's more than a few lines.

Contributing

PR process, branch naming, where to file issues, or a pointer to a separate CONTRIBUTING.md.

License

License name and link. Every public repo needs one.

Questions

How long should a README be?
Short enough to read in five minutes; move deep material to a docs folder and link it
What matters most?
A copy-pasteable path from clone to a running project, tested on a fresh machine
Does an internal project need a license section?
Yes, one line: say it is proprietary and internal, and name the owning team, so nobody copies it into an open source repo or a client deliverable

Fill it with your agent

Connect Claude to reph over MCP, then paste this. The draft arrives as suggestions you accept or reject section by section. How to connect Claude.

Find my reph doc "README" with search_docs, then read it with read_doc. Draft each section from the package manifest, env example file, CI config and docs folder I paste. Use the real install and run commands from the manifest scripts and list every environment variable with its default. File it with suggest_edit, one replace_section op per section (heading line kept) so each can be accepted alone. Ask each open question (commands you could not verify) with add_comment quoting that section's heading line, then call request_review with a one-line summary.

Related templates

Start with this template →Sign in