Operate program portfolio plans in Google Sheets via the `gantt` CLI — task CRUD, dependency cascade (FS/SS/FF/SF + lag), auto-status, critical path, WBS row sort, and an NL-routing skill for natural-language requests like 'shift the launch milestone out 2 weeks' or 'OK2DC is now 50% done'.
Trigger the gantt skill to manage the user's program plans in their portfolio workbook (recalc dates, shift tasks, view critical path, add/update tasks, etc.).
Setup or cleanup for gantt. Default runs first-run setup — verifies Python, short-form slash command, Claude Code permissions, skill-local venv, OAuth credentials + token, portfolio workbook bootstrap, and a final read-back (7 gates). Use `--remove` to clean up the short-form command alias and any leftover CLI symlink from older installs. Idempotent — safe to re-run either mode.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Python CLI + Claude skill for creating, editing, and maintaining program Gantt charts in Google Sheets. The Sheet is the artifact PMs share; the CLI does the dependency math (topological sort, working-days arithmetic, FS/SS/FF/SF relations, critical path) and writes the results back.
Modeled on the daily-ops bundle pattern: skill-local venv, user state under
~/.config/gantt/, OAuth-backed Sheets writes, one verified result line per command.
The CLI is bundled inside the Claude skill at skills/gantt/scripts/gantt
— there is no gantt on $PATH. You drive it through the /gantt slash
command; the skill resolves the bundled binary and invokes it for you.
| Phase | Scope | State |
|---|---|---|
| 1. Foundation | setup, bootstrap, info | ✅ shipped |
| 2. Domain logic | model, DSL parser, working-days math, cascade engine | ✅ shipped |
| 3. First user-visible program | program new, task add/update/delete | ✅ shipped |
| 4. Cascade wiring | recalc (reads tab, cascades, writes back) | ✅ shipped |
| 5. Critical path + shift | critical-path, shift | ✅ shipped |
| 6. Skill surface | SKILL.md, /gantt slash command | ✅ shipped |
| 7. Plugin lifecycle | .claude-plugin/, /gantt:init, --remove | ✅ shipped (canonical install dance below) |
Test suite: 358 tests across model, dsl, dates, cascade, refs, schema, sheets_helpers, auto_status, critical_path, baseline tracking, deck generation, narrative LLM client, and .env loader.
See docs/ideas/gantt-skill-v0.5.md for the v0.5 charter and docs/plans/v0.5-backlog.md
for the full task breakdown.
Before you start:
- Required — a Google OAuth Desktop client (Sheets + Drive + Slides scopes) to authenticate against your Google account. Set up during
/gantt:init(Gate 5 walks you through Cloud Console), or pre-create it from console.cloud.google.com → APIs & Services → Credentials → OAuth client ID → Desktop app, and dropcredentials.jsoninto~/.config/gantt/first. See the Google OAuth setup section below for full details.- Required — Python 3.10+.
- Optional — an Anthropic API key in
~/.config/gantt/.envto enable LLM-generated section summary slides ingantt deck. Decks still generate without it; the summary slide is simply skipped. See the Anthropic API key section below for setup.
/plugin marketplace add jasonjgarcia24/gantt-chart
/plugin install gantt@jason-gantt
/reload-plugins
/gantt:init
The first two add the marketplace and install the plugin; the third reloads the current session so the new commands are callable without restarting Claude Code; the fourth runs first-run setup (7 gates: Python, short-form alias, Claude Code permissions, skill-local venv, OAuth credentials, workbook bootstrap, final read-back). /gantt:init is idempotent — re-running it only fixes what's missing.
To pull a newer version later: uninstall first then reinstall (Claude Code's /plugin install skips already-installed plugins, so a vanilla rerun won't pick up upstream changes):
/plugin marketplace update jason-gantt
/plugin uninstall gantt@jason-gantt
/plugin install gantt@jason-gantt
/reload-plugins
/gantt:init
Two ways to invoke
gantt./gantt:ganttis the plugin-namespaced form (always available after install)./ganttis the short form — during/gantt:init, a user-level symlink is installed at~/.claude/commands/gantt.md→ the plugin'scommands/gantt.md, so both resolve to the same file with no drift. (Init itself stays namespaced —/gantt:initonly — because Claude Code has a built-in/initcommand for CLAUDE.md initialization that the short form would collide with.)
SSH errors? The marketplace clones repos via SSH. If you don't have SSH keys set up on GitHub, either add your SSH key or switch to HTTPS for fetches only:
git config --global url."https://github.com/".insteadOf "[email protected]:"
If you installed gantt before the self-contained-skill refactor (the CLI used to live at <plugin>/gantt with a ~/.local/bin/gantt symlink shimming it onto $PATH), do this one-time migration:
/gantt:init --remove
/plugin marketplace update jason-gantt
/plugin uninstall gantt@jason-gantt
/plugin install gantt@jason-gantt
/reload-plugins
/gantt:init
--remove first (while the old install is still discoverable) clears the now-dangling ~/.local/bin/gantt symlink. Then the standard upgrade dance pulls the new layout and re-runs setup against it.
What changes:
npx claudepluginhub jasonjgarcia24/gantt-chart --plugin ganttFive AI engineering personas (Hubert, Watson, Barb, Pepper, Negev) and their paired workflow skills — commit hygiene, code review, security audit, test authoring, acceptance exploration. Skill-creator-compliant.
A Claude Code plugin for a daily, compounding Gmail inbox sweep — auto-labels the obvious, batches the ambiguous by sender, trains itself as you go.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.