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
6 changes: 5 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ Stop when a round returns only findings that do not qualify. Do not open another

Use current primary documentation for host behavior, plugin formats, and security guidance. Read `docs/decisions.md` before changing the product contract so old alternatives are not reopened without new evidence. The immutable 2.0.1 links in that file preserve the full earlier ADR and research archive.

Model behavior is proven only by deliberate receipts from real runs made with the host's own permission and budget controls. A receipt worth keeping holds everything fixed but the package: a throwaway fixture repository, a session carrying only the candidate package and the host's own built-ins, and the same prompt on both sides of the change. Isolate Codex by pointing both its own home and the operating system's home directory at a scratch location, because it also reads a host-agnostic user skill directory that its own home setting does not cover, and Claude by disabling every setting source and passing the package as a session plugin, which leaves authentication alone. Prove the isolation with a control run, and confirm it in the session transcript rather than by asking the model what it can see, before trusting anything built on it. Run the failing case before the change as well as after it, because a run that only shows the new behavior proves the wording is compatible with it, not that it produced it. Summarize claims and durable source links in `docs/evidence.md`; do not add one research file per run or release. A behavior no receipt has shown stays `UNVERIFIED`. Deterministic checks and CI never start a model, and tests never create or delete a repository.
Model behavior is proven only by deliberate receipts from real runs made with the host's own permission and budget controls. A receipt worth keeping holds everything fixed but the package: a throwaway fixture repository, a session carrying only the candidate package and the host's own built-ins, and the same prompt on both sides of the change. Isolate Codex by pointing both its own home and the operating system's home directory at a scratch location, because it also reads a host-agnostic user skill directory that its own home setting does not cover, and Claude by disabling every setting source and passing the package as a session plugin, which leaves authentication alone. Prove the isolation with a control run, and confirm it in the session transcript rather than by asking the model what it can see, before trusting anything built on it. Disabling the setting sources keeps the maintainer's own instruction files out of a session's context but does not stop the session from reading them with a shell command, so search each transcript for those files as well as for the package. Run the failing case before the change as well as after it, because a run that only shows the new behavior proves the wording is compatible with it, not that it produced it.

Keep a receipt small, because its cost is not proportional to what it settles: the 2.16.1 pass answered one yes-or-no question with forty sessions across fifty-one invocations, $165 and nearly five hours, and the four sessions that carried the answer cost under six dollars between them. Name the observable before running and stop each session once it lands rather than when the task finishes; where the observable is what a run does at the dispatch, paying for the delegates to finish buys nothing and costs most of the run, and where it is what they return, it does not. Read what earlier receipts recorded about the prompt shape that produces the behavior, pilot one session per arm, then run one more per arm and stop; a third is for when the two disagree. Keep one fixture, and when the pilot does not produce the behavior at all, fix the prompt from the record rather than by running another batch. Set a spending limit per session and a ceiling for the whole receipt, cap the sessions in flight, give every run its own fixture directory and log because two sharing one destroy each other's evidence, and read transcript write times before calling a run stuck, because a root blocked on a delegate looks the same as a hang.

Summarize claims and durable source links in `docs/evidence.md`; do not add one research file per run or release. A behavior no receipt has shown stays `UNVERIFIED`. Deterministic checks and CI never start a model, and tests never create or delete a repository.

## Checks

Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,21 @@

