diff --git a/README.md b/README.md
index 6df03ae..428742e 100644
--- a/README.md
+++ b/README.md
@@ -53,6 +53,12 @@ its build targets) and copies its brand assets (`Assets/Brand/app-icon.svg`,
## Usage
+The default sample/starter Help menus include **View on GitHub**,
+**Submit an issue…** and **Community support…**, matching gclo. Derive the issue
+chooser (`/issues/new/choose`) and Discussions (`/discussions`) from the app's
+`AppInfo.RepositoryUrl`; enable GitHub Discussions during repository setup.
+Both WinUI and WPF samples show the wiring without requiring a new AppKit API.
+
New apps should start from the KofTwentyTwo Windows app template, which has everything
below in place; the design is the
[Windows desktop reference architecture](https://github.com/KofTwentyTwo/standards/blob/main/architecture/windows-desktop-app.md).
diff --git a/samples/AppKit.Sample.WinUI/MainWindow.Help.cs b/samples/AppKit.Sample.WinUI/MainWindow.Help.cs
new file mode 100644
index 0000000..701ae7c
--- /dev/null
+++ b/samples/AppKit.Sample.WinUI/MainWindow.Help.cs
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2026 James Maes
+ * SPDX-License-Identifier: MIT
+ */
+
+using Microsoft.UI.Xaml;
+
+
+namespace AppKit.Sample.WinUI;
+
+/// Opens only the app's fixed public Help destinations after deliberate native menu actions.
+public sealed partial class MainWindow
+{
+ /// Shows this Windows app's repository in the user's default browser.
+ private async void GitHub_Click(object sender, RoutedEventArgs args) => await OpenHelpPageAsync(SampleApp.Info.RepositoryUrl!);
+
+
+
+ /// Offers the app's issue templates without sending private document data.
+ private async void SubmitIssue_Click(object sender, RoutedEventArgs args) => await OpenHelpPageAsync(SampleApp.IssuesUrl);
+
+
+
+ /// Opens community questions and tips in this app's repository.
+ private async void CommunitySupport_Click(object sender, RoutedEventArgs args) => await OpenHelpPageAsync(SampleApp.SupportUrl);
+
+
+
+ /// A missing browser or OS launch failure is visible; no document path/content is included.
+ private async Task OpenHelpPageAsync(Uri target)
+ {
+ try
+ {
+ if(!await global::Windows.System.Launcher.LaunchUriAsync(target))
+ {
+ StatusText.Text = "The link could not be opened. Check your default browser.";
+ }
+ }
+ catch(Exception exception) when(exception is System.Runtime.InteropServices.COMException or InvalidOperationException or ArgumentException)
+ {
+ StatusText.Text = "The link could not be opened. Check your default browser.";
+ App.Log.Warning(FormattableString.Invariant($"A Help link could not be opened ({exception.GetType().Name}, 0x{exception.HResult:X8})."));
+ }
+ }
+}
diff --git a/samples/AppKit.Sample.WinUI/MainWindow.xaml b/samples/AppKit.Sample.WinUI/MainWindow.xaml
index efe302b..8e48950 100644
--- a/samples/AppKit.Sample.WinUI/MainWindow.xaml
+++ b/samples/AppKit.Sample.WinUI/MainWindow.xaml
@@ -25,7 +25,11 @@
-
+
+
+
+
+
diff --git a/samples/AppKit.Sample.Wpf/MainWindow.Help.cs b/samples/AppKit.Sample.Wpf/MainWindow.Help.cs
new file mode 100644
index 0000000..09b1b25
--- /dev/null
+++ b/samples/AppKit.Sample.Wpf/MainWindow.Help.cs
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2026 James Maes (KofTwentyTwo)
+ * SPDX-License-Identifier: MIT
+ */
+
+using System.Diagnostics;
+using System.Windows;
+
+
+namespace AppKit.Sample.Wpf;
+
+/// Opens the sample's fixed public Help destinations using the Windows default browser.
+public partial class MainWindow
+{
+ /// Shows the sample's source repository.
+ private void GitHub_Click(object sender, RoutedEventArgs args) => OpenHelpPage(SampleApp.Info.RepositoryUrl!);
+
+
+
+ /// Offers the repository's bug/feature templates.
+ private void SubmitIssue_Click(object sender, RoutedEventArgs args) => OpenHelpPage(SampleApp.IssuesUrl);
+
+
+
+ /// Opens the sample's community support destination.
+ private void CommunitySupport_Click(object sender, RoutedEventArgs args) => OpenHelpPage(SampleApp.SupportUrl);
+
+
+
+ /// Surfaces OS/browser launch failure without passing private app data to the shell.
+ private void OpenHelpPage(Uri target)
+ {
+ try
+ {
+ using var process = Process.Start(new ProcessStartInfo(target.AbsoluteUri) { UseShellExecute = true });
+ }
+ catch(Exception exception) when(exception is System.ComponentModel.Win32Exception or InvalidOperationException)
+ {
+ StatusText.Text = "The link could not be opened. Check your default browser.";
+ Program.Log.Warning(FormattableString.Invariant($"A Help link could not be opened ({exception.GetType().Name}, 0x{exception.HResult:X8})."));
+ }
+ }
+}
diff --git a/samples/AppKit.Sample.Wpf/MainWindow.xaml b/samples/AppKit.Sample.Wpf/MainWindow.xaml
index adfd523..c67f3af 100644
--- a/samples/AppKit.Sample.Wpf/MainWindow.xaml
+++ b/samples/AppKit.Sample.Wpf/MainWindow.xaml
@@ -25,6 +25,10 @@