Skip to content
Merged
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
18 changes: 3 additions & 15 deletions site/blog-posts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ export const BLOG_ADMISSIONS: readonly ArticleAdmission[] = [
"href": "/blog/built-on-algal/",
"lifecycle": "indexable",
"readerJob": "Find which Hraness products run on ALGAL and open the post that shows how each one uses it.",
"nonObviousAnswer": "ALGAL is in use outside its own repo: TextButler gates per-contact reply plans with it, Excalibur (xcb) replays task history through it, Clankdar computes puzzle answers with its pinned evaluator, and SlopCamera bakes character behavior as tool-free organisms.",
"nonObviousAnswer": "ALGAL is in use outside its own repo: TextButler gates per-contact reply plans with it and Excalibur (xcb) replays task history through it.",
"originalContribution": "An index of registered relations; each entry is the relation's reviewed sentence and one link.",
"hostFit": "The provider hub for ALGAL, on ALGAL's own site.",
"nearestUrls": [
Expand Down Expand Up @@ -243,20 +243,10 @@ export const BLOG_ADMISSIONS: readonly ArticleAdmission[] = [
"title": "Excalibur (xcb) reflexes",
"url": "https://github.com/hraness/xcb/blob/6437bcb844017e74b3e3930ff5c6076ea55c5f06/docs/reflexes.md",
"checkedOn": "2026-09-24"
},
{
"title": "Clankdar evaluator section",
"url": "https://github.com/hraness/clankdar/blob/664d64e4ce4c429ee999f914d054facf6dcbb8d9/README.md",
"checkedOn": "2026-09-24"
},
{
"title": "SlopCamera behavior bake",
"url": "https://github.com/hraness/slopcamera/blob/7e7027521f134aaaaa8404efebdc5bac24be6252/src/spatial-scene/behavior-bake.ts",
"checkedOn": "2026-09-24"
}
],
"observations": [
"The rendered hub contains one entry for each live registered consumer: TextButler, Excalibur (xcb), Clankdar and SlopCamera. ALGAL consuming another product is excluded.",
"The rendered hub contains one entry for each live registered consumer: TextButler and Excalibur (xcb). ALGAL consuming another product is excluded.",
"These integrations divide into full runtime embedding, expression-only evaluation and effect-free behavior baking; sharing a dependency does not imply the same execution model."
],
"scores": {
Expand All @@ -282,7 +272,7 @@ export const BLOG_ADMISSIONS: readonly ArticleAdmission[] = [
"The @hraness/design-kit/portfolio subpath regenerating with ALGAL relations",
"Any linked 'How <product> uses ALGAL' post going live, moving or being archived",
"An ALGAL release or status change in site/copy.ts",
"A rename of ALGAL or of TextButler, Excalibur (xcb), Clankdar or SlopCamera"
"A rename of ALGAL or of TextButler or Excalibur (xcb)"
]
},
{
Expand Down Expand Up @@ -559,6 +549,4 @@ export const PENDING_CROSS_HOST_LINKS: ReadonlySet<string> = new Set([]);
export const ALGAL_USES_POSTS: Readonly<Record<string, Readonly<{ url: string; live: boolean }>>> = {
"message-like-me": { url: "https://textbutler.app/blog/how-textbutler-uses-algal", live: true },
xcb: { url: "https://xcb.sh/blog/how-xcb-uses-algal", live: true },
clankdar: { url: "https://clankdar.com/blog/how-clankdar-uses-algal", live: true },
slopcamera: { url: "https://slopcamera.com/blog/how-slopcamera-uses-algal", live: true },
};
6 changes: 3 additions & 3 deletions site/blog.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ test("only indexable posts reach the index, feed, sitemap, and llms.txt", () =>
const feed = blogAtomFeed(posts);
const llms = blogLlmsList(posts);
const sitemap = blogSitemapEntries(posts);
expect(sitemap).toEqual(["/blog/", ...indexable].map(path => ({ path, lastModified: "2026-10-01" })));
expect(sitemap).toEqual(["/blog/", ...indexable].map(path => ({ path, lastModified: "2026-10-05" })));
for (const post of posts) {
const listed = post.indexable;
expect(index.includes(`href="${post.path}"`)).toBe(listed);
Expand All @@ -66,10 +66,10 @@ test("only indexable posts reach the index, feed, sitemap, and llms.txt", () =>

test("reading pages hide dates while discovery records accurate revisions", () => {
for (const post of posts) {
expect(post.updated).toBe("2026-10-01");
expect(post.updated).toBe("2026-10-05");
expect(renderPostArticle(post)).not.toContain("<time");
expect(renderPostArticle(post)).not.toContain(">Checked ");
expect(JSON.stringify(postJsonLd(post))).toContain('"dateModified":"2026-10-01T00:00:00.000Z"');
expect(JSON.stringify(postJsonLd(post))).toContain('"dateModified":"2026-10-05T00:00:00.000Z"');
}
expect(renderBlogIndex(posts)).not.toContain("<time");
});
Expand Down
6 changes: 3 additions & 3 deletions site/blog/built-on-algal.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
title: "Built on ALGAL"
date: 2026-09-24
eyebrow: Integration
description: "TextButler, Excalibur (xcb), Clankdar, and SlopCamera run part of their work as ALGAL programs. Each entry links to a post showing how."
description: "TextButler and Excalibur (xcb) run part of their work as ALGAL programs. Each entry links to a post showing how."
cardDescription: "How products use typed programs, replay and controlled execution."
updated: 2026-10-01
updated: 2026-10-05
---

A writing assistant, an agent router, an identity challenge and a 3D scene need different kinds of control. Each can use a small typed program to make part of its work explicit: what it receives, what it may do and how its result is checked.
A writing assistant and an agent router need different kinds of control. Each can use a small typed program to make part of its work explicit: what it receives, what it may do and how its result is checked.

These product guides show those choices in working integrations. Follow the example closest to your own task, then inspect the linked source to see where the host application hands work to ALGAL.

Expand Down
2 changes: 1 addition & 1 deletion site/blog/introducing-algal.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ date: 2026-09-29
description: Language and VM for agent programs that wait for approval and resume.
eyebrow: Launch
cardDescription: "ALGAL runs agent programs that stop for your yes, survive a crash, and replay what they did."
updated: 2026-10-01
updated: 2026-10-05
---

# Introducing ALGAL
Expand Down
2 changes: 1 addition & 1 deletion site/blog/programs-that-wait.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ date: 2026-09-22
description: An ALGAL program can wait days for an approval, then resume in a new process or the other runtime, because the wait is saved as data in the store.
eyebrow: Technique
cardDescription: "It waits days for an approval, then resumes."
updated: 2026-10-01
updated: 2026-10-05
---

# A program that can wait
Expand Down
2 changes: 1 addition & 1 deletion site/blog/receipts-fossil-record.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ date: 2026-09-22
description: An ALGAL receipt lets another person replay a recorded run offline and check how its inputs and saved answers produced its outputs.
eyebrow: Technique
cardDescription: "An ALGAL receipt replays an agent run offline."
updated: 2026-10-01
updated: 2026-10-05
---

# What a replayable receipt proves
Expand Down
2 changes: 1 addition & 1 deletion site/blog/self-evolving-software-selection-boundary.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: Darwin-Gödel Machine, AlphaEvolve, and Voyager share one loop: pro
eyebrow: Essay
cardTitle: "Self-evolving code needs a selection boundary"
cardDescription: "ALGAL makes selection a checked contract."
updated: 2026-10-01
updated: 2026-10-05
---

# Self-evolving software needs a selection boundary
Expand Down
2 changes: 1 addition & 1 deletion site/blog/software-that-accumulates-competence.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ date: 2026-09-23
description: ALGAL bets that a computer can keep tested procedures, combine them, and get better at later work. The thesis, how to test it, and what would settle it.
eyebrow: Essay
cardDescription: "The bet, and how to test it."
updated: 2026-10-01
updated: 2026-10-05
---

# Software that accumulates competence
Expand Down
2 changes: 1 addition & 1 deletion site/blog/typescript-rust-parity.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ eyebrow: Technique
description: "Compare results, errors and execution records across implementations, then test the assumptions their shared code cannot reveal."
cardTitle: "Comparing runtimes"
cardDescription: "Use the same inputs to find disagreements in results, errors and records."
updated: 2026-10-01
updated: 2026-10-05
---

Two implementations of a runtime can each pass their own tests while disagreeing on a valid input. Differential testing gives both the same program and compares what they do. Cross-checking their saved records adds another question: can each implementation understand the other's account of the run?
Expand Down
Loading