Skip to content

Add repo navigation guide #398

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Repo Navigation Guide

This repository contains the AR.IO gateway node written primarily in **TypeScript**.
The codebase follows a conventional layout:

- `src/` – main application source files.
- `test/` – end-to-end and unit tests.
- `features/` – cucumber feature files and step definitions.
- `docs/` – documentation and diagrams.
- `migrations/` – SQL migration scripts.
- `scripts/` – helper shell scripts.
- `docker-compose.yaml` – compose stack for development.

## Development

- Install dependencies with **Yarn** (`yarn install`). Node 20 is expected (`.nvmrc`).
- Build the project with `yarn build`.
- Run the service in development via `yarn start`.

## Testing

- Lint source and tests using `yarn lint:check`; auto-fix issues with `yarn lint:fix`.
- Unit and integration tests run with `yarn test`. Coverage uses `yarn test:ci`.
- End-to-end tests (Docker based) run with `yarn test:e2e`.
- Cucumber feature tests run with `yarn test:features`.

## Style

- Prettier enforces 2‑space indent, single quotes and trailing commas (`.prettierrc`).
- ESLint configuration requires the license header from `resources/license.header.js` at the top of source files.

## Misc

- Environment variables for configuration are documented in `docs/envs.md`.
- Release workflow notes are in `docs/release-process.md`.
- Diagram generation targets live in `Makefile`.