Skip to content

Reframe site copy as a condition report, plus 20k-business harvest - #11

Merged
nish3451 merged 6 commits into
mainfrom
copy/appraisal-reframe-and-harvest
Aug 7, 2026
Merged

Reframe site copy as a condition report, plus 20k-business harvest#11
nish3451 merged 6 commits into
mainfrom
copy/appraisal-reframe-and-harvest

Conversation

@nish3451

@nish3451 nish3451 commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Copy

"Leak audit" told a premium buyer his operation was sloppy. The first attempt at a fix swapped a tradesman's metaphor for a bureaucrat's — "The Audit" is compliance register (done to you, and every mid-market shop gives one away free), "named findings" is committee minutes. That kept the deficit frame and lost the imagery.

The frame changes instead: not your operation is broken but your site is beneath what you sell. That aims the critique at the website, usually built by a previous agency, and flatters the product. A supercar dealer will never admit to leaking; he will readily agree his site undersells the cars.

Free deliverable The Website Appraisal
The unit fault, not leak — faults belong to the site, never the business

"Fault" is deliberately blunt. A condition report names faults, and candour about the object is itself a luxury signal.

Register rule going forward: condition report, not repair job. Says appraisal, fault, named, undersells, written, private, retainer. Never leak, broken, bleeding, unlock, boost, growth, or any promised number.

Brand unified to The Tiny Studio across all seven pages; titles were previously split between two spellings.

Harvest

study/corpus.json grows to 20,005 businesses across 68 trades and 42 cities (London 3,603 · Paris 2,792 · New York 2,136 · Zurich 1,260).

Note

The site figures still read "Ninety-nine" — those spans are rendered from a daily scan snapshot, and the scan rotates a seventh of the corpus per run, so they need separate handling before they can quote the new corpus honestly. Not changed here.

Deployed and verified live: zero occurrences of "leak", assets 200, form still posts to /api/signups.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style
    • Rebranded the website as “The Tiny Studio” across pages, metadata, headers, footers, and accessibility labels.
    • Replaced “audit” and “leak” terminology with “appraisal” and “fault” throughout navigation, headings, calls to action, forms, and supporting content.
    • Updated pricing, service descriptions, FAQs, confirmation messaging, and specimen-page labels for consistent terminology.

'Leak audit' told a supercar dealer his operation was sloppy. Fable's
diagnosis: swapping it for 'The Audit' and 'named findings' traded a
tradesman's metaphor for a bureaucrat's, keeping the deficit frame while
losing the imagery. The frame changes instead: not 'you are broken' but
'your site is beneath what you sell', which aims the critique at the
website and flatters the product.

Free deliverable is now The Website Appraisal; faults belong to the site,
never the business. Register rule: condition report, not repair job.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a0c21374-d096-4481-9f66-a7c439c582a8

📥 Commits

Reviewing files that changed from the base of the PR and between bacfde5 and 10aef13.

📒 Files selected for processing (9)
  • public/agent-desk.html
  • public/agents.html
  • public/audit.html
  • public/brief-requested.html
  • public/index.html
  • public/pricing.html
  • public/specimen.html
  • scripts/check-site.mjs
  • study/corpus.json
🚧 Files skipped from review as they are similar to previous changes (8)
  • public/brief-requested.html
  • public/pricing.html
  • public/agents.html
  • scripts/check-site.mjs
  • public/specimen.html
  • public/agent-desk.html
  • public/index.html
  • public/audit.html

📝 Walkthrough

Walkthrough

Changes

The public HTML pages were rebranded from “TinyStudio” to “The Tiny Studio.” Site copy now uses “appraisal” and “fault” terminology instead of “audit” and “leak.” Metadata, navigation, headings, calls to action, FAQs, footer labels, and the site-copy check were updated.

Public Site Rebrand

