Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .agents/skills/blog-post-pipeline/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Blog Post Pipeline Skill
#
# Reusable 9-phase autonomous content pipeline for Hugo-based blogs.
# This is a PRODUCER skill — published by jetthoughts/site for other repos.

## Overview
End-to-end pipeline from topic selection to published post with automated
quality gates, multi-critic review, and cover image generation.

## Phases
1. Pick topic from content plan
2. Read context (ICP, voice guide, brief)
3. Research (5+ authoritative sources)
4. Draft with voice enforcement + cadence quotas
5. Review loop (3 parallel critic agents: founder, SEO/slop, editor)
5c. Cold-eyes gate (9 explicit checks)
6. Cover image (6-slot HTML → chrome-devtools render → lanczos downsample)
7. Validate (Hugo build + Chrome DevTools)
8. Update content plan
9. Commit

## Dependencies
### MCP Servers
- claude-context — semantic codebase search for existing posts
- brave-search / searxng — web research
- chrome-devtools — cover image rendering, validation

### Other Skills
- content-voice-enforcement — voice guide compliance
- cover-image-generation — 6-slot layout rendering

### Agents
- content-creator — drafting
- seo-specialist — SEO compliance
- reviewer — quality gates

## Trigger
@.apm/prompts/blog-pipeline.prompt.md

## Full Documentation
docs/workflows/blog-pipeline.md
37 changes: 37 additions & 0 deletions .agents/skills/content-voice-enforcement/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Content Voice Enforcement Skill
#
# Reusable voice enforcement for JetThoughts content — blog posts, LinkedIn,
# and marketing copy targeting the ICP-E audience (non-technical founder
# burned by a devshop).

## Overview
Enforces the JetThoughts voice guide, banned word list, structural patterns,
cadence quotas, and quality tests on all content.

## Voice Guide
See .apm/instructions/voice-guide.instructions.md for the full compiled extract.
Canonical source: docs/90-99-content-strategy/strategy-analysis/90.11-voice-guide.md

## Two Voices
- **Founder posts**: Rob Walling directness + Rand Fishkin vulnerability
- **Tech posts**: Thoughtbot style (tension-first, opinionated, code as evidence)

## Quality Tests (run on every paragraph)
- **"Who" test**: who is doing what?
- **"Show" test**: did I show the mechanic or just label it?
- **"Coffee" test**: would a tired founder talk like this at a bar?
- **"90/10" test**: ≥90% educational, ≤10% promotional
- **"Trade-off" test**: acknowledged what the solution fails to do?
- **"Practitioner" test**: replace generalizations with specific incidents

## Slop Detector + Cold-Eyes Gate
- Run slop-detector on all drafts
- Run humanizer pass if flagged
- Cold-eyes gate (9 checks) mandatory before publishing
- See docs/workflows/blog-pipeline.md STEP 5a + STEP 5c

## Full Documentation
.apm/instructions/voice-guide.instructions.md
.apm/instructions/icp-target.instructions.md
docs/90-99-content-strategy/strategy-analysis/90.11-voice-guide.md
docs/90-99-content-strategy/strategy-analysis/90.10-icp-primary-website-target.md
32 changes: 32 additions & 0 deletions .agents/skills/cover-image-generation/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Cover Image Generation Skill
#
# Reusable skill for generating blog post cover images using the
# JetVelocity 6-slot design system.

## Overview
Generates 2400×1260 cover images for blog posts using a 6-slot HTML layout
rendered via chrome-devtools.

