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
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# Lane report: product-contract candidate round 1 — harvest re-verify (2026-08-20)

Lane: tinystudio-io lane 1
Branch: `docs/evidence-product-contract-round1-harvest-2026-08-20`
Item: `b063acbb7f` — "Harvest the abandoned 'f168b00e05 repository product
contract still identifies reti' candidate round - 1 worktree"

## Outcome

**Closed. The abandoned round-1 candidate work is fully represented in
current main and live, and the tracker item `f168b00e05` ("repository
product contract still identifies the retired Agent Desk as current") stays
closed against drift on the current head `d0daea93` and live (2026-08-20).
No code change was needed; the closeout evidence is recorded.**

## What the abandoned round held

Per the continuity line in
`agent-state/tinystudio-io-improvement-loop/retired-cycles.md` (retired
2026-08-10T00:45:33), the round spanned eight worktrees:

- `/home/nish/workspaces/agent-worktrees/candidates/tsio-product-contract-20260810-{1,2,3,4,5}`
- `/home/nish/workspaces/agent-worktrees/candidates/tsio-product-contract-refine-20260810-{1,2}`
- `/home/nish/workspaces/agent-worktrees/tinystudio-io-lane1-20260810-004533`
(branch `improve/repository-product-contract-a121ce8c`, HEAD `96a10b3`)

Re-checked on 2026-08-20:

- All seven candidate worktrees still exist on disk; every branch is pushed
to `origin/candidate/*` and in sync; the only uncommitted item in each
is a deleted Python bytecode cache
(`study/__pycache__/harvest.cpython-312.pyc`), a build artifact with no
content. No finished-but-uncommitted product work exists to rescue.
- The abandoned lane-1 worktree still holds the two uncommitted
working-tree refinements on top of `96a10b3` (the stash commit `939e6c4`)
noted in the 2026-08-17 receipt. No new work has been added there since
the 2026-08-10 closure.

## Where the same work landed

The finding was harvested through the `improve` branch and merged as **PR
#58** (`11864a7`, "docs(contract): make the Website Appraisal the active
repo truth", merged 2026-08-10). The underlying finding was additionally
closed by PR #99. Subsequent re-verifications (2026-08-11, 2026-08-12,
2026-08-13, 2026-08-14, 2026-08-17) confirmed the work is fully represented
in main.

## Verification performed on the current head (`d0daea9`, 2026-08-20)

1. **Current plan marker** — `git show origin/main:specs/004-website-appraisal/plan.md`
opens with `> **Status: CURRENT.** The Website Appraisal is TinyStudio's
current offer and this plan describes the current public contract.
Supersedes the Agent Desk product framing of
`specs/001-public-buyer-page/` and `specs/002-minimal-input-agent-desk/`;
the wellness-clinic campaign plan
(`specs/003-wellness-clinic-launch/plan.md`) is a historical campaign
plan.`
2. **Historical banners** — `specs/001-public-buyer-page/plan.md` and
`specs/002-minimal-input-agent-desk/plan.md` each open with
`> **Status: HISTORICAL — retired.**` and point at the current plan.
3. **Superseded banner** — `specs/003-wellness-clinic-launch/plan.md`
opens with `> **Status: SUPERSEDED — historical campaign plan.**`.
4. **README + MEMORY mirror the contract**:
- `README.md` line 3 names The Website Appraisal as the public
surface; lines 9-11 declare the active product contract at
`specs/004-website-appraisal/plan.md`.
- `MEMORY.md` lines 13-14 mirror that declaration; the "Legacy Agent
Desk" section demotes the Agent Desk to a legacy mechanics note with
safety rails preserved.
5. **`package.json` wiring** — description names The Website Appraisal
and the human-reviewed desk on Cloudflare Workers; the `test`
script chains `test:contract`; `test:contract` runs
`node --test scripts/test-product-contract.mjs`.
6. **Plan Boundaries** — `specs/004-website-appraisal/plan.md` discloses
that `/api/signups` stores the submitted email and the normalized
submitted website URL in D1 alongside lightweight request metadata —
byte-identical to the abandoned draft.
7. **Product-contract guard** — `scripts/test-product-contract.mjs` carries
the refactored superset of the abandoned draft's semantics:
- bounded leading-banner status declaration (`hasLeadingStatus`, lines
98–104, anchored on `>` plus optional bold plus terminator — period,
em dash, bold close, or line end);
- per-claim `AGENT_DESK_ACTIVE_PATTERNS` evaluation iterating `matchAll`
rather than only the first match (lines 149, 176, 189, 230);
- negation-precedes-term guarantee check using `clause.slice(0,
term.index)` scoping (line 231);
- `WEBSITE_STORED` / `WEBSITE_NOT_STORED` disclosure guards (lines
252–259), asserted on current `plan` content.
8. **Repository-descriptor drift between PR #58 (`11864a7`) and current
main (`d0daea9`)** — only toolchain/feature commits (wrangler
`^4.120.1` bump, the 2026-08-17 favicon SVG landing, the GoodFirms /
Clutch / render-blocking / apple-touch-icon / AI-search /
pipeline-bridge re-verifications, the retired-Agent-Desk canonical
fix, the appraisal `autocomplete="email"` patch, the 2026-08-15
controlled entity-and-offer re-run, the 2026-08-18 six-a-month
intake-cap rebase of PR #116); zero contract drift. README, MEMORY,
and package.json still name The Website Appraisal as the current
offer.
9. **Product-contract test** — `node --test scripts/test-product-contract.mjs`
→ 8/8 pass (including the "known bad shape" fixtures proving the guard
rejects the regressions it guards, and the `WEBSITE_STORED`
boundary-disclosure assertion).
10. **Site-wide checker** — `node scripts/check-site.mjs` → "TinyStudio.io
checks passed."

## Verification live (2026-08-20)

- `https://tinystudio.io/` — HTTP 200, titles "TinyStudio — The Website
Appraisal" with zero Agent Desk / self-serve mentions in the landing
copy.
- `https://tinystudio.io/llms.txt` — HTTP 200, opens "TinyStudio's current
offer: The Website Appraisal"; the Legacy Self-Serve Agent Desk section
states "is demoted and is not the product TinyStudio sells".
- `https://tinystudio.io/offer.md` — HTTP 200, titled "The Website
Appraisal"; the demotion line ("is demoted and is not the current
offer") is intact.

## Files changed

- `docs/evidence/product-contract-round1-harvest-2026-08-20.md` — new
evidence receipt recording the 2026-08-20 re-verification on the current
head and live site (the lane's claimed file).
- `.lane/reports/docs-evidence-product-contract-round1-harvest-2026-08-20.md`
— this lane report.

## Verification commands

- `git show origin/main:specs/004-website-appraisal/plan.md` — opens with
`> **Status: CURRENT.**`.
- `git show origin/main:specs/001-public-buyer-page/plan.md` and
`…/002-minimal-input-agent-desk/plan.md` — open with
`> **Status: HISTORICAL — retired.**`.
- `git show origin/main:specs/003-wellness-clinic-launch/plan.md` — opens
with `> **Status: SUPERSEDED — historical campaign plan.**`.
- `node --test scripts/test-product-contract.mjs` → 8/8 pass.
- `node scripts/check-site.mjs` → exit 0, "TinyStudio.io checks passed."
- `curl -sI -w "%{http_code}\n" https://tinystudio.io/` →
`200`; `/llms.txt` and `/offer.md` likewise `200`.

## Honest boundary

This lane claims no behavioural change in the public surface. The
retired `/agent-desk` page and the legacy `/api/agent-audit` endpoint
remain operational as legacy mechanics, exactly as the current plan's
"Legacy Mechanics (retired, still operational)" section describes. This
lane makes no claim about pricing/legal prose (owned by `pricing.html`),
no claim about runtime behaviour of `src/worker.js` (owned by the
application test suite), and no claim about any engine's answer to a
question about TinyStudio. The receipt confirms the **abandoned
round-1 candidate work** is fully represented in current main, the
**repository product contract** is The Website Appraisal, the **retired
Agent Desk framing** is gone from the top-level truth files, and the
**deterministic contract guard** still rejects the regressions it guards.
144 changes: 144 additions & 0 deletions docs/evidence/product-contract-round1-harvest-2026-08-20.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Product-contract candidate round 1: harvest re-verification (2026-08-20)

Date: 2026-08-20
Scope: re-verify the abandoned round-1 candidate work for the finding
`f168b00e05` ("repository product contract still identifies the retired
Agent Desk as current") against the current `origin/main` (`d0daea9`) and
live, so the tracker item stays closed against drift and cannot re-open.

This receipt extends `product-contract-round1-harvest-2026-08-17.md` (the
2026-08-17 re-verification) onto the current main (`d0daea9`) and live
(2026-08-20).

## What the abandoned round held

Per the continuity line in
`agent-state/tinystudio-io-improvement-loop/retired-cycles.md` (retired
2026-08-10T00:45:33), the round spanned eight worktrees:
Comment on lines +16 to +17

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Uncommitted continuity source

The receipt attributes its eight-worktree inventory and no-work-left conclusion to agent-state/tinystudio-io-improvement-loop/retired-cycles.md, but that path is absent from the repository. Commit the source or explicitly identify and preserve the external evidence so maintainers can independently reproduce this portion of the closeout.

Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/evidence/product-contract-round1-harvest-2026-08-20.md
Line: 16-17

Comment:
**Uncommitted continuity source**

The receipt attributes its eight-worktree inventory and no-work-left conclusion to `agent-state/tinystudio-io-improvement-loop/retired-cycles.md`, but that path is absent from the repository. Commit the source or explicitly identify and preserve the external evidence so maintainers can independently reproduce this portion of the closeout.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code Fix in Codex Fix in Cursor


- `/home/nish/workspaces/agent-worktrees/candidates/tsio-product-contract-20260810-{1,2,3,4,5}`
- `/home/nish/workspaces/agent-worktrees/candidates/tsio-product-contract-refine-20260810-{1,2}`
- `/home/nish/workspaces/agent-worktrees/tinystudio-io-lane1-20260810-004533`
(branch `improve/repository-product-contract-a121ce8c`, HEAD `96a10b3`)

Re-checked on 2026-08-20:

- All seven candidate worktrees still exist on disk; every branch is pushed
to `origin/candidate/*` and in sync; the only uncommitted item in each
is a deleted Python bytecode cache
(`study/__pycache__/harvest.cpython-312.pyc`), a build artifact with no
content. No finished-but-uncommitted product work exists to rescue.
- The abandoned lane-1 worktree still holds the two uncommitted
working-tree refinements on top of `96a10b3` (the stash commit `939e6c4`)
noted in the 2026-08-17 receipt. No new work has been added there since
the 2026-08-10 closure.

## Where the same work landed

The finding was harvested through the `improve` branch and merged as **PR
#58** (`11864a7`, "docs(contract): make the Website Appraisal the active
repo truth", merged 2026-08-10). The underlying finding was additionally
closed by PR #99. Subsequent re-verifications on 2026-08-11, 2026-08-12,
2026-08-13, 2026-08-14, and 2026-08-17 have confirmed the work is fully
represented in main.

## Verification performed on the current head (`d0daea9`, 2026-08-20)

1. **Current plan marker** — `git show origin/main:specs/004-website-appraisal/plan.md`
opens with `> **Status: CURRENT.** The Website Appraisal is TinyStudio's
current offer and this plan describes the current public contract.
Supersedes the Agent Desk product framing of
`specs/001-public-buyer-page/` and `specs/002-minimal-input-agent-desk/`;
the wellness-clinic campaign plan
(`specs/003-wellness-clinic-launch/plan.md`) is a historical campaign
plan.`
2. **Historical banners** — `specs/001-public-buyer-page/plan.md` and
`specs/002-minimal-input-agent-desk/plan.md` each open with
`> **Status: HISTORICAL — retired.**` and point at the current plan.
3. **Superseded banner** — `specs/003-wellness-clinic-launch/plan.md`
opens with `> **Status: SUPERSEDED — historical campaign plan.**`.
4. **README + MEMORY mirror the contract**:
- `README.md` line 3 names The Website Appraisal as the public
surface; lines 9-11 declare the active product contract at
`specs/004-website-appraisal/plan.md`.
- `MEMORY.md` lines 13-14 mirror that declaration; the "Legacy Agent
Desk" section demotes the Agent Desk to a legacy mechanics note with
safety rails preserved.
5. **`package.json` wiring** — description names The Website Appraisal
and the human-reviewed desk on Cloudflare Workers; the `test`
script chains `test:contract`; `test:contract` runs
`node --test scripts/test-product-contract.mjs`.
6. **Plan Boundaries** — `specs/004-website-appraisal/plan.md` discloses
that `/api/signups` stores the submitted email and the normalized
submitted website URL in D1 alongside lightweight request metadata —
byte-identical to the abandoned draft.
7. **Product-contract guard** — `scripts/test-product-contract.mjs` carries
the refactored superset of the abandoned draft's semantics (bounded
leading-banner status declaration, per-claim Agent Desk evaluation
over `matchAll`, negation-precedes-term guarantee check, and the
`WEBSITE_STORED` / `WEBSITE_NOT_STORED` disclosure guards).
8. **Repository-descriptor drift between PR #58 (`11864a7`) and current
main (`d0daea9`)** — only toolchain/feature commits (wrangler
`^4.120.1` bump, the 2026-08-17 favicon SVG landing, the GoodFirms /
Clutch / render-blocking / apple-touch-icon / AI-search /
pipeline-bridge re-verifications, the retired-Agent-Desk canonical
fix, the appraisal `autocomplete="email"` patch, the 2026-08-15
controlled entity-and-offer re-run, the 2026-08-18 six-a-month
intake-cap rebase of PR #116); zero contract drift. README, MEMORY,
and package.json still name The Website Appraisal as the current
offer.
9. **Product-contract test** — `node --test scripts/test-product-contract.mjs`
→ 8/8 pass (including the "known bad shape" fixtures proving the guard
rejects the regressions it guards, and the `WEBSITE_STORED`
boundary-disclosure assertion).
10. **Site-wide checker** — `node scripts/check-site.mjs` → "TinyStudio.io
checks passed."

## Verification live (2026-08-20)

- `https://tinystudio.io/` — HTTP 200, titles "TinyStudio — The Website
Appraisal" with zero Agent Desk / self-serve mentions in the landing
copy.
- `https://tinystudio.io/llms.txt` — HTTP 200, opens "TinyStudio's current
offer: The Website Appraisal"; the Legacy Self-Serve Agent Desk section
states "is demoted and is not the product TinyStudio sells".
- `https://tinystudio.io/offer.md` — HTTP 200, titled "The Website
Appraisal"; the demotion line ("is demoted and is not the current
offer") is intact.

## Files changed

- `docs/evidence/product-contract-round1-harvest-2026-08-20.md` — new
evidence receipt recording the 2026-08-20 re-verification on the current
head and live site (the lane's claimed file).
- `.lane/reports/docs-evidence-product-contract-round1-harvest-2026-08-20.md`
— this lane's report.

## Verification commands

- `git show origin/main:specs/004-website-appraisal/plan.md` — opens with
`> **Status: CURRENT.**`.
- `git show origin/main:specs/001-public-buyer-page/plan.md` and
`…/002-minimal-input-agent-desk/plan.md` — open with
`> **Status: HISTORICAL — retired.**`.
- `git show origin/main:specs/003-wellness-clinic-launch/plan.md` — opens
with `> **Status: SUPERSEDED — historical campaign plan.**`.
- `node --test scripts/test-product-contract.mjs` → 8/8 pass.
- `node scripts/check-site.mjs` → exit 0, "TinyStudio.io checks passed."
- `curl -sI -w "%{http_code}\n" https://tinystudio.io/` →
`200`; `/llms.txt` and `/offer.md` likewise `200`.

## Honest boundary

This lane claims no behavioural change in the public surface. The
retired `/agent-desk` page and the legacy `/api/agent-audit` endpoint
remain operational as legacy mechanics, exactly as the current plan's
"Legacy Mechanics (retired, still operational)" section describes. This
lane makes no claim about pricing/legal prose (owned by `pricing.html`),
no claim about runtime behaviour of `src/worker.js` (owned by the
application test suite), and no claim about any engine's answer to a
question about TinyStudio. The receipt confirms the **abandoned
round-1 candidate work** is fully represented in current main, the
**repository product contract** is The Website Appraisal, the **retired
Agent Desk framing** is gone from the top-level truth files, and the
**deterministic contract guard** still rejects the regressions it guards.
Loading