freshcrate
Skin:/
Home > Frameworks > signal

signal

SIGNAL โ€” Agent Skills: terse structured output (tiers, templates, checkpoints), git workflow skills (commit, push, PR, review, ckpt), Karpathy-inspired coding norms. Claude Code, Cursor, Gemini CLI, C

Why this rank:Release freshnessStrong adoptionHealthy release cadence

Description

SIGNAL โ€” Agent Skills: terse structured output (tiers, templates, checkpoints), git workflow skills (commit, push, PR, review, ckpt), Karpathy-inspired coding norms. Claude Code, Cursor, Gemini CLI, Codex & other Agent Skills hosts.

README

SIGNAL logo

SIGNAL ยท v0.3.2

Less prompt noise. More room for code.
Agent skills that default to dense output: minified .min.md payloads, symbol shorthand, optional checkpoints.

GitHub starsLicenseCIVersion

At a glance

Topic Summary
What you get Shorter instructions + replies in the agent; checkpoints (S3) instead of pasting full thread history when you want them.
What you run npx skills add mattbaconz/signal โ†’ /signal (light) ยท /signal2 (default) ยท /signal3 (auto-CKPT).
What this tree is skills/ = source specs you edit. gemini-signal/ ยท claude-signal/ ยท kiro-signal/ = mirrored host packages (donโ€™t hand-edit; see CONTRIBUTING).

Protocol entrypoints: skills/signal.min.md ยท symbols skills/signal-core.min.md ยท repo github.com/mattbaconz/signal ยท releases CHANGELOG.md

Demo ยท Install ยท Commands ยท Benchmark ยท Repo map ยท Architecture ยท Changelog

Before / after ยท Tiers ยท Karpathy norms ยท Git & CI ยท Stars


Demo

SIGNAL benchmark โ€” skill shrink, live reply savings, live Gemini snapshot

What to trust first: ~87% smaller skill payloads on disk (seven .md โ†’ .min.md pairs, reproducible) and ~67% fewer characters in the live assistant reply (Gemini CLI JSON, EqualContext โ€” matched prompt_tokens). tokens.total on that same single-turn run only moves ~8% because prompt tokens (~8k) dominate the sum โ€” that is expected, not a failed headline. Details: Benchmark ยท docs/token-metrics.md.

Whatโ€™s illustration: scenarios Aโ€“C use ceil(characters / 4) (not billed API tokens) โ€” good for shape, not primary โ€œproofโ€ vs hosts that report real tokenizer counts.

Reproduce: scripts/benchmark.ps1 (static) ยท benchmark/run.ps1 / benchmark/README.md (live + long-session).


Before / after

๐Ÿ‘ค Verbose agent ๐ŸŒ SIGNAL
โ€œI think the problem might be in auth.js around line 47โ€ฆโ€ auth.js:47 ยท null ref ยท guard โ€” ~7ร— fewer tokens in the scripted benchmark.
Paste 10 turns of chat + tool noise into context. CKPT atom: stack, progress, next step โ€” transcript stays out of the window.
One giant SKILL.md tree + references forever. Canonical .md for humans, .min.md for the agent โ€” ~87% smaller on the seven main pairs (Benchmark).

Install

npx skills add mattbaconz/signal

Global:

npx skills add mattbaconz/signal -y -g

After install: open skills/signal.min.md, pick S1 / S2 / S3, add workflow skills (signal-commit, โ€ฆ) only when you need them.

Claude Code (app + CLI)

Plugins only exist in Claude Code (the coding agent). The consumer claude.ai desktop chat does not expose /plugin โ€” if slash commands like /plugin are ignored or โ€œunknown,โ€ youโ€™re either in the wrong app or on an old Claude Code build. Update Claude Code and restart; official troubleshooting: Discover plugins โ€” โ€œ/plugin command not recognizedโ€.

A) Plugin marketplace (when /plugin works) โ€” in the Claude Code session, same input as other slash commands:

/plugin marketplace add mattbaconz/signal
/plugin install signal@signal-suite

(owner/repo works for GitHub; you can use a full Git URL instead.) Then run /reload-plugins. Marketplace id is signal-suite โ€” confirm with /plugin marketplace list. Details: claude-signal/README.md.

With the plugin, skills are namespaced: /signal:signal, /signal:signal-commit, /signal:signal-push, โ€ฆ (plugin name signal, then :, then folder name under claude-signal/skills/).

