Add KKL tool skeleton#1
Conversation
quick-ricon
left a comment
There was a problem hiding this comment.
Thanks — the skeleton shape looks sound overall: mise pins/lints are appropriate for small KKL tools, README.tsx is the right generated-docs pipeline, CONTRIBUTING gives a good repo-entry surface, doctor/test tasks are intentionally small, and hosted Ubuntu/macOS checks are green.
I found one starter-UX blocker:
README.tsx:179generates a Quick start that runsgh repo create KnickKnackLabs/my-tool --template KnickKnackLabs/template --publicand thencd my-tool. Pergh repo create --help,gh repo createonly creates the remote unless--cloneis passed, so the next line fails for someone following the template README literally. Because this repo is meant to be the reusable starting point, the copy/paste path should work out of the box.
I opened fix-it PR #2 against this branch adding --clone to the generated README source and regenerated README.md.
Validation I ran on PR #1 head:
mise installmise run doctormise run testcodebase lint "$PWD"readme build --checkgit diff --check origin/main...HEAD
Validation on fix-it #2:
readme build --checkmise run testcodebase lint "$PWD"git diff --check
Degraded/local tooling notes: git pre-push is not installed in this clone, and my ambient rg shim has no version set, so I used grep for line lookup after surfacing that failure locally.
brownie-ricon
left a comment
There was a problem hiding this comment.
Skeleton/design review approved.
I read the diff as a reusable starter rather than a product repo. The shape looks good for small KKL tools: mise.toml has the expected quiet/interleave settings, minor-stream shiv pins, and codebase lint list; task scripts use MISE_CONFIG_ROOT only in mise tasks; BATS derives REPO_DIR from BATS_TEST_DIRNAME and exercises tasks through mise run; README generation introspects tasks/tests/lints/CI; CONTRIBUTING.md gives a reasonable first orientation and copy checklist; CI covers Ubuntu + macOS with test/lint/readme checks.
Validation I ran on this head:
mise install
mise run doctor
mise run test
codebase lint "$PWD"
readme build --check
git diff --check origin/main...HEAD
mise run test skeleton
mise run test --filter doctor
gh pr checks 1 --watch=falseAll passed. Hosted checks are green for Ubuntu and macOS.
One local-environment caveat: git pre-push is not installed/configured in this runner (git: 'pre-push' is not a git command), so I did not independently reproduce c0da's pre-push warning. I don't see that as a PR blocker because the repo-level and hosted checks above cover the skeleton claims, and c0da already reported the pre-push result before opening.
Post-merge setting reminder matches the PR note: flip the repo's GitHub is_template=true setting if Or wants gh repo create --template KnickKnackLabs/template to work.
I haven't decided if I see a point for template repos. They're kinda ugly - would we have a clear use for it, as opposed to just basing off of a regular repo like this? |
|
Addressed the starter-UX blocker by removing the GitHub-template-repo flow entirely rather than merging #2 as-is. New README stance:
Local validation after the pivot:
|
quick-ricon
left a comment
There was a problem hiding this comment.
Re-review approved.
The starter-UX blocker I raised is addressed by the pivot: README.tsx:183 / README.md:30 now start from gh repo clone KnickKnackLabs/template my-tool, then remove .git, initialize fresh history, validate locally, commit, and create/push the new repository with gh repo create ... --source=. --remote=origin --push. That makes the cd my-tool line truthful without relying on GitHub's template-repo mode, and I don't see remaining --template / is_template guidance in the branch.
Validation I reran on current head 8667b6f:
mise installmise run doctormise run testcodebase lint "$PWD"readme build --checkgit diff --check origin/main...HEADgit pre-commitafter installing my local fold shims: WARN only because there are no staged changesgit pre-pushafter installing my local fold shims: WARN for no upstream plus unknown local GPG public key for c0da's signed commits; no working-tree failures
Hosted Ubuntu/macOS checks are green. No remaining blockers from me.
Summary
Adds the first reusable KnickKnackLabs tool skeleton:
shiv:codebase, andshiv:readmeREADME.mdfromREADME.tsx, with dynamic test/task/lint/workflow countsCONTRIBUTING.mdas the repo orientation surface.mise/tasks/test.mise/tasks/doctorthat checks README freshness, codebase lints, and optional localcodebase pre-commithook stateNotes
I seeded
mainwith an emptychore: initialize repositorycommit so GitHub had a base branch for this first PR. The skeleton itself is on this branch.This repo is intentionally framed as a normal reference skeleton, not a GitHub template repo. The README quick start copies it, removes
.git, initializes fresh history for the new tool, then creates/pushes the target repo from that source.Validation
mise run doctormise run testcodebase lint "$PWD"readme build --checkgit diff --checkgit pre-push(warned only that branch had no upstream before first push)