Repository navigation
🩹 [Patch]: Feature requests start with consumer needs - #15
Open
Marius Storhaug (MariusStorhaug) wants to merge 6 commits into
Open
Marius Storhaug (MariusStorhaug) wants to merge 6 commits into
Marius Storhaug (MariusStorhaug) wants to merge 6 commits into
Conversation
7 tasks done
There was a problem hiding this comment.
🔵 Needs a closer look
Maintainer confirmation is needed because frozen canonical-source correspondence and completed hosted validation for the actual head remain unverified.
No open issues 🎉
What changed in this PR
Updates the shared organization feature-request form to focus on consumer needs, motivation, and expected behavior without asking requesters to propose an implementation.
Changes:
- Replaces implementation and alternatives prompts while preserving feature identity, triage labels, and one required description field.
- Links canonical issue and planning guidance and clarifies that maintainers handle internal planning separately.
- Adds Pester regression checks for form structure, routing, prompts, and rendered guidance links.
| File | Description |
|---|---|
.github/tests/FeatureIntake.Tests.ps1 |
Adds regression checks for preserved intake behavior and consumer-focused guidance. |
.github/ISSUE_TEMPLATE/10-feature.yml |
Rewrites feature prompts around needs and expected outcomes, with canonical guidance links. |
Review effort: Balanced
Marius Storhaug (MariusStorhaug)
marked this pull request as ready for review
October 31, 2026 22:39
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.
Feature requesters describe what they need, why it matters, and what they expect to happen without proposing an implementation or learning a special scenario format. The shared form keeps its existing feature identity, triage routing, and one required free-text field.
Changed: Consumer-focused feature intake
The description label becomes Describe the need. Prompts ask who benefits, the problem or opportunity, and a short situation/action/expected-result example. A failure or limit example is requested only when it changes the expected outcome. The form adds no native issue-type classification: maintainers link and route accepted internal work separately. Technical Task and Bug plans remain intact.
Adopting this release
This public defaults repository does not publish a versioned release. After the form change is merged, repositories using the organization-owned feature intake receive its prompts without adding consumer-local copies. No configuration, code, or invocation changes are required. Repositories with local forms retain local precedence; this PR does not copy, remove, or change them. The canonical guidance candidate is frozen but not yet merged or published.
Release impact
This is a backward-compatible, patch-level improvement to the feature-intake experience. No versioned release publisher applies, so no version is produced. No live labels, release configuration, permissions, or rulesets are changed.
Technical details
Consumer change record
descriptionfield asks for need, motivation, and observable scenarios, with a conditional failure/limit example and canonical planning/routing links. Name, title,feature/triagelabels, absent native type, and minimum submission burden are unchanged.Template baseline
The source-owned feature form and regression suite are at head
5edc236cf2bc365931483487a5a0d471b3779629, independently based on default-branch baseline0c67251812ea306543f3a14ab473ae357cfb76ac. They do not import or retarget #8 or #12. No runtime integration template or producer version applies.The coordinator-supplied frozen source is MSXOrg/docs#230 at
1c8f98cabe64b12aaa5fa9fb5f51b9d03f5de9de, delivering MSXOrg/docs#228. Its consumer-expectation rule, native routing, Task/Bug implementation plans, and Define external-feedback boundary were read and checked. Plain context/action/result examples and conditional boundary cases correspond to that source. The form does not force feedback into an aggregate or remove technical delivery planning.Immutable new-anchor links are review evidence only. The shipped form links the already-resolving current planning and routing pages without unpublished fragments. Source correspondence is verified; source publication and completed adoption are not claimed.
Maintainer evidence
All seven plan steps in #14 are complete. The early draft opened after the first passing baseline commit, and six small commits separate baseline protection, test-first expectations, the form change, removal of an unnecessary parser dependency, and frozen-source correspondence. Only the feature form and focused suite change. The native Task remains open until its reviewed PR is merged.
The suite asserts this form's complete supported metadata/element shape and exact prompts; it is not a generic YAML parser. Existing yamllint independently parses/lints the changed YAML. Only the existing Pester dependency is used, not powershell-yaml, so no installation or CI change is imposed on #12. Unchanged local runner/lint snapshots from immutable source
66f252776c102a0b94ab6619f61b121b89f0b174stay in session storage, not this branch. With$toolspointing to that scratch directory, these exact commands passed:pwsh -NoProfile -File (Join-Path -Path $tools -ChildPath 'Invoke-PesterSuite.ps1') -Path '.github\tests' -RequiredVersion 6.1.0Invoke-ScriptAnalyzer -Path '.github\tests\FeatureIntake.Tests.ps1' -Settings (Join-Path -Path $tools -ChildPath '.powershell-psscriptanalyzer.psd1')yamllint --strict --config-file (Join-Path -Path $tools -ChildPath '.yaml-lint.yml') '.github\ISSUE_TEMPLATE\10-feature.yml'git --no-pager diff --check origin/main...HEADBefore implementation, the original form passed 4 structure/routing tests and failed the 7 initial consumer-prompt tests. The final suite still rejects it with 4 passes and 8 intended failures. Frozen-source link/boundary assertions separately failed on the previously aligned form (10 passed, 2 failed) before correction. Anonymous native-type and quoted-required fixtures are rejected by the whole-form assertion; ordinary English
whenis accepted and explicit Gherkin solicitation is rejected. Both canonical links render as actual hyperlinks and their current pages resolve.Content and local checks align with the standards below. Repository-wide enforcement is a known, separately tracked exception rather than an unqualified readiness pass:
The README, central contribution pointer, and agent routes still correctly describe this defaults repository and were verified without churn. No standard is duplicated. The scoped convergence sweep found no additional fully delivered issue: #10 is PR-fallback work, #11/#12 are hosted validation, and #13 is local hooks. Only #14 closes through this PR.
The explicitly requested final Copilot round covers exact head
5edc236cf2bc365931483487a5a0d471b3779629:COMMENTED, zero inline/open code issues, and zero review threads. Its complete summary correctly says maintainers must confirm source publication and validation/enforcement readiness before landing. This is a clean automated code-review round, not human approval or satisfied hosted-validation gates.At that head the sole completed check is
copilot-pull-request-reviewer; Organization defaults validation is absent, commit statuses are empty, and the live main ruleset has no required-status-check rule. MSXOrg/docs#230 remains unmerged. Hosted validation and its governance handoff remain #11/#12 work; local hooks remain the #13 exception. Keep this PR draft for source publication and hosted validation/enforcement readiness. Local passes or a successful Copilot check do not replace those gates. No merge or auto-merge is performed.Relevant issues (or links)
Related work