All notable changes to SkipHow 2.x appear in this file. Earlier release notes remain available on [GitHub Releases](https://github.com/mzored/SkipHow/releases).

## 2.16.1 (2026-09-03)

Documentation and receipts. The shipped instructions are byte-identical to 2.16.0; nothing a project installs behaves differently.

### Evidence

- Plan mode on its own is not the reason methods go unread in long installed sessions. It was the one candidate the 2026-09-02 audit of two installed CI-cost sessions named, because both began in plan mode and its host reminder opens by telling the run to dispatch Explore agents in parallel, with the agent type already chosen. Eleven isolated sessions ran on exact unmodified `v2.16.0` with plan mode as the only variable, each plan-mode session resumed into execution so the shape matched the field, five of them under a per-session spending limit and six in an earlier unbudgeted pass that agrees with them. The arms are the same: all eleven opened `delegation` before their first spawn, and every spawn named a level, forty-nine of forty-nine with plan mode and forty of forty without. The one asymmetry runs the wrong way for the hypothesis, `execution-health` opening in four of the six plan-mode sessions and none of the five without. Because the clean fixture never reproduced the failure, this bounds plan mode as a sole cause and not as one term in an interaction. The cause stays `UNVERIFIED` and no candidate replaces it.
- A fixture measures delegation only where delegation earns its cost. Twenty sessions on a documentation-reconciliation fixture, in three sizes, opened a method in three of them and dispatched one delegate between them, because a templated docs set is reconciled by writing one script and every run said so before doing it. Six on an eight-defect service opened `diagnosing-bugs` and `testing` and delegated nothing. One delegate across those twenty-six against eight or nine in every session on the prompt that named parallel lanes, which is consistent with the prompt shape the 2.15.0 pass recorded without making it the necessary condition.
- Isolation was proven by a control run carrying no package, which listed the host's own built-ins and showed no kernel text, no method text, and no trace of the maintainer's own instruction files. Each run confirmed the candidate from its own transcript by the base directory the skill reports, which three of the twenty documentation sessions did not, so they count as sessions that never carried it.

### Changed

- `AGENTS.md` bounds what a receipt may cost, because this pass settled one yes-or-no question with forty sessions across fifty-one invocations, $165 and nearly five hours while the four sessions that carried the answer cost under six dollars. Name the observable before running and stop each session once it lands, which for a receipt about the dispatch means not paying for the delegates to finish. Pilot one session per arm, run one more, and stop; keep one fixture and fix a prompt that produces nothing from the record rather than by running another batch. Set a per-session spending limit and a ceiling for the whole receipt, cap the sessions in flight, give every run its own fixture directory and log, and read transcript write times before calling a run stuck.
- `AGENTS.md` also records that disabling every setting source keeps the maintainer's own instruction files out of a session's context but does not stop the session from reading them with a shell command, so a transcript is searched for those files as well as for the package. One run in this pass did exactly that fifteen seconds in.

## 2.16.0 (2026-09-02)

### Changed
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.16.0
2.16.1
2 changes: 2 additions & 0 deletions docs/decisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,8 @@ The change this release makes is therefore a contradiction removed, not a demons

Version 2.15.1 changes how a method is laid out and not what it says. Each one opens with a scope line repeating the trigger the kernel already carries, each file over roughly four hundred words carries subheadings, and long sentences and paragraphs are split. Lists appear only where the content was already a set. The owner asked for this on readability grounds and the transcripts do not support a stronger claim: no session in the 2026-09-02 scan shows a rule violated while its file was in context in a way density explains, and the sessions that do open a method read it whole with one command, so the partial-read argument that justifies front matter elsewhere does not apply here. Anthropic's current guidance for instructions an agent follows prefers organised sections to dense paragraphs, and every comparable project ships structured reference material, but the one direct experiment on format finds no universal winner and puts prose among the best in three of five cells it measured. So this is a readability decision with an owner behind it, not a demonstrated repair. Length remains not the constraint, and the pass added 772 words rather than removing any.

Version 2.16.1 tested the one candidate the 2026-09-02 audit named. Both installed sessions began in plan mode, whose host reminder tells the run to launch Explore agents in parallel before anything else, which is a plausible competitor to the kernel's obligation at the act. Eleven isolated sessions on exact `v2.16.0`, plan mode the only variable and the plan-mode arm resumed into execution so the shape matched, behave identically: all eleven opened `delegation` before their first spawn, and all eighty-nine spawns named a level. The only difference favours plan mode, which opened `execution-health` in four of its six sessions and in none of the five without. Plan mode on its own does not produce the failure, and because the clean fixture never reproduced it there is nothing for plan mode to have interacted with, so the pair bounds a sole cause and not a contributing one. No candidate replaces it and the cause stays `UNVERIFIED`.

Revisit this if a receipt reproduces non-loading with everything else held fixed, if a kernel rule is displaced into a reference, or if added depth produces no change in outcome.

## Decomposition is decided before the work, by verifiability
Expand Down
Loading