Layer / File(s) Summary
Branding and shared labels
public/agent-desk.html, public/agents.html, public/audit.html, public/brief-requested.html, public/index.html, public/pricing.html, public/specimen.html
Page titles, metadata, structured data, navigation labels, headers, and footer branding now use “The Tiny Studio” and “The appraisal.”
Homepage and pricing terminology
public/index.html, public/pricing.html
Homepage and pricing content now describes appraisals, named faults, and the most valuable page being rewritten or rebuilt.
Appraisal page content
public/agents.html, public/audit.html, public/brief-requested.html, public/specimen.html
Appraisal, confirmation, agents, and specimen copy replaces audit and leak terminology with appraisal and fault terminology.
Site copy validation
scripts/check-site.mjs
The required Agent Desk copy check now expects “The Tiny Studio Agent Desk.”

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the site-copy reframe and the expansion of the business corpus to about 20,000 entries.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch copy/appraisal-reframe-and-harvest

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

https://github.com/nish3451/TinyStudio.io/blob/20109a8adeeb36cb6e9d495a2d4a13da5a085a80/study/corpus.json#L497-L500
P1 Badge Compare each rotating slice with its prior cycle

Expanding the corpus from 99 to 20,005 entries activates scan.py's len(corpus) > 500 path, where consecutive days select different modulo-seven slices. However, previous_snapshot() loads only the immediately preceding day's disjoint slice, so delta() classifies roughly 2,800 established hosts as NEW every day and never compares a page with its own previous reading; the resulting snapshot can also be rendered as though it represented the full corpus. Retain snapshots per slot or compare against the snapshot from seven days earlier before enabling the enlarged corpus.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@public/brief-requested.html`:
- Line 54: Update the navigation logo text near the existing TinyStudio label to
use the unified “The Tiny Studio” brand, matching the footer’s wording while
preserving the surrounding markup and styling.

In `@public/index.html`:
- Line 105: Update the paragraph text in public/index.html to remove the
duplicated article before “each,” so it reads “You get each fault named” while
preserving the rest of the sentence.
- Line 16: Update the homepage navigation CTA label and the corresponding CTA
labels in public/audit.html and public/pricing.html from “Request an audit” to
“Request the appraisal,” while leaving their links and surrounding navigation
unchanged.

In `@public/pricing.html`:
- Line 31: Update the plan heading containing “The Growth Desk” to use an
approved term and remove the excluded “growth” wording, leaving the surrounding
pricing content unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 00e3fae3-ccf7-4615-b34c-3f953a21b72a

📥 Commits

Reviewing files that changed from the base of the PR and between 6bf4c57 and 20109a8.

📒 Files selected for processing (8)
  • public/agent-desk.html
  • public/agents.html
  • public/audit.html
  • public/brief-requested.html
  • public/index.html
  • public/pricing.html
  • public/specimen.html
  • study/corpus.json


<footer>
<span class="sc">TinyStudio</span>
<span class="sc">The Tiny Studio</span>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use the unified brand in the navigation.

The footer now says The Tiny Studio, but the navigation logo at Line 25 still says TinyStudio. Update the logo text so the page has one brand label.

Proposed fix
-    <a class="logo" href="index.html">Tiny<span>Studio</span></a>
+    <a class="logo" href="index.html">The Tiny <span>Studio</span></a>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@public/brief-requested.html` at line 54, Update the navigation logo text near
the existing TinyStudio label to use the unified “The Tiny Studio” brand,
matching the footer’s wording while preserving the surrounding markup and
styling.

Comment thread public/index.html Outdated
Comment thread public/index.html Outdated
Comment thread public/pricing.html

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

https://github.com/nish3451/TinyStudio.io/blob/558265c118e0d3f2bdee146abca0d3dbd146d49d/public/agent-desk.html#L52
P1 Badge Align the required-copy check with the brand rename

