Initial skills documentation — 25 categories, all SKILL.md + references + scripts

This commit is contained in:
root
2026-07-15 17:42:20 -04:00
commit 1b4fcd4427
976 changed files with 188344 additions and 0 deletions
@@ -0,0 +1,14 @@
# Consolidated Signature Reference
The master reference for Sho'Nuff's email signature lives at:
`/root/.hermes/references/shonuff-signature.py`
This module exports:
- `TITLES` (list) — 13 randomized title options
- `CLOSINGS` (list) — 8 randomized closing quote options
- `build_signature_block()` — returns full HTML signature with random title + closing
The badge image is at `https://core.itpropartner.com/shonuff-signature.png`.
Must be a valid PNG (not a JPEG with .png extension).
Do NOT use the legacy files `shonuff-titles.py` or `shonuff-closings.py` — they are superseded.
@@ -0,0 +1,38 @@
# HTML Email Rendering Order
## CRITICAL: Regex substitution order
When converting Markdown email body to HTML, the order of operations matters:
**WRONG (produces literal `## Title` in HTML):**
1. Convert `\n` to `<br>` FIRST
2. Then try to match `^## (.+)$` — FAILS because lines are now `<br>`-delimited
**RIGHT (renders styled `<h2>` in HTML):**
1. Regex-substitute headers FIRST (`^## (.+)$``<h2>\1</h2>` with `re.MULTILINE`)
2. Regex-substitute horizontal rules (`^---$``<hr>`)
3. Convert bold (`**text**``<strong>`)
4. Convert newlines LAST (`\n``<br>`)
```python
import re
html = body
html = re.sub(r'^## (.+)$', r'<h2 style="...">\1</h2>', html, flags=re.MULTILINE)
html = re.sub(r'^### (.+)$', r'<h3 style="...">\1</h3>', html, flags=re.MULTILINE)
html = re.sub(r'^---$', r'<hr style="...">', html, flags=re.MULTILINE)
html = re.sub(r'\*\*(.+?)\*\*', r'<strong>\1</strong>', html)
html = html.replace('\n', '<br>')
```
## Always use multipart/alternative
- Plain text part first (keeps raw markdown — degrades gracefully)
- HTML part second (email clients render the last part they understand)
- Wrapped in full `<!DOCTYPE html>` with inline `<style>` block
## Common failure modes
- **Literal `##` in output** — newlines converted to `<br>` before header regex. Fix: reorder steps.
- **Raw `---` visible** — `^---$` regex didn't match because line is not at line start after `<br>` conversion.
- **`**text**` visible** — bold regex ran before or without proper newline handling.
@@ -0,0 +1,52 @@
# HTML Email Table Patterns
When sending structured/tabular data by email (fee schedules, pricing, comparisons, timelines):
## CRITICAL: Never regex-convert markdown tables
Email clients (Gmail, Outlook, Yahoo) strip `<style>` blocks and misrender complex markdown-to-HTML conversions. **Build tables by hand in Python string interpolation.**
## Correct pattern (hand-crafted HTML)
```python
rows = [
("Tier 1", "$3,300 (22%)", "$11,700", "2-14 days"),
("Tier 2", "$4,500 (30%)", "$10,500", "15-30 days"),
]
html = '<table cellpadding="6" cellspacing="0" border="0" style="font-size:13px;color:#333;">'
html += '<tr style="background:#f5f5f5;"><td style="border:1px solid #ddd;padding:6px 12px;"><b>Scenario</b></td>... </tr>'
for r in rows:
html += f'<tr><td style="border:1px solid #ddd;padding:6px 12px;">{r[0]}</td>...'
html += '</table>'
```
## Cell styling
| Attribute | Value |
|-----------|-------|
| `cellpadding` | `"6"` |
| `cellspacing` | `"0"` |
| `border` | `"0"` |
| Individual cell style | `border:1px solid #ddd;padding:6px 12px;` |
| Header row | `<tr style="background:#f5f5f5;">` |
| Merged cells | `rowspan="2"` with `vertical-align:middle` |
## Multi-part message construction
```python
msg = MIMEMultipart('alternative')
plain = MIMEText(markdown_text, 'plain')
html_part = MIMEText(full_html_doc, 'html')
msg.attach(plain) # plain text first
msg.attach(html_part) # HTML second (client picks last understood)
```
## Common failure: misplaced closing quote
The Sho'Nuff closing quote goes between the last body paragraph and the signature `<hr>` divider, NOT inside the signature table block. Pattern:
```python
full_html = body_content + f'<p><em>{closing}</em></p>' + sig_html
```
Not `body_content + sig_html_with_quote_buried_inside`.
@@ -0,0 +1,46 @@
# Sho'Nuff Email Signature — Canonical Format
## Established Jul 7, 2026
### Order
1. Closing quote
2. Red divider bar
3. Signature block (badge + name/title/company/email)
### Closing quote
Randomly selected from `/root/.hermes/references/shonuff-closings.py` (8 Sho'Nuff quotes from The Last Dragon).
### Red divider
```html
<hr style="border:none;height:2px;width:40px;background:#cc0000;margin:0 0 12px 0;border-radius:2px;">
```
### Signature block (table layout)
```html
<table cellpadding="0" cellspacing="0" border="0" style="font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#2c2c2c;font-size:13px;line-height:1.6;">
<tr>
<td style="padding-right:14px;vertical-align:middle;width:80px;">
<img src="..." alt="SB" width="72" height="auto" style="border-radius:50%;display:block;max-width:72px;">
</td>
<td style="vertical-align:middle;">
<div style="font-size:15px;font-weight:700;color:#1a1a1a;letter-spacing:-0.2px;">Sho'Nuff Brown</div>
<div style="font-size:12px;color:#888888;margin-bottom:1px;">{title}</div>
<div style="font-size:12px;color:#aaaaaa;margin-bottom:6px;">iAmGMB</div>
<table cellpadding="0" cellspacing="0" border="0" style="font-size:12px;color:#999999;line-height:1.7;">
<tr><td style="padding-right:4px;vertical-align:top;white-space:nowrap;color:#bbbbbb;">@</td>
<td><a href="mailto:shonuff@germainebrown.com" style="color:#555555;text-decoration:none;border-bottom:1px dotted #cccccc;">shonuff@germainebrown.com</a></td></tr>
</table>
</td>
</tr>
</table>
```
### Key formatting rules
- FROM address: shonuff@germainebrown.com
- Title: random from 13 options in shonuff-titles.py
- Closing: random from 8 options in shonuff-closings.py
- Company: "iAmGMB" (placeholder — may change)
- Badge image: `https://core.itpropartner.com/shonuff-signature.png`
- For emails: embed as base64 JPEG for maximum Gmail compatibility
- Local copy at /var/www/static/shonuff-signature.png
- Reference files at /root/.hermes/references/
- NEVER use send-shonuff.py for structured HTML emails — build HTML manually
@@ -0,0 +1,35 @@
# Welcome Email Pattern
When drafting a welcome/onboarding email for a new Hermes user, **first load the `email-style-guide` skill** for the full formatting rules. The welcome email follows the Gemini-derived style rules.
## Formatting requirements
- `## Title` + `---` divider (per style guide)
- `###` section headers only -- no H4+
- **Bold lead-ins** for paragraph context
- **Ordered lists** (1. 2. 3.) for accomplishments -- NOT bullet dashes, NOT em dashes
- **Unordered lists** (hyphens) for simple groupings
- Hyphens not em dashes, full words not contractions, "example:" not "e.g."
- No raw URLs -- all links in `[Action Description](URL)` format
- H2 rendered as `<h2>` in HTML, H3 as `<h3>`, `---` as the red accent `<hr>`
## Section structure (in order)
1. **Heading + divider:** `## Welcome to Hermes, [Name].` then `---`
2. **What Hermes Is:** paragraph explaining Hermes as a personal AI agent on a private server
3. **What We've Built:** ordered list (1. 2. 3.) of real accomplishments the main user has achieved with their agent. Each item: bold lead-in + hyphen + description. Example: "1. **Task name** - What was accomplished."
4. **Email:** two bold lead-in paragraphs. First asks if they want their email set up ("Yahoo access."). Second states the permission policy: Sho'Nuff will not act without explicit approval.
5. **Backup & Safety:** unordered list (hyphens) of backup layers: live sync, daily backup, provider snapshots, standby recovery, model fallback.
6. **Getting Started with Telegram:** three numbered steps. Step 1 = create bot via BotFather. Step 2 = get user ID via userinfobot. Step 3 = reply with token + ID + email decision.
7. **Commands:** unordered list of useful Hermes commands (/queue, /retry, /undo, /clear, /title, /goal, /compress).
8. **Server Details:** minimal -- primary model (provided by main user) and backup model (built in). No IPs, no SSH, no local model address.
9. **Close:** Sho'Nuff signature with random closing quote (no "Thanks" or "Regards").
## Delivery workflow
1. Draft the full email with body + signature
2. Send draft to Germaine (g@germainebrown.com) for approval, BCC him
3. After approval, send to the recipient (e.g. browo955@yahoo.com), BCC Germaine
4. From: `shonuff@germainebrown.com`
The style guide (`email-style-guide` skill) has the definitive rules for HTML rendering, closing quotes, rotating titles, and signature anatomy. Load it before composing the email.