Paper Signal logo

Paper Signal

Community
jiahuiqu17
paper-signal

Plan, art-direct, generate, edit, and quality-check tactile minimal-zine bitmap imagery from almost any subject: landscapes, portraits, objects, products, architecture, interiors, existing photographs, moods, article ideas, cultural essays, data, reviews, and social-media card series. Use for 小红书图片, Instagram carousels, poetic posters, editorial covers, photo restyling, visual essays, evidence-aware explainers, or any request for aged paper, photocopy, risograph, letterpress, sparse type, and restrained single-ink character. Routes the subject before choosing composition, preserves identity and factual content when editing, saves reproducible prompts, invokes the runtime-native image generator, and audits the real raster output. Do not use for glossy commercial ads, deterministic UI/vector assets, or exact diagram rendering.

Overview

Publisherjiahuiqu17
Repositorypaper-signal
Skill namepaper-signal
Stars
108
Forks
1
Bundled files
17
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 17 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by jiahuiqu17 on GitHub. Read the source before you install it.

Installation

Install the Paper Signal AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/jiahuiqu17/paper-signal/tree/main/skills/paper-signal
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jiahuiqu17/paper-signal.git /tmp/paper-signal
mkdir -p .claude/skills
cp -r /tmp/paper-signal/skills/paper-signal .claude/skills/paper-signal
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Paper Signal in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Paper Signal on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Paper Signal is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Paper Signal

Turn a subject or source into a complete visual production: understand it, choose a subject-aware minimal-zine composition, save the final prompt, render the bitmap, and judge the actual image rather than the intention.

Route the job

  1. Read manifest.yaml.
  2. Read every file listed under always_load.
  3. Select one delivery route:
    • single-card — one poster, cover, landscape treatment, portrait, object plate, or concept image.
    • restyle-existing — one or more supplied images are edit targets.
    • new-series — a social carousel, visual essay, story sequence, or evidence-led card set.
  4. Select one subject route from references/subject-routing.md before choosing a layout.
  5. Read only the route-specific and on-demand references needed for the job.
  6. State the detected delivery route, subject route, and intended deliverables in one short user-facing line before production.

Default to single-card for a theme, sentence, scene, person, place, object, or one supplied photo. Default to new-series only when the user asks for several images or supplies content that clearly needs a sequence. Use restyle-existing when preservation of an existing image is the primary goal.

Non-negotiable contract

  • Preserve the subject before styling it. A landscape must still feel spatial, a portrait must retain identity, and a product or object must keep its defining form.
  • Preserve factual and semantic invariants when editing. Never invent or silently alter text, numbers, labels, identity, architecture, product features, or scene-defining details.
  • Use minimal-zine-standard as a material kernel, not a universal template. Choose an adaptive composition mode; do not force every subject into one tiny central data cluster.
  • Build texture from one plausible reproduction process. Do not simulate quality by piling random scratches, tape, coffee stains, and generic grunge onto a clean design.
  • Use real language or intentional abstraction. Never add faux Japanese/Korean characters, fake archival codes, fake coordinates, or meaningless pseudo-text to manufacture atmosphere.
  • Keep public source labels hidden by default while retaining provenance internally when facts or licensed material are involved.
  • Separate truth, interpretation, and voice. Never invent a rating, quote, review consensus, first-hand experience, or source.
  • Save the exact final prompt to prompts/NN-{role}-{slug}.md before generation.
  • Use a runtime-native raster image tool. In Codex, use the built-in imagegen skill/tool; do not substitute SVG, HTML, canvas, or programmatic poster rendering.
  • Never repair generated text by painting over the bitmap. Reduce text, correct the prompt, and regenerate to a versioned output.
  • Preserve user files and generated candidates. Never overwrite an existing artifact without a versioned sibling or timestamped backup.

Production workflow

1. Resolve the brief

Extract the intended use, subject, mood, audience, output count, aspect ratio, exact visible text, edit invariants, reference-image roles, and any factual or rights constraints.

Use these defaults when the request leaves them open:

  • delivery route: single-card
  • subject route: infer from references/subject-routing.md
  • aspect ratio: preserve the edit target; otherwise 3:4 for social cards and 3:5 for standalone posters
  • visible text: one short phrase or none
  • public source labels: hidden
  • preset: minimal-zine-standard
  • anchor hue: derive from the subject; cobalt is the fallback

Load the first available preference file, if present:

  1. .paper-signal/PREFERENCES.md
  2. ${XDG_CONFIG_HOME:-$HOME/.config}/paper-signal/PREFERENCES.md

When a file exists, read references/preferences.md and apply its contract. Preferences refine the brief but never override the current request.

2. Inspect and classify inputs

For each image, label it edit-target, style-reference, content-reference, or series-anchor. Inspect local images with view_image before editing or using them for detailed art direction.

For an existing photo, record the subject, crop, horizon or pose, identity, light, key colors, text, and protected details. For a new image, extract one imageable core rather than illustrating every idea.

3. Choose subject and composition modes

Read references/subject-routing.md, then apply references/visual-language.md and select a preset from references/presets.md.

