docs: finish the TreeQ rebrand, and correct what it uncovered - #74
Merged
Merged
Conversation
…line
CLAUDE.md is loaded into every session in this repository, so its contents are
not documentation - they are standing instructions. It described a project that
stopped existing in August: a three-person team with a Person A and a Person B,
NSC 2026 with proposal and final-report deadlines, nine days remaining, a
PostgreSQL and PostGIS backend that has since been removed, RunPod GPU that was
never used, and a stated preference to optimise for "ทำให้กรรมการ NSC ว้าว".
That last line is the one that mattered. A standing instruction to impress
competition judges, in a repository whose entire discipline is that published
numbers must be re-derivable, was pulling in the opposite direction every
session. It now says accuracy comes before impressiveness, and that figures come
from running something rather than from memory.
Rewritten to what is true: solo, no institution, no scanner, no GPU, open data
only. The evidence rules that actually govern work here - sync_truth, the
fail-closed gate, commit the result whatever it says, never recalibrate on the
cohort you measure with. The two validation cohorts and what they do not cover.
And the machine constraint, because a full test suite on this laptop costs 29
minutes and once left 93 GB of scratch behind.
REBRAND, WHERE IT IS HONEST TO REBRAND
CONTRIBUTING, LICENSE, the brand README and BRAND.md now say TreeQ. The logo
needed nothing: both PNGs are wordless illustrations, byte-identical to what
shipped under the old name, so nothing on the deployed site ever displayed
"CarbonScan" and the rename cost the mark nothing. The brand README said
otherwise and now says this.
Deliberately NOT renamed: docs/decisions/, proposal/, docs/proposal/,
AI_AGENT_CONTEXT, SESSION_HANDOFF, DEVELOPMENT_PLAN, and everything under
docs/superpowers/. DOCUMENT_STATUS classifies those as historical, and an ADR
whose text is edited after the fact is no longer a record of a decision.
TASKS.md gets a banner instead of a rewrite. Its five phases are built around
the NSC timeline, a three-person team, and a Flutter app deleted under ADR 0007;
at the repository root with no banner it read as a current task list. It is now
labelled historical and listed as such in DOCUMENT_STATUS.
ONE THING FOUND WHILE READING
AI_AGENT_CONTEXT's caution banner tells the reader to trust the manifest and
then quotes Demol DBH MAE as 1.1673846154 cm, which is not what the manifest
says. The body of that file is historical and stays as written; the banner is
current guidance and is now correct at 0.898318.
sync_truth --check ok
scripts/tests 148 passed
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ts ago
Removing NEXT_PUBLIC_API_URL from production was the right call - it stopped the
site pointing at a Cloudflare tunnel that no longer resolved. What it did not do
was tell the copy.
Three places went on describing a flow that cannot happen. The landing hero
invited a visitor to upload a point cloud and get carbon. The viewer's card
header described the round trip - send this file to the backend, run the
pipeline, get an estimate with provenance. And the panel that appears when no
backend is configured said the carbon calculation runs "live through the API in
the presentation", a sentence written when a presenter had a local backend open
during NSC and meaningless now.
This is the defect the evidence gates exist to catch, arriving as prose instead
of as a number. A visitor clicking through would have found out by getting
nothing.
The viewer's two descriptions now switch on apiReady, which the component
already had. With no backend it says plainly that the separation runs in the
browser, the carbon step needs a pipeline that is not deployed, and the
reviewed result is on /demo. The core demo figures stay but are labelled as what
they are - a fixed-seed synthetic fixture proving the pipeline reruns to the
same answer - rather than sitting unqualified next to the words "carbon
estimate", where they read as a measurement.
The landing CTA changes from "ทดลองอัปโหลดไฟล์" to "อัปโหลดดูการแยก 3 มิติ".
Uploading still works and still does real work; it is the carbon half that is
gone, and the button now promises only the half that is there.
page.test.tsx binds each landing label to its route, so it failed on the rename.
The label is the thing under test and it changed on purpose; the expectation is
updated with a note saying why.
apps/web 31 files, 210 tests, type-check clean, build clean
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Chasing the old brand name through the docs turned up something worse than a stale name. DEPLOYMENT.md's targets table listed the web app at carbonscan-ai.vercel.app, which 404s, and the API at api.carbonscan-ai.up.railway.app, which was never provisioned. API.md gave a production base URL of api.carbonscan-ai.com, a domain nobody registered. Three addresses, none reachable, all stated as fact. The table is kept with the intended shape visible, because a plan is worth recording, but every row now says what is actually there: the web app live at its real URL, the API not deployed and NEXT_PUBLIC_API_URL unset, the database removed outright. DEVELOPMENT.md is the same failure aimed at a person rather than a service. Its Database Setup section walks a new developer through starting a PostGIS container and running Alembic migrations for a layer deleted in 927ae78 - no table backed it, no endpoint read from it. Following that section sets up infrastructure the code will never connect to. It now says so, and is kept because the migration files are still in the tree and someone will ask. ARCHITECTURE.md still described heterogeneous input as point clouds or multiple RGB photos. ADR 0007 removed the photo path a year ago. The brand renames themselves are the small part: ONBOARDING, ARCHITECTURE, DATASETS and DEPLOYMENT now say TreeQ in prose. PROJECT_SPEC's outstanding-rebrand note is corrected to list what actually remains - the GitHub repo slug and the package identifiers - and to state plainly that historical documents and ADRs are excluded on purpose, because editing a record after the fact is not a rebrand. STILL NOT DONE, AND DELIBERATELY carbonscan-api, carbonscan-ml, @carbonscan/types, @carbonscan/design-tokens, the carbonscan-uploads Supabase bucket, and APP_NAME with the test that asserts it. Renaming those breaks an editable install until pip runs again, and the bucket name is live infrastructure. Separate job, separate blast radius. sync_truth --check ok scripts/tests 148 passed Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Finishes the rename the repository has been half-way through since July, and
fixes three things the search turned up that were worse than a stale name.
What the rebrand actually needed
Less than expected. Both logo PNGs are wordless illustrations — byte-identical
to what shipped as CarbonScan AI — so nothing on the deployed site ever displayed
the old name, and the mark transferred without a redraw. The brand README claimed
otherwise and now doesn't.
CONTRIBUTING,LICENSE,assets/brand/README.md,docs/design/BRAND.md,ONBOARDING,ARCHITECTURE,DATASETSandDEPLOYMENTnow say TreeQ in prose.What it uncovered, which mattered more
Three documents pointed at hosts that do not exist.
DEPLOYMENT.mdlisted theweb app at
carbonscan-ai.vercel.app(404) and the API atapi.carbonscan-ai.up.railway.app(never provisioned).API.mdgave a productionbase URL of
api.carbonscan-ai.com(unregistered domain). All three stated asfact.
DEVELOPMENT.mdwalks a new developer through setting up PostGIS and runningAlembic migrations for a database layer deleted in
927ae78— no table backed it,no endpoint read from it.
The website still offered a backend that was removed two commits earlier. After
NEXT_PUBLIC_API_URLcame out of production, the landing hero still invited avisitor to upload and get carbon, the viewer's card header still described the
round trip, and the no-backend panel said the calculation runs "live through the
API in the presentation" — a sentence written when a presenter had a local backend
open during NSC. A visitor would have found out by getting nothing.
The viewer's copy now switches on
apiReady, which the component already had. Thelanding CTA changed from ทดลองอัปโหลดไฟล์ to อัปโหลดดูการแยก 3 มิติ — uploading
still does real work in the browser; it's the carbon half that's gone, and the
button now promises only the half that's there.
CLAUDE.md
Loaded into every session, so its contents are standing instructions rather than
documentation. It described a three-person team, NSC 2026 with nine days to a
deadline, a PostgreSQL backend since removed, and a stated preference to optimise
for ทำให้กรรมการ NSC ว้าว.
That last line was pulling against the repository's entire discipline every
session. Rewritten to what's true: solo, open data only, and accuracy before
impressiveness.
Deliberately not touched
docs/decisions/,proposal/,docs/superpowers/,AI_AGENT_CONTEXT,SESSION_HANDOFFDOCUMENT_STATUSclassifies these as historical. An ADR edited after the fact is no longer a record of a decision.carbonscan-api,carbonscan-ml,@carbonscan/*, bucketcarbonscan-uploads,APP_NAMETASKS.mdgets a banner rather than a rewrite — its five phases are built aroundthe NSC timeline and a Flutter app deleted under ADR 0007, and at the repo root
with no banner it read as a current task list.
One thing found while reading
AI_AGENT_CONTEXT's caution banner tells the reader to trust the manifest andthen quotes Demol DBH MAE as
1.1673846154 cm, which is not what the manifestsays. The body stays historical; the banner is current guidance and is now correct
at
0.898318.Verification
🤖 Generated with Claude Code