agentsclimarketplace

Kratos operations

Skill S3YED/appie-kit/skills/kratos-operations

Build Your Own AI Employee. The complete starter kit for OpenClaw + Hermes Agent. 155 deduplicated skills, drag-and-drop workspace, case studies, install scripts.

Install
npx -y skills add S3YED/appie-kit --skill kratos-operations

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use for all Kratos assistant operations for Ibrahim Ramzy (The Creed). Covers tone, messaging patterns, tool access, and operational preferences. Load this when working on anything Ibrahim-related.

SKILL.md

11.6 KB, as published. Nobody here has run it

Kratos Operations — Ibrahim Ramzy

User Preferences (Seyed)

  • ACT, don't ask: When Seyed says "send it to him" or "let him know", just deliver the message. Never ask "Want me to send this?" — the instruction is the green light.
  • Direct and masculine tone: Short sentences, no fluff, no em dashes. Mirror Seyed's communication style.
  • Batch delivery: Messages to Ibrahim go via Telegram cron jobs using no_agent=true, schedule="1m", deliver="telegram:7192708686". Scripts output message content via heredoc.

Messaging Pattern (Telegram to Ibrahim)

# Create script that outputs the message
cat > ~/.hermes/scripts/<name>.sh << 'SCRIPT'
#!/bin/bash
cat << 'EOF'
Message content here.
Keep it direct. No fluff.
EOF
SCRIPT

# Deliver via cron
hermes cron create \
  --name "<Name>" \
  --no-agent \
  --schedule "1m" \
  --repeat 1 \
  --deliver "telegram:7192708686" \
  --script "<name>.sh"

Brand Rules (Ibrahim)

  • Aspiration over shame — never use guilt-based messaging
  • "Everyone" not "guys" — ICP is men AND women
  • No em dashes — short, direct sentences
  • Lucide icons over emojis
  • Family > business, always
  • Country disqualification: Asia/Africa/South America = no giveaway win, but data captured

Value Delivery Pipeline (Giveaway Lead Nurture)

Reference: references/value-delivery-agent-spec.md — full operating spec.

Workflow rule: When Ibrahim shares a complex document or spec, STOP, read it, and confirm back your understanding in detail BEFORE pulling any data. He will green-light or correct. Only then execute.

Core principle: Generic confirms "free." Personalized screams "paid." Every asset must reference something the specific lead actually said or did. If copy-pasteable, it failed.

CRITICAL: Always Check WhatsApp Chat Before Drafting Assets

PITFALL — Drafting blind from transcripts: Never draft value assets (voice notes, quick wins, mini-plans) using only the triage transcript. Ibrahim may have already delivered value, had follow-up conversations, or disqualified the lead since the call. Drafting the wrong thing (e.g. suggesting walking when he already assigned walking) wastes Ibrahim's time.

Mandatory workflow before drafting any lead's assets:

  1. Pull the triage transcript (Gemini notes from Drive)
  2. Pull the WhatsApp chat (wacli messages list --chat <JID> --limit 30) — this is NOT optional
  3. Read the full conversation. Note: what's already been sent, what tasks are in progress, what identity work has been discussed, the lead's engagement level
  4. Only then draft assets that ESCALATE from where they actually are
  5. If the chat shows they're further along, skip basic quick wins — go to deeper value

Message Tone Rule: Value-Forward, Never Attacking

Ibrahim rejected messages that sounded "labelling and borderline attacking." Every message must make the lead think: "This is crazy value — nobody has ever shown me this."

  • Frame as revelation: "Here's something most people never figure out" / "Nobody's ever told you this"
  • Frame as insider access: They're getting knowledge others pay for
  • Never label the lead: Don't say "you know macros but don't execute" — reframe as "you've never seen your own pattern"
  • Never attack their situation: Don't say "your body deserves honesty" — reframe as "most people at your stage never learn this"
  • The test: Would a lead think "wow, serious value" or "ouch, he's calling me out"? Must be the former.

Role Boundary: You Organize, Ibrahim Sends

Ibrahim handles all message sending. Your job: compile lead data, draft assets, organize tracking sheets, flag what needs attention. Do NOT send messages unless he explicitly says "send it." Present drafts for approval. He records voice notes — you script them and flag which leads need one.

