Agent skill

Gtk Signal Result

by hongquan in hongquan/CoBang

A skill your agent uses when implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page, and the child page's work result flows back up via signals to the layer that…

GPL-3.0Auto-check passed

Install Gtk Signal Result

skills CLI
$ npx skills add hongquan/CoBang --skill gtk-signal-result -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hongquan/CoBang gtk-signal-result --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hongquan/CoBang.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/gtk-signal-result .claude/skills/gtk-signal-result && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gtk-signal-result
GitHub stars
354
Token cost
~1.5k tokens
SKILL.md length
346 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
GPL-3.0

At a glance

A skill your agent uses when implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page, and the child page's work result flows back up via signals to the layer that…

  • Works in 4 steps: Child Page: Declare Signal (class… → Child Page: Emit Signal with Result → Parent Page: Wire Signal to Handler in… → …
  • Implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page
  • SKILL.md covers Delegation Chain, When to Use, Pattern and Signal Examples in This Project, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Gtk Signal Result is an agent skill from hongquan/CoBang. Use when implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page, and the child page's work result flows back up via signals to the layer that coordinates with other system components.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Python. The repository describes itself as: A QR code scanner desktop app for Linux. The licence is GPL-3.0.

When your agent uses it

  • Implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page
  • The child pages work result flows back up via signals to the layer that coordinates with other system components

Example prompts

  • “/gtk-signal-result”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Child Page: Declare Signal (class attribute style)
  2. Child Page: Emit Signal with Result
  3. Parent Page: Wire Signal to Handler in init
  4. Parent Page: Handle Result

What it can do on your machine

Read from SKILL.md and the folder at commit 9278c46. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gtk Signal Result loads about 1.5k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 346 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hongquan/CoBang at commit 9278c46, republished under its GPL-3.0 licence (© hongquan). 346 words, ~1,456 tokens.

Download SKILL.mdSave it as .claude/skills/gtk-signal-result/SKILL.md (or your agent's skills folder).
name
gtk-signal-result
description
Use when implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page, and the child page's work result flows back up via signals to the layer that coordinates with other system components.

gtk-signal-result — Work Delegation with Result Callback via Signals

GTK4/Adwaita apps use GObject signals for child→parent result propagation instead of callback injection. The child page performs a subtask and emits the result; the parent (or Window) coordinates the result with other system components.

Delegation Chain

Window
  └── Parent Page (orchestrator, coordinates)
        └── Child Page A (performs subtask A, emits result via signal)
        └── Child Page B (performs subtask B, emits result via signal)

Key insight: The child knows nothing about what happens with its result. The parent coordinates multiple children and decides what to do with their combined outputs.

When to Use

  • Child page performs a focused subtask (collect input, generate data, scan)
  • Result needs to flow UP to coordinate with other components
  • Parent holds references to other children/pages that need the result
  • Anti-pattern to avoid: passing handler callbacks from parent to child

Pattern

1. Child Page: Declare Signal (class attribute style)

Prefer GObject.Signal as a class attribute (same style as WiFiSaver):

python
from gi.repository import GObject, Gtk

@Gtk.Template.from_resource('/path/to/template.ui')
class GeneratorStartingPage(Gtk.Box):
    __gtype_name__ = 'GeneratorStartingPage'

    generate_qr = GObject.Signal(
        'generate-qr',
        flags=GObject.SignalFlags.RUN_LAST,
        arg_types=(str,),
    )
    switch_to_wifi = GObject.Signal('switch-to-wifi', flags=GObject.SignalFlags.RUN_LAST)

If the natural attribute name would clash with a method, pick a distinct attribute (e.g. signal_request_camera_access) while keeping the signal string name stable.

2. Child Page: Emit Signal with Result
python
@Gtk.Template.Callback()
def on_btn_generate_clicked(self, _btn: Gtk.Button):
    text = self.text_entry.get_text().strip()
    if text:
        self.generate_qr.emit(text)  # Emit result upward
3. Parent Page: Wire Signal to Handler in __init__
python
class GeneratorPage(Adw.Bin):
    __gtype_name__ = 'GeneratorPage'

    starting_page: GeneratorStartingPage = Gtk.Template.Child()
    wifi_page: GeneratorWiFiPage = Gtk.Template.Child()
    qr_code_page: GeneratorQRCodePage = Gtk.Template.Child()

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        # Wire each child's signal to appropriate handler
        self.starting_page.generate_qr.connect(self.on_qr_code_generation_requested)
        self.starting_page.switch_to_wifi.connect(self.on_switch_to_wifi)
        self.wifi_page.generate_qr_for_wifi.connect(self.on_generate_qr_for_wifi_network)
        self.wifi_page.back_to_start.connect(self.on_back_to_start)
4. Parent Page: Handle Result
python
def on_qr_code_generation_requested(self, _src: GeneratorStartingPage, text: str):
    """Parent coordinates: take text from starting page, generate QR, show in qr_code_page."""
    qr = qrcode.QRCode(border=2)
    qr.add_data(text)
    qr.make(fit=True)
    img = qr.make_image(fill_color='black', back_color='white')
    # ... convert to texture, display in qr_code_page
    self.qr_code_page.set_original_text(text)
    self.qr_code_page.qr_picture.set_paintable(texture)
    self.active_sub_page = GeneratorSubPage.QR_CODE_RESULT

Signal Examples in This Project

Child PageSignalPayloadWhat Parent Does with Result
GeneratorStartingPagegenerate-qrstrGenerate QR image, display in qr_code_page
GeneratorStartingPageswitch-to-wifi—Switch to wifi child page
GeneratorQRCodePageback-to-start—Clear QR page, return to starting page
GeneratorWiFiPagerequest-saved-wifi-networks—Load networks, populate wifi list
GeneratorWiFiPagegenerate-qr-for-wifiWifiNetworkInfoGenerate QR for selected network
GeneratorWiFiPageback-to-start—Return to starting page
ScannerPagepoll-wifi-connection-statusWifiInfoMessageCheck if already connected
ScannerPagerequest-connect-wifiWifiInfoMessageConnect to scanned WiFi
Show full SKILL.md (131 more words)Show less

Adding a New Delegation Signal

  1. Child page: Declare signal

    python
    work_done = GObject.Signal(
        'work-done',
        flags=GObject.SignalFlags.RUN_LAST,
        arg_types=(MyResult,),
    )
  2. Child page: Emit when work completes

    python
    @Gtk.Template.Callback()
    def on_work_trigger(self, _btn: Gtk.Button):
        result = self.perform_work()
        self.work_done.emit(result)
  3. Parent page: Wire signal in __init__

    python
    self.child_page.work_done.connect(self.on_child_work_done)
  4. Parent page: Handle result (may coordinate with OTHER children)

    python
    def on_child_work_done(self, _src: ChildPage, result: MyResult):
        # Parent coordinates: maybe update another child, trigger system action, etc.
        self.other_child.update(result)
        self.system_component.process(result)

Key Principles

  • Child is dumb about result fate — only emits signal, knows nothing of parent
  • Parent is the coordinator — wires signals, holds refs to all children
  • Signal carries typed result — use arg_types tuple for payload type
  • Handler gets source — first param is emitting child (use _src if not needed)
  • Result may need further processing — parent does coordination, not just UI updates

© hongquan, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/gtk-signal-result of hongquan/CoBang.

Open the folder on GitHubat commit 9278c46

Compare with similar skills

Gtk Signal Result next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gtk Signal Result compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gtk Signal Result this skillhongquan/CoBang354—~1.5kAutomated safety check: PassGPL-3.0
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
PDF Processinganthropics/skills180k47 repos~2kAutomated safety check: PassProprietary
NotebookLM Research AssistantPleasePrompto/notebooklm-skill7.8k14 repos~2.4kAutomated safety check: NotesMIT
Manim Video Productionbrowser-use/video-use29k6 repos~3kAutomated safety check: PassMIT
PPT Masterhugohe3/ppt-master59k1 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • PDF Processing

    anthropics/skills

    Official

    Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.

    180k GitHub starsUsed in 47 repos~2k tokens
    Documents & OfficeAuto-check passed
  • NotebookLM Research Assistant

    PleasePrompto/notebooklm-skill

    Lets Claude Code ask questions of your Google NotebookLM notebooks through browser automation and return answers grounded in your uploaded sources.

    7.8k GitHub starsUsed in 14 repos~2.4k tokens
    Knowledge ManagementAuto-check: notes
  • Manim Video Production

    browser-use/video-use

    Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.

    29k GitHub starsUsed in 6 repos~3k tokens
    Media & CreativeAuto-check passed
  • PPT Master

    hugohe3/ppt-master

    Generates editable PowerPoint decks, rebuilds slides from images, fills .pptx templates and polishes existing presentations through routed workflows.

    59k GitHub starsUsed in 1 repo~2.5k tokens
    Documents & OfficeAuto-check passed
  • Scikit Learn

    zLanqing/codex-claude-academic-skills

    Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 16 repos~3.9k tokens
    Data & AnalyticsAuto-check passed

More from hongquan/CoBang

  • Cobang Release

    hongquan/CoBang

    A skill your agent uses when preparing a new CoBang release: reading current version from meson.build, choosing the next version, inferring changes from Git history, and adding a release entry in…

    354 GitHub stars~1.3k tokensUpdated 6 days ago
    Auto-check passed

Works with

Questions about Gtk Signal Result

What does Gtk Signal Result do?

A skill your agent uses when implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page, and the child page's work result flows back up via signals to the layer that…. Gtk Signal Result is an agent skill from hongquan/CoBang. Use when implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page, and the child page's work result flows back up via signals to the layer that coordinates with other system components.

When should I use Gtk Signal Result?

Gtk Signal Result fits situations like: implementing work delegation in GTK4/Adwaita apps where Window → Parent Page → Child Page; the child pages work result flows back up via signals to the layer that coordinates with other system components.

How do I install Gtk Signal Result in Claude Code?

Run `npx skills add hongquan/CoBang --skill gtk-signal-result -a claude-code`. Or copy the skill folder (.agents/skills/gtk-signal-result in hongquan/CoBang) into .claude/skills/gtk-signal-result in your project. Claude Code loads it when a task matches its description.

How do I install Gtk Signal Result in Codex?

Run `npx skills add hongquan/CoBang --skill gtk-signal-result -a codex`. Or copy the skill folder (.agents/skills/gtk-signal-result in hongquan/CoBang) into .agents/skills/gtk-signal-result in your project. Codex loads it when a task matches its description.

Can I use Gtk Signal Result in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hongquan/CoBang --skill gtk-signal-result -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gtk-signal-result, .gemini/skills/gtk-signal-result, .github/skills/gtk-signal-result and .opencode/skills/gtk-signal-result in your project.

What does Gtk Signal Result need to run?

SKILL.md names no scripts, command-line tools or credentials: Gtk Signal Result is instructions for the agent only. Our summary lists: Python 3.

Does Gtk Signal Result access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Gtk Signal Result safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Gtk Signal Result use?

Gtk Signal Result is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gtk Signal Result use?

About 1.5k tokens (SKILL.md is roughly 5.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gtk Signal Result?

Skills that share tags, products or a category with Gtk Signal Result: MCP Server Builder (anthropics/skills, 180k stars), PDF Processing (anthropics/skills, 180k stars), NotebookLM Research Assistant (PleasePrompto/notebooklm-skill, 7.8k stars) and Manim Video Production (browser-use/video-use, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gtk Signal Result?

hongquan (a GitHub user) maintains it in hongquan/CoBang, which has 354 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 4, 2026.

Source: hongquan/CoBang on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.