AI Rocket · Build Log · Entry 02
Second session of the same day, and a much smaller one. A public repository, a custom domain, and a redaction pipeline that came within one commit of publishing the list of terms it exists to suppress.
The repository is public at jobisgreat/airocket-build-log and serves from
buildlog.airocket.pro over enforced HTTPS.
Entry 01 carries 15 charts in a single 276,748-byte file with zero external scripts and
zero external stylesheets — it renders with the network unplugged.
Nothing goes into this repository until a checker reads the rendered text of the sealed report and refuses the push if a blocked term survives. That checker had passed — 19 rules, 39,234 characters of rendered text, zero hits. Everything was staged and ready.
The checker itself was staged along with it. Its rule list is the sensitive material: one named client and three artifacts tied to them, five phrasings of contract wording, seven contact and infrastructure identifiers, two local filesystem patterns, and one phrase describing a working disagreement. All of it sitting in a file the checker never scans, because it only ever reads the report.
The companion script was worse. It names the specific lines it rewrites, so anyone reading it could reconstruct what the public version had removed and roughly what it said.
Both files came out of the commit before the push and are now ignored by the repository. The README describes the three gates in prose instead of shipping the code that implements them. A redaction tool is part of the secret. That is obvious in hindsight and was not obvious at all while staging the folder.
19 rules against 39,234 characters of rendered text. Exit 0. The same checker rejects the internal edition of the report on 11 separate categories, which is the only reason to trust a pass.
Two scripts, 140 lines, were in the commit and referenced by name in the README. Removed from tracking, added to the ignore list, README rewritten to describe the gates without shipping them.
Public. Four files, 1,237 insertions. The private application repository was not touched by any command in this session and was confirmed private afterward.
Served from the default subdomain. Both URLs verified 200 by live fetch before moving on.
Publishing the domain file makes the default URL redirect to the new host. With no DNS record in place that redirect points at nothing, so the commit was held local until the record existed. Waiting cost five minutes; not waiting would have broken a link already shared.
A subdomain pointed at the default Pages host. Confirmed resolving from an independent resolver before the push, not after.
The subdomain had been checked before it existed, so the machine had cached the miss and kept returning it after the record went live. The site was fine; the test was wrong. Flushing the resolver cache cleared it. Checking for a thing before you create it poisons the check you run afterward.
The platform issues the certificate on a domain change but leaves enforcement off. Set explicitly. Four URLs verified 200 afterward, including plain HTTP upgrading and the original link still redirecting rather than dying.
| Figure | Value | Source |
|---|---|---|
| Files published | 5 | VERIFIED tracked file list |
| Lines published | 1,238 | VERIFIED commit statistics |
| Commits | 2 | VERIFIED commit log |
| Files withheld | 2 · 140 lines | VERIFIED ignored-file listing |
| Scrub rules | 19 | VERIFIED checker output |
| Text scanned | 39,234 chars | VERIFIED checker output |
| Entry 01 file size | 276,748 B | VERIFIED file system |
| Entry 01 charts | 15 | VERIFIED element count |
| External resources | 0 | VERIFIED element count |
| Live URL checks | 4 × 200 | VERIFIED live fetch |
| Session length | ~35 min | ESTIMATE commit timestamps |
Entry 01 has fifteen, because it covers a full day of building. This one covers roughly thirty-five minutes. Fifteen charts drawn over thirty-five minutes of work would not be a record of anything — it would be decoration applied at a fixed rate regardless of what happened, and a reader who noticed that would be right to discount the first entry too. The format follows the work. Some entries will be long.
| Publish something that is actually code, not a report about code | next |
| Establish a real cadence — two entries in one day is a burst, not a habit | ongoing |
| Three URLs on the main site still return 200 under one shared heading | this week |
| Answer latency on the published intake line is too long | this week |