Lead Command Center (Google Sheets)

When Ibrahim asks for organized lead tracking, build a Google Sheet — not a text dump. He wants checkboxes.

Tab 1 — Lead Profiles: Name, Phone, Country, JID, Funnel Stage, Track, Call Date, Next Call, Pain (their words), Current Situation, Goal, Why Now, Already Sent, Next Step. Sorted by priority.

Tab 2 — Value Pipeline: Name, Track, each step as status columns (Voice Note Script/Sent, Quick Win Drafted/Sent/Done, Mini-Plan Drafted/Sent, Matched Proof, Track B Reframe, etc.).

Build workflow:

  1. Create via gws sheets spreadsheets create --json with frozenRowCount: 1 on both tabs
  2. Compile leads into Python dicts, verify every field
  3. Write all rows via gws sheets spreadsheets values update--params for URL params (spreadsheetId, range, valueInputOption), --json for values body
  4. Single-quote sheet names with spaces: 'Lead Profiles'!A1:N51
  5. Escape single quotes in body with '\\'' when shell-interpolating
  6. Verify by reading back with gws sheets +read

Reference: references/lead-roster.md for current lead database.

Two-Track System

  • Track A — The Creed (1:1): Clear pain, coachable, real urgency, capacity signals. Gets 4 escalating assets: Voice Note Script → 48hr Quick Win → Custom Mini-Plan → Matched Proof.
  • Track B — Health in Motion (low-ticket): Vague goals, price-sensitive, not ready for 1:1. Gets 2 assets: "Right Fit" Reframe + One Quick Win. Never a consolation prize — frame as "fit for where you are."

Per-Lead Extraction (5 things)

  1. PAIN: #1 pain in their own words (quote it)
  2. CURRENT: Where they are now
  3. FUTURE: Where they want to be
  4. WHY NOW: What makes change urgent
  5. ALREADY SENT: What the coach already sent (never repeat)

Asset Sequence (Track A)

