The ask
Please review the proposed standard label set below and comment on the three
questions at the bottom — ideally by Wednesday 17 June so we can roll out the
following week.
This issue is decision-only and closes when we agree. Full rationale,
the org-wide audit, and implementation tracking live in #323 — nothing here
needs reading beyond this page to respond.
Proposed label set (18)
Unlabelled = "needs triage, normal priority" — nothing must be labelled.
Colour carries meaning: priority is a heat scale, automation is quiet grey.
Type — what kind of work? (one per issue, at triage)
| Label |
Colour |
Description |
When to use |
bug |
🟥 #d73a4a |
Something is wrong or broken in a lecture or build |
The lecture is incorrect: wrong maths, erroring code, broken rendering |
enhancement |
🟦 #a2eeef |
Improvement to existing material |
Better exposition, new exercise, improved figures |
new-lecture |
🟦 #0537E9 |
A new lecture (the marquee outcome) |
Brand-new lecture — proposed, in progress, or shipped. Use instead of enhancement |
documentation |
🟦 #0075ca |
Repo docs and contributor meta |
READMEs, CONTRIBUTING — about the repo; lecture content is never documentation |
maintenance |
🟨 #fbca04 |
Housekeeping: tooling, infra, style, environments |
Work a reader never sees; "rendered lectures look identical after" |
question |
🟪 #d876e3 |
A question or discussion thread |
Swap for a work type once it becomes agreed work |
Priority — heat scale (unlabelled = normal)
| Label |
Colour |
Description |
When to use |
high-priority |
🟧 #d93f0b |
Address soon |
Published content visibly broken; build blockers. Label only the outliers |
low-priority |
🟩 #c2e0c6 |
Nice to have, no time pressure |
Agreed work that's fine to sit; "someday" ideas. No medium — default is the middle |
Editorial & workflow
| Label |
Colour |
Description |
When to use |
editor |
🟩 #0e8a16 |
Requires editor review — final sign-off |
Apply at handoff after team review; editor's queue = org:QuantEcon label:editor. Remove on sign-off |
do-not-merge |
🟥 #b60205 |
Must not be merged yet |
May look mergeable (even approved) but held: pins, experiments, cross-repo timing |
Community (GitHub-canonical names)
| Label |
Colour |
Description |
When to use |
good first issue |
🟪 #7057ff |
Self-contained, friendly to newcomers |
Only when genuinely self-contained with clear acceptance criteria |
help wanted |
🟩 #008672 |
Outside help welcome |
Including domain (econ/math) expertise — say what's needed in a comment |
Automation — applied by bots, not humans (quiet grey)
| Label |
Colour |
Description |
When to use |
automated |
⬜ #ededed |
Opened by a bot or scheduled workflow |
Every bot issue carries this + exactly one diagnostic below |
broken-links |
⬜ #dddddd |
Link checker found dead links |
Applied by action-link-checker |
build-failure |
⬜ #cccccc |
Execution, build, or warnings failure |
Applied by build/warnings checks |
dependencies |
⬜ #bdbdbd |
Dependency or environment update |
The single Dependabot label (replaces github_actions / conda) |
Meta — closing outcomes
| Label |
Colour |
Description |
When to use |
duplicate |
⬜ #cfd3d7 |
Already tracked elsewhere |
On close; link the survivor |
wontfix |
⬜ #ffffff |
Decided not to act |
On close, with one sentence why |
What we deliberately DON'T label
in-work → Draft PR · ready → "Ready for review" · review → review
requests · blocked/on-hold → Draft + link the blocker · medium-priority →
no label · project labels (reading-group-*) → Milestones · per-tool labels
(colab, …) → build-failure.
Scope (summary)
- Lecture repos get all 18. Software/tooling repos later get the core 16
(everything except new-lecture + editor), which also becomes the
org-level default set for new repos.
- Not touched:
meta (keeps discuss/project/education), translation
forks (translate:*), *.notebooks build repos.
- Migration renames labels in place (e.g.
linkchecker → broken-links), so
existing issue/PR history is preserved.
❓ The three questions
Q1 — The set. Any label you would add, remove, or rename? (Names, colours,
and descriptions above are the proposal; say what you'd change.)
Q2 — Which lecture repos are in? Confirmed: lecture-python-intro,
lecture-python-programming, lecture-python.myst,
lecture-python-advanced.myst, lecture-dp, lecture-jax.
Candidates — tick any that should also be in the first rollout:
Q3 — The one behavioural change. Status labels (in-work, ready,
review, blocked) are retired in favour of native GitHub: open PRs as
Drafts while working, click "Ready for review" when done, use review
requests for review state. Only do-not-merge survives as a label. Are you
comfortable committing to this convention?
Background, full rationale per label, the org-wide audit (this is the 4th
unification attempt — #178, #290 will be closed against the outcome here), and
implementation tracking: see #323. Tooling to apply the result is ready
(qe gh labels sync, QuantEcon/cli).
The ask
Please review the proposed standard label set below and comment on the three
questions at the bottom — ideally by Wednesday 17 June so we can roll out the
following week.
This issue is decision-only and closes when we agree. Full rationale,
the org-wide audit, and implementation tracking live in #323 — nothing here
needs reading beyond this page to respond.
Proposed label set (18)
Unlabelled = "needs triage, normal priority" — nothing must be labelled.
Colour carries meaning: priority is a heat scale, automation is quiet grey.
Type — what kind of work? (one per issue, at triage)
bug#d73a4aenhancement#a2eeefnew-lecture#0537E9enhancementdocumentation#0075cadocumentationmaintenance#fbca04question#d876e3Priority — heat scale (unlabelled = normal)
high-priority#d93f0blow-priority#c2e0c6medium— default is the middleEditorial & workflow
editor#0e8a16org:QuantEcon label:editor. Remove on sign-offdo-not-merge#b60205Community (GitHub-canonical names)
good first issue#7057ffhelp wanted#008672Automation — applied by bots, not humans (quiet grey)
automated#edededbroken-links#ddddddaction-link-checkerbuild-failure#ccccccdependencies#bdbdbdgithub_actions/conda)Meta — closing outcomes
duplicate#cfd3d7wontfix#ffffffWhat we deliberately DON'T label
in-work→ Draft PR ·ready→ "Ready for review" ·review→ reviewrequests ·
blocked/on-hold→ Draft + link the blocker ·medium-priority→no label · project labels (
reading-group-*) → Milestones · per-tool labels(
colab, …) →build-failure.Scope (summary)
(everything except
new-lecture+editor), which also becomes theorg-level default set for new repos.
meta(keepsdiscuss/project/education), translationforks (
translate:*),*.notebooksbuild repos.linkchecker→broken-links), soexisting issue/PR history is preserved.
❓ The three questions
Q1 — The set. Any label you would add, remove, or rename? (Names, colours,
and descriptions above are the proposal; say what you'd change.)
Q2 — Which lecture repos are in? Confirmed:
lecture-python-intro,lecture-python-programming,lecture-python.myst,lecture-python-advanced.myst,lecture-dp,lecture-jax.Candidates — tick any that should also be in the first rollout:
lecture-julia.mystlecture-datascience.mystlecture-statscontinuous_time_mcslecture-wasmQ3 — The one behavioural change. Status labels (
in-work,ready,review,blocked) are retired in favour of native GitHub: open PRs asDrafts while working, click "Ready for review" when done, use review
requests for review state. Only
do-not-mergesurvives as a label. Are youcomfortable committing to this convention?
Background, full rationale per label, the org-wide audit (this is the 4th
unification attempt — #178, #290 will be closed against the outcome here), and
implementation tracking: see #323. Tooling to apply the result is ready
(
qe gh labels sync, QuantEcon/cli).