Skip to content

Added prompts to prepare GitHub PR and issue descriptions - #597

Open
xperiandri wants to merge 32 commits into
devfrom
add-pr-issue-description-prompts
Open

xperiandri wants to merge 32 commits into
devfrom
add-pr-issue-description-prompts

Conversation

@xperiandri

Copy link
Copy Markdown
Collaborator

Proposed Changes

Added a .github/PULL_REQUEST_TEMPLATE.md and two Copilot agent prompts under .github/prompts/:

  • create-pr-description.prompt.md fills in the new PR template from the current branch's diff and commit history.
  • create-issue-description.prompt.md fills in the existing .github/ISSUE_TEMPLATE.md the same way.

Both prompts compare the current branch against origin/dev, the default branch of this repository.

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

  • Build and tests pass locally — no code changes; nothing to build or test
  • I have added tests that prove my fix is effective or that my feature works (if appropriate) — not applicable, these are Copilot prompt/template files
  • I have added necessary documentation (if appropriate) — the prompts and template are self-documenting

🤖 Generated with Claude Code

Copilot AI and others added 30 commits May 18, 2026 12:04
…ory` and remove external server orchestration from build (#564)

Co-authored-by: xperiandri <2365592+xperiandri@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Andrii Chebukin <XperiAndri@Outlook.com>
…compile time (#569)

Co-authored-by: xperiandri <2365592+xperiandri@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Andrii Chebukin <XperiAndri@Outlook.com>
Co-authored-by: xperiandri <2365592+xperiandri@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Andrii Chebukin <XperiAndri@Outlook.com>
Signed-off-by: dependabot[bot] <support@github.com>
…, and add PR preview publishing (#570)

Co-authored-by: xperiandri <2365592+xperiandri@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Andrii Chebukin <XperiAndri@Outlook.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Added MSBuild target to ensure DesignTime DLL is included in NuGet package, working around F# SDK limitations with ProjectReference-based providers. Removed obsolete target for cleaning NuGet pack input and updated conditions for consistency.
… to `3.53.3` (#588)

Co-authored-by: xperiandri <2365592+xperiandri@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: xperiandri <2365592+xperiandri@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Andrii Chebukin <XperiAndri@Outlook.com>
* Refactored `ObjectListFilter`: modularized, added type coercion

- Moved filter operators and LINQ logic to ObjectListFilterModule.fs
- Added `TypeCoercion.fs` for automatic filter value coercion (`Guid`, `DateTime`, F# DUs, etc.)
- Introduced `FilterValueCoercer` and extended `ObjectListFilterLinqOptions` for custom coercion
- Centralized filter suffix constants in `FilterSuffixConstants.fs`
- Updated `SchemaDefinitions.fs` to use new suffix constants
- Added `vtryFind` and `vtryPick` utilities for arrays/lists in `Extensions.fs`
- Improved code style, documentation, and function signatures

* Refactor 'ObjectListFilter' to use 'System.Text.Json' coercion

Replaces custom value coercers with 'System.Text.Json'-based coercion in 'ObjectListFilter', supporting advanced scenarios like F# DUs and CLR enums via 'JsonSerializerOptions'. Updates 'ObjectListFilterLinqOptions' to accept 'JsonSerializerOptions'. Refactors 'TypeCoercion' module to use JSON serialization/deserialization for all type conversions. Updates filter application logic and expands the test suite with new files to cover a wide range of coercion scenarios. Updates documentation and usage examples accordingly.

* Updateв schema, add type coercion guide, bug report, tools

* Added bug report for InputObject array type mismatch with analysis and test cases
* Added type coercion guide for ObjectListFilter with usage and API docs
* Introduced format-changed-files.ps1 to batch-format changed F# files via Fantomas
* Updated schema snapshots for relay-style connections and new scalars
* Refactored field_aliases.fsx for relay-style friends connection
* Optimized TypeCoercion.fs to use Utf8JsonWriter for value coercion
* Added prompt template for automated PR/issue description generation

* Rebase fix

* Update filters to use `CurrentCulture` string comparison

Updated all string comparison operations in `ObjectListFilter` and filter parsing logic to use `StringComparer.CurrentCulture` or `StringComparer.CurrentCultureIgnoreCase` instead of `Ordinal`/`OrdinalIgnoreCase`. Adjusted related test expectations to match. This ensures string-based filters now respect the current culture's case rules.

* Rebase fixes

* Removed unnecessary `ObjectListFilterValidationException`

* Added test traits

* AI review fixes

* Fix ObjectListFilter IN coercion behavior and add converter/no-converter tests
* Enhanced `InputValue.OfObject` to handle `Guid` (as `StringValue "D"`),
`IReadOnlyDictionary`/`IDictionary` (as `ObjectValue`), and improved F#
union handling.
* Added `GuidId` DU, wrapped scalar, and new `Guid`/`ValueObject`
fields to test types, extended tests for filtering with `Guid` and custom
value object scalars.
* Added `ObjectListFilterEmptyArrayTests.fs` with cases for Contains, Equals, Not Equals, and logical operators on empty/non-empty lists. Updated `.fsproj` to include the new file.
* Extended `ObjectListFilterLinqGenerateTests.fs` to verify correct Cosmos SQL generation for list equality and length checks.
- Implemented comprehensive validation for interface field covariance, covering output type subtyping, argument compatibility, and field implementation checks.
- Enhanced error messages with clearer formatting and context.
- Updated validation logic for object, input object, union, and enum types to use interpolated strings.
- Added `InterfaceCovarianceTests.fs` with extensive valid/invalid covariance scenarios.
- Modernized `TypeValidationTests.fs` and expanded `UnionInterfaceTests.fs` for execution coverage.
…/file-upload/server (#558)

Signed-off-by: dependabot[bot] <support@github.com>
#592)

Signed-off-by: dependabot[bot] <support@github.com>
…server (#586)

Signed-off-by: dependabot[bot] <support@github.com>
…#590)

Signed-off-by: dependabot[bot] <support@github.com>
…pload/server (#561)

Signed-off-by: dependabot[bot] <support@github.com>
…ient (#408)

Signed-off-by: dependabot[bot] <support@github.com>
#593)

Signed-off-by: dependabot[bot] <support@github.com>
…395)

Co-authored-by: xperiandri <2365592+xperiandri@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
…added tests

* Added schema validation to ensure every interface has at least one implementing object type, returning a validation error if not. Introduced a `Validate()` method on the schema.
* Updated `getPossibleTypes` for interfaces to use `Map.vtryFind` and `ValueOption` for safer lookups.
* Added `InterfaceMissingImplementationTests.fs` with tests for orphaned interfaces and registered it in the test project file.
Named operations used `token_ws selectionSet`, which applies
`notFollowedBy (letter|digit|_)` after the selection set. That rejected
valid minified documents where a punctuator `}` is immediately followed
by a Name (`fragment`, `query`, …), e.g. graphql-js `getIntrospectionQuery()`
output and tooling such as GraphQL Inspector.

Selection sets end with the punctuator `}`; consume trailing Ignored with
`selectionSet .>> whitespaces` instead of `token_ws`.

Per GraphQL spec (Language / Source Text):
- Lexical tokens may be separated by Ignored tokens (Whitespace, etc.)
- Any amount of Ignored may appear before/after every token (including zero)
- Whitespace is required only when consecutive SourceCharacters would otherwise
  form a single token (maximal munch); `}` cannot start a Name, so `}fragment`
  and `}query` are two tokens without a separator

Spec:
https://spec.graphql.org/draft/#sec-Source-Text.Ignored-Tokens
https://spec.graphql.org/October2021/#sec-Source-Text.Ignored-Tokens

Tests: minified shorthand/named query + fragment, adjacent named queries,
and a multi-fragment introspection-shaped document.
xperiandri and others added 2 commits August 13, 2026 03:33
* Updated `TypeMetaFieldDef` to return nullable `__Type` (StructNullable).
* Changed resolver to use `Seq.vtryFind`, returning null for unknown types.
* Added test to verify `__type` returns null for unknown type names.
Added a pull request template and a `create-pr-description` prompt that fills it in from the branch diff,
and a `create-issue-description` prompt that fills in `ISSUE_TEMPLATE.md`. Both compare against `origin/dev`,
the default branch of this repository.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@valbers

valbers commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Why this:

  • Use only en dashes () for dashes; never use em dashes ().

?

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.

3 participants