Skip to content

Convert issue templates to YAML forms, fix label sync quoting bug - #3

Merged
DerekCorniello merged 3 commits into
mainfrom
chore/yaml-forms-and-label-fixes
Jul 11, 2026
Merged

Convert issue templates to YAML forms, fix label sync quoting bug#3
DerekCorniello merged 3 commits into
mainfrom
chore/yaml-forms-and-label-fixes

Conversation

@DerekCorniello

Copy link
Copy Markdown
Contributor

Part of muxlang/mux-context#5 (org normalization).

What

  • Templates -> YAML issue forms: all 15 templates/<repo>/ISSUE_TEMPLATE/*.md sources converted to structured issue forms (required fields, checkboxes for editor lists / runtime feature flags / sync checklists, render hints for code samples). config.yml files unchanged. Deploying these to each repo happens via sync-templates.sh in follow-up PRs per repo.
  • sync-labels.sh bug fix: quote stripping ran before whitespace trimming, so quoted names like "priority: urgent" kept a literal leading quote - this is exactly how the four mangled "priority: labels on mux-compiler were created. Order fixed.
  • retire-labels.sh: now also lists the mangled-name variants so retiring deletes them.
  • New scripts/validate-labels.py: diffs live labels (via gh) against labels/labels.yml + per-repo overlays; exits nonzero on drift. Current drift it reports: the 4 mangled labels (mux-compiler), stray bug/feature labels (mux-website, mux-syntax-highlighting, tree-sitter-mux).

Verification

  • All 22 YAML files parse (checked with PyYAML).
  • Fixed name parser verified against - name: "priority: urgent" -> priority: urgent.
  • validate-labels.py run against all 8 repos; 4 exact matches, drift matches the known retire list.

🤖 Generated with Claude Code

https://claude.ai/code/session_0144f6odut5zs2SjZ32CgEAp

- Convert all templates/<repo>/ISSUE_TEMPLATE/*.md sources to structured
  YAML issue forms (required fields, checkboxes for editor/feature-flag
  lists, render hints for code samples). config.yml files unchanged.
- sync-labels.sh: trim whitespace before stripping quotes so quoted label
  names no longer keep a literal leading double-quote. This bug created
  the mangled priority labels on mux-compiler.
- retire-labels.sh: add the mangled-name variants so retiring actually
  deletes them.
- Add scripts/validate-labels.py to diff live labels against the
  canonical YAML across all repos; exits nonzero on drift.

Part of muxlang/mux-context#5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Jul 7, 2026

Copy link
Copy Markdown

Greptile Summary

This PR updates the repository governance assets for labels and issue templates. The main changes are:

  • Converts Markdown issue templates into GitHub YAML issue forms.
  • Adds a label validation script for live repository drift checks.
  • Fixes quoted label name parsing in the label sync script.
  • Removes retired maintenance scripts from the repository.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
scripts/validate-labels.py Adds live label drift validation with paginated label fetching and blank description handling.
scripts/sync-labels.sh Updates label name parsing so whitespace is trimmed before quote stripping.
templates//ISSUE_TEMPLATE/.yml Replaces Markdown issue templates with structured GitHub issue forms.

Reviews (3): Last reviewed commit: "chore: address review findings on valida..." | Re-trigger Greptile

Comment thread scripts/validate-labels.py Outdated
Comment thread scripts/validate-labels.py
DerekCorniello and others added 2 commits July 8, 2026 00:30
retire-labels.sh and clear-milestones.sh have been run against the org
(labels validate clean in all 8 repos; no milestones remain). Ongoing
enforcement is sync-labels.sh, sync-templates.sh, and validate-labels.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- validate-labels.py: paginate the live-label fetch via gh api so repos
  with >100 labels are fully covered; accept blank canonical
  descriptions; tolerate null live descriptions.
- api bug form: restore the deployed-version prompt in Environment.
- compiler bug form and syntax spec form: render code fields as mux.
- editor bug forms: plain Other checkbox plus a structured Other editor
  input instead of burying the name in the description.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DerekCorniello added a commit to muxlang/mux-compiler that referenced this pull request Jul 8, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DerekCorniello added a commit to muxlang/mux-website-api that referenced this pull request Jul 8, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DerekCorniello added a commit to muxlang/mux-syntax-highlighting that referenced this pull request Jul 8, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DerekCorniello added a commit to muxlang/tree-sitter-mux that referenced this pull request Jul 8, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Jul 8, 2026

Copy link
Copy Markdown

DerekCorniello added a commit to muxlang/mux-compiler that referenced this pull request Jul 9, 2026
* chore: sync issue templates as YAML forms from muxlang/.github

Synced with scripts/sync-templates.sh from muxlang/.github (source PR:
muxlang/.github#3). Markdown templates become structured issue forms;
labels.yml bootstrap refreshed where stale.

Part of muxlang/mux-context#5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: re-sync forms after review fixes in muxlang/.github#3

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: documentation form labels bootstrap consistency

Remove 'documentation' label from documentation_fix.yml form. This label is
provisioned by sync-labels.sh (which runs post-bootstrap) and won't exist in
the initial repo state. The form should only reference 'needs triage', which
is created in the bootstrap labels.yml.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
DerekCorniello added a commit to muxlang/mux-runtime that referenced this pull request Jul 9, 2026
Synced with scripts/sync-templates.sh from muxlang/.github (source PR:
muxlang/.github#3). Markdown templates become structured issue forms;
labels.yml bootstrap refreshed where stale.

Part of muxlang/mux-context#5.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
DerekCorniello added a commit to muxlang/mux-website that referenced this pull request Jul 9, 2026
* chore: sync issue templates as YAML forms from muxlang/.github

Synced with scripts/sync-templates.sh from muxlang/.github (source PR:
muxlang/.github#3). Markdown templates become structured issue forms;
labels.yml bootstrap refreshed where stale.

Part of muxlang/mux-context#5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: documentation form labels bootstrap consistency

Remove 'documentation' label from documentation_fix.yml form. This label is
provisioned by sync-labels.sh (which runs post-bootstrap) and won't exist in
the initial repo state. The form should only reference 'needs triage', which
is created in the bootstrap labels.yml.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@DerekCorniello
DerekCorniello merged commit 16fb0bd into main Jul 11, 2026
3 checks passed
@DerekCorniello
DerekCorniello deleted the chore/yaml-forms-and-label-fixes branch July 11, 2026 05:27
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.

1 participant