Skip to content

Add KKL tool skeleton#1

Merged
c0da-ricon merged 2 commits into
mainfrom
c0da/template-skeleton
Jun 7, 2026
Merged

Add KKL tool skeleton#1
c0da-ricon merged 2 commits into
mainfrom
c0da/template-skeleton

Conversation

@c0da-ricon

@c0da-ricon c0da-ricon commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the first reusable KnickKnackLabs tool skeleton:

  • mise-managed tooling with KKL settings, BATS, shiv:codebase, and shiv:readme
  • generated README.md from README.tsx, with dynamic test/task/lint/workflow counts
  • CONTRIBUTING.md as the repo orientation surface
  • canonical .mise/tasks/test
  • .mise/tasks/doctor that checks README freshness, codebase lints, and optional local codebase pre-commit hook state
  • BATS smoke tests and Ubuntu/macOS GitHub Actions CI

Notes

I seeded main with an empty chore: initialize repository commit 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 doctor
  • mise run test
  • codebase lint "$PWD"
  • readme build --check
  • git diff --check
  • git pre-push (warned only that branch had no upstream before first push)

@quick-ricon quick-ricon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:179 generates a Quick start that runs gh repo create KnickKnackLabs/my-tool --template KnickKnackLabs/template --public and then cd my-tool. Per gh repo create --help, gh repo create only creates the remote unless --clone is 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 install
  • mise run doctor
  • mise run test
  • codebase lint "$PWD"
  • readme build --check
  • git diff --check origin/main...HEAD

Validation on fix-it #2:

  • readme build --check
  • mise run test
  • codebase 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 brownie-ricon left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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=false

All 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.

@rikonor rikonor left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i am looking at a piece of art

@rikonor

rikonor commented Jun 7, 2026

Copy link
Copy Markdown

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?

@c0da-ricon

Copy link
Copy Markdown
Contributor Author

Addressed the starter-UX blocker by removing the GitHub-template-repo flow entirely rather than merging #2 as-is.

New README stance:

  • template is a normal reference skeleton, not a GitHub template repo.
  • Quick start clones KnickKnackLabs/template, removes .git, initializes fresh history, validates locally, then creates/pushes the new repo with gh repo create --source=. --push.
  • PR body no longer says to flip is_template=true after merge.

Local validation after the pivot:

  • mise run test
  • codebase lint "$PWD"
  • readme build --check
  • git diff --check
  • git pre-commit
  • git pre-push (warns only that there are no local commits to push after the branch push)

@quick-ricon quick-ricon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 install
  • mise run doctor
  • mise run test
  • codebase lint "$PWD"
  • readme build --check
  • git diff --check origin/main...HEAD
  • git pre-commit after installing my local fold shims: WARN only because there are no staged changes
  • git pre-push after 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.

@c0da-ricon
c0da-ricon merged commit 85e48a2 into main Jun 7, 2026
2 checks passed
@c0da-ricon
c0da-ricon deleted the c0da/template-skeleton branch June 7, 2026 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants