Remove stray scratchpad build output under tmp/ and ignore tmp/
Claude · 2026-10-27 · 3a1587eb0747f9a6993ed6e3d8bf097e09f553df · parents 801959a
Five catalog tree copies from a session scratchpad were committed by accident with the Pages setup; the real trees are under examples/ and catalog/. They showed up as a tmp/ folder in the source browser.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013rD7jg3PznHuEYvaxmCdv1
Changes
.gitignore | 1 + .../scratchpad/out/catalog/github/github-release.toml | 63 ------------- .../scratchpad/out/catalog/hacker-news/hacker-news-item.toml | 66 -------------- .../scratchpad/out/catalog/hacker-news/hacker-news.toml | 79 ----------------- .../scratchpad/out/catalog/site-status/site-status.toml | 62 ------------- .../scratchpad/out/catalog/weather/weather.toml | 133 ---------------------------- 6 files changed, 1 insertion(+), 403 deletions(-)
diff --git a/.gitignore b/.gitignore index 2af4a18..87ac1ce 100644 --- a/.gitignore +++ b/.gitignore@@ -7,3 +7,4 @@ build/*.egg-info/ .env .env.*+tmp/diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/github/github-release.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/github/github-release.toml deleted file mode 100644 index d32f374..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/github/github-release.toml +++ /dev/null@@ -1,63 +0,0 @@-# Latest release of a GitHub repository, from the public API. Shows an-# optional token from the service's env and a decision on the status code.--name = "github-release"-version = 1-description = "The latest release of a GitHub repository."-tags = ["github", "read-only"]-license = "MIT"-hosts = ["api.github.com"]-start = "fetch"--[[triggers]]-pattern = "[what's the] latest release of {repo:word}"-[[triggers]]-pattern = "latest {repo:word} release"--[inputs.repo]-type = "str"-pattern = "^[A-Za-z0-9_.\\-]+/[A-Za-z0-9_.\\-]+$"-description = "owner/name"--[nodes.fetch]-kind = "observe"-http = { method = "GET", url = "https://api.github.com/repos/{{ inputs.repo }}/releases/latest", headers = { Accept = "application/vnd.github+json" } }-into = "resp"-extract = [- { into = "tag", json = "json.tag_name" },- { into = "name", json = "json.name" },- { into = "published", json = "json.published_at" },- { into = "url", json = "json.html_url" },- { into = "prerelease", json = "json.prerelease" },-]-next = "status"--[nodes.status]-kind = "decide"-on = "resp.status"-branches = [- { when = { eq = 200 }, then = "reply" },- { when = { eq = 404 }, then = "none" },- { when = { in = [403, 429] }, then = "rate-limited" },- { else = "unexpected" },-]--[nodes.reply]-kind = "done"-say = "{{ inputs.repo }}: {{ state.tag }} ({{ state.published }}) {{ state.url }}"-output = { repo = "{{ inputs.repo }}", tag = "{{ state.tag }}", name = "{{ state.name }}", published = "{{ state.published }}", url = "{{ state.url }}", prerelease = "{{ state.prerelease }}" }--[nodes.none]-kind = "fail"-reason = "no-release"-say = "{{ inputs.repo }} has no releases, or does not exist."--[nodes.rate-limited]-kind = "fail"-reason = "rate-limited"-say = "GitHub is rate-limiting unauthenticated requests ({{ state.resp.status }})."--[nodes.unexpected]-kind = "fail"-reason = "unexpected-response"-say = "GitHub answered {{ state.resp.status }}."diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news-item.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news-item.toml deleted file mode 100644 index eadbb09..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news-item.toml +++ /dev/null@@ -1,66 +0,0 @@-name = "hacker-news-item"-version = 1-description = "One Hacker News item by id: title, url, score, author."-tags = ["news", "read-only"]-license = "MIT"-hosts = ["hacker-news.firebaseio.com"]-start = "fetch"--[[triggers]]-pattern = "hacker news item {id:int}"--[inputs.id]-type = "int"-min = 1-description = "The item id"--[nodes.fetch]-kind = "observe"-http = { method = "GET", url = "https://hacker-news.firebaseio.com/v0/item/{{ inputs.id }}.json" }-into = "resp"-extract = [- { into = "title", json = "json.title" },- { into = "url", json = "json.url" },- { into = "score", json = "json.score" },- { into = "by", json = "json.by" },- { into = "type", json = "json.type" },-]-next = "kind"--[nodes.kind]-kind = "decide"-on = "type"-branches = [- { when = { eq = "story" }, then = "has-url" },- { when = { eq = "job" }, then = "has-url" },- { when = { exists = false }, then = "missing" },- { else = "not-a-story" },-]--[nodes.has-url]-kind = "decide"-on = "url"-branches = [- { when = { exists = true }, then = "reply" },- { else = "self-post" },-]--[nodes.self-post]-kind = "set"-set = { url = "https://news.ycombinator.com/item?id={{ inputs.id }}" }-next = "reply"--[nodes.reply]-kind = "done"-say = "{{ state.title }} ({{ state.score }} points, by {{ state.by }}) {{ state.url }}"-output = { id = "{{ inputs.id }}", title = "{{ state.title }}", url = "{{ state.url }}", score = "{{ state.score }}", by = "{{ state.by }}" }--[nodes.missing]-kind = "fail"-reason = "no-such-item"-say = "There is no Hacker News item {{ inputs.id }}."--[nodes.not-a-story]-kind = "fail"-reason = "not-a-story"-say = "Item {{ inputs.id }} is a {{ state.type }}, not a story."diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news.toml deleted file mode 100644 index 826c223..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news.toml +++ /dev/null@@ -1,79 +0,0 @@-# Hacker News, through its public Firebase API. Two trees: this one answers-# the question, and `hacker-news-item` fetches one story, so that `each`-# can reuse it.--name = "hacker-news"-version = 1-description = "Top stories on Hacker News, from its public API."-tags = ["news", "read-only"]-license = "MIT"-hosts = ["hacker-news.firebaseio.com"]-start = "fetch-ids"--[[triggers]]-pattern = "[what's the] top story on hacker news"-inputs = { count = 1 }--[[triggers]]-pattern = "top {count:int} stories on hacker news"--[inputs.count]-type = "int"-default = 1-min = 1-max = 30-description = "How many stories to return"--[nodes.fetch-ids]-kind = "observe"-http = { method = "GET", url = "https://hacker-news.firebaseio.com/v0/topstories.json" }-into = "ids_resp"-extract = [{ into = "ids", json = "json" }]-next = "check"--[nodes.check]-kind = "decide"-on = "ids_resp.status"-branches = [- { when = { eq = 200 }, then = "any" },- { when = { gte = 500 }, then = "hn-down" },- { else = "unexpected" },-]--[nodes.any]-kind = "decide"-on = "ids"-branches = [- { when = { empty = true }, then = "nothing" },- { when = { type = "list" }, then = "stories" },- { else = "unexpected" },-]--[nodes.stories]-kind = "each"-over = "ids"-limit = "{{ inputs.count }}"-tree = "hacker-news-item"-with = { id = "{{ item }}" }-into = "stories"-next = "reply"--[nodes.reply]-kind = "done"-say = "Top of Hacker News: {{ state.stories[0].title }} — {{ state.stories[0].url }}"-output = { stories = "{{ state.stories }}" }--[nodes.nothing]-kind = "fail"-reason = "no-stories"-say = "Hacker News returned an empty front page."--[nodes.hn-down]-kind = "fail"-reason = "upstream-down"-say = "Hacker News answered {{ state.ids_resp.status }}; try again later."--[nodes.unexpected]-kind = "fail"-reason = "unexpected-response"-say = "Hacker News answered {{ state.ids_resp.status }} with something this tree does not recognise."diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/site-status/site-status.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/site-status/site-status.toml deleted file mode 100644 index 3d016af..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/site-status/site-status.toml +++ /dev/null@@ -1,62 +0,0 @@-# Is a site up? The host comes from the sentence, so it cannot be checked-# at load time; the runtime refuses anything outside `hosts`, and this tree-# allows any host on purpose, with the wildcard spelled out.--name = "site-status"-version = 1-description = "Whether a web site answers, and how quickly."-tags = ["ops", "read-only"]-license = "MIT"-hosts = ["*"]-start = "probe"--[[triggers]]-pattern = "is {host:host} up"-[[triggers]]-pattern = "is {host:host} down"-[[triggers]]-pattern = "[check] status of {host:host}"--[inputs.host]-type = "str"-pattern = "(?i)^[a-z0-9.\\-]+(:[0-9]+)?$"-description = "A host name, with no scheme"--[nodes.probe]-kind = "observe"-http = { method = "GET", url = "https://{{ inputs.host | lower }}/" }-into = "resp"-timeout = 8-retries = 1-next = "status"--[nodes.status]-kind = "decide"-on = "resp.status"-branches = [- { when = { between = [200, 399] }, then = "up" },- { when = { between = [400, 499] }, then = "refusing" },- { when = { gte = 500 }, then = "erroring" },- { else = "odd" },-]--[nodes.up]-kind = "done"-say = "{{ inputs.host }} is up: {{ state.resp.status }} in {{ state.resp.elapsed_ms }} ms."-output = { host = "{{ inputs.host }}", up = true, status = "{{ state.resp.status }}", elapsed_ms = "{{ state.resp.elapsed_ms }}" }--[nodes.refusing]-kind = "done"-say = "{{ inputs.host }} answers but refuses the front page ({{ state.resp.status }}); the server is up."-output = { host = "{{ inputs.host }}", up = true, status = "{{ state.resp.status }}", note = "client error on /" }--[nodes.erroring]-kind = "fail"-reason = "server-error"-say = "{{ inputs.host }} is answering {{ state.resp.status }}: up, but broken."-output = { host = "{{ inputs.host }}", up = false, status = "{{ state.resp.status }}" }--[nodes.odd]-kind = "fail"-reason = "unexpected-status"-say = "{{ inputs.host }} answered {{ state.resp.status }}, which this tree has no branch for."diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/weather/weather.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/weather/weather.toml deleted file mode 100644 index 3e65419..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/weather/weather.toml +++ /dev/null@@ -1,133 +0,0 @@-# Weather for a place, from Open-Meteo (no key needed). Two hops: geocode-# the name, then fetch the forecast for the coordinates. Each hop has its-# own decision so a failure says which hop failed.--name = "weather"-version = 1-description = "Current weather for a place, from Open-Meteo."-tags = ["weather", "read-only"]-license = "MIT"-hosts = ["geocoding-api.open-meteo.com", "api.open-meteo.com"]-start = "geocode"--# "forecast in Oslo" and "temperature in Oslo" read as "weather in Oslo".-[language]-synonyms = { weather = ["forecast", "temperature"] }--[[triggers]]-pattern = "[what's the] weather in {place}"-[[triggers]]-pattern = "[what's the] weather for {place}"-[[triggers]]-pattern = "how [hot|cold|warm] is it in {place}"--[inputs.place]-type = "str"-description = "A town or city name"--[inputs.units]-type = "str"-default = "celsius"-one_of = ["celsius", "fahrenheit"]--[nodes.geocode]-kind = "observe"-http = { method = "GET", url = "https://geocoding-api.open-meteo.com/v1/search?name={{ inputs.place | url }}&count=1&language=en&format=json" }-into = "geo"-extract = [- { into = "hit", json = "json.results[0]" },- { into = "lat", json = "json.results[0].latitude" },- { into = "lon", json = "json.results[0].longitude" },- { into = "name", json = "json.results[0].name" },- { into = "country", json = "json.results[0].country" },-]-next = "found"--[nodes.found]-kind = "decide"-on = "hit"-branches = [- { when = { exists = true }, then = "forecast" },- { else = "unknown-place" },-]--[nodes.forecast]-kind = "observe"-http = { method = "GET", url = "https://api.open-meteo.com/v1/forecast?latitude={{ state.lat }}&longitude={{ state.lon }}¤t=temperature_2m,relative_humidity_2m,wind_speed_10m,weather_code&temperature_unit={{ inputs.units }}" }-into = "fc"-extract = [- { into = "temp", json = "json.current.temperature_2m" },- { into = "humidity", json = "json.current.relative_humidity_2m" },- { into = "wind", json = "json.current.wind_speed_10m" },- { into = "code", json = "json.current.weather_code" },- { into = "unit", json = "json.current_units.temperature_2m" },-]-next = "have-temp"--[nodes.have-temp]-kind = "decide"-on = "temp"-branches = [- { when = { type = "number" }, then = "sky" },- { else = "no-forecast" },-]--# WMO weather codes, folded into words a person would use.-[nodes.sky]-kind = "decide"-on = "code"-branches = [- { when = { eq = 0 }, then = "clear" },- { when = { between = [1, 3] }, then = "cloudy" },- { when = { between = [45, 48] }, then = "fog" },- { when = { between = [51, 67] }, then = "rain" },- { when = { between = [71, 77] }, then = "snow" },- { when = { between = [80, 82] }, then = "rain" },- { when = { between = [85, 86] }, then = "snow" },- { when = { between = [95, 99] }, then = "storm" },- { else = "unknown-sky" },-]--[nodes.clear]-kind = "set"-set = { sky = "clear" }-next = "reply"-[nodes.cloudy]-kind = "set"-set = { sky = "cloudy" }-next = "reply"-[nodes.fog]-kind = "set"-set = { sky = "foggy" }-next = "reply"-[nodes.rain]-kind = "set"-set = { sky = "raining" }-next = "reply"-[nodes.snow]-kind = "set"-set = { sky = "snowing" }-next = "reply"-[nodes.storm]-kind = "set"-set = { sky = "stormy" }-next = "reply"-[nodes.unknown-sky]-kind = "set"-set = { sky = "weather code {{ state.code }}" }-next = "reply"--[nodes.reply]-kind = "done"-say = "{{ state.name }}, {{ state.country }}: {{ state.temp }}{{ state.unit }}, {{ state.sky }}, humidity {{ state.humidity }}%, wind {{ state.wind }} km/h."-output = { place = "{{ state.name }}", country = "{{ state.country }}", temperature = "{{ state.temp }}", unit = "{{ state.unit }}", sky = "{{ state.sky }}", humidity = "{{ state.humidity }}", wind_kmh = "{{ state.wind }}" }--[nodes.unknown-place]-kind = "fail"-reason = "unknown-place"-say = "I could not find a place called {{ inputs.place }}."--[nodes.no-forecast]-kind = "fail"-reason = "no-forecast"-say = "Open-Meteo found {{ state.name }} but returned no current temperature (status {{ state.fc.status }})."