Skip to content
Back to skills

090 Distribution Checklist 60faa78b

ASecurity

**Status:** ✅ Ready for GitHub Distribution This document verifies that Dex is properly configured for public distribution without exposing credentials or requiring manual path configuration. ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
businesspythongobashtestinggitapisecuritydocumentation

Works with

  • claude desktop
  • cursor
  • api
  • mcp

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 090-distribution_checklist_60faa78b --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 090 Distribution Checklist 60faa78b?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 090 Distribution Checklist 60faa78b
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-090-distribution-checklist-60faa78b/badge)](https://www.skillsdirectory.com/skills/tools-only-090-distribution-checklist-60faa78b)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Dex Distribution Checklist

**Status:** ✅ Ready for GitHub Distribution

This document verifies that Dex is properly configured for public distribution without exposing credentials or requiring manual path configuration.

---

## ✅ 1. Dynamic Paths (SOLVED)

**Problem:** Users will clone to different paths like `/Users/alice/Documents/dex`

**Solution:** Template + install script substitution (already implemented)

### How It Works

1. **Template file:** `System/.mcp.json.example` uses `{{VAULT_PATH}}` placeholder
2. **Install script:** `install.sh` (lines 49-55) automatically:
   - Detects current directory: `CURRENT_PATH="$(pwd)"`
   - Replaces placeholder: `sed "s|{{VAULT_PATH}}|$CURRENT_PATH|g"`
   - Generates `.mcp.json` (gitignored)

### User Experience

```bash
cd ~/Documents/dex
./install.sh
# ✅ Creates .mcp.json with /Users/alice/Documents/dex
```

**Status:** No action needed — industry-standard pattern.

---

## ✅ 2. MCP Server Architecture (CLARIFIED)

### Dex Core MCP Servers (7 total)

All shipped with Dex in `core/mcp/`:

| Server | File | Purpose | External Dependency |
|--------|------|---------|-------------------|
| work-mcp | `work_server.py` | Task/goal management | None (local files) |
| calendar-mcp | `calendar_server.py` | Calendar integration | macOS Calendar.app |
| granola-mcp | `granola_server.py` | Meeting processing | Granola cache file (optional) |
| career-mcp | `career_server.py` | Career development | None (local files) |
| resume-mcp | `resume_server.py` | Resume building | None (local files) |
| dex-improvements-mcp | `dex_improvements_server.py` | System improvements | None (local files) |
| update-checker | `update_checker.py` | Dex update checking | GitHub API (read-only) |

### External MCPs (NOT part of Dex)

These are user-installed separately via Claude Desktop/Cursor settings:

- `cursor-ide-browser` — Browser automation
- `user-granola` — Official Granola MCP (different from dex granola-mcp)
- `pendo` — Pendo's hosted MCP server (OAuth, optional for Pendo customers)
- `user-whatsapp`, `user-apify`, etc. — Other user-installed integrations

### Optional Dependencies

**Granola (meeting transcription):**
- Install script checks: `~/Library/Application Support/Granola/cache-v3.json`
- If found: "✅ Granola detected - meeting intelligence available"
- If not found: "ℹ️ Granola not detected - meeting intelligence won't work"
- User can install from https://granola.ai
- System works without it — users can paste meeting transcripts manually

**Apple Calendar:**
- Uses macOS Calendar.app via AppleScript (no API keys needed)
- Works with any calendar synced to Calendar.app (Google, Outlook, iCloud)
- macOS only (calendar-mcp gracefully degrades on other platforms)

**Status:** Documentation clear — no changes needed.

---

## ✅ 3. Credentials & Security (VERIFIED)

### Gitignored Files

```gitignore
# Credentials
.env
.env.local

# Generated config
.mcp.json

# User data
System/user-profile.yaml
System/pillars.yaml
00-Inbox/
01-Quarter_Goals/
02-Week_Priorities/
03-Tasks/
04-Projects/
05-Areas/
07-Archives/
```

### Credential Scan Results

**Python MCP servers:**
```bash
✅ No API keys found in core/mcp/*.py
✅ No hardcoded passwords/tokens
✅ No personal data
```

**Environment variables:**
- Template: `env.example` (safe — no real keys)
- Actual `.env` is gitignored
- Created during setup only if user enables optional features

### What Gets Committed to GitHub

**Safe to commit:**
- ✅ `System/.mcp.json.example` — Template with `{{VAULT_PATH}}`
- ✅ `env.example` — Template showing structure
- ✅ `core/mcp/*.py` — MCP server code (no credentials)
- ✅ Documentation and README
- ✅ Demo mode files (sanitized examples)

**Never committed:**
- ❌ `.mcp.json` — Generated, contains user paths
- ❌ `.env` — Contains API keys if configured
- ❌ User data folders (00-07)
- ❌ `System/user-profile.yaml` — Personal info

**Status:** Security verified — ready for public release.

---

## 📋 Pre-Release Checklist

Before pushing to GitHub:

### Repository Setup
- [ ] Remove or sanitize `System/Session_Learnings/` (contains personal work history)
- [ ] Verify `.gitignore` is committed
- [ ] Check no `.env` or `.mcp.json` in git history: `git log --all --full-history --name-only -- .env .mcp.json`
- [ ] Verify no API keys in commit history: `git log --all -S "sk-ant-" -S "ANTHROPIC_API_KEY" -S "OPENAI_API_KEY"`

### Documentation
- [ ] README links to actual podcast episode (currently placeholder)
- [ ] README links to blog post (currently placeholder)
- [ ] Verify GitHub repo URL in clone command
- [ ] Add LICENSE file (MIT recommended)
- [ ] Add CONTRIBUTING.md if accepting PRs

### Testing
- [ ] Fresh clone on different machine
- [ ] Run `./install.sh` with no prior Dex installation
- [ ] Verify `.mcp.json` generates with correct paths
- [ ] Run setup wizard: `/setup` in Cursor
- [ ] Test without Granola installed (graceful degradation)
- [ ] Test on Windows if supporting (install.sh needs .bat version)

### Demo Mode
- [ ] Verify `System/Demo/` contains no personal info
- [ ] Test `/dex-demo` enable/disable
- [ ] Verify demo data is realistic but generic

---

## 🔐 Credential Management for Users

### What Users Need to Know

**99% of features work immediately** — no API keys needed:
- Task management
- Person pages
- Project tracking  
- Daily planning
- Meeting prep
- All `/commands`

**Optional API keys** (only if enabling background automation):
- Anthropic API key — For `/prompt-improver` and background meeting processing
- OpenAI or Gemini — Alternative to Anthropic

### Setup Flow

1. **First install:** No `.env` file — everything works through Cursor
2. **Optional:** Run `/setup` → answers "Enable automatic meeting processing?"
3. **If yes:** System creates `.env` from template, prompts for API key
4. **If no:** Skip entirely — manual meeting processing works fine

### Security Best Practices

**For users:**
- Never commit `.env` to their own repos
- Use separate API keys for different projects
- Set usage limits in Anthropic console

**For Dex maintainers:**
- Keep `env.example` up to date
- Never commit real `.env`
- Document which features require keys

---

## 🚀 Distribution Recommendations

### GitHub Release Strategy

**v1.0.0 - Initial Public Release**

1. **Tag the release:**
   ```bash
   git tag -a v1.0.0 -m "Initial public release"
   git push origin v1.0.0
   ```

2. **Create GitHub Release:**
   - Title: "Dex v1.0.0 — Your AI Chief of Staff"
   - Description: Paste first 3 sections of README
   - Attach: Installation guide, demo video (if available)

3. **Post-release:**
   - Monitor issues for Windows compatibility
   - Create FAQ from common questions
   - Build community in Discussions tab

### Alternative Distribution

**For teams/organizations:**
- Fork repo → customize roles/templates → distribute internal URL
- Include company-specific integrations in `core/mcp-custom/`
- Company pillars in `System/pillars-company.yaml` template

**For consultants:**
- Charge for customization/setup services
- Pre-configured bundles for specific roles (PM, Sales, etc.)
- Training packages

---

## ✅ Final Verification

**Run this before pushing to GitHub:**

```bash
# Check for credentials in tracked files
git ls-files | xargs grep -E '(sk-ant-|sk-[a-zA-Z0-9]{48}|AIza[a-zA-Z0-9-_]{35}|ANTHROPIC_API_KEY|OPENAI_API_KEY)' 2>/dev/null

# Expected output: (no matches except in env.example and documentation)

# Check for personal data
git ls-files | xargs grep -iE '(dave|killeen|[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})' | grep -v 'README\|example\|template\|CHANGELOG'

# Expected output: Only documentation/examples, no real emails/names

# Verify .gitignore is working
git status --ignored | grep -E '(\.env$|\.mcp\.json$|00-Inbox|04-Projects|System/user-profile\.yaml)'

# Expected output: Shows these as ignored, not tracked
```

---

**Status:** ✅ **Ready for distribution**

- Paths dynamically configured via install script
- MCP servers documented (7 core, others external)
- No credentials exposed
- `.gitignore` properly configured
- User data protected
- Documentation complete

**Next steps:**
1. Complete pre-release checklist
2. Push to GitHub
3. Announce to audience
4. Monitor for issues

**Questions?** See `06-Resources/Dex_System/Dex_Technical_Guide.md` for implementation details.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.