xuiltul

workspace-manager

Registers, lists, removes, and assigns workspaces (project directories) for Anima work. Use when: binding project paths to Anima, managing aliases, or switching workspace roots.

xuiltul 254 45 Updated 1mo ago
GitHub

Install

npx skillscat add xuiltul/animaworks/workspace-manager

Install via the SkillsCat registry.

SKILL.md

Workspace Management

Skill for managing project directories (workspaces) where Animas perform work.

Concept

An Anima normally lives in its "home" (~/.animaworks/animas/{name}/).
When working on a project, it "goes to the workplace" (workspace) to do the job.

Workspaces are stored in a shared registry (config.json workspaces section) and referenced by alias#hash.

Aliases and Hashes

  • Alias: A short name assigned by humans (e.g., myproject)
  • Hash: The first 8 hex digits of the path's SHA-256, auto-generated (e.g., 3af4be6e)
  • Qualified form: myproject#3af4be6e — zero collision risk
  • Tool arguments accept alias only, qualified form, hash only, or absolute path

Operations

Register

A top-level Anima with an explicit human instruction uses grant_workspace_access:

{
  "alias": "finance-dashboard",
  "path": "/absolute/path/to/project",
  "make_default": true
}

This tool updates the shared workspace registry, adds the path to the target Anima's permissions.json.file_roots, and optionally updates status.json.default_workspace.

Note: Registration fails if the directory does not exist.
Note: read_memory_file(path="config.json") reads the Anima-local config.json. Do not use it for the shared workspace registry.

List

Use core.workspace.list_workspaces() to inspect the shared registry. Do not use read_memory_file(path="config.json").

Remove

Treat removal as an administrator operation. For normal work, avoid overwriting an existing alias and register a new alias instead.

Change Your Default Workspace

A top-level Anima sets make_default: true when calling grant_workspace_access.
Non-top-level Animas cannot grant themselves workspace access; ask the top-level Anima via a human instruction.

Assign to Subordinates (for Supervisors)

A top-level Anima with an explicit human instruction can grant access to a subordinate or descendant by setting target_anima:

{
  "alias": "finance-dashboard",
  "path": "/absolute/path/to/project",
  "target_anima": "ritsu",
  "make_default": true
}

Tool Usage

  • machine_run: Specify alias or qualified form in working_directory
  • submit_tasks: Specify alias in each task's workspace field
  • delegate_task: Specify alias in the workspace field

Notes

  • Directories are validated both at registration and at resolution time
  • Attempting to register a non-existent directory results in an error
  • Overwriting an alias changes the hash, so old hash references will fail to resolve
  • Humans don't need to remember hashes — alias alone is sufficient