# internal/app/reconcile

Package reconcile rebuilds living spec projections from session evidence.

## Run

```go
func Run(ctx context.Context, specs SpecStore, sessions SessionStore, taskID string) (spec.Model, error)
```

Run rebuilds a spec projection from session evidence.

## SessionStore

```go
type SessionStore interface {
	Load(context.Context, string) (session.Session, error)
}
```

SessionStore is the session loading port used by reconcile.

- `Load: func(context.Context, string) (session.Session, error)`: 

## SpecStore

```go
type SpecStore interface {
	Load(context.Context, string) (spec.Model, string, error)
	Save(context.Context, string, spec.Model) error
}
```

SpecStore is the spec persistence port used by reconcile.

- `Load: func(context.Context, string) (spec.Model, string, error)`: 
- `Save: func(context.Context, string, spec.Model) error`:
