From 67c1dfe09fe810efb507c60a6fd535bd1984f8ff Mon Sep 17 00:00:00 2001
From: Paul Carleton <paulc@anthropic.com>
Date: Thu, 20 Nov 2025 13:25:53 +0000
Subject: [PATCH 1/2] [auth] Add metadata suite for running metadata discovery
 tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Adds a new 'metadata' suite that runs just the auth/metadata-* scenarios
for faster iteration when testing metadata discovery specifically.

Usage: node dist/index.mjs client --suite metadata --command "..."

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
---
 src/index.ts                                    | 8 +++++---
 src/scenarios/client/auth/discovery-metadata.ts | 5 +++++
 src/scenarios/index.ts                          | 3 +++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/index.ts b/src/index.ts
index 1cb6b38f..21145d55 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -14,7 +14,8 @@ import {
   listScenarios,
   listClientScenarios,
   listActiveClientScenarios,
-  listAuthScenarios
+  listAuthScenarios,
+  listMetadataScenarios
 } from './scenarios';
 import { ConformanceCheck } from './types';
 import { ClientOptionsSchema, ServerOptionsSchema } from './schemas';
@@ -51,7 +52,8 @@ program
         }
 
         const suites: Record<string, () => string[]> = {
-          auth: listAuthScenarios
+          auth: listAuthScenarios,
+          metadata: listMetadataScenarios
         };
 
         const suiteName = options.suite.toLowerCase();
@@ -147,7 +149,7 @@ program
         console.error('Either --scenario or --suite is required');
         console.error('\nAvailable client scenarios:');
         listScenarios().forEach((s) => console.error(`  - ${s}`));
-        console.error('\nAvailable suites: auth');
+        console.error('\nAvailable suites: auth, metadata');
         process.exit(1);
       }
 
diff --git a/src/scenarios/client/auth/discovery-metadata.ts b/src/scenarios/client/auth/discovery-metadata.ts
index 56a96942..86f1d007 100644
--- a/src/scenarios/client/auth/discovery-metadata.ts
+++ b/src/scenarios/client/auth/discovery-metadata.ts
@@ -217,3 +217,8 @@ export const AuthMetadataVar3Scenario = createMetadataScenario(
 
 // Export all scenarios as an array for convenience
 export const metadataScenarios = SCENARIO_CONFIGS.map(createMetadataScenario);
+
+// Export function to list metadata scenario names (for suite support)
+export function listMetadataScenarios(): string[] {
+  return metadataScenarios.map((s) => s.name);
+}
diff --git a/src/scenarios/index.ts b/src/scenarios/index.ts
index 16e01cef..3180c266 100644
--- a/src/scenarios/index.ts
+++ b/src/scenarios/index.ts
@@ -46,6 +46,7 @@ import {
 } from './server/prompts.js';
 
 import { authScenariosList } from './client/auth/index.js';
+import { listMetadataScenarios } from './client/auth/discovery-metadata.js';
 
 // Pending client scenarios (not yet fully tested/implemented)
 const pendingClientScenariosList: ClientScenario[] = [
@@ -151,3 +152,5 @@ export function listActiveClientScenarios(): string[] {
 export function listAuthScenarios(): string[] {
   return authScenariosList.map((scenario) => scenario.name);
 }
+
+export { listMetadataScenarios };

From f559fe59ee847eb82865d0f3c8fd1ec98b65bab3 Mon Sep 17 00:00:00 2001
From: Paul Carleton <paulc@anthropic.com>
Date: Thu, 20 Nov 2025 13:26:12 +0000
Subject: [PATCH 2/2] Don't require lefthook to be installed
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Set assert_lefthook_installed to false so the hooks gracefully skip
if lefthook is not installed on the system.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
---
 lefthook.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lefthook.yml b/lefthook.yml
index 3399e5fa..445ba02d 100644
--- a/lefthook.yml
+++ b/lefthook.yml
@@ -1,7 +1,7 @@
 # lefthook.yml
 # Configuration reference: https://lefthook.dev/configuration/
 
-assert_lefthook_installed: true
+assert_lefthook_installed: false
 
 output:
   - meta # Print lefthook version
