Adds Seth's homelab convention files on top of upstream glabels-qt master: CLAUDE.md (project instructions), IDEA.md (brief), DECISIONS.md (decision log, empty), and the kickoff handoff under .claude/handoffs/. Appends a clearly-marked sethLabels section to .gitignore for .backup/, the GITEA_API.md symlink, .env files, and handoff drafts. This is the only non-upstream commit on main. All preceding history is authored by the glabels.org team (Jaye Evins et al.) and untouched. Future upstream merges should fast-forward or rebase cleanly since the scaffold lives in distinct files at repo root. No source-code changes. License unchanged (GPL-3.0).
4.5 KiB
Handoff: sethLabels scaffolded — no code yet
Session Metadata
- Created: 2026-04-29 12:58:23 UTC
- Project: /home/claude/bin/sethLabels
- Branch: n/a (no git repo yet)
- Session duration: ~5 min
- Live URL: n/a
Handoff Chain
- Continues from: None — this is the project's first handoff.
- Supersedes: None.
Current State Summary
Project directory scaffolded per ~/bin/CREATE_PROJECT.md as a deployment fork of upstream glabels-qt. No code has been pulled, no git repo initialized, no Gitea repo created. Only the ~/bin/-convention files exist:
sethLabels/
├── CLAUDE.md durable project instructions
├── DECISIONS.md empty decision log (template-derived, header set)
├── GITEA_API.md symlink → ~/bin/GITEA_API.md
├── IDEA.md plain-language brief
└── .claude/handoffs/
└── 2026-04-29-125823-scaffold-only.md (this file)
Phase: ideation. Nothing is running anywhere. No upstream commit pinned. No build attempted.
Architecture Overview
This is a deployment fork — the discipline is to keep the diff against j-evins/glabels-qt master surgical so we can rebase periodically without pain. Anything we add should be additive (new files: deploy scripts, packaging recipes, Seth-specific templates) rather than invasive edits to upstream source. If we need to patch upstream code, prefer a thin patch series we can replay.
Stack is Qt + CMake + C++ (GPL-3.0). Target host is steel141 (Debian 13). A future option is a headless print-server CT, but that's not part of this scaffold's scope.
Critical Files
| File | Purpose | Relevance |
|---|---|---|
~/bin/sethLabels/IDEA.md |
Plain-language brief — why this fork exists | Read first if upstream choice or scope feels unclear |
~/bin/sethLabels/CLAUDE.md |
Durable project instructions | Loaded every session |
~/bin/sethLabels/DECISIONS.md |
Empty — populate as architectural choices land | Write to when locking in upstream-pin strategy, Qt5-vs-Qt6, etc. |
~/bin/CREATE_PROJECT.md |
Recipe used to scaffold this | Reference if future projects need the same shape |
Suggested Next Steps (ordered)
The user said just scaffold + handoff — none of this was attempted. Pick up here next session:
- Decide upstream-tracking strategy. Options:
- (a) Clone
j-evins/glabels-qtinto this dir, push to Gitea assethLabels, add upstream as a remote, merge fromupstream/masterperiodically. - (b) Keep upstream as a git submodule and layer deployment glue around it.
Record the choice in
DECISIONS.mdbefore pulling code.
- (a) Clone
- Verify upstream is alive. Check
j-evins/glabels-qtfor last commit date + open issues; this is a fork of mate-desktop's glabels lineage and forks-of-forks have a tendency to bitrot. Ifj-evinsis stale, the real upstream might be elsewhere — re-evaluate before forking. - Confirm Qt version. Upstream's
CMakeLists.txtwill say Qt5 or Qt6. Debian 13 ships both — pick whichever upstream targets. - Build it once on steel141 to establish the known-good build recipe. Capture exact
apt installdeps and CMake invocation in aBUILD.md(or inCLAUDE.mdif short). - Initialize git + push to Gitea.
gitea create sethLabels→gitea remote sethLabels→gitea push. Use a descriptive commit message likeinit: scaffold + import upstream glabels-qt @ <sha>. - Only then start any deployment-specific work (templates, packaging, install scripts).
Open Questions
- Is
j-evins/glabels-qtactually the right upstream, or should we be tracking a different fork? (See "verify upstream is alive" above.) - Does Seth want a
.debpackage, an AppImage, or just a built binary in/usr/local/bin? - Is there a printer model or label-stock library we should pre-load as default templates?
These don't block scaffolding — they block the first real coding session. Ask before implementing.
Risks / Watch-outs
- Upstream is GPL-3.0. Any code we add that links against it must also be GPL-3.0-compatible. Don't accidentally relicense.
- "Deployment fork" failure mode: scope creep into a real fork. If we find ourselves writing >100 lines of upstream-source patches, that's a signal to either upstream the change or rethink whether we actually want a fork.
- glabels-qt is one of those projects with multiple competing forks (j-evins, jimevins-original, mate-desktop's glabels-3, etc.). Pin the upstream we choose explicitly in
DECISIONS.mdso we don't drift.