GitHubClawToolkit

repository·main·Indexed 42 days ago

https://github.com/duotify/githubclawtoolkit

A collection of GitHub Actions and AI skills, including the commit-push-issue-branch-action for managing issue-specific branches, error-handler-action for Copilot CLI logs, and update-comment-action for GitHub Issue comments. It also features AI skills such as Agent Browser for web automation, Felo Search for real-time AI web search, and Felo Slides for AI presentation generation.

Tokens
62.2K
Snippets
188
Records
279
Agent score
54%

What's inside GitHubClawToolkit

  1. Overview of LINEBotWorker

    main

    LINEBotWorker is a core LINE webhook worker. It processes incoming LINE events and posts the conversation content as comments to a specified GitHub issue.

    Key Capabilities:

    • Signature Verification: Validates X-Line-Signature for security.
    • Issue Binding: Can be fixed to a single ISSUE_NUMBER or automatically create/find a unique issue based on the LINE source (group, room, or user).
    • Event Support: Handles follow, join, text, image, audio, video, and file events. sticker events are ignored.
    • Media Handling: Images and videos are displayed as previews within GitHub issues/comments. Media files are stored in a dedicated branch (issue-<ISSUE_NUMBER>) under the path workspaces/issue-<ISSUE_NUMBER>/line.
    • Auto-Reply: If LINE_DEFAULT_REPLY_MESSAGE is configured, the worker sends a fixed message back using the reply token.
    • Monitoring: Provides a GET /status endpoint to check which GitHub issue the worker is currently bound to.
  2. Overview of GitHubClawSkills

    main
    GitHubClawSkills is a repository of Agent Skills designed specifically for 'Lobster' (小龍蝦) agents in the 'Lobster Burger' (龍蝦堡) ecosystem. Each skill is an independent module that provides agents with additional tools and capabilities to handle specific tasks. You can think of it as a 'skill store' where you install only the capabilities you need.
  3. Use the Find Skills skill to discover capabilities

    main

    The Find Skills skill is a meta-skill designed to help you identify which specific skills are best suited for your tasks. It analyzes your goals, searches available skills, suggests optimal sequences for multi-skill tasks, and provides setup instructions (such as required API keys).

    Key Capabilities:

    • Recommends the most suitable skill based on your requirements.
    • Analyzes task objectives to identify necessary capabilities.
    • Suggests the order of operations when a task requires multiple skills.
    • Provides reasoning and configuration guidance for the recommended skills.

    Note: This is a meta-skill; it does not execute tasks itself but guides you on which skills to use. It does not require any API keys to function.

    我想要把網頁內容抓下來,應該用哪個技能?
    有沒有可以幫我做簡報的技能?
    我需要搜尋 Twitter 上的資訊,推薦我用什麼
    我的任務是先蒐集資料再做成簡報,應該怎麼搭配技能?
    有哪些技能可以用?幫我列一份清單
  4. Felo SuperAgent Skill Overview

    main

    The felo-superAgent skill enables AI conversations with real-time SSE streaming on a persistent LiveDoc canvas. It is designed for multi-turn Q&A, continuous conversations, logo/branding design, and e-commerce product image generation.

    When to Use

    Trigger this skill for:

    • SuperAgent conversation: AI chat with real-time streaming output.
    • Continuous conversation: Multi-turn Q&A on a persistent LiveDoc canvas.
    • Logo & branding: Creating logos or brand designs (uses logo-and-branding skill).
    • E-commerce images: Generating product images (uses ecommerce-product-image skill).
    • Image generation from description: Any request where a user describes a scene or product and expects an actual AI-generated image (not just a text prompt).

    Explicit Commands

    • /felo-superagent
    • "use felo superagent"
    • "felo superagent"
  5. Use the gemini-audio-transcriber skill

    main

    The gemini-audio-transcriber skill uses the Gemini Interactions API to transcribe audio files (local or remote URLs) into Traditional Chinese text. It supports automatic speaker diarization (labeling speakers as "說話者 A", "說話者 B", etc.) and handles unidentifiable segments with "[無法辨識]".

    Requirements:

    • GEMINI_API_KEY environment variable must be set.
    • Node.js >= 20.0.0.
    • Supported formats: .mp3, .wav, .ogg, .flac, .m4a, .aac, .webm, .wma.
    • Audio file size: Recommended under 20MB due to Gemini API limits.
    • Remote URL timeout: 30 seconds.

    Workflow Tip: For structured meeting notes, pipe the output of this skill into the meeting-note-formatter skill.

    # Transcribe a remote URL
    GEMINI_API_KEY=your_api_key node .agents/skills/gemini-audio-transcriber/scripts/transcribe.js "https://example.com/audio/meeting.mp3"
    
    # Transcribe a local file
    GEMINI_API_KEY=your_api_key node .agents/skills/gemini-audio-transcriber/scripts/transcribe.js "./recordings/meeting.m4a"
  6. Use the gemini-image-describer skill

    main

    The gemini-image-describer skill uses the Gemini Interactions API to analyze images and generate detailed descriptions in Traditional Chinese (zh-TW) using Markdown. It provides scene descriptions, Optical Character Recognition (OCR), and lists of key objects.

    It supports:

    • Local file paths
    • Remote URLs
    • Data URIs
    • Supported formats: JPEG, PNG, GIF, WebP, BMP, SVG

    Prerequisites:

    • GEMINI_API_KEY environment variable must be set.
    • Node.js >= 20.0.0
    • The script must be executed from the repository root.
    # Basic usage with a remote URL
    GEMINI_API_KEY=your_api_key node .agents/skills/gemini-image-describer/scripts/describe.js "https://example.com/photo.jpg"
  7. Manage session persistence with --session-name

    main

    The --session-name flag allows agent-browser to automatically save and restore cookies and localStorage by name, eliminating the need to manually manage JSON state files.

    When you use a session name, the state is stored in ~/.agent-browser/sessions/. To protect this data, set the AGENT_BROWSER_ENCRYPTION_KEY environment variable.

    # Auto-saves state on close, auto-restores on next launch
    agent-browser --session-name twitter open https://twitter.com
    
    # Next time: state is automatically restored
    agent-browser --session-name twitter open https://twitter.com
    
    # Encrypt state at rest
    export AGENT_BROWSER_ENCRYPTION_KEY=$(openssl rand -hex 32)
    agent-browser --session-name secure open https://app.example.com
  8. Structure a Skill Directory

    main

    A skill is organized as a directory containing a required metadata file and optional supporting resources.

    Anatomy of a Skill:

    skill-name/
    ├── SKILL.md (required)
    │   ├── YAML frontmatter (name, description required)
    │   └── Markdown instructions
    └── Bundled Resources (optional)
        ├── scripts/    - Executable code for deterministic/repetitive tasks
        ├── references/ - Docs loaded into context as needed
        └── assets/     - Files used in output (templates, icons, fonts)
    skill-name/
    ├── SKILL.md (required)
    │   ├── YAML frontmatter (name, description required)
    │   └── Markdown instructions
    └── Bundled Resources (optional)
        ├── scripts/    - Executable code for deterministic/repetitive tasks
        ├── references/ - Docs loaded into context as needed
        └── assets/     - Files used in output (templates, icons, fonts)
  9. How skill triggering works

    main

    Skills are provided to Claude in an available_skills list containing their name and description. Claude decides whether to use a skill based on that description.

    Key behaviors:

    • Complexity Requirement: Claude often handles simple, one-step tasks (e.g., "read this PDF") directly using its built-in tools. Skills are most reliably triggered by complex, multi-step, or specialized queries.
    • Description Quality: If a query is too simple, it may not trigger the skill even if the description is a perfect match. Ensure your evaluation queries are substantive enough to justify the use of a specialized skill.
  10. When to use the Felo Slides Skill

    main

    The felo-slides skill is designed for generating presentation files (PPT/slides).

    Trigger this skill when users ask to:

    • Create/generate slides from a topic or outline.
    • Turn notes into a PPT deck.
    • Build a presentation with specific page count requirements.
    • Export presentation content into a shareable slide link.

    Trigger keywords:

    • English: slides, PPT, presentation deck, generate presentation.
    • Chinese prompts about making slides or presentations.
    • Explicit commands: /felo-slides, "use felo slides".

    Do NOT use this skill for:

    • Real-time information lookup (use felo-search instead).
    • Questions about local codebase files.
    • Pure text tasks that do not require slide generation.
  11. Mandatory Constraints for Felo SuperAgent

    main

    To ensure correct behavior, follow these mandatory rules when using the skill:

    1. Image Generation Rule: NEVER treat visual descriptions as prompt-writing tasks. If a user provides a description (e.g., "generate a photo of..."), you MUST call the API with --skill-id ecommerce-product-image or logo-and-branding. Do not simply rewrite the prompt as text.
    2. JSON Mode: ALWAYS use the --json flag. This ensures the script returns a structured response that can be parsed for thread_short_id and live_doc_short_id.
    3. Output Requirements: After execution, print data.answer verbatim and render all entries in data.image_urls as Markdown inline images ![title](url).
    4. LiveDoc Persistence: Use one LiveDoc per session. Reuse the live_doc_short_id returned in previous responses. Only omit --live-doc-id on the very first call of a session.
    5. Conversation Continuity: After the first question, every subsequent message is a follow-up. You MUST pass the --thread-id from the previous response to maintain the conversation.
    6. State Persistence: Always extract thread_short_id and live_doc_id from the stderr [state] line to use in subsequent calls.