rootstock
No. 2026-275Southwest Fort Worth, Texas — Zone 8b

How this works

rootstock is a weekly work ticket for one yard in Southwest Fort Worth, Texas. Every morning it reads the weather, checks the yard's Rules against it, and lists what the yard needs this week. Each Task on the list names the Rule that asked for it and the evidence behind it, so you can check why it's there.

It's built for the household that looks after this yard. The owner works from This Week, and the rest of the household gets a printable Away Card listing only the work they may do. If the owner gave you an Away Card, that card is your list. There's no account to make and nothing to buy.

The words this page uses

Task
One piece of work, from exactly one Rule, carrying the evidence that set that Rule off. Only the Planner can create one.
Rule
Something the yard needs and the condition that calls for it, written down in advance with the source it came from.
Plan
Every Task the Planner produced for one date. The ticket is how the site prints the Plan.
Artifact
The one file each morning's run publishes. It holds the Plan, the readings behind it, and whether the Narrator wrote the wording.

How a day runs

The lines under steps 1 to 5 are what each step did on the run that made the current ticket. The line under step 6 is the latest attempt, which is that same run unless a later one failed.

  1. Read the weatherAt 06:00 a scheduled job on the owner's computer fetches the yard's recent and forecast weather and soil readings from Open-Meteo. The yard's exact location lives on that computer and goes out only in that request. It never enters the code or this site.36 days, Sep 3 – Oct 8 / 29 observed, 7 forecast / chance of rain, soil temperature at 6 cm
  2. Plan the weekThe Planner checks every Rule against those readings, the list of Plants, and the record of work the owner keeps in the repository. For each Rule that applies, it writes one Task per Plant the Rule reaches, and it sets the order they appear in. It's ordinary code with no language model in it, and nothing else in the system can create a Task.10 Rules held / 1 Task from 1 Rule, for 1 Plant
  3. Apply the GuardsA Guard is a Rule that creates no work. It looks over the Tasks the Planner wrote and can hold one back, saying what would release it, or add a note to it. No Guard can delete a Task, so held-back work stays on the ticket, marked.No Guard reached a Task
  4. Write it upThe Narrator, a language model, gets the finished Plan and writes a short summary of the week and a plain sentence for each Task. If it fails, or answers about a Task that isn't in the Plan, the ticket goes out in the Planner's own shorter wording instead.Narrator wrote 1 of 1 Task sentences / 0 Advisories
  5. PublishThe run saves the result as one file, the Artifact, commits it to the project's repository, and pushes. Pushing is what deploys it, because GitHub Pages rebuilds this site from the repository. The site is static pages, so nothing runs on a server and your browser never calls a model.Generated Fri Oct 2, 11:00 UTC
  6. Show its ageEvery page that shows the ticket, this one included, works out how old the Artifact is when you open it. It warns you once the Artifact is more than 36 hours old. If a run fails, the last good ticket stays up and the page says the run failed.Last run Fri Oct 2, 11:00 UTC: published / 0 failures in a row

Four kinds of Rule

Rules are stored as data. Each carries the source it came from and whether the household may do its work, which the tag policy can narrow but never widen. Three kinds ask for work, and the evidence line on a Task depends on which one did.

Window
Applies while the date is inside a set range, like a fall pre-emergent window.
Threshold
Applies once an observed reading, like soil temperature, has held past a value for enough days in a row. A forecast can't set one off; forecast work shows as Approaching until the reading arrives.
Cadence
Applies when enough time has passed since the work was last recorded, or when it never has been.
Guard
Creates no work. Holds a Task back or adds a note to it.

Nothing here was invented

Here is one real Task from the current ticket, drawn the way This Week draws it, with each part numbered.

