Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions .STATUS
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,15 @@
## Priority: 2
## Progress: 100

## Current Session (2026-06-04) — post-release docs polish + Node 20 CI fix
## Current Session (2026-06-05) — obs dispatcher shadowing fix (Phases 1+2) [feature/obs-dispatcher-shadowing]

**Session activity:**
- **Phase 1 — removed dead `obs` dispatcher** (`222c43b2`): it shadowed the real `/opt/homebrew/bin/obs` (obsidian-cli-ops) but needed a `python/obs_cli.py` flow-cli never ships, so a function-beats-binary lookup made the broken dispatcher win in every shell. Deleted `lib/dispatchers/obs.zsh`, `zsh/functions/obs.zsh` (symlink), `man/man1/obs.1`, `tests/test-obs-dispatcher.zsh`; scrubbed obs from inventories (`flow.plugin.zsh`, help-compliance/browser, `commands/{flow,alias,doctor,tutorial}.zsh`) + dangling SEE ALSO obs(1) refs. **15 → 14 dispatchers.** Verified: `type obs` → binary, not function.
- **Phase 2 — B3 binary-precedence guard** (`f28b7007`): `flow.plugin.zsh` wraps each `lib/dispatchers/*.zsh` source in `_flow_load_dispatcher` — diffs `${(k)functions}` and `unfunction`s any new command resolving to a PATH binary, unless in `FLOW_INTENTIONAL_SHADOWS=(r mcp cc)` or `FLOW_FORCE_DISPATCHER_<NAME>=1`. Keys on real defined names (skips `_*` helpers, no filename convention — chosen over spec B1 which broke on `em`/`email-dispatcher`). New guard test `test-dispatcher-binary-precedence.zsh` (16/16); net test files unchanged (211). Reviewed: scope is dispatcher files only, so `at` (shadows `/usr/bin/at`, defined in `atlas-bridge.zsh`) is correctly untouched.
- **Docs** (`67b0071d`): 15 → 14 dispatcher sweep across ~30 active files + repaired mkdocs nav (tutorial 41 deleted); `mkdocs build --strict` ✅. Historical CHANGELOG/RELEASES/specs/.archive left frozen per convention.
- **Note:** a second concurrent session shared this worktree and authored the Phase 1/Phase 2 commits in parallel (stopped mid-session by user); this session verified all three commits and added the docs commit. Final suite: **58 passed, 1 failed (pre-existing `dogfood-scholar-config-sync`), 1 timeout (`e2e-em-dispatcher`, expected)**.

## Previous Session (2026-06-04) — post-release docs polish + Node 20 CI fix

