Skip to content

Issues: templates, routing, and priority labels - #6

Merged
skyoo2003 merged 2 commits into
mainfrom
issue-templates
Aug 14, 2026
Merged

Issues: templates, routing, and priority labels#6
skyoo2003 merged 2 commits into
mainfrom
issue-templates

Conversation

@skyoo2003

@skyoo2003 skyoo2003 commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Summary

The issue tracker had no template, so reports arrived in whatever shape the reporter chose and the maintainer asked the same questions back. issue_template was also the only item community/profile still listed as missing.

Changes

  • Two GitHub issue formsbug.yml and proposal.yml — rather than markdown templates. The milestone is judged on issues arriving with what they need; a markdown template cannot enforce that, since the reporter can delete it and type one line. Forms mark fields required and apply the type label themselves, which removes the triage step instead of documenting it.
  • config.yml routes the four things that would otherwise arrive as issues: vulnerabilities to SECURITY.md, documented limitations to README, rejected designs to DECISIONS.md, unverified numbers to FINDINGS.md.
  • Three priority labels (high/medium/low). The nine GitHub defaults already cover type.
  • CONTRIBUTING.md — "Before a large change" now links the proposal form it was describing, and says what a priority: label does and does not promise.

Validation

  • make all — passes
  • python3 -c "yaml.safe_load(...)" on all three files — parse clean
  • Required fields: 4 per form (3 inputs + 1 confirmation checkbox)
  • gh label list — 12 (9 defaults + 3 priority)
  • All referenced paths resolve: SECURITY.md, README.md#limitations, docs/DECISIONS.md, docs/FINDINGS.md

Review Focus

  • Blank issues stay enabled. There is no Discussions tab and no chat channel by choice, so the tracker is the only place left to ask a question. Requiring a form to ask one would close that door. This is a deliberate softening of "arrives with the necessary information".
  • No area labels. With zero external issues, splitting six packages into labels would be a taxonomy invented ahead of any evidence about what people actually file.
  • The bug form asks for a commit SHA because there are no tags yet — milestone 4 fixes that. It asks for OS because durability stops at fsync with no platform write barrier, so persistence bugs genuinely differ by platform.
  • The proposal form warns that a new scorer is not automatically covered: the import-graph assertion picks it up, but the two call-shape tests name the four scorers by hand.

Risks / Notes

  • Form YAML errors surface only after push, as a GitHub banner; the fallback is a plain issue, so nothing breaks. Parsed locally to catch it early.
  • Required checkboxes can become a ritual. They are paired with links, because the point is to surface that the documents exist, not to gate.
  • Priority labels will sit unused until the first external issue.
  • health_percentage was already 100 before this PR while files.issue_template was still null — the percentage is not computed over all seven items. Judge this by the files entry, not the number.

The tracker had no template, so every report arrived in whatever shape the
reporter chose and the maintainer asked the same questions back. issue_template
was also the one thing community/profile still listed as missing.

Forms rather than markdown templates. The outcome this milestone is judged on
is that an issue arrives already carrying what it needs, and a markdown
template cannot enforce that — the reporter can delete it and type one line.
A form can mark a field required, and it can apply the type label itself, which
removes the triage step rather than documenting it.

What the forms mostly do is route. Nine limitations are documented in README on
purpose, DECISIONS records what was already rejected, FINDINGS records what is
measured versus guessed, and vulnerabilities belong in email, not the tracker.
Left alone, all four arrive here as issues. CONTRIBUTING already told
contributors to check DECISIONS and FINDINGS before a large change; the
proposal form is that sentence made mechanical.

The bug form asks for a commit SHA because there are no tags yet — milestone 4
fixes that, and until then the SHA is the only way to name a version. It asks
for the OS because durability stops at fsync with no platform write barrier, so
persistence bugs genuinely differ by platform.

Blank issues stay enabled. There is no Discussions tab and no chat channel by
choice, so the tracker is the only place left to ask a question, and a form
would close that door.

Labels: priority high, medium and low. The nine GitHub defaults already cover
type, and priority was the only axis the PRD asked for that did not exist. No
area labels — with zero external issues, splitting six packages into labels
would be a taxonomy invented ahead of any evidence about what people actually
file.
@skyoo2003 skyoo2003 self-assigned this Aug 14, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 76d6716934

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/ISSUE_TEMPLATE/bug.yml Outdated
The form asks for a reproduction someone can run, then showed one that cannot
compile: Document's identifier is Key rather than ID, its vectors are
[]float32, Add returns a DocID alongside the error, and engine.NewIndex does
not exist — the constructor is New.

Worse than the compile errors, the example did not demonstrate what it claimed.
Add only records the corpus width when a document actually carries a vector, so
a text-only first document leaves vecDim at zero and the second add sets it
rather than colliding with it. Someone following the example would have watched
it succeed and concluded they had misread the error.

The replacement was compiled and run before being pasted here: two vectors of
different non-zero widths, and the second Add returns an error satisfying
errors.Is(err, engine.ErrDimMismatch).

Asking reporters for runnable evidence while shipping an unrunnable sample is
the kind of thing that teaches people not to trust the rest of the form.
@skyoo2003

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: 28ba6a98b5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@skyoo2003
skyoo2003 merged commit 794881f into main Aug 14, 2026
1 check passed
@skyoo2003
skyoo2003 deleted the issue-templates branch August 14, 2026 03:12
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