01Feed the EsperanzaEsperanzaFeed the Esperanza with fertilizer this week.No earlier recordSign off
Rule and evidence
  1. RuleThe Rule that asked for this work. It was written down in advance, sourced to Owner's own practice, and every Rule the yard holds is on the Rules page.
  2. PlantThe Plant this Task is for. A Rule can reach several Plants, and each one gets a Task of its own.
  3. InstructionWhat to do, in the Narrator's words. The Narrator chooses wording and nothing else; the section below lists what it may change.
  4. EvidenceThere's no earlier record of this work, so the Rule asks for it now. It prints on every row, and nothing on the page can fold it away.
  5. Sign offTap the box on This Week when the work is done. A second tap within 4 seconds cancels; after that the record stays. It's saved in this browser only, so it doesn't change the published ticket or tell anyone else. Tomorrow's plan can't see it either, because the Planner reads the record of work the owner keeps in the repository. A Task can come back until the owner records it there.
  6. Rule and evidenceOn This Week this strip is a drawer. Opening it shows the Rule's source and the values it checks, along with the dated readings behind this Task.

From the ticket planned Friday, October 2.

Using the site

This Week
The ticket itself. Work that's due now comes first, each Task with its Rule, its evidence, and a box to sign it off. Forecast work sits under Approaching, and weather worth knowing that no Rule produced sits apart under Also observed. The margin counts the week's Tasks and how many are still open in this browser. The number in the sheet's head is the date you're reading it, as the year and the day of the year. It isn't the day the ticket was planned, which the ticket gives separately.
Yard
A photo of the property with a numbered mark on each Plant that has a place on it, keyed to a list of every Plant. Open a Plant to see which Rules reach it and what it has on this week's ticket.
Rules
Every Rule the yard holds, grouped by whether it asked for work this week, is approaching, is waiting, or is a Guard, with what each one is waiting for and where it came from.
Away Card
A printable list of only the Tasks the rest of the household may do. It counts the Tasks it leaves off without naming them. Its address isn't published anywhere on the site, so the owner hands out the link.

What the Narrator may do

The Narrator is a language model. It gets the finished Plan and sends back wording, and wording is all it can change.

May

  • Write a short summary of the week, shown on This Week above the Tasks
  • Write one sentence for each Task
  • Skip a Task. It still shows, in the Planner's wording.
  • Add an Advisory, something it noticed that no Rule produced. This Week shows it apart, under Also observed, marked as citing nothing.

May not

  • Add a Task
  • Remove a Task
  • Change a date
  • Change a Task's Rule or its evidence
  • Change the order. The Planner sets it.

Most of that holds because the Narrator's answer has nowhere to put a date, a Rule or evidence, so the ticket prints those from the Plan. It points at Tasks by the IDs the Planner gave them. If any ID isn't in the Plan, the run throws the whole Narration away and publishes the Planner's wording instead. The Artifact records that, and the run still counts as a success. Losing the writing is not worth a wrong line.

No code checks what a sentence says. That's why every row still shows its Rule and evidence, straight from the Plan, beside the Narrator's words.

The exact instruction it's given

You are writing this week's narration for a home gardener. The plan below is final. You are selecting and wording, not planning.

Write a short summary of the week in the yard. The summary must name every task whose status is deferred and what would release it, however light the rest of the week looks. Then, for each task worth reading, write one plain sentence. Every taskId must be copied from the plan; never invent one, and leave out any task that is not worth a sentence.

Write sentences a person could read aloud without stumbling, and rewrite any that trips when spoken.

An advisory is for something you noticed that no rule in the plan produced, which is why it carries no citation. A task's annotations come from rules and already print on that task, so don't repeat one in an advisory or in a task's sentence. An empty advisories array is a normal answer.

Answer with JSON matching the supplied schema, and nothing else.

Its prompt is that instruction, the finished Plan as JSON, and the shape its answer has to take. The tool that runs the model adds its own standing instructions on top. It runs once a day on a fixed model, in a sandbox that can read files but not change them, and keeps no memory between runs.

The same Task, written two ways

Narrator on
Feed the EsperanzaEsperanzaFeed the Esperanza with fertilizer this week.
Narrator off
Feed the EsperanzaEsperanzanever recorded

The Task, date, Rule and evidence are the same, and only the wording differs. The Artifact records which of the two the ticket carries, and the current one carries the Narrator's.