Skip to content

Commit 9ed3f08

Browse files
committed
Spell / format checks
1 parent 4c97915 commit 9ed3f08

1 file changed

Lines changed: 29 additions & 28 deletions

File tree

_posts/2026-05-20-hands-in-the-swamp.md

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,30 @@ This is weird, and I guess a sign of the weird times we live in.
77

88
## A pond of beautiful entities
99

10-
I’m not sure about the first time I heard about [Swamp](https://swamp.club){:target="_blank"}, I guess at last CfgMgmtCamp in February directly from Adam Jacob.
10+
I’m not sure about the first time I heard about [Swamp](https://swamp.club){:target="_blank"}, I guess at the last CfgMgmtCamp in February directly from Adam Jacob.
1111

12-
If you know Adam, you know that he is a brilliant guy with crazy ideas, sometimes too ahead of their times (Ok, he also did Chef, when there was already Puppet, messing up things in our placid community, but that's another story).
12+
If you know Adam, you know that he is a brilliant guy with crazy ideas, sometimes too ahead of their time (Ok, he also did Chef, when there was already Puppet, messing up things in our placid community, but that's another story).
1313

14-
In the next months I kept on having indirect updates about Swamp from Paul Stack and his posts here on LinkedIn but that remained the classic "apparently cool tool I should check out when I have time".
14+
In the next months I kept on having indirect updates about Swamp from Paul Stack and his posts on LinkedIn but that remained the classic "apparently cool tool I should check out when I have time".
1515

1616
That time, of course, never arrives, even if I have plenty of it.
1717

18-
This morning was different, I woke up earlier than usual, gave a look at post from Paul, went to the Swamp site and wondered, once again, "What the **** is Swamp anyway"?
18+
This morning was different, I woke up earlier than usual, gave a look at a post from Paul, went to the Swamp site and wondered, once again, *"What the xxxx is Swamp anyway"*?
1919

20-
Honestly, claims like “[ADAPTIVE WORKFLOWS|DETERMINISTIC AUTOMATION] FOR AI AGENTS” didn't really click anything in me, and it took me some time to understand the inner, and powerful, meanings.
20+
Honestly, claims like “ADAPTIVE WORKFLOWS (or DETERMINISTIC AUTOMATION) FOR AI AGENTS” didn't really click anything in me, and it took me some time to understand the inner, and powerful, meanings.
2121

2222
Anyway, instructions say: install swamp with the usual "download and run a random script".
2323

2424
Ok, I’m sadly familiar at performing unprotected sex with the Internet.
2525

2626
Then go to your repo and run `swamp init` and then open your agent tool.
2727

28-
What repo? Your infrastructure management repo? Your own software repo? Any repo?
28+
What repo?
29+
Your infrastructure management repo?
30+
Your own software repo?
31+
Any repo?
2932

30-
So I went to my pabawi repo (btw, it’s has been launched right today on [Product Hunt](https://www.producthunt.com/products/pabawi), give it look ) and wondered... now what?
33+
So I went to my pabawi repo (btw, it has been launched today on [Product Hunt](https://www.producthunt.com/products/pabawi), give it a look ) and wondered... now what?
3134

3235
This is software, not infrastructure to run things on.
3336

@@ -39,59 +42,57 @@ So I started to put my hands in the swamp.
3942

4043
Needless to say they quickly became dirty.
4144

42-
Very dirty.
45+
**Very dirty.**
4346

44-
In pure, ignorant, vibe approach, I asked Codex to do something with Swamp to automate the testing of Pabawi docker images.
47+
In a pure, ignorant, vibe approach, I asked Codex to do something with Swamp to automate the testing of Pabawi docker images.
4548

46-
The AI started to juggle with tokens, searched the swamp.club for existing extensions and generated a workflow to test the local Dockerfile on remote system over ssh.
49+
The AI started to juggle with tokens, searched the Swamp Club for existing extensions and generated a workflow to test the local Dockerfile on a remote system over ssh.
4750

48-
I wondered why testing my local software on a remote server, when I have a local docker running, and hence, after a few more AI mumblings and no viable existing alternative, I wondered why not making a general purpose Docker local testing extension?
51+
I wondered why testing my local software on a remote server, when I have a local Docker running, and hence, after a few more AI mumblings and no viable existing alternative, I wondered why not making a general purpose Docker local testing extension?
4952

5053
My damn tendency to abstract things to make them reusable.
5154

52-
Here comes my trip to the rabbit hole, I just started to use swamp and I was already trying to make a public extension.
55+
Here comes my trip to the rabbit hole, I just started to use Swamp and I was already trying to make a public extension.
5356

5457
It could have been an incredibly fast rewarding experience, but in my case, for this very specific case, it has been a (relatively) painful (in the degree of a "few hours and several tokens spent" pain scale) experience.
5558

56-
I struggled with conflicts from local development and published versions, issues with unknown model types, AIs already reassuring that everything was fine, while nothing was, moving the extension to a dedicated repo, and doing it in the wrong way, then, again, issues with unknown model types.
59+
I struggled with conflicts from local development and published versions, issues with unknown model types, AIs always reassuring that everything was fine, while nothing was working, moving the extension to a dedicated repo, and doing it in the wrong way, then, again, issues with unknown model types.
5760

58-
All this via a quick burn of Codex 5 hour session credits, some additional credits bought (clear sign I was hooked in the trap), a shift to Claude code, because I didn’t want to burn too quickly Codex extra credits, and the hit of Claude limits as well, to finalize everything with Antigravity.
61+
All this via a quick burn of Codex 5 hour session credits, some additional credits bought (clear sign I was hooked in the trap), a shift to Claude code, because I didn’t want to burn too quickly Codex extra credits, and the hit of Claude limits as well, to finalize everything with Antigravity, without plan.
5962

60-
After several troubleshooting sessions, where the AI was apparently shooting at its own generated troubles while it should have aimed at my bad naming choices, Claude told me:
63+
After several troubleshooting sessions, where the AI was apparently shooting at its own generated troubles while it should have aimed at my **bad naming** choices, Claude told me:
6164

62-
⏺ ROOT CAUSE — confirmed in swamp's source (extension_loader.ts:1112):
65+
⏺ ROOT CAUSE — confirmed in Swamp's source (extension_loader.ts:1112):
6366

64-
entry.isFile && entry.name.endsWith(".ts") &&
65-
!entry.name.endsWith("_test.ts") // test files are excluded from discovery
67+
entry.isFile && entry.name.endsWith(".ts") && !entry.name.endsWith("_test.ts") // test files are excluded from discovery
6668

67-
The model file is named docker_image_test.ts — it ends in _test.ts, so swamp's extension loader treats it as a test file and excludes it from discovery entirely. swamp
68-
extension push uses the manifest's explicit list (so it bundles fine, modelCount: 1), but every consumer scans the directory, skips *_test.ts, and registers 0 models.
69+
The model file is named docker_image_test.ts — it ends in _test.ts, so Swamp's extension loader treats it as a test file and excludes it from discovery entirely. Swamp extension push uses the manifest's explicit list (so it bundles fine, modelCount: 1), but every consumer scans the directory, skips *_test.ts, and registers 0 models.
6970
The type string, paths.base, the layout — none of it ever mattered. It was the filename all along.
7071

7172
A bad name, a bug in upstream code, promptly reported with the insanely cool `swamp issue` command, some other minor tweaks, 7 releases on day one, and finally an apparently working docker-image-test extension was published.
7273

7374

7475
## Muddy conclusions
7576

76-
The good thing?
77+
**The good?**
7778

7879
In the process I started to learn something about Swamp, just scratching the surface, but my mind started to be enlightened about its endless possibilities.
7980

80-
The bad thing?
81+
**The bad?**
8182

8283
The fact that anyone can publish an extension and anyone else can use it out of the box with Swamp and use it for any infrastructure or automation workflow scares me.
8384

8485
Feature request for Adam, Paul and whoever works in the Swamp: if you are not already doing it, do some kind of automated security assessment on what users publish on swamp.club
8586

86-
Lessons learned?
87-
88-
The usual one.
89-
AIs are smart for smart users and dumb with dumb users.
90-
91-
The unnecessary irony?
87+
**The unnecessary irony?**
9288

9389
After all this effort I thought that I probably could have achieved the same "docker build and test" task in much less time with a shell script.
9490

9591
I'm still not sure if this specific Docker test extension makes sense, in Swamp world, but my ancient DevOps spirit keeps on reminding the sacred principles of reusability, abstraction and repeatability and the curious AI fanboy of the current times lights up at the huge powers of gated and modelled AI driven workflows.
9692

93+
**Lessons learned?**
94+
95+
The usual one.
96+
AIs are smart for smart users and sometimes dumb with dumb users.
97+
9798
Alessandro Franceschi

0 commit comments

Comments
 (0)