Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"source": {
"source": "github",
"repo": "LasVegasForTransit/repository-tooling",
"ref": "v0.2.7"
"ref": "v0.2.8"
}
}
},
Expand Down
22 changes: 22 additions & 0 deletions .lvbt/web-platform.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"formatVersion": 1,
"preset": "lvbt-web",
"release": "v0.2.8",
"commit": "8c33f0f2855fb1ce919df0c076d866392b83946e",
"contentHash": "f649fa8382fb42b4c8aafb4681406f75f3baf4e24f97ccb78eb5ce2198f74996",
"executables": [
"examples/with-astro/.githooks/commit-msg",
"examples/with-astro/.githooks/pre-commit",
"examples/with-astro/.githooks/pre-push",
"examples/with-astro/.githooks/prepare-commit-msg",
"examples/with-vite-react/.githooks/commit-msg",
"examples/with-vite-react/.githooks/pre-commit",
"examples/with-vite-react/.githooks/pre-push",
"examples/with-vite-react/.githooks/prepare-commit-msg",
"packages/cli/hooks/commit-msg.sh",
"packages/cli/hooks/pre-commit.sh",
"packages/cli/hooks/pre-push.sh",
"packages/cli/hooks/prepare-commit-msg.sh",
"packages/cli/src/cli.mjs"
]
}
21 changes: 21 additions & 0 deletions .lvbt/web-platform/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Las Vegans for Better Transit

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "lvbt",
"interface": {
"displayName": "Las Vegans for Better Transit"
},
"plugins": [
{
"name": "lvbt-contributions",
"source": {
"source": "local",
"path": "../../node_modules/@lvbt/cli/plugins/lvbt-contributions"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Developer Tools"
}
]
}
38 changes: 38 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"extraKnownMarketplaces": {
"lvbt": {
"source": {
"source": "github",
"repo": "LasVegasForTransit/repository-tooling",
"ref": "v0.2.8"
}
}
},
"enabledPlugins": {
"lvbt-contributions@lvbt": true
},
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "pnpm exec prettier --write --ignore-unknown \"$CLAUDE_FILE_PATHS\" 2>/dev/null || true"
}
]
}
]
},
"permissions": {
"deny": [
"Read(**/.dev.vars)",
"Read(**/.dev.vars.*)",
"Read(**/.env)",
"Read(**/.env.*)",
"Read(**/*.pem)",
"Read(**/*.key)",
"Read(**/id_rsa*)"
]
}
}
16 changes: 16 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.codex/hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|mcp__github__create_issue|mcp__github__create_pull_request",
"hooks": [
{
"type": "command",
"command": "node \"$(git rev-parse --show-toplevel)/node_modules/@lvbt/cli/plugins/lvbt-contributions/hooks/codex-pre-tool-use.mjs\"",
"timeout": 10
}
]
}
]
}
}
12 changes: 12 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false
5 changes: 5 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.githooks/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# The shared hook lives in @lvbt/cli; repository-specific steps go below it.
set -eu
ROOT=$(git rev-parse --show-toplevel)
sh "$ROOT/node_modules/@lvbt/cli/hooks/commit-msg.sh" "$@"
5 changes: 5 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# The shared hook lives in @lvbt/cli; repository-specific steps go below it.
set -eu
ROOT=$(git rev-parse --show-toplevel)
sh "$ROOT/node_modules/@lvbt/cli/hooks/pre-commit.sh" "$@"
5 changes: 5 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.githooks/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# The shared hook lives in @lvbt/cli; repository-specific steps go below it.
set -eu
ROOT=$(git rev-parse --show-toplevel)
sh "$ROOT/node_modules/@lvbt/cli/hooks/pre-push.sh" "$@"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# The shared hook lives in @lvbt/cli; repository-specific steps go below it.
set -eu
ROOT=$(git rev-parse --show-toplevel)
sh "$ROOT/node_modules/@lvbt/cli/hooks/prepare-commit-msg.sh" "$@"
3 changes: 3 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Every change is reviewed by the maintainers team. Add narrower entries below
# for paths that need a specific reviewer, for example database migrations.
* @LasVegasForTransit/maintainers
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Setup Node + pnpm
description: Install the repository's pinned pnpm, cache its store, and install from the lockfile.

runs:
using: composite
steps:
# packageManager in package.json is the one version source; pnpm/action-setup
# reads it when no version input is supplied.
- name: Setup pnpm
uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10

- name: Setup Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version-file: package.json
cache: pnpm

