# internal/app/bootstrap

Package bootstrap creates the project-owned scafld workspace layout.

## ErrMissingWorkspaceStore

```go
var ErrMissingWorkspaceStore = errors.New("missing workspace store")
```

ErrMissingWorkspaceStore is returned when bootstrap has no workspace port.

## Message

```go
func Message(result workspace.InitResult) string
```

Message renders the human-facing summary for an init result.

## Run

```go
func Run(ctx context.Context, store WorkspaceStore, input Input) (workspace.InitResult, error)
```

Run creates the scafld workspace layout.

## Input

```go
type Input struct {
	Root string
}
```

Input describes the workspace root to bootstrap.

- `Root: string`: 

## WorkspaceStore

```go
type WorkspaceStore interface {
	Init(ctx context.Context, root string) (workspace.InitResult, error)
}
```

WorkspaceStore creates workspace directories.

- `Init: func(ctx context.Context, root string) (workspace.InitResult, error)`:
