Tidy skills: deduplicate, rename, update tea
- Remove container/ (duplicate of apple-container/)
- Rename describe/ → jj-describe/ and pr/ → gh-pr/ to
clarify which tool each skill targets
- Update tea skill with remote repo targeting, batch
workflows, and flag gotchas from real usage
Assisted-by: Claude Opus 4.6 via pi
diff --git a/ai/claude/skills/container/SKILL.md b/ai/claude/skills/container/SKILL.md
deleted file mode 100644
index 0b21866a..00000000
--- a/ai/claude/skills/container/SKILL.md
+++ /dev/null
@@ -1,84 +0,0 @@
----
-name: container
-description: Use when running Apple's container tool on macOS - covers build, run, exec, and image management commands
----
-
-# Apple Container Tool
-
-macOS container runtime. Not Docker - different syntax for mounts and some flags.
-
-## First-Time Setup
-
-```bash
-container system start # Required before first use, installs kernel
-```
-
-## Quick Reference
-
-| Task | Command |
-|------|---------|
-| Build image | `container build -t name:tag dir/` |
-| Run interactive | `container run -it image` |
-| Run with name | `container run --name mycontainer image` |
-| Run detached | `container run -d --name mycontainer image` |
-| List running | `container list` |
-| List all | `container list -a` |
-| Start stopped | `container start -a container-id` |
-| Stop | `container stop container-id` |
-| Remove | `container rm container-id` |
-| Exec into | `container exec -it container-id bash` |
-| Inspect | `container inspect container-id` |
-
-## Mount Syntax
-
-**Different from Docker.** Uses `--mount` with explicit format:
-
-```bash
-# Bind mount (host path to container path)
---mount type=bind,src=/host/path,dst=/container/path
-
-# Read-only bind mount
---mount type=bind,src=/host/path,dst=/container/path,readonly
-
-# tmpfs
---tmpfs /path
-```
-
-**Not supported:** Docker's `-v /host:/container` shorthand.
-
-## Common Patterns
-
-```bash
-# Build and run interactively
-container build -t myimage:latest . && container run -it --rm myimage:latest
-
-# Run with project mounted
-container run -it --rm \
- --workdir /project \
- --mount type=bind,src=$(pwd),dst=/project \
- myimage:latest
-
-# Named container (persists after exit)
-container run -it --name mycontainer myimage:latest
-# Later: container start -ai mycontainer
-
-# Check if container exists (inspect returns [] for missing, not error)
-[ "$(container inspect mycontainer 2>/dev/null)" != "[]" ] && echo "exists"
-```
-
-## Image Management
-
-```bash
-container image list # List local images
-container image rm image:tag # Remove image
-container image prune # Remove dangling images
-container image prune -a # Remove all unused images
-```
-
-## Gotchas
-
-- **No `-a` for list by default** - stopped containers hidden without `container list -a`
-- **Mount syntax** - must use `--mount type=bind,src=...,dst=...` not `-v`
-- **System start required** - run `container system start` before first use
-- **Names are IDs** - `--name` sets the container ID, not a separate alias
-- **Inspect returns `[]` for missing** - doesn't error like Docker, check output not exit code
diff --git a/ai/claude/skills/pr/SKILL.md b/ai/claude/skills/gh-pr/SKILL.md
similarity index 100%
rename from ai/claude/skills/pr/SKILL.md
rename to ai/claude/skills/gh-pr/SKILL.md
diff --git a/ai/claude/skills/gitea/SKILL.md b/ai/claude/skills/gitea/SKILL.md
index 12105c27..9270a4df 100644
--- a/ai/claude/skills/gitea/SKILL.md
+++ b/ai/claude/skills/gitea/SKILL.md
@@ -19,14 +19,28 @@ tea pulls create --help # Syntax and options
tea auto-discovers the Gitea instance and repo from the current directory's git remote.
+## Targeting Remote Repos
+
+When not inside a clone of the target repo, specify the repo and login explicitly:
+
+```bash
+tea issues list -r owner/repo -l instance-name
+tea issues create -r owner/repo -l instance-name -t "Title" -d "Body"
+```
+
+`-l` matches the NAME column from `tea logins list`. Use `-r owner/repo` (the slug, not a URL).
+These flags are needed on **every command** when the cwd isn't a clone with a matching remote.
+
## Core Workflows
**Issues:**
```bash
tea issues # List open issues
tea issues <index> # Show issue details
-tea issues create # Create an issue
+tea issues create -t "Title" -d "Description" # Create (inline)
+tea issues create # Create (interactive)
tea issues edit <index> # Edit an issue
+tea issues edit <idx> [<idx>...] --add-labels "a,b" # Bulk label
tea issues close <index> # Close an issue
tea comment <index> "<body>" # Comment on an issue or PR
```
@@ -43,6 +57,14 @@ tea pulls reject <index> # Request changes
tea pulls review <index> # Interactive review
```
+**Labels & milestones:**
+```bash
+tea labels list # List labels
+tea labels create --name "bug" --color "e11d48" --description "Bug reports"
+tea milestones list # List milestones
+tea milestones create # Create a milestone
+```
+
**Repositories:**
```bash
tea repos # Show current repo details
@@ -58,14 +80,60 @@ tea releases list # List releases
tea releases create # Create a release
```
-**Labels & milestones:**
+## Common Patterns
+
+### Batch issue creation with labels
+
+Create labels first, then apply on create or after:
+
```bash
-tea labels list # List labels
-tea labels create # Create a label
-tea milestones list # List milestones
-tea milestones create # Create a milestone
+# 1. Create labels
+tea labels create -r o/r -l inst --name "security" --color "e11d48"
+tea labels create -r o/r -l inst --name "component" --color "0075ca"
+
+# 2a. Create issues with labels inline
+tea issues create -r o/r -l inst -t "Title" -d "Body" -L "security,component"
+
+# 2b. Or add labels to existing issues (supports multiple indices)
+tea issues edit -r o/r -l inst --add-labels "security,component" 1 2 3
+```
+
+### Bulk labeling in a loop
+
+```bash
+for i in 1 2 3 4 5; do
+ tea issues edit -r o/r -l inst --add-labels "label1,label2" "$i"
+done
```
+### Issue descriptions with markdown
+
+Pass multiline markdown via `-d` with shell quoting:
+
+```bash
+tea issues create -r o/r -l inst \
+ -t '[CRITICAL] Issue title' \
+ -d '## Summary
+
+Description with **markdown** and code:
+
+```typescript
+const x = 1;
+```
+
+## Impact
+
+Bullet points:
+- First
+- Second'
+```
+
+## Gotchas
+
+- **No project board support:** tea cannot add issues to Gitea project boards. Use the web UI or Gitea API directly.
+- **Labels flag differs between create and edit:** `issues create` uses `-L`/`--labels`, while `issues edit` uses `--add-labels`/`--remove-labels`.
+- **`-l` is `--login`, not `--labels`:** The `-L` (uppercase) shorthand is for labels. Mixing these up silently targets the wrong Gitea instance.
+
## Command Categories
Run `tea --help` to see all commands. Main categories:
diff --git a/ai/claude/skills/describe/SKILL.md b/ai/claude/skills/jj-describe/SKILL.md
similarity index 100%
rename from ai/claude/skills/describe/SKILL.md
rename to ai/claude/skills/jj-describe/SKILL.md