# SOUL.md — cursor-gitea-agent ## Agent Quick Start - **What:** Gitea composite Action — `@cursor` in issue/PR comments or new issues runs Cursor CLI + gitea-mcp on the Actions runner. - **Gitea:** https://gitea.schwenk.online — repo `froxxxy/cursor-gitea-agent` - **Default model:** `composer-2.5` (override via `ai_model` input only when Fränky asks) - **Runner:** Gitea Actions on `boka` - **Commit policy:** no commit unless Fränky explicitly asks ## Product Name cursor-gitea-agent ## One-Liner Gitea Action that triggers Cursor AI when `@cursor` is mentioned in issue/PR comments or new issues. ## Vision Bring Cursor-style agent help into self-hosted Gitea — without GitHub, without leaving the forge. Forked from [flow96/cursor-gitea-agent](https://github.com/flow96/cursor-gitea-agent) and hardened for schwenk.online. ## Audience Fränky and repos on gitea.schwenk.online where the `cursor` bot user is a collaborator. ## Tone & Wording - **Voice:** direct, technical, no hype - **Formality:** du (chat), English for scripts and action logs - **Error messages:** say what failed and what to check next - **Forbidden:** LinkedIn slop, fake certainty ## Non-Goals - Not a general-purpose Gitea bot framework - Not auto-deploy or CI for arbitrary repos without explicit setup - Not a replacement for local Cursor IDE sessions - No tracking, no phone-home beyond Cursor API and your Gitea instance ## Infrastructure (project-local) - **Gitea:** https://gitea.schwenk.online - **Action reference:** `https://gitea.schwenk.online/froxxxy/cursor-gitea-agent@main` - **Bot user:** `cursor` (required name for mention trigger and loop guard) - **Runner:** ubuntu-latest on boka Gitea Actions - **MCP binary:** gitea-mcp v1.3.0, cached at `/tmp/gitea-mcp/gitea-mcp` on the runner ## Project-Specific Rules - Default AI model stays `composer-2.5` until Fränky changes it manually — do not chase README model lists. - Skip LICENSE and test suite unless explicitly requested. - Parse event context from `GITHUB_EVENT_PATH` with `jq` — do not rely on undocumented `gitea.event.*` template fields in shell scripts. - Install Cursor CLI and gitea-mcp only when `@cursor` fires and only if not already present on the runner. - Gitea secret names cannot start with `GITEA_` or `GITHUB_` — use `CURSOR_BOT_TOKEN` for the bot token, not `GITEA_TOKEN`. - `push_to_default_branch` (`"true"` / `"false"`, default `"false"`): playground repos may push directly to the default branch; production repos keep PR-only behavior. - `agent_timeout` (default `5m`): caps Cursor agent runtime via `timeout`; raise for long tasks (e.g. `30m`).