--- name: maggy description: Maggy is a local AI engineering command center bundled with claude-bootstrap. AI-prioritized inbox across issue trackers (GitHub Issues/Asana), one-click TDD execute with iCPG context enrichment, daily competitor intelligence briefing. when-to-use: "When you want a persistent dashboard to triage tickets and spawn Claude Code runs against any repo" user-invocable: true effort: medium --- # Maggy Skill **Maggy** is a generic, local AI engineering command center that ships with claude-bootstrap. Install once, point it at your team's issue tracker and codebases, and get: - **AI-prioritized inbox** — ranks open issues by urgency, OKR alignment, and recency - **One-click Execute** — spawns Claude Code locally with iCPG context injected - **Competitor intelligence** — daily AI briefing on your competitive landscape - **No hardcoding** — works for any team, any stack, any issue tracker ### ⚠️ Execute permission model (important) Execute currently runs `claude -p --dangerously-skip-permissions` so the TDD pipeline isn't blocked waiting on approval prompts (subprocess has no terminal). That flag **grants Claude full permission to write/edit files and run shell commands** inside the target codebase, and the prompt it receives includes content from the issue tracker (which any team member can author). **Hardening already in place:** - `working_dir` is validated against the list of codebase roots in `~/.maggy/config.yaml` — Claude can't be pointed at arbitrary filesystem paths. - Only tickets from your configured trackers reach Execute; no public-internet input flows into the prompt. **Roadmap:** move the unconditional flag behind per-codebase config (`auto_approve: true|false`) so privileged execution becomes opt-in. Until then, treat Execute like `git pull && make` on any ticket you push the button for — only run it on repos you own, against tickets from authors you trust. ``` ┌──────────────────────────────────────────────────────────────┐ │ claude-bootstrap ──────────────┐ │ │ ├── skills/ ← installed globally → ~/.claude/ │ │ ├── commands/ ← installed globally → ~/.claude/ │ │ ├── scripts/icpg/ ← used by Maggy for context enrichment │ │ └── maggy/ ← OPTIONAL: run `./install.sh` to use │ │ ├── src/ │ │ │ ├── providers/ ← GitHub / Asana / Linear │ │ │ ├── services/ ← inbox, competitor, executor │ │ │ └── api/ ← FastAPI routes │ │ └── install.sh │ └──────────────────────────────────────────────────────────────┘ ``` --- ## When Maggy Helps | Scenario | How Maggy helps | |------------------------------------------|-----------------------------------------------| | Morning triage of 50 open issues | AI ranks them; top items stay top | | Implementing a ticket | `Execute` → iCPG-enriched TDD pipeline | | "What are competitors shipping?" | Daily briefing + filterable news feed | | Multiple repos per team | Auto-picks right repo based on ticket content | | New team onboarding | Configure via `/maggy-init`, no code writing | --- ## Install and Configure ```bash # One-time install cd $(cat ~/.claude/.bootstrap-dir)/maggy ./install.sh # Configure # Edit ~/.maggy/config.yaml — see maggy/config.example.yaml for the schema # Credentials export GITHUB_TOKEN=ghp_... export ANTHROPIC_API_KEY=sk-ant-... # Run python3 -m src.main # Or from Claude Code: # /maggy-init # interactive wizard # /maggy # launch dashboard ``` --- ## Provider Abstraction Maggy services never see GitHub/Asana directly — they talk to an `IssueTrackerProvider` Protocol. Drop-in swap between: - `GitHubIssuesProvider` — scans multiple repos, aggregates open issues, maps "done" → closed - `AsanaProvider` — queries projects, respects workspace scope - `LinearProvider` — stub for future The same inbox, Execute pipeline, and Competitor features work with any provider. --- ## Execute Pipeline When you click Execute on a ticket: 1. Maggy queries the configured iCPG (from claude-bootstrap) for relevant symbols, blast radius, and prior intents 2. Picks the right working directory based on ticket keywords + configured codebases 3. Spawns `claude -p --dangerously-skip-permissions` in that directory 4. Runs analyze → write failing tests → implement 5. Captures output in a session you can follow in the Sessions tab Because the spawned Claude Code runs in the target repo, it picks up: - That repo's `CLAUDE.md` - Your global `~/.claude/CLAUDE.md` - All bootstrap skills - `.claude/hooks/`, `.mcp.json` So Execute gets the full bootstrap experience — not a stripped-down version. --- ## Competitor Intelligence Generic — works for any domain: 1. Configure `competitors.categories: ["fintech", "embedded-finance"]` in `~/.maggy/config.yaml` 2. Click Discover — Claude identifies 12-18 competitors (market leaders, AI-first challengers, vertical specialists) 3. Maggy monitors their RSS blogs + Google News daily 4. Daily briefing is generated once per day (cached), regeneratable on demand --- ## Not Included Maggy MVP is focused. Not shipped: - Meeting bot (voice) - Slack integration - P2P network + session handoff - Self-improvement (`/improve-maggy`) - Linear provider (stub only) These are v2 work. --- ## Files - `maggy/PLAN.md` — architecture rationale - `maggy/README.md` — user docs - `maggy/src/providers/base.py` — IssueTrackerProvider Protocol - `maggy/src/services/executor.py` — TDD pipeline - `maggy/src/services/competitor.py` — discovery + briefing - `maggy/src/services/inbox.py` — AI prioritization - `commands/maggy.md` — `/maggy` launcher - `commands/maggy-init.md` — `/maggy-init` setup wizard