# Gito Project Rules

## Language

- User-facing final answers default to Korean.
- Code identifiers, paths, commands, and commit scopes stay in the language used
  by the project.

## Project Summary

Gito is a platformless Git control plane for agent-driven development. It owns
repo registry, workspace leases, Git operations, agent-shell execution,
provider-neutral change requests, provider adapters, and normalized events.

## Main Structure

- `services/core/` - Go server, worker, shell, core domain, storage, adapters.
- `apps/client/` - Flutter control surface.
- `packages/contracts/` - proto-socket, REST, event, and DTO contract notes.
- `bin/` - root test/lint/build helpers.
- `docs/` - architecture and operation documents.
- `agent-ops/` - agent rules.
- `agent-test/` - local validation rules.

## Stack

- Backend: Go, PostgreSQL, optional Redis.
- Client: Flutter/Dart.
- Internal transport: proto-socket first.
- REST: health/readiness, provider callbacks, smoke/curl, bootstrap.
- gRPC: excluded from the initial design.

## Conventions

- Prefer `bin/test`, `bin/lint`, and `bin/build` from the repository root.
- Keep Git operations platformless unless a provider adapter is explicitly in
  scope.
- Provider APIs belong behind adapter boundaries.
- Agent-shell owns local command execution; control plane and core should not
  run arbitrary workspace commands directly.
- Credential values must be referenced by `credential_ref` or local secret files,
  never stored in tracked docs.

## Domain Map

| Path | Domain | Rules |
| --- | --- | --- |
| `services/core/**` | core | `agent-ops/rules/project/domain/core/rules.md` |
| `apps/client/**` | client | `agent-ops/rules/project/domain/client/rules.md` |
| `packages/contracts/**` | contracts | `agent-ops/rules/project/domain/contracts/rules.md` |
| `bin/**`, `docs/**`, `AGENTS.md`, `README.md`, `agent-ops/**`, `agent-test/**` | workspace-ops | `agent-ops/rules/project/domain/workspace-ops/rules.md` |

