Signal Dense
Compress language, not information. 压缩表达,不压缩认知。
给 ChatGPT / Codex 的高信息密度输出策略:减少阅读负担,保留结论、关键原因、 风险、不确定性,以及你可能没想到但有价值的洞见。默认简洁;说“为什么 / 没懂 / 展开”就正常解释。
An instruction-only plugin and skill for lower reading cost without sacrificing reasoning, trade-offs or useful adjacent insights. No runtime, API key, telemetry, MCP server or dependency on the inspiration projects is required.
Why not just “be concise”?
A length target rewards omission. Signal Dense instead asks whether deleting a point would change the reader's conclusion, action, understanding of why, risk judgment or awareness of an important option. If it would, the point stays.
Priority: correctness > decision-relevant information > novel useful insight > clarity > brevity. Shorter is useful only when the answer remains informative and readable. This is a behavioral preference, not a guarantee of factual accuracy or a deterministic compression algorithm.
Start here / 快速使用
| Where | What to use |
|---|---|
| ChatGPT, everyday replies | Copy Custom Instructions into your custom instructions. |
| Codex, everyday replies | Merge AGENTS.md rules into your global instruction file. |
| Codex, explicit or automatic skill selection | Install the skill folder below. |
| Plugin-capable host | Use the optional packaged plugin below. |
The two adapters have the same core policy. Choose the one for your host; adding the full skill is optional. We ship copyable rules and do not modify your settings when you clone this repository.
ChatGPT
Open Settings → Personalization → Custom Instructions (labels may vary by client). Paste the contents of chatgpt-instructions.md alongside existing preferences, replacing contradictory brevity rules rather than stacking them. The file is under 1,500 characters. Start a fresh chat and try:
回答时压缩表达,不压缩认知。比较这两个方案,保留风险和我可能漏掉的点。
Say “详细讲”, “为什么”, “没懂”, “展开” or “具体一点” for more explanation. For a one-off trial, paste the same rules at the start of a chat. To remove the persistent preference, remove that block from Custom Instructions.
A GitHub repository is not automatically a ChatGPT plugin-directory listing. This project has not been submitted to or approved for the public directory. On a desktop surface with local marketplace support, use the plugin route below; on other surfaces, use Custom Instructions. Do not enter this repository URL as an MCP endpoint: this package contains no MCP server.
Codex always-on core
Merge codex-AGENTS.md into ~/.codex/AGENTS.md.
If CODEX_HOME is customized, use $CODEX_HOME/AGENTS.md. Preserve existing project,
security and workflow instructions; do not replace the whole file blindly.
Global instructions are loaded when Codex starts a session. An AGENTS.override.md
in the same scope can take precedence; repository instructions and higher-priority
host instructions can also affect behavior. Start a new chat after editing and
ask Codex which instruction files it loaded if the preference seems absent.
To uninstall the core, remove only the Signal Dense section.
Codex standalone skill
Clone this repository into a location you keep, then link its skill folder:
git clone https://github.com/sigmaforcoding/signal-dense.git
cd signal-dense
mkdir -p "$HOME/.agents/skills"
ln -s "$PWD/skills/signal-dense" "$HOME/.agents/skills/signal-dense"
The link command refuses to replace an existing path. If one exists, inspect it
before choosing to update it. On Windows, copy skills/signal-dense into
%USERPROFILE%\.agents\skills\signal-dense instead. Start a fresh Codex chat.
Invoke $signal-dense or choose Signal Dense in the skill selector; plugin
installations may show a namespaced name. Example:
Use $signal-dense to compare these plans. Keep the trade-offs and hidden dependencies.
Automatic selection is allowed, but not guaranteed for every turn. The always-on
adapter supplies the default preference. To disable the standalone skill, remove
the symlink or copied signal-dense folder; keep your repository if desired.
Do not install both the standalone skill and plugin unless you want duplicate selectors.
Optional plugin installation
The root plugin.json is the portable entry point; .codex-plugin/plugin.json
supplies the compatibility overlay. Keep skills/ at the package root.
On Codex versions exposing codex plugin:
codex plugin marketplace add sigmaforcoding/signal-dense
codex plugin add signal-dense@signal-dense
The repository marketplace points to the root plugin in this same public GitHub
repository. Check codex plugin list and start a new chat. If the command is not
available in your version, use the standalone skill route.
For updates, inspect changes, then use codex plugin marketplace upgrade signal-dense
and reinstall with codex plugin add signal-dense@signal-dense. Use
codex plugin remove signal-dense@signal-dense to remove the plugin and
codex plugin marketplace remove signal-dense to remove its marketplace.
Plugin caches and copied adapters are snapshots: editing upstream SKILL.md does not silently update an installed copy or your Custom Instructions. Pull or update the package and manually refresh copied adapters. The symlink route follows the local checkout after you update it.
Architecture
plugin.json portable identity
.codex-plugin/plugin.json Codex compatibility metadata
.agents/plugins/marketplace.json optional Git-backed installation source
skills/signal-dense/
SKILL.md canonical behavior
agents/openai.yaml optional UI metadata; implicit selection allowed
references/output-policy.md conditional application guidance
references/examples.md authored examples
adapters/
codex-AGENTS.md minimal always-on projection
chatgpt-instructions.md same core for ChatGPT
evals/cases.md semantic checks and scoring protocol
Progressive disclosure: hosts discover the short name/description first, load SKILL.md when selected, and load references only when a difficult rewrite needs them. The always-on core stays short. It is a maintained projection, not a second behavior specification; changes begin in SKILL.md and then update both adapters.
Before / after
Before: “There are a few things worth mentioning about the launch. Friday is likely, but security needs to approve by Thursday 15:00 UTC. Otherwise it will be Monday. Maya is the owner. Payment retries may double-charge because idempotency keys are missing. In summary, there are dependencies and a risk to address.”
After: “Release is likely Friday if security approves by Thursday 15:00 UTC; otherwise Monday. Maya owns it. Missing idempotency keys may cause payment retries to double-charge.”
Both retain the conditional date, timezone, owner and causal risk. The second removes packaging, not information. These are authored examples, not benchmark results. See more examples, including Chinese explanations, overlooked dependencies and seven essential conditions.
Design choices
- Natural language over telegraphic prose: decoding costs are reading costs too.
- Useful adjacent insights stay; speculative tangents and compulsory “bonus tips” do not.
- No fixed five-item limit, word quota or mandatory closing action.
- Detail adapts to the task: facts can be one line; decisions keep trade-offs; debugging keeps exact errors and commands; ambiguity gets enough explanation.
- Two compact paragraphs can beat many headings, but a table or checklist wins when it makes real comparisons or sequences easier to use.
- Requested JSON, lessons, creative work and formal documents retain their format. Meaningful warmth stays in sensitive conversations.
- Compression never replaces necessary research, verification or required updates.
Inspiration / Prior Art
This is an independently worded synthesis, not an official fork or endorsement. No upstream runtime, examples, logos or full prompt files are bundled. Licenses and source versions were checked on 2026-09-29.
| Source | Design influence | Deliberately different here |
|---|---|---|
| i-have-adhd by Ayoub Ghriss | Put actionable substance early; remove ceremonial text; make errors concrete. | No blanket tangent suppression, default five-item grouping target, per-turn state restatement or mandatory two-minute next action. Its current rules do include completeness exceptions; this is a different default, not a claim that it always discards information. |
| Caveman by Julius Brussee | Compress wording and restore clarity when terse output becomes ambiguous. | No telegraphic full/ultra register or command vocabulary for compression levels; preserve ordinary grammar and meaningful uncertainty. |
| Community “Laconic Mode” discussion by u/Beerbrewing | Treat rigor and material caveats as constraints on brevity. | Explicitly retain useful novel insights and teach normally when the user requests explanation. |
i-have-adhd's LICENSE
is MIT. Caveman uses a split license: its
licensing map
classifies skills/ as MIT and engine-linked components as BSL-1.1. Signal Dense
uses no engine code. No explicit reusable software license was identified for the
Reddit post; we link and describe the idea without reproducing its prompt.
Our original files use MIT. THIRD_PARTY_NOTICES.md records the reviewed versions and preserves MIT notices for the design influences. Those notices do not relicense BSL components or the Reddit author's text. If you later import source material, check the exact file's license and retain its required copyright, permission and other notices. Attribution alone is not permission to copy. We make no inherited star-count, compression-percentage or quality claims.
Evaluation and contributions
Use evals/cases.md before changing policy. Score information, reading length, redundancy, useful insight, risk retention and unnecessary explanation separately. Losing a critical condition fails even when length improves. Read the initial smoke-test report for what was actually exercised and its limits.
Contributions should include the realistic prompt, observed failure, proposed
change and before/after outputs. Start with SKILL.md; update the references and
both adapters if needed. Keep scope small and retain natural language. Run python3 scripts/validate.py and the relevant behavioral cases; do not introduce a global
rule to solve one anecdote. By submitting a contribution, you license it under MIT.
Platform references
Packaging and installation were checked against the
official plugin documentation,
local skill discovery,
and AGENTS.md instruction loading.
Availability varies by client and workspace policy. agents/openai.yaml is optional
UI metadata, not a requirement for the portable skill itself.