---
schema_version: 1
id: RAC-KTQ63DYPA2DK
type: roadmap
---
# RAC v0.8.1 — Repository Model

## Problem

RAC understands individual artifacts and repository analysis operations.

However, consumers currently lack a single representation of a RAC repository.

Interactive interfaces require a persistent model they can navigate.

Repository discovery should not be duplicated by each consumer.

---

## Outcomes

Introduce first-class repository objects.

RAC shall understand:

```text
Repository

contains

Artifacts

connected by

Relationships
```

---

## Initiatives

## Initiative 1 — Repository Object

Introduce:

```python
Repository
```

Example:

```python
repo = Repository(".")

repo.artifacts()

repo.validate()

repo.relationships()

repo.portfolio()
```

---

## Initiative 2 — Artifact Model

Create a common artifact representation.

Example:

```python
Artifact(
    id="REQ-001",
    type="requirement",
    title="Payments",
    path="requirements/payment.md"
)
```

Supported artifact types:

- Requirement
- Decision
- Roadmap
- Prompt
- Design

---

## Initiative 3 — Repository Index Integration

Repository shall expose indexed artifacts.

Consumers should not scan files directly.

---

## Initiative 4 — Relationship Model

Represent relationships as first-class objects.

Example:

```python
Relationship(
    source="REQ-001",
    target="ADR-004",
    type="related_decision"
)
```

---

## Initiative 5 — Diagnostics Model

Create shared diagnostic objects.

Used by:

- Validation
- Relationships
- Portfolio health

---

## Requirements

## REQ-001 — Repository First

Consumers shall interact with Repository objects.

---

## REQ-002 — Single Artifact Model

All artifact types shall share a common interface.

---

## REQ-003 — No Duplicate Discovery

Consumers shall not implement repository scanning.

---

## REQ-004 — Interface Neutral

Repository models shall contain no CLI or TUI concepts.

---

## Non-Goals

- Persistence changes
- Database storage
- Background indexing

---

## Success Measures

Explorer navigation can be implemented entirely using Repository APIs.

Future interfaces share the same repository representation.