The renamed text no longer contains the exact TinyStudio Agent Desk substring required by scripts/check-site.mjs:22-24, so npm test exits during npm run check with Missing Agent Desk page copy: TinyStudio Agent Desk; because .github/workflows/ci.yml runs this test suite, the commit cannot pass CI until the required-copy assertion is updated alongside the rename.

AGENTS.md reference: AGENTS.md:L2-L3


https://github.com/nish3451/TinyStudio.io/blob/558265c118e0d3f2bdee146abca0d3dbd146d49d/study/corpus.json#L497-L500
P1 Badge Preserve comparisons across the rotating scan shards

Once these additions push the corpus above 500 entries, the default path in study/scan.py:120-129 scans a different modulo-7 shard each day but compares it only with the immediately preceding snapshot. Consecutive shards have no overlapping URLs, so every daily run reports roughly 2,857 businesses as NEW and cannot detect changes against the same businesses' scan from seven days earlier, breaking the script's change-only monitoring contract; retain or locate the previous snapshot for the current shard before calculating the delta.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

nish3451 added a commit that referenced this pull request Aug 7, 2026
…he retired Agent Desk (#16)

The live llms.txt described the demoted self-serve Agent Desk (Pipeline
Brief, Implementation Checklist, Weekly Fix Report) as the current
product. The acked direction (tournament dossier, 2026-08-05) and the
canonical offer (tinystudio-in growth-brain/offer.md, renamed to The
Website Correction in tinystudio-in#9) make the human-reviewed managed
service the only active offer.

- public/llms.txt: describe The Website Correction exactly per offer.md
  (buyer, 7-working-day promise, deliverables, $1,000 founder pilots,
  Day 0 gate, human-review boundary, no-guarantee list); mark still-
  reachable Agent Desk surfaces as legacy with their safety rails and
  data-handling facts kept intact.
- public/offer.md: same source of truth, same structure as the canonical
  offer file.
- scripts/check-site.mjs: requiredPublicArtifacts now asserts the new
  copy so the old pitch cannot silently return.

index.html is deliberately untouched: PR #11 already rewrites the site
pages and this change must not collide with it. No deploy.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

https://github.com/nish3451/TinyStudio.io/blob/4fd77decf4f4e17a12dcadcd7aaa6371c362a7bf/study/corpus.json#L2502
P1 Badge Compare each scan slice with the matching cycle slot

Once this entry pushes the corpus above 500 sites, study/scan.py begins selecting a different seventh of the corpus each day, but previous_snapshot() still returns yesterday's disjoint slice and delta() consequently reports nearly every scanned host as NEW forever. This corrupts the daily change series that the study describes as its primary asset; retain per-slot history and compare against the snapshot from the same slot seven days earlier, or aggregate the rotating slices before computing deltas.


https://github.com/nish3451/TinyStudio.io/blob/4fd77decf4f4e17a12dcadcd7aaa6371c362a7bf/public/index.html#L16
P2 Badge Rename the remaining audit CTAs

A visitor now sees the service named “The appraisal” and “The Website Appraisal,” but the same navigation bar still asks them to “Request an audit.” This stale CTA also remains on agents.html, audit.html, pricing.html, and specimen.html, so the rebrand presents two names for the same conversion flow; update the customer-facing CTA labels consistently.


https://github.com/nish3451/TinyStudio.io/blob/4fd77decf4f4e17a12dcadcd7aaa6371c362a7bf/public/index.html#L105
P2 Badge Remove the extra article from the delivery sentence

The rewritten sentence renders as “You get the each fault named,” which is grammatically broken in a prominent description of the paid delivery process and obscures what the customer receives. Remove either “the” or “each” so the appraisal copy reads coherently.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- index.html: "You get the each fault named" -> "You get each fault named"
- agent-desk.html: "Cloudflare-powered The Tiny Studio agents" ->
  "Cloudflare-powered agents from The Tiny Studio" (twice, in og: and
  twitter: descriptions, so search-visible)
- five pages: nav CTA still read "Request an audit" after the rename,
  contradicting the PR's own register rule

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@nish3451

nish3451 commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

Overseer review — endorsed with three fixes applied (ee8c29f).

The reframe is right and the register rule ("condition report, not repair job") is the kind of specificity that makes this page belong to this business and no other. Truth check passes: no promised numbers added, and the unchanged "Ninety-nine" study spans are disclosed honestly in the PR body rather than quietly re-pointed at the 20,005-row corpus.

Held it for three register breaks a copy PR cannot ship with, now fixed on the branch:

  1. index.html — "You get the each fault named" (broken sentence on the page whose whole argument is candour and craft).
  2. agent-desk.html — "Cloudflare-powered The Tiny Studio agents" in both the og: and twitter: descriptions, i.e. search-visible. Now "Cloudflare-powered agents from The Tiny Studio".
  3. Five pages still had the nav CTA "Request an audit" after the rename — the exact mixed register the PR declares against. Now "Request the appraisal".

npm test and npm run check pass on the fixed branch. Branch updated onto main; auto-merge enabled once verify goes green.

Follow-up, not blocking: the study spans still read "Ninety-nine" against a 20,005-business corpus. That gap is honest today only because the method note scopes it to the daily scan — the next copy cycle should either quote the corpus or say plainly that the scan samples it.

@nish3451
nish3451 merged commit 4c30372 into main Aug 7, 2026
3 checks passed
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

https://github.com/nish3451/TinyStudio.io/blob/10aef13fafd0d373bb6c3b7761f4b2d0faa34f4e/study/corpus.json#L2503-L2505
P1 Badge Compare rotating scans with the matching weekly snapshot

Once this expansion takes the corpus past 500 entries, study/scan.py:119-129 switches to seven disjoint daily modulus slices, but previous_snapshot() still loads yesterday's slice. Consequently, after the first run nearly every one of today's roughly 2,858 hosts is absent from yesterday's snapshot and delta() reports it as NEW; genuine changes are also never compared with the same site's result from seven days earlier. Compare each slot with its prior run or retain per-host history.


https://github.com/nish3451/TinyStudio.io/blob/10aef13fafd0d373bb6c3b7761f4b2d0faa34f4e/study/corpus.json#L2508-L2510
P1 Badge Keep slice totals out of whole-corpus page claims

With more than 500 entries, study/scan.py:119-140 records attempted, readable, industry, geography, and finding totals for only the current one-seventh slice. study/render.py:48-62 then treats those fields as the complete study and writes them into the public pages, so running the documented scan/render workflow will publish roughly 2,858-site slice statistics as if they describe the 20,005-business corpus, with the figures changing as the slot rotates. Aggregate rolling results for all slots or prevent partial snapshots from feeding the renderer.


https://github.com/nish3451/TinyStudio.io/blob/10aef13fafd0d373bb6c3b7761f4b2d0faa34f4e/study/corpus.json#L38670
P2 Badge Validate harvested URLs before adding them to the corpus

For this entry, standard URL parsing treats info7faces as user information and gmail.com as the hostname, so the scanner fetches Gmail and records its homepage metrics as a Zurich beauty business. The added corpus also contains whitespace, semicolon-corrupted, and raw Unicode-host URLs that will always be marked unreadable by urllib; rejecting credentials and invalid hosts and normalizing IDNs during harvesting is necessary to keep the study results accurate.


https://github.com/nish3451/TinyStudio.io/blob/10aef13fafd0d373bb6c3b7761f4b2d0faa34f4e/public/specimen.html#L25
P2 Badge Finish the appraisal rename in the specimen body

When a visitor opens the newly relabeled appraisal specimen, its body still calls the deliverable “a real audit,” refers to “the full audit,” and describes “the study behind this audit” at lines 31, 72, and 77. This makes the specimen contradict its new title and navigation terminology; update those customer-visible passages along with the changed heading.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant