Skip to content

Add Copilot repository and path-scoped agent instructions - #7

Merged
sbokatuk merged 1 commit into
masterfrom
copilot/create-copilot-instructions
Jul 30, 2026
Merged

Add Copilot repository and path-scoped agent instructions#7
sbokatuk merged 1 commit into
masterfrom
copilot/create-copilot-instructions

Conversation

Copilot AI commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

The repository had no agent instructions of any kind (no CLAUDE.md, AGENTS.md or copilot-instructions.md), so every agent session rediscovered the umbrella's non-obvious constraints from scratch — or got them wrong. Adds repository-wide custom instructions plus two path-scoped files, all verified against the props, csprojs, workflows, scripts and tests that actually enforce the rules.

.github/copilot-instructions.md

  • Overview — facade over three binding repos; two packages × eight variants; no native code and no binding code here; exact-pinned platform packages; $(FFmpegVersion).$(FFmpegKitBindingRevision).
  • Build & verify — macOS required (both packages multi-target Android + iOS + macOS, so restoring needs the iOS workload even for Android-only work); .NET 9 per global.json and .NET 10 for the second pack pass; dotnet build FFmpegKit.Net.sln fails on whichever band is missing.
  • Conventions — British spelling in prose but American in identifiers/SPDX; Ffmpegkit.Net namespaces; exact [pin] ranges; per-variant obj/bin; the heavily-commented csproj style is load-bearing and should be extended, not stripped.
  • CI & release — PR beta publish → release-note merge on master → auto-release tag → guard job → nuget push → GitHub release. Releases skip re-verification because the PR verified the same commit, which is why the guard must stay.
  • Hard rules — no native binaries or binding projects, no floating/widening pins, no -beta.* pin reaching a release, no Catalyst, no hand-editing merged nupkgs, licence machinery intact.

.github/instructions/workflows.instructions.mdapplyTo: ".github/workflows/*.yml"

Trusted-publishing contract (environment: nuget.org, NUGET_USER as the only secret, id-token: write), verify input semantics, master not main, and why release.yml needs both its workflow_dispatch and push: tags triggers.

.github/instructions/packaging.instructions.mdapplyTo: "src/**/*.csproj, Directory.Build.props, build/**"

Pin discipline including the mirror in tests/FFmpegKit.Net.PackageTests/Packages.cs, the SDK band/TFM matrix, per-variant output paths, the merge invariant (a dependency group must carry its <dependency> children, not be synthesised empty), and the deliberately literal MAUI Controls floors.

Notes for review

Two things in-repo are misleading and were deliberately not repeated:

  • upstream-drift.yml's REPIN_HINT points at ./build/BumpNativeVersion.sh, which does not exist here.
  • The PR beta is derived from FFmpegVersion, i.e. 8.1.2-beta.<pr>.<run> — not the four-part VersionPrefix.

@sbokatuk
sbokatuk marked this pull request as ready for review July 30, 2026 11:15
@sbokatuk
sbokatuk merged commit 8fe317a into master Jul 30, 2026
14 checks passed
@sbokatuk
sbokatuk deleted the copilot/create-copilot-instructions branch July 30, 2026 11:15
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.

2 participants