Compare commits

...

33 Commits

Author SHA1 Message Date
Firehose Bot
92f11b5478 Merge branch 'main' of ssh://gitea.apps.sustainabledelivery.com:3022/mostalive/firehose 2026-04-01 23:34:24 +01:00
Firehose Bot
9500c309d1 Style headings and quote 2026-03-24 19:51:08 +00:00
Firehose Bot
e2caed41b9 Add current_tag attribute to post_index component 2026-03-24 14:56:54 +00:00
Firehose Bot
59a675ad71 Linting rule only for dev and test
Production build broke because our custom lint rule was compiled. The
credo linter is not available and not necessary in production.

Solution: create separate directory for dev tools.
2026-03-24 14:41:58 +00:00
Firehose Bot
34d1589d67 not running autoresearch at the moment 2026-03-24 14:23:00 +00:00
Firehose Bot
f1c2d8b232 Fix trailing newline and format code 2026-03-24 14:21:22 +00:00
Firehose Bot
60cfb137f2 remove sequence diagram skill, moved to other repo 2026-03-24 12:14:01 +00:00
Firehose Bot
51c59e3388 nono sandbox 2026-03-24 12:13:05 +00:00
Firehose Bot
c76853efec post: blog triage with an llm 2026-03-24 12:11:23 +00:00
Firehose Bot
09ca4f2758 fix score according to claude desktop 2026-03-21 18:41:21 +00:00
Firehose Bot
f4d992f0d6 initial setup for autoresearch of sequence diagram prompt 2026-03-21 15:39:15 +00:00
Firehose Bot
419e5dd5bd sandboxed haiku with pi 2026-03-21 15:36:51 +00:00
Willem van den Ende
dcf3032d0e Add custom Credo check for conn shadowing in tests
Detects `conn = get(conn, ...)` patterns and directs to
refactor_conn_aliasing.sh for automatic fixing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:37:04 +00:00
Willem van den Ende
6a5269f30a Refactor conn aliasing in controller tests to use pipe chains
Applied refactor_conn_aliasing.sh to eliminate conn shadowing.

Show draft posts in test and dev
2026-03-20 21:36:08 +00:00
Willem van den Ende
5d040b4062 Fix Sandbox module not available in DataCase setup
The alias was inside the `using` block (only available to consumers),
but setup_sandbox/1 runs in DataCase itself. Use fully qualified name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:19:54 +00:00
Willem van den Ende
5186edc2e9 Add reusable script to refactor Phoenix test conn aliasing
Portable awk-based script that transforms conn shadowing patterns
into idiomatic pipe chains across 4 cases (body extraction, single
assert, pattern match assert, multi-use rename).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:19:54 +00:00
Firehose Bot
f148fe4fcd fix blog tag clicks, and new post 2026-03-19 22:14:19 +00:00
Firehose Bot
3ffb0883f9 Fix review issues from commit 2a21d75
1. Rename goto_engineering_post_page/2 to visit_engineering_path/2 for
   better accuracy (used for both post pages and tag pages)

2. Simplify Makefile test target by removing explicit ecto.create and
   ecto.migrate commands (mix test handles migrations automatically)

3. Update blog_test.exs header comment to reflect actual changes made

4. Move Sandbox alias to top level in data_case.ex
2026-03-19 11:07:17 +00:00
Firehose Bot
2a21d75938 adjust makefile and refactor test 2026-03-18 20:04:41 +00:00
Firehose Bot
a82dab0350 also write something about unit tests 2026-03-18 20:03:41 +00:00
Firehose Bot
f05dd00c55 test writer skill
Focuses on integration tests, but might be more reusable
2026-03-18 20:02:20 +00:00
Firehose Bot
d428f51e8c Fix blog API tests and add missing tag tests
- Add Accept: application/json headers to all API endpoint tests
- Add GET /blog/releases/tag/:tag HTML page test
- Add GET /api/blog/*/tag/:tag JSON API tests for both blogs
- Fix feed.xml assertions to check body first, then content type
2026-03-18 19:03:40 +00:00
Willem van den Ende
99639090b6 Add healthcheck and attempt to fix devcontainer
user was root instead of vscode, and pi was broken.
Claude code had gone missing
2026-03-18 17:15:45 +00:00
80046094b8 update blog post, and run credo with 'pi' 2026-03-18 15:03:24 +00:00
ceeeb994fb Dokku setup script did not work that well, fixed by hand 2026-03-18 14:38:45 +00:00
Willem van den Ende
ddf75031e0 set default port to 5000 for production 2026-03-18 13:55:49 +00:00
Willem van den Ende
3bfca5a726 set DATABASE_URL 2026-03-18 13:48:12 +00:00
Willem van den Ende
3846cae6ca Add MIT license 2026-03-18 13:22:12 +00:00
Willem van den Ende
999ed4e121 Clearly mark sample posts as generated 2026-03-18 12:11:28 +00:00
Willem van den Ende
fcd2a91ecc open port 4050 for testing in docker compose file 2026-03-18 12:07:20 +00:00
Willem van den Ende
87d7b39d22 Enable UTF-8 in devcontainer 2026-03-18 11:30:27 +00:00
Willem van den Ende
7c3aac56ec Add postgres to devcontainer / compose 2026-03-18 11:22:54 +00:00
Willem van den Ende
2d97353649 Add Dockerfile-based Dokku deployment for monorepo layout
Uses a multi-stage Docker build that copies both app/ and blogex/,
preserving the path dependency. Includes release scripts, migration
module, and a sample Dokku setup script.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 10:55:44 +00:00
2 changed files with 13 additions and 12 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

@ -9,7 +9,7 @@
I made a skill for a coding agent to help me get more of my draft blog posts over the line. I enjoy writing, and am somewhat fluent in it. Publishing that writing is more hit and miss, however. I often lose energy just before a piece is finished enough. I want to publish more often, and need to form a more effective habit for it.
# What did I get out if it?
# What did I get out if it?
I got a working agent 'skill' in an hour or so. I like the QWEN models for their no-bullshit approach to feedback. As it turns out, I have about 60 pages with the 'Candidate Blogpost' tag in my notes, but most of them are not more than an idea. Only some of them have enough detail to turn into a post. I am going to keep this around, prune my candidate blogposts, and add my recent clippings to the mix.
@ -26,13 +26,12 @@ 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.
# Tradeoffs
# Tradeoffs
Initially I planned to run this as a scheduled job, but from the development chat it emerged that backbriefing (improving the skill as we run it daily) would not work if it runs scheduled.