**Session activity:**
- Audited `docs/index.md` admonition boxes against v7.8.1 — all accurate (links/assets resolve, counts match `.STATUS`); bumped "What's New" header v7.8 → v7.8.1 (944f1617)
Expand Down Expand Up @@ -319,7 +327,7 @@
| Worktree | Branch | Status |
|----------|--------|--------|
| Main repo | `dev` | v7.8.1 — man-page set merged (#454); releasing |
| `~/.git-worktrees/flow-cli/obs-dispatcher-shadowing` | `feature/obs-dispatcher-shadowing` | 🚧 **WIP / running** — ORCHESTRATE committed (e0d78cfe). P1: delete dead obs dispatcher+symlink+obs.1; P2: general binary-precedence guard (B3 recommended — B1 invariant already false via em/email + helpers) |
| `obs-dispatcher-shadowing` | `feature/obs-dispatcher-shadowing` | obs removed + B3 guard + docs; PR #460 → dev (open) |

---

Expand Down Expand Up @@ -355,6 +363,6 @@

**Last Updated:** 2026-06-02
**Status:** v7.8.1 SHIPPED | 59/59 tests passing (1 expected interactive/tmux timeout) | 15 dispatchers + at bridge | 211 test files | 12000+ test functions | 0 lint errors | 0 broken links
## wins: Fixed the regression bug (2026-06-03), --category fix squashed the bug (2026-06-03), fixed the bug (2026-06-03), Fixed the regression bug (2026-05-15), --category fix squashed the bug (2026-05-15)
## wins: Fixed the regression bug (2026-06-05), --category fix squashed the bug (2026-06-05), fixed the bug (2026-06-05), Fixed the regression bug (2026-06-03), --category fix squashed the bug (2026-06-03)
## streak: 1
## last_active: 2026-06-03 23:12
## last_active: 2026-06-05 00:32
15 changes: 10 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ This file provides guidance to Claude Code when working with code in this reposi
### What It Does

- Instant workflow commands: `work`, `dash`, `finish`, `hop`
- 15 smart dispatchers: `g`, `mcp`, `obs`, `qu`, `r`, `cc`, `tm`, `wt`, `dots`, `sec`, `tok`, `teach`, `prompt`, `v`, `em`
- 14 smart dispatchers: `g`, `mcp`, `qu`, `r`, `cc`, `tm`, `wt`, `dots`, `sec`, `tok`, `teach`, `prompt`, `v`, `em`
- ADHD-friendly design (sub-10ms response, smart defaults)
- Session tracking, project switching, quick capture
- Teaching workflow with Scholar integration
Expand Down Expand Up @@ -87,12 +87,11 @@ yay --week # Weekly summary + graph
flow goal set 3 # Set daily win target
```

### Active Dispatchers (15)
### Active Dispatchers (14)

```bash
g <cmd> # Git workflows
mcp <cmd> # MCP server management
obs <cmd> # Obsidian notes
qu <cmd> # Quarto publishing
r <cmd> # R package dev
cc [cmd] # Claude Code launcher
Expand Down Expand Up @@ -128,7 +127,7 @@ flow-cli/
│ ├── git-helpers.zsh # Git integration + smart commits
│ ├── keychain-helpers.zsh # macOS Keychain secrets
│ ├── tui.zsh # Terminal UI components
│ └── dispatchers/ # 15 smart command dispatchers
│ └── dispatchers/ # 14 smart command dispatchers
├── commands/ # 31 command files (work, dash, doctor, teach-*, etc.)
├── setup/ # Installation & setup
├── completions/ # ZSH completions
Expand All @@ -147,7 +146,7 @@ flow-cli/
| ------------------------------------------- | ----------------------------------------- |
| `flow.plugin.zsh` | Plugin entry point (source to load) |
| `lib/core.zsh` | Core utilities (logging, colors, helpers) |
| `lib/dispatchers/*.zsh` | 15 smart dispatchers |
| `lib/dispatchers/*.zsh` | 14 smart dispatchers |
| `commands/*.zsh` | Core commands (work, dash, finish, etc.) |
| `docs/reference/MASTER-DISPATCHER-GUIDE.md` | Complete dispatcher docs |
| `docs/reference/MASTER-API-REFERENCE.md` | API function reference |
Expand Down Expand Up @@ -203,8 +202,14 @@ export FLOW_PROJECTS_ROOT="$HOME/projects" # Project root
export FLOW_ATLAS_ENABLED="auto" # Atlas (auto|yes|no)
export FLOW_QUIET=1 # Suppress welcome
export FLOW_DEBUG=1 # Debug mode

# Binary-precedence guard (drops a dispatcher that shadows a PATH binary)
export FLOW_INTENTIONAL_SHADOWS=(r mcp cc) # Commands kept even when a same-named binary exists
export FLOW_FORCE_DISPATCHER_OBS=1 # Force-keep one dispatcher (FLOW_FORCE_DISPATCHER_<NAME>)
```

> **Guard caveat:** `FLOW_INTENTIONAL_SHADOWS` defaults to `(r mcp cc)` only when unset. Setting it to an empty array (`=()`) is treated as an explicit override, so `cc` (vs `/usr/bin/cc`) etc. would then be dropped — append (`+=(...)`) rather than reassign if you only want to add entries.

---

## Current Status
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ Each dispatcher has built-in help: `cc help`, `dots help`, `r help`, `em help`,
**✨ v7.4.2:** Atlas bridge (`at`) — project intelligence, context parking, quick capture
**✨ v7.4.0:** 38 email commands — read, reply, forward, AI compose, organize, manage
**✨ v7.1.0:** Dispatcher split — `dot` → `dots` (dotfiles) + `sec` (secrets) + `tok` (tokens)
**✨ 15 dispatchers + Atlas bridge** with unified grammar, built-in help, and fzf integration
**✨ 14 dispatchers + Atlas bridge** with unified grammar, built-in help, and fzf integration

---

Expand Down
4 changes: 2 additions & 2 deletions commands/alias.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ _flow_alias_show_all() {
echo " ${FLOW_COLORS[muted]}cat → bat (syntax highlighting)${FLOW_COLORS[reset]}"
echo ""

echo "${FLOW_COLORS[success]}🎯 Dispatchers${FLOW_COLORS[reset]} (8 smart functions)"
echo " ${FLOW_COLORS[muted]}g, cc, wt, mcp, r, qu, obs, tm${FLOW_COLORS[reset]}"
echo "${FLOW_COLORS[success]}🎯 Dispatchers${FLOW_COLORS[reset]} (7 smart functions)"
echo " ${FLOW_COLORS[muted]}g, cc, wt, mcp, r, qu, tm${FLOW_COLORS[reset]}"
echo " ${FLOW_COLORS[cmd]}flow alias dispatchers${FLOW_COLORS[reset]} for full list"
echo ""

Expand Down
2 changes: 1 addition & 1 deletion commands/doctor.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -1007,7 +1007,7 @@ _doctor_update_docs() {
# Dispatchers
echo "## Dispatchers"
echo ""
local -a dispatchers=(g r qu mcp obs)
local -a dispatchers=(g r qu mcp)
for cmd in "${dispatchers[@]}"; do
echo "### \`$cmd\`"
echo ""
Expand Down
5 changes: 1 addition & 4 deletions commands/flow.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,6 @@ flow() {
mcp)
mcp "$@"
;;
obs|obsidian)
obs "$@"
;;
cc|claude)
cc "$@"
;;
Expand Down Expand Up @@ -386,7 +383,7 @@ ${_C_DIM}SHORTCUTS: Most commands work directly too:${_C_NC}
work foo = flow work foo
js = flow start

${_C_DIM}See also:${_C_NC} man flow, r help, g help, qu help, mcp help, obs help
${_C_DIM}See also:${_C_NC} man flow, r help, g help, qu help, mcp help

${_C_BOLD}Version:${_C_NC} flow-cli v\${FLOW_VERSION:-3.2.0}
"
Expand Down
4 changes: 2 additions & 2 deletions commands/tutorial.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ _tutorial_advanced() {
echo ""
echo " Lessons:"
echo " 9. Atlas integration"
echo " 10. Smart dispatchers (g, v, mcp, obs)"
echo " 10. Smart dispatchers (g, v, mcp, cc)"
echo " 11. Customization and hooks"
echo " 12. Morning routine"
echo ""
Expand Down Expand Up @@ -440,7 +440,7 @@ _tutorial_advanced() {
echo " Focus: timer, focus, brk"
echo " ADHD: js, next, stuck"
echo " Status: status, morning"
echo " Dispatchers: g, v, mcp, obs"
echo " Dispatchers: g, v, mcp, cc"
echo ""
echo " Get help: <command> help (e.g., 'pick help')"
echo " Reset: tutorial reset"
Expand Down
2 changes: 1 addition & 1 deletion docs/CONVENTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
| Frequency | Style | Examples |
| ----------------- | ------------- | ---------------------- |
| Daily (50+ times) | Single letter | `r`, `g` |
| Frequent (10-50) | Two letters | `qu`, `mcp`, `obs` |
| Frequent (10-50) | Two letters | `qu`, `mcp`, `tm` |
| Occasional (<10) | Full word | `work`, `dash`, `pick` |

**Note (2025-12-25):** `v` dispatcher was deprecated. Use `flow` command directly.
Expand Down
2 changes: 1 addition & 1 deletion docs/DOC-DASHBOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
## Quick Links

- [MASTER-API-REFERENCE.md](reference/MASTER-API-REFERENCE.md) - Complete API documentation
- [MASTER-DISPATCHER-GUIDE.md](reference/MASTER-DISPATCHER-GUIDE.md) - All 15 dispatchers
- [MASTER-DISPATCHER-GUIDE.md](reference/MASTER-DISPATCHER-GUIDE.md) - All 14 dispatchers
- [MASTER-ARCHITECTURE.md](reference/MASTER-ARCHITECTURE.md) - System architecture
- [QUICK-REFERENCE.md](help/QUICK-REFERENCE.md) - Command quick reference
- [TROUBLESHOOTING.md](help/TROUBLESHOOTING.md) - Common issues
Expand Down
5 changes: 2 additions & 3 deletions docs/PHILOSOPHY.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ r test # R package: run tests
g push # Git: push to remote
qu preview # Quarto: preview document
mcp status # MCP: server status
obs daily # Obsidian: daily note
wt create feat/x # Worktree: create branch worktree
```

**Rules:**

- Single letter for high-frequency domains: `r`, `g`
- Two letters for medium-frequency: `qu`, `mcp`, `obs`
- Two letters for medium-frequency: `qu`, `mcp`, `tm`
- Full words for low-frequency: `work`, `dash`, `pick`

**Note (2025-12-25):** `v`/`vibe` dispatcher was deprecated. Use `flow` command directly for workflow operations.
Expand Down Expand Up @@ -187,7 +187,6 @@ TIER 1: Daily Drivers (muscle memory)

TIER 2: Frequent (weekly)
├── mcp MCP server management
├── obs Obsidian notes
├── work Start session
├── dash Dashboard
└── pick FZF picker
Expand Down
3 changes: 1 addition & 2 deletions docs/commands/alias.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,8 @@ flow alias help # Show all commands
| `mcp` | 1 | MCP server shortcuts |
| `quarto` | 2 | Quarto publishing shortcuts |
| `r` | 4 | R package development shortcuts |
| `obs` | 1 | Obsidian shortcuts |

**Total:** 29 custom aliases
**Total:** 28 custom aliases

---

Expand Down
2 changes: 1 addition & 1 deletion docs/commands/at.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ The `at` bridge integrates with flow-cli's core commands:
| `catch <text>` | Calls `_flow_catch` which uses `atlas catch` |
| `crumb <text>` | Calls `_flow_crumb` which uses `atlas crumb` |
| `flow doctor` | Shows Atlas version, backend, project count, MCP status |
| Help browser | Lists `at` with all 15 dispatchers, shows preview via `at help` |
| Help browser | Lists `at` with all 14 dispatchers, shows preview via `at help` |

---

Expand Down
2 changes: 1 addition & 1 deletion docs/commands/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Configuration is stored in `~/.config/flow/config.zsh` and organized into 6 cate
| ------------------ | ------------ | ------------------------------------- |
| `projects_root` | `~/projects` | Root directory for projects |
| `atlas_enabled` | `auto` | Atlas integration (`auto`/`yes`/`no`) |
| `load_dispatchers` | `yes` | Load g, r, qu, mcp, obs dispatchers |
| `load_dispatchers` | `yes` | Load g, r, qu, mcp dispatchers |
| `quiet` | `0` | Suppress startup messages |
| `debug` | `0` | Enable debug output |

Expand Down
3 changes: 1 addition & 2 deletions docs/commands/flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ flow alias # Show all custom aliases (29 total)
flow alias <category> # Show category aliases (e.g., flow alias cc)
```

**Categories:** `git`, `cc` (Claude Code), `pick`, `dash`, `work`, `capture`, `mcp`, `quarto`, `r`, `obs`
**Categories:** `git`, `cc` (Claude Code), `pick`, `dash`, `work`, `capture`, `mcp`, `quarto`, `r`

---

Expand Down Expand Up @@ -226,7 +226,6 @@ Flow-cli includes domain-specific dispatchers that are separate from the `flow`
| `r` | R package dev | `r test`, `r check` |
| `qu` | Quarto publishing | `qu preview` |
| `mcp` | MCP servers | `mcp status` |
| `obs` | Obsidian notes | `obs daily` |
| `cc` | Claude Code | `cc`, `cc pick` |

Get help for any dispatcher with `<dispatcher> help`.
Expand Down
3 changes: 1 addition & 2 deletions docs/contributing/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,14 @@ flow-cli/
│ ├── atlas-bridge.zsh # Optional Atlas integration
│ ├── project-detector.zsh # Project type detection
│ ├── tui.zsh # Terminal UI components
│ └── dispatchers/ # 15 smart command dispatchers
│ └── dispatchers/ # 14 smart command dispatchers
│ ├── cc-dispatcher.zsh # Claude Code
│ ├── g-dispatcher.zsh # Git workflows
│ ├── wt-dispatcher.zsh # Worktrees
│ ├── mcp-dispatcher.zsh # MCP servers
│ ├── r-dispatcher.zsh # R packages
│ ├── qu-dispatcher.zsh # Quarto
│ ├── tm-dispatcher.zsh # Terminal
│ ├── obs.zsh # Obsidian
│ ├── dots-dispatcher.zsh # Dotfiles (chezmoi)
│ ├── sec-dispatcher.zsh # Secrets (Keychain)
│ ├── tok-dispatcher.zsh # Tokens (API keys)
Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started/00-welcome.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@
→ Use `pick` or `hop` - See [Tutorial 2](../tutorials/02-multiple-projects.md)

**"What are the dispatchers?"**
→ `cc`, `g`, `mcp`, `obs`, `qu`, `r`, `tm`, `wt` - See [Dispatcher Reference](../reference/MASTER-DISPATCHER-GUIDE.md)
→ `cc`, `g`, `mcp`, `qu`, `r`, `tm`, `wt` - See [Dispatcher Reference](../reference/MASTER-DISPATCHER-GUIDE.md)

**"How do I check my setup?"**
→ Run `flow doctor` - See [Installation](installation.md)
Expand All @@ -194,7 +194,7 @@

### Latest Features

- ✅ **8 dispatchers** - `cc`, `g`, `mcp`, `obs`, `qu`, `r`, `tm`, `wt`
- ✅ **14 dispatchers** - `cc`, `g`, `mcp`, `qu`, `r`, `tm`, `wt`, `dots`, `sec`, `tok`, `teach`, `prompt`, `v`, `em` (+ `at` Atlas bridge)
- ✅ **150+ tests** - Full ZSH test suite with CI
- ✅ **Worktree integration** - `cc wt <branch>` for Claude in worktrees
- ✅ **Git feature workflow** - `g feature start/sync/finish`
Expand Down
1 change: 0 additions & 1 deletion docs/getting-started/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,6 @@ Flow CLI includes 6 domain-specific dispatchers:
| `r` | R packages | `r test`, `r check` |
| `qu` | Quarto | `qu preview`, `qu render` |
| `mcp` | MCP servers | `mcp status`, `mcp logs` |
| `obs` | Obsidian | `obs daily`, `obs search` |
| `cc` | Claude Code | `cc`, `cc pick`, `cc yolo` |

Get help for any dispatcher:
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/EMAIL-DISPATCHER-GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2330,7 +2330,7 @@ Now that you understand the `em` dispatcher:
- [Email Refcard](../reference/REFCARD-EMAIL-DISPATCHER.md) — All 38 commands at a glance
- [Email Cookbook](EMAIL-COOKBOOK.md) — Practical recipes for common workflows
- [EM-V2-ARCHITECTURE.md](../internal/EM-V2-ARCHITECTURE.md) — Internal architecture documentation
- [MASTER-DISPATCHER-GUIDE](../reference/MASTER-DISPATCHER-GUIDE.md) — All 15 dispatchers
- [MASTER-DISPATCHER-GUIDE](../reference/MASTER-DISPATCHER-GUIDE.md) — All 14 dispatchers

### External

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/ENHANCED-HELP-QUICK-START.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ flow alias git # Git aliases
flow alias <category> # Any category
```

**Categories:** `git`, `cc`, `pick`, `dash`, `work`, `capture`, `mcp`, `quarto`, `r`, `obs`
**Categories:** `git`, `cc`, `pick`, `dash`, `work`, `capture`, `mcp`, `quarto`, `r`

---

Expand Down
35 changes: 0 additions & 35 deletions docs/help/QUICK-REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ tags:
- [R Dispatcher (r)](#r-dispatcher-r) - R package development
- [Quarto (qu)](#quarto-qu) - Publishing workflow
- [MCP (mcp)](#mcp-mcp) - MCP server management
- [Obsidian (obs)](#obsidian-obs) - Note management
- [Worktree (wt)](#worktree-wt) - Parallel development
- [Dotfiles (dots)](#dotfiles-dots) - Dotfile management
- [Secrets (sec)](#secrets-sec) - Secret management
Expand Down Expand Up @@ -448,40 +447,6 @@ mcp help

---

## Obsidian (obs)

```bash
# List vaults
obs vaults
# Output: main-vault (/Users/dt/Obsidian/main-vault)
# work-vault (/Users/dt/Obsidian/work-vault)

# Show vault stats
obs stats
# Output: Total notes: 1,234
# Total links: 5,678
# Orphan notes: 12
# Broken links: 3

# Search notes
obs search "search term"
# Output: [List of matching notes]

# Open note
obs open "note name"
# Output: [Opens in Obsidian]

# Create note
obs new "note title"
# Output: ✅ Created: note title.md

# Show help
obs help
# Output: [Obsidian dispatcher help]
```

---

## Worktree (wt)

```bash
Expand Down
1 change: 0 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,6 @@ Commands that adapt to your project type:
| `g` | `g push` / `g commit` | Git with smart safety |
| `teach` | `teach init` / `teach deploy` | Teaching workflow |
| `mcp` | `mcp status` / `mcp logs` | MCP server management |
| `obs` | `obs vaults` / `obs stats` | Obsidian notes |
| `wt` | `wt create` / `wt status` | Worktree management |
| `tm` | `tm title` / `tm ghost` | Terminal manager |
| `dots` | `dots edit` / `dots sync` | Dotfile management |
Expand Down
3 changes: 1 addition & 2 deletions docs/reference/MASTER-API-REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,12 @@ lib/
├── em-cache.zsh # Email: TTL-based caching (8 functions)
├── em-render.zsh # Email: Smart rendering pipeline (7 functions)
├── email-helpers.zsh # Email: Safety gates, AI draft helper (6 functions)
└── dispatchers/ # 15 dispatchers + 4 support modules (630+ functions)
└── dispatchers/ # 14 dispatchers + 4 support modules (630+ functions)
├── g-dispatcher.zsh
├── cc-dispatcher.zsh
├── r-dispatcher.zsh
├── qu-dispatcher.zsh
├── mcp-dispatcher.zsh
├── obs.zsh
├── wt-dispatcher.zsh
├── dots-dispatcher.zsh # Dotfile management
├── sec-dispatcher.zsh # Secret management
Expand Down
Loading