Technical Requirements

This document defines implementation requirements for the first version of YAAW - Yet Another Agent Wrapper.

Requirements use:

Platform

Application Stack

Storage

SQLite

The SQLite database MUST store:

The database SHOULD store enough metadata to restore the app layout and navigation context after restart.

YAML Configuration

YAML configuration MUST be used for settings that should remain easy to inspect or edit outside the app.

YAML configuration MUST live in app-owned storage by default at ~/Library/Application Support/YAAW/settings.yaml.

YAML configuration MUST include comments that show defaults and identify settings that are represented but not changeable yet.

YAML configuration SHOULD include:

The app MUST expose a settings action in the window title bar that navigates to an in-app YAML editor for the app-owned settings file.

The settings editor MUST validate YAML before saving and MUST NOT overwrite the last saved settings file when validation fails.

Projects

Threads

Terminal Requirements

App Layout

Resizeable panels:

Right Tool Panel

The right tool panel MUST be scoped to the selected thread.

The right tool panel MUST keep its selected-thread state whether it appears in the main area or the physical right-side area.

The right tool panel MUST provide four modes:

Users MUST be able to switch right-panel modes by clicking mode icons or tabs.

Users MUST be able to cycle right-panel modes with:

The selected right-panel mode MUST be stored per thread.

If two threads happen to share the same panel state because they point at the same working directory, that behavior is acceptable but MUST NOT be required.

File Browser

Browser Mode

Isolated Tool Hosts

nvim Mode

Git Mode

The app MUST support browser-style global navigation:

Global navigation SHOULD move across recent project/thread selections and major app locations.

Right-panel tab cycling MUST use Cmd+Shift+[ and Cmd+Shift+] so it does not conflict with global navigation.

Theme

Settings

Agent CLI Scope

External Tools

Acceptance Criteria