Tighten issue and PR templates - #249
Merged
Merged
Conversation
Bug report: - Require reproduction steps. A bug report without them is rarely actionable, and the field was optional. - Add a required "App version" field for the app's own fap_version. The firmware version alone does not identify which build of an app broke. - Split the old catch-all in two: a "Logs" box rendered as a code block so pasted output survives, and a plain "Anything else?" box that still accepts file attachments. render disables attachments, so putting it on the catch-all would have left nowhere to attach a photo of the screen. New app: - Require the app's license up front, with "No license file / unclear" as an explicit option. The pack ships under GPLv3, so license compatibility decides whether a request can be accepted at all, and until now the form never asked. Pull request: - Add "No AI assistance" to the disclosure section. With only the two AI options, a hand-written PR left everything blank, which was indistinguishable from skipping the section. - Add checklist items for bumping fap_version and adding a CHANGELOG.md entry, which is the convention for app changes but was written down nowhere a contributor would see it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mishamyte
added a commit
to DarkFlippers/unleashed-firmware
that referenced
this pull request
Jul 28, 2026
…rdening PR template: port the "No AI assistance" option and the "tick exactly one" note from all-the-plugins (xMasterX/all-the-plugins#249) so the two repos agree, and add a check that fails the PR unless exactly one of the three boxes is ticked. The check needs no token and checks out nothing (`permissions: {}`), so plain `pull_request` is safe for forks; `edited` is in the trigger list so fixing the description re-runs it. pr-build.yml: #1052 bound github.head_ref/ref_name to env, but the branch name still reached a `run:` block through steps.vars.outputs.ref/.dist, which the "Assemble PR report" step interpolated. A branch named `x$(id)` still executed there. Bind those outputs to env as well, and reduce SAFE_REF to [A-Za-z0-9._-] instead of only replacing '/', so the outputs are inert for every consumer. Artifact names are unchanged for ordinary branch names. Pin the two third-party actions to commits: dessant/lock-threads runs with issues+pull-requests write, and a mutable tag can be repointed at any time.
This was referenced Jul 28, 2026
mishamyte
added a commit
to DarkFlippers/unleashed-firmware
that referenced
this pull request
Jul 28, 2026
…rdening (#1054) PR template: port the "No AI assistance" option and the "tick exactly one" note from all-the-plugins (xMasterX/all-the-plugins#249) so the two repos agree, and add a check that fails the PR unless exactly one of the three boxes is ticked. The check needs no token and checks out nothing (`permissions: {}`), so plain `pull_request` is safe for forks; `edited` is in the trigger list so fixing the description re-runs it. pr-build.yml: #1052 bound github.head_ref/ref_name to env, but the branch name still reached a `run:` block through steps.vars.outputs.ref/.dist, which the "Assemble PR report" step interpolated. A branch named `x$(id)` still executed there. Bind those outputs to env as well, and reduce SAFE_REF to [A-Za-z0-9._-] instead of only replacing '/', so the outputs are inert for every consumer. Artifact names are unchanged for ordinary branch names. Pin the two third-party actions to commits: dessant/lock-threads runs with issues+pull-requests write, and a mutable tag can be repointed at any time.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to the workflow review. All four requested changes, plus the license gap.
Bug report
Reproduction is now required. It was optional, and a report without repro steps is rarely actionable.
New required "App version" field, for the app's own
fap_versionfromapplication.fam. The firmware version alone does not say which build of an app broke.Split the old catch-all in two. A
Logsbox withrender: Textso pasted output arrives intact, and a plainAnything else?box that still takes file attachments.On
render: GitHub's spec says a rendered textarea "will not expand for file attachments or Markdown editing". Applying it to every textarea would have left nowhere on the form to attach a photo of the Flipper screen, which for a device app tracker is usually the most useful evidence. Scoping it to the logs field only - the same split Unleashed uses - keeps the mangling fix without that cost.New app
No license file / unclearas an explicit option. The pack ships under GPLv3, so license compatibility decides whether a request can be accepted at all, and the form never asked. The intro text now says so up front.Pull request template
No AI assistanceto the disclosure section. With only the two AI options, a hand-written PR left all boxes blank - indistinguishable from ignoring the section.fap_versionand adding aCHANGELOG.mdentry. That is the convention for app changes, but it was written down nowhere a contributor would encounter it. Worth knowing only 22 of 321 apps currently have aCHANGELOG.md, so the template is the main lever for spreading it.Verification
All templates parsed and schema-checked: valid element types, no duplicate ids,
requiredonly on elements that support it, dropdown has options. Every label referenced (type/bug,type/new-app,type/enhancement) exists in the repo, so nothing is silently dropped.Two things I left alone since they were not in scope - say the word and I will add them:
Firmware versionis still optional free text (Unleashed uses a required dropdown kept current by a release workflow), andWhat does it do?on the new-app form is still optional.🤖 Generated with Claude Code