{
  "markdown": "<p align=\"center\">\n  <img src=\"assets/signal-logo.png\" alt=\"SIGNAL logo\" width=\"130\" />\n</p>\n\n<h1 align=\"center\">SIGNAL · v0.4.0</h1>\n\n<p align=\"center\"><strong>Compression you can prove. Dense mode agents can live in.</strong><br />\nProfessional token compression for agents: always-on SIGNAL-3, input compression, minified skill payloads, structured terse replies, and checkpointed long sessions.</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/mattbaconz/signal/stargazers\"><img src=\"https://img.shields.io/github/stars/mattbaconz/signal?style=flat-square&logo=github&label=stars\" alt=\"GitHub stars\" /></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/github/license/mattbaconz/signal?style=flat-square\" alt=\"License\" /></a>\n  <a href=\"https://github.com/mattbaconz/signal/actions\"><img src=\"https://img.shields.io/github/actions/workflow/status/mattbaconz/signal/verify.yml?branch=main&style=flat-square&label=CI\" alt=\"CI\" /></a>\n  <img src=\"https://img.shields.io/badge/release-v0.4.0-5865F2?style=flat-square\" alt=\"Version\" />\n</p>\n\n### At a glance\n\n| Topic | Summary |\n| --- | --- |\n| **What you get** | Shorter **instructions + replies** in the agent; **checkpoints** (S3) instead of pasting full thread history when you want them. |\n| **What you run** | `npx skills add mattbaconz/signal` → **`signal3`** or **`/signal3`**. No clone required for normal install. |\n| **What this tree is** | **`skills/`** = source specs you edit. **`gemini-signal/`** · **`claude-signal/`** · **`kiro-signal/`** = mirrored host packages (don’t hand-edit; see [CONTRIBUTING](CONTRIBUTING.md)). |\n\nProtocol entrypoints: [`skills/signal.min.md`](skills/signal.min.md) · symbols [`skills/signal-core.min.md`](skills/signal-core.min.md) · repo [github.com/mattbaconz/signal](https://github.com/mattbaconz/signal) · releases [CHANGELOG.md](CHANGELOG.md)\n\n## 10-second install\n\n```bash\nnpx skills add mattbaconz/signal\n```\n\nThen use Signal in any prompt:\n\n```text\nsignal3\n```\n\nSlash commands are also supported when your host exposes them:\n\n```text\n/signal3\n```\n\nThat is the normal path. **No clone required.**\n\n```mermaid\nflowchart TD\n  A[\"Want Signal?\"] --> B[\"Fast install: no clone\"]\n  B --> C[\"npx skills add mattbaconz/signal\"]\n  C --> D[\"Use signal3 or /signal3 in chat\"]\n  D --> E[\"Dense replies and protected technical details\"]\n  A --> F[\"Always-on default\"]\n  F --> G[\"Clone github.com/mattbaconz/signal\"]\n  G --> H[\"Run scripts/install-signal-all.ps1 -AlwaysOn\"]\n  H --> I[\"Normal prompts default to SIGNAL-3\"]\n  A --> J[\"Proof check\"]\n  J --> K[\"Run scripts/auto-benchmark.ps1\"]\n  K --> L[\"Claims come from checked-in JSON\"]\n```\n\n### Optional always-on setup\n\nClone only if you want Signal to become a default host rule so users can stop typing `signal3` entirely:\n\n```bash\ngit clone https://github.com/mattbaconz/signal\ncd signal\n```\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\install-signal-all.ps1 -AlwaysOn\n```\n\n### Proof in one command\n\nFrom a clone:\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\auto-benchmark.ps1\n```\n\nStatic v0.4 fixtures show **11/11 fidelity-pass rows**, **73.5% median estimated savings**, and **39.8%–89.9% p10–p90 savings** across input-compression and skill-overhead checks. Live output claims are reported separately and must pass fidelity gates before they count.\n\n### Who it is for\n\nUse Signal when you run long coding-agent sessions, keep large `AGENTS.md` / `CLAUDE.md` / `GEMINI.md` files, or need terse replies without turning the assistant into a joke persona. The practical promise is simple: **less repeated context, fewer filler tokens, same protected technical details.**\n\n<p align=\"center\">\n  <a href=\"#demo\">Demo</a> ·\n  <a href=\"#install\">Install</a> ·\n  <a href=\"#commands\">Commands</a> ·\n  <a href=\"#signal-vs-caveman-style\">Signal vs Caveman-style</a> ·\n  <a href=\"#benchmark\">Benchmark</a> ·\n  <a href=\"#repo-map\">Repo map</a> ·\n  <a href=\"#architecture\">Architecture</a> ·\n  <a href=\"#changelog\">Changelog</a>\n</p>\n\n<p align=\"center\"><a href=\"#before--after\">Before / after</a> · <a href=\"#tiers\">Tiers</a> · <a href=\"#coding-norms-karpathy-style\">Karpathy norms</a> · <a href=\"#git-workflows--ci\">Git &amp; CI</a> · <a href=\"#star-history\">Stars</a></p>\n\n---\n\n## Demo\n\n![SIGNAL v0.4.0 benchmark method](assets/signal-v04-benchmark-method.png)\n\n**What to trust first:** the v0.4 proof suite separates static input/skill shrinkage from live output-token claims. Static proof currently has **11/11 fidelity-pass rows**, **73.5% median estimated savings**, and **39.8%–89.9% p10–p90 savings** across input-compression and skill-overhead fixtures. Live wins count only when the fidelity gate passes. Details: [Benchmark](#benchmark) · [docs/benchmark-methodology.md](docs/benchmark-methodology.md) · [docs/token-metrics.md](docs/token-metrics.md).\n\n**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.\n\n**Reproduce:** [benchmark/run.ps1](benchmark/run.ps1) (proof suite, live dry-runs, and long-session runners) · methodology [docs/benchmark-methodology.md](docs/benchmark-methodology.md).\n\n---\n\n## Before / after\n\n\n| 👤 **Verbose agent**                                        | 🌐 **SIGNAL**                                                                                                                     |\n| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |\n| “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.                                                 |\n| Paste 10 turns of chat + tool noise into context.           | **CKPT atom**: stack, progress, next step — transcript stays out of the window.                                                   |\n| One giant `SKILL.md` tree + references forever.             | **Canonical `.md`** for humans, **`.min.md`** for the agent — **~85%** smaller across the eight main skill pairs ([Benchmark](#benchmark)). |\n\n\n---\n\n## Install\n\n### Fast install\n\n```bash\nnpx skills add mattbaconz/signal\n```\n\nUse `signal3` or `/signal3` in your agent chat to activate the recommended dense mode for long agentic work. Use `/signal` for the smallest activation surface and `/signal2` for a middle tier.\n\nGlobal install:\n\n```bash\nnpx skills add mattbaconz/signal -y -g\n```\n\n### Always-on setup\n\nThe fast install gives you the skill without cloning. Clone the repo only when you want the helper scripts that write host memory files so normal prompts default to SIGNAL-3.\n\n```bash\ngit clone https://github.com/mattbaconz/signal\ncd signal\n```\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\install-signal-all.ps1 -AlwaysOn -DryRun\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\install-signal-all.ps1 -AlwaysOn\n```\n\nThe dry run prints every file that would change. The real run updates supported host instruction files such as `AGENTS.md`, `CLAUDE.md`, and `GEMINI.md`. Manual templates are documented in [docs/always-on.md](docs/always-on.md).\n\n### Compatibility matrix\n\n| Host | Best path | Auto-activation |\n| --- | --- | --- |\n| Claude Code | Plugin marketplace or standalone `~/.claude/skills/` copy | Plugin/hooks can remind; slash command still explicit |\n| OpenAI Codex | `npx skills add mattbaconz/signal` or copy into `.codex/skills` | `AGENTS.md` can make S3 always-on |\n| Gemini CLI | Gemini extension package or repo-root `GEMINI.md` | `GEMINI.md` can make S3 always-on |\n| Cursor | Copy skills/rules into Cursor skill/rule paths | `.cursor/rules/signal.mdc` can make S3 always-on |\n| Windsurf | Generated `.windsurf/rules/signal.md` | Rules can apply automatically |\n| Cline | Generated `.clinerules/signal.md` | Rules can apply automatically |\n| GitHub Copilot | Generated `.github/copilot-instructions.md` | Instruction file applies in repo context |\n| Kiro | Import from `kiro-signal/skills/<name>` subtree | Per-skill import; activation depends on Kiro workspace |\n\n### Claude Code (app + CLI)\n\n**Plugins only exist in [Claude Code](https://code.claude.com/docs/en/overview)** (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](https://code.claude.com/docs/en/setup) and restart; official troubleshooting: [Discover plugins — “/plugin command not recognized”](https://code.claude.com/docs/en/discover-plugins).\n\n**A) Plugin marketplace (when `/plugin` works)** — in the **Claude Code** session, same input as other slash commands:\n\n```text\n/plugin marketplace add mattbaconz/signal\n/plugin install signal@signal-suite\n```\n\n(`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`](claude-signal/README.md).\n\nWith the plugin, skills are namespaced: **`/signal:signal`**, **`/signal:signal-commit`**, **`/signal:signal-push`**, … (plugin name **`signal`**, then **`:`**, then folder name under [`claude-signal/skills/`](claude-signal/skills/)).\n\n**B) No `/plugin` — standalone skills (works everywhere Claude loads `~/.claude/skills/`):** clone this repo, run **`scripts/sync-integration-packages.ps1`** once if needed, then:\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\install-signal-all.ps1\n```\n\nThat copies [`claude-signal/skills/`](claude-signal/skills/) into **`%USERPROFILE%\\.claude\\skills\\`**. Then use short commands like **`/signal`**, **`/signal-commit`** (see [Commands](#commands)). **Do not** also install the plugin for the same skills.\n\n**C) One-off:** run Claude Code from a terminal with the plugin dir — [`claude-signal/README.md`](claude-signal/README.md) (`claude --plugin-dir ./claude-signal` from the repo).\n\n**Optional:** merge [`templates/claude-CLAUDE.min.md`](templates/claude-CLAUDE.min.md) into your project **`CLAUDE.md`** for thin always-on defaults.\n\n### Always-on SIGNAL-3\n\nUsers should not need to type `/signal3` on every prompt. Add the host instruction file once, then prompt normally. The agent treats `signal3`, `SIGNAL-3`, and `/signal3` as the same reset command.\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\install-signal-all.ps1 -AlwaysOn -DryRun\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\install-signal-all.ps1 -AlwaysOn\n```\n\nDetails and host file map: [`docs/always-on.md`](docs/always-on.md).\n\n---\n\n## Commands\n\n\n| Command          | What it does                       |\n| ---------------- | ---------------------------------- |\n| `/signal`        | S1 — entry tier                    |\n| `/signal2`       | S2 — strong default                |\n| `/signal3`       | S3 — auto-CKPT                     |\n| `/signal-commit` | Stage + conventional commit        |\n| `/signal-push`   | Commit + push                      |\n| `/signal-pr`     | Push + PR (`gh`)                   |\n| `/signal-review` | One-line review, severity required |\n| `/signal-state`  | `.signal_state.md`                 |\n| `/signal-compress` | Compress memory/rules/docs with fidelity gates |\n| `/signal-diff`   | Summarized changes                 |\n| `/signal-search` | Summarized search                  |\n\n\nTier detail: [Tiers](#tiers).\n\n---\n\n## Repo map\n\nThere 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.\n\n\n| Location                                                               | What it is                                                                   | You need it if…                                                       |\n| ---------------------------------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------- |\n| `[skills/](skills/)`                                                   | **Canonical** skill specs: `*.md` (readable) + `*.min.md` (dense)            | You install via `npx skills add` or copy skills into an agent         |\n| `[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          |\n| `[kiro-signal/](kiro-signal/)`                                         | **Kiro** mirror: `skills/` + bundled `references/` with rewritten paths      | You import into Kiro IDE — see [docs/kiro.md](docs/kiro.md)           |\n| `[references/](references/)`                                           | Shared refs (symbols, Karpathy norms, benchmarks, checkpoint notes)          | You cite norms or symbols                                             |\n| `[templates/](templates/)`                                             | Snippets to merge into a **project’s** GEMINI / CLAUDE files                 | You integrate SIGNAL into an app repo                                 |\n| `[scripts/](scripts/)`, `[benchmark/](benchmark/)`                     | `shrink.ps1`, `sync-integration-packages.ps1`, `verify.ps1`, proof benchmark runners | You contribute or verify locally ([CONTRIBUTING.md](CONTRIBUTING.md)) |\n\n\n---\n\n## Why SIGNAL\n\nSIGNAL is not just “be brief.” It is a protocol surface for agents that need dense output, compressed input, durable state, and reproducible evidence. The core bet is that professional compression needs gates and artifacts, not only a terse personality.\n\n```mermaid\nflowchart LR\n  subgraph inputs [Verbose]\n    V1[Long replies]\n    V2[Full thread history]\n    V3[Hedging and filler]\n  end\n  subgraph signal [SIGNAL]\n    S[Symbol grammar]\n    C[CKPT summaries]\n    M[Minified skills]\n    I[Input compression]\n  end\n  subgraph outputs [Dense]\n    D1[Terse pointers]\n    D2[Checkpoint atom]\n    D3[~85% smaller payloads]\n    D4[Reproducible JSON]\n  end\n  V1 --> S\n  V2 --> C\n  V3 --> S\n  S --> D1\n  C --> D2\n  M --> D3\n  I --> D4\n```\n\n**Cumulative** transcript savings (baseline vs checkpoint-style history) are covered in [benchmark/README.md](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](docs/token-metrics.md).\n\n---\n\n## Signal vs Caveman-style\n\n[Caveman](https://github.com/JuliusBrussee/caveman) is the right comparison point because it made terse agent output easy to install and popular. Its public README currently reports a one-line `npx skills add JuliusBrussee/caveman` install, average output savings around **65%** across Claude API benchmark prompts, and `caveman-compress` input savings around **46%** on memory files. The [Caveman release notes](https://github.com/JuliusBrussee/caveman/releases) also emphasize a reproducible benchmark system and one-command install.\n\nSIGNAL v0.4.0 competes on a different axis: professional dense mode with proof gates.\n\n| Capability | Caveman-style baseline | SIGNAL v0.4.0 |\n| --- | --- | --- |\n| Output style | Persona/telegraphic compression | Professional dense protocol: terse, no preamble, confidence tokens, templates |\n| Input compression | Memory-file compression | `signal-compress` for memory, prompts, rules, and docs with protected-token checks |\n| Benchmark controls | Strong terse-control idea | Four arms: `baseline`, `terse-control`, `caveman-style`, `signal` |\n| What counts as a win | Reported savings plus validation | No win unless fidelity passes: code, paths, line numbers, errors, versions, and terms preserved |\n| Long sessions | Output/input savings | Checkpoint-oriented methodology for cumulative context growth |\n| Install posture | One-command install | One-command install plus always-on SIGNAL-3 host rules |\n\nThe fair claim is not “SIGNAL always emits fewer output tokens than Caveman.” Caveman is very strong at raw output compression. The stronger SIGNAL claim is: **Signal is easier to trust in professional agent workflows because every benchmark claim must pass a fidelity gate and map back to reproducible JSON.**\n\n---\n\n## Tiers\n\nUse `/signal`, `/signal2`, or `/signal3`.\n\n\n| Tier   | You get                                  | Rough habit savings        |\n| ------ | ---------------------------------------- | -------------------------- |\n| **S1** | Symbols, no preamble, no hedge, terse    | ~35%                       |\n| **S2** | S1 + BOOT, aliases, delta-friendly turns | another ~20% on top        |\n| **S3** | S2 + **auto-checkpoint every 5 turns**   | long sessions stay bounded |\n\n\n---\n\n## Symbol grammar (snippet)\n\n\n| Symbol | Meaning               | Example              |\n| ------ | --------------------- | -------------------- |\n| `→`    | causes / produces     | `nullref→crash`      |\n| `∅`    | none / remove / empty | `cache=∅`            |\n| `Δ`    | change / diff         | `Δ+cache→~5ms`       |\n| `!`    | required / must       | `!fix before deploy` |\n| `[n]`  | confidence 0.0–1.0    | `fix logic [0.95]`   |\n\n\nFull reference: `[skills/signal-core.min.md](skills/signal-core.min.md)`.\n\n---\n\n## Benchmark\n\nv0.4.0 uses a proof-first benchmark methodology. A compression win counts only when fidelity passes: protected code, paths, line numbers, versions, quoted errors, identifiers, and technical terms must remain intact. The generated diagram above is a visual summary; the source of truth is the checked-in JSON and runner.\n\nBenchmark arms:\n\n| Arm | Purpose |\n| --- | --- |\n| `baseline` | Normal agent/system prompt |\n| `terse-control` | Explicit \"answer concisely\" control |\n| `caveman-style` | Telegraphic/persona-style compression control |\n| `signal` | Actual SIGNAL skill/defaults |\n\n```mermaid\nflowchart LR\n  P[\"Scenario fixtures\"] --> A[\"4 arms: baseline, terse-control, caveman-style, signal\"]\n  A --> M[\"Measure input tokens, output tokens, total tokens, chars\"]\n  M --> F[\"Fidelity gate\"]\n  F -->|Pass| J[\"Stable JSON row\"]\n  F -->|Fail| X[\"No benchmark win counted\"]\n  J --> R[\"README claim: median plus p10/p90 ranges\"]\n  J --> D[\"Docs: methodology, metrics, release notes\"]\n```\n\n**Current static snapshot:** [`benchmark/results/v0.4-static.json`](benchmark/results/v0.4-static.json) reports **11/11 fidelity-pass rows**, **73.5% median estimated savings**, and **39.8%–89.9% p10–p90 savings** across input-compression fixtures and skill-overhead checks. Live output and long-session results are reported separately because provider token accounting varies by host.\n\nMethodology: [`docs/benchmark-methodology.md`](docs/benchmark-methodology.md). Runner: [`benchmark/proof-suite.ps1`](benchmark/proof-suite.ps1).\n\n### What the static proof covers\n\n| Category | Rows | Current result | Source |\n| --- | ---: | --- | --- |\n| Input compression | 3 | `3/3` fidelity pass; median savings `39.8%` | [`benchmark/fixtures/input-compress.json`](benchmark/fixtures/input-compress.json) |\n| Skill overhead | 8 | `8/8` fidelity pass; minified surfaces shrink the loaded skill payload | [`skills/`](skills/) |\n| Combined static snapshot | 11 | `11/11` fidelity pass; median savings `73.5%`; p10–p90 `39.8%–89.9%` | [`benchmark/results/v0.4-static.json`](benchmark/results/v0.4-static.json) |\n\n### Output compression\n\nOutput benchmarks are intentionally harder than the old “verbose vs terse” demo. They compare four arms:\n\n- `baseline`\n- `terse-control`\n- `caveman-style`\n- `signal`\n\nThe default live command runs a one-scenario smoke test and writes ignored local JSON under `benchmark/results/local/`. Full live output runs are opt-in because provider capacity, model version, and token accounting move over time.\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\auto-benchmark.ps1 -Live\n```\n\nFull live output run:\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\auto-benchmark.ps1 -Live -MaxLiveScenarios 0\n```\n\nDo not promote a live output table into the README unless every claimed winning row has `success=true` and a fidelity score.\n\n### Skill pairs (canonical `.md` → `.min.md`) — primary on-disk proof\n\n\n| Pair              | Bytes (≈)          | Est. tok (≈)      | Shrink   |\n| ----------------- | ------------------ | ----------------- | -------- |\n| signal            | 3.3K → 0.9K        | ~819 → ~217       | ~74%     |\n| signal-ckpt       | 5.6K → 0.7K        | ~1389 → ~163      | ~88%     |\n| signal-commit     | 8.3K → 0.7K        | ~2071 → ~178      | ~91%     |\n| signal-compress   | 2.9K → 0.9K        | ~717 → ~221       | ~69%     |\n| signal-pr         | 4.7K → 0.5K        | ~1177 → ~130      | ~89%     |\n| signal-push       | 3.7K → 0.5K        | ~936 → ~131       | ~86%     |\n| signal-review     | 5.5K → 0.6K        | ~1378 → ~145      | ~90%     |\n| signal-state      | 2.0K → 0.7K        | ~511 → ~163       | ~68%     |\n| **8 pairs total** | **~36.0K → ~5.3K** | **~8996 → ~1329** | **~85%** |\n\n\nMin-only helpers (`signal-core`, `signal-diff`, `signal-search`) ≈ **1.6K** bytes (~**389** est. tokens).\n\n### Reading the numbers & multi-turn proof\n\n`[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.\n\n### Reproduce\n\n**Static** (heuristic + skill table printout; no API):\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\auto-benchmark.ps1\n```\n\n**Long-session** (multi-turn; many API calls):\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\benchmark\\run.ps1 -Mode LongSession -Quick\n```\n\n---\n\n## Architecture\n\n```mermaid\nflowchart TB\n  subgraph protocol [Protocol layer]\n    P[\"signal.min.md\"]\n    CORE[\"signal-core.min.md\"]\n  end\n  subgraph workflow [Workflow skills]\n    CKPT[\"signal-ckpt\"]\n    GIT[\"commit / push / pr\"]\n    REV[\"signal-review\"]\n  end\n  subgraph context [Context tools]\n    DIFF[\"signal-diff\"]\n    SRCH[\"signal-search\"]\n    CMP[\"signal-compress\"]\n    ST[\"signal-state\"]\n  end\n  subgraph persist [Persistence]\n    STATE[\".signal_state.md\"]\n  end\n  P --> CORE\n  P --> CKPT\n  P --> GIT\n  P --> REV\n  P --> DIFF\n  P --> SRCH\n  P --> CMP\n  ST --> STATE\n```\n\n**Tier ladder:**\n\n```mermaid\nflowchart LR\n  S1[\"/signal — S1\"] --> S2[\"/signal2 — S2\"]\n  S2 --> S3[\"/signal3 — S3\"]\n  S1 -.- D1[\"~35% vs loose chat\"]\n  S2 -.- D2[\"BOOT · aliases · Δ\"]\n  S3 -.- D3[\"Auto-CKPT every 5 turns\"]\n```\n\n---\n\n## Coding norms (Karpathy-style)\n\n**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.\n\nNorms in brief (canonical list: `[references/karpathy-coding-norms.md](references/karpathy-coding-norms.md)`):\n\n1. **Assumptions** — explicit over implicit; say when unsure.\n2. **Simplicity** — avoid over-engineering.\n3. **Surgical diffs** — minimal changes tied to the goal.\n4. **Verifiable goals** — reproduce, test, or verify where it matters.\n5. **No filler** — skip “here is the code”; show the code.\n\n\n| Resource       | Link                                                                                                                                                                                                |\n| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Full norms     | `[references/karpathy-coding-norms.md](references/karpathy-coding-norms.md)`                                                                                                                        |\n| 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`) |\n| Host templates | `[templates/gemini-GEMINI.md](templates/gemini-GEMINI.md)`, `[templates/claude-CLAUDE.md](templates/claude-CLAUDE.md)`                                                                              |\n\n\n---\n\n## Git workflows & CI\n\n\n| Skill                                                        | Role                                                   |\n| ------------------------------------------------------------ | ------------------------------------------------------ |\n| `[skills/signal-commit.min.md](skills/signal-commit.min.md)` | Stage all, conventional commit (`--draft` / `--split`) |\n| `[skills/signal-push.min.md](skills/signal-push.min.md)`     | Commit + push                                          |\n| `[skills/signal-pr.min.md](skills/signal-pr.min.md)`         | Commit + push + `gh pr create`                         |\n\n\n**CI:** `[.github/workflows/verify.yml](.github/workflows/verify.yml)` runs `[scripts/verify.ps1](scripts/verify.ps1)` on Windows for `main` and PRs.\n\n---\n\n## Changelog\n\nAll releases: [CHANGELOG.md](CHANGELOG.md).\n\n---\n\n## Repository layout (clone root)\n\n```\n./\n├── skills/              # canonical *.md + *.min.md (edit here; see CONTRIBUTING.md)\n├── assets/              # logos, benchmark infographic\n├── references/          # symbols, Karpathy norms, benchmarks, checkpoint notes\n├── templates/           # Gemini / Claude merge snippets\n├── scripts/             # shrink.ps1, verify.ps1, sync-integration-packages.ps1\n├── benchmark/           # proof-suite.ps1, fixtures, live benchmark runners\n├── gemini-signal/       # Gemini CLI extension (mirrored from skills/)\n├── claude-signal/       # Claude Code plugin (mirrored from skills/)\n├── kiro-signal/         # Kiro IDE import (mirrored + bundled references/)\n├── hooks/\n└── GEMINI.md            # root context (synced from gemini-signal/)\n```\n\n---\n\n## Star History\n\n<a href=\"https://www.star-history.com/?repos=mattbaconz%2Fsignal&type=date&legend=top-left\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=mattbaconz/signal&type=date&theme=dark&legend=top-left\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=mattbaconz/signal&type=date&legend=top-left\" />\n   <img alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=mattbaconz/signal&type=date&legend=top-left\" />\n </picture>\n</a>\n\n---\n\n*v0.4.0 — Proof-first compression. Professional dense mode.*\n",
  "bytes": 27018,
  "sha": "f3b36b0bbea6761f713e4f27f39b032714f0e39e73613478d492b20f2b1f8da0",
  "repo_slug": "mattbaconz/signal",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_mattbaconz_signal_2d7d3fb2/readme"
}