| name | box-team |
| description | Manage team subtrees in a local box-memory workspace. Create, list, inspect, find cross-team conflicts, or remove a team from config. Folder ACLs are configured in Box (web UI or admin) - this skill creates filesystem structure only and cannot set permissions. FS-only, no Box API. |
| argument-hint | <create|ls|inspect|conflicts|remove> [name] |
/box-team
If you see unfamiliar placeholders or need to check which tools are connected, see CONNECTORS.md.
Multi-team operations on a local box-memory workspace. Each team gets its own subfolder with its own index. Box folder ACLs configure access — set them in Box's web UI or admin console; this skill creates structure only.
Usage
/box-team <subcommand> [name]
Subcommands:
create <name> — add new team subtree
ls (or list) — list teams + memory counts
inspect <name> — show what's in a team
conflicts — find duplicate slugs/titles across teams
remove <name> — remove team from config (preserves files; confirms twice)
If no subcommand, default to ls. If just a name with no subcommand, default to create <name>.
What to do — Create
- Verify workspace + backend. Read
_box-memory.json. Confirm backend: local. Confirm Box Drive writable via box-drive-detect.
- Validate name. Kebab-case, lowercase, alphanumeric + hyphens. Suggest a clean version if not.
- Check duplicate. If
teams[] already contains the name, stop and report.
- Create folders via local mkdir:
<workspace>/teams/<name>/memories/
<workspace>/teams/<name>/files/
<workspace>/teams/<name>/companions/ (only if folder layout chosen at workspace level)
- Seed
_index.json in the new memory-holding folder (same shape as box-init Step 6).
- Acquire workspace lock, update
_box-memory.json: append name to teams[], bump updated_at. Release lock.
- Surface the access-control reminder PROMINENTLY:
✓ Team '<name>' created.
Folders:
teams/<name>/memories/
teams/<name>/files/
teams/<name>/companions/ (if folder layout)
⚠ Access control reminder:
This skill creates filesystem structure only. To restrict who can read this
team's content, set Box folder ACLs in the Box web UI or admin console —
not here. The frontmatter `team:` field on memories is a categorization
hint; folder ACLs are enforcement.
Box Drive will sync these folders to Box cloud on its normal schedule. Set
the ACLs in Box BEFORE writing sensitive content into the team folder, to
avoid a window where the content is synced but not yet ACL-restricted.
What to do — List (ls)
- Read
_box-memory.json and enumerate teams[].
- For each team, read its
memories/_index.json and report entry_count + counts by status (active / draft / superseded / archived).
- If a team's folder is inaccessible (Box Drive ACL denying read), report "access denied" and continue.
What to do — Inspect
- Read the team's
memories/_index.json (and companions/_index.json if folder layout).
- Summarize:
- Total memories
- Counts by status
- Counts by kind
- Top tags (top 5)
- Most recent N memories (default 5) with title, kind, updated_at
Bounded output — if user wants more, ask explicitly.
What to do — Conflicts
Scan every accessible team's _index.json. Build slug -> [(team, mem_id, title, updated_at), ...]. Report:
- Slugs appearing in 2+ teams (likely same concept written separately)
- Titles matching exactly across teams (different slugs but same concept)
Don't auto-resolve. Surface and let the user decide:
- Reconcile into shared workspace memory (write a merged memory at workspace root)
- Rename one slug to be team-specific
- Leave as-is if both teams genuinely care from different angles
What to do — Remove (cautious)
- Confirm twice. "This removes the team from
_box-memory.json.teams[]. Memory files in teams/<name>/ stay in Box untouched. Proceed?"
- Do not delete files. Only remove from
_box-memory.json.teams[] and the corresponding folder-IDs map.
- Optionally offer: move
teams/<name>/ to <workspace>/_archive/teams/<name>/ (preserves data; just out of active view).
Don't
- Don't try to set Box folder ACLs automatically. The user does this in Box admin UI with intent.
- Don't delete memory files when "removing" a team — files are durable artifacts.
- Don't skip the access-control reminder on create. People assume frontmatter is access control. It isn't.
- Don't call any Box API for this skill. The team structure is local-FS only.
Differences from cloud variant
- ACL caveat is more prominent here — in cloud mode, an agent could in principle call Box admin API to set ACLs (still not implemented but technically reachable). In on-prem mode, the gap is structural: this plugin cannot set ACLs by design.
folder_id in workspace config is the relative path, not a Box folder ID. Box assigns IDs only after Box Drive syncs.
Errors
- Box Drive not mounted → see
box-drive-detect
- Invalid team name → suggest cleaned version
- Lock cannot be acquired on workspace config → another writer active; retry or investigate