60 Commits

Author SHA1 Message Date
Brandon Martin 35e7f7deae feat(linear): switch cce-linear to GraphQL-only workflows (#13)
## Summary
- replace the Linear skill wrappers with shared GraphQL-only scripts and
add GraphQL-native document list/read helpers
- rewrite the source Linear skill docs and references to remove the old
Linearis-specific guidance
- bump to , resync the packaged plugin, and update packaged command/docs
wording to match the GraphQL flow

## Test Plan
- python -m compileall .claude/skills/linear/scripts
plugins/cce-linear/skills/linear/scripts
- uv run .claude/skills/linear/scripts/create-ticket.py --help
- uv run .claude/skills/linear/scripts/search-issues.py --help
- uv run .claude/skills/linear/scripts/create-project.py --help
- uv run .claude/skills/linear/scripts/list-documents.py --help
2026-04-20 16:33:19 -05:00
Brandon Martin aabed4666c feat(typescript): add TypeScript 6 skill plugin (#12)
## Summary
- add a new `typescript-v6` skill under `.claude/skills/` with TS 6
upgrade guidance, focused references, and trigger metadata grounded in
the official release notes
- add a dedicated `typescript-v6` plugin package and sync wiring so the
skill ships separately from the existing `cce-typescript` agent plugin
- update the root README and regenerate marketplace/plugin outputs via
`python3 scripts/sync_plugin_packages.py`

## Verification
- `python3 scripts/sync_plugin_packages.py`
- `python3 -m py_compile scripts/sync_plugin_packages.py`
- `lsp_diagnostics scripts/sync_plugin_packages.py`
- `git diff --check`
2026-04-12 14:05:54 -05:00
Brandon Martin ca1a51bb65 feat(vite): add vite-v8 and vitest-v4 skills to cce-vite (#11)
## Summary
- rename the original `vitest-4` skill/package to `vitest-v4` across the
repo and the packaged `cce-vite` plugin so the version is explicit in
the skill name
- add a new rich `vite-v8` skill package in the repo and package it into
`cce-vite` alongside `vitest-v4`
- deepen both Vite/Vitest skill packages with richer failure-mode-driven
references, execution guidance, migration notes, and cross-linked
reference indexes modeled after the stronger `tauri-v2` style
- register `cce-vite` in `.claude-plugin/marketplace.json` and add
`cce-vite` to `scripts/sync_plugin_packages.py` so the plugin package
and marketplace entry are reproducible from source
- update plugin metadata, author metadata, and README
inventories/install docs to match the final packaged scope

## Verification
- ran `lsp_diagnostics` across the enriched markdown skill directories
with no issues
- validated `plugins/cce-vite/.claude-plugin/plugin.json` and
`.claude-plugin/marketplace.json` parse as JSON
- validated relative markdown links across the repo-root and packaged
Vite/Vitest skill trees
- verified no repo-facing `vitest-4` references remain
- ran `python -m py_compile scripts/sync_plugin_packages.py`
- ran `python scripts/sync_plugin_packages.py` successfully
- ran `git diff --check` with no whitespace issues
2026-04-12 12:25:39 -05:00
Brandon Martin 3493e219b6 docs(tauri): expand v2 skill package and clean placeholder dirs (#10)
## Summary
- expand the `tauri-v2` skill package into a layered v2+ reference with
stronger guidance for mobile entry points, `WebviewWindow` usage,
capabilities, IPC, official plugins, updater/distribution, and advanced
runtime topics
- improve discoverability and progressive disclosure with direct
deep-dive links from `SKILL.md`, tables of contents in long reference
files, consistent verification notes, and a clearer deprecated/legacy
position for the companion agent
- bump the packaged `cce-tauri` plugin to `1.0.1`, regenerate synced
marketplace/plugin outputs, and remove empty placeholder `assets/` and
`scripts/` directories that only contained generic README stubs
2026-04-02 22:16:17 -05:00
Brandon Martin b25e064fd1 fix(plugins): drop duplicate core hooks manifest (#9)
## Summary
- remove the redundant `manifest.hooks` entry from the generated
`cce-core` plugin manifest
- keep `plugins/cce-core/hooks/hooks.json` in the standard plugin
location with the wrapped `hooks` record
- update the sync script so regenerated packages do not reintroduce the
duplicate-hook error

## Why
Marketplace installs of `cce-core` now fail with:

```text
Hook load failed: Duplicate hooks file detected: ./hooks/hooks.json resolves to already-loaded file ...
The standard hooks/hooks.json is loaded automatically, so manifest.hooks should only reference additional hook files.
```

The previous hook-schema fix made the standard `hooks/hooks.json` file
valid, but `plugin.json` still pointed at that same standard file. That
caused the plugin loader to load it twice.

## Changes
- remove `hooks: "./hooks/hooks.json"` from generated plugin manifests
- regenerate `plugins/cce-core/.claude-plugin/plugin.json`

## Verification
- `python3 scripts/sync_plugin_packages.py`
- `python3 -m py_compile scripts/sync_plugin_packages.py
install_extensions.py`
- validated `plugins/cce-core/.claude-plugin/plugin.json` no longer has
a `hooks` field
- validated `plugins/cce-core/hooks/hooks.json` still contains a
top-level `hooks` object
2026-04-01 22:56:00 -05:00
Brandon Martin 39b89360ac fix(plugins): wrap packaged core hooks (#8)
## Summary
- wrap the generated `plugins/cce-core/hooks/hooks.json` contents under
a top-level `hooks` key
- keep `cce-core` pointing at `./hooks/hooks.json` while making the file
shape match the plugin loader schema
- update the package sync script so regenerated core hooks stay valid

## Why
Marketplace installs of `cce-core` failed with:

```text
Hook load failed: [
  {
    "expected": "record",
    "code": "invalid_type",
    "path": ["hooks"],
    "message": "Invalid input: expected record, received undefined"
  }
]
```

The plugin loader expects the external hooks file to contain a top-level
`hooks` record. Our generated file started directly with event keys like
`PreToolUse` and `PostToolUse`, so the loader could not find `hooks`.

## Changes
- update `scripts/sync_plugin_packages.py` to emit `{ "hooks": { ... }
}` for the generated core hooks file
- regenerate `plugins/cce-core/hooks/hooks.json`

## Verification
- `python3 scripts/sync_plugin_packages.py`
- `python3 -m py_compile scripts/sync_plugin_packages.py
install_extensions.py`
- validated `plugins/cce-core/hooks/hooks.json` contains a top-level
`hooks` object
2026-04-01 22:39:30 -05:00
Brandon Martin 2232aae10c fix(plugins): remove unsupported manifest path fields (#7)
## Summary
- remove explicit `agents`, `skills`, and `commands` fields from
generated plugin manifests
- rely on Claude Code's standard auto-discovery for plugin-root
`agents/`, `skills/`, and `commands/` directories
- flatten packaged agents to `agents/*.md` so discovery does not depend
on nested-path recursion
- keep the fix minimal by only retaining the explicit `hooks` entry for
`cce-core`

## Why
A local plugin install failed with:

```text
Plugin has an invalid manifest file ... Validation errors: agents: Invalid input
```

Our packaged plugins already follow the standard directory structure, so
the extra manifest path fields were unnecessary and were the most likely
validator mismatch. Greptile also flagged that many generated plugin
agents were nested under paths like `agents/specialized/...`, which
could silently fail if discovery is non-recursive. This change aligns
the packages with the default plugin structure instead of relying on
special manifest fields or recursive discovery.

## Changes
- update `scripts/sync_plugin_packages.py` to stop emitting manifest
path overrides
- flatten generated packaged agents to plugin-root `agents/*.md`
- regenerate all packaged plugin manifests with minimal metadata-only
manifests
- regenerate all packaged plugin agent files into the flat standard
layout

## Verification
- `python3 scripts/sync_plugin_packages.py`
- `python3 -m py_compile scripts/sync_plugin_packages.py
install_extensions.py`
- validated all 19 generated plugin manifests as JSON
- confirmed no generated manifest still contains `agents`, `skills`, or
`commands`
- confirmed packaged agents are flat: `flat_agents=78 nested_agents=0`
2026-04-01 22:25:42 -05:00
Brandon Martin 1ac816cc29 refactor(plugins): package self-contained plugin installs (#5)
## Summary
- convert the marketplace packages into self-contained plugin installs
with local `agents/`, `skills/`, `commands/`, and `hooks/` content
- replace the old `triage-workflow` path with the new `linear` skill and
ship a dedicated `cce-linear` plugin for Linear-backed ticket and PR
workflows
- remove the unfinished `cce-auto-blog` plugin so this PR stays focused
on the plugin infrastructure redo

## What Changed
- added `scripts/sync_plugin_packages.py` to generate package manifests
and sync plugin-local assets from the shared `.claude/` source tree
- updated `.claude-plugin/marketplace.json` and per-plugin manifests for
19 packages, including new `cce-linear` and `cce-tauri` entries
- materialized packaged plugin assets under `plugins/*` so marketplace
installs no longer depend on repo-root `.claude` paths
- rewired Linear commands to use the `linear` skill wrapper scripts and
removed hardcoded workspace-specific Linear URLs
- refreshed root and plugin README files to match the packaged layout
and current plugin inventory

## Verification
- `python3 -m py_compile scripts/sync_plugin_packages.py
install_extensions.py .claude/skills/linear/scripts/*.py`
- `python3 scripts/sync_plugin_packages.py`
- validated plugin JSON/manifests and `cce-linear` package wiring
- confirmed no `axios-hq` or `triage-workflow` references remain in the
`.claude` Linear sources

---------

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-01 21:51:29 -05:00
Brandon Martin a8609ad357 Add Home Assistant and Tauri v2 agents, skills, and commands (#4)
## Summary
- Add 7 specialized agents for Home Assistant ecosystem and Tauri v2
development
- Add 8 comprehensive skills with templates, references, and assets
- Add 3 Home Assistant slash commands for common workflows
- Update plugin table: 8 → 9 plugins (new `cce-tauri`)

## New Plugins
| Plugin | What's Included |
|--------|-----------------|
| **cce-homeassistant** | Now includes 8 skills (added Frigate
configurator) |
| **cce-tauri** | NEW - 1 Tauri v2 expert agent, 1 skill |

## New Agents
**Home Assistant:**
- `ha-addon-developer` - Add-on development expert
- `ha-api-expert` - REST/WebSocket API specialist
- `ha-automation-expert` - Automation and scripting
- `ha-energy-expert` - Energy dashboard and monitoring
- `ha-integration-developer` - Custom integration development
- `ha-voice-expert` - Voice assistant configuration

**Tauri:**
- `tauri-v2-expert` - Tauri v2 desktop app development

## New Skills
- `frigate-configurator` - Frigate NVR configuration with templates
- `ha-addon` - Add-on scaffolding with Dockerfile and bashio reference
- `ha-api` - API interaction patterns
- `ha-automation` - Automation best practices
- `ha-energy` - Energy monitoring setup
- `ha-integration` - Full integration scaffold with Python assets
- `ha-voice` - Voice assistant configuration
- `tauri-v2` - Tauri v2 with IPC patterns and capabilities reference

## New Commands
- `/ha-automation-lint` - Validate automations
- `/ha-blueprint-create` - Generate blueprints
- `/ha-integration-scaffold` - Scaffold new integrations
2026-01-15 07:46:28 -06:00
Brandon Martin 90c9228896 📝 docs: add dual-mode plugin architecture documentation
Document comprehensive plugin system architecture:

CLAUDE.md additions:
- Plugin Architecture section explaining dual-mode installation
- Multi-plugin structure with 5 Phase 1 plugins
- Hook path resolution using ${CLAUDE_PLUGIN_ROOT}
- Command namespacing (plugin vs standalone modes)
- Plugin manifest structure and custom paths
- Testing workflow for both installation modes

CONTRIBUTING.md additions:
- Plugin Development section with structure overview
- Semantic versioning guidelines for plugins
- Component assignment matrix (which extensions go in which plugins)
- Dual-mode testing requirements
- Hook path syntax for portability

README.md additions:
- Available Plugins table (8 Phase 1 plugins documented)
- Three installation methods comparison
- Plugin mode installation instructions
- Namespace examples for each plugin
- Updated agent and skill counts

Architecture supports:
- Modular plugin selection (users install only what they need)
- Shared components from repository root (.claude/)
- Backward compatibility with standalone mode
- Both plugin and standalone installation methods
2025-12-26 22:05:10 -06:00
Brandon Martin 843b8a62e2 feat: add modular plugin system with 17 specialized plugins
Add comprehensive plugin architecture with marketplace support:
- 17 focused plugins for different tech stacks
- Dual-mode installation (plugin vs standalone)
- Standardized README.md for all plugins
- marketplace.json for plugin discovery

Plugins included:
- cce-core: Essential foundation (agents, hooks, commands)
- cce-kubernetes: K8s operations and health diagnostics
- cce-cloudflare: Workers, AI, Workflows, VPC
- cce-esphome: ESPHome IoT development
- cce-web-react: React/Next.js/TanStack
- cce-django: Django backend development
- cce-research: Deep research coordination
- cce-grafana: Grafana plugin development
- cce-homeassistant: Home Assistant dashboards
- cce-temporal: Temporal.io workflows
- cce-typescript: TypeScript tooling
- cce-web-vue: Vue.js/Nuxt development
- cce-devops: CI/CD and DevOps tools
- cce-ai: AI/ML development
- cce-anthropic: Claude Agent SDK
- cce-go: Go development
- cce-python: Python CLI with Typer

Each plugin includes complete metadata, installation instructions,
and usage examples. Users install only what they need for their stack.
2025-12-26 22:04:50 -06:00
Brandon Martin 53f7077571 🔧 chore: update prime command plugin docs references
Replace local plugins.md reference with official online documentation URLs
for accurate plugin development guidance.
2025-12-22 23:00:28 -06:00
Brandon Martin c2f9a30407 feat: add esphome-box3-builder skill
Add ESP32-S3-BOX-3 specialist skill for audio/display/touch projects:

Templates:
- box3-base.yaml: Complete hardware initialization foundation
- box3-voice.yaml: Voice assistant with wake word + audio ducking

References (10,400 words):
- box3-pinout.md: Complete hardware reference, GPIO pinout, known issues
- display-lambdas.md: Lambda rendering cookbook for ILI9xxx
- touch-patterns.md: GT911 touch interaction patterns
- material-design.md: Material Design UI guide for BOX-3 display

Scripts:
- flash-box3.sh: BOX-3 validation and flashing workflow

Assets:
- fonts/README.md: Roboto and Material Design Icons setup

Provides 50% token reduction and 65% time savings for BOX-3 projects with
hardware-specific templates including PSRAM octal mode config, I²S audio
pipeline, and display lambda patterns.

Also includes trivial newline fix to prime.md command.
2025-12-22 23:00:15 -06:00
Brandon Martin 87d97f2ab4 feat: add esphome-config-helper skill
Add auto-discoverable skill for rapid ESPHome configuration generation and
troubleshooting:

Templates:
- basic-device.yaml: Minimal ESP32 starter
- sensor-node.yaml: DHT22 + WiFi + HA integration
- relay-switch.yaml: 4-channel relay controller
- display-node.yaml: SSD1306 OLED + sensors

References (15,400 words):
- gpio-pinouts.md: Complete ESP32/ESP8266 GPIO reference
- common-sensors.md: Top 20 sensor configurations with wiring
- troubleshooting.md: 50+ error messages with solutions

Scripts:
- validate-config.sh: ESPHome validation wrapper

Provides 40% token reduction and 60% time savings through ready-to-use
templates and comprehensive troubleshooting guides.
2025-12-22 23:00:01 -06:00
Brandon Martin 51e788b345 feat: add ESPHome specialist agent suite
Add 6 focused ESPHome agents organized by domain expertise:
- esphome-core: Universal ESPHome fundamentals (YAML, device basics, workflow)
- esphome-networking: WiFi, mDNS, API encryption, OTA, connectivity
- esphome-homeassistant: Bidirectional HA integration (entities, services, state sync)
- esphome-components: 100+ components (sensors, outputs, displays, switches, lights)
- esphome-automations: Triggers, conditions, actions, lambdas, scripting
- esphome-box3: ESP32-S3-BOX-3 hardware specialist (audio, display, touch, voice)

Each agent implements progressive disclosure pattern with third-person
descriptions and imperative writing style for optimal auto-delegation.
2025-12-22 22:59:49 -06:00
Brandon Martin ca8e1de7bb feat(hooks): add cross-platform notification support
Add Discord webhook notifications for Claude Code events, providing
reliable cross-platform notifications that work over SSH, on Windows,
Mac, and Linux.

Changes:
- Add discord_notification.py hook for Discord webhook notifications
  - Supports Notification, Stop, SubagentStop, and other lifecycle events
  - Works cross-platform (Ubuntu/Mac/Windows) and over SSH
  - Includes User-Agent header to prevent Discord API blocking
  - Comprehensive error handling and logging

- Add ssh_osc777_notification.py hook for terminal notifications
  - Detects terminal types (iTerm2, Warp, VS Code, generic)
  - Sends OSC 777 sequences for iTerm2 (full notification support)
  - Falls back to window title + bell for other terminals
  - Over SSH: Uses terminal bell only (safe, prevents session freeze)

- Register hooks in .claude/settings.json
  - Discord notifications enabled for Notification and Stop events
  - Runs alongside existing notification.py (TTS) hook

Setup:
1. Create Discord webhook in Server Settings → Integrations → Webhooks
2. Set DISCORD_WEBHOOK_URL environment variable
3. Notifications appear in Discord on desktop and mobile

This solves the issue of notifications not working over SSH on Windows,
providing a reliable notification mechanism that works everywhere.
2025-12-22 22:55:14 -06:00
Brandon Martin 23db6b6730 feat: add Home Assistant dashboard expert agent and skill
Add specialized agent and skill for Home Assistant Lovelace dashboard
configuration, card selection, view layouts, theming, and custom card
development.

Agent (.claude/agents/specialized/homeassistant/):
- ha-dashboard-expert.md with Context7 library references

Skill (.claude/skills/ha-dashboard/):
- SKILL.md with quick start, rules, and troubleshooting
- README.md with auto-trigger keywords
- references/ with card, view, theme, and pattern documentation
- assets/ with dashboard template and card snippets
2025-12-18 13:35:02 -06:00
Brandon Martin 194152992b 🙈 chore: add .opencode directory to gitignore 2025-12-18 13:34:49 -06:00
Brandon Martin 51bcd8eb9f 🙈 chore: add __pycache__ to gitignore
Prevent Python bytecode cache directories from being tracked.
2025-12-17 15:19:07 -06:00
Brandon Martin 06200b30d8 feat: add Grafana billing metrics scripts
Python scripts for querying observability billing data:
- billing_metrics.py: Main entry point for metrics collection
- grafana_client.py: Grafana API client
- prometheus_metrics.py: Prometheus billing queries
- loki_metrics.py: Loki billing queries
- formatters.py: Output formatting utilities
2025-12-17 15:17:48 -06:00
Brandon Martin 7d8f5a389d feat: add Grafana plugin scaffolding scripts
Shell scripts for plugin development workflow:
- create_plugin.sh: Scaffold new plugins with @grafana/create-plugin
- dev_server.sh: Start Docker development environment
2025-12-17 15:17:09 -06:00
Brandon Martin 6594b9cfd4 feat: add kubernetes-health discovery and reporting scripts
Python scripts for cluster health diagnostics:
- discover_apis.py: Detect installed operators via API groups
- health_orchestrator.py: Map APIs to specialized agents
- aggregate_report.py: Combine results into unified report
2025-12-17 15:17:03 -06:00
Brandon Martin 37c6ba71bd 🔧 chore: narrow gitignore to specific script file
Change from ignoring all scripts/ to only ignoring
scripts/gh-workflow-minutes.py to allow skill scripts to be tracked.
2025-12-17 15:16:54 -06:00
Brandon Martin da9b700493 📝 docs: update README with new extensions
Document newly added components:
- kubernetes-health skill and /k8s-health command
- grafana-plugin-scaffolding and grafana-billing skills
- Kubernetes health agents section
- Grafana agents section
- Update skill count (2 → 4)
2025-12-17 15:16:50 -06:00
Brandon Martin 4cac86ba5f 🔧 chore: ignore root scripts directory
Add scripts/ to .gitignore for project-level automation scripts
that shouldn't be tracked (separate from skill scripts).
2025-12-17 15:15:58 -06:00
Brandon Martin 766f66d896 feat: add Linear workflow commands for PR creation
New slash commands for Linear integration:
- /create-linear-pr: Create ticket, branch, commit, and PR in one flow
- /existing-linear: Create PR for existing Linear ticket

Automates the full workflow from staged changes to opened PR with proper
ticket linking and success criteria validation.
2025-12-17 15:15:49 -06:00
Brandon Martin aa8fcf4e85 feat: add Grafana plugin development skill and billing metrics
New Grafana ecosystem extensions:
- grafana-plugin-scaffolding skill for creating panel/datasource/app plugins
- grafana-billing skill for querying Prometheus/Loki billing metrics
- grafana-plugin-expert agent for SDK guidance and development patterns

Supports Grafana v12.x+ with @grafana/create-plugin scaffolder integration.
2025-12-17 15:15:40 -06:00
Brandon Martin 7750dd1e0d feat: add kubernetes-health skill with orchestrated diagnostics
Dynamic cluster health assessment system using API discovery to detect
installed operators and dispatch specialized sub-agents for comprehensive
health checks.

Includes:
- kubernetes-health skill with discovery scripts
- k8s-health-orchestrator agent for coordination
- Specialized agents for Core, Crossplane, ArgoCD, Cert-Manager, Prometheus
- /k8s-health command for easy invocation
2025-12-17 15:15:20 -06:00
Brandon Martin f80d95a869 Add skills system, specialized agents, and plugin documentation (#3)
## Summary

-  Add skill system with 3 skills (cloudflare-vpc-services,
code-reviewer, commit-helper) and skill skeleton template
-  Add 8 specialized agents for ArgoCD, Braintrust, GitHub Actions,
Fumadocs, and Helm
-  Add 4 new slash commands (/agent-intent-from-docs, /create-skill,
/triage, /wrapup-skillup)
- 📝 Add comprehensive plugin system documentation (plugins.md,
plugins-reference.md, plugin-marketplaces.md, agent-skills.md)
- 🔧 Update install_extensions.py to support skill discovery and
installation
- 🔧 Add skill_forced_eval hook and update settings.json

## Test plan

- [x] Verify skills are discovered by running `uv run
install_extensions.py list --type skill`
- [x] Test `/create-skill` command creates proper skill structure
- [x] Verify new agents appear in `/agents` interface
- [x] Confirm new commands work via `/help`
- [x] Review documentation renders correctly
2025-12-04 12:42:16 -06:00
Brandon Martin 17e5614571 Add kubernetes-operations skill (#2)
## Summary

- Create comprehensive Kubernetes interaction skill for kubectl
operations
- Add token-efficient UV scripts that reduce output by ~70%
- Include reference docs for kubectl commands and JSONPath patterns

## Changes

**Skill Core:**
- `SKILL.md` - Debugging workflows, resource management, cluster
operations
- `README.md` - Auto-trigger keywords for model invocation

**UV Scripts:**
- `debug_pod.py` - Condensed pod debugging (status, events, logs)
- `get_resources.py` - Compact resource listing with jsonpath
- `cluster_health.py` - Quick cluster status overview

**References:**
- `kubectl-cheatsheet.md` - Condensed command reference
- `jsonpath-patterns.md` - Common JSONPath expressions
- `debugging-flowchart.md` - Decision tree for pod issues

## Test Plan

- [x] Scripts parse arguments correctly (`--help`)
- [x] `cluster_health.py` shows node status and unhealthy pods
- [x] `get_resources.py` lists pods in table format
- [x] `debug_pod.py` handles running and pending pods
2025-12-04 10:03:40 -06:00
Brandon Martin e65eb9ada0 Merge Triage workflow skill 2025-11-22 16:05:09 -06:00
Brandon Martin 840792153c IAI-1: Add triage-workflow skill 2025-11-22 15:48:59 -06:00
Brandon Martin dcfd28f9e5 feat: add --cache-only flag to control SessionStart notifications
Add optional --cache-only flag to allow SessionStart events to cache the
transcript path without sending Slack notifications.

Changes:
- Added --cache-only command-line argument
- SessionStart always caches transcript path
- With --cache-only: exits after caching (no notification)
- Without --cache-only: continues to send SessionStart notification
- Updated settings.json to use --cache-only by default
- Removed --event-emoji from Stop/SubagentStop (not needed)
- Updated documentation with SessionStart example and flag description

Benefits:
- Flexible control over SessionStart notifications
- Maintains workaround for stale transcript path bug
- Users can opt-in to SessionStart notifications by removing flag
- Cleaner configuration (removed redundant emoji flags)
2025-10-08 01:15:08 -05:00
Brandon Martin 9c1f0e2fe2 🐛 fix: convert markdown and add workaround for stale transcript path
Fix Slack notifications to properly display bold text and handle resumed
session transcript path bug.

Changes:
- Added convert_markdown_to_slack() to convert **bold** to *bold*
- Stop/SubagentStop now convert markdown before sending to Slack
- Added SessionStart handler to cache current transcript_path
- Reads cached path first to work around stale path in resumed sessions
- Added retry logic with delays to handle transcript write timing
- Registered hook for SessionStart events in settings.json
- Documented workaround in README and slack-notifications.md

Technical details:
- Caches transcript path to logs/.current-transcript on SessionStart
- Falls back to provided path if cache doesn't exist
- Retries up to 3 times with 0.3s delays for timing issues
- Converts standard markdown to Slack format before sending

Workaround for: https://github.com/anthropics/claude-code/issues/8069
2025-10-08 01:04:37 -05:00
Brandon Martin 1cd21bb602 feat: include full assistant response in Slack Stop/SubagentStop notifications
Enhance Slack notifications to include the complete assistant response for Stop and SubagentStop events, providing full context of what Claude accomplished.

Changes:
- Added get_last_assistant_message() to extract assistant responses from transcript
- Stop events now include the last assistant message (up to 3000 chars)
- SubagentStop events now include the last assistant message with task description
- Messages automatically truncate with indicator if exceeding 3000 chars
- Graceful fallback to generic message if transcript unavailable
- Fixed missing --event-emoji  flag in settings.json Stop hook

Example notification:
  " Task Completed

  Perfect!  Commit created successfully:
  Commit: de50fb9
  Message:  feat: add Slack notification hook
  Changes: 6 files changed, 617 insertions(+)"

Documentation updated to reflect new full-context feature.
2025-10-08 00:08:23 -05:00
Brandon Martin de50fb9d0f feat: add Slack notification hook for Claude Code events
Add comprehensive Slack integration that sends direct messages for Claude Code lifecycle events including notifications, task completions, and subagent completions.

Features:
- Universal event support (Notification, Stop, SubagentStop, etc.)
- Intelligent message formatting based on event type
- Custom emoji support via --event-emoji flag
- Comprehensive error handling and logging
- Dry-run mode for testing

Implementation:
- slack_notification.py: Main hook using slack_sdk
- docs/slack-notifications.md: Complete setup and usage guide
- .env.example: Environment variable template
- Updated settings.json with Slack hooks for key events
- Updated .gitignore to exclude .env files
- Updated README.md to document new hook

Requires SLACK_BOT_TOKEN and SLACK_USER_ID environment variables.
2025-10-07 23:57:34 -05:00
Brandon Martin b6692bd9f9 📝 docs: fix /git-commit command documentation in README
- Update description to clarify it analyzes changes and auto-generates commit messages
- Correct argument list from `[message] | --no-verify | --amend` to `[message] [--amend] (Optional)`
- Remove unsupported `--no-verify` flag
- Clarify that message argument is optional hint (e.g., ticket number), not full commit message
2025-10-01 22:35:31 -05:00
Brandon Martin 60372300db 📝 docs: add CONTRIBUTING.md and establish MIT license
- Add comprehensive contribution guidelines covering:
  - Code of conduct and licensing terms
  - Getting started guide for new contributors
  - Development workflow and branch conventions
  - Extension creation guides (agents, hooks, commands)
  - Testing procedures and style guidelines
  - Pull request process and commit message format
- Switch from proprietary to MIT License for maximum adoption
- Update README.md with cleaner structure and highlights section
- Add reference to CONTRIBUTING.md in CLAUDE.md
- Remove non-commercial restrictions to encourage community growth
2025-10-01 22:28:53 -05:00
Brandon Martin 1b957dface feat: add Claude Agent SDK expert agents for TypeScript and Python
Add two specialized agents for Anthropic's Claude Agent SDK:
- TypeScript/Node.js expert for type-safe agent development with Zod
- Python expert for async agent development with anyio/asyncio

Both agents cover:
- Query patterns and streaming responses
- Custom tool creation with MCP integration
- Permission modes and security controls
- Hook system for lifecycle events
- FastAPI/Django integration (Python)
- Production deployment patterns

Also updated:
- README.md: Added Anthropic section and expanded Cloudflare/Crossplane sections
- CLAUDE.md: Added reminder to update README when adding extensions

The agents leverage comprehensive research from official Anthropic documentation
(October 2025 release) and provide production-ready implementation guidance.
2025-10-01 21:42:02 -05:00
Brandon Martin c0760d42be feat: add Crossplane AWS RDS expert agent 2025-10-01 21:16:07 -05:00
Brandon Martin f93bcfa2fa feat: add comprehensive Cloudflare platform expert agents
Add five specialized agents covering the Cloudflare Workers ecosystem:

- cloudflare-workers-expert: Core Workers runtime, APIs, and storage
- cloudflare-workflows-expert: Durable execution engine and orchestration
- cloudflare-workers-ai-expert: AI inference with 50+ models at the edge
- cloudflare-workers-for-platforms-expert: Multi-tenant serverless infrastructure
- cloudflare-ai-agents-sdk-expert: AI agent framework with state management

Each agent includes:
- Comprehensive documentation analysis from official Cloudflare docs
- "MUST BE USED" triggers for automatic delegation
- Complete API reference and best practices
- Production-ready code examples and patterns
- Clear delegation guidelines to related specialists

Also enhanced agent-from-docs command to support multi-agent creation
strategy when URLs represent distinct platform verticals.

All agents placed in .claude/agents/specialized/cloudflare/
2025-09-30 16:04:48 -05:00
Brandon Martin 0a4bfb9d34 📝 docs: add go-google-style-expert to README
Added new Go section to specialized agents list documenting
the Google Go style guide expert agent with its key features.
2025-09-30 15:19:01 -05:00
Brandon Martin 51df4445ad feat: add Google Go style expert agent
Created comprehensive Go development agent based on:
- Google Go Style Guide (guide, best practices, decisions)
- Go 1.25 features (synctest, WaitGroup.Go, hash.Cloner)
- Effective Go principles

Enforces strict Google style conventions:
- MixedCaps naming, no util packages
- Error handling with %w wrapping
- Goroutine lifecycle management
- Consumer-defined interfaces
- Table-driven tests (no assertion libraries)
- Context as first parameter

Agent proactively activates for Go files and provides structured
code reviews with severity levels, refactoring examples, and
specific style guide references.
2025-09-30 15:18:04 -05:00
Brandon Martin cf007d3f46 feat: enable parallel documentation analysis in agent-from-docs
Updated agent-from-docs command to launch multiple technical-researcher agents in parallel when multiple documentation URLs are provided, improving efficiency and reducing total analysis time.
2025-09-30 15:05:06 -05:00
Brandon Martin f6bfc13069 ♻️ refactor: clean up deep-research agent frontmatter descriptions
Remove verbose XML example blocks from description fields in data-analyst,
research-coordinator, and technical-researcher agents. Descriptions now
concise and action-oriented, matching the pattern used in web-researcher
and academic-researcher agents.
2025-09-30 12:52:59 -05:00
Brandon Martin e04ba28746 🔧 chore: make lint hook blocking with exit code 2 2025-09-30 12:47:58 -05:00
Brandon Martin c94db79be4 🚨 fix: resolve ruff linting warnings in installer 2025-09-30 12:28:34 -05:00
Brandon Martin f35b2d640a 📝 docs: add CLI installer usage instructions to README 2025-09-30 12:23:57 -05:00
Brandon Martin 88da75b765 feat: add interactive CLI installer for extensions 2025-09-30 12:23:56 -05:00
Brandon Martin 809afdbe90 ✏️ fix: correct repository name in installation instructions 2025-09-30 11:41:23 -05:00