Visitar URL original
docs(agents): Drop stale native-rendering guidance by MartinZikmund · Pull Request #26378 · unoplatform/uno · GitHub
Skip to content

docs(agents): Drop stale native-rendering guidance - #26378

Open
MartinZikmund wants to merge 4 commits into
masterfrom
dev/mazi/agent-docs-refresh
Open

MartinZikmund wants to merge 4 commits into
masterfrom
dev/mazi/agent-docs-refresh

Conversation

@MartinZikmund

@MartinZikmund MartinZikmund commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

GitHub Issue: N/A (documentation-only change)

PR Type:

📚 Documentation content changes

What changed? 🚀

Most of the agent instructions already reflect that native rendering was removed in 7.0. This PR fixes the ones that don't, so they stop pointing agents at native renderers and old TFMs:

  • .specify/memory/constitution.md (v1.0.0 → 2.0.0): this file still said native rendering is "legacy" and must not break, still listed the native UIElement base classes, and still said DependencyObject is an interface on Android/iOS. Rewritten to describe a single managed UI layer drawn by a pluggable renderer. It now uses runtime checks or ApiExtensibility in Uno.UI, and file suffixes only in per-platform projects.
  • REVIEW.md (the CI Claude review prompt): it had the same "DependencyObject is an interface — implement, don't inherit" advice and the old suffix guidance. It also linked to .github/agents/dependency-property-agent.md, which no longer exists. Now points to .claude/rules/dependency-properties.md.
  • CLAUDE.md: removed the speckit pointer to the June 003-wasm-a11y-remediation plan. That plan calls the WASM-DOM target "maintenance-only" and uses pre-rename project names. /speckit-plan repopulates the markers.
  • AGENTS.md:
    • TFMs updated to net11/net10.
    • UnoTargetFrameworkOverride examples fixed: plain net11.0 is desktop, so browserwasm is now listed separately.
    • The suffix table now has .tvOS.cs and the correct variant semantics.
    • RuntimeAssetsSelectorTask notes fixed: Uno.UI ships in lib/ and only the WinRT trio is swapped.
    • Generated stub paths now cover Uno.UI/Generated/…/Microsoft.UI.*.
    • NuGet cache folder is now uno.winui.
    • PR template filename corrected.
  • Rules / skills:
    • build-system.md: TFMs updated to net11/net10.
    • source-generators.md: removed the TypeScript-binding generator, which no longer exists.
    • code-style.md: GlobalUsings.cs Android aliases are dead in Uno.UI.
    • platform-targeting.md: lists .tvOS.cs and the browser.
    • samples.md: now describes the single SamplesApp head.
    • winui-runtime-tests: dropped a DependencyObject-interface-era error message.
    • Review-panel cheatsheet wording updated.

All file paths and project names referenced from the agent files were checked against the tree.

Follow-up commits:

  • Trim AGENTS.md (409 → 366 lines): removed the Samples, XAML-formatting, runtime-test and DependencyObject sections that repeated the path-scoped rules, which already load when they're needed.
  • Promote recurring traps into rules and skills, each checked against master:
    • source-generators.md: run Uno.UI.SourceGenerators.Tests after a generator change, plus the WRITE_EXPECTED golden-file workflow and how Binding-option {StaticResource} gets resolved.
    • code-style.md: a clean local build doesn't prove IDE0055 formatting passes.
    • runtime-tests.md:
      • WaitForIdle doesn't render a frame (use WaitForRender).
      • Blank screenshots come from never-arranged elements that are still render-suppressed.
      • Tests must also compile for the WinAppSDK head.
      • [RequiresScaling], tvOS-only exclusions, and how to disable a flaky test.
    • debugging-discipline.md: measure the reported symptom before designing around it, and run the negative control (revert the fix and watch the test go red).
    • platform-targeting.md: ApiExtension types must stay public.
    • build-system.md: the AssignTargetPath folder collapse.
    • winui-port: MUX_ASSERT arguments disappear in Release builds.
    • AGENTS.md: two new restore errors in the troubleshooting table, and don't comment /azp run.
  • Pluggable renderer model: several files said "Skia renders every target". They now describe a single managed UI layer (Uno.UI + Uno.UI.Composition) drawn by a renderer chosen at run time, Skia (the default) or WebGPU, behind the Uno.UI.Composition.Drawing abstractions and negotiated by GraphicsRegistry. They also say the managed layer must stay renderer-neutral (no SkiaSharp), and that __SKIA__, .skia.cs, RuntimeTestPlatforms.Skia* and "Skia Desktop" are older names that mean "drawn by Uno" (as opposed to WinAppSDK), not the Skia renderer. Changed in AGENTS.md, REVIEW.md, the constitution, platform-targeting.md, the review-panel agents and the skills.

PR Checklist ✅

🤖 Generated with Claude Code

https://claude.ai/code/session_01TXMNu22XP5AgYVsBrpZU2z

Align the agent-facing instructions with the Skia-only 7.0 codebase:
the speckit constitution and REVIEW.md still described native
renderers as legacy-but-supported and DependencyObject as an interface.
Also refresh TFMs to net11/net10, the runtime asset selection notes,
and clear the stale speckit plan pointer from CLAUDE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TXMNu22XP5AgYVsBrpZU2z
Copilot AI balanced review requested due to automatic review settings November 13, 2026 09:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 22s —— View job


