chore(release): promote main to release - #107
Open
github-actions[bot] wants to merge 7 commits into
Open
Conversation
- backends (hono/elysia) expose read-only GET /health-check; with an ORM selected it runs a DB query and returns rows to confirm wiring - default backend PORT 8000 (was 3001) - success screen shows web/api localhost URLs - add clean.sh dev helper to remove scaffolded folder Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lean.sh feedback - hono dev:server uses tsx --env-file-if-exists=.env so DATABASE_URL loads on Node (Bun/drizzle-kit/prisma already auto-load .env) - success screen shows a dedicated 'Local URLs:' section instead of an inline comment on the dev command - clean.sh reports what it removed (or that nothing existed) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- AGENTS.md is now stack-aware: real commands, dev URLs, monorepo map, ORM/DB workflow (incl. db:seed), and /health-check for the chosen combo - add .claude/settings.json permission allowlist (package manager, docker compose for server DBs, wrangler for Cloudflare, read-only git) - add .claude/commands: /verify, /format-fix, /new-component - add db:seed script + seed fixtures for drizzle and prisma (guards D1); bundles tsx as the seed runner - fix: drizzle sqlite client stripped the file: URL scheme so better-sqlite3 opens the right path — the same DATABASE_URL now works for drizzle-kit and the runtime (previously /health-check and db:seed failed on sqlite) Verified end-to-end on a live sqlite project: install → db:generate → db:migrate → db:seed → GET /health-check returns the seeded rows. Closes #108 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…skill (#109) 1. CI scaffold-smoke job: create → install → db setup → seed → boot API → curl /health-check, for sqlite drizzle & prisma (no Docker). Catches runtime breakage go test can't — the class of bug that shipped as the sqlite file: URL issue. 2. Render/invariant test (pkg/render_test.go): scaffolds combos in-process and asserts no unrendered template residue, valid JSON, and targeted content (sqlite file: strip, /health-check, db:seed, .mcp.json presence). 3. .mcp.json (Playwright MCP) scaffolded at project root when --test playwright, so agents can drive the running app. 4. contrib/osbr-devtools/scaffold-advisor: portable SKILL.md mapping a plain-English brief to a bungkus-cli create command (for osbr devtools; not a live skill here). Also: AGENTS.md now warns that prisma's db:migrate is interactive and shows the non-interactive alternatives, so agents don't hang. Verified both sqlite loops end-to-end (drizzle + prisma): seed inserts rows and /health-check returns them. Closes #109 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Redundant with the bungkus-scaffold skill in osbrjp/DevTools (the single home), which reads flags live from `--help` instead of hardcoding them. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Every project generated with --audit lhci inherited a workflow that ran a
full audit twice per change, with no concurrency guard and three repeated
audits per run. Measured on a real repo built from this template:
Lighthouse was 65 of ~82 Actions minutes across 100 runs, and per-step
timings put 62 of 89 seconds inside `lhci autorun` itself.
- pull_request only. GitHub runs it against the merge result rather than
the branch head, so the post-merge run on main re-audited a tree that
had already passed. That duplicate was half the spend.
- concurrency group with cancel-in-progress, so several pushes in quick
succession no longer each run a full audit to completion.
- paths-ignore for markdown, LICENSE and .github — kept deliberately
conservative, since a generated project's layout is unknown here.
- numberOfRuns 3 -> 1. The generated gate is performance >= 0.5, far too
loose for run-to-run variance to flip, so the median of three was paying
~45s per run for precision nothing consumed.
- Added an accessibility assertion, since Lighthouse computes that
category anyway and the template was discarding it. `warn`, not
`error`: a new blocking gate at an unknown score would fail the first
PR of every freshly scaffolded project.
- Dropped branches dev/staging/test, which the template created but never
scaffolds.
workflow_dispatch keeps a manual trigger for any ref. No schedule — a
cron in a scaffold would silently spend minutes in repos that may never
look at it.
Verified by building the CLI and scaffolding for real, not by reading the
template: pnpm and bun variants both render valid YAML, `${{ github.ref }}`
and the secrets expression survive Go templating intact, and no
unrendered `{{ . }}` tags remain in either output.
ci(templates): stop scaffolding a Lighthouse workflow that burns minutes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated promotion PR. Merge with a merge commit (do NOT squash) so the
feat:/fix:commits reachreleaseintact — semantic-release reads them to cut the stable version + tag. Squashing collapses them into one non-conventional commit and no release is cut.