OPS on-demand: This skill should be used when the user asks to "who do I owe a reply", "relationship…

MITAuto-check: notes

Install Relations

skills CLI
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill relations -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Lifecycle-Innovations-Limited/claude-ops relations --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude-ops/skills/relations .claude/skills/relations && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
relations
GitHub stars
542
Token cost
~2k tokens
SKILL.md length
730 words
Files
1
Skills in repo
67
Repo updated
First seen
Licence
MIT

At a glance

OPS on-demand: This skill should be used when the user asks to "who do I owe a reply", "relationship…

  • Works in 7 steps: Shadow mode is the default. With… → Never merge two records on a name. Hard… → Every fact, commitment and follow-up… → …
  • Asks to who do I owe a reply
  • SKILL.md covers Configuration, Hard rules, Operations and Draft order (fixed), plus 4 more sections
  • Calls python3

What it does

Relations is an agent skill from Lifecycle-Innovations-Limited/claude-ops. OPS on-demand: This skill should be used when the user asks to "who do I owe a reply", "relationship…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Business operating system for Claude Code — 57 skills, 21 agents, smart daemon. Unified inbox (WhatsApp/Email/Slack/Telegram), autonomous PR merge, full-AWS monitoring, revenue… The licence is MIT.

When your agent uses it

  • Asks to who do I owe a reply

Example prompts

  • “who do I owe a reply”
  • “/relations”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob, Skill, AskUserQuestion

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Shadow mode is the default. With relations_shadow_mode true, this skill
  2. Never merge two records on a name. Hard keys only: contact-provider id,
  3. Every fact, commitment and follow-up carries a source reference. No source,
  4. Facts and inference are separate. An inference never justifies an outbound.
  5. Silence is the default. Nothing meaningful changed means send nothing.
  6. Contact history never enters agent memory. Person facts belong in the
  7. Progressive disclosure. Never load the contact list into context. Query the

What it can do on your machine

Read from SKILL.md and the folder at commit 1aa0928. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep
    • Glob
    • Skill
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Relations loads about 2k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 730 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~28
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep, Glob, Skill, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Lifecycle-Innovations-Limited/claude-ops at commit 1aa0928, republished under its MIT licence (© Lifecycle-Innovations-Limited). 730 words, ~1,975 tokens.

