AI project employee

# AI project employee

The AI project employee is the universal assistant for a Riders Pulse project.

It is not a separate product and not a separate runtime. It works through the existing API, project permissions, workflow runtime, action dependencies, clients module, work tracker, integration docs, and typed internal tools.

Canonical implementation spec:

```text
docs/specs/ai-employee-universal-assistant.md
```

## Scope

The assistant is project-scoped by default.

Allowed scope hierarchy:

1. current screen;
2. current project;
3. company-level reads only for tools explicitly allowed by policy;
4. no global workspace memory in MVP.

## UI

The widget is mounted in the authenticated Pulse shell behind:

```text
ff_ai_project_employee
```

It appears as a bottom-right bubble and opens a right drawer.

The drawer shows:

- current project;
- current screen scope;
- selected entity, if any;
- selected provider;
- selected project integration;
- selected model;
- available tools;
- risk/approval mode.

## Tool model

The assistant can read without approval, propose without mutating target records, and write only after explicit approval.

Default write examples:

- create task;
- update task;
- create client;
- update client;
- apply workflow patch;
- apply task process patch;
- run test workflow;
- save approved memory.

Critical tools are admin-only or disabled in MVP.

## Safety

The assistant must not:

- write SQL;
- bypass existing services;
- apply patches automatically;
- publish workflows automatically;
- read or expose secrets;
- cross project boundaries;
- call arbitrary external tools;
- use VLESS as a generic proxy.

Every tool call is audited in `ai_tool_calls`.