From 2e4e51861d60a01f1c315d14aa689571db4ac8ee Mon Sep 17 00:00:00 2001 From: Fabian Montero Date: Wed, 25 Mar 2026 19:50:35 -0600 Subject: [PATCH] add ai stuff --- .claude/skills/keynote-publisher/SKILL.md | 117 ++++++++++++++++++++++ CLAUDE.md | 24 +++++ 2 files changed, 141 insertions(+) create mode 100644 .claude/skills/keynote-publisher/SKILL.md create mode 100644 CLAUDE.md diff --git a/.claude/skills/keynote-publisher/SKILL.md b/.claude/skills/keynote-publisher/SKILL.md new file mode 100644 index 0000000..02d1b65 --- /dev/null +++ b/.claude/skills/keynote-publisher/SKILL.md @@ -0,0 +1,117 @@ +--- +name: keynote-publisher +description: Clean up and format markdown keynote files for blog publication on a Zola static site. Use this skill whenever the user uploads or references a markdown file that needs to be prepared for their blog, mentions "keynote", "publish", "blog post", "clean up for the blog", "posixlycorrect", or talks about preparing Triforce Strategies LLC content for publication. Also trigger when the user asks to convert informal notes or presentations into blog-ready markdown, or mentions formatting something in Axios style. +--- + +# Keynote Publisher + +Prepare informal keynote markdown files from a finance discussion group for publication on a Zola-powered blog. The keynotes are casual, often bilingual (English/Spanish "spanglish"), and may contain rough language. The goal is to make them blog-ready while preserving voice and personality. + +## Workflow + +1. Read the input markdown file. +2. Ask the user for the **author name** if not already provided in conversation. +3. Apply the editorial filters (see below). +4. Generate Zola-compatible TOML frontmatter. +5. Append the bilingual disclaimer. +6. Write the final markdown to `/mnt/user-data/outputs/` and present it. + +## Editorial Filters + +Apply these in order. The guiding principle is: clean up for publication, but don't sanitize the voice. + +### 1. Offensive Language + +Remove slurs, hate speech, and derogatory language targeting race, ethnicity, gender, sexual orientation, disability, or religion. Replace removed words/phrases with something that preserves the sentence's meaning without the slur. + +Cursing is fine. Words like "damn", "shit", "hell", "ass", "fuck", "crap", "bullshit" and their derivatives stay. The line is: profanity for emphasis or humor = keep; language that degrades a group of people = remove. + +### 2. Preserve Voice + +Do NOT normalize, formalize, or "clean up" the writing style. Specifically: + +- **Spanglish stays.** Mixed English/Spanish sentences, code-switching mid-paragraph, Spanish slang — all of it stays exactly as written. Do not translate, do not flag, do not "fix." +- **Humor stays.** Inside jokes, sarcasm, irreverent commentary — keep it. +- **Informal tone stays.** Sentence fragments, casual phrasing, conversational asides — keep it. +- **Jargon stays.** Finance bro talk, memes, internet slang — keep it if the author wrote it. + +If something reads like the author's voice, it stays. Your job is editor, not ghostwriter. + +### 3. Axios-Style Formatting + +Restructure the content to feel like an Axios article. This means: + +- **Short paragraphs.** 2-4 sentences max. Break up walls of text. +- **Strong opening.** The first sentence should hook the reader — state the key insight or the "so what" immediately. +- **Punchy rhythm.** Vary sentence length. Short sentences for impact. Longer ones for nuance. +- **Clear structure.** Use `##` headers to break the post into logical sections. Each section should be scannable. +- **No filler.** Cut redundant sentences, throat-clearing ("In this post we will discuss..."), and padding. Get to the point. +- **Lists are fine** when the content is naturally a list (e.g., comparing investment options). Don't force everything into bullets. + +Do NOT insert literal Axios markers like "Why it matters:" or "The bottom line:" — adopt the feel, not the formula. + +### 4. Light Copy Editing + +Fix obvious typos, broken markdown syntax, and grammatical errors that would look like mistakes in a published post. Do not rewrite sentences for style — only fix things that are clearly unintentional. + +If a sentence is grammatically "wrong" but reads like intentional casual speech (e.g., "ain't nobody got time for that"), leave it. + +### 5. Tables + +Preserve data tables exactly as written. Tables are often the core content of a keynote — do not restructure them into prose, summarize them, or truncate rows. Fix only broken markdown table syntax. + +### 6. Source Citations + +Keep all source citations (prospectus references, page numbers, links, footnotes). These back up the content's credibility. If the original uses brackets like `[BN ETF 500 Prospectus (página 22 of 43)]`, keep them in whatever format the author used. + +### 7. Empty Sections + +Drop sections that have a header but no content. After the output, inform the user which sections were dropped and why, so they can decide whether to add content or leave them out. + +## Frontmatter + +Generate Zola-compatible TOML frontmatter. Use this exact structure: + +```toml ++++ +title = "Post Title Here" +date = YYYY-MM-DD +description = "A one-sentence summary of the post." + +[taxonomies] +tags = ["tag1", "tag2", "tag3"] + +[extra] +author = "Author Name" ++++ +``` + +Rules for each field: + +- **title**: Derive from the content. Make it concise and engaging — Axios-style headline. If the original markdown has a `# Title`, use it as a starting point but punch it up if it's bland. +- **date**: Use today's date unless the user specifies otherwise. Format: YYYY-MM-DD. +- **description**: One sentence summarizing the post's key takeaway. This is used for SEO/social previews. +- **tags**: Derive 3-5 tags by reading the full article and identifying its core topics. Do NOT guess from the title alone — read the body content first. Apply these normalization rules: + - All lowercase, hyphenated slugs (e.g., `technical-analysis`, not `Technical Analysis` or `technical_analysis`). + - Use the **singular** form unless the plural is the established term (e.g., `etfs` is fine because nobody says "etf"; `stock` not `stocks`). + - Use the **most common short name** for a concept: `etfs` not `exchange-traded-funds`, `macro` not `macroeconomics`, `ta` not `technical-analysis` — unless the short form is ambiguous. + - Prefer **topic-level tags** over entity-level: `costa-rica` is fine (geographic scope), but don't tag individual ticker symbols or fund names. + - Collapse synonyms: pick one canonical form and stick to it across posts. Examples: `personal-finance` (not `personal-finances` or `finanzas-personales`), `investing` (not `investment`), `fixed-income` (not `bonds` unless the post is specifically about bond mechanics). + - Prefer spanish-language tags. English language tags are OK when the concept is has no clean or commonly used Spanish equivalent (e.g., `etf`, `stock`). + - Look for other tags already used in articles in @content/triforce-strategies and try to re-use as many as possible. Create new tags only if new topics arise. Prompt before creating a new tag. + - Never include meta-tags like `blog`, `keynote`, `post`, `article`, or `triforce`. +- **author**: Use the name provided by the user. + +## Disclaimer + +Always append this block at the very end of the post, after all content: + +```markdown +--- + +> **Disclaimer:** This content is for informational and educational purposes only. The author is not a financial advisor, and none of this constitutes financial advice. +> +> **Descargo de responsabilidad:** Este contenido es únicamente con fines informativos y educativos. El autor no es asesor financiero, y nada de esto constituye asesoría financiera. +``` + +The horizontal rule (`---`) separates the disclaimer from the post body. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..0c3c3b2 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,24 @@ +# posixlycorrect.com + +Personal homepage built with Zola. + +## Build +- `zola build` (direct) +- `zola serve` (local dev server) + +## Project Structure +- `content/` — Markdown content + - `blog/` — Blog posts + - `lib/` — Library/reference articles + - `triforce_strategies/` — Triforce Strategies LLC content +- `themes/tabi-lean/` — Theme (git subtree, do not edit directly) +- `static/` — Static assets +- `config.toml` — Site configuration + +## Content Conventions +- Frontmatter: TOML (`+++` delimiters) +- Section indices: `_index.md` +- Internal links: `@/path/to/file.md` + +## Commit Style +`type: description` (e.g., `blog: add post title`)