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
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,28 @@

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

## 7.0.2 (2026-10-21)

### Reports the owner can read, follow-ups the lead carries

- The final report reaches the owner in the language they write in and in product terms: what changed for users, where it runs and on which branch, decisions they would notice, and what is unverified, blocked, or waiting on them. Commit hashes, check names, and the account of every part, branch, worktree, finding, and blocker go in the commit, pull request, or issue the work may write and its audience may read, and otherwise stay in the report, so a read-only request still writes nothing. The kernel no longer orders the report to lead with how the work was checked or to use the `UNVERIFIED` label.
- Parts and findings of the requested outcome stay with the lead, done directly or through delegates. The lead never leaves them to sessions the owner has to start.
- When the host or sandbox refuses something the work needs, the lead asks the owner once, plainly, for a lasting permission instead of handing over a one-off command.
- The kernel is 83 characters and two words shorter. Three sentences that the delegation, tracked-work, testing, and integration playbooks already carry at the act left it, along with the delegation entry in References, which the dispatch rule already links.

### Why

An owner reported spending their time managing agents instead of the product and listed seven behaviors to fix. Each was checked against the 34 root sessions that ran 7.0.1 on that owner's project: 112 owner messages, 348 closing messages, and the merges in the same window. Three items already held on 7.0.1: finished change sessions ended merged into the non-production branch with their worktrees retired, the one exception following a project rule that reserves merges for a grant; the window's merges were mostly removals; and ordinary requests worked without naming a workflow. Three items traced to the kernel's own wording. 64% of closings to an owner writing in Russian were mostly English, and 64% carried hashes, branches, pull request numbers, or `UNVERIFIED`, which the Done section literally asked for. Six sessions ended with follow-up session cards for findings of their own work, which the owner then started, and the kernel never said those were the lead's. Three sessions handed the owner the same one-off command for a step the owner's own settings refused, where the kernel said only to name the blocker.

Superpowers and Matt Pocock's skills, read as they stand today, set no rule on the language or detail of the final report. Superpowers' parallel dispatch returns results to the lead, and nothing in either was worth taking.

### Checks and evidence

- This is a patch release. It restores what the owner-outcome contract already promised: one accountable lead and an honest report the owner can use. Authority and protected-action boundaries are unchanged.
- The corpus gains `owner-report-in-owner-language`, and `tracked-work-finding-reported-not-recorded` now forbids handing a confirmed finding to a session the owner must start. Neither has run.
- An isolated read-only Codex review ran two rounds. Round 1 found that the new accounting sentence told a read-only request, or a project with no tracker, to write a commit, pull request, or issue, against the Authority section and the tracked-work rule on audience. It now names only records the work may write and its audience may read, and otherwise the report; the decision and the contract match. Round 1 also found that the new corpus case claimed to check the commit message, which no event observes; the case and its README note now claim only what the report leaves out. Round 2 found nothing that qualified.
- The owner declined paid model sessions for this release. No model sessions or clean-install runs were made, and the new behavior remains `UNVERIFIED`.

## 7.0.1 (2026-10-18)

### Inherited rules and tooling are the CTO's to judge
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7.0.1
7.0.2
20 changes: 20 additions & 0 deletions docs/decisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@ The agent settles engineering and reversible technical uncertainty itself, takin

**Reopens when.** The recommendation channel hands product choices back, or an owner asks for the technical options they no longer see.

### The owner hears results in their language and product terms

The completion report reaches the owner in the language they write in and in product terms: what changed for users, where it runs and on which branch, decisions they would notice, and what is unverified, blocked, or waiting on them. Hashes, check names, and per-part accounting go in the commit, pull request, or issue the request authorizes and its audience may read, and otherwise in the report. A host or sandbox refusal the owner can clear becomes one plain request for a lasting permission, not a one-off step to repeat.

**Why.** An owner who writes no code reads reports to decide what to look at next, and accounting they cannot use costs them attention every turn. The project's records are where a later agent or reviewer needs that accounting. A one-off workaround for a standing refusal comes back on every run that meets it.

**Status.** `Contract`. Behavior `UNVERIFIED`; one corpus case is not run.

**Reopens when.** A run's report drops a fact the owner needed to act, the accounting is missing from the records, or owners ask for the technical detail back.

### Read-only stays read-only, and a grant sets what travels

Answer, diagnosis, review, research, audit, and plan requests write nothing unless the owner asks for a record or repair. A change request carries routine delivery and tracking through the established non-production workflow, which settles what may travel, not how often. The lead batches accepted results into delivery units without holding finished work behind unrelated blockers. Iteration stays local until the owner asks for delivery, names a destination, or, outside an invoked iteration workflow, accepts with nothing further to send.
Expand Down Expand Up @@ -224,6 +234,16 @@ Briefs convey a compact, evidenced handoff. Bulky artifacts travel by reference

**Reopens when.** A run loses findings, accepts inaccessible proof, writes blanket report files, copies bulk into the coordinator, or takes a filter's status as the check's.

### Parts and findings of one outcome stay with the lead

