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 first explains how things work today and what is difficult or missing, then why a change is valuable and who benefits, then the additional need or desired change and expected behavior in a real situation. The form uses 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 labelCurrent situation and desired change, four plain-language prompts, and optional placeholder starters. Explain the current situation first, then lead the requested change with its value for the user before asking for the change and observable behavior. This preserves minimum submission usability and URL-prefill identity without adding mandatory sections. -
Ask in this order:
How do things work today, and what is difficult or missing?,Who would benefit from a change, and why would it be valuable?,What additional need or change would you like to see?, andIn a real situation, what would you do and expect to happen?. Use matching current-state, user-value, desired-change, and expected-result placeholder starters. Do not solicit implementation suggestions or 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 merged on November 3, 2026, and the canonical planning page now contains the verified consumer-expectations boundary and retained Task/Bug technical plans. -
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 user-directed form revision is committed and published at 54b07712718d5f61e14d633e5de29ff8184659cf in PSModule/.github#89: all 25 parsed public form/routing checks, strict feature-form YAML lint, PowerShell analysis, and branch whitespace/scope checks pass. Seven changed prompt-order assertions failed before the form edit. The requested author review of this new head is pending; the old-head approval is not reused as current evidence.
The native PR remains open, not draft, unmerged, and with GitHub autoMergeRequest=null; this user-directed revision does not change its review state or enable landing. The source guidance in MSXOrg/docs#230 is merged and both shipped canonical pages resolve. The old unmerged-source dependency is resolved.
The new head initially has no check runs. The latest read-only branch-rules query returned no required-status-check rules; do not carry the October strict-check assertion forward as verified current governance. This delivery does not modify CI/validation/rules. The October missing-feature-label observation remains historical and untouched, not a new fleet claim.
Git transport returned repeated GitHub Internal Server Error rejections. The identical verified commit was published through the supported Git data APIs: matching root tree and commit SHA, fast-forward-only ref update, and independent ref/PR readback. No force-push, governance bypass, replacement commit, or PR-state change occurred.
User-directed current-situation-first revision
The November 4 request changes the sequence, not the intake or routing scope: establish the current situation before introducing the additional need or desired change, and lead that change with its value to the user. Task/Bug technical plans, external feedback routing, and the single required field are unchanged. The PR is already open for review; do not silently change its draft state or enable automatic landing.
- Update focused assertions for the current-situation-first introduction, exact ordered prompts, and matching optional starters; show the old form fails before editing it.
- Update only the feature form copy, retaining GitHub structure, submission requirements, identity, labels, and maintainer routing.
- Run focused Pester, strict YAML lint, PowerShell analysis, and diff checks; commit and push the verified revision and refresh the PR evidence and author review.
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.
MariusStorhaug commentedon Nov 4, 2026
The user requested current situation first, followed by user value, the additional need or desired change, and expected behavior. The Task acceptance criterion and technical prompt decisions now reflect that sequence, with a new test-first revision plan. No form, routing declaration, native classification, draft state, CI/governance setting, or live label has changed yet.
MariusStorhaug commentedon Nov 4, 2026
The revised parsed public form contract is red before implementation: 18 checks pass and all 7 current-situation/order/label/starter checks fail (25 total, 0 skipped). The existing feature form had no diff before that run. PowerShell analysis of the updated assertions passes. These checks cover what the GitHub form displays, not source-text or documentation drift.
MariusStorhaug commentedon Nov 4, 2026
The form-copy revision is complete: current situation first, then user value, desired change, and expected behavior, with matching optional starters and no additional required fields. All 25 parsed form/routing checks now pass, as do strict feature-form YAML lint, PowerShell analysis, and diff whitespace checks. The Gherkin check now distinguishes a literal scenario template from ordinary English such as Then; it still rejects implementation solicitation and prescribed syntax. Commit, PR evidence, and refreshed author review are next.