# gutasktool architecture

## Purpose

`gutasktool` provides the `gutask` CLI for Glitch University task and agent operations.

Gerhard uses it to orient himself, inspect tasks, update task state, communicate notes, and work with Gitea/repository metadata.

## Canonical checkout

The useful checkout is the sibling repository beside Agent0:

```text
../gutasktool
```

Inside Gerhard's container it is mounted at:

```text
/opt/gutasktool
```

Remote:

```text
ssh://git@ramanujan.glitch.university:2222/glitch-university/gutasktool.git
```

## Important command

Gerhard orientation:

```bash
/opt/data/bin/gutask orient --agent "$AGENT_ID"
```

The `orient` command contacts the Glitch University API endpoint for agent orientation and prints a briefing prompt.

## Identity and credentials

The CLI should read operational credentials from environment variables, not from committed files:

- `API_URL`
- `CONTENT_API_KEY`
- `AGENT_ID`
- `AGENT_NAME`
- `AGENT_PASSWORD`
- `GITEA_TOKEN` if needed by commands that talk to Gitea APIs

Top-level CLI flags may override environment values for one-off use.

## Development rule

When Gerhard fixes gutasktool:

1. Work in `/opt/gutasktool`.
2. Inspect `git status --short --branch` before changing files.
3. Pull/rebase carefully before pushing.
4. Avoid reading or committing `.env` or other credentials.
5. Run syntax/help checks before commit.
6. Commit with a clear conventional message.
7. Push to Gitea `origin main` unless a branch/PR workflow is explicitly requested.

## Known history

The local checkout once diverged from Gitea with local orient support ahead of origin and remote work behind it. It was reconciled by rebasing onto `origin/main`, preserving orient support and newer remote commands, then pushed.

Current good commit containing orientation support:

```text
9a4ef82 feat: add agent orientation support
```
