Skip to content

New thought: when a small decision model can replace an LLM call - #29

Open
Tim-Conrad wants to merge 10 commits into
masterfrom
claude/personal-website-redesign-oiralc
Open

Tim-Conrad wants to merge 10 commits into
masterfrom
claude/personal-website-redesign-oiralc

Conversation

@Tim-Conrad

Copy link
Copy Markdown
Owner

A new thought at /thoughts/decision-models/, status Draft. It starts from the Strands Agents post on Amazon replacing Claude Sonnet 4.6 with Strands Decider for ticket labels, and focuses on the method: how to do this well, at home and at work.

What changed

  • thoughts/decision-models/index.html: the thought.
    • Fig. 1 is a switch between an LLM and a decision model on the same ticket.
    • Fig. 2 steps through the eight steps of the method, from the repository's customize-decider guide: fit, task card, frozen test set, baselines, the ladder from rewording to training, thresholds, a side-by-side run, and watching.
    • It ends with a checklist for when a specialised model is worth a try.
  • thoughts/index.html, index.html, sitemap.xml:
    • The thought is first on the list.
    • It is the first box on the front page, replacing "Encrypted patches", which stays on the list.
    • Contents now reads 3 thoughts.
    • The URL is added to the sitemap.
  • assets/site.js, assets/site.css, DESIGN.md: a stepped figure can now hold a narrow drawing for phones (.dg-n), as an animated one can.
    • The step script now finds data-step parts in the whole figure, not only in its first SVG.
    • Nothing the sealed login page uses changes.

Sources

  • The post: read from text copied from the page. The session's network could not reach strandsagents.com.
  • The repository: read at its commit of 6 Nov 2026.
  • One number is my own calculation from the post's prices, and the page says so: the break-even at about 63 tickets an hour.

Checks

  • python3 tools/check.py: 12 pages checked, 0 problems.
  • I served the site and looked at it at 1440, 390 and 320 px, light and dark:
    • Pages: the new thought, the front page, the thoughts list, the other two thoughts and the write-up.
    • No page scrolls sideways, and the console shows no errors.
    • Both switch buttons and the Back, Next and Play buttons of the step diagrams work, on this page and on encrypted-patches.

Generated by Claude Code

Starts from the Strands Agents post on Amazon replacing Sonnet 4.6
with Strands Decider for ticket labels. Draft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW
Rewritten around the method from the repository's customize-decider
guide: task card, frozen test set, baselines, the ladder from
rewording to training, thresholds, a side-by-side run, and watching.
Adds a stepped diagram of the eight steps. A stepped figure can now
hold a narrow drawing for phones, as an animated one can.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW
How sealed works, concepts first: what the host sees, from password
to file, the service worker, keyed blob names, groups and new keys,
a comparison with StatiCrypt, and the limits. Four figures. Draft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW

Copy link
Copy Markdown
Owner Author

Handover: the steps that are still open

This PR now holds three thoughts' worth of work: decision models, sealed, and the link to the sealed demo. It depends on work in a second repository, Tim-Conrad/sealed, branch claude/public-split. That branch is pushed but has no PR yet: this session could not reach sealed's GitHub API. Do the steps in this order.

State

Repository Branch Commits State
Tim-Conrad.github.io claude/personal-website-redesign-oiralc (this PR) 0d5b41c, ee10165, f2607dd, 2aef52a Pushed, checks pass, not merged
Tim-Conrad/sealed claude/public-split d908088 split, cfdaaf5 demo, f2e939b demo files Pushed, no PR, not merged

What claude/public-split does in sealed:

  • Lab details out of the tool: host names, Traefik and homepage labels, the admins tim,developer and the pen-and-paper site move into lab/. That's lab/docker-compose.lab.yml, an overlay that up.sh adds automatically, plus lab/sites/ and lab/README.md.
  • New settings: SEALED_SITES (a sites folder outside the repo). SEALED_ADMINS no longer has a default, so without it nobody gets in.
  • A public demo: demo/, sites/demo/, and .github/workflows/demo.yml, which publishes to gh-pages at sealed/demo/.
  • The t7d login page gets the current site menu.

Steps

1. sealed: open a PR and merge it

  • Open a PR claude/public-split → main in Tim-Conrad/sealed, review it, and merge it.
  • Checks that passed in the cloud session:
    • npm test (19 pass).
    • admin/.venv/bin/python -m pytest (17 pass).
    • cd admin/web && npm run build (type check and build).
    • The test and build steps of the workflow on a fresh clone of the branch.
  • Not tested there: docker build of both images (no Docker daemon), and a run of the workflow on GitHub.

