Files
sethLabels/.claude/handoffs/2026-04-29-125823-scaffold-only.md
Seth 9dc6776bb4 chore: add sethLabels deployment-fork scaffold
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).
2026-04-29 09:04:54 -04:00

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:

  1. Decide upstream-tracking strategy. Options:
    • (a) Clone j-evins/glabels-qt into this dir, push to Gitea as sethLabels, add upstream as a remote, merge from upstream/master periodically.
    • (b) Keep upstream as a git submodule and layer deployment glue around it. Record the choice in DECISIONS.md before pulling code.
  2. Verify upstream is alive. Check j-evins/glabels-qt for last commit date + open issues; this is a fork of mate-desktop's glabels lineage and forks-of-forks have a tendency to bitrot. If j-evins is stale, the real upstream might be elsewhere — re-evaluate before forking.
  3. Confirm Qt version. Upstream's CMakeLists.txt will say Qt5 or Qt6. Debian 13 ships both — pick whichever upstream targets.
  4. Build it once on steel141 to establish the known-good build recipe. Capture exact apt install deps and CMake invocation in a BUILD.md (or in CLAUDE.md if short).
  5. Initialize git + push to Gitea. gitea create sethLabelsgitea remote sethLabelsgitea push. Use a descriptive commit message like init: scaffold + import upstream glabels-qt @ <sha>.
  6. Only then start any deployment-specific work (templates, packaging, install scripts).

Open Questions

  • Is j-evins/glabels-qt actually the right upstream, or should we be tracking a different fork? (See "verify upstream is alive" above.)
  • Does Seth want a .deb package, 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.md so we don't drift.