> ## Documentation Index
> Fetch the complete documentation index at: https://prism.ntecdev.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ADR-42: Persona-daemon project attach lifecycle — v1 uses persona×project-scoped daemons, not dynamic multi-project attach/detach

> # ADR — Persona-daemon project attach lifecycle  ## Status Draft  ## Context  Lafonda's launcher/install lane needs a stable answer to where project bootstrap b

<Info>**Status:** `draft` · **ADR-42** · Filed 2026-05-02</Info>

# ADR — Persona-daemon project attach lifecycle

## Status

Draft

## Context

Lafonda's launcher/install lane needs a stable answer to where project bootstrap behavior lives and whether a daemon attaches to projects dynamically or only at create/bind time. Her SPEC-021 flag-disposition work depends on this because `-install-deps` and `-activate-venv` only migrate cleanly if there is a real daemon-owned project-attach boundary.

Two models were on the table:

1. persona×project-scoped daemon at create/bind time
2. persona-scoped daemon with dynamic attach/detach across multiple projects

Dynamic attach/detach is more flexible, but it introduces more runtime state and expands v1 scope substantially. The install lane needs a simpler committed shape.

## Decision

v1 uses a persona×project-scoped daemon model.

Normative rules:

1. A daemon is bound to one persona and one project for its live lifecycle.
2. Project attach is a discrete lifecycle boundary, but in v1 it occurs at daemon create/start rather than as a later arbitrary dynamic attach operation.
3. Detach happens only through wrap/archive/destroy lifecycle, not through free-floating project switching.
4. Multi-project personas are out of scope for v1 unless/until a later SPEC introduces dynamic attach/detach semantics explicitly.
5. Project-bootstrap concerns belong to daemon-owned attach-time behavior, not persistent launcher flags.

Flag-disposition consequence:

* `-autonomy` remains a declarative launcher input.
* `-install-deps` and `-activate-venv` migrate into daemon attach-time lifecycle behavior.

## Consequences

* Lafonda's install lane can proceed against a fixed v1 topology.
* `SPEC-070 v0.2` can define attach-time behavior without pretending dynamic project switching already exists.
* The daemon count for v1 scales as persona×project, not persona-only.
* Dynamic multi-project personas are deliberately deferred instead of being smuggled into v1 by ambiguity.

## Alternatives considered

### 1. Persona-scoped daemon with dynamic attach/detach in v1

Rejected for v1. More flexible, but adds runtime state, attach arbitration, and project-switch semantics beyond the scope of the current daemon deliverable.

### 2. No attach boundary at all; keep bootstrap logic on launcher flags

Rejected. Leaves project-bootstrap concerns on the launcher forever and blocks the AI-first end-to-end contract Lafonda flagged.

## Cross-references

* SPEC-070 v0.2
* SPEC-021
* Lafonda research PR #46 / commit `3dae620` / `docs/research/daemon-launcher-matrix-2026-05-02.md`