2. sealed in the lab: deploy and check

  • ~/lab/lab-ctl deploy sealed.
  • In the cloud session, docker compose -f docker-compose.yml -f lab/docker-compose.lab.yml config matched the old docker-compose.yml, except for two intended additions: SEALED_SITES=/lab/sites and the read-only mount ./lab/sites:/lab/sites.
  • Check:
    • Both images build.
    • The admin app at sealed.lab.t7d.dev lets you in. If it says nobody can use it, SEALED_ADMINS didn't reach it: check that up.sh used the overlay.
    • pen-and-paper still builds (Apps, Builds).
    • pen-and-paper-sealed.lab.t7d.dev opens with an existing user.
  • pen-and-paper's own publish to t7d.dev/sealed/pen-and-paper/ has not happened yet: gh-pages has no sealed/ folder. Look in Builds for publish failed: no deploy key. Setup: "Publish below t7d.dev" in lab/README.md.

3. The deploy key for the demo

  1. On your own computer, not in a repository: ssh-keygen -t ed25519 -N '' -C sealed-demo -f demo_key
  2. Tim-Conrad.github.io → Settings → Deploy keys: add demo_key.pub, with write access.
  3. Tim-Conrad/sealed → Settings → Secrets and variables → Actions: add the content of demo_key as DEMO_DEPLOY_KEY.
  4. Delete both files.

4. Publish the demo and check it

  • Tim-Conrad/sealed → Actions → demo → Run workflow. It also runs on each push to main that touches the client, the build or the demo.
  • Check https://t7d.dev/sealed/demo/ in a browser:
    • reader / open-the-demo sees the page, the picture and the sound. The bonus page gives 404.
    • member / open-the-bonus also sees the bonus page.
    • Log out works.
  • GitHub Pages can take up to 10 minutes to show the new files.

5. Ship this PR, only after step 4

  • The sealed thought links to /sealed/demo/, so that page must be live first.
  • Then run python3 tools/check.py, look at the three thought pages at 1440, 390 and 320 px in both themes, and run tools/ship.sh 29.
  • This PR also changes assets/site.js and assets/site.css, so a stepped figure can hold a narrow drawing. Nothing the sealed login page uses changed.

6. Later: before sealed goes public
The steps are in sealed's lab/README.md, "Going public":

  1. Move lab/ into a private repo (for example Tim-Conrad/sealed-lab) and point SEALED_OVERLAY at its compose file.
  2. Change ./lab/sites in it to the new place.
  3. Remove lab/ from sealed.
  4. Choose a licence.
  5. Run gitleaks over the whole history. A grep found no keys or tokens, but that's not a full scan.
  6. Publish with the history (it has the lab host names of earlier commits, no secrets) or as a fresh first commit.

Generated by Claude Code

DPoP-bound tokens, a local broker that identifies the calling program
(pidfd, binary and script hash, systemd unit, as macOS does with code
signatures), a phone app that shows the intent and signs a short grant
bound to the agent's key, and agentgateway as the place for the last
upstream keys. Five figures, a prototype plan and the limits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW
The game pages get their own section: the characters are the game's own
art (Wortzauber sprites, Kleinbahn cars rendered from the near models),
everything around them is drawn in ink, they stand on the sheet's lines,
move on their own and answer taps and drags, stand still for reduced
motion, and stay under about 400 KB per theme. The motion rule names them
as an exception, a game page drops the screenshot grid, and the component
table and file list name the new classes and files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW
…one loop

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW
…site-redesign-oiralc

# Conflicts:
#	index.html
On the Wortzauber page Paul and the Schwebe-Bot walk on the title, the
rules, the feature list and the buttons. You can pick Paul up and throw
him, and dotted words in the text make their thing appear. He follows the
reader down the page.

On the Kleinbahn page the rule under the header is a railway with two
tunnels that form one loop, a station, a signal and sheep. The train is
rendered from the game's near models, by day and by night, with turning
wheels and low-poly smoke. Tap it to stop or start it, push it, or set
the signal.

Both pages drop the screenshot grid; the videos show more. The front
page is unchanged. CLAUDE.md names the two new scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFxuEuiQ8gLmh8xHfJyLFW

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants