# 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` |