feat(ci): adopt fleet issue-template + priority-enforcement pattern#38
Conversation
Ports the structured issue-forms + reusable-workflow shim pattern from layervai/qurl-service#358, qurl-integrations#114, and qurl-typescript#45 to qurl-python. Reporters land on a required Priority dropdown, Python-shaped fields (package version, Python version, traceback- aware logs field), and `lv_live_…` redaction hints. Changes: - Replace `.md` issue templates with `.yml` forms. No Component dropdown — qurl-python's commit format has no scopes (same shape as qurl-typescript). Package version + Python version + OS carry the real triage signal. - `config.yml` disables blank issues and adds a GHSA contact link. Discussions is not enabled on this repo, so no link there. - Add `issue-priority.yml` → ops-routines-workflows@v0.3.0 and `validate-issue-templates.yml` → ops-routines-workflows@v0.4.0. The validate shim has NO caller-side concurrency block (reusable self-collision bug, tracked as layervai/ops-routines#39). Priority labels + `bug` + `enhancement` already exist on this repo; no label creation needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drop double space before v0.4.0 comment on the validate shim's `uses:` line. Cosmetic fleet-consistency fix flagged by cr on qurl-typescript#45. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review — looks good to mergeThoughtful infrastructure change. Defense-in-depth reasoning in the YAML comments is genuinely useful — these are the kind of comments I'd expect a future maintainer to thank the author for. A few observations; none block. What's done well
Minor observations (non-blocking)
Security / correctness
Test coverageN/A for workflow/template changes. LGTM. |
Review — looks good to mergeThis is a well-scoped, well-documented CI/infra PR. The reasoning comments in each workflow file are unusually thorough and make the config readable to whoever touches it next. No blocking issues. Strengths
Minor observations (non-blocking)
Security
Test coverageN/A — CI/infra change with no runtime code. The Style / conventionsMatches the repo's CLAUDE.md (no scoped commits — PR title LGTM. |
cr round 1 nit on #38: `e.g. 0.1.0` placeholder will rot once Release Please cuts 0.2.x / 1.0.x. Generic `0.3.x` matches the drift-proofing pattern landed in qurl-service#358 for the Go version placeholder. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Round 1 feedback addressed:
|
Code ReviewThorough PR — the defensive comments in the workflow shims are genuinely useful and explain why, not what. A few observations, all minor: Strengths
Observations / Minor Questions
Potential Issues
Test Coverage
CLAUDE.md Compliance
LGTM pending the green 🤖 Review by Claude (Opus 4.7) |
Summary
Ports the structured issue-forms + reusable-workflow shim pattern from layervai/qurl-service#358, layervai/qurl-integrations#114, and layervai/qurl-typescript#45 to qurl-python.
Business value
validate-issue-templates.ymlcatches schema-broken forms at PR time.Per-repo derivation
<type>: <description>(no scopes), identical to qurl-typescript. A dropdown would be noise.python --version).layerv-qurl(runpip show layerv-qurl).render:to avoid miscoloring.lv_live_*API keys — reporters likely use production keys against the SDK.What changed
.github/ISSUE_TEMPLATE/bug_report.yml+feature_request.yml(replacing.md)..github/ISSUE_TEMPLATE/config.yml:blank_issues_enabled: false+ GHSA link..github/workflows/issue-priority.yml→ops-routines-workflows@v0.3.0..github/workflows/validate-issue-templates.yml→ops-routines-workflows@v0.4.0. No caller-side concurrency block —layervai/ops-routines#39.Priority labels +
bug+enhancementalready exist on this repo.Test plan
validate-issue-templates.ymlruns green on this PRcheck-jsonschema+actionlintpass locallypriority: *auto-appliesFleet rollout
Fourth of ~8 active repos. Completes wave 1 (qurl-service / qurl-integrations / qurl-typescript / qurl-python — Go / Node / Python shakedown).