B) No /plugin โ€” standalone skills (works everywhere Claude loads ~/.claude/skills/): clone this repo, run scripts/sync-integration-packages.ps1 once if needed, then:

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\install-signal-all.ps1

That copies claude-signal/skills/ into %USERPROFILE%\.claude\skills\. Then use short commands like /signal, /signal-commit (see Commands). Do not also install the plugin for the same skills.

C) One-off: run Claude Code from a terminal with the plugin dir โ€” claude-signal/README.md (claude --plugin-dir ./claude-signal from the repo).

Optional: merge templates/claude-CLAUDE.min.md into your project CLAUDE.md for thin always-on defaults.


Commands

Command What it does
/signal S1 โ€” entry tier
/signal2 S2 โ€” strong default
/signal3 S3 โ€” auto-CKPT
/signal-commit Stage + conventional commit
/signal-push Commit + push
/signal-pr Push + PR (gh)
/signal-review One-line review, severity required
/signal-state .signal_state.md
/signal-diff Summarized changes
/signal-search Summarized search

Tier detail: Tiers.


Repo map

There is no legacy top-level signal/ directory in this repoโ€”ignore older docs that referred to it. This table is what you actually open after cloning.

Location What it is You need it ifโ€ฆ
[skills/](skills/) Canonical skill specs: *.md (readable) + *.min.md (dense) You install via npx skills add or copy skills into an agent
[gemini-signal/](gemini-signal/), [claude-signal/](claude-signal/) Mirrored host extension layouts (SKILL.md per tool) You ship the Gemini CLI or Claude Code plugin from this tree
[kiro-signal/](kiro-signal/) Kiro mirror: skills/ + bundled references/ with rewritten paths You import into Kiro IDE โ€” see docs/kiro.md
[references/](references/) Shared refs (symbols, Karpathy norms, benchmarks, checkpoint notes) You cite norms or symbols
[templates/](templates/) Snippets to merge into a projectโ€™s GEMINI / CLAUDE files You integrate SIGNAL into an app repo
[scripts/](scripts/) shrink.ps1, sync-integration-packages.ps1, verify.ps1, benchmark.ps1 You contribute or verify locally (CONTRIBUTING.md)

Why SIGNAL

Same idea as At a glance, with moving parts: symbols instead of paragraphs, .signal_state.md for durable state, signal-diff / signal-search instead of raw dumps โ€” all optional tools you pull in when the session needs them.

flowchart LR
  subgraph inputs [Verbose]
    V1[Long replies]
    V2[Full thread history]
    V3[Hedging and filler]
  end
  subgraph signal [SIGNAL]
    S[Symbol grammar]
    C[CKPT summaries]
    M[Minified skills]
  end
  subgraph outputs [Dense]
    D1[Terse pointers]
    D2[Checkpoint atom]
    D3[~87% smaller payloads]
  end
  V1 --> S
  V2 --> C
  V3 --> S
  S --> D1
  C --> D2
  M --> D3
Loading

Cumulative transcript savings (baseline vs checkpoint-style history) are covered in benchmark/README.md (benchmark/long-session/ after a full clone). Prompt vs output vs tokens.total โ€” hosts report different scopes; see docs/token-metrics.md.


Tiers

Use /signal, /signal2, or /signal3.

Tier You get Rough habit savings
S1 Symbols, no preamble, no hedge, terse ~35%
S2 S1 + BOOT, aliases, delta-friendly turns another ~20% on top
S3 S2 + auto-checkpoint every 5 turns long sessions stay bounded

Symbol grammar (snippet)

Symbol Meaning Example
โ†’ causes / produces nullrefโ†’crash
โˆ… none / remove / empty cache=โˆ…
ฮ” change / diff ฮ”+cacheโ†’~5ms
! required / must !fix before deploy
[n] confidence 0.0โ€“1.0 fix logic [0.95]

Full reference: [skills/signal-core.min.md](skills/signal-core.min.md).


Benchmark

The chart matches Demo. Honest order of strength: (1) skill file shrink on disk โ€” verifiable byte counts; (2) live reply length โ€” real JSON from one Gemini run; (3) single-turn tokens.total โ€” moves slowly when prompt is huge; (4) scripted Aโ€“C โ€” ceil(chars/4) illustrations, not API tokenizer truth.

