@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.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
- package/.github/workflows/dependabot-comment.yml +34 -0
- package/.github/workflows/pr-comment.yml +33 -0
- package/.husky/pre-commit +5 -0
- package/.kiro/config.json +21 -0
- package/.kiro/settings/mcp.json +61 -0
- package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
- package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
- package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
- package/.kiro/specs/website-brand-identity/tasks.md +981 -0
- package/CHANGELOG.md +23 -0
- package/README.md +12 -3
- package/bin/ossa-dev +42 -0
- package/bin/ossa-export +32 -0
- package/bin/ossa-generate +60 -0
- package/bin/ossa-health +40 -0
- package/bin/ossa-init +26 -0
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +15 -10
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/github-sync/github-client.d.ts +14 -0
- package/dist/services/github-sync/github-client.d.ts.map +1 -0
- package/dist/services/github-sync/github-client.js +41 -0
- package/dist/services/github-sync/github-client.js.map +1 -0
- package/dist/services/github-sync/gitlab-client.d.ts +17 -0
- package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
- package/dist/services/github-sync/gitlab-client.js +42 -0
- package/dist/services/github-sync/gitlab-client.js.map +1 -0
- package/dist/services/github-sync/schemas.d.ts +46 -0
- package/dist/services/github-sync/schemas.d.ts.map +1 -0
- package/dist/services/github-sync/schemas.js +36 -0
- package/dist/services/github-sync/schemas.js.map +1 -0
- package/dist/services/github-sync/sync.service.d.ts +27 -0
- package/dist/services/github-sync/sync.service.d.ts.map +1 -0
- package/dist/services/github-sync/sync.service.js +99 -0
- package/dist/services/github-sync/sync.service.js.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.js +245 -0
- package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.js +287 -0
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.js +169 -0
- package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
- package/dist/services/runtime/claude/types.d.ts +115 -0
- package/dist/services/runtime/claude/types.d.ts.map +1 -0
- package/dist/services/runtime/claude/types.js +6 -0
- package/dist/services/runtime/claude/types.js.map +1 -0
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +12 -1
- package/dist/services/validation.service.js.map +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.6/README.md +72 -0
- package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/dist/spec/v0.2.6-dev/README.md +75 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- 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
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- 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
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
- package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/docs/brand-guide/01-brand-overview.md +37 -0
- package/docs/brand-guide/02-logo-usage.md +43 -0
- package/docs/brand-guide/03-color-palette.md +70 -0
- package/docs/brand-guide/04-typography.md +82 -0
- package/docs/brand-guide/05-voice-and-tone.md +108 -0
- package/docs/brand-guide/06-visual-elements.md +137 -0
- package/docs/brand-guide/07-application-examples.md +153 -0
- package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
- package/docs/brand-guide/OssaLogo/brand.af +0 -0
- package/docs/brand-guide/README.md +107 -0
- package/docs/comparison.md +315 -0
- package/docs/operations/automation-roadmap.md +245 -0
- package/docs/operations/github-sync-strategy.md +357 -0
- package/examples/anthropic/claude-assistant.ossa.json +5 -4
- package/examples/autogen/multi-agent.ossa.json +6 -4
- package/examples/crewai/research-team.ossa.json +14 -5
- package/examples/cursor/code-review-agent.ossa.json +21 -6
- package/examples/langchain/chain-agent.ossa.json +21 -5
- package/examples/langflow/workflow-agent.ossa.json +2 -3
- package/examples/langgraph/state-machine-agent.ossa.json +2 -3
- package/examples/llamaindex/rag-agent.ossa.json +2 -3
- package/examples/openai/multi-tool-agent.ossa.json +32 -9
- package/examples/openai/swarm-agent.ossa.json +18 -5
- package/examples/vercel/edge-agent.ossa.json +5 -4
- package/openapi/github-sync.yaml +115 -0
- package/package.json +25 -4
- package/scripts/README.md +103 -0
- package/scripts/auto-rebase-mrs.ts +106 -0
- package/scripts/batch-dependabot.sh +57 -0
- package/scripts/configure-gitlab-branch-protection.ts +95 -0
- package/scripts/create-issue-helper.ts +238 -0
- package/scripts/create-milestone-issue.ts +73 -0
- package/scripts/fix-schema-formats.js +82 -0
- package/scripts/generate-agents-catalog.ts +77 -0
- package/scripts/generate-api-docs.ts +218 -0
- package/scripts/generate-cli-docs.ts +410 -0
- package/scripts/generate-config-docs.ts +109 -0
- package/scripts/generate-errors-docs.ts +76 -0
- package/scripts/generate-examples-docs.ts +99 -0
- package/scripts/generate-schema-docs.ts +296 -0
- package/scripts/generate-types-docs.ts +48 -0
- package/scripts/lowercase-docs.ts +43 -0
- package/scripts/manage-milestone-mrs.ts +279 -0
- package/scripts/rebase-all-mrs.sh +75 -0
- package/scripts/sync-github-pr.sh +48 -0
- package/scripts/sync-version.js +40 -0
- package/scripts/sync-wiki.sh +50 -0
- package/scripts/validate-all.js +127 -0
- package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/spec/v0.2.6/CHANGELOG.md +401 -0
- package/spec/v0.2.6/README.md +72 -0
- package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/spec/v0.2.6-dev/README.md +75 -0
- package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/spec/v0.2.7/core/agentgraph.md +324 -0
- package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
- package/website/app/about/page.tsx +53 -44
- package/website/app/ecosystem/page.tsx +146 -111
- package/website/app/globals.scss +256 -21
- package/website/app/page.tsx +394 -182
- package/website/app/page.tsx.bak +679 -0
- package/website/app/page.tsx.bak2 +649 -0
- package/website/app/schema/page.tsx +3 -3
- package/website/app/specification/page.tsx +1 -1
- package/website/components/layout/Header.tsx +27 -23
- package/website/components/ui/Badge.tsx +82 -0
- package/website/components/ui/Button.tsx +116 -0
- package/website/components/ui/Card.tsx +167 -0
- package/website/components/ui/Checkbox.tsx +141 -0
- package/website/components/ui/Input.tsx +169 -0
- package/website/components/ui/Radio.tsx +141 -0
- package/website/components/ui/Select.tsx +182 -0
- package/website/components/ui/Tag.tsx +158 -0
- package/website/components/ui/Textarea.tsx +195 -0
- package/website/components/ui/index.ts +11 -0
- package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
- package/website/content/docs/agents/catalog.md +28 -0
- package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/api-reference/index.md +38 -0
- package/website/content/docs/api-reference/ossa-core-api.md +634 -0
- package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
- package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
- package/website/content/docs/cli-reference/index.md +111 -0
- package/website/content/docs/cli-reference/ossa-agents.md +70 -0
- package/website/content/docs/cli-reference/ossa-export.md +56 -0
- package/website/content/docs/cli-reference/ossa-generate.md +66 -0
- package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
- package/website/content/docs/cli-reference/ossa-import.md +56 -0
- package/website/content/docs/cli-reference/ossa-init.md +57 -0
- package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
- package/website/content/docs/cli-reference/ossa-run.md +66 -0
- package/website/content/docs/cli-reference/ossa-schema.md +57 -0
- package/website/content/docs/cli-reference/ossa-setup.md +57 -0
- package/website/content/docs/cli-reference/ossa-validate.md +66 -0
- package/website/content/docs/configuration/index.md +97 -0
- package/website/content/docs/deployment/github-mirroring.md +924 -0
- package/website/content/docs/documentation.md +100 -0
- package/website/content/docs/ecosystem/framework-support.md +551 -9
- package/website/content/docs/errors/index.md +10 -0
- package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/examples/catalog.md +300 -0
- package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
- package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
- package/website/content/docs/getting-started.md +1 -1
- package/website/content/docs/integrations/aiflow.md +2 -2
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
- package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +7 -7
- package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
- package/website/content/docs/openapi-extensions/index.md +1 -1
- package/website/content/docs/ossa-compliant-badge.md +1 -1
- package/website/content/docs/pre-release/index.md +5 -5
- package/website/content/docs/releases/v0.2.6.md +99 -0
- package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
- package/website/content/docs/schema-reference/agent-id.md +52 -0
- package/website/content/docs/schema-reference/agent-name.md +50 -0
- package/website/content/docs/schema-reference/agent-role.md +54 -0
- package/website/content/docs/schema-reference/agent-version.md +50 -0
- package/website/content/docs/schema-reference/index.md +26 -157
- package/website/content/docs/types-reference/index.md +105 -0
- package/website/content/docs/versioning.md +3 -3
- package/website/dev.sh +53 -0
- package/website/docker-compose.dev.yml +36 -0
- package/website/lib/version.ts +1 -1
- package/website/lib/versions.json +45 -20
- package/website/package.json +1 -1
- package/website/styles/_spacing.scss +453 -0
- package/website/styles/_tokens.scss +245 -0
- package/website/styles/_typography.scss +361 -0
- package/website/styles/_variables.scss +270 -19
- package/website/tailwind.config.ts +113 -79
- package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
- package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
- package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
- package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
- package/docs/issue-19-completion-summary.md +0 -648
- package/docs/issue-19-validation.md +0 -351
- package/website/content/docs/Examples.md +0 -71
- package/website/content/docs/OpenAPI-Extensions.md +0 -934
- package/website/content/docs/core-concepts/Project-Structure.md +0 -348
- package/website/content/docs/examples/Migration-Guides.md +0 -214
- package/website/content/docs/for-audiences/Architects.md +0 -224
- package/website/content/docs/for-audiences/Developers.md +0 -220
- package/website/content/docs/for-audiences/Enterprises.md +0 -256
- package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
- package/website/content/docs/getting-started/First-Agent.md +0 -196
- package/website/content/docs/getting-started/Hello-World.md +0 -184
- package/website/content/docs/migration-guides/00-INDEX.md +0 -76
- package/website/content/docs/migration-guides/README.md +0 -133
- /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
- /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
|