Download SKILL.mdSave it as .claude/skills/relations/SKILL.md (or your agent's skills folder).
name
relations
description
OPS on-demand: This skill should be used when the user asks to "who do I owe a reply", "relationship…
allowed-tools
Bash, Read, Grep, Glob, Skill, AskUserQuestion
argument-hint
[queue|brief <person>|find <email|phone|name>|draft <person>|close <id>|audit]

/ops:relations — Relationship Manager

Load ops-rules before acting. Public repo (no personal data). Outbound: one draft → one approval → one send. If AskUserQuestion / Workflow are missing, follow Rule 10 in ops-rules (Hermes: numbered options / two-turn Telegram card; delegate_task).

Relationship ledger and decision queue. Answers: who is owed a reply, what was promised, what is going cold, and what context a draft needs before it is written. It never sends anything.

Configuration

Every path and toggle comes from plugin userConfig, an env var, or $HOME. Nothing in this skill is machine-specific.

userConfig keyEnv overrideDefaultMeaning
relations_cliRELATIONS_CLI$HOME/.claude-ops/relations/bin/relations-cliLedger CLI entry point (JSON out)
relations_db_pathRELATIONS_DB$HOME/.claude-ops/relations/people.dbSQLite ledger, the factual source of truth
relations_shadow_modeRELATIONS_SHADOW_MODEtrueWhen true, no external send on any channel
relations_queue_limitRELATIONS_QUEUE_LIMIT10Max decision-queue items per report
relations_followup_limit_personal—1Unanswered follow-ups allowed, personal
relations_followup_limit_business—2Unanswered follow-ups allowed, business
relations_suppress_days—30Minimum suppression after a dismissal

Resolve in this order, first non-empty wins. Never hardcode an absolute path:

bash
PREFS_PATH="${PREFS_PATH:-${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json}"
read_pref() { [ -f "$PREFS_PATH" ] && python3 -c 'import json,sys;print(json.load(open(sys.argv[1])).get(sys.argv[2],"") or "")' "$PREFS_PATH" "$1" 2>/dev/null; }

RELATIONS_CLI="${RELATIONS_CLI:-$(read_pref relations_cli)}"
RELATIONS_CLI="${RELATIONS_CLI:-$HOME/.claude-ops/relations/bin/relations-cli}"
RELATIONS_DB="${RELATIONS_DB:-$(read_pref relations_db_path)}"
RELATIONS_DB="${RELATIONS_DB:-$HOME/.claude-ops/relations/people.db}"

if [ ! -x "$RELATIONS_CLI" ]; then
  echo "relations: no ledger CLI at $RELATIONS_CLI — set userConfig relations_cli or RELATIONS_CLI" >&2
fi

A missing CLI is reported as a missing CLI. Never fall back to an empty result: "no follow-ups" and "the ledger is not installed" must never look the same.

Hard rules

  1. Shadow mode is the default. With relations_shadow_mode true, this skill drafts and stages only. No email, chat, SMS, or calendar invite leaves the box.
  2. Never merge two records on a name. Hard keys only: contact-provider id, normalized email, E.164 phone, or a previously verified alias. Everything else goes to the review queue.
  3. Every fact, commitment and follow-up carries a source reference. No source, no row, no draft sentence.
  4. Facts and inference are separate. An inference never justifies an outbound.
  5. Silence is the default. Nothing meaningful changed means send nothing.
  6. Contact history never enters agent memory. Person facts belong in the ledger DB, not in a memory plane or a committed file. See ops-rules Rule 0.
  7. Progressive disclosure. Never load the contact list into context. Query the one person you need.

Operations

SubcommandWhat it does
queue (default)Ranked decision queue, max relations_queue_limit, one per person
brief <person>Contact methods, open commitments, sourced facts, recent threads
find <key>Resolve an identity by email / phone / name; ambiguity → review
draft <person>Full-context draft, staged for approval, never sent
close <id>Close a follow-up with a reason
snooze <id> <ts>Defer with a reason
suppress <id>Dismiss for at least relations_suppress_days
auditDuplicates, unsourced rows, stale facts, integrity
bash
"$RELATIONS_CLI" queue --limit "${RELATIONS_QUEUE_LIMIT:-10}"
"$RELATIONS_CLI" brief <person_id>
"$RELATIONS_CLI" find --email user@example.com
"$RELATIONS_CLI" close <follow_up_id> --reason "they replied on chat"
Show full SKILL.md (325 more words)Show less

Draft order (fixed)

  1. Resolve identity across every channel the person owns — never answer on one channel while the real conversation is on another.
  2. Read the COMPLETE thread, not the latest message. Check both directions (sent and received) and every account the channel has.
  3. Read messages from the recipient and anyone relevant on copy.
  4. Check the calendar and open commitments.
  5. Check vip tier first (see the vip skill) — a tier-1 person is drafted with more care and never batched into a digest.
  6. Load humanizer, write ONE draft in the owner's voice, in the language the thread is already in.
  7. Stage it for approval with recipient, channel, thread, and a content hash. If any of those change, ask again. Send only the exact approved content.

Never send. Never produce several near-duplicate drafts.

Follow-up gate

States: i_owe_them, they_owe_me, waiting_date, waiting_document, waiting_decision, going_cold, no_action, suppressed.

The gate blocks on: do-not-automate, archived person, snoozed, suppressed, not due yet, they responded elsewhere, upcoming meeting, unanswered limit (relations_followup_limit_personal / _business), missing source reference, cross-channel duplicate.

Not every unanswered message is overdue. Was a response actually requested? Was something promised? Has that date arrived? Would silence be more natural?

Report format

Plain text, no decoration, recommendation first, max relations_queue_limit items, numbered actions per item. If nothing survives the gate, output nothing.

relationship desk — monday

1. <person>
business, a revised proposal was promised friday (email thread, <date>)
recommendation: send the prepared draft, confidence high

1 approve   2 edit   3 snooze 2 days   4 close   5 show context

Source authority

Current complete thread > verified identity > current calendar event > current conversation > signed document > this ledger > recent public primary source > search result > existing summary > draft. A draft is never a source of truth. On conflict: record it, prefer the newest authoritative primary source, surface it, and do not send until it is resolved.

  • vip — who is checked and answered first; always consulted before triage
  • ops-inbox — channel sweeps feed this ledger
  • ops-comms — the send path, gated by Rule 6
  • people — contact directory sync (identity layer under this ledger)
  • humanizer — voice pass before any draft is staged
  • ops-rules — Rule 0 (public repo), Rule 6 (per-message approval)

© Lifecycle-Innovations-Limited, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in claude-ops/skills/relations of Lifecycle-Innovations-Limited/claude-ops.

Open the folder on GitHubat commit 1aa0928

Compare with similar skills

Relations next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Relations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Relations this skillLifecycle-Innovations-Limited/claude-ops542—~2kAutomated safety check: NotesMIT
Public Relationscoreyhaines31/marketingskills54k—~2.4kAutomated safety check: PassMIT
Knowledge Opsaffaan-m/ECC276k2 repos~1.7kAutomated safety check: PassMIT
Research Opsaffaan-m/ECC276k2 repos~902Automated safety check: PassMIT
Terminal Opsaffaan-m/ECC276k2 repos~750Automated safety check: PassMIT
Messages Opsaffaan-m/ECC276k1 repos~724Automated safety check: PassMIT

Similar skills

  • Public Relations

    coreyhaines31/marketingskills

    When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests).

    54k GitHub stars~2.4k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Knowledge Ops

    affaan-m/ECC

    Knowledge base management, ingestion, sync, and retrieval across multiple storage layers (local files, MCP memory, vector stores, Git repos).

    276k GitHub starsUsed in 2 repos~1.7k tokens
    Knowledge ManagementAuto-check passed
  • Research Ops

    affaan-m/ECC

    Evidence-first current-state research workflow for ECC. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 2 repos~902 tokens
    Research & ScienceAuto-check passed
  • Terminal Ops

    affaan-m/ECC

    Evidence-first repo execution workflow for ECC. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 2 repos~750 tokens
    Testing & QAAuto-check passed
  • Messages Ops

    affaan-m/ECC

    Evidence-first live messaging workflow for ECC. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 1 repo~724 tokens
    Productivity & AutomationAuto-check passed
  • Email Ops

    affaan-m/ECC

    Evidence-first mailbox triage, drafting, send verification, and sent-mail-safe follow-up workflow for ECC.

    276k GitHub starsUsed in 1 repo~1.1k tokens
    Writing & ContentAuto-check passed

