contact-consent-review
Decide and record conservative contact-consent transitions from bounded engagement, bounce, and consent evidence before any send.
Skill by runxhq
Chalk Labs
Need help deploying contact-consent-review?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/runxhq-contact-consent-review
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/contact-consent-review
What's inside
- Skill name
contact-consent-review- Description
- Decide and record conservative contact-consent transitions from bounded engagement, bounce, and consent evidence before any send.
- License
- Apache-2.0
- Instructions
- 86 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (8)
- SKILL.md
- contact-consent-review.mjs
- composes-in-graph.yaml · fixtures/
- composed.graph · fixtures/support/
- mark.svg
- catalog.md · references/
- mark-license.md · references/
- run.yaml
SKILL.md (first lines)
# Contact Consent Review Use this skill after collecting current contact evidence and before preparing a campaign. It decides whether a contact remains eligible, needs re-permission, must be suppressed, or needs human review. When policy justifies a state transition, it records that decision in the operator's consent ledger with optimistic concurrency and verifies the exact event through a second read. This skill never sends a message and never mutates a mailing provider. A later `message-send` run must read the current consent state again at delivery time. The ledger records the operator's policy decision; it does not replace provider unsubscribe or bounce data. ## Operating model The caller supplies one bounded engagement observation, the current consent observation, and the policy threshold that applies to the contact. The evidence must be marked `read` and versioned to the same ledger head that the runner reads through the store's `projection.read`. Missing, stale, ambiguous, or conflicting evidence produces `human_review` without a write. The deterministic decision order is conservative: 1. An unsubscribe marker stops automation. 2. An existing suppression is preserved; age alone can never relax it. 3. Verified hard-bounce evidence suppresses when policy permits that automatic action, otherwise it stops for review. 4. A subscribed contact whose last engagement exceeds the decay threshold is moved to `re_permission`. 5. A clean, recent subscribed contact returns `verify` without writing. Only `re_permission` and `suppress` can create transitions. The append uses the observed ledger version and the caller's stable idempotency key. Readback must match the append status, source identity, new version, event reference, event digest, and projection digest before the result reports a recorded transition. No-write decisions also perform a second read and require the projection to remain unchanged. ## Authority and finality The runner requests `runx:data:read` and, only for an admitted transition, `runx:data:append`. These scopes authorize a bounded consent-ledger operation; they do not authorize delivery or changes to a CRM or mailing provider. The data-source binding owns storage and credentials. A sealed result proves the ledger reads and any exact recorded transition. It does not prove provider state, re-subscription, campaign approval, or delivery. Every result therefore keeps `downstream_send.status` at `not_run` and names `message-send` as the separate delivery boundary. ## Decisions and recovery - `verify`: current evidence supports no transition. Nothing is appended. - `re_permission`: engagement has decayed past policy and a subscribed contact must regain permission before sending. The transition is recorded once. - `suppress`: hard-bounce evidence requires suppression, or an existing suppression is preserved. A write occurs only when state actually changes. - `human_review`: evidence or policy cannot safely support automation. Nothing is appended. If the ledger version changes before the decision, run again with a fresh read and fresh evidence. Reuse an idempotency key only for the identical transition. The runner deliberately makes no claim that a post-commit retry can recover from the old expected version; inspect the receipt and current ledger before deciding whether another operation is needed. ## Inputs and result Provide the logical data source, consent-ledger resource, contact aggregate, observed version, stable transition key, bounded engagement counts and recency, bounce policy, and current consent evidence. Counts must be non-negative and the policy threshold must be between 1 and 3,650 days. The result preserves the decision and reason, the observed consent state, the readback-bound transition identity when one was written, a human escalation only when review is required, and the untouched downstream send boundary. ## Agent rules - Never invent engagement, bounce, consent, or version evidence. - Never relax suppression from contact age alone. - Never re-permission an unsubscribed contact automatically. - Never describe an internal ledger append as a provider update. - Never dispatch, send, or claim delivery from this result.
From runxhq/runx, Apache-2.0.
More from runxhq/runx
- 0.719score
code-plan
runxhq
Compile a bounded objective or code-intake change set into a dependency-safe Runx execution plan, with deterministic checks for evidence preservation…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
policy-draft
runxhq
Draft or tighten a Runx operational policy from a governance brief, then validate the exact runx.operational_policy.v1 contract with the native policy engine.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
redact-pii
runxhq
Detect and remove personal data before content crosses a trust boundary, returning usable scrubbed content only when a deterministic residual scan passes.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
skill-review
runxhq
Inspect, safely test, and assess one Runx skill package for capability, trust, and operator readiness.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
reddit
runxhq
Manage named Reddit accounts through their existing browser sessions, find useful conversations, draft in each account's voice, and submit one exactly…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
prior-art
runxhq
Inspect bounded local repository and Runx catalog evidence before a design, draft, or operator decision, then produce citation-bound findings and a reuse…
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
cold-outreach
runxhq
Prepare one relevant, evidence-bound cold email for an exact prospect using scoped brand and taste context; hold unsafe or unsupported contact and leave…
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
crm-update-plan
runxhq
Reconcile a call transcript against current CRM records and propose allowlisted field updates, each traced to a verbatim transcript quote, with the write left…
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
cve-audit
runxhq
Audit exact npm dependency versions against OSV through Runx native HTTP and emit replay-verified evidence with no unverified findings.
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
attention-review
runxhq
Decide which bounded personal observations warrant attention, then return a source-bound private briefing intent and next-check proposal.
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
content-package
runxhq
Turn governed source evidence into a citation-bound reader-facing draft, channel package, and provider-neutral publication handoff.
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
contract-draft
runxhq
Draft a contract from a versioned template with explicit parties and terms, reconciling every clause against the rendered baseline deterministically and…
SkillAFreshness: A★ 104Claude Code +9
Signals
- Stars
- 104
- Forks
- 109
- Open issues
- 16
- Contributors
- 16
- Last commit (this folder)
- Oct 17, 2026 (13 days ago)
- Last release
- Oct 18, 2026 (13 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/runxhq/runx
- Website
- runx.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from runxhq
- 0.719score
redact-pii
runxhq
Detect and remove personal data before content crosses a trust boundary, returning usable scrubbed content only when a deterministic residual scan passes.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
reddit
runxhq
Manage named Reddit accounts through their existing browser sessions, find useful conversations, draft in each account's voice, and submit one exactly…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
policy-draft
runxhq
Draft or tighten a Runx operational policy from a governance brief, then validate the exact runx.operational_policy.v1 contract with the native policy engine.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
prior-art
runxhq
Inspect bounded local repository and Runx catalog evidence before a design, draft, or operator decision, then produce citation-bound findings and a reuse…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
code-plan
runxhq
Compile a bounded objective or code-intake change set into a dependency-safe Runx execution plan, with deterministic checks for evidence preservation…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
skill-review
runxhq
Inspect, safely test, and assess one Runx skill package for capability, trust, and operator readiness.
SkillAFreshness: A★ 104Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get contact-consent-review running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
contact-consent-review skill. Agent Mart. https://agentmart.dev/skills/runxhq-contact-consent-review (last updated 2026-10-24)