Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Render Filter

ASecurity

Render filters.js conditions as the repo's standard rule table — the six columns Change, Sender, Subject, List-Id, Actions, Replaces, one row per condition. Use whenever a response shows the user a filter rule: a rule about to be written, a rule that matched a message, or a rule proposed as a fix. Invoked by the filter and match skills; not a standalone task.

5 stars
0 votes
0 copies
0 views
Added 9/28/2026
documentationgo

Security Analysis

A100/100

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add raineorshine/email-filter-builder --skill render-filter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Render Filter?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Render Filter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/raineorshine-render-filter/badge)](https://www.skillsdirectory.com/skills/raineorshine-render-filter)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: render-filter
description: "Render filters.js conditions as the repo's standard rule table — the six columns Change, Sender, Subject, List-Id, Actions, Replaces, one row per condition. Use whenever a response shows the user a filter rule: a rule about to be written, a rule that matched a message, or a rule proposed as a fix. Invoked by the filter and match skills; not a standalone task."
---

# Render filter (conditions → the rule table)

One table shape for every response that shows the user a `filters.js` rule, so a rule reads the same
whether it is about to be written, was found matching a message, or is only being proposed.

Input is one or more conditions and the actions of the entry each belongs to. Output is a markdown
table, one row per condition, followed by a one-sentence plain-language reading of it.

Examples in this file are invented. The privacy rule in `AGENTS.md` applies to anything written into
committed files; check a new example against the real spec before committing it.

## The table

Six columns — **Change, Sender, Subject, List-Id, Actions, Replaces** — in that order:

| Change | Sender         | Subject         | Actions              | Replaces        |
| ------ | -------------- | --------------- | -------------------- | --------------- |
| widen  | `*@acme.com`   | `Weekly digest` | Newsletters, archive | `news@acme.com` |
| add    | `*@*.acme.com` | `Weekly digest` | Newsletters, archive | —               |

> Mail from Acme whose subject contains "Weekly digest" gets the Newsletters label and skips the inbox.

- **Change** — what is happening to the spec: `add`, `widen`, `update`, `remove`, or `duplicate`
  (the row already exists; nothing is written).
- **Sender / Subject / List-Id** — the exact values in the spec, in backticks, `—` when the
  condition has no such criterion. A glob is shown as the glob, not paraphrased.
- **Actions** — the entry's labels, then its inbox effect: `archive`, `trash`, or nothing when the
  mail stays in the inbox.
- **Replaces** — the condition(s) this row supersedes; `—` when it supersedes none.

**Drop a column no row uses.** A column where every row would read `—` carries nothing, so it is
left out rather than rendered empty — which is why most tables show three or four columns, not six.
The order of the ones that remain never changes. Dropping is per table, not per row: one row with a
`List-Id` keeps the column for every row.

A condition's `comment` goes in the plain-language sentence, not a column.

## The sentence

One sentence under the table, reading the rule in plain language: which mail, and what happens to
it. It is what the user checks the table against, so it states the rule's effect rather than
restating its cells — "gets the Newsletters label and skips the inbox", not "Newsletters, archive".

For several rows that are one rule seen from two angles (a widen and the add beside it), one
sentence covers them both. For rows that are genuinely different rules, one sentence each.

## Which columns a caller uses

The columns are one vocabulary; a caller fills the ones its job gives it and the drop rule removes
the rest. Never invent a column outside the six — a verdict, a reason, an entry index belongs in the
prose around the table.

- **Writing a rule** (`filter`, `archive`) fills **Change** on every row, and **Replaces** on a
  `widen` or `update`.
- **Explaining a rule that already exists** (`match`) writes nothing, so **Change** and **Replaces**
  are empty on every row and drop out. What is left says what the rule matches and what it does.
  Which entry a row came from, and whether it fired in sieve, in Gmail or neither, go in the prose.
- **Proposing a fix** fills **Change** with what the edit would be, and says in the prose that
  nothing has been written yet.

Attribution

raineorshineraineorshine
View sourceMore from raineorshine →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Context Fundamentals

Understand the components, mechanics, and constraints of context in agent systems. Use when designing agent architectures, debugging context-related failures, or optimizing context usage.

179001 votes

release-notes

Draft release notes and changelog entries from git history or merged PRs between two refs (tags/SHAs/branches), including breaking changes, migrations, and upgrade steps. Use when the user asks for release notes, changelog updates, or a GitHub Release draft.

1301 votes

docs-style-guide

Documentation style guide enforcer by @planetabhi. Applies and reviews the writing style guide when authoring or editing product documentation and tutorials. Use to check prose for voice, tense, word choice, inclusive language, formatting, code block, UI, Markdown, and number/date conventions.

11 votes

Caveman Help

Quick-reference card for caveman modes, skills and commands. Trigger: /caveman-help or "caveman help".

1074700 votes

How It Works

Explain how claude-mem captures observations, when memory injection kicks in, and where data lives. Use when the user asks "how does claude-mem work?" or "what is this thing doing?".

947440 votes
View all in documentation →