Skip to content

[skills] Update macios-binding-creator skill#24962

Merged
dalexsoto merged 4 commits intomainfrom
dev/alex/update-skills
Mar 23, 2026
Merged

[skills] Update macios-binding-creator skill#24962
dalexsoto merged 4 commits intomainfrom
dev/alex/update-skills

Conversation

@dalexsoto
Copy link
Copy Markdown
Member

No description provided.

dalexsoto and others added 2 commits March 20, 2026 23:30
Training session driven by session fbb72a46 (CarPlay binding) evidence
and 3-model evaluation (Sonnet 4.5, GPT-5.1-Codex, GPT-4.1).

Changes:
- Add 'Struct Array Parameter Binding' section to binding-patterns.md
  covering [Internal]+IntPtr, factory pattern with fixed, property
  getters, and InitializeHandle variant (addresses #1 gap from all
  3 eval models)
- Add named delegate type anti-pattern (NEVER use Action<T> for
  completion handlers)
- Add #nullable enable rule to SKILL.md
- Add empty .todo file cleanup guidance to xtro test section
- Add struct array recognition trigger with cross-reference

Eval results (Sonnet 4.5 before→after):
  Accuracy:     3/5 → 4/5
  Completeness: 2/5 → 3/5
  Clarity:      4/5 → 4/5

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

bool Validate (ValidationHandler handler);
```

> ❌ **NEVER** use `Action<T>` or `Func<T>` for completion handler parameters. Always define a **named delegate type** (e.g., `delegate void MyHandler (...)`) — this produces better API documentation and IntelliSense.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be easier to just change sharpie to spit out named delegates instead of Action/Func delegates.

- Use 'Create' instead of 'From' for factory methods (not a verb)
- Add note that manual code needs XML documentation comments
- Remove redundant empty-array checks (fixed handles zero-length correctly)
- Pass selector string to InitializeHandle
- Check for null pointer instead of count==0 in property getter
- Note that xtro-sharpie may generate Action/Func delegates to convert

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dalexsoto dalexsoto requested a review from rolfbjarne March 23, 2026 12:31
GetCheckedHandle() throws ObjectDisposedException if the object has been
disposed, preventing hard-to-debug native crashes. Added as a general
rule in Common Pitfalls and fixed the P/Invoke example.

Ref: #24960 (comment)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #8a6c5b8] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: 8a6c5b87d4c06fb0a65f564e9fbaea26b7f2c9d9 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 8a6c5b87d4c06fb0a65f564e9fbaea26b7f2c9d9 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #8a6c5b8] Build passed (Build packages) ✅

Pipeline on Agent
Hash: 8a6c5b87d4c06fb0a65f564e9fbaea26b7f2c9d9 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #8a6c5b8] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: 8a6c5b87d4c06fb0a65f564e9fbaea26b7f2c9d9 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

🔥 [CI Build #8a6c5b8] Test results 🔥

Test results

❌ Tests failed on VSTS: test results

0 tests crashed, 1 tests failed, 155 tests passed.

Failures

❌ linker tests

1 tests failed, 43 tests passed.

Failed tests

  • trimmode link/iOS - simulator/Debug: LaunchFailure

Html Report (VSDrops) Download

Successes

✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 11 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 12 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 11 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Monterey (12): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Ventura (13): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Pipeline on Agent
Hash: 8a6c5b87d4c06fb0a65f564e9fbaea26b7f2c9d9 [PR build]

@dalexsoto
Copy link
Copy Markdown
Member Author

unrelated test failure

@dalexsoto dalexsoto merged commit 0eb08a7 into main Mar 23, 2026
42 of 44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants