agentsclimarketplace

Signal shadow

Skill arkaigrowth/agent-skills/signal-shadow

Nine production Claude Code skills and one command pack: repo security scanning, LLM-output validators, agent-fleet guardrails, credential hygiene. Deterministic cores, agentic edges.

Install
npx -y skills add arkaigrowth/agent-skills --skill signal-shadow

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 17 days oldThe repository was created 17 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Nuance-preserving summarization. Compresses text while preserving the caveats, disagreement, chronology, dependencies, and uncertainty that determine how a careful reader should interpret the source. Closes with a residual-risk audit (largest inference, strongest omission risk, weakest-confidence claim) instead of checkbox rubric theater. Use when user says: "signal shadow", "signal+shadow", "nuance-preserving summary", "compress without flattening", "summarize this with caveats", "what's easy to miss", or when summarizing long-form content where meaning-changing nuance matters (academic papers, podcast/video/interview transcripts, news articles, social threads, technical docs, meeting minutes, long emails). Accepts: URL, file path, or piped/pasted text (plus an optional external transcript-CLI mode, see below). Adapts emphasis by source type (academic | transcript | news | thread | technical | general). Density dial 1-4 controls compression aggressiveness; default is 2. Output scales to the source and never pads to fill the density.

SKILL.md

7.4 KB, as published. Nobody here has run it

signal-shadow

Nuance-preserving summarizer. Uses the signal_shadow prompt pattern (canonical copy shipped at references/system.md).

When to Use This Skill

Triggers:

  • Explicit: "signal shadow", "signal+shadow", "nuance-preserving summary"
  • Task framing: "summarize and keep the caveats", "compress without flattening", "what's easy to miss", "what's the signal vs the shadow", "give me the nuance"
  • Input types: long articles, podcast/video transcripts, academic papers, news, social threads, technical docs, meeting minutes, interview notes, dense emails

Anti-triggers (use other tools):

  • Simple tl;dr or headline digest, use plain summarization
  • Short code summaries, use code-comment tools
  • Marketing copy generation, use a copywriting tool

Invocation Patterns

URL (articles, papers, blog posts):

signal-shadow this URL: https://example.com/article
signal-shadow --url https://... --source-type news

File:

signal-shadow on ./paper.md at density 3
signal-shadow --file paper.md --source-type academic --density 3

Piped text / paste:

cat notes.md | signal-shadow
(paste text in chat) then: signal-shadow

Transcript CLI (optional, external): the helper also exposes an --arkai-id mode that shells out to a separate arkai transcript CLI. That CLI is not part of this skill and is not included in this repo. The mode is a no-op unless an arkai binary is on your PATH, and the skill works fully without it. If you do not have that CLI, ignore this mode and use --url, --file, or piped text (paste your transcript in directly).

Workflow

When invoked, follow these steps:

  1. Parse user intent. Identify input source (url / file / pasted text, or the optional external transcript CLI), density (default 2), source-type (auto-infer from source; user may override).

  2. Prepare input. Run the helper script:

    python3 scripts/signal_shadow.py \
      [--url <url> | --file <path>] \
      [--density N] \
      [--source-type <type>] \
      [--title "<title>"]
    

    The script outputs the source text with a [META] header prepended. For pasted text, skip the script and manually prepend the META block.

  3. Apply the pattern. Load references/system.md as your system prompt. This is the canonical signal_shadow pattern. Apply it to the prepared input from step 2. Follow every rule in references/system.md, especially:

    • Decision-relevance gate (include nuance only if omitting would change interpretation)
    • Single-shot, source-only (no outside knowledge; label all inferences)
    • Residual-risk audit (name specifics, not a checkbox "all good")
    • No padding to fill density
  4. Output verbatim. Your response should be ONLY the signal_shadow output envelope. It starts with # Signal + Shadow: ... and ends after ## Self-Audit. No preamble, no commentary.

  5. Follow-ups. After the initial output, you may break the envelope to answer questions about the summary.

Source-Type Auto-Inference

Input signalSource type
external transcript CLI (--arkai-id)transcript
URL with news/blog domainnews
URL with arxiv.org / scholar.googleacademic
URL with twitter.com / x.com / linkedin.comthread
.md / .txt filegeneral (ask user if ambiguous)
.py / .js / README filestechnical
Pasted long-form textgeneral (ask user if unclear)

User's --source-type always overrides.

Density Dial

DensityCore signalsUse when
12-3short source, or max compression wanted
2 (default)3-5most long-form content
35-7dense academic papers, long transcripts
47+explicitly requested; padding risk

Output auto-scales to source length. Do not pad to satisfy density. It is a cap, not a quota.

Output Format

See references/system.md, section OUTPUT INSTRUCTIONS, for the exact schema. Short form:

# Signal + Shadow: [title]

**Source type:** ...
**Density:** ...
**Summary meta:** ...

## Core Signal
- **[decision-relevant claim]**
  - Why it matters: ...
  - Easy to miss: ...
  - Anchor: ... (quoted | paraphrased | inferred)
  - Confidence: ... , [brief reason]

## Blind Spots / Open Questions
- ...

## Self-Audit
- Largest inference: ...
- Strongest omission risk: ...
- Weakest-confidence claim: ...

Troubleshooting

  • URL returns raw HTML noise: the helper uses the Python standard library only (no article extraction). If HTML is noisy, ask the user to paste cleaned text or save the page via reader mode first.
  • External transcript CLI not found: the --arkai-id mode requires a separate arkai binary on your PATH. It is not bundled here. Use --url, --file, or piped text instead.
  • Long source, output truncated: reduce density to 1 or split the source into sections.
  • Self-Audit says "none" three times: expected on short or low-inference sources. Not automatically a bug. The pattern is designed to honestly report "none" when earned. On a long source (over 1000 words) with no real inferences, double-check that you are applying the rubric and not coasting.
  • Claude does not see this skill: Claude Code may need to reload skills. Restart the session or run claude fresh.

Limitations

  • URL mode fetches raw HTML with no readability extraction, so paywalled, JavaScript-rendered, or markup-heavy pages may come through as noise. Paste cleaned text for those.
  • The optional transcript CLI mode depends on external software that is not included and is not tested here.
  • The pattern is a prompt, not a deterministic function. Output quality depends on the model applying it and the input quality.
  • The helper script is tested on macOS with Python 3. It uses only the standard library, but other platforms are untested.

Tests

Unit tests for the helper live in tests/. Run them with:

python3 -m unittest discover -s tests -v

They cover build_meta_block, infer_default_source_type, and argument parsing. They do not hit the network or the external transcript CLI.

Related

  • Canonical prompt: shipped in this repo at references/system.md.
  • Fabric CLI equivalent: if you use the Fabric prompt runner, the same pattern text can be run as a Fabric pattern (system.md), which skips this skill's helper and calls a model directly. That path requires Fabric configured with your own API key.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.