@bluefly/openstandardagents 0.2.5-RC → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
  3. package/.github/workflows/dependabot-comment.yml +34 -0
  4. package/.github/workflows/pr-comment.yml +33 -0
  5. package/.husky/pre-commit +5 -0
  6. package/.kiro/config.json +21 -0
  7. package/.kiro/settings/mcp.json +61 -0
  8. package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
  9. package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
  10. package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
  11. package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
  12. package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
  13. package/.kiro/specs/website-brand-identity/tasks.md +981 -0
  14. package/CHANGELOG.md +23 -0
  15. package/README.md +12 -3
  16. package/bin/ossa-dev +42 -0
  17. package/bin/ossa-export +32 -0
  18. package/bin/ossa-generate +60 -0
  19. package/bin/ossa-health +40 -0
  20. package/bin/ossa-init +26 -0
  21. package/dist/repositories/schema.repository.d.ts.map +1 -1
  22. package/dist/repositories/schema.repository.js +15 -10
  23. package/dist/repositories/schema.repository.js.map +1 -1
  24. package/dist/services/github-sync/github-client.d.ts +14 -0
  25. package/dist/services/github-sync/github-client.d.ts.map +1 -0
  26. package/dist/services/github-sync/github-client.js +41 -0
  27. package/dist/services/github-sync/github-client.js.map +1 -0
  28. package/dist/services/github-sync/gitlab-client.d.ts +17 -0
  29. package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
  30. package/dist/services/github-sync/gitlab-client.js +42 -0
  31. package/dist/services/github-sync/gitlab-client.js.map +1 -0
  32. package/dist/services/github-sync/schemas.d.ts +46 -0
  33. package/dist/services/github-sync/schemas.d.ts.map +1 -0
  34. package/dist/services/github-sync/schemas.js +36 -0
  35. package/dist/services/github-sync/schemas.js.map +1 -0
  36. package/dist/services/github-sync/sync.service.d.ts +27 -0
  37. package/dist/services/github-sync/sync.service.d.ts.map +1 -0
  38. package/dist/services/github-sync/sync.service.js +99 -0
  39. package/dist/services/github-sync/sync.service.js.map +1 -0
  40. package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
  41. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
  42. package/dist/services/runtime/claude/capability-mapper.js +245 -0
  43. package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
  44. package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
  45. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
  46. package/dist/services/runtime/claude/claude-adapter.js +287 -0
  47. package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
  48. package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
  49. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
  50. package/dist/services/runtime/claude/manifest-parser.js +169 -0
  51. package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
  52. package/dist/services/runtime/claude/types.d.ts +115 -0
  53. package/dist/services/runtime/claude/types.d.ts.map +1 -0
  54. package/dist/services/runtime/claude/types.js +6 -0
  55. package/dist/services/runtime/claude/types.js.map +1 -0
  56. package/dist/services/validation.service.d.ts.map +1 -1
  57. package/dist/services/validation.service.js +12 -1
  58. package/dist/services/validation.service.js.map +1 -1
  59. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  60. package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
  61. package/dist/spec/v0.2.6/README.md +72 -0
  62. package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  63. package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  64. package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  65. package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  66. package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  67. package/dist/spec/v0.2.6-dev/README.md +75 -0
  68. package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  69. package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  70. package/dist/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6-dev/ossa-0.2.5.schema.json} +9 -9
  71. package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  72. package/{spec/v0.2.4/ossa-0.2.4-dev.schema.json → dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json} +9 -9
  73. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  74. package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
  75. package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  76. package/docs/brand-guide/01-brand-overview.md +37 -0
  77. package/docs/brand-guide/02-logo-usage.md +43 -0
  78. package/docs/brand-guide/03-color-palette.md +70 -0
  79. package/docs/brand-guide/04-typography.md +82 -0
  80. package/docs/brand-guide/05-voice-and-tone.md +108 -0
  81. package/docs/brand-guide/06-visual-elements.md +137 -0
  82. package/docs/brand-guide/07-application-examples.md +153 -0
  83. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
  84. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  85. package/docs/brand-guide/README.md +107 -0
  86. package/docs/comparison.md +315 -0
  87. package/docs/operations/automation-roadmap.md +245 -0
  88. package/docs/operations/github-sync-strategy.md +357 -0
  89. package/examples/anthropic/claude-assistant.ossa.json +5 -4
  90. package/examples/autogen/multi-agent.ossa.json +6 -4
  91. package/examples/crewai/research-team.ossa.json +14 -5
  92. package/examples/cursor/code-review-agent.ossa.json +21 -6
  93. package/examples/langchain/chain-agent.ossa.json +21 -5
  94. package/examples/langflow/workflow-agent.ossa.json +2 -3
  95. package/examples/langgraph/state-machine-agent.ossa.json +2 -3
  96. package/examples/llamaindex/rag-agent.ossa.json +2 -3
  97. package/examples/openai/multi-tool-agent.ossa.json +32 -9
  98. package/examples/openai/swarm-agent.ossa.json +18 -5
  99. package/examples/vercel/edge-agent.ossa.json +5 -4
  100. package/openapi/github-sync.yaml +115 -0
  101. package/package.json +25 -4
  102. package/scripts/README.md +103 -0
  103. package/scripts/auto-rebase-mrs.ts +106 -0
  104. package/scripts/batch-dependabot.sh +57 -0
  105. package/scripts/configure-gitlab-branch-protection.ts +95 -0
  106. package/scripts/create-issue-helper.ts +238 -0
  107. package/scripts/create-milestone-issue.ts +73 -0
  108. package/scripts/fix-schema-formats.js +82 -0
  109. package/scripts/generate-agents-catalog.ts +77 -0
  110. package/scripts/generate-api-docs.ts +218 -0
  111. package/scripts/generate-cli-docs.ts +410 -0
  112. package/scripts/generate-config-docs.ts +109 -0
  113. package/scripts/generate-errors-docs.ts +76 -0
  114. package/scripts/generate-examples-docs.ts +99 -0
  115. package/scripts/generate-schema-docs.ts +296 -0
  116. package/scripts/generate-types-docs.ts +48 -0
  117. package/scripts/lowercase-docs.ts +43 -0
  118. package/scripts/manage-milestone-mrs.ts +279 -0
  119. package/scripts/rebase-all-mrs.sh +75 -0
  120. package/scripts/sync-github-pr.sh +48 -0
  121. package/scripts/sync-version.js +40 -0
  122. package/scripts/sync-wiki.sh +50 -0
  123. package/scripts/validate-all.js +127 -0
  124. package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  125. package/spec/v0.2.6/CHANGELOG.md +401 -0
  126. package/spec/v0.2.6/README.md +72 -0
  127. package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  128. package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  129. package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  130. package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  131. package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  132. package/spec/v0.2.6-dev/README.md +75 -0
  133. package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  134. package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  135. package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
  136. package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  137. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
  138. package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  139. package/spec/v0.2.7/core/agentgraph.md +324 -0
  140. package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  141. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
  142. package/website/app/about/page.tsx +53 -44
  143. package/website/app/ecosystem/page.tsx +146 -111
  144. package/website/app/globals.scss +256 -21
  145. package/website/app/page.tsx +394 -182
  146. package/website/app/page.tsx.bak +679 -0
  147. package/website/app/page.tsx.bak2 +649 -0
  148. package/website/app/schema/page.tsx +3 -3
  149. package/website/app/specification/page.tsx +1 -1
  150. package/website/components/layout/Header.tsx +27 -23
  151. package/website/components/ui/Badge.tsx +82 -0
  152. package/website/components/ui/Button.tsx +116 -0
  153. package/website/components/ui/Card.tsx +167 -0
  154. package/website/components/ui/Checkbox.tsx +141 -0
  155. package/website/components/ui/Input.tsx +169 -0
  156. package/website/components/ui/Radio.tsx +141 -0
  157. package/website/components/ui/Select.tsx +182 -0
  158. package/website/components/ui/Tag.tsx +158 -0
  159. package/website/components/ui/Textarea.tsx +195 -0
  160. package/website/components/ui/index.ts +11 -0
  161. package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
  162. package/website/content/docs/agents/catalog.md +28 -0
  163. package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  164. package/website/content/docs/api-reference/index.md +38 -0
  165. package/website/content/docs/api-reference/ossa-core-api.md +634 -0
  166. package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
  167. package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
  168. package/website/content/docs/cli-reference/index.md +111 -0
  169. package/website/content/docs/cli-reference/ossa-agents.md +70 -0
  170. package/website/content/docs/cli-reference/ossa-export.md +56 -0
  171. package/website/content/docs/cli-reference/ossa-generate.md +66 -0
  172. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
  173. package/website/content/docs/cli-reference/ossa-import.md +56 -0
  174. package/website/content/docs/cli-reference/ossa-init.md +57 -0
  175. package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
  176. package/website/content/docs/cli-reference/ossa-run.md +66 -0
  177. package/website/content/docs/cli-reference/ossa-schema.md +57 -0
  178. package/website/content/docs/cli-reference/ossa-setup.md +57 -0
  179. package/website/content/docs/cli-reference/ossa-validate.md +66 -0
  180. package/website/content/docs/configuration/index.md +97 -0
  181. package/website/content/docs/deployment/github-mirroring.md +924 -0
  182. package/website/content/docs/documentation.md +100 -0
  183. package/website/content/docs/ecosystem/framework-support.md +551 -9
  184. package/website/content/docs/errors/index.md +10 -0
  185. package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  186. package/website/content/docs/examples/catalog.md +300 -0
  187. package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
  188. package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
  189. package/website/content/docs/getting-started.md +1 -1
  190. package/website/content/docs/integrations/aiflow.md +2 -2
  191. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  192. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  193. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +7 -7
  194. package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
  195. package/website/content/docs/openapi-extensions/index.md +1 -1
  196. package/website/content/docs/ossa-compliant-badge.md +1 -1
  197. package/website/content/docs/pre-release/index.md +5 -5
  198. package/website/content/docs/releases/v0.2.6.md +99 -0
  199. package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
  200. package/website/content/docs/schema-reference/agent-id.md +52 -0
  201. package/website/content/docs/schema-reference/agent-name.md +50 -0
  202. package/website/content/docs/schema-reference/agent-role.md +54 -0
  203. package/website/content/docs/schema-reference/agent-version.md +50 -0
  204. package/website/content/docs/schema-reference/index.md +26 -157
  205. package/website/content/docs/types-reference/index.md +105 -0
  206. package/website/content/docs/versioning.md +3 -3
  207. package/website/dev.sh +53 -0
  208. package/website/docker-compose.dev.yml +36 -0
  209. package/website/lib/version.ts +1 -1
  210. package/website/lib/versions.json +45 -20
  211. package/website/package.json +1 -1
  212. package/website/styles/_spacing.scss +453 -0
  213. package/website/styles/_tokens.scss +245 -0
  214. package/website/styles/_typography.scss +361 -0
  215. package/website/styles/_variables.scss +270 -19
  216. package/website/tailwind.config.ts +113 -79
  217. package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
  218. package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
  219. package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
  220. package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
  221. package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
  222. package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
  223. package/docs/issue-19-completion-summary.md +0 -648
  224. package/docs/issue-19-validation.md +0 -351
  225. package/website/content/docs/Examples.md +0 -71
  226. package/website/content/docs/OpenAPI-Extensions.md +0 -934
  227. package/website/content/docs/core-concepts/Project-Structure.md +0 -348
  228. package/website/content/docs/examples/Migration-Guides.md +0 -214
  229. package/website/content/docs/for-audiences/Architects.md +0 -224
  230. package/website/content/docs/for-audiences/Developers.md +0 -220
  231. package/website/content/docs/for-audiences/Enterprises.md +0 -256
  232. package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
  233. package/website/content/docs/getting-started/First-Agent.md +0 -196
  234. package/website/content/docs/getting-started/Hello-World.md +0 -184
  235. package/website/content/docs/migration-guides/00-INDEX.md +0 -76
  236. package/website/content/docs/migration-guides/README.md +0 -133
  237. /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
  238. /package/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
