@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
@@ -1,1005 +0,0 @@
1
- # Design Document: Kiro IDE Supercharger
2
-
3
- ## Overview
4
-
5
- This design transforms the development environment into an AI-powered productivity platform by leveraging Kiro's full capabilities alongside existing Cursor and VS Code configurations. The system will provide intelligent automation, context-aware assistance, and seamless tool integration specifically optimized for OSSA (Open Standard for Scalable AI Agents) development.
6
-
7
- The design focuses on five core pillars:
8
- 1. **Intelligent Context Management** - Steering rules and smart context loading
9
- 2. **Workflow Automation** - Agent hooks for event-driven development
10
- 3. **External Tool Integration** - MCP servers for enhanced capabilities
11
- 4. **Spec-Driven Development** - Systematic feature building with PBT
12
- 5. **Tool Orchestration** - Seamless coordination between Kiro, Cursor, and VS Code
13
-
14
- ## Architecture
15
-
16
- ### High-Level Architecture
17
-
18
- ```
19
- ┌─────────────────────────────────────────────────────────────┐
20
- │ Developer Interface │
21
- │ (Kiro Chat, Cursor Editor, VS Code, Terminal) │
22
- └────────────────────┬────────────────────────────────────────┘
23
-
24
- ┌────────────────────┴────────────────────────────────────────┐
25
- │ Kiro Core Engine │
26
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
27
- │ │ Steering │ │ Agent Hooks │ │ Spec Engine │ │
28
- │ │ Manager │ │ Executor │ │ │ │
29
- │ └──────────────┘ └──────────────┘ └──────────────┘ │
30
- └────────────────────┬────────────────────────────────────────┘
31
-
32
- ┌────────────────────┴────────────────────────────────────────┐
33
- │ MCP Integration Layer │
34
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
35
- │ │Filesystem│ │ Database │ │ HTTP │ │ Custom │ │
36
- │ │ Server │ │ Server │ │ Server │ │ Servers │ │
37
- │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
38
- └────────────────────┬────────────────────────────────────────┘
39
-
40
- ┌────────────────────┴────────────────────────────────────────┐
41
- │ External Services & Tools │
42
- │ GitLab API │ K8s Cluster │ npm Registry │ Test Runners │
43
- └─────────────────────────────────────────────────────────────┘
44
- ```
45
-
46
- ### Component Interaction Flow
47
-
48
- ```
49
- Developer Action → Kiro Receives Event → Steering Rules Applied
50
-
51
- Context Assembled
52
-
53
- Agent Hook Triggered (if configured)
54
-
55
- MCP Servers Queried (if needed)
56
-
57
- AI Processing with Full Context
58
-
59
- Actions Executed → Results Returned
60
- ```
61
-
62
- ## Components and Interfaces
63
-
64
- ### 1. Steering System
65
-
66
- **Purpose**: Provide project-specific context and rules to Kiro automatically
67
-
68
- **Location**: `.kiro/steering/`
69
-
70
- **Key Files**:
71
- - `ossa-standards.md` - OSSA development standards and best practices
72
- - `schema-validation.md` - Schema-specific rules (conditional on schema files)
73
- - `testing-requirements.md` - TDD and PBT requirements
74
- - `openapi-workflow.md` - OpenAPI spec development workflow
75
- - `git-workflow.md` - Branch protection and commit standards
76
-
77
- **Interface**:
78
- ```typescript
79
- interface SteeringRule {
80
- name: string;
81
- inclusion: 'always' | 'conditional' | 'manual';
82
- fileMatchPattern?: string; // For conditional inclusion
83
- content: string; // Markdown content with instructions
84
- priority: number; // Higher priority rules override lower
85
- }
86
- ```
87
-
88
- **Behavior**:
89
- - Always-included rules load on every Kiro interaction
90
- - Conditional rules load when matching files are in context
91
- - Manual rules load when referenced via `#` in chat
92
- - Rules can reference external files via `#[[file:path]]`
93
-
94
- ### 2. Agent Hooks System
95
-
96
- **Purpose**: Automate repetitive tasks through event-driven execution
97
-
98
- **Location**: `.kiro/hooks/`
99
-
100
- **Hook Types**:
101
- ```typescript
102
- type HookTrigger =
103
- | 'onFileSave'
104
- | 'onMessageSend'
105
- | 'onAgentComplete'
106
- | 'onSessionStart'
107
- | 'onManualTrigger';
108
-
109
- interface AgentHook {
110
- name: string;
111
- trigger: HookTrigger;
112
- filePattern?: string; // e.g., "**/*.schema.json"
113
- action: {
114
- type: 'message' | 'command';
115
- content: string;
116
- };
117
- enabled: boolean;
118
- }
119
- ```
120
-
121
- **Key Hooks for OSSA Development**:
122
-
123
- 1. **Schema Change Hook**
124
- - Trigger: `onFileSave` matching `spec/**/*.schema.json`
125
- - Action: Run `npm run gen:types && npm run gen:zod`
126
- - Message: "Schema updated, regenerating types and validators"
127
-
128
- 2. **Test Execution Hook**
129
- - Trigger: `onFileSave` matching `src/**/*.ts`
130
- - Action: Run related tests
131
- - Message: "Running tests for modified files"
132
-
133
- 3. **OpenAPI Validation Hook**
134
- - Trigger: `onFileSave` matching `openapi/**/*.yaml`
135
- - Action: Run `npm run validate:schema`
136
- - Message: "Validating OpenAPI specification"
137
-
138
- 4. **Pre-Commit Validation Hook**
139
- - Trigger: `onManualTrigger` (button in UI)
140
- - Action: Run full test suite and linting
141
- - Message: "Running pre-commit validation"
142
-
143
- ### 3. MCP Integration Layer
144
-
145
- **Purpose**: Connect Kiro to external tools and services
146
-
147
- **Configuration Location**: `.kiro/settings/mcp.json`
148
-
149
- **Core MCP Servers**:
150
-
151
- ```json
152
- {
153
- "mcpServers": {
154
- "filesystem": {
155
- "command": "uvx",
156
- "args": ["mcp-server-filesystem"],
157
- "env": {
158
- "ALLOWED_DIRECTORIES": "/Users/flux423/Sites/LLM/openstandardagents"
159
- }
160
- },
161
- "gitlab": {
162
- "command": "uvx",
163
- "args": ["mcp-server-gitlab"],
164
- "env": {
165
- "GITLAB_TOKEN": "${GITLAB_TOKEN}",
166
- "GITLAB_URL": "https://gitlab.com"
167
- }
168
- },
169
- "kubernetes": {
170
- "command": "node",
171
- "args": ["./mcp-servers/k8s-server.js"],
172
- "env": {
173
- "KUBECONFIG": "${HOME}/.kube/config"
174
- }
175
- }
176
- }
177
- }
178
- ```
179
-
180
- **MCP Server Capabilities**:
181
-
182
- 1. **Filesystem Server**
183
- - Read/write files with permission control
184
- - Search across codebase
185
- - Watch for file changes
186
-
187
- 2. **GitLab Server**
188
- - Query issues and merge requests
189
- - Trigger CI/CD pipelines
190
- - Access repository metadata
191
-
192
- 3. **Kubernetes Server** (Custom)
193
- - Query cluster state
194
- - Validate OSSA agent deployments
195
- - Check pod health and logs
196
-
197
- 4. **Database Server** (Optional)
198
- - Query test databases
199
- - Validate migrations
200
- - Check data integrity
201
-
202
- ### 4. Spec-Driven Development Engine
203
-
204
- **Purpose**: Guide systematic feature development with requirements → design → implementation
205
-
206
- **Workflow**:
207
-
208
- ```
209
- 1. Requirements Phase
210
- ├─ User provides rough idea
211
- ├─ Kiro generates EARS-compliant requirements
212
- ├─ User reviews and approves
213
- └─ requirements.md created
214
-
215
- 2. Design Phase
216
- ├─ Kiro conducts research
217
- ├─ Generates architecture and components
218
- ├─ Creates correctness properties for PBT
219
- ├─ User reviews and approves
220
- └─ design.md created
221
-
222
- 3. Task Planning Phase
223
- ├─ Kiro breaks design into tasks
224
- ├─ Creates property-based test tasks
225
- ├─ Establishes checkpoints
226
- ├─ User reviews and approves
227
- └─ tasks.md created
228
-
229
- 4. Implementation Phase
230
- ├─ Execute tasks one at a time
231
- ├─ Write code + tests together
232
- ├─ Run property-based tests (100+ iterations)
233
- ├─ Validate at checkpoints
234
- └─ Feature complete
235
- ```
236
-
237
- **Property-Based Testing Integration**:
238
- - Library: `fast-check` (TypeScript)
239
- - Minimum iterations: 100 per property
240
- - Each property tagged with design doc reference
241
- - Properties test universal rules, not specific examples
242
-
243
- ### 5. Context Management System
244
-
245
- **Purpose**: Intelligently manage what information Kiro has access to
246
-
247
- **Strategy**:
248
-
249
- ```typescript
250
- interface ContextStrategy {
251
- // Automatic inclusions
252
- alwaysInclude: string[]; // e.g., ["package.json", "tsconfig.json"]
253
-
254
- // Smart dependency resolution
255
- followImports: boolean; // Include imported files
256
- maxDepth: number; // How deep to follow imports
257
-
258
- // File type priorities
259
- priorities: {
260
- [fileType: string]: number; // Higher = more important
261
- };
262
-
263
- // Token budget management
264
- maxTokens: number;
265
- pruningStrategy: 'oldest' | 'least-relevant' | 'smart';
266
- }
267
- ```
268
-
269
- **Context Assembly Process**:
270
- 1. Load always-included files (package.json, configs)
271
- 2. Load steering rules (always + conditional)
272
- 3. Load files explicitly referenced in chat
273
- 4. Follow imports from loaded files (up to maxDepth)
274
- 5. Add related test files
275
- 6. Prune if over token budget using smart strategy
276
-
277
- ## Data Models
278
-
279
- ### Steering Rule Model
280
-
281
- ```typescript
282
- interface SteeringRule {
283
- id: string;
284
- name: string;
285
- filePath: string;
286
- inclusion: 'always' | 'conditional' | 'manual';
287
- fileMatchPattern?: RegExp;
288
- priority: number;
289
- content: string;
290
- metadata: {
291
- createdAt: Date;
292
- updatedAt: Date;
293
- author: string;
294
- tags: string[];
295
- };
296
- }
297
- ```
298
-
299
- ### Agent Hook Model
300
-
301
- ```typescript
302
- interface AgentHook {
303
- id: string;
304
- name: string;
305
- description: string;
306
- trigger: {
307
- type: HookTrigger;
308
- filePattern?: string;
309
- conditions?: Record<string, any>;
310
- };
311
- action: {
312
- type: 'message' | 'command';
313
- content: string;
314
- timeout?: number;
315
- };
316
- enabled: boolean;
317
- metadata: {
318
- createdAt: Date;
319
- lastTriggered?: Date;
320
- triggerCount: number;
321
- };
322
- }
323
- ```
324
-
325
- ### MCP Server Configuration Model
326
-
327
- ```typescript
328
- interface MCPServerConfig {
329
- name: string;
330
- command: string;
331
- args: string[];
332
- env: Record<string, string>;
333
- disabled: boolean;
334
- autoApprove: string[]; // Tool names to auto-approve
335
- timeout?: number;
336
- retryPolicy?: {
337
- maxRetries: number;
338
- backoff: 'linear' | 'exponential';
339
- };
340
- }
341
- ```
342
-
343
- ### Spec Model
344
-
345
- ```typescript
346
- interface Spec {
347
- featureName: string;
348
- directory: string; // .kiro/specs/{featureName}
349
- requirements: {
350
- filePath: string;
351
- userStories: UserStory[];
352
- status: 'draft' | 'approved';
353
- };
354
- design: {
355
- filePath: string;
356
- architecture: string;
357
- correctnessProperties: Property[];
358
- status: 'draft' | 'approved';
359
- };
360
- tasks: {
361
- filePath: string;
362
- taskList: Task[];
363
- status: 'not_started' | 'in_progress' | 'completed';
364
- };
365
- }
366
-
367
- interface Property {
368
- id: string;
369
- number: number;
370
- description: string;
371
- validatesRequirements: string[]; // e.g., ["1.2", "1.3"]
372
- testable: boolean;
373
- propertyType: 'invariant' | 'round-trip' | 'idempotence' | 'metamorphic' | 'model-based';
374
- }
375
- ```
376
-
377
- ## Correctness Properties
378
-
379
- *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.*
380
-
381
-
382
- ### Steering System Properties
383
-
384
- Property 1: Steering files automatically loaded
385
- *For any* Kiro interaction, all steering files marked as "always" should be loaded and available in the context
386
- **Validates: Requirements 2.1**
387
-
388
- Property 2: Conditional steering activation
389
- *For any* file in context matching a steering rule's file pattern, that steering rule should be loaded automatically
390
- **Validates: Requirements 2.2, 2.5**
391
-
392
- Property 3: OpenAPI validation on modification
393
- *For any* OpenAPI spec file modification, validation should execute and types should be generated
394
- **Validates: Requirements 2.4**
395
-
396
- ### Agent Hooks Properties
397
-
398
- Property 4: Hook triggering on file save
399
- *For any* file save event, if a hook is configured for that file pattern, the hook should execute automatically
400
- **Validates: Requirements 3.1**
401
-
402
- Property 5: Schema modification triggers regeneration
403
- *For any* schema file save, TypeScript types and Zod validators should be regenerated
404
- **Validates: Requirements 3.2**
405
-
406
- Property 6: OpenAPI update triggers validation
407
- *For any* OpenAPI spec file save, validation and documentation update should execute
408
- **Validates: Requirements 3.3**
409
-
410
- Property 7: Pre-commit validation execution
411
- *For any* pre-commit hook trigger, code quality validation, linting, and tests should execute
412
- **Validates: Requirements 3.5**
413
-
414
- ### MCP Integration Properties
415
-
416
- Property 8: Filesystem operations use MCP
417
- *For any* file system operation request, the MCP filesystem server should be invoked
418
- **Validates: Requirements 4.1**
419
-
420
- Property 9: Database operations use MCP
421
- *For any* database query request, the MCP database server should be invoked
422
- **Validates: Requirements 4.2**
423
-
424
- Property 10: HTTP operations use MCP
425
- *For any* API interaction request, the MCP HTTP server should be invoked
426
- **Validates: Requirements 4.3**
427
-
428
- Property 11: Command execution uses MCP
429
- *For any* command execution request, the MCP command server should be invoked with appropriate permissions
430
- **Validates: Requirements 4.4**
431
-
432
- ### Spec-Driven Development Properties
433
-
434
- Property 12: EARS pattern enforcement
435
- *For any* requirements document, all acceptance criteria should follow EARS patterns (WHEN/WHILE/IF/WHERE/THE/SHALL)
436
- **Validates: Requirements 5.1**
437
-
438
- Property 13: Correctness properties generation
439
- *For any* design document, correctness properties should be generated for testable acceptance criteria
440
- **Validates: Requirements 5.2**
441
-
442
- Property 14: Task list structure
443
- *For any* task list, it should contain dependencies, checkpoints, and property-based test tasks
444
- **Validates: Requirements 5.3**
445
-
446
- Property 15: Single task execution
447
- *For any* task execution session, only one task should be marked as "in_progress" at a time
448
- **Validates: Requirements 5.4**
449
-
450
- Property 16: Dual test generation
451
- *For any* feature implementation, both unit tests and property-based tests should be created
452
- **Validates: Requirements 5.5, 7.1**
453
-
454
- ### Context Management Properties
455
-
456
- Property 17: Import following
457
- *For any* file in context, its imports should be included in context up to the configured depth limit
458
- **Validates: Requirements 6.1**
459
-
460
- Property 18: Schema context inclusion
461
- *For any* schema file in context, related validation rules and type definitions should be included
462
- **Validates: Requirements 6.2**
463
-
464
- Property 19: Debug context inclusion
465
- *For any* debugging session, error logs, test results, and related code should be included in context
466
- **Validates: Requirements 6.3**
467
-
468
- Property 20: Context pruning priority
469
- *For any* context that exceeds token limits, lower-priority content should be removed before higher-priority content
470
- **Validates: Requirements 6.4**
471
-
472
- Property 21: Context continuity
473
- *For any* conversation continuation, relevant context from previous messages should remain available
474
- **Validates: Requirements 6.5**
475
-
476
- ### Testing Workflow Properties
477
-
478
- Property 22: Coverage gap identification
479
- *For any* code coverage report below threshold, untested code paths should be identified
480
- **Validates: Requirements 7.3**
481
-
482
- Property 23: Refactoring test preservation
483
- *For any* refactoring operation, all existing tests should execute and pass
484
- **Validates: Requirements 7.4**
485
-
486
- Property 24: PBT configuration
487
- *For any* property-based test generated, it should use fast-check library and configure minimum 100 iterations
488
- **Validates: Requirements 7.5**
489
-
490
- ### OSSA Workflow Properties
491
-
492
- Property 25: Agent manifest validation
493
- *For any* generated OSSA agent manifest, it should validate against the current OSSA schema version
494
- **Validates: Requirements 8.1, 8.4**
495
-
496
- Property 26: Schema migration completeness
497
- *For any* schema version update, all agent manifests should be migrated to the new version
498
- **Validates: Requirements 8.2**
499
-
500
- Property 27: Version synchronization
501
- *For any* version release, version numbers should match across package.json, schema files, and documentation
502
- **Validates: Requirements 8.3**
503
-
504
- Property 28: Documentation synchronization
505
- *For any* documentation update, content should be synchronized between GitLab wiki and website
506
- **Validates: Requirements 8.5**
507
-
508
- ### Tool Integration Properties
509
-
510
- Property 29: Schema configuration consistency
511
- *For any* YAML schema configuration, it should be consistent across Kiro, Cursor, and VS Code settings
512
- **Validates: Requirements 9.2**
513
-
514
- Property 30: Formatter consistency
515
- *For any* code formatting operation, Prettier and ESLint rules should produce consistent results across tools
516
- **Validates: Requirements 9.3**
517
-
518
- Property 31: Workspace configuration respect
519
- *For any* project setting access, existing workspace configurations should be honored
520
- **Validates: Requirements 9.4**
521
-
522
- ### Advanced MCP Properties
523
-
524
- Property 32: GitLab MCP usage
525
- *For any* GitLab operation (repository, issue, CI/CD), the GitLab MCP server should be used
526
- **Validates: Requirements 10.2**
527
-
528
- Property 33: Kubernetes MCP usage
529
- *For any* Kubernetes operation (cluster query, deployment), the Kubernetes MCP server should be used
530
- **Validates: Requirements 10.3**
531
-
532
- Property 34: Code quality MCP integration
533
- *For any* code quality analysis, MCP servers should be used to integrate with linters and static analysis tools
534
- **Validates: Requirements 10.4**
535
-
536
- Property 35: MCP security configuration
537
- *For any* MCP server requiring authentication, proper auth configuration should be present
538
- **Validates: Requirements 10.5**
539
-
540
- ## Error Handling
541
-
542
- ### Steering System Errors
543
-
544
- **Missing Steering File**
545
- - Detection: File referenced but not found
546
- - Handling: Log warning, continue without that rule
547
- - User notification: Show which steering file is missing
548
- - Recovery: Provide template to create missing file
549
-
550
- **Invalid Steering Syntax**
551
- - Detection: Markdown parsing fails or invalid frontmatter
552
- - Handling: Skip that rule, load others
553
- - User notification: Show syntax error location
554
- - Recovery: Validate steering files on save
555
-
556
- **Circular File References**
557
- - Detection: `#[[file:...]]` creates circular dependency
558
- - Handling: Break cycle at detection point
559
- - User notification: Show circular reference chain
560
- - Recovery: Suggest restructuring references
561
-
562
- ### Agent Hooks Errors
563
-
564
- **Hook Execution Failure**
565
- - Detection: Command returns non-zero exit code
566
- - Handling: Log error, show output to user
567
- - User notification: Display command output and error
568
- - Recovery: Allow retry or disable hook
569
-
570
- **Hook Timeout**
571
- - Detection: Command exceeds configured timeout
572
- - Handling: Kill process, log timeout
573
- - User notification: Show timeout duration and command
574
- - Recovery: Suggest increasing timeout or optimizing command
575
-
576
- **File Pattern Match Errors**
577
- - Detection: Invalid regex in file pattern
578
- - Handling: Disable that hook, log error
579
- - User notification: Show invalid pattern
580
- - Recovery: Provide pattern validation on save
581
-
582
- ### MCP Integration Errors
583
-
584
- **Server Connection Failure**
585
- - Detection: MCP server doesn't respond
586
- - Handling: Retry with backoff, fallback to direct operations
587
- - User notification: Show which server is unavailable
588
- - Recovery: Restart server, check configuration
589
-
590
- **Authentication Failure**
591
- - Detection: MCP server returns auth error
592
- - Handling: Prompt for credentials, disable server if repeated failures
593
- - User notification: Show auth error and server name
594
- - Recovery: Update credentials in configuration
595
-
596
- **Tool Execution Failure**
597
- - Detection: MCP tool returns error
598
- - Handling: Log error, show to user, continue with other operations
599
- - User notification: Display tool error message
600
- - Recovery: Suggest alternative approaches
601
-
602
- **Server Crash**
603
- - Detection: MCP server process exits unexpectedly
604
- - Handling: Attempt restart, log crash details
605
- - User notification: Show crash notification
606
- - Recovery: Check server logs, update server if needed
607
-
608
- ### Spec Workflow Errors
609
-
610
- **Invalid Requirements Format**
611
- - Detection: Requirements don't follow EARS patterns
612
- - Handling: Highlight non-compliant requirements
613
- - User notification: Show which requirements need fixing
614
- - Recovery: Provide EARS pattern examples
615
-
616
- **Missing Correctness Properties**
617
- - Detection: Testable criteria without corresponding properties
618
- - Handling: Warn user during design review
619
- - User notification: List criteria missing properties
620
- - Recovery: Generate properties for missing criteria
621
-
622
- **Task Dependency Cycle**
623
- - Detection: Tasks have circular dependencies
624
- - Handling: Prevent task list approval
625
- - User notification: Show dependency cycle
626
- - Recovery: Suggest reordering tasks
627
-
628
- **Test Failure During Implementation**
629
- - Detection: Tests fail after code changes
630
- - Handling: Stop implementation, show test output
631
- - User notification: Display failing tests and errors
632
- - Recovery: Debug and fix, or revert changes
633
-
634
- ### Context Management Errors
635
-
636
- **Token Limit Exceeded**
637
- - Detection: Context size exceeds model limits
638
- - Handling: Apply pruning strategy automatically
639
- - User notification: Show what was pruned
640
- - Recovery: User can manually select what to keep
641
-
642
- **Import Resolution Failure**
643
- - Detection: Import path cannot be resolved
644
- - Handling: Skip that import, continue with others
645
- - User notification: Show unresolved import
646
- - Recovery: Check file paths and tsconfig
647
-
648
- **File Read Failure**
649
- - Detection: File cannot be read (permissions, not found)
650
- - Handling: Skip that file, log error
651
- - User notification: Show which file failed
652
- - Recovery: Check file permissions and existence
653
-
654
- ## Testing Strategy
655
-
656
- ### Unit Testing Approach
657
-
658
- **Framework**: Jest with TypeScript support
659
-
660
- **Coverage Requirements**:
661
- - Minimum 95% code coverage
662
- - All public APIs must have unit tests
663
- - Edge cases and error conditions must be tested
664
-
665
- **Test Organization**:
666
- ```
667
- tests/
668
- ├── unit/
669
- │ ├── steering/
670
- │ │ ├── rule-loader.test.ts
671
- │ │ ├── conditional-activation.test.ts
672
- │ │ └── file-reference-resolver.test.ts
673
- │ ├── hooks/
674
- │ │ ├── hook-executor.test.ts
675
- │ │ ├── file-pattern-matcher.test.ts
676
- │ │ └── event-dispatcher.test.ts
677
- │ ├── mcp/
678
- │ │ ├── server-manager.test.ts
679
- │ │ ├── connection-handler.test.ts
680
- │ │ └── tool-executor.test.ts
681
- │ ├── spec/
682
- │ │ ├── requirements-validator.test.ts
683
- │ │ ├── property-generator.test.ts
684
- │ │ └── task-planner.test.ts
685
- │ └── context/
686
- │ ├── context-assembler.test.ts
687
- │ ├── import-resolver.test.ts
688
- │ └── pruning-strategy.test.ts
689
- ```
690
-
691
- **Key Unit Tests**:
692
-
693
- 1. **Steering Rule Loading**
694
- - Test always-included rules load on every interaction
695
- - Test conditional rules load when file patterns match
696
- - Test manual rules load only when referenced
697
- - Test priority ordering works correctly
698
-
699
- 2. **Hook Execution**
700
- - Test hooks trigger on correct events
701
- - Test file pattern matching works
702
- - Test command execution and output capture
703
- - Test timeout handling
704
-
705
- 3. **MCP Server Management**
706
- - Test server connection establishment
707
- - Test authentication handling
708
- - Test tool invocation and response parsing
709
- - Test error recovery and retries
710
-
711
- 4. **Spec Workflow**
712
- - Test EARS pattern validation
713
- - Test property generation from criteria
714
- - Test task dependency resolution
715
- - Test checkpoint insertion
716
-
717
- 5. **Context Assembly**
718
- - Test import following up to depth limit
719
- - Test token budget management
720
- - Test pruning strategies
721
- - Test context continuity
722
-
723
- ### Property-Based Testing Approach
724
-
725
- **Framework**: fast-check (TypeScript property-based testing library)
726
-
727
- **Configuration**: Minimum 100 iterations per property
728
-
729
- **Property Test Organization**:
730
- ```
731
- tests/
732
- ├── properties/
733
- │ ├── steering.properties.test.ts
734
- │ ├── hooks.properties.test.ts
735
- │ ├── mcp.properties.test.ts
736
- │ ├── spec.properties.test.ts
737
- │ └── context.properties.test.ts
738
- ```
739
-
740
- **Key Property-Based Tests**:
741
-
742
- 1. **Property 1: Steering files automatically loaded**
743
- ```typescript
744
- /**
745
- * Feature: kiro-ide-supercharger, Property 1: Steering files automatically loaded
746
- * Validates: Requirements 2.1
747
- */
748
- fc.assert(
749
- fc.property(
750
- fc.array(steeringRuleGenerator({ inclusion: 'always' })),
751
- (alwaysRules) => {
752
- const context = assembleContext(alwaysRules);
753
- return alwaysRules.every(rule =>
754
- context.steeringRules.includes(rule)
755
- );
756
- }
757
- ),
758
- { numRuns: 100 }
759
- );
760
- ```
761
-
762
- 2. **Property 4: Hook triggering on file save**
763
- ```typescript
764
- /**
765
- * Feature: kiro-ide-supercharger, Property 4: Hook triggering on file save
766
- * Validates: Requirements 3.1
767
- */
768
- fc.assert(
769
- fc.property(
770
- fc.record({
771
- hook: hookGenerator(),
772
- filePath: fc.string()
773
- }),
774
- ({ hook, filePath }) => {
775
- const shouldTrigger = matchesPattern(filePath, hook.filePattern);
776
- const didTrigger = triggerHooksForFile(filePath, [hook]).length > 0;
777
- return shouldTrigger === didTrigger;
778
- }
779
- ),
780
- { numRuns: 100 }
781
- );
782
- ```
783
-
784
- 3. **Property 17: Import following**
785
- ```typescript
786
- /**
787
- * Feature: kiro-ide-supercharger, Property 17: Import following
788
- * Validates: Requirements 6.1
789
- */
790
- fc.assert(
791
- fc.property(
792
- fc.record({
793
- file: fileWithImportsGenerator(),
794
- maxDepth: fc.integer({ min: 1, max: 5 })
795
- }),
796
- ({ file, maxDepth }) => {
797
- const context = assembleContext([file], { maxDepth });
798
- const imports = getAllImports(file, maxDepth);
799
- return imports.every(imp => context.files.includes(imp));
800
- }
801
- ),
802
- { numRuns: 100 }
803
- );
804
- ```
805
-
806
- 4. **Property 25: Agent manifest validation**
807
- ```typescript
808
- /**
809
- * Feature: kiro-ide-supercharger, Property 25: Agent manifest validation
810
- * Validates: Requirements 8.1, 8.4
811
- */
812
- fc.assert(
813
- fc.property(
814
- ossaAgentGenerator(),
815
- (agent) => {
816
- const manifest = generateAgentManifest(agent);
817
- const validation = validateAgainstSchema(manifest);
818
- return validation.valid === true;
819
- }
820
- ),
821
- { numRuns: 100 }
822
- );
823
- ```
824
-
825
- **Generators**:
826
-
827
- Custom generators will be created for:
828
- - `steeringRuleGenerator()` - Generates valid steering rules
829
- - `hookGenerator()` - Generates valid agent hooks
830
- - `fileWithImportsGenerator()` - Generates files with import statements
831
- - `ossaAgentGenerator()` - Generates valid OSSA agent configurations
832
- - `mcpServerConfigGenerator()` - Generates valid MCP server configs
833
-
834
- ### Integration Testing
835
-
836
- **Scope**: Test interactions between components
837
-
838
- **Key Integration Tests**:
839
-
840
- 1. **Steering + Context Assembly**
841
- - Test that conditional steering rules load when matching files are in context
842
- - Test that file references in steering rules are resolved correctly
843
-
844
- 2. **Hooks + MCP**
845
- - Test that hooks can trigger MCP server operations
846
- - Test that hook failures are handled gracefully
847
-
848
- 3. **Spec Workflow + Testing**
849
- - Test complete spec workflow from requirements to implementation
850
- - Test that property-based tests are generated and executed
851
-
852
- 4. **Context + MCP**
853
- - Test that MCP servers can provide additional context
854
- - Test that context assembly includes MCP-provided data
855
-
856
- ### End-to-End Testing
857
-
858
- **Scope**: Test complete user workflows
859
-
860
- **Key E2E Tests**:
861
-
862
- 1. **Complete Spec Workflow**
863
- - Create requirements → design → tasks → implementation
864
- - Verify all artifacts are created correctly
865
- - Verify tests pass
866
-
867
- 2. **Hook-Driven Development**
868
- - Save schema file → types regenerated → tests run
869
- - Verify complete automation chain works
870
-
871
- 3. **MCP-Enhanced Development**
872
- - Query GitLab via MCP → create issue → link to code
873
- - Verify MCP integration works end-to-end
874
-
875
- ## Implementation Notes
876
-
877
- ### Technology Stack
878
-
879
- - **Language**: TypeScript 5.x
880
- - **Testing**: Jest + fast-check
881
- - **Configuration**: JSON/YAML
882
- - **MCP**: Python (uvx) for standard servers, Node.js for custom servers
883
- - **Documentation**: Markdown
884
-
885
- ### File Structure
886
-
887
- ```
888
- .kiro/
889
- ├── steering/
890
- │ ├── ossa-standards.md
891
- │ ├── schema-validation.md
892
- │ ├── testing-requirements.md
893
- │ ├── openapi-workflow.md
894
- │ └── git-workflow.md
895
- ├── hooks/
896
- │ ├── schema-change.hook.json
897
- │ ├── test-execution.hook.json
898
- │ ├── openapi-validation.hook.json
899
- │ └── pre-commit.hook.json
900
- ├── settings/
901
- │ └── mcp.json
902
- └── specs/
903
- └── kiro-ide-supercharger/
904
- ├── requirements.md
905
- ├── design.md
906
- └── tasks.md
907
- ```
908
-
909
- ### Dependencies
910
-
911
- **Required**:
912
- - `fast-check` - Property-based testing
913
- - `ajv` - JSON schema validation
914
- - `yaml` - YAML parsing
915
- - `glob` - File pattern matching
916
-
917
- **Optional**:
918
- - `uv` / `uvx` - Python package manager for MCP servers
919
- - `@gitbeaker/rest` - GitLab API client
920
- - `@kubernetes/client-node` - Kubernetes API client
921
-
922
- ### Configuration Examples
923
-
924
- **Steering Rule with Conditional Inclusion**:
925
- ```markdown
926
- ---
927
- inclusion: conditional
928
- fileMatchPattern: 'spec/**/*.schema.json'
929
- priority: 10
930
- ---
931
-
932
- # Schema Validation Rules
933
-
934
- When working with OSSA schemas:
935
- - Always validate against JSON Schema Draft 2020-12
936
- - Run `npm run gen:types` after schema changes
937
- - Update examples to match schema changes
938
- - Increment schema version following semver
939
- ```
940
-
941
- **Agent Hook Configuration**:
942
- ```json
943
- {
944
- "name": "Schema Change Hook",
945
- "trigger": {
946
- "type": "onFileSave",
947
- "filePattern": "spec/**/*.schema.json"
948
- },
949
- "action": {
950
- "type": "command",
951
- "content": "npm run gen:types && npm run gen:zod",
952
- "timeout": 30000
953
- },
954
- "enabled": true
955
- }
956
- ```
957
-
958
- **MCP Server Configuration**:
959
- ```json
960
- {
961
- "mcpServers": {
962
- "gitlab": {
963
- "command": "uvx",
964
- "args": ["mcp-server-gitlab"],
965
- "env": {
966
- "GITLAB_TOKEN": "${GITLAB_TOKEN}",
967
- "GITLAB_URL": "https://gitlab.com",
968
- "GITLAB_PROJECT": "llm/openapi-ai-agents-standard"
969
- },
970
- "disabled": false,
971
- "autoApprove": ["list_issues", "get_issue"]
972
- }
973
- }
974
- }
975
- ```
976
-
977
- ### Performance Considerations
978
-
979
- 1. **Context Assembly**: Cache import resolution results
980
- 2. **Steering Rules**: Load and parse rules once, reuse across interactions
981
- 3. **MCP Connections**: Keep connections alive, use connection pooling
982
- 4. **Hook Execution**: Run hooks asynchronously, don't block user interactions
983
- 5. **Property Tests**: Run in parallel when possible
984
-
985
- ### Security Considerations
986
-
987
- 1. **MCP Servers**:
988
- - Store credentials in environment variables, never in config files
989
- - Use least-privilege permissions
990
- - Validate all MCP server responses
991
-
992
- 2. **Hook Execution**:
993
- - Sanitize file paths to prevent injection
994
- - Run hooks with limited permissions
995
- - Timeout long-running hooks
996
-
997
- 3. **File Access**:
998
- - Respect workspace boundaries
999
- - Validate file paths before access
1000
- - Handle symlinks carefully
1001
-
1002
- 4. **External APIs**:
1003
- - Use authenticated requests
1004
- - Validate SSL certificates
1005
- - Rate limit API calls