Skip to content

Commit b490db6

Browse files
committed
Merge branch 'gh-pages' of github.com:beogip/code-first-agents into gh-pages
2 parents 2149cf5 + 6990502 commit b490db6

5 files changed

Lines changed: 24 additions & 35 deletions

File tree

assets/website-copy.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ Move deterministic work from the LLM to code.
2020

2121
The LLM picks the wrong branch. It skips a step. It hallucinates a field name. You can't write a test for any of it because the decision happened inside a black box.
2222

23-
I've watched agents route tickets correctly most of the time. Then quietly misclassify a bug as a feature request, trigger the wrong workflow, and nobody notices for hours. The failure mode isn't a crash. It's a silent wrong answer.
23+
I've watched agents route tickets correctly most of the time. Then quietly misclassify a bug as a feature request, trigger the wrong workflow, and go unnoticed for hours. The failure mode isn't a crash. It's a silent wrong answer.
2424

25-
I kept throwing tokens at the problem: longer prompts, more examples, chain-of-thought. It got marginally better. Never consistent. At some point I started moving the deterministic parts into code, and things stopped being a mystery.
25+
I kept throwing tokens at the problem: longer prompts, more examples, chain-of-thought. Things got marginally better. Never consistent. Eventually I started moving the deterministic parts into code, and the mystery went away.
2626

2727
The issue isn't that LLMs are bad. It's that we're asking them to do work that code should do.
2828

@@ -34,7 +34,7 @@ Moving decisions from the LLM to code changes three things at once.
3434

3535
Code doesn't drift. Same input, same output. No prompt sensitivity, no temperature variance, no "it worked yesterday." That alone is worth it.
3636

37-
It's also cheaper. A routing decision that runs as a local script instead of a chain-of-thought call costs a fraction of the tokens. And it's faster: a function runs in milliseconds where an LLM call takes seconds. Chain four decisions and the difference compounds.
37+
It's also cheaper. A routing decision that runs as a local script costs a fraction of the tokens compared to a chain-of-thought call. And it's faster: a function runs in milliseconds where an LLM call takes seconds. Chain four decisions and the difference compounds.
3838

3939
The question isn't whether your agent uses tools. It's how much decision-making lives inside those tools vs inside the LLM.
4040