Heuristic scenarios (illustration only)

Uses ceil(characters / 4) โ€” not billed API tokens; useful for shape, not a substitute for tokenizer-accurate counts on every host.

Scenario Verbose SIGNAL Saved
A: 10-turn history vs CKPT ~167 ~45 ~73% ยท ~3.7ร—
B: Bug paragraph vs one line ~51 ~7 ~86% ยท ~7.3ร—
C: Hedging vs [conf] ~8 ~2 ~75% ยท ~4ร—

Skill pairs (canonical .md โ†’ .min.md) โ€” primary on-disk proof

Pair Bytes (โ‰ˆ) Est. tok (โ‰ˆ) Shrink
signal 2.8K โ†’ 0.7K ~712 โ†’ ~182 ~75%
signal-ckpt 5.6K โ†’ 0.7K ~1389 โ†’ ~163 ~88%
signal-commit 8.3K โ†’ 0.7K ~2071 โ†’ ~178 ~91%
signal-pr 4.7K โ†’ 0.5K ~1177 โ†’ ~130 ~89%
signal-push 3.7K โ†’ 0.5K ~936 โ†’ ~131 ~86%
signal-review 5.5K โ†’ 0.6K ~1378 โ†’ ~145 ~90%
signal-state 2.0K โ†’ 0.7K ~511 โ†’ ~163 ~68%
7 pairs total ~32.7K โ†’ ~4.4K ~8173 โ†’ ~1090 ~87%

Min-only helpers (signal-core, signal-diff, signal-search) โ‰ˆ 1.6K bytes (~389 est. tokens).

Live Gemini (single-turn chess harness)

Caveat: one turn per arm, EqualContext (matched project GEMINI.md). No checkpoints, no /signal3 auto-CKPT, no multi-turn BOOT/delta โ€” this stresses output style on one task type, not long-session history collapse.

Source: benchmark/benchmark chess/run_chess_compare.ps1 with -Pair EqualContext. Model gemini-3.1-pro-preview.

Why tokens.total is not the hero row: both sides load ~8k prompt tokens. tokens.total โ‰ˆ prompt + generation, so a big reply cut still yields only a ~8% drop in tokens.total โ€” while reply characters fall ~67% (that is the visible win on this run).

Metric Baseline SIGNAL-style Notes
Reply (chars) ~1,823 ~604 ~67% fewer โ€” primary live win on this run
prompt_tokens ~8,060 ~8,061 Matched โ€” methodology check (EqualContext)
tokens.total (max) ~9,039 ~8,333 ~8% lower โ€” dominated by prompt; see above

Reading the numbers & multi-turn proof

[docs/token-metrics.md](docs/token-metrics.md) โ€” prompt vs output vs tokens.total. Multi-turn / cumulative protocol benchmark: [benchmark/long-session/](benchmark/long-session/) (see [benchmark/README.md](benchmark/README.md)) โ€” that is where checkpoint-style savings compound vs a growing baseline transcript.

Reproduce

Static (heuristic + skill table printout; no API):

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\benchmark.ps1

Live chess (refreshes JSON under benchmark/benchmark chess/):

powershell -NoProfile -ExecutionPolicy Bypass -File .\benchmark\run.ps1 -Mode Chess -Pair EqualContext

Long-session (multi-turn; many API calls):

powershell -NoProfile -ExecutionPolicy Bypass -File .\benchmark\run.ps1 -Mode LongSession -Quick

Architecture

flowchart TB
  subgraph protocol [Protocol layer]
    P["signal.min.md"]
    CORE["signal-core.min.md"]
  end
  subgraph workflow [Workflow skills]
    CKPT["signal-ckpt"]
    GIT["commit / push / pr"]
    REV["signal-review"]
  end
  subgraph context [Context tools]
    DIFF["signal-diff"]
    SRCH["signal-search"]
    ST["signal-state"]
  end
  subgraph persist [Persistence]
    STATE[".signal_state.md"]
  end
  P --> CORE
  P --> CKPT
  P --> GIT
  P --> REV
  P --> DIFF
  P --> SRCH
  ST --> STATE
Loading

Tier ladder:

flowchart LR
  S1["/signal โ€” S1"] --> S2["/signal2 โ€” S2"]
  S2 --> S3["/signal3 โ€” S3"]
  S1 -.- D1["~35% vs loose chat"]
  S2 -.- D2["BOOT ยท aliases ยท ฮ”"]
  S3 -.- D3["Auto-CKPT every 5 turns"]
