Collaboration configuration for Draft. Sets up gh CLI auth, configures the shared GitHub repo, writes config files, and seeds the shared repo on first use. Invoked from /draft:setup Q5.5 or run standalone at any time.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill draft-setup-collab --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Draft Setup Collab?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-draft-setup-collab)More formats (shields.io, HTML) on the badges page.
---
name: draft-setup-collab
description: >
Collaboration configuration for Draft. Sets up gh CLI auth, configures the
shared GitHub repo, writes config files, and seeds the shared repo on first
use. Invoked from /draft:setup Q5.5 or run standalone at any time.
---
# /draft:setup-collab — Collaboration Configuration
Configure Draft to share your context layer with teammates via a shared GitHub repo.
Can be run standalone (`/draft:setup-collab`) or invoked inline from `/draft:setup`.
---
## Step 1: Check gh CLI
Run:
```bash
gh auth status
```
**If gh is not installed:**
Detect OS:
```bash
uname -s
```
- macOS → "Run: `brew install gh`"
- Linux → "Run: `sudo apt install gh` (or see https://cli.github.com)"
Present the install command. Ask: "Run it now? [Y/n]"
If yes: execute the install command. Then run `gh auth status` again. If still not installed: hard stop — "Install gh CLI and re-run `/draft:setup-collab`."
**If installed but not authenticated:**
Run:
```bash
gh auth login --web
```
This opens the user's browser. Terminal waits for OAuth callback.
If `--web` fails (SSH/headless/no browser): hard stop — "Run `gh auth login` in your terminal, then re-run `/draft:setup-collab`."
After auth: verify with `gh auth status`. If still not authenticated: hard stop.
**If installed and authenticated:** proceed to Step 2.
---
## Step 2: Choose shared repo
Ask:
> "Where should Draft store your shared context?
>
> A) Create a new private repo (github.com/[your-username]/draft-context)
> B) Use an existing repo — paste the URL
>
> [A/B]"
**Option A — New dedicated repo:**
Get the authenticated username:
```bash
gh api user --jq .login
```
Create the repo:
```bash
gh repo create [username]/draft-context --private --description "Draft team context"
```
Set: `team_repo_url = github.com/[username]/draft-context`, `team_repo_subdir = root`
**Option B — Existing repo:**
Ask for the URL. Then ask:
> "Which folder inside the repo should Draft write to?
> (press Enter for `.draft`, type a path like `context` or `team-wiki`, or `/` for repo root)"
- Enter pressed → `team_repo_subdir = .draft`
- `/` entered → `team_repo_subdir = root`
- Custom path typed → `team_repo_subdir = [user input]`
**For either option — verify the repo:**
```bash
gh repo view [team_repo_url] --json name,isPrivate
```
- If public: warn "This repo is public — your product context will be visible to anyone. Are you sure? [y/N]" (default: abort). If they confirm yes: proceed.
- If not found: "Can't find that repo. Check the URL and try again." Loop back.
---
## Step 3: Write config files
Write `$DRAFT_WORKSPACE/config/collaboration.md`:
```yaml
---
mode: github
team_repo_url: [from step 2]
team_repo_subdir: [from step 2]
repo_is_private: [true/false from gh repo view]
teammates:
- [gh username from `gh api user --jq .login`]
---
```
Write `$DRAFT_WORKSPACE/config/local.md`:
```yaml
---
gh_cli_authenticated: true
last_published: null
last_loaded: null
---
```
Create the config directory if it doesn't exist:
```bash
mkdir -p "$DRAFT_WORKSPACE/config"
```
---
## Step 4: Check if shared repo is seeded
Shallow clone to a temp directory:
```bash
TMPDIR=$(mktemp -d /tmp/draft-check-XXXX)
git clone --depth 1 [team_repo_url] "$TMPDIR"
```
**Check signal:** Look for `[subdir]/config/collaboration.md` in the cloned repo.
- Use `root` to mean the repo root (no subdir prefix).
- Example: if `team_repo_subdir = .draft`, check for `.draft/config/collaboration.md`.
```bash
# Example check (adjust path based on team_repo_subdir):
ls "$TMPDIR/[subdir_path]/config/collaboration.md" 2>/dev/null
```
Then:
```bash
rm -rf "$TMPDIR"
```
**If `config/collaboration.md` does NOT exist in the cloned repo:**
- Draft has not been configured at this location. This user is the curator. → Go to Step 5 (auto-seed).
**If `config/collaboration.md` exists:**
- Existing Draft setup found. This user is a teammate connecting to an existing repo. → Skip to Step 6.
**NOTE:** Check `config/collaboration.md` — NOT `CHANGES.jsonl`. `config/collaboration.md` is the authoritative signal that Draft has been set up here. `CHANGES.jsonl` may legitimately be absent between setup and first `/publish-team`.
---
## Step 5: Auto-seed (curator path only)
Run the `/draft:publish-team` flow with `--no-confirm` flag. This seeds the shared repo with the current workspace context.
Show: "Seeding shared repo with your current context..."
After publish completes successfully: `last_published` is updated in `config/local.md` by the publish flow.
If publish fails: "Initial publish failed. Run `/publish-team` when you're ready to share your context."
---
## Step 6: Confirm and next steps
**If auto-seeded (curator path):**
Get the gh username and org from the team_repo_url to construct the settings URL.
Print:
```
Done. Your context is live.
Share this with your teammates: [team_repo_url]
Add them as collaborators: https://github.com/[org]/[repo]/settings/access
They'll configure Draft to use this repo when they run /draft:setup.
```
**If connected to existing (teammate path):**
Print:
```
Done. You're connected to [team_repo_url].
Run /load-team to pull your team's latest context into this session.
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!