@@ -84,11 +84,11 @@ Tool returns: { "complexity": "standard", "instructions": "## Step 1: Read the i
8484
LLM does: executes the instructions exactly as written. Zero branching.
8585
```
8686

87-
At Level 3, the tool becomes a prompt factory. It generates the exact procedure the LLM should follow based on deterministic analysis. The LLM just executes. All branching logic lives in code you can test and debug.
87+
At Level 3, the tool becomes a prompt factory: it generates the exact procedure the LLM should follow based on deterministic analysis. The LLM just executes. All branching logic lives in code you can test and debug.
8888

8989
This inverts the usual tool-use pattern. Instead of the LLM using tools to help with its plan, the tool builds the plan and the LLM carries it out.
9090

91-
I built kael.factory, a plugin generator for Claude Code, using these exact patterns. Every decision in the generation pipeline runs on deterministic tools orchestrated by skills.
91+
I built kael.factory, a plugin generator for Claude Code, using exactly these patterns. Every decision in the generation pipeline runs on deterministic tools orchestrated by skills.
9292

9393
---
9494

index.html

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@
6060
"license": "https://opensource.org/licenses/MIT"
6161
}
6262
</script>
63+
64+
<!-- Cloudflare Web Analytics -->
65+
<script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "c5f35745029247ea830c902014c4ee36"}'></script>
6366
</head>
6467
<body>
6568

@@ -95,10 +98,10 @@ <h2 class="section__title">The Problem</h2>
9598
The LLM picks the wrong branch. It skips a step. It hallucinates a field name. You can't write a test for any of it because the decision happened inside a black box.
9699
</p>
97100
<p>
98-
I've watched agents route tickets correctly most of the time. Then quietly misclassify a bug as a feature request, trigger the wrong workflow, and nobody notices for hours. The failure mode isn't a crash. It's a silent wrong answer.
101+
I've watched agents route tickets correctly most of the time. Then quietly misclassify a bug as a feature request, trigger the wrong workflow, and go unnoticed for hours. The failure mode isn't a crash. It's a silent wrong answer.
99102
</p>
100103
<p>
101-
I kept throwing tokens at the problem: longer prompts, more examples, chain-of-thought. It got marginally better. Never consistent. At some point I started moving the deterministic parts into code, and things stopped being a mystery.
104+
I kept throwing tokens at the problem: longer prompts, more examples, chain-of-thought. Things got marginally better. Never consistent. Eventually I started moving the deterministic parts into code, and the mystery went away.
102105
</p>
103106
<p>
104107
The issue isn't that LLMs are bad. It's that we're asking them to do work that code should do.
@@ -125,7 +128,7 @@ <h2 class="section__title">The Thesis</h2>
125128
<div class="pillar__num">02</div>
126129
<div class="pillar__content">
127130
<div class="pillar__label">Cost</div>
128-
<div class="pillar__text">A routing decision that runs as a local script instead of a chain-of-thought call costs a fraction of the tokens.</div>
131+
<div class="pillar__text">A routing decision that runs as a local script costs a fraction of the tokens compared to a chain-of-thought call.</div>
129132
</div>
130133
</div>
131134
<div class="pillar">
@@ -247,27 +250,13 @@ <h2 class="section__title">The Spectrum</h2>
247250

248251
<div class="prose" style="margin-top: 32px;">
249252
<p>
250-
At Level 3, the tool becomes a prompt factory. It generates the exact procedure the LLM should follow based on deterministic analysis. The LLM just executes. All branching logic lives in code you can test and debug.
253+
At Level 3, the tool becomes a prompt factory: it generates the exact procedure the LLM should follow based on deterministic analysis. The LLM just executes. All branching logic lives in code you can test and debug.
251254
</p>
252255
<p>
253256
This inverts the usual tool-use pattern. Instead of the LLM using tools to help with its plan, the tool builds the plan and the LLM carries it out.
254257
</p>
255258
<p>
256-
I built kael.factory, a plugin generator for Claude Code, using these exact patterns. Every decision in the generation pipeline runs on deterministic tools orchestrated by skills.
257-
</p>
258-
</div>
259-
</section>
260-
261-
<!-- Who -->
262-
<section class="section" id="who">
263-
<div class="section__marker">Who</div>
264-
<h2 class="section__title">Who</h2>
265-
<div class="prose">
266-
<p>
267-
I'm Juan Gipponi. CTO at a tech agency, where I lead a dev team and integrate AI into how we actually work. Everything on this site is what I use in production.
268-
</p>
269-
<p>
270-
<a href="https://www.linkedin.com/in/juan-gipponi" target="_blank" rel="noopener">LinkedIn</a>
259+
I built kael.factory, a plugin generator for Claude Code, using exactly these patterns. Every decision in the generation pipeline runs on deterministic tools orchestrated by skills.
271260
</p>
272261
</div>
273262
</section>

index.md

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ Your agent works. Until it doesn't. And you can't tell why. Move deterministic w
88

99
The LLM picks the wrong branch. It skips a step. It hallucinates a field name. You can't write a test for any of it because the decision happened inside a black box.
1010

11-
I've watched agents route tickets correctly most of the time. Then quietly misclassify a bug as a feature request, trigger the wrong workflow, and nobody notices for hours. The failure mode isn't a crash. It's a silent wrong answer.
11+
I've watched agents route tickets correctly most of the time. Then quietly misclassify a bug as a feature request, trigger the wrong workflow, and go unnoticed for hours. The failure mode isn't a crash. It's a silent wrong answer.
1212

13-
I kept throwing tokens at the problem: longer prompts, more examples, chain-of-thought. It got marginally better. Never consistent. At some point I started moving the deterministic parts into code, and things stopped being a mystery.
13+
I kept throwing tokens at the problem: longer prompts, more examples, chain-of-thought. Things got marginally better. Never consistent. Eventually I started moving the deterministic parts into code, and the mystery went away.
1414

1515
The issue isn't that LLMs are bad. It's that we're asking them to do work that code should do.
1616

@@ -20,7 +20,7 @@ The issue isn't that LLMs are bad. It's that we're asking them to do work that c
2020

2121
**Reliability.** Code doesn't drift. Same input, same output. No prompt sensitivity, no temperature variance, no "it worked yesterday."
2222

23-
**Cost.** A routing decision that runs as a local script instead of a chain-of-thought call costs a fraction of the tokens.
23+
**Cost.** A routing decision that runs as a local script costs a fraction of the tokens compared to a chain-of-thought call.
2424

2525
**Speed.** A function runs in milliseconds where an LLM call takes seconds. Chain four decisions and the difference compounds.
2626

@@ -71,17 +71,11 @@ Tool returns: { "complexity": "standard", "instructions": "## Step 1: Read the i
7171
LLM does: TOOL decides everything. LLM executes verbatim. Zero branching.
7272
```
7373

74-
At Level 3, the tool becomes a prompt factory. It generates the exact procedure the LLM should follow based on deterministic analysis. The LLM just executes. All branching logic lives in code you can test and debug.
74+
At Level 3, the tool becomes a prompt factory: it generates the exact procedure the LLM should follow based on deterministic analysis. The LLM just executes. All branching logic lives in code you can test and debug.
7575

7676
This inverts the usual tool-use pattern. Instead of the LLM using tools to help with its plan, the tool builds the plan and the LLM carries it out.
7777

78-
I built kael.factory, a plugin generator for Claude Code, using these exact patterns. Every decision in the generation pipeline runs on deterministic tools orchestrated by skills.
79-
80-
## Who
81-
82-
I'm Juan Gipponi. CTO at a tech agency, where I lead a dev team and integrate AI into how we actually work. Everything on this site is what I use in production.
83-
84-
[LinkedIn](https://www.linkedin.com/in/juan-gipponi)
78+
I built kael.factory, a plugin generator for Claude Code, using exactly these patterns. Every decision in the generation pipeline runs on deterministic tools orchestrated by skills.
8579

8680
## Pattern Catalogue
8781

patterns/deterministic-tools.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@
9090
]
9191
}
9292
</script>
93+
94+
<!-- Cloudflare Web Analytics -->
95+
<script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "c5f35745029247ea830c902014c4ee36"}'></script>
9396
</head>
9497
<body>
9598

patterns/skill-orchestration.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@
9090
]
9191
}
9292
</script>
93+
94+
<!-- Cloudflare Web Analytics -->
95+
<script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "c5f35745029247ea830c902014c4ee36"}'></script>
9396
</head>
9497
<body>
9598

0 commit comments

Comments
 (0)