## Design System
- JetVelocity: obsidian dark, Ruby red (#cc342d), neon purple (#a855f7)
- Font: Inter (headlines), JetBrains Mono (code/metrics)
- 6-slot grid layout — canonical spec in .stitch/design.md

## Workflow
1. Read .stitch/design.md for the 6-slot layout specification
2. Duplicate an existing HTML from .stitch/designs/
3. Change ONLY: title, category, pill, 3 headline lines, 3 chip labels+values, status text
4. Render: chrome-devtools new_page → emulate viewport=2400x1260x2 → wait 2s → take_screenshot
5. Downsample: magick {screenshot} -filter Lanczos -resize 2400x1260 -sampling-factor 4:4:4 -strip -quality 95 content/blog/<slug>/cover.png
6. Set frontmatter: cover_image: cover.png, cover_image_alt: descriptive alt text

## Dependencies
### MCP
- chrome-devtools — rendering

### System
- ImageMagick (magick CLI) — downsampling

## Full Documentation
.stitch/design.md (canonical 6-slot spec)
docs/workflows/cover-images.md
49 changes: 49 additions & 0 deletions .agents/skills/css-bem-migration/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# CSS BEM Migration Skill
#
# Reusable methodology for migrating from FL-Builder (Beaver Builder)
# auto-generated classes to BEM component architecture.

## Overview
TDD-driven FL-node extraction: add BEM classes → verify visual fidelity →
remove FL-nodes → retest. Micro-commits on every green test.

## Pattern
1. RED: Identify FL-node CSS dependencies
2. GREEN: Add BEM classes to HTML, consolidate CSS
3. REFACTOR: Remove duplicate FL-node CSS, cleanup
4. TEST: `env PRECOMPILED_ASSETS=false bin/rake test:critical`
5. COMMIT: Micro-commit on green tests

## BEM Component Structure
```html
<!-- Before (FL-node) -->
<div class="fl-col fl-node-yx43bujcaiqn hover-box">

<!-- Transition (BEM + FL retention) -->
<div class="fl-col fl-col-small hover-box c-feature-card">

<!-- Final (Pure BEM) -->
<div class="c-feature-card c-feature-card--variant">
```

## CSS Consolidation Pattern
```css
/* Before: 3 separate FL-node selectors */
.fl-node-yx43bujcaiqn { width: 32%; margin-right: 30px; }
.fl-node-ktz4ipj39vd6 { width: 36%; margin: 0 30px; }
.fl-node-m39uvorzy5g8 { width: 32%; margin-left: 30px; }

/* After: DRY BEM pattern */
.c-feature-card { width: 32%; margin-right: 30px; }
.c-feature-card--second { width: 36%; margin: 0 30px; }
.c-feature-card--third { margin-right: 0; }
```

## Constraints
- Never modify vendor files or dynamic templates
- Preserve cascade order: Critical → Layout → Component → Theme → Footer
- Run BOTH bin/test (macOS) AND bin/dtest (Linux Docker) before commit

## Full Documentation
docs/workflows/css-consolidation.md
docs/projects/2509-css-migration/css-loading-order-analysis.md
41 changes: 41 additions & 0 deletions .agents/skills/visual-regression-testing/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Visual Regression Testing Skill
#
# Reusable visual regression testing protocol for Hugo static sites.

## Overview
Screenshot comparison-based visual testing using capybara-screenshot-diff.
Blocks commits on any visual regression during refactoring.

## Protocol
1. Capture baseline screenshots BEFORE changes
2. Make CSS/HTML changes
3. Capture comparison screenshots AFTER changes
4. Compare with tolerance:
- 0.0 for refactoring (zero visual changes)
- ≤0.03 for new features only
5. Block commit on any difference > tolerance

## Test Pattern
```ruby
def test_hero_section_visual_consistency
visit "/services/fractional-cto/"
screenshot_path = take_screenshot("fractional_cto_hero")
assert_visual_match(screenshot_path, "baseline/fractional_cto_hero.png",
tolerance: 0.03)
end
```

## Prohibited Patterns (ZERO TOLERANCE)
- CSS class existence testing
- HTML structure counting
- Framework-generated selector usage
- Method existence testing

## Commands
- `bin/test` — visual regression (macOS)
- `bin/dtest` — visual regression (Linux/Docker, CI parity)
- BOTH must pass before commit for HTML/CSS changes

## Full Documentation
.apm/instructions/tdd-enforcement.instructions.md
docs/60.03-tdd-quality-enforcement.md
18 changes: 18 additions & 0 deletions .apm/agents/build-monitor.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# build-monitor.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/build-monitor.md

## Role
Build monitoring agent. Validates Hugo builds, CI/CD pipelines, and performance.

## Instructions
- @.apm/instructions/project-rules.instructions.md

## Gates
- `bin/hugo-build` must pass (zero errors)
- Chrome DevTools: zero console errors, zero 404s
- `bin/rake test:critical` green on every commit

## CI/CD
- GitHub Actions → GitHub Pages
- Workflows: .github/workflows/publish.yml, test.yml, sync-and-publish.yml
20 changes: 20 additions & 0 deletions .apm/agents/content/content-creator.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# content-creator.agent.md — Thin Wrapper
#
# Canonical instructions: .apm/instructions/voice-guide.instructions.md
# Full agent definitions: .claude/agents/content-creator.md

## Role
Content creation agent. Writes blog posts, LinkedIn posts, and marketing copy.

## Instructions
- @.apm/instructions/voice-guide.instructions.md
- @.apm/instructions/icp-target.instructions.md
- @docs/workflows/blog-pipeline.md
- @docs/workflows/linkedin-post-pipeline.md

## Constraints
- Zero generic AI language — run slop-detector + humanizer pass
- Cold-eyes gate (9 checks) mandatory before publishing
- Every sentence needs a person doing something
- Banned words: unlock, harness, leverage, dive in, game-changer, etc.
- Use `-` not `—` for all dashes
10 changes: 10 additions & 0 deletions .apm/agents/content/content-marketer.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# content-marketer.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/content/content-marketer.md

## Role
Content marketing agent. Plans content calendars, researches topics, audits SEO performance.

## Instructions
- @.apm/instructions/icp-target.instructions.md
- @docs/projects/2510-seo-content-strategy/20-29-strategy/20.07-content-plan-icp-e-q2-2026.md
21 changes: 21 additions & 0 deletions .apm/agents/content/seo-specialist.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# seo-specialist.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/seo-specialist.md

## Role
SEO optimization agent. Handles keyword research, meta tags, schema, and content optimization.

## Instructions
- @docs/90-99-content-strategy/seo-optimization/
- @docs/90-99-content-strategy/strategy-analysis/

## Key Files
- `themes/beaver/layouts/partials/seo/enhanced-meta-tags.html` — SEO/og:image template
- `themes/beaver/layouts/partials/seo/article-schema.html` — JSON-LD schema
- `config/_default/hugo.toml` — Hugo config (permalinks, sitemap)

## Constraints
- Title ≤45 chars, description 150-160 chars
- Primary keyword in first 100 words
- 4+ internal links, 5+ external citations
- No keyword stuffing
10 changes: 10 additions & 0 deletions .apm/agents/content/tutorial-engineer.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# tutorial-engineer.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/content/tutorial-engineer.md

## Role
Tutorial engineer. Creates step-by-step how-to content, validates code examples, and ensures copy-paste-ability.

## Instructions
- @.apm/instructions/voice-guide.instructions.md
- @.apm/instructions/icp-target.instructions.md
15 changes: 15 additions & 0 deletions .apm/agents/core/analyst.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# analyst.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/core/analyst.md

## Role
Analysis agent. Performs research, root-cause analysis, and pattern discovery.

## Instructions
- @.apm/instructions/project-rules.instructions.md
- @.apm/prompts/research.prompt.md

## Research Protocol (MANDATORY)
1. claude-context search FIRST
2. Verify with rg/ls
3. Read docs/workflows/BASE_HANDBOOK.md
26 changes: 26 additions & 0 deletions .apm/agents/core/coder.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# coder.agent.md — Thin Wrapper
#
# Canonical instructions: .apm/instructions/project-rules.instructions.md
# Full agent definitions: .claude/agents/core/coder.md
#
# APM compiles this agent for all target tools. The canonical behavior
# lives in the instruction files; this file pins the agent's role + pointers.

## Role
Primary implementation agent. Writes code following TDD cycle (RED → GREEN → REFACTOR).

## Instructions
- @.apm/instructions/project-rules.instructions.md
- @.apm/instructions/tdd-enforcement.instructions.md

## For CSS/HTML work
- @.apm/instructions/css-consolidation.instructions.md

## For Ruby work
- @docs/workflows/ruby.md

## Constraints
- Behavior-focused tests ONLY — reject structural/CSS class tests
- Run `bin/rake test:critical` after every micro-change
- Never use `npm` — use `bun`
- Never create ad hoc `*.sh` test scripts
9 changes: 9 additions & 0 deletions .apm/agents/core/planner.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# planner.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/core/planner.md

## Role
Planning agent. Breaks down complex tasks into ordered steps, writes todo lists, and sequences work.

## Instructions
- @.apm/instructions/project-rules.instructions.md
10 changes: 10 additions & 0 deletions .apm/agents/core/researcher.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# researcher.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/core/researcher.md

## Role
Research agent. Discovers existing patterns, framework docs, and best practices before implementation.

## Instructions
- @.apm/instructions/project-rules.instructions.md
- @.apm/prompts/research.prompt.md
17 changes: 17 additions & 0 deletions .apm/agents/core/reviewer.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# reviewer.agent.md — Thin Wrapper
#
# Canonical instructions: .apm/instructions/project-rules.instructions.md
# Full agent definitions: .claude/agents/core/reviewer.md

## Role
Code review agent. Validates correctness, adherence to project rules, and TDD compliance.

## Instructions
- @.apm/instructions/project-rules.instructions.md
- @.apm/instructions/tdd-enforcement.instructions.md

## Gates
- Zero structural test patterns (CSS class testing, HTML counting)
- Visual regression tolerance verified
- Four-eyes principle enforced for all critical changes
- Feature branch + PR pattern for HTML/CSS/template changes
15 changes: 15 additions & 0 deletions .apm/agents/core/screenshot-guardian.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# screenshot-guardian.agent.md — Thin Wrapper
#
# Full agent definitions: .claude/agents/core/screenshot-guardian.md

## Role
Visual regression guardian. Blocking agent that prevents test masking (updating baselines during failures).

## Instructions
- @.apm/instructions/tdd-enforcement.instructions.md
- @.claude/hooks/pre-commit-screenshot-validation.md

## Gates
- ZERO tolerance: screenshot updates during visual test failures
- Tolerance: 0.0 for refactors, ≤0.03 for new features
- Both bin/test AND bin/dtest must pass before commit
Loading
Loading