Sandbox
@jiahuiqu17/paper-signal

Agent Skills for editorial image production

Paper Signal turns a brief, photo, or research note into a controlled editorial image workflow. It routes the subject, chooses a composition, saves the exact prompt, generates the bitmap, and checks the result with visual QA and project validation. The repo packages that workflow as four skills, plus schemas, examples, and scripts for creating and validating projects. It also supports evidence records and caption copy for factual or social series work.

109 stars1 forksPythonUpdated 1mo ago
Who it's for

Builders who want their agent to make and review editorial images without losing the subject or the prompt history.

What it delivers

You can produce subject-aware image posts, keep the prompts and evidence together, and inspect the bitmap before you ship.

What it does

Four packaged skills

Includes `$paper-signal`, `$paper-signal-art-director`, `$paper-signal-series`, and `$paper-signal-audit` for full production, single-image work, series, and output review.

Subject-aware routing

Routes by subject and composition so identity, geometry, crop, and important details stay intact.

Adaptive composition system

Uses modes like `panorama-strip`, `dual-frame`, `specimen-plate`, and `portrait-archive` instead of one fixed layout.

Evidence and caption support

Can keep an `evidence.json` record and write caption copy for factual posts and social series.

Project schemas and validation

Ships JSON schemas under `schemas/` and validation scripts under `scripts/` for manifests, evidence ledgers, and eval runs.

Visual QA workflow

Includes observation-based bitmap inspection, correction prompts, and example outputs for review.

How to get it

  1. 1Run
    npx skills add jiahuiqu17/paper-signal
  2. 2Then open a fresh task and ask
    Use $paper-signal-art-director to restyle this photo as a tactile minimal-zine
    poster. Preserve the subject, save the final prompt, and inspect the bitmap.
  3. 3The Quick Start command is interactive. To target a host explicitly
    npx skills add jiahuiqu17/paper-signal --agent codex
    npx skills add jiahuiqu17/paper-signal --agent claude-code
  4. 4Each tagged release includes a deterministic skills-only ZIP and SHA256SUMS. It omits…
    gh release download --repo jiahuiqu17/paper-signal \
      --pattern "paper-signal-skills-*.zip" --pattern SHA256SUMS
    shasum -a 256 -c SHA256SUMS
    unzip paper-signal-skills-v*.zip
    npx skills add ./paper-signal-v*
  5. 5Clone the repository, then link the skill folders into Codex
    git clone https://github.com/jiahuiqu17/paper-signal.git
    cd paper-signal
    
    for skill in paper-signal paper-signal-art-director paper-signal-series paper-signal-audit; do
      ln -s "$PWD/skills/$skill" "${CODEX_HOME:-$HOME/.codex}/skills/$skill"
    done
  6. 6Copy the preference template into a project or user config location
    mkdir -p .paper-signal
    cp skills/paper-signal/assets/PREFERENCES.example.md \
      .paper-signal/PREFERENCES.md

README

Paper Signal Studio

Turn photos, ideas, and research into beautiful editorial visuals with Codex or Claude Code.

Old Town after rain, cyanotype panoramaArthur's Seat in low cloud, dual frame
Leith at last light, vermilion photo windowEdinburgh stone and light, specimen plate

Made with one shared paper-and-ink system and four compositions chosen for the subject. Click any image for the full result.

Quick start

npx skills add jiahuiqu17/paper-signal

Codex Desktop: end-to-end verified · Claude Code: Skill-compatible · Agent Skills · MIT

Then open a fresh task and ask:

Use $paper-signal-art-director to restyle this photo as a tactile minimal-zine
poster. Preserve the subject, save the final prompt, and inspect the bitmap.

Works as a standard Skill in Codex, Claude Code, and other compatible clients. Final image generation depends on the image tools available in your host; see the verified support levels.

validate release license

简体中文 · See how it works · Compatibility · Contributing

Why it is more than a style prompt

The simple promise is better-looking editorial imagery. Underneath, Paper Signal protects the things a style prompt often loses:

  • the subject — identity, architecture, object shape, crop, and exact values;
  • the visual logic — composition follows the content instead of one template;
  • the craft — paper, ink, halftone, type, and colour behave as one physical system;
  • the result — the real bitmap is inspected, corrected, and saved with its prompt.

Paper Signal keeps the whole production chain inspectable:

brief → protect the subject → route subject and composition → art direction
      → save the exact prompt → native raster generation → inspect the bitmap
      → targeted correction → validated project

For factual posts it can also keep an evidence record and write natural caption copy. For a single photograph or idea, it stays compact and focuses on the image.

What makes it different

