Style headings and quote

This commit is contained in:
Firehose Bot 2026-03-24 19:51:08 +00:00
parent e2caed41b9
commit 9500c309d1
3 changed files with 6 additions and 66 deletions

View File

@ -187,14 +187,16 @@ body { font-family: 'Source Sans 3', sans-serif; }
line-height: 1.75;
}
.blogex-post-body h2 { font-size: 1.5rem; font-weight: 600; margin-top: 2rem; margin-bottom: 0.5rem; }
.blogex-post-body h3 { font-size: 1.25rem; font-weight: 600; margin-top: 1.5rem; margin-bottom: 0.5rem; }
.blogex-post-body h1 { font-family: 'Fraunces', serif; font-size: 1.75rem; font-weight: 700; margin-top: 2.5rem; margin-bottom: 0.5rem; }
.blogex-post-body h2 { font-family: 'Fraunces', serif; font-size: 1.5rem; font-weight: 600; margin-top: 2rem; margin-bottom: 0.5rem; }
.blogex-post-body h3 { font-family: 'Fraunces', serif; font-size: 1.25rem; font-weight: 600; margin-top: 1.5rem; margin-bottom: 0.5rem; }
.blogex-post-body p { margin-top: 1rem; }
.blogex-post-body ul { list-style: disc; padding-left: 1.5rem; margin-top: 0.5rem; }
.blogex-post-body ol { list-style: decimal; padding-left: 1.5rem; margin-top: 0.5rem; }
.blogex-post-body pre { background: oklch(var(--color-base-200)); padding: 1rem; border-radius: 0.5rem; overflow-x: auto; margin-top: 1rem; }
.blogex-post-body code { font-size: 0.875em; }
.blogex-post-body a { color: oklch(var(--color-primary)); text-decoration: underline; }
.blogex-post-body blockquote { border-left: 3px solid oklch(var(--color-primary)); padding-left: 1rem; margin-top: 1rem; margin-bottom: 1rem; font-style: italic; opacity: 0.85; }
.blogex-tag-list {
display: flex;

View File

@ -26,9 +26,8 @@ I like "The Art of Action" - detailed, yet practical. So I had a chat with a fro
This was my initial prompt. Full chat transcript in the Further Reading section.
#+begin_quote
https://www.chrismdp.com/stop-prompting-start-briefing/ suggests an art of action style backbriefing loop for daily work. I would like to use a local model with pi, the shitty coding agent, instead of claude code. I have trouble publishing blogposts. I have many drafts, marked as CandidateBlogPost in an org-roam directory. I wonder if I could make some kind of pi extension or skill that finds candidate blogposts, helps identify ones that are almost finished, with a suggesion on what to do next for the top 3 almost finished, and suggestions for others on what to add. Probably prioritize recency. I could run that as a cron job in the morning, and create a new daily entry (I use daily entries for org-roam) to get me starte.d Goal would be not to have AI write my posts, but help me finish in pomodori instead of days.
#+end_quote
> https://www.chrismdp.com/stop-prompting-start-briefing/ suggests an art of action style backbriefing loop for daily work. I would like to use a local model with pi, the shitty coding agent, instead of claude code. I have trouble publishing blogposts. I have many drafts, marked as CandidateBlogPost in an org-roam directory. I wonder if I could make some kind of pi extension or skill that finds candidate blogposts, helps identify ones that are almost finished, with a suggesion on what to do next for the top 3 almost finished, and suggestions for others on what to add. Probably prioritize recency. I could run that as a cron job in the morning, and create a new daily entry (I use daily entries for org-roam) to get me starte.d Goal would be not to have AI write my posts, but help me finish in pomodori instead of days.
What I found interesting was that, maybe because I mentioned the links were in an sqlite database, claude desktop spontaneously suggested to create a bash script as part of the skill. I used to have a meta-skill to separate the deterministic parts of agent skills into scripts, but that does not seem to be necessary anymore. I prune my agent setups continuously, only keeping what is needed.

View File

@ -1,61 +0,0 @@
# Refactoring Plan for Firehose Blog Controller Tests
## Context
Based on context.md, we have a Phoenix blog controller with repetitive validation tests that need refactoring.
## Goals
1. Extract test helpers to reduce code duplication
2. Standardize test naming conventions
3. Reorganize tests to follow defensive programming flow
4. Add missing negative test coverage
5. Create separate contexts for different refactorings
## Recommended Planner Agents
### 1. TestHelperExtractor Agent
**Purpose**: Handle Smell 1 (Repetitive Validation Tests) and Smell 4 (Redundant Layout Assertions)
**Tasks**:
- Extract page validation test logic into `test_page_fallback/2` helper
- Create `assert_has_app_layout/1` helper for layout assertions
- Move helpers to support module or test case
**Context Isolation**: This can run in a separate test context without affecting controller logic.
### 2. TestOrganizer Agent
**Purpose**: Handle Smell 5 (Test Order) and Smell 3 (Inconsistent Naming)
**Tasks**:
- Reorder test blocks: validation first, then success cases, then edge cases
- Standardize all test descriptions to follow pattern: "GET /blog/:type/:slug returns [result]"
- Rename describe blocks to follow semantic order
**Context Isolation**: Pure test organization, no production code changes.
### 3. CoverageExpander Agent
**Purpose**: Handle Smell 2 (Missing Negative Tests) and Smell 8 (Edge Cases)
**Tasks**:
- Add test for unknown blog_id (`/blog/invalid`)
- Add test for empty page parameter (`?page=`)
- Add test for very large page numbers
- Add test for invalid blog halt behavior (Smell 6)
**Context Isolation**: Adds new tests without modifying existing logic.
### 4. ResponseHelperCreator Agent
**Purpose**: Handle Smell 7 (Mixed Response Types)
**Tasks**:
- Create `assert_html/2` and `assert_json/2` helpers
- Ensure proper content-type verification
- Update existing tests to use new helpers
## Execution Strategy
Run each agent in isolated contexts:
1. TestHelperExtractor → creates helper functions
2. ResponseHelperCreator → builds response assertions
3. TestOrganizer → reorganizes existing structure
4. CoverageExpander → adds new test cases
This keeps the main thread clean and allows focused changes per agent.