Review of #26378: drop stale native-rendering guidance

Verdict: ship. 0 blocking issues, 0 inline findings, 2 optional nits.

This is a docs-only change. I diffed it against origin/master and spot-checked its factual claims against the tree:

  • .github/pull_request_template.md exists, and .github/agents/ is gone, so the REVIEW.md link fix is correct.
  • *.tvOS.cs is handled in src/Uno.CrossTargetting.targets, so adding it to the suffix tables is valid.
  • The new DependencyObject-is-a-class wording matches .claude/rules/dependency-properties.md, .claude/rules/source-generators.md and .claude/agents/architect.md.
  • The constitution rewrite (1.0.0 → 2.0.0) is consistent with AGENTS.md and platform-targeting.md. The version bump and amendment header follow the file's own convention.

Nits (optional)

  1. CLAUDE.md now has an empty / block. That is fine if /speckit-plan repopulates it, as the description says. A one-line comment inside the block would stop a reader from thinking the block was left empty by mistake.
  2. Other stale docs remain, outside this PR's scope. specs/theming-winui-alignment/architecture.md:213 still says DependencyObject is an interface on every target. It is a spec, not agent guidance, so it can be a follow-up. I did not find any other current agent-facing file that still carries the old guidance.

Note on the review prompt

The prompt used to run this review still says "DependencyObject is an interface on Android/iOS" and points to .github/agents/dependency-property-agent.md. Both are stale, and this PR's REVIEW.md change fixes them. I reviewed against the corrected facts. The CI prompt should pick up the new REVIEW.md once this merges.

I did not build or run anything. This is a code review by inspection only, and the PR touches no source or build files.

@mergify

mergify Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue). If it does not match the queue conditions yet, it enters the queue once it does.

  • Queue this pull request

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-26378/docs/index.html

MartinZikmund and others added 2 commits November 13, 2026 12:12
Samples, XAML formatting and runtime-test sections repeated what the
path-scoped rules already carry; point to them instead to cut the
always-loaded context.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TXMNu22XP5AgYVsBrpZU2z
Fold traps that kept resurfacing into the path-scoped rules and skills:
generator golden tests, IDE0055 local blind spot, WaitForIdle vs render
ticks, arrange-pending blank screenshots, WinAppSDK-head compile parity,
ApiExtension visibility, MUX_ASSERT in Release, restore pitfalls and
negative-control validation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TXMNu22XP5AgYVsBrpZU2z
Copilot AI balanced review requested due to automatic review settings November 13, 2026 11:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 14s —— View job


Review of #26378: drop stale native-rendering guidance

Verdict: ship. 0 blocking issues, 0 inline findings, 1 optional nit.

This is a docs-only change. I checked it by inspection and did not build or run anything.

  • NetCurrent=net11.0 and NetPrevious=net10.0 in Directory.Build.props, so the build-system.md and AGENTS.md TFM updates are correct.
  • The CLAUDE.md edit matches the description: the stale 003-wasm-a11y-remediation pointer is removed and the speckit markers are left in place.

Nit

  • CLAUDE.md now has an empty SPECKIT START/SPECKIT END block. That is fine if /speckit-plan repopulates it. A short comment inside the block would stop readers from thinking it was emptied by mistake.

Cross-cutting

  • specs/theming-winui-alignment/architecture.md may still describe DependencyObject as an interface. It's a spec, not agent guidance, so it can be a follow-up.
  • The CI review prompt still carries the old "DependencyObject is an interface" advice and the dead .github/agents/dependency-property-agent.md link. I reviewed against the corrected facts, and this PR's REVIEW.md change fixes both.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-26378/docs/index.html

The UI is one shared managed layer drawn by a renderer chosen at run
time (Skia or WebGPU), not "Skia everywhere". Say so, keep the managed
layer renderer-neutral, and flag that Skia-named symbols and test
platforms mean "Uno-drawn", not the Skia renderer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TXMNu22XP5AgYVsBrpZU2z
Copilot AI balanced review requested due to automatic review settings November 13, 2026 12:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 11s —— View job


Review of #26378: drop stale native-rendering guidance

Verdict: ship. 0 blocking issues, 0 inline findings.

This is a docs-only change that touches agent guidance, rules, skills and the constitution. I read the diff of the rules, skills and CLAUDE.md by inspection. I did not build or run anything, and I did not re-verify every claim in the follow-up commits against the tree. Earlier reviews on this PR already confirmed the main facts:

  • The TFM values.
  • The .github/agents/ removal.
  • The .tvOS.cs handling.
  • The DependencyObject-is-a-class wording.

Cross-cutting

  • CLAUDE.md now has an empty speckit block. That is fine if /speckit-plan repopulates it. A short comment inside the block would show it is intentionally empty.
  • specs/theming-winui-alignment/architecture.md may still describe DependencyObject as an interface. It's a spec rather than agent guidance, so it can be a follow-up.
  • The CI review prompt still carries the old "DependencyObject is an interface" advice and the dead .github/agents/dependency-property-agent.md link. I reviewed against the corrected facts. This PR's REVIEW.md change fixes both once it merges.

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-26378/docs/index.html

@unodevops

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Sample App stage site is ready! Visit it here:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants