Skip to content
Merged
Show file tree
Hide file tree
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
1 change: 1 addition & 0 deletions .mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ go = "1.25"
just = "latest"
node = "22"
bun = "latest"
uv = "latest"
55 changes: 55 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# AGENTS.md

Test: `just test` | Before committing: `just ready`

Read @CONTRIBUTING.md first. It covers prerequisites, setup, project structure,
code standards, testing, input validation, and how to add an API domain — all of
which apply to agents exactly as they apply to people. This file carries only
what is specific to agents.

## Running tools

Invoke tools through `mise`, not from your path:

```bash
mise exec -- just test
```

`mise` is active in a person's shell and supplies the versions `.mise.toml`
declares. An agent's shell has no activation, so a bare `just` resolves to
whatever is installed globally — usually an older version.

The symptom is a check that fails here and passes in continuous integration, on
a file nobody edited. When that happens, establish which version ran before
treating the failure as real.

## Never build with the Go toolchain directly

`go build ./...` and `go test ./...` fail in this repository. The UI is embedded
via `//go:embed dist/*`, which requires `ui/dist/` to hold files at compile
time. Use `just build`, `just test`, or `just ready` — each builds the UI first.
See @CONTRIBUTING.md under "Building and running".

## Where the rules come from

Repository layout, shared tooling, and the Go conventions this repository
follows are specified in [osapi-io/specs](https://github.com/osapi-io/specs).
When a convention here and the specification disagree, the specification wins —
say so rather than following the code.

## Commit trailer

When committing via Claude Code, end the message with:

```
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
```

## Task tracking

Implementation planning and execution uses the superpowers plugin workflows
(`writing-plans` and `executing-plans`). Plans are working notes and are not
committed — the design record for a change lives in
[osapi-io/specs](https://github.com/osapi-io/specs).
Loading
Loading