Architecture Constraints

Technical Constraints

Constraint Evidence / Rationale

Python >= 3.12

requires-python = ">=3.12" [pyproject.toml:6]; pinned in .python-version.

uv is the package and run manager

All commands go through uv; bare python/pip are forbidden [AGENTS.md:7-12].

Strict static typing

Pyright runs in strict mode and gates CI; no inline # type: ignore [AGENTS.md:24-46].

Ruff lint and format gate every change

ruff check and ruff format run after every code change [AGENTS.md:9-10].

No relative imports

ban-relative-imports = "all"; always from vibe.core.x import … [AGENTS.md:48-50].

asyncio is the orchestration runtime

The agent loop and tool execution are async; streaming surfaces return AsyncGenerator [AGENTS.md:62-69].

UNIX is the supported target

Vibe runs on Windows but UNIX environments are the officially supported and targeted platform [README.md:24-26].

Organisational and Convention Constraints

Constraint Evidence / Rationale

Hexagonal module conventions

Abstract interfaces use the port.py suffix; private modules are -prefixed; Pydantic models live in models.py [AGENTS.md:13-23].

Pydantic for all external data

External data is parsed via model_validate / validators, never ad-hoc getattr/hasattr [AGENTS.md:53-61].

Conventional Commits, no force-push

git commit --amend, git push --force and force-with-lease are forbidden; rebase, never merge, on rejected push [AGENTS.md:81-86].

Apache-2.0 licence

The project is licensed Apache-2.0 [pyproject.toml:7, LICENSE].

Conventions

Documentation follows Docs-as-Code with AsciiDoc built by docToolchain; this architecture document is the arc42 template filled in place. Code conventions are recorded in AGENTS.md at the repository root and are binding for both human and AI contributors [AGENTS.md:1-12].