setup-pstacklisted
Install: claude install-skill OutlineDriven/odin-claude-plugin
# Setup pstack
## Contract
| Field | Bound contract |
|---|---|
| Trigger | Configure pstack role-to-model choices. |
| Authority | Write only to the named local pstack rule file; rollback path is removal or revert. |
| Side effect | Writes one user-level pstack model rule file. |
| Done | Every pstack role maps to a model in the available-models set. |
## Inputs
- Role–model mappings (required): one or more `role: model` pairs to write. Each role name must be non-empty. Each model name must be non-empty.
- Rule file path (required): absolute path to the user-level pstack rule file.
- Available models (required): the set of model names the user's pstack installation can resolve, supplied by the user (for example, the output of the user's model-listing command). Used to validate that every supplied model is resolvable before writing.
- Existing rule file content (optional): current file contents if it already exists, used to detect drift.
## Procedure
1. **Validate inputs.** Stop if any role name is empty, any model name is empty, or the rule file path is not an absolute path. Verify each supplied model is in the available-models set; stop with `unavailable-model` if any model is not in the set. **Done when:** every role and model is non-empty, every model is in the available-models set, and the path is absolute.
2. **Read existing file** if it exists. Record its content for the rollback record. When existing rule file content was supplied, compare it against the actual