A1 — Voice Note Script (60-90s, highest priority) A2 — 48-Hour Quick Win (noticeable result, doubles as buy-in test) A3 — Custom One-Page Mini-Plan (3 sections: reframe, first 2 weeks, what's beyond) A4 — Matched Proof (relevant client match, flag as [COACH TO SUPPLY] if unavailable)

Output Format (per lead)

LEAD: [name]
TRACK: [A | B]
ROUTING REASON: [1 line]
EXTRACTED: Pain / Current / Future / Why-now / Already-sent
--- DRAFTED ASSETS ---
[Each asset, fully drafted]
--- PERSONALIZATION BRIEF ---
[What was pulled, what coach must verify, confidence level]

Priority Order

  1. Leads with completed calls TODAY (most recent first)
  2. All 🟢 Completed Call leads (14 in Giveaway Notes)
  3. 🔜 Upcoming call leads (prep before their call)
  4. 🔴 No-reply leads (re-engagement)

Lead Qualification Workflow (Track A vs B)

When classifying a batch of giveaway leads, follow this sequence. Do NOT ask Ibrahim about each lead individually — present as a table and let him batch-correct.

  1. Pull all transcripts: gws drive files list with filter name contains "Notes by Gemini" and modifiedTime > <date>. Show ALL individual lead calls — never skip a name that might belong.
  2. Pull WhatsApp Giveaway contacts: wacli contacts search "Giveaway"
  3. Pull Giveaway Notes funnel doc: gws docs documents get on the GIVEAWAY NOTES doc to get funnel statuses
  4. Extract country from phone number — prefix matching (1=US/Canada, 44=UK, 971=UAE, 60=Malaysia, 216=Tunisia, 213=Algeria, 20=Egypt, 92=Pakistan, 964=Iraq, etc.)
  5. Cross-reference: transcript dates, funnel status (🟢 completed / 🟠 booked / 🔴 no reply / ⚫ out), WhatsApp contact presence, country
  6. Present as table with columns: Status | Lead | Country | Known Data | Track recommendation

Country routing signals (Ibrahim decides, not you):

  • UK/US/Canada/UAE/Switzerland/Singapore/Denmark/Australia → typically Track A
  • Tunisia/Algeria/Egypt/Pakistan/Iraq/Malaysia/Thailand/Kyrgyzstan → typically Track B
  • Turkey, South Africa, Mauritius → Ibrahim's call

Ibrahim's qualification signals (from transcripts):

  • Clear specific pain, coachability, urgency, financial capacity → Track A
  • Vague goals, "it was free", price-resistant, early journey → Track B
  • If Giveaway Notes doc says "low ticket lead" or "waffler" → flag in table
  • Ibrahim may mark leads unqualified directly — accept and move on, skip those leads immediately

Correction Pattern (Missed Calls/Transcripts)

When Ibrahim says "you missed calls":

  1. Re-run Drive search pulling ALL Gemini notes, not just filtered ones
  2. Print every individual lead call — never assume a lead doesn't belong in the funnel
  3. Cross-reference calendar events for the same date range to catch leads not in WhatsApp
  4. Re-present the FULL list, explicitly highlighting what was missed
  5. This is a high-frequency correction — Ibrahim catches these often. Be thorough the first time.

WhatsApp Chat Discovery (Chat Names ≠ Contact Names)

PITFALL: WhatsApp chat display names often differ from contact names in wacli. E.g., Imran's chat shows as "IA", Subina as "Sub", Ibraam as "IA". Searching by JID can return empty even when a chat exists.

Workflow:

  1. First try wacli messages list --chat <JID> --limit 10
  2. If empty, search by name: wacli messages search \"<first name>\" — this searches message content
  3. If found in search results, note the display name (e.g., chat "IA")
  4. Find the JID: wacli chats list | grep \"<display name>\"
  5. Then pull the full chat: wacli messages list --chat <found_jid> --limit 30

Infographic Creation (Branded Value Docs)

When Ibrahim asks for a branded infographic or value deliverable (not an AI PDF), use HTML → headless Chrome screenshot pipeline.

Design rules (from Ibrahim's reference image + rejected AI-slops):

  • Dark base (#0b0b0b), card (#0f0f0f), gold accent (#c4985a)
  • Text: headers #f5efe8, body #908070, subtle #605040
  • System fonts only (-apple-system, sans-serif) — Google Fonts fail in headless Chrome
  • 2x2 grid layout for pillar content. Clean dividers (#1c1c1c).
  • Max width 800px, border-radius 16px, 48px padding
  • Zero em dashes. Ibrahim's voice. No corporate language.
  • Steps section at bottom: doable alone but clearly limited without coaching
  • Closing: "This is the surface level. The full system is..."

Export:

google-chrome --headless --no-sandbox --disable-gpu \
  --screenshot=/root/preview.png --window-size=900,1200 \
  --virtual-time-budget=3000 file:///root/page.html
  • Screenshot ~150-170KB. ~14% content pixels is normal for dark theme.
  • Share via MEDIA: path or deploy HTML as live page.

Reference: references/infographic-template.html

FilePurpose
/root/.hermes/KRATOS-BRIEF.mdFull operating brief
/root/.hermes/KRATOS-DASHBOARD-PRD.mdDashboard PRD
/root/ibrahim/kratos-playbook.mdUser-facing playbook for Ibrahim
/root/ibrahim-giveaway-v2/Giveaway landing page (Next.js)
references/value-delivery-agent-spec.mdFull Value Delivery Agent operating spec
references/lead-roster.mdCurrent lead roster, country routing, closed/unqualified/out lists

Cognify Memory

Server: http://127.0.0.1:8799 Tenant: ibrahim Activation: source /root/cognify/.venv/bin/activate && set -a && . /root/cognify/.env && set +a Query: cognify --tenant ibrahim recall "<query>"

WhatsApp / WAI

See whatsapp-pipeline skill for full pipeline operations. wacli account: creed — JID: [email protected]

Google Auth

Cron: Google Token Auto-Refresh (every 1h) Script: /root/refresh_google_token.py Manual refresh: python3 /root/refresh_google_token.py Verify: gws drive files list --params '{"pageSize": 3}'

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.