More from Lifecycle-Innovations-Limited/claude-ops

All 67 skills in this repo
  • Ops Dash

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "ops dashboard", "pixel HQ", or…

    542 GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Ops Gtm

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "go to market", "GTM plan", or…

    542 GitHub stars~3.7k tokensUpdated today
    Auto-check: notes
  • Ops Marketing

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "klaviyo", "ads spend", or…

    542 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Ops Socials

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "tweet", "post to linkedin", or…

    542 GitHub stars~3.6k tokensUpdated today
    Auto-check: notes
  • Ops Yolo

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "yolo mode", "run the business today"…

    542 GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Ops Monitor

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "datadog", "APM alerts", or…

    542 GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check: notes

Questions about Relations

What does Relations do?

OPS on-demand: This skill should be used when the user asks to "who do I owe a reply", "relationship…. Relations is an agent skill from Lifecycle-Innovations-Limited/claude-ops.

When should I use Relations?

Relations fits situations like: asks to who do I owe a reply.

How do I install Relations in Claude Code?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill relations -a claude-code`. Or copy the skill folder (claude-ops/skills/relations in Lifecycle-Innovations-Limited/claude-ops) into .claude/skills/relations in your project. Claude Code loads it when a task matches its description.

How do I install Relations in Codex?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill relations -a codex`. Or copy the skill folder (claude-ops/skills/relations in Lifecycle-Innovations-Limited/claude-ops) into .agents/skills/relations in your project. Codex loads it when a task matches its description.

Can I use Relations in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill relations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/relations, .gemini/skills/relations, .github/skills/relations and .opencode/skills/relations in your project.

What does Relations need to run?

Going by SKILL.md and its folder, Relations needs the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Skill, AskUserQuestion.

Does Relations access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Relations safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Relations use?

Relations is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Relations use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Relations?

Skills that share tags, products or a category with Relations: Public Relations (coreyhaines31/marketingskills, 54k stars), Knowledge Ops (affaan-m/ECC, 276k stars), Research Ops (affaan-m/ECC, 276k stars) and Terminal Ops (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Relations?

Lifecycle-Innovations-Limited (a GitHub organization) maintains it in Lifecycle-Innovations-Limited/claude-ops, which has 542 GitHub stars. The repository holds 67 skills in this directory. The repository was last updated on October 9, 2026.

Source: Lifecycle-Innovations-Limited/claude-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.