# internal/app/validate

Package validate checks specs without mutating workspace state.

## Run

```go
func Run(ctx context.Context, store SpecStore, taskID string) (Output, error)
```

Run validates a spec without mutating workspace state.

## Output

```go
type Output struct {
	TaskID string   `json:"task_id"`
	Path   string   `json:"path"`
	Valid  bool     `json:"valid"`
	Errors []string `json:"errors"`
}
```

Output reports spec validation status.

- `TaskID: string` (json:"task_id"): 
- `Path: string` (json:"path"): 
- `Valid: bool` (json:"valid"): 
- `Errors: []string` (json:"errors"): 

## SpecStore

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

SpecStore is the spec loading port used by validation.

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