Choose one composition mode that serves the subject:

  • airy-fragment
  • photo-window
  • panorama-strip
  • dual-frame
  • specimen-plate
  • portrait-archive
  • type-object

Lock paper family, reproduction process, type character, anchor hue, and texture intensity. Let image scale, crop, and negative space adapt to the selected mode.

4. Add editorial structure only when needed

For a series, read references/content-architecture.md and plan the swipe rhythm before styling. For facts, reviews, data, rankings, or source documents, create evidence.json using references/evidence-ledger.md. For personal sharing or recommendation copy, apply references/human-voice.md.

Do not make a single landscape, portrait, object, or mood poster carry a social-card evidence workflow it does not need.

5. Create a reproducible project

For a project that needs an artifact trail, run:

bash
python scripts/init_project.py <topic-slug> --path <parent-directory> --cards <count> \
  --subject <subject-route> --composition <composition-mode>

Use a 2-5 word lowercase kebab-case slug. Create a versioned sibling when the directory exists. Follow references/project-schema.md.

6. Compile and save prompts

Read references/prompt-compiler.md. Save only the compact final image prompt that will reach the raster model. Use four paragraphs:

  1. canvas, paper field, adaptive image geometry, and protected crop/safe zones
  2. subject, spatial or identity invariants, and one physical image treatment
  3. exact sparse text, type behaviour, anchor hue/form, and valid print defects
  4. emotional temperature, flat-material finish, and targeted hard avoids

When editing, repeat the preservation clause in every prompt. Keep text short enough for image generation.

7. Confirm once, then render

Before rendering, show the route, subject route, composition mode, preset, hue, output count, edit invariants, and output directory. Ask for confirmation unless the user explicitly requested direct generation or default execution.

Then:

  1. Generate a single image without an unnecessary series reference.
  2. For a series, accept card 1 as the material anchor before generating later cards.
  3. Generate each distinct image with a distinct call; use the accepted anchor as a style reference when supported.
  4. Keep batches to four or fewer calls.
  5. Inspect every result at full size and thumbnail size.
  6. Retry a failed image once with one targeted correction.
  7. Copy selected project-bound outputs into outputs/ with stable filenames.

8. Audit and deliver

Apply references/quality-contract.md, then run the project validator when a project manifest exists:

bash
python scripts/validate_project.py <project-directory> --require-images

Return the rendered images inline, absolute output paths, final prompt or prompt directory, detected modes, validation result, and honest caveats. Include caption and evidence files only when that route required them.

Failure policy

  • Subject lost under styling: restore crop, silhouette, horizon, face, or defining object geometry; reduce graphic intervention.
  • Output resembles a generic clean poster: introduce one real image-bearing fragment, imperfect ink edges, and paper-specific tonal variation; simplify the layout.
  • Output resembles a scrapbook: remove decorative layers until one reproduction process and one anchor relation remain.
  • Image feels too empty for the subject: move from airy-fragment to photo-window, panorama-strip, portrait-archive, or dual-frame; do not fill space with arbitrary text.
  • Image feels like a dashboard: retain one decision-worthy signal, collapse boxes into printed fragments, and move nuance to the caption.
  • Garbled text: shorten or remove exact strings and regenerate; never overlay replacements.
  • No raster backend: report the blocker and return saved prompts; do not silently ship code-rendered substitutes.

Reference map

  • manifest.yaml: route and progressive-loading map.
  • references/core-workflow.md: production state machine.
  • references/subject-routing.md: subject detection, preservation rules, and mode selection.
  • references/visual-language.md: universal Paper Signal material and composition kernel.
  • references/presets.md: controlled material variants.
  • references/prompt-compiler.md: subject-aware prompt grammar.
  • references/restyle-contract.md: existing-image invariants.
  • references/content-architecture.md: social-series pacing and card budgeting.
  • references/evidence-ledger.md: factual provenance.
  • references/human-voice.md: truthful conversational copy.
  • references/quality-contract.md: visual, factual, and delivery QA.
  • references/project-schema.md: manifest and file schemas.
  • references/preferences.md: optional project/user defaults and precedence.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Paper Signal AI skill do?

Plan, art-direct, generate, edit, and quality-check tactile minimal-zine bitmap imagery from almost any subject: landscapes, portraits, objects, products, architecture, interiors, existing photographs, moods, article ideas, cultural essays, data, reviews, and social-media card series. Use for 小红书图片, Instagram carousels, poetic posters, editorial covers, photo restyling, visual essays, evidence-aware explainers, or any request for aged paper, photocopy, risograph, letterpress, sparse type, and restrained single-ink character. Routes the subject before choosing composition, preserves identity...

Why use Paper Signal on TypingMind?

Because you install it once and use it with any model. Paper Signal is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Paper Signal in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jiahuiqu17/paper-signal/tree/main/skills/paper-signal. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Paper Signal?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Paper Signal?

As many as you like. As long as a model supports skills, you can use Paper Signal with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Paper Signal AI skill free?

Yes. It is published on GitHub by jiahuiqu17 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