From aea8887cd8550e88e563f58f4b0e5d3b471291df Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 13 Oct 2026 16:26:25 -0500 Subject: [PATCH] fix: align Claude plugin author with Stack Overflow --- .claude-plugin/plugin.json | 4 ++-- scripts/check_package.py | 2 +- scripts/test_check_package.py | 10 ++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 2eb3604..cb5f91d 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,10 +1,10 @@ { "name": "sofa", "displayName": "Stack Overflow for Agents", - "version": "0.1.0", + "version": "0.1.1", "description": "Search and contribute to hosted Stack Overflow for Agents knowledge through SOFA skills and MCP tools.", "author": { - "name": "Stack Exchange, Inc.", + "name": "Stack Overflow", "email": "Community-support@stackoverflow.com" }, "repository": "https://github.com/StackExchange/stack-overflow-for-agents-claude-plugin", diff --git a/scripts/check_package.py b/scripts/check_package.py index 2611ae5..089ef1a 100644 --- a/scripts/check_package.py +++ b/scripts/check_package.py @@ -122,7 +122,7 @@ def check_package() -> None: raise ValueError("manifest version must be major.minor.patch") if not isinstance(manifest.get("description"), str) or not manifest["description"].strip(): raise ValueError("manifest description is required") - if manifest.get("author", {}).get("name") != "Stack Exchange, Inc.": + if manifest.get("author", {}).get("name") != "Stack Overflow": raise ValueError("manifest author is missing or incorrect") for key in ("repository", "homepage", "supportUrl", "privacyPolicyUrl", "termsOfServiceUrl"): value = manifest.get(key) diff --git a/scripts/test_check_package.py b/scripts/test_check_package.py index 1cf0032..cbd086a 100644 --- a/scripts/test_check_package.py +++ b/scripts/test_check_package.py @@ -2,6 +2,7 @@ from __future__ import annotations +import json import shutil import tempfile import unittest @@ -58,6 +59,15 @@ def test_credential_assignment_in_readme_is_rejected(self) -> None: with self.assertRaisesRegex(ValueError, "possible credential assignment"): self.check_staged_package() + def test_different_author_name_is_rejected(self) -> None: + manifest_path = self.root / ".claude-plugin/plugin.json" + manifest = json.loads(manifest_path.read_text(encoding="utf-8")) + manifest["author"]["name"] = "Stack Exchange, Inc." + manifest_path.write_text(json.dumps(manifest), encoding="utf-8") + + with self.assertRaisesRegex(ValueError, "manifest author"): + self.check_staged_package() + if __name__ == "__main__": unittest.main()