# Concepts

## Projects

A project is the highest-level collection of entities in asserted.io.&#x20;

It has a plan attached to it that defines the maximum number of routines that can be added within a project, and the maximum total test time available for all of those routines to run.

You can also invite team members to a project, so they can modify, push, or remove routines.

## Routines

A routine is a collection of files and tests (written for Mocha), that is executed on the interval specified in the [`routine.json`](/reference/routine-json.md) file within the `.asserted` directory of a given repo.

## Records

Test records are the individual recorded results for a given test run. They can be viewed in the UI at [asserted.io](https://app.asserted.io) or using the CLI command `asrtd records`.

![asrtd records CLI command output](/files/-M8DWy2U_gostUsWg7fe)

## Timeline and Timeline Events

The aggregated history of the changes in routine status (from DOWN to UP, etc) are captured in the timeline and a collection of all the records of a specific state are called a timeline event. This can be viewed as **History** within the UI for a given routine, or by running `asrtd timeline` with the CLI.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.asserted.io/concepts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