CapabilityPaper Signal approach
Subject integrityIdentity, horizon, silhouette, architecture, crop, and exact values are blocking constraints
CompositionSeven adaptive modes selected after the subject route, not one template for every topic
Material craftOne physical reproduction process explains grain, dot gain, ink spread, registration, and edge behaviour
ColourOne meaningful chromatic signal; no palette contamination for decoration's sake
ReproducibilityEvery selected image keeps its brief, manifest, final prompt, output, and QA record
Social seriesSequence, caption, evidence, and per-card routing are available without burdening a single poster
Quality controlAutomated structure checks plus full-size and phone-thumbnail visual review

See docs/comparison.md for a respectful scope comparison with GC Minimal Zine Poster, baoyu-xhs-images, Anthropic Canvas Design, and one-off prompts.

Before / after: style without losing the subject

The four Edinburgh images remain the finished-work hero. The compact block below tests a different claim: whether a print transfer can change the material reading without replacing the person or object. Each pair shows a repository-generated fictional edit target followed by the selected Paper Signal result.

Portrait · identity preservation
Fictional portrait edit target
Before · edit target
Portrait Carbon Paper Signal result
After · Paper Signal
Object · geometry and wear preservation
Moka pot edit target
Before · edit target
Object Specimen Paper Signal result
After · Paper Signal

The full portrait and object cases include the source-generation prompt, edit target, preservation record, exact transfer prompt, manifest, selected bitmap, asset hashes, and observation-based QA. The README loads only 600 × 800 WebP previews; click any image for the full PNG.

Installation and compatibility

Choose a host

The Quick Start command is interactive. To target a host explicitly:

npx skills add jiahuiqu17/paper-signal --agent codex
npx skills add jiahuiqu17/paper-signal --agent claude-code

Select the full paper-signal entry point or one of the three specialist skills. The repository also contains a Codex plugin manifest at .codex-plugin/plugin.json.

HostSkill loadingComplete bitmap workflow
Codex DesktopVerifiedEnd-to-end reference runtime with image inspection and built-in ImageGen
Codex CLIVerified discovery and repository toolingDepends on the image tools configured for that session
Claude CodeAgent Skills-compatible; installable with the community installerRequires an image-inspection and image-generation tool; not yet end-to-end verified here
Cursor and other compatible agentsInstaller- and host-dependentDepends on the host capabilities; prompt-only fallback remains available

The short compatibility line near the top means the Skill format loads on those hosts—not that every host exposes the same image tools. Format compatibility, tool availability, and tested rendering are separate levels. See the maintained compatibility matrix.

Install an immutable release

Each tagged release includes a deterministic skills-only ZIP and SHA256SUMS. It omits the large visual examples while retaining the four skills, schemas, license, and essential documentation.

gh release download --repo jiahuiqu17/paper-signal \
  --pattern "paper-signal-skills-*.zip" --pattern SHA256SUMS
shasum -a 256 -c SHA256SUMS
unzip paper-signal-skills-v*.zip
npx skills add ./paper-signal-v*

Local Codex development

Clone the repository, then link the skill folders into Codex:

git clone https://github.com/jiahuiqu17/paper-signal.git
cd paper-signal

for skill in paper-signal paper-signal-art-director paper-signal-series paper-signal-audit; do
  ln -s "$PWD/skills/$skill" "${CODEX_HOME:-$HOME/.codex}/skills/$skill"
done

Inspect an existing destination before replacing it. Open a new task after installation so the skill inventory reloads.

Requirements

  • an Agent Skills-compatible host;
  • image inspection for references and visual QA;
  • a runtime-native bitmap generator for rendering;
  • Python 3.10 or later only for project and repository tools.

Paper Signal bundles no image model, API key, tracking code, or third-party runtime. In Codex it uses built-in ImageGen.

Personalise without forking

Copy the preference template into a project or user config location:

mkdir -p .paper-signal
cp skills/paper-signal/assets/PREFERENCES.example.md \
  .paper-signal/PREFERENCES.md

You can set preferred paper processes, anchor inks, aspect ratio, text burden, caption voice, source-label policy, and banned motifs. Current-request instructions and subject-preservation rules always take precedence. See preferences.md.

Included skills

SkillUse it for
$paper-signalComplete routing and production from brief to final bitmap
$paper-signal-art-directorOne poster, landscape, portrait, object, architecture image, or existing-photo restyle
$paper-signal-seriesTwo to ten Xiaohongshu/Instagram cards, visual essays, travel diaries, or evidence-led explainers
$paper-signal-auditDiagnose generic, inaccurate, AI-looking, or materially weak outputs and write targeted corrections

Example requests:

