// FACTORY JOURNAL

SHIPS, IN ORDER.
PUBLIC WHEN YOU SAY.

The problem is not “another blog.” The problem is MelTuc ships living in six apps. ShipLog is the automated build journal: scripts/run_shiplog.py captures events from GHT, RRV, NLG, BRI, AIF, PDH. Kronos job shl_auto_capture at 07:00 hits localhost /shl/api/cron/auto-capture for today’s new GHT repos. One row per title per day. Manual CRUD, milestone toggle, bulk-delete manuals 1–100, streaks, analytics, CSV/JSON export. Public changelog /shl/changelog and Atom /shl/changelog.xml — landing, changelog, and feed are public; the dashboard is not. Milestones push into nlg_content_pool. Settings: auto-capture, public-by-default, notify-telegram (tokens retired → treat as off unless you re-enable). Notification Center reads Herald; ShipLog is the ship diary, not the error bus.

Premier Public changelog Atom Kronos 07:00
Dashboard Public changelog How it works
6
Capture sources
07:00
Auto-capture
50
Changelog rows
Atom
/shl/changelog.xml
// HOW IT WORKS

Five steps from a ship to a changelog row

Capture can be cron, a button, or a typed manual. Dedup is title+day, not a second git log.

01
Something ships
GHT repo, RRV review, NLG issue, BRI signal, AIF finding, PDH listing — or you type it.
02
Capture
run_shiplog or POST /shl/api/capture or 07:00 cron. One title per day.
03
Curate
Edit manual rows, toggle milestone, bulk-delete manuals only.
04
Measure
/shl/app/analytics: by-day, by-app, by-type, streaks.
05
Publish
/shl/changelog + Atom. Settings control public-by-default. NLG pool on milestone.
Open ShipLog
// DASHBOARD

Five KPIs and twenty latest — CSS mock

Not GitHub Releases. Not Herald alerts.

meltuc.tech/shl/app — CSS mock, not a product screenshot
Streakcurrent
Latest20
Addmanual or capture
// CHANGELOG

Public on purpose

/shl/changelog is supposed to be world-readable. The dashboard is not.

meltuc.tech/shl/changelog — CSS mock, not a product screenshot
Rowslast 50
Feedchangelog.xml
Authnone
// ANALYTICS

Factory pulse, not pageviews

Most-active app/day, top-5 apps. Login-gated JSON too.

meltuc.tech/shl/app/analytics — CSS mock, not a product screenshot
By-dayyes
By-appyes
ExportCSV/JSON
// NOT HERALD

Ships vs alerts

Herald/Notification Center are the error bus. ShipLog is what went out the door.

// WHAT IT REFUSES

No delete of captured-auto rows from the manual bulk tool

Bulk-delete is manual-only. Cron is localhost. Telegram setting may no-op.

// WHO THIS IS FOR

The operator who forgets what shipped Tuesday

If you need PagerDuty, use Herald. If you need a public factory log, this is it.

// FEATURES

Capture, curate, publish

Cards match README routes.

🧲
Auto-capture
GHT RRV NLG BRI AIF PDH.
⏰
07:00 cron
Today’s GHT repos, localhost.
🧱
Dedupe
One title per day.
✍️
Manual CRUD
Create/edit/delete manuals.
🏁
Milestones
Toggle + NLG pool.
🔥
Streaks
Current + longest.
📊
Analytics
Day/app/type.
📰
Public changelog
HTML + Atom.
📤
Export
CSV and JSON.
// GET STARTED

Open the journal. Or just read the changelog.

Dashboard needs login. Changelog does not.

Open ShipLog

Requires a MelTuc account. Create one free.

// SAID SLOWLY

What stays true over time

Automated build journal — ships, deploys, milestones; public changelog + Atom. Dashboard login for the full timeline. Health stays cheap. If this page disagrees with the signed-in app, trust the app — the product contract and tests enforce that rule.