@@ -677,3 +677,384 @@ By implementing the recommendations in this document, the website will achieve:
677
677
  - **Scalability** for future growth
678
678
 
679
679
  The proposed 12-week implementation roadmap provides a clear path forward, with measurable success metrics at each phase.
680
+ # Design Document: Brand Identity MVP for v0.2.6 Release
681
+
682
+ ## Overview
683
+
684
+ This design document outlines the technical approach for completing the Brand Identity MVP (Issue #44) for the OSSA v0.2.6 release. The implementation focuses on six critical areas: Button component completion, navigation active states, CodeBlock interactivity, homepage enterprise messaging, mobile navigation UX, and accessibility compliance.
685
+
686
+ The design leverages the existing Next.js 14 (App Router) architecture, React 18, TypeScript, and Tailwind CSS infrastructure already in place.
687
+
688
+ ## Architecture
689
+
690
+ ### Technology Stack
691
+
692
+ - **Framework**: Next.js 14 with App Router
693
+ - **UI Library**: React 18 with TypeScript
694
+ - **Styling**: Tailwind CSS + SCSS modules
695
+ - **Icons**: Lucide React
696
+ - **State Management**: React hooks (useState, useEffect)
697
+ - **Clipboard API**: Native browser Clipboard API
698
+
699
+ ### Component Architecture
700
+
701
+ ```
702
+ website/
703
+ ├── components/
704
+ │ ├── ui/
705
+ │ │ ├── Button.tsx (existing - enhance)
706
+ │ │ ├── Card.tsx (existing)
707
+ │ │ ├── Badge.tsx (existing)
708
+ │ │ └── CodeBlock.tsx (new)
709
+ │ ├── layout/
710
+ │ │ ├── Header.tsx (existing - enhance)
711
+ │ │ ├── MobileNav.tsx (existing - enhance)
712
+ │ │ └── Sidebar.tsx (existing - enhance)
713
+ │ └── home/
714
+ │ ├── HeroSection.tsx (existing - enhance)
715
+ │ ├── ComparisonMatrix.tsx (new)
716
+ │ └── WhyItMatters.tsx (existing - enhance)
717
+ ├── app/
718
+ │ ├── page.tsx (homepage - enhance)
719
+ │ └── docs/
720
+ │ └── [...slug]/page.tsx (docs pages)
721
+ └── styles/
722
+ └── _variables.scss (existing design tokens)
723
+ ```
724
+
725
+ ## Components and Interfaces
726
+
727
+ ### 1. Button Component Enhancement
728
+
729
+ **File**: `website/components/ui/Button.tsx`
730
+
731
+ **Current State**: Basic Button component exists with variants
732
+
733
+ **Enhancements Needed**:
734
+
735
+ - Ensure all 6 variants are properly styled (primary, secondary, outline, ghost, danger, success)
736
+ - Add loading state with spinner
737
+ - Improve focus ring visibility for WCAG compliance
738
+ - Add icon positioning support (left/right)
739
+
740
+ **Interface**:
741
+
742
+ ```typescript
743
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
744
+ variant?:
745
+ | 'primary'
746
+ | 'secondary'
747
+ | 'outline'
748
+ | 'ghost'
749
+ | 'danger'
750
+ | 'success';
751
+ size?: 'sm' | 'md' | 'lg';
752
+ loading?: boolean;
753
+ icon?: React.ReactNode;
754
+ iconPosition?: 'left' | 'right';
755
+ fullWidth?: boolean;
756
+ }
757
+ ```
758
+
759
+ ### 2. CodeBlock Component (New)
760
+
761
+ **File**: `website/components/ui/CodeBlock.tsx`
762
+
763
+ **Purpose**: Display code examples with syntax highlighting and copy functionality
764
+
765
+ **Interface**:
766
+
767
+ ```typescript
768
+ interface CodeBlockProps {
769
+ code: string;
770
+ language?: string;
771
+ filename?: string;
772
+ showLineNumbers?: boolean;
773
+ highlightLines?: number[];
774
+ }
775
+ ```
776
+
777
+ **Features**:
778
+
779
+ - Syntax highlighting using existing highlighting library
780
+ - Copy button in top-right corner
781
+ - Tooltip on hover ("Copy code")
782
+ - Success feedback (checkmark icon for 2 seconds)
783
+ - Proper scrolling for long code blocks
784
+
785
+ ### 3. Header Component Enhancement
786
+
787
+ **File**: `website/components/layout/Header.tsx`
788
+
789
+ **Current State**: Basic header with navigation links
790
+
791
+ **Enhancements Needed**:
792
+
793
+ - Add active state detection using Next.js `usePathname()` hook
794
+ - Apply distinct styling to active navigation items
795
+ - Maintain hover states distinct from active states
796
+ - Ensure keyboard focus visibility
797
+
798
+ **Active State Logic**:
799
+
800
+ ```typescript
801
+ const pathname = usePathname();
802
+ const isActive = (path: string) => {
803
+ if (path === '/') return pathname === '/';
804
+ return pathname.startsWith(path);
805
+ };
806
+ ```
807
+
808
+ ### 4. Mobile Navigation Enhancement
809
+
810
+ **File**: `website/components/layout/MobileNav.tsx`
811
+
812
+ **Current State**: Basic mobile menu
813
+
814
+ **Enhancements Needed**:
815
+
816
+ - Smooth open/close animations using Tailwind transitions
817
+ - Body scroll lock when menu is open
818
+ - Close on navigation
819
+ - Overlay click to dismiss
820
+ - Active state indicators in mobile menu
821
+
822
+ **State Management**:
823
+
824
+ ```typescript
825
+ const [isOpen, setIsOpen] = useState(false);
826
+
827
+ useEffect(() => {
828
+ if (isOpen) {
829
+ document.body.style.overflow = 'hidden';
830
+ } else {
831
+ document.body.style.overflow = 'unset';
832
+ }
833
+ return () => {
834
+ document.body.style.overflow = 'unset';
835
+ };
836
+ }, [isOpen]);
837
+ ```
838
+
839
+ ### 5. Sidebar Navigation Enhancement
840
+
841
+ **File**: `website/components/layout/Sidebar.tsx`
842
+
843
+ **Current State**: Documentation sidebar exists
844
+
845
+ **Enhancements Needed**:
846
+
847
+ - Add active state detection for current doc page
848
+ - Highlight active section
849
+ - Smooth scroll to active item on page load
850
+
851
+ ### 6. Homepage Components
852
+
853
+ #### HeroSection Enhancement
854
+
855
+ **File**: `website/components/home/HeroSection.tsx`
856
+
857
+ **Enhancements**:
858
+
859
+ - Update messaging to emphasize: vendor-neutrality, compliance-ready, enterprise-grade
860
+ - Highlight key benefits: portability, compliance, governance, multi-runtime
861
+ - Ensure mobile responsiveness
862
+
863
+ #### ComparisonMatrix (New)
864
+
865
+ **File**: `website/components/home/ComparisonMatrix.tsx`
866
+
867
+ **Purpose**: Display comparison table of OSSA vs alternatives
868
+
869
+ **Interface**:
870
+
871
+ ```typescript
872
+ interface ComparisonData {
873
+ feature: string;
874
+ ossa: string | boolean;
875
+ langchain: string | boolean;
876
+ autogen: string | boolean;
877
+ mcp: string | boolean;
878
+ semanticKernel: string | boolean;
879
+ }
880
+ ```
881
+
882
+ **Features**:
883
+
884
+ - Desktop: Full table with all columns
885
+ - Mobile: Accordion or card-based layout
886
+ - Visual indicators (checkmarks, X marks)
887
+ - Responsive design
888
+
889
+ #### WhyItMatters Enhancement
890
+
891
+ **File**: `website/components/home/WhyItMatters.tsx`
892
+
893
+ **Enhancements**:
894
+
895
+ - Use Card components for each benefit
896
+ - Improve visual hierarchy
897
+ - Add icons for each benefit
898
+ - Ensure proper spacing and contrast
899
+
900
+ ## Data Models
901
+
902
+ ### Navigation Item
903
+
904
+ ```typescript
905
+ interface NavItem {
906
+ label: string;
907
+ href: string;
908
+ icon?: React.ReactNode;
909
+ children?: NavItem[];
910
+ }
911
+ ```
912
+
913
+ ### Comparison Feature
914
+
915
+ ```typescript
916
+ interface ComparisonFeature {
917
+ feature: string;
918
+ description?: string;
919
+ ossa: ComparisonValue;
920
+ competitors: {
921
+ [key: string]: ComparisonValue;
922
+ };
923
+ }
924
+
925
+ type ComparisonValue =
926
+ | boolean
927
+ | string
928
+ | {
929
+ value: string;
930
+ note?: string;
931
+ };
932
+ ```
933
+
934
+ ## Correctness Properties
935
+
936
+ _A property is a characteristic or behavior that should hold true across all valid executions of a system-essentially, a formal statement about what the system should do. Properties serve as the bridge between human-readable specifications and machine-verifiable correctness guarantees._
937
+
938
+ ### Property 1: Button accessibility
939
+
940
+ _For any_ Button component rendered, it should have a visible focus ring that meets WCAG 2.1 AA contrast requirements when focused via keyboard navigation
941
+ **Validates: Requirements 1.3**
942
+
943
+ ### Property 2: Copy button feedback
944
+
945
+ _For any_ CodeBlock component, clicking the copy button should copy the code to clipboard and display success feedback (checkmark) for exactly 2 seconds before reverting
946
+ **Validates: Requirements 3.2, 3.4**
947
+
948
+ ### Property 3: Navigation active state uniqueness
949
+
950
+ _For any_ page in the website, exactly one navigation item in the header should have the active state styling applied
951
+ **Validates: Requirements 2.1**
952
+
953
+ ### Property 4: Mobile menu body scroll lock
954
+
955
+ _For any_ state where the mobile menu is open, the body element should have `overflow: hidden` applied, and when closed, it should be removed
956
+ **Validates: Requirements 5.2**
957
+
958
+ ### Property 5: Active state persistence
959
+
960
+ _For any_ navigation component (header, sidebar, mobile menu), the active state should persist across re-renders and match the current URL path
961
+ **Validates: Requirements 2.1, 2.2**
962
+
963
+ ### Property 6: Contrast ratio compliance
964
+
965
+ _For any_ text displayed on colored backgrounds, the contrast ratio should meet or exceed WCAG AA standards (4.5:1 for normal text, 3:1 for large text)
966
+ **Validates: Requirements 6.3**
967
+
968
+ ### Property 7: ARIA label presence
969
+
970
+ _For any_ interactive component (Button, CodeBlock copy button, navigation items), proper ARIA labels should be present for screen reader accessibility
971
+ **Validates: Requirements 6.2**
972
+
973
+ ## Error Handling
974
+
975
+ ### Clipboard API Errors
976
+
977
+ - **Scenario**: Clipboard API not supported or permission denied
978
+ - **Handling**: Display fallback message "Please copy manually" and log error
979
+ - **User Feedback**: Toast notification with error message
980
+
981
+ ### Navigation State Errors
982
+
983
+ - **Scenario**: Invalid pathname or route not found
984
+ - **Handling**: Default to no active state, log warning
985
+ - **User Feedback**: No visual error (graceful degradation)
986
+
987
+ ### Component Render Errors
988
+
989
+ - **Scenario**: Component fails to render due to missing props or data
990
+ - **Handling**: Error boundary catches and displays fallback UI
991
+ - **User Feedback**: Generic error message with retry option
992
+
993
+ ## Testing Strategy
994
+
995
+ ### Unit Tests
996
+
997
+ - Button component variants and states
998
+ - CodeBlock copy functionality (mocked Clipboard API)
999
+ - Active state detection logic
1000
+ - Mobile menu state management
1001
+ - Contrast ratio calculations
1002
+
1003
+ ### Property-Based Tests
1004
+
1005
+ - **Library**: fast-check (TypeScript property-based testing)
1006
+ - **Configuration**: Minimum 100 iterations per property
1007
+ - **Coverage**: All 7 correctness properties listed above
1008
+
1009
+ ### Integration Tests
1010
+
1011
+ - Navigation flow (click navigation → page loads → active state updates)
1012
+ - Mobile menu interaction (open → navigate → close)
1013
+ - CodeBlock copy flow (click → copy → feedback → reset)
1014
+
1015
+ ### Accessibility Tests
1016
+
1017
+ - Keyboard navigation through all interactive elements
1018
+ - Screen reader compatibility (ARIA labels)
1019
+ - Focus indicator visibility
1020
+ - Contrast ratio verification using automated tools
1021
+
1022
+ ### Manual Testing Checklist
1023
+
1024
+ - Test on mobile devices (iOS Safari, Android Chrome)
1025
+ - Test with keyboard only (no mouse)
1026
+ - Test with screen reader (VoiceOver, NVDA)
1027
+ - Test in different viewport sizes
1028
+ - Test with reduced motion preferences
1029
+
1030
+ ## Implementation Notes
1031
+
1032
+ ### Design Tokens Usage
1033
+
1034
+ All components must use existing SCSS variables from `website/styles/_variables.scss`:
1035
+
1036
+ - Colors: `$primary-*`, `$secondary-*`, `$accent-*`
1037
+ - Typography: `$font-display`, `$font-heading`, `$font-body`, `$font-mono`
1038
+ - Spacing: Tailwind spacing scale (4, 8, 12, 16, 24, 32, 48, 64, 96)
1039
+ - Transitions: `transition-all duration-300 ease-in-out`
1040
+
1041
+ ### Accessibility Requirements
1042
+
1043
+ - All interactive elements must have minimum 44x44px touch target
1044
+ - Focus indicators must be visible with 3:1 contrast against background
1045
+ - All images must have descriptive alt text
1046
+ - All buttons must have accessible names (text or aria-label)
1047
+ - Color must not be the only means of conveying information
1048
+
1049
+ ### Performance Considerations
1050
+
1051
+ - Code syntax highlighting should be lazy-loaded
1052
+ - Mobile menu animations should use CSS transforms (GPU-accelerated)
1053
+ - Comparison matrix should use CSS Grid for optimal layout performance
1054
+ - Images should use Next.js Image component with proper sizing
1055
+
1056
+ ### Browser Support
1057
+
1058
+ - Modern browsers (Chrome, Firefox, Safari, Edge) - last 2 versions
1059
+ - Mobile browsers (iOS Safari 14+, Chrome Android)
1060
+ - Graceful degradation for older browsers
@@ -197,3 +197,91 @@ This document outlines requirements for a comprehensive design system audit and
197
197
  3. WHEN viewing the OSSA logo THEN the System SHALL display it with the gradient text treatment
198
198
  4. WHEN on mobile THEN the System SHALL scale logos appropriately for smaller screens
199
199
  5. WHEN loading logos THEN the System SHALL use optimized SVG or WebP formats
200
+ # Requirements Document: Brand Identity MVP for v0.2.6 Release
201
+
202
+ ## Introduction
203
+
204
+ This document defines the minimum viable product (MVP) scope for completing Issue #44 (Brand Identity & Brand Guide Development) for the v0.2.6 release. This focuses on the highest-priority items needed to establish a professional, consistent brand presence on the OSSA website.
205
+
206
+ ## Glossary
207
+
208
+ - **Website**: The OSSA marketing and documentation website at openstandardagents.org
209
+ - **Component**: A reusable UI element (Button, Card, Badge, etc.)
210
+ - **Design Token**: A centralized variable for colors, typography, spacing, etc.
211
+ - **WCAG 2.1 AA**: Web Content Accessibility Guidelines level AA compliance
212
+ - **Active State**: Visual indicator showing the current page in navigation
213
+ - **Interactive Feature**: User-triggered functionality like copy buttons or tooltips
214
+
215
+ ## Requirements
216
+
217
+ ### Requirement 1: Complete Button Component System
218
+
219
+ **User Story:** As a website visitor, I want consistent, accessible buttons across all pages, so that I can easily identify and interact with calls-to-action.
220
+
221
+ #### Acceptance Criteria
222
+
223
+ 1. WHEN viewing any button THEN the Website SHALL display it using the Button component with proper variant (primary, secondary, outline, ghost, danger, success)
224
+ 2. WHEN hovering over a button THEN the Website SHALL provide smooth visual feedback with appropriate color transitions
225
+ 3. WHEN using keyboard navigation THEN the Website SHALL display visible focus rings on all buttons meeting WCAG 2.1 AA standards
226
+ 4. WHEN a button is in loading state THEN the Website SHALL display a spinner and disable interaction
227
+ 5. WHEN buttons contain icons THEN the Website SHALL position them consistently (left or right) with proper spacing
228
+
229
+ ### Requirement 2: Navigation Active States
230
+
231
+ **User Story:** As a user navigating the website, I want to see which page I'm currently on, so that I can maintain context and orientation.
232
+
233
+ #### Acceptance Criteria
234
+
235
+ 1. WHEN viewing the header navigation THEN the Website SHALL highlight the active page link with distinct visual styling
236
+ 2. WHEN on a documentation page THEN the Website SHALL highlight the active section in the sidebar navigation
237
+ 3. WHEN hovering over navigation links THEN the Website SHALL provide visual feedback distinct from the active state
238
+ 4. WHEN using keyboard navigation THEN the Website SHALL maintain visible focus states on navigation items
239
+ 5. WHEN on mobile devices THEN the Website SHALL show active states in the mobile menu
240
+
241
+ ### Requirement 3: Enhanced CodeBlock Interactivity
242
+
243
+ **User Story:** As a developer reading documentation, I want to easily copy code examples, so that I can quickly implement OSSA in my projects.
244
+
245
+ #### Acceptance Criteria
246
+
247
+ 1. WHEN viewing a code block THEN the Website SHALL display a copy button in the top-right corner
248
+ 2. WHEN clicking the copy button THEN the Website SHALL copy the code to clipboard and show success feedback
249
+ 3. WHEN hovering over the copy button THEN the Website SHALL display a tooltip indicating "Copy code"
250
+ 4. WHEN code is successfully copied THEN the Website SHALL change the button icon to a checkmark for 2 seconds
251
+ 5. WHEN viewing long code blocks THEN the Website SHALL provide proper scrolling with visible scrollbars
252
+
253
+ ### Requirement 4: Homepage Enterprise Messaging
254
+
255
+ **User Story:** As an enterprise decision-maker, I want to quickly understand OSSA's value proposition, so that I can evaluate it for my organization.
256
+
257
+ #### Acceptance Criteria
258
+
259
+ 1. WHEN viewing the homepage hero THEN the Website SHALL display enterprise-focused messaging emphasizing vendor-neutrality, compliance, and governance
260
+ 2. WHEN scrolling to the comparison section THEN the Website SHALL display a clear matrix comparing OSSA to alternatives (LangChain, AutoGen, MCP, Semantic Kernel)
261
+ 3. WHEN viewing the "Why Does This Matter?" section THEN the Website SHALL use Card components with clear visual hierarchy
262
+ 4. WHEN on mobile devices THEN the Website SHALL adapt the comparison matrix to a mobile-friendly format
263
+ 5. WHEN viewing key benefits THEN the Website SHALL highlight portability, compliance, governance, and multi-runtime support
264
+
265
+ ### Requirement 5: Mobile Navigation UX
266
+
267
+ **User Story:** As a mobile user, I want smooth, intuitive navigation, so that I can easily explore the website on my phone.
268
+
269
+ #### Acceptance Criteria
270
+
271
+ 1. WHEN opening the mobile menu THEN the Website SHALL animate the menu with smooth transitions
272
+ 2. WHEN the mobile menu is open THEN the Website SHALL prevent body scrolling
273
+ 3. WHEN clicking a mobile menu item THEN the Website SHALL close the menu and navigate to the page
274
+ 4. WHEN the mobile menu is open THEN the Website SHALL display a close button or overlay to dismiss it
275
+ 5. WHEN rotating the device THEN the Website SHALL adapt the navigation layout appropriately
276
+
277
+ ### Requirement 6: Accessibility Compliance
278
+
279
+ **User Story:** As a user with disabilities, I want an accessible website, so that I can navigate and understand content regardless of my abilities.
280
+
281
+ #### Acceptance Criteria
282
+
283
+ 1. WHEN using keyboard navigation THEN the Website SHALL provide visible focus indicators on all interactive elements
284
+ 2. WHEN using a screen reader THEN the Website SHALL provide proper ARIA labels on all components
285
+ 3. WHEN viewing text on colored backgrounds THEN the Website SHALL maintain WCAG AA contrast ratios (4.5:1 minimum)
286
+ 4. WHEN interactive elements are disabled THEN the Website SHALL communicate the disabled state to assistive technologies
287
+ 5. WHEN images are displayed THEN the Website SHALL provide descriptive alt text for all meaningful images