- name: Install dependencies
shell: bash
run: pnpm install --frozen-lockfile
44 changes: 44 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended", ":semanticCommits"],
"schedule": ["before 6am on monday"],
"timezone": "America/Los_Angeles",
"labels": ["dependencies"],
"prHourlyLimit": 4,
"prConcurrentLimit": 8,
"rangeStrategy": "pin",
"lockFileMaintenance": {
"enabled": true,
"schedule": ["before 6am on monday"]
},
"customManagers": [
{
"description": "The @lvbt/* packages install from git tags of repository-tooling with a path: suffix that the npm manager does not parse, and the Claude Code marketplace pins the same tag. Track both as one dependency on the repository's tags.",
"customType": "regex",
"managerFilePatterns": ["/(^|/)package\\.json$/", "/(^|/)\\.claude/settings\\.json$/"],
"matchStrings": [
"github:LasVegasForTransit/repository-tooling#(?<currentValue>v\\d+\\.\\d+\\.\\d+)&path:/packages/[a-z-]+",
"\"repo\": \"LasVegasForTransit/repository-tooling\",\\s*\"ref\": \"(?<currentValue>v\\d+\\.\\d+\\.\\d+)\""
],
"depNameTemplate": "LasVegasForTransit/repository-tooling",
"datasourceTemplate": "github-tags",
"versioningTemplate": "semver"
}
],
"packageRules": [
{
"groupName": "LVBT repository standard",
"matchDepNames": ["LasVegasForTransit/repository-tooling"]
},
{
"groupName": "dev dependencies (non-major)",
"matchDepTypes": ["devDependencies"],
"matchUpdateTypes": ["minor", "patch"]
},
{
"matchUpdateTypes": ["patch"],
"automerge": true,
"automergeType": "branch"
}
]
}
45 changes: 45 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# The organization ruleset requires one status check named "Validate" on every
# pull request. Add steps to this job rather than renaming it.
name: CI

on:
pull_request:
branches: [main]
workflow_call:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
validate:
name: Validate
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# The secret scan reads history, not only the proposed tree.
fetch-depth: 0

- name: Setup Node + pnpm
uses: ./.github/actions/setup-node-pnpm

- name: Check
run: pnpm check

- name: Dependency audit
run: pnpm audit --audit-level=high

- name: Secret scan
run: |
set -euo pipefail
docker run --rm -v "$PWD:/repo" -w /repo \
ghcr.io/gitleaks/gitleaks@sha256:c00b6bd0aeb3071cbcb79009cb16a60dd9e0a7c60e2be9ab65d25e6bc8abbb7f \
git --redact --no-banner --config /repo/.gitleaks.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Deploys every app with a wrangler config on each push to main, after the
# same check pull requests run. Needs the CLOUDFLARE_API_TOKEN (Workers Scripts
# edit) and CLOUDFLARE_ACCOUNT_ID repository secrets.
name: Deploy

on:
push:
branches: [main]
workflow_dispatch:

permissions:
contents: read

concurrency:
group: deploy-${{ github.ref }}
cancel-in-progress: false

jobs:
validate:
name: Validate
uses: ./.github/workflows/ci.yml

deploy:
name: Deploy
needs: validate
runs-on: ubuntu-latest
timeout-minutes: 15
environment: production
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Node + pnpm
uses: ./.github/actions/setup-node-pnpm

- name: Deploy
run: pnpm run deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
12 changes: 12 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
node_modules/
dist/
coverage/
.turbo/
.wrangler/
.env
.env.*
!.env.example
.dev.vars
.dev.vars.*
.DS_Store
.astro/
11 changes: 11 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.gitleaks.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Secret scanning. Extends gitleaks' upstream ruleset; everything below is an
# exemption for paths that carry no secrets but trip generic entropy rules.
[extend]
useDefault = true

[allowlist]
description = "Paths that carry no secrets but trip generic entropy rules."
paths = [
'''pnpm-lock\.yaml''',
'''docs/superpowers/.*\.md''',
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# One scope per durable boundary in this repository. Replace these with the
# boundaries of your repository; omit a scope when a change crosses them.
site
docs
ci
dx
25 changes: 25 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
// Documentation is checked like code: every relative link and anchor must
// resolve, and prose wraps at the same 100 columns Prettier uses.
"customRules": ["markdownlint-rule-relative-links"],
"config": {
"default": true,
"MD013": { "line_length": 100, "code_blocks": false, "tables": false, "headings": false },
"MD033": false,
"relative-links": true,
},
"globs": ["**/*.md"],
"ignores": [
// Playwright output.
"**/test-results",
"**/playwright-report",
".claude/worktrees",
"node_modules",
"**/node_modules",
"dist",
"**/dist",
".turbo",
"docs/superpowers",
"CHANGELOG.md",
],
}
5 changes: 5 additions & 0 deletions .lvbt/web-platform/examples/with-astro/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pnpm-lock.yaml
.lvbt/web-platform/
.claude/worktrees/
# Generated by `wrangler types`; regenerate it, never hand-edit it.
**/worker-configuration.d.ts
Loading
Loading