Use $paper-signal-art-director to turn this rainy Edinburgh street into a quiet
minimal-zine poster. Preserve the street geometry, use a panorama strip and one
cyanotype plate, save the final prompt, and generate the bitmap.
Use $paper-signal-series to turn these notes and photographs into five
Xiaohongshu images. Route each card by subject, keep one material system,
write the caption, save every prompt, and generate the real image series.
Use $paper-signal-audit to explain which visible details make these images feel
AI-generated. Rank the failures and return one targeted correction prompt per
failed image without regenerating them.

Adaptive composition

minimal-zine-standard is a material kernel, not a fixed small-photo layout.

Composition modeBest forActive image area
airy-fragmentpoems, compact concepts, evidence fragments10%-24%
photo-windowatmospheric photos, architecture, editorial covers24%-45%
panorama-striplandscape, street, coastline, weather18%-36%
dual-framecontext/detail, near/far, before/after22%-42%
specimen-plateobjects, food, products, plants, garments12%-34%
portrait-archivepeople, profiles, documentary portraits22%-44%
type-objectwords or numerals that truly are the subject12%-30%

The ranges are perceptual guides. Identity, horizon, silhouette, spatial geometry, and meaningful crop take priority.

Project output

A single-image project can stay small:

project/
├── brief.md
├── manifest.json
├── prompts/
└── outputs/

Series add analysis.md and outline.md. Factual work adds evidence.json; personal-sharing work can add caption.md; photo restyles add preservation.md.

Create a project:

python skills/paper-signal/scripts/init_project.py edinburgh-after-rain \
  --path ./work --cards 1 --ratio 3:5 \
  --subject landscape --composition panorama-strip \
  --preset weathered-horizon

Validate it:

python skills/paper-signal/scripts/validate_project.py \
  ./work/edinburgh-after-rain --require-prompts --require-images

Machine-readable contracts are published in schemas/: project manifest 1.0/1.1, evidence ledger 1.0, behavioural cases 1.0, and eval-run 1.0. The runtime validator remains the source of truth for cross-file and bitmap checks that JSON Schema cannot express.

Examples

Development and maintenance

New here? Start with Good First Contributions. You do not need to understand the whole architecture to test a host, improve one installation note, report a visual regression, or contribute a complete example.

The runtime and core test suite use standard-library Python:

make check

It compiles scripts, runs unit tests, validates all skill packages and UI metadata, checks version alignment and local links, scans for private absolute paths, validates behavioural cases, and validates every committed example according to its manifest status.

For release-facing integration checks, install the pinned development validators and run:

python -m pip install -r requirements-dev.txt
make integration

This adds the official Agent Skills reference validator, JSON Schema validation, and a pinned community-installer discovery smoke test. Prepare a clean behavioural eval without leaking the judge criteria into the performer request:

python scripts/eval_harness.py list
python scripts/eval_harness.py prepare single-landscape-weather --output ./tmp/eval-run

Road to 1.0

  • add a consented real-photo preservation benchmark and a second multi-material object benchmark;
  • complete end-to-end rendering tests in two additional Agent Skills hosts;
  • keep an explicit asset record with every visual example;
  • publish reviewer-completed behavioural eval records for major visual-kernel changes;
  • keep the visual kernel narrow while expanding subjects through evidence, not adjective lists.

Community

Made something with Paper Signal? Share the image, input or prompt, host, and version in Made with Paper Signal. Once real third-party submissions arrive, selected work with explicit permission can become a credited Community Gallery.

Acknowledgements

Paper Signal is independently authored and informed by the open workflows in baoyu-xhs-images and GC Minimal Zine Poster, both MIT-licensed. Their code and generated examples are not vendored. See the acknowledgements.

License

MIT © 2026 Paper Signal contributors. Generated-image rights and backend terms depend on the runtime and source assets used for each project.

Files in the repo

Repository payload22 top-level entries
  • .codex-plugin
  • .github
  • assets
  • docs
  • evals
  • examples
  • schemas
  • scripts
  • skills
  • tests
  • .editorconfig
  • .gitattributes
  • .gitignore
  • AGENTS.md
  • CHANGELOG.md
  • CLAUDE.md
  • GEMINI.md
  • LICENSE
  • Makefile
  • README.md
  • README.zh-CN.md
  • requirements-dev.txt

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More skills

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.

117k
1 add
Vincentwei1021/
anything2explainer

Topic in, narrated explainer video out. A Claude Code / Codex skill that turns any topic into a black-canvas motion-graphics explainer video with TTS voiceover, subtitles and a chapter progress bar. Chinese or English; every frame drawn in code with Remotion.

666

Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)

71k

Taste-Skill - gives your AI good taste. stops the AI from generating boring, generic slop

86k