The lead carries every part and confirmed finding of the requested outcome itself or through delegates whose returns it settles. It never leaves them to sessions the owner must start or coordinate.

**Why.** A session the owner has to start makes the owner the coordinator this product exists to replace, and its result never returns to the lead that owns the outcome. Separate work the owner did not ask for stays a recommendation, and deferral keeps its own rule.

**Status.** `Contract`. Behavior `UNVERIFIED`; one corpus case is not run.

**Reopens when.** A run drops a finding instead of carrying it, a delegate fan-out costs more than the owner-started session it replaced, or a host makes owner-visible sessions report back to the lead.

## Delivery and custody

### All project engineering state is the lead's
Expand Down
2 changes: 1 addition & 1 deletion docs/evidence.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This ledger says which of SkipHow's requirements a run has shown. The [owner-out

## Current package

No retained receipt covers the current package. Retained current-package CTO scenarios with Observed receipts: 0 of 12. All 135 cases in [the corpus](../evals/cases.json) are unrun, and every check in [the host ledger](../evals/host-smoke.json) is `UNVERIFIED` for the current candidate. Every observation below names an older package and supports only the wording and conditions it exercised.
No retained receipt covers the current package. Retained current-package CTO scenarios with Observed receipts: 0 of 12. All 136 cases in [the corpus](../evals/cases.json) are unrun, and every check in [the host ledger](../evals/host-smoke.json) is `UNVERIFIED` for the current candidate. Every observation below names an older package and supports only the wording and conditions it exercised.

## Three labels

Expand Down
4 changes: 2 additions & 2 deletions docs/outcome-contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ Each outcome is a duty the product owes the owner. The linked file is where the

**Status comes from live evidence.** A status request rebuilds each outcome from its destination, workspaces, reviews, checks, and records, and changes nothing. A change request also retires integrated leftovers nothing holds. Completion means the whole outcome, never a merge or a tracker status alone. Facts Git can recover never become a parallel registry.

**One lead stays accountable.** Delegates apply the same standard within the authority their brief relays and return what they find outside it. Every branch, worktree, checkout, service, and uncommitted change in the project is the lead's, made by a session or delegate, and never the owner's to decide. Parallel writers need verified separate workspaces. A live session's lane stays untouched, and a finished session's leftover ends integrated, recorded, or retired with its commit named. A resumed session rebuilds from live state. A missing host capability gets a safe fallback and an honest limitation.
**One lead stays accountable.** Delegates apply the same standard within the authority their brief relays and return what they find outside it. Parts and findings of one outcome stay with the lead, never as sessions the owner must start. Every branch, worktree, checkout, service, and uncommitted change in the project is the lead's, made by a session or delegate, and never the owner's to decide. Parallel writers need verified separate workspaces. A live session's lane stays untouched, and a finished session's leftover ends integrated, recorded, or retired with its commit named. A resumed session rebuilds from live state. A missing host capability gets a safe fallback and an honest limitation.

**Every change carries evidence that fits it.** A verifiable pass is reused while its inputs match. A test exists to catch a break a user or caller would notice. Independent review goes where a mistake is costly, and a finding that names no break ends the round. Slow, flaky, or broken checks are fixed at their cause without weakening what protects delivery. The lead verifies the result at its destination. See [testing](../plugins/skiphow/skills/skiphow/references/testing.md).

**Completion is honest.** The report names what was delivered, the evidence that applies, and material unresolved work. A delegate's claim, a configured setting, or a passing schema is not evidence about a destination or about model behavior.
**Completion is honest.** The report names what was delivered, the evidence that applies, and material unresolved work. It reaches the owner in their language and in product terms; hashes, branches, and check names belong in the records the work may write, and otherwise in the report. A delegate's claim, a configured setting, or a passing schema is not evidence about a destination or about model behavior.

## Host boundary

Expand Down
5 changes: 4 additions & 1 deletion evals/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,10 @@ overlay and requires the candidate to revise a rule an agent session wrote that
log entry, while the owner-requested rule beside it stays. The 7.0.1 case `agent-chosen-size-ratchet-revised` uses the
`orders-service-size-rule` overlay, whose instructions carry no labels: only the owner's quoted words show that the wish
for small modules is theirs, while the 20-line limit and the baseline that an ordinary fix can trip are not. The candidate
must revise that mechanism, keep the wish, and neither edit the baseline to comply nor ask the owner. Six earlier cases were rewritten where they required a
must revise that mechanism, keep the wish, and neither edit the baseline to comply nor ask the owner. The 7.0.2 case
`owner-report-in-owner-language` sends `orders-service` a Russian prompt and requires the candidate to report in
Russian and product terms, with no hashes, file names, commands, or test counts in that report, and
`tracked-work-finding-reported-not-recorded` now forbids handing a confirmed finding to a session the owner must start. Six earlier cases were rewritten where they required a
reviewer on every slice, an independent review of a one-supplier wording change, or retained regression checks, and
`delegation-brief-and-returned-problem` now requires the brief to carry the Engineering standard. No arm without the
candidate package is required to produce these events.
Expand Down
Loading
Loading