diff --git a/copilot-agent-strategy/agent-365-customer-implementation-guide/CHANGELOG.md b/copilot-agent-strategy/agent-365-customer-implementation-guide/CHANGELOG.md
index 68e22dbf..fe9057e6 100644
--- a/copilot-agent-strategy/agent-365-customer-implementation-guide/CHANGELOG.md
+++ b/copilot-agent-strategy/agent-365-customer-implementation-guide/CHANGELOG.md
@@ -2,6 +2,10 @@
All notable changes to the Microsoft Agent 365 Customer Implementation Guide are documented here.
+## 1.0.1 - 2026-09-09
+
+- Added `interactiveKind: guide` catalog metadata so the catalog labels this resource an "Interactive guide". Guide content is unchanged.
+
## 1.0.0 - 2026-09-09
- Published the self-contained customer implementation guide.
diff --git a/copilot-agent-strategy/agent-365-customer-implementation-guide/README.md b/copilot-agent-strategy/agent-365-customer-implementation-guide/README.md
index bdc01deb..1b7b1828 100644
--- a/copilot-agent-strategy/agent-365-customer-implementation-guide/README.md
+++ b/copilot-agent-strategy/agent-365-customer-implementation-guide/README.md
@@ -7,7 +7,7 @@ author:
- "Pratik Bhusal"
- "Manas Biswas"
- "Alejandro Lopez"
-version: 1.0.0
+version: 1.0.1
published: 2026-09-09
updated: 2026-09-09
tags:
@@ -16,6 +16,7 @@ tags:
- governance
- security
format: interactive
+interactiveKind: guide
featured: false
status: active
whatItIs: >-
diff --git a/copilot-agent-strategy/copilot-agents-guide/CHANGELOG.md b/copilot-agent-strategy/copilot-agents-guide/CHANGELOG.md
new file mode 100644
index 00000000..55124a1e
--- /dev/null
+++ b/copilot-agent-strategy/copilot-agents-guide/CHANGELOG.md
@@ -0,0 +1,9 @@
+# Changelog
+
+All notable changes to the Copilot Agents Guide are documented here.
+
+## 4.0.1 - 2026-09-09
+
+- Added `interactiveKind: guide` catalog metadata so the catalog labels this resource an "Interactive guide". Guide content is unchanged.
+
+Earlier version history is available in the repository Git log.
diff --git a/copilot-agent-strategy/copilot-agents-guide/README.md b/copilot-agent-strategy/copilot-agents-guide/README.md
index 0a9e39a9..63473015 100644
--- a/copilot-agent-strategy/copilot-agents-guide/README.md
+++ b/copilot-agent-strategy/copilot-agents-guide/README.md
@@ -6,14 +6,15 @@ summary: >-
Compare Microsoft Copilot agent approaches, availability, licensing, FastTrack scope, and common
scenarios.
author: Microsoft FastTrack
-version: 4.0.0
+version: 4.0.1
published: "2025-10-28"
-updated: "2026-08-21"
+updated: "2026-09-09"
tags:
- guide
- decision
- planning
format: interactive
+interactiveKind: guide
featured: true
whatItIs: >-
A self-contained interactive guide to Microsoft-built agent experiences, Agents in SharePoint,
diff --git a/docs/CATALOG-METADATA.md b/docs/CATALOG-METADATA.md
index 7d6fc2d0..4180f7b1 100644
--- a/docs/CATALOG-METADATA.md
+++ b/docs/CATALOG-METADATA.md
@@ -64,6 +64,7 @@ prerequisites:
| --- | --- | --- |
| `tags` | string list | Lowercase discovery terms. Prefer a few specific tags over many broad ones. |
| `format` | enum | One of `ps1`, `bundle`, `declarative`, `interactive`, `pptx`, `pbix`, or `md`. This replaces the former `artifact` label. |
+| `interactiveKind` | enum | Only for `format: interactive`. Set `guide` for a walkthrough or implementation/decision guide, or `tool` for a calculator or utility. Defaults to `tool`, which the catalog labels "Interactive tool"; `guide` is labeled "Interactive guide". |
| `featured` | boolean | Use sparingly for resources selected for catalog promotion. Default is `false`. |
| `status` | enum | `active`, `preview`, or `archived`. Default is `active`. |
| `url` | HTTPS URL | Optional GitHub or destination URL. When omitted, the generator derives a GitHub URL from the resource path. |
diff --git a/index.html b/index.html
index 2348755b..5c48781d 100644
--- a/index.html
+++ b/index.html
@@ -1355,7 +1355,7 @@
Updated weekly
Tools & templates for Microsoft 365
- Browse agents, analytics, and strategy resources — no coding required.
+ Browse agents, analytics, and guides — no coding required.
@@ -1573,7 +1573,7 @@
Related resources
{ id: 'all', label: 'All', desc: 'Browse everything' },
{ id: 'script', label: 'Scripts', colorVar: '--type-script', desc: 'PowerShell automation' },
{ id: 'agent', label: 'Agents', colorVar: '--type-agent', desc: 'Ready-to-use AI assistants' },
- { id: 'strategy', label: 'Strategy', colorVar: '--type-strategy', desc: 'Planning tools & guides' },
+ { id: 'strategy', label: 'Guides & planning', colorVar: '--type-strategy', desc: 'Implementation guides, planning tools & walkthroughs' },
{ id: 'analytics', label: 'Analytics', colorVar: '--type-analytics', desc: 'Power BI & reporting' },
{ id: 'prompt', label: 'Prompts', colorVar: '--type-prompt', desc: 'Copilot prompt templates' },
{ id: 'skill', label: 'Skills', colorVar: '--type-skill', desc: 'Interactive SME skills' }
@@ -1652,13 +1652,15 @@ Related resources
return t && t.colorVar ? `var(${t.colorVar}-bg)` : 'var(--surface-hover)';
};
- const formatArtifact = (artifact) => {
+ const formatArtifact = (artifact, resource) => {
+ if (artifact === 'interactive') {
+ return resource && resource.interactiveKind === 'guide' ? 'Interactive guide' : 'Interactive tool';
+ }
const map = {
'pbix': '.pbix · Power BI',
'ps1': '.ps1 · PowerShell',
'pptx': '.pptx · Slides',
'md': '.md · Doc',
- 'interactive': 'interactive · Web tool',
'bundle': 'bundle · Agent',
'declarative': 'declarative · Agent'
};
@@ -2176,8 +2178,8 @@
` : ''}
-
- ${star} ${formatArtifact(data.artifact)}
+
+ ${star} ${formatArtifact(data.artifact, data)}
${formatDate(data.updated)}
@@ -2443,7 +2445,7 @@
Browse all 54 scripts →
// Detail content
document.getElementById('detailDesc').textContent = resource.description;
- const fmt = formatArtifact(resource.artifact);
+ const fmt = formatArtifact(resource.artifact, resource);
const fallbackWhat = `This ${typeDef.label.toLowerCase()} is part of the ${resource.subcategory} category. It is provided as ${fmt} to assist with FastTrack deployments.`;
renderMarkdownish(document.getElementById('detailWhatItIs'), resource.whatItIs || fallbackWhat);
diff --git a/tools/catalog-build/index.js b/tools/catalog-build/index.js
index bd9d58cd..65af170a 100644
--- a/tools/catalog-build/index.js
+++ b/tools/catalog-build/index.js
@@ -23,6 +23,7 @@ const excludedSegments = new Set(['archive', '_sample_templates', 'samples']);
const allowedTypes = new Set(['script', 'agent', 'strategy', 'analytics', 'prompt', 'skill']);
const allowedFormats = new Set(['ps1', 'bundle', 'declarative', 'interactive', 'pptx', 'pbix', 'md']);
const allowedStatuses = new Set(['active', 'preview', 'archived']);
+const allowedInteractiveKinds = new Set(['guide', 'tool']);
const semverPattern = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
const datePattern = /^\d{4}-\d{2}-\d{2}$/;
@@ -133,6 +134,12 @@ function validate(data, file) {
if (data.format !== undefined && !allowedFormats.has(data.format)) add('format', `must be one of: ${[...allowedFormats].join(', ')}`);
if (data.featured !== undefined && typeof data.featured !== 'boolean') add('featured', 'must be true or false');
if (data.status !== undefined && !allowedStatuses.has(data.status)) add('status', `must be one of: ${[...allowedStatuses].join(', ')}`);
+ if (data.interactiveKind !== undefined && !allowedInteractiveKinds.has(data.interactiveKind)) {
+ add('interactiveKind', `must be one of: ${[...allowedInteractiveKinds].join(', ')}`);
+ }
+ if (data.interactiveKind !== undefined && data.format !== 'interactive') {
+ add('interactiveKind', 'is only allowed when format is interactive');
+ }
if (data.whatItIs !== undefined && !isNonEmptyString(data.whatItIs)) add('whatItIs', 'must be a non-empty string');
if (data.whyUseIt !== undefined && !isStringList(data.whyUseIt)) add('whyUseIt', 'must be a non-empty list of strings');
if (data.howToUse !== undefined && !isNonEmptyString(data.howToUse)) add('howToUse', 'must be a non-empty Markdown string');
@@ -177,6 +184,7 @@ function createResource(data, file, updated) {
format: data.format ?? 'md',
featured: data.featured ?? false,
status: data.status ?? 'active',
+ interactiveKind: data.interactiveKind,
author: data.author,
version: data.version,
published: data.published,