Repository navigation
Description
Describe the change
Context and request
Contributors opening feature requests in PSModule repositories that inherit the organization defaults need to describe their need, motivation, and expected behavior without designing the implementation. Align the organization-owned feature intake with the user-confirmed Epic/PBI intent while preserving external feedback intake and maintainer routing. Internal Tasks and Bugs keep their technical decisions and test-first plans.
Acceptance criteria
- A contributor can explain what they want to do, who benefits, why it matters, and what they expect in a real situation, using ordinary language rather than architecture choices or literal Gherkin syntax.
- The form keeps its existing chooser name, description, title prefix,
feature/triagelabels,descriptionfield ID, and one required textarea. It adds no native issue type, assignee, project, mandatory planning fields, or prefilled answer. - The introduction identifies the submission as feedback reviewed and routed by maintainers and links the canonical MSX issue and planning guidance instead of copying the standard.
- Focused assertions demonstrate the old implementation-first prompts fail the desired consumer contract, then pass for the updated form; GitHub form structure and routing checks pass before and after the edit.
- Only the feature form and its directly scoped test evidence change. The PR remains separate from PSModule/.github#82 and PSModule/.github#86.
- Final correspondence is checked against the frozen guidance/anchor handoff for MSXOrg/docs#228 and MSXOrg/docs#230; pending source work is not represented as adopted or complete.
Constraints and non-goals
Change .github\ISSUE_TEMPLATE\10-feature.yml and directly necessary focused evidence only. Bug/patch/general forms, fallback PR scaffold and README, Markdown CI/containment guards, YAML/hook onboarding, workflow permissions/rulesets, live labels, community-file copying/cleanup, and release documentation are out of scope. Do not merge, enable auto-merge, or change live governance.
Technical decisions
-
Retain the existing two-element form: introductory Markdown and one required
descriptiontextarea. Use the labelConsumer need and expected behavior, three plain-language prompts, and optional placeholder starters. This preserves minimum submission usability and URL-prefill identity without adding mandatory sections. -
Ask exactly:
What are you trying to do, and who would benefit?,Why does it matter, and what is difficult or missing today?, andIn a real situation, what would you do and expect to happen?. Remove the solicitation for implementation suggestions and implementation alternatives. -
State that maintainers review and route feedback. Do not classify every external submission as an internal Task and do not change existing labels or native classification.
-
Link the currently working MSX issue guidance and planning guidance. Implement against the confirmed intent now; the frozen correspondence check is verified against MSXOrg/docs#230 at
1c8f98cabe64b12aaa5fa9fb5f51b9d03f5de9de. Shipped links use currently working canonical pages without new anchors. The source PR is still unmerged; this is not a claim of adoption on main. -
Use the already available Pester 6.1.0 and powershell-yaml 0.4.12 tooling in
tests\FeatureIntake.Tests.ps1for a narrow regression contract. Check documented GitHub root/body keys, nonempty content, textarea validation, exact prompts, links, and routing. Do not introduce a general validation framework or CI configuration. -
Run existing
yamllint --stricton the changed form and distinguish unchanged baseline style diagnostics from regressions. PSModule/.github#87 already owns the broader YAML formatting/enforcement gap; this Task does not claim that gap or the separate containment correction is complete. -
Use small logical commits. Open a draft PR after the first passing routing/schema-check commit; add the consumer assertions and demonstrate red locally before editing the form, then push only the passing final state.
-
Add a YAML document start only to the edited feature form and wrap its new prose so targeted strict YAML lint passes without adding configuration or editing other forms.
Implementation plan
- Add and run passing baseline GitHub form-structure and preserved-routing assertions in
tests\FeatureIntake.Tests.ps1; capture existing strict YAML diagnostics. - Commit the passing baseline checks and open a separate early draft PR closing only this Task.
- Add exact consumer-prompt, placeholder, canonical-link, plain-language, and feedback-routing assertions; demonstrate their failure against the unchanged feature form before implementation.
- Replace only the feature form's implementation-first copy with the agreed consumer prompts and optional starters.
- Run the focused Pester suite, PowerShell analysis, YAML diagnostic comparison, canonical-link checks, and scoped diff review; record exact results and standards/convergence evidence in the PR.
- Check final correspondence against the supplied frozen canonical guidance/anchors, complete the author review handoff, and leave the PR unmerged for human review.
Review readiness
The scoped form contract, strict YAML lint, PowerShell analysis, frozen-source correspondence, standards pass, and exact-path convergence sweep are recorded in PSModule/.github#89 at a747f719e55056056ab4053e423643c031bf9028. Only this Task is delivered by that PR. The explicit Copilot author review approved the exact candidate head at 2026-10-31T16:35:54Z, covered both changed files, left zero inline comments, and reported no active review issues.
Formal readiness is not claimed: the actual candidate head reports only one successful copilot-pull-request-reviewer check and zero commit statuses (combined state pending). The active strict main rule requires Community file validation, bound to integration 15368, and that check is absent on this head, and MSXOrg/docs#230 remains unmerged. Both shipped canonical page routes work; no new anchor or source adoption on main is claimed. The separate validation/governance deliveries retain their scope.
Live hub metadata is a separate pre-existing observation: the declared feature label returns HTTP 404, while triage resolves the existing Triage label. The original declarations are preserved; no live label, native classification, permission, rule, or auto-merge setting is changed. This is not a fleet-wide claim.
The scoped draft and native Task were published in this session and the coordinator handoff was saved with the assigned work identity. The implementation plan is complete; the Task stays open until merge, and the PR stays draft while the recorded external CI/source gates remain unmet.
Activity
MariusStorhaug commentedon Oct 31, 2026
The baseline GitHub form-structure and routing plan step is complete: all 13 focused Pester checks pass, and PowerShell analysis reports no errors or warnings. Existing strict YAML diagnostics were reproduced before any form edit (missing document start and the long introductory line). The next step is a separate early draft PR; the consumer prompt change and frozen-source correspondence check remain pending.
MariusStorhaug commentedon Oct 31, 2026
The separate early draft PR is open at #89 with initial head 71ee262. It contains only the 13 passing baseline form/routing checks and closes this Task alone. Consumer assertions will be made red locally before any feature-form edit; no failing consumer contract is pushed.
MariusStorhaug commentedon Oct 31, 2026
The consumer assertion step is complete before implementation: the unchanged feature form passes all 13 structure/routing checks and fails all 10 new consumer-expectation checks, with no skipped or unchecked cases. The expected red command is Invoke-Pester -Path .\tests\FeatureIntake.Tests.ps1 -Output Normal -CI (exit 10). The form had no diff before that run. The edited form will also receive a document-start marker and wrapped new prose to resolve its two baseline strict YAML diagnostics without touching other forms or lint configuration.
MariusStorhaug commentedon Oct 31, 2026
The form implementation step is complete at a747f71: 23 focused tests pass and targeted strict YAML lint passes. The single required description field, chooser metadata, title prefix, declared labels, and native feedback classification are preserved. Frozen correspondence was checked against MSXOrg/docs#230 at 1c8f98cabe64b12aaa5fa9fb5f51b9d03f5de9de: consumer need/motivation, ordinary-language context/action/result, maintainer routing, and retained Task/Bug technical plans agree. Both shipped canonical page links resolve; no new source anchor is used. The upstream source remains unmerged, and author review plus current-head CI readiness remain to be recorded.
MariusStorhaug commentedon Oct 31, 2026
The final scoped validation/evidence step is complete: all 23 Pester checks, strict feature-form YAML lint, PowerShell analysis, current canonical link checks, and the exact two-file branch/whitespace check pass. Frozen correspondence and the standards/convergence results are in the draft PR. Formal readiness remains explicit rather than assumed: the current head has no CI checks/statuses, the source PR is unmerged, and the live hub feature label is absent. These observations do not authorize CI/governance/label changes in this slice. The explicitly requested author review is the remaining in-scope handoff step.
MariusStorhaug commentedon Oct 31, 2026
The explicitly requested Copilot round approved a747f71 with both changed files covered, zero inline comments, and no active review issues: #89 (review). GitHub native closing linkage confirms that the separate draft closes only this Task. Readiness was refreshed after review: only the Copilot check succeeds; the active strict main rule still requires the absent Community file validation check from integration 15368. The source guidance PR is still unmerged, and the pre-existing live feature-label gap remains untouched. The PR body now distinguishes author approval from the unmet CI/source gates.
MariusStorhaug commentedon Oct 31, 2026
The final frozen-source/author-handoff plan step is complete: the verified draft and Task were published, and the assigned coordinator handoff was saved at head a747f71. All six scoped implementation steps are checked; the native Task remains open until merge. The PR remains draft with no auto-merge while the required Community file validation check is absent and the upstream guidance is unmerged. The live-label observation stays outside this delivery.