Loading

Coding norms (Karpathy-style)

Tiers shape assistant chat (symbols, templates, checkpoints). Karpathy-style norms shape implementation work (how you edit code and ship commits): orthogonal axesโ€”activating /signal3 does not replace surgical diffs or explicit assumptions.

Norms in brief (canonical list: [references/karpathy-coding-norms.md](references/karpathy-coding-norms.md)):

  1. Assumptions โ€” explicit over implicit; say when unsure.
  2. Simplicity โ€” avoid over-engineering.
  3. Surgical diffs โ€” minimal changes tied to the goal.
  4. Verifiable goals โ€” reproduce, test, or verify where it matters.
  5. No filler โ€” skip โ€œhere is the codeโ€; show the code.
Resource Link
Full norms [references/karpathy-coding-norms.md](references/karpathy-coding-norms.md)
In skills [skills/signal.md](skills/signal.md), [skills/signal-core.min.md](skills/signal-core.min.md) (KarpathyNorms), [skills/signal-commit.min.md](skills/signal-commit.min.md) (followKarpathy)
Host templates [templates/gemini-GEMINI.md](templates/gemini-GEMINI.md), [templates/claude-CLAUDE.md](templates/claude-CLAUDE.md)

Git workflows & CI

Skill Role
[skills/signal-commit.min.md](skills/signal-commit.min.md) Stage all, conventional commit (--draft / --split)
[skills/signal-push.min.md](skills/signal-push.min.md) Commit + push
[skills/signal-pr.min.md](skills/signal-pr.min.md) Commit + push + gh pr create

CI: [.github/workflows/verify.yml](.github/workflows/verify.yml) runs [scripts/verify.ps1](scripts/verify.ps1) on Windows for main and PRs.


Changelog

All releases: CHANGELOG.md.


Repository layout (clone root)

./
โ”œโ”€โ”€ skills/              # canonical *.md + *.min.md (edit here; see CONTRIBUTING.md)
โ”œโ”€โ”€ assets/              # logos, benchmark infographic
โ”œโ”€โ”€ references/          # symbols, Karpathy norms, benchmarks, checkpoint notes
โ”œโ”€โ”€ templates/           # Gemini / Claude merge snippets
โ”œโ”€โ”€ scripts/             # benchmark.ps1, shrink.ps1, verify.ps1, sync-integration-packages.ps1
โ”œโ”€โ”€ gemini-signal/       # Gemini CLI extension (mirrored from skills/)
โ”œโ”€โ”€ claude-signal/       # Claude Code plugin (mirrored from skills/)
โ”œโ”€โ”€ kiro-signal/         # Kiro IDE import (mirrored + bundled references/)
โ”œโ”€โ”€ hooks/
โ””โ”€โ”€ GEMINI.md            # root context (synced from gemini-signal/)

Star History

Star History Chart

v0.3.2 โ€” Shrinking Session. Brutalist token compression.

Release History

VersionChangesUrgencyDate
main@2026-06-17Latest activity on main branchHigh6/17/2026
v0.3.1Latest release: v0.3.1High4/21/2026
v0.2.0Tag v0.2.0High4/17/2026
v0.1.1Tag v0.1.1High4/16/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

agentic-configProject-agnostic, composable AI workflow automation via pi packages and Claude Code plugins.v0.3.2
MeowKitProduction ready. AI Agent Workflow System for Claude Codev2.14.0
cc-sddTurn approved specs into long-running autonomous implementation. A minimal, adaptable SDD harness with Agent Skills for Claude Code, Codex, Cursor, Copilot, Windsurf, OpenCode, Gemini CLI, and Antigrav3.0.2
ctxraySee how you really use AI โ€” X-ray your AI coding sessions locallyv2.2.1
codegA unified workspace for local AI coding agents (Claude Code, Codex, Gemini CLI, etc.) โ€” desktop app, standalone server, or Docker. Conversation aggregation, git worktree workflows, MCP/Skills managemev0.21.8

More in Frameworks

sglangSGLang is a fast serving framework for large language models and vision language models.
onnxruntimeONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
elizaAutonomous agents for everyone
bamlThe AI framework that adds the engineering to prompt engineering (Python/TS/Ruby/Java/C#/Rust/Go compatible)