Commit Graph

21 Commits

Author SHA1 Message Date
Dani 68e3cbce94 chore: Add scripts/migrations/ to .gitignore 2026-03-29 12:11:08 -04:00
Daniel Avila 0e06493dbe security: Harden CI/CD and repo for open-source safety (#458)
* enhance: Improve prompt-engineer agent (automated review)

- Fix broken reasoning framework: complete Ordering field and Necessity scale
- Remove OpenAI attribution from description; add invocation example block
- Restrict tools to Read only (text-transformation agent needs no writes)
- Add XML Structure and CoT Opportunity dimensions to reasoning template
- Move meta-instruction NOTE out of output template, place as agent directive
- Fix stray markdown bold markers on Reasoning Before Conclusions guideline
- Integrate orphaned examples bullet into the Examples guideline line
- Add concrete worked example section (classify customer feedback)

Automated review cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>

* security: Harden CI/CD and repo for open-source safety

- Add --ignore-scripts to all npm ci/install in CI workflows and predeploy script
- Fix shell injection in discord-release-notification (use env vars + jq for payload)
- Add explicit permissions to all workflows (least privilege principle)
- Add root .npmrc with ignore-scripts=true
- Add .github/dependabot.yml for automated dependency security updates
- Add .github/CODEOWNERS to protect workflows, scripts, and API paths
- Expand .gitignore with *.pem, *.key, credentials.json patterns

* fix: Grant contents:read to deploy workflow so checkout works

Cubic correctly flagged that permissions: {} blocks actions/checkout.
2026-03-26 19:19:39 -04:00
Daniel Avila 1cb4c074c1 feat: add cf-crawl skill for Cloudflare Browser Rendering /crawl API (#409)
New skill that crawls entire websites using Cloudflare's Browser Rendering
/crawl endpoint and saves results as markdown. Supports async job polling,
pagination, URL filtering, and multiple output formats.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 19:05:33 -04:00
Daniel Avila 5d29ab3d83 Add telegram-pr-webhook hook for PR creation notifications (#342)
Hook that sends Telegram notification when a new PR is created via
`gh pr create`, including the PR URL and Vercel preview URL.

Files added:
- cli-tool/components/hooks/automation/telegram-pr-webhook.json (component)
- cli-tool/components/hooks/automation/telegram-pr-webhook.py (component script)
- .claude/settings.json (project hook config)
- .claude/hooks/telegram-pr-webhook.py (project hook script)
- .gitignore updated to track the hook script

Uses TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID environment variables.

https://claude.ai/code/session_013aBUK67VEy9Q2MaUGUVRJQ

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-07 20:29:57 -05:00
Daniel Avila c7397fe493 Blog standardization, worktree commands, and .gitignore fix (#341)
* fix: improve Chats Mobile security, CSS quality, and desktop layout

- Sanitize error.message with escapeHtml() to prevent XSS in innerHTML
- Replace !important overrides in .back-btn with proper specificity (.header-btn.back-btn)
- Add desktop side-by-side layout at 769px+ (360px sidebar + flexible chat view)
- Extract 100+ inline styles from analytics modal into reusable CSS classes

https://claude.ai/code/session_01Cfg7GGRKxgJoWiNj1EjWSb

* chore: standardize all 15 blog posts for consistency

Apply unified style guide across all local blog posts:
- Fix copyright year 2025 -> 2026 in all footers
- Remove inline styles from explore-components-banner (use CSS classes)
- Standardize CTA text to "800+" and relative links
- Fix OG tag prefix og:article: -> article: (code-reviewer)
- Fix www.aitmpl.com -> aitmpl.com in OG/Twitter/structured data
- Fix cover image absolute URLs to relative paths (e2b, nextjs)
- Standardize Mermaid theme to orange #F97316 (heygen)
- Fix author name to "Claude Code Templates" (neon-complete)
- Add missing explore-components-banner (security-hooks, vercel-monitor, hackathon)
- Add missing callout boxes (info-box, success-box) where absent
- Standardize CodeCopy JS and MarkdownCopier across posts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add worktree commands and blog post for parallel development

Add 4 worktree slash commands for git worktree lifecycle management:
- /worktree-init: create parallel worktrees from task descriptions
- /worktree-check: show current worktree status and task
- /worktree-deliver: commit, push, and create PR
- /worktree-cleanup: remove merged worktrees and branches

Add blog post explaining the Skill + Commands architecture pattern
where a discoverable Skill (worktree-guide) orchestrates manual
Commands for execution.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: ignore settings.local.json in all subdirectories

Change .claude/settings.local.json to **/settings.local.json
to cover nested paths like docs/.claude/settings.local.json.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add missing allowed-tools to worktree commands

- worktree-cleanup: add Bash(grep:*) for merge check commands
- worktree-init: add Bash(sed:*) for branch name detection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-07 20:11:17 -05:00
Dani 62b5d8de60 feat: add Cloudflare Workers for docs-monitor and pulse weekly KPI report
- Add pulse worker: weekly report collecting metrics from GitHub, Discord,
  Supabase, and Vercel, sent via Telegram every Sunday 14:00 UTC
- Add docs-monitor worker: hourly documentation change monitor with
  Telegram notifications (previously local-only, now tracked in repo)
- Update .gitignore to track cloudflare-workers/ directory
- Document Cloudflare Workers architecture in CLAUDE.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:57:26 -05:00
Dani b5c377ae6c feat: expand secret scanner patterns and add skills support
- Add 25+ new secret detection patterns to secret-scanner.py (Anthropic,
  Google OAuth, GitLab, Vercel, Supabase, Hugging Face, Replicate, Groq,
  Databricks, Azure, Cloudflare, DigitalOcean, Linear, Notion, Figma,
  npm, PyPI tokens)
- Fix regex escaping in security-scanner.json (single quote matching)
- Add skills component type to Discord bot interactions
- Add Linear MCP server to .mcp.json
- Update .gitignore for opsx commands, skills, and openspec dirs
- Regenerate components.json catalog

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:13:48 -05:00
Dani e4c2275bf6 feat(hooks): Add LangSmith tracing integration
Add comprehensive LangSmith observability integration for Claude Code:

- Add langsmith-tracing hook in monitoring category
  - Runs in background with & to avoid blocking
  - Official LangSmith stop_hook.sh script (33KB)
  - Automatic trace upload to LangSmith API
  - Session grouping with thread_id for continuity

- Add langsmith-tracing setting in telemetry category
  - Environment variables with placeholders
  - Easy installation for users
  - Clear instructions for API key setup

- Add bash script support to CLI (index.js)
  - Auto-downloads .sh files with executable permissions
  - Mirrors existing Python file handling
  - Critical for hook functionality

- Update security (.gitignore)
  - Protect .claude/settings.local.json (may contain API keys)
  - Protect .claude/hooks/ directory
  - Remove settings.local.json from git tracking

- Update component catalog (62 settings, 41 hooks)

Installation:
  npx claude-code-templates@latest --hook monitoring/langsmith-tracing
  npx claude-code-templates@latest --setting telemetry/langsmith-tracing

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-09 18:45:10 -05:00
Dani db3670b609 feat(skills): add PostToolUse hook to git-commit-helper skill
Added example hook that logs git diff analysis activity to demonstrate
new Skills hook functionality. The hook triggers after Bash commands
and creates an audit log at ~/.claude/git-commit-helper.log.

Changes:
- Added PostToolUse hook to git-commit-helper SKILL.md
- Updated components.json catalog with regeneration script
- Added analysis/ directory to .gitignore

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-08 14:32:24 -05:00
Dani 8d59f5ea87 fix: Remove generate scripts from gitignore for GitHub Actions
- Removed generate_trending_data.py from .gitignore
- Scripts use environment variables, no sensitive data hardcoded
- Required for automated GitHub Actions workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 16:56:48 -05:00
Dani 0d73e0b498 feat(cloudflare): Upgrade to claude-agent-sdk v0.1.23 with settingSources support
- Updated @anthropic-ai/claude-agent-sdk from ^0.1.0 to ^0.1.23
- Replaced manual agent loading with automatic settingSources: ['project']
- Removed temporary workaround for agent loading (SDK now properly supports it)
- Added gitignore entries for local test directories
- Verified settingSources functionality works with SDK v0.1.23

The latest SDK version properly supports automatic agent loading from .claude/ directory,
eliminating the need for manual file reading and systemPrompt manipulation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-20 19:44:32 -04:00
Dani 40e5f66f85 fix(cloudflare): Align file download directory structure with E2B pattern
Fixed Cloudflare sandbox to save generated files in project root using
timestamp-based directories, matching E2B's sandbox-{id} pattern.

**Changes**:
- Modified launcher.ts to accept targetDir parameter (5th argument)
- Updated LauncherConfig interface with optional targetDir field
- Modified displayResults() to use targetDir instead of process.cwd()
- Fixed TypeScript errors (workerUrl undefined, unused language variable)
- Updated src/index.js to pass targetDir to launcher
- Added cloudflare-*/ and sandbox-*/ to .gitignore
- Updated IMPLEMENTATION_SUMMARY.md with file structure details

**Directory Structure**:
- Before: `.claude/sandbox/cloudflare/cloudflare-output/`
- After: `your-project/cloudflare-{timestamp}/`

**Pattern Comparison**:
- E2B: `your-project/sandbox-{id}/`
- Cloudflare: `your-project/cloudflare-{timestamp}/`

Files now download to clean, timestamped directories in the project root,
improving organization and matching user expectations from E2B behavior.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-20 09:44:05 -04:00
Dani f5a1f35e48 add .claude-plugin/marketplace.json 2025-10-09 12:06:58 -04:00
Dani 01eb0d9e98 cpmarketplace 2025-10-08 21:25:56 -04:00
Dani 72057758f8 add trending 2025-08-25 20:07:11 -04:00
Dani 77539b9982 fix: remove nested cli-tool directory and add local testing
- Remove accidentally created nested cli-tool/cli-tool directory
- Add simple tracking test script for local verification
- Confirmed tracking system works correctly with proper error handling
- Both database and telemetry endpoints are functional
- System gracefully handles local vs production differences

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-19 15:03:40 -04:00
Dani 6201418bc0 feat: Update .gitignore to include .vscode and adjust CSS styles for terminal interface
- Added .vscode to .gitignore to prevent IDE settings from being tracked.
- Changed CodeGPT API key from "Ollama" to "OpenAI" in settings.json.
- Modified CSS styles for various components to enhance the terminal interface, including adjustments to padding, margins, and grid layouts.
- Introduced new terminal-style search functionality in index.html with improved search input handling and results display.
- Enhanced JavaScript event handling for category filters and search functionality, including debouncing and dynamic category display.
- Updated search results formatting to reflect terminal-style aesthetics.
2025-08-19 07:31:35 -04:00
Dani f91a822432 fix: update .gitignore to include additional macOS system files 2025-08-16 18:09:08 -04:00
Dani e66651c0c3 🚀 Major Performance Optimizations - Mobile Loading Issues Fixed
## Critical Issues Resolved:
- **Lazy loading**: Components.json now loads in 50-item batches instead of 1.6MB at once
- **Timeouts**: Added 8-second timeouts to prevent hanging fetches
- **Loading states**: Visual progress indicators for better UX
- **MutationObserver**: Optimized with debouncing and selective monitoring
- **Background loading**: Non-blocking progressive loading
- **Error handling**: Comprehensive fallbacks and user-friendly error messages

## Technical Improvements:
- RequestAnimationFrame instead of setTimeout for smoother animations
- Debounced DOM updates to prevent excessive reflows
- Intelligent caching with cache-friendly timestamps
- Progressive enhancement with fallback data
- Memory-efficient pagination system
- Performance-optimized CSS animations

## Mobile-Specific Fixes:
- Reduced initial payload from 1.6MB to ~200KB
- Prevented UI thread blocking during data parsing
- Added mobile-optimized loading states
- Improved error handling for slow connections

This should resolve the mobile freezing issues completely.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-06 13:57:26 -04:00
Dani 40630e439b fix(deploy): Add .nojekyll file to disable Jekyll 2025-07-31 19:46:01 -04:00
Dani 6099ef14e6 first commit 2025-07-03 21:35:24 -04:00