Status: Planned
Version: 1.0
Date: 2025-12-28
Priority: High
Satisfies: ADR-033 (Kernel-Shell), ADR-034 (Nx Boundaries)
| Field | Value |
|---|---|
| REQ-ID | REQ-060 |
| Type | constraint |
| EARS | The SEA™ kernel (libs/sea/*) SHALL be runnable and testable without any shell applications. |
| Bounded-Context | sea-kernel |
| Data Touched | N/A |
| Invariants | INV-030 |
Acceptance Criteria:
1
2
3
4
Given the SEA™ kernel libraries
When running unit tests on libs/sea/*
Then all tests pass without requiring any apps/* to be built
And no runtime dependencies on shell configuration exist
Idempotency Requirement: | Aspect | Specification | |——–|—————| | Repeatable? | yes | | Safe to retry? | yes | | Dedup strategy | N/A |
| Field | Value |
|---|---|
| REQ-ID | REQ-061 |
| Type | functional |
| EARS | The system SHALL support deploying VibesPro™ as a standalone API without SEA™ UI or runtime. |
| Bounded-Context | vibespro |
| Data Touched | VibesPro™ entities |
| Invariants | INV-031 |
Acceptance Criteria:
1
2
3
4
5
Given the VibesPro™ bounded context
When building and deploying apps/vibespro-api
Then the application runs with a stable API contract
And no SEA™ kernel code is directly invoked
And vibespro_db is the only database accessed
Idempotency Requirement: | Aspect | Specification | |——–|—————| | Repeatable? | yes | | Safe to retry? | yes | | Dedup strategy | deployment ID |
| Field | Value |
|---|---|
| REQ-ID | REQ-062 |
| Type | constraint |
| EARS | When SEA™ needs VibesPro™ capabilities, the integration SHALL occur only via libs/vibespro/public-api. |
| Bounded-Context | sea, vibespro |
| Data Touched | VibesPro™ capability DTOs |
| Invariants | INV-032 |
Acceptance Criteria:
1
2
3
4
5
Given SEA™ application code
When importing from VibesPro™
Then only @vibespro/public-api is allowed
And imports from libs/vibespro/domain/* fail CI lint
And INV-032 boundary invariant holds
Idempotency Requirement: | Aspect | Specification | |——–|—————| | Repeatable? | yes | | Safe to retry? | yes | | Dedup strategy | N/A |
| Field | Value |
|---|---|
| REQ-ID | REQ-063 |
| Type | functional |
| EARS | When a developer uses Zed IDE extension, the system SHALL provide editor-native actions via HTTP/LSP endpoints. |
| Bounded-Context | sea-api |
| Data Touched | SEA™ actions (generate, refactor, validate) |
| Invariants | INV-033 |
Acceptance Criteria:
1
2
3
4
5
Given a Zed IDE extension installed
When the user invokes a SEA™ action (e.g., validate specs)
Then the extension calls SEA™ HTTP/gRPC endpoint
And receives structured response for editor integration
And no UI state is maintained on SEA™ side
Idempotency Requirement: | Aspect | Specification | |——–|—————| | Repeatable? | yes | | Safe to retry? | yes | | Dedup strategy | request ID |
| Field | Value |
|---|---|
| REQ-ID | REQ-064 |
| Type | functional |
| EARS | When LibreChat is configured with SEA™ endpoint, the system SHALL respond via OpenAI-compatible API. |
| Bounded-Context | sea-api |
| Data Touched | Chat messages, SEA™ capabilities |
| Invariants | INV-033 |
Acceptance Criteria:
1
2
3
4
5
Given LibreChat configured with SEA™ endpoint
When a user sends a chat message
Then SEA™ responds via /v1/chat/completions compatible format
And no LibreChat modifications are required
And UI remains a stateless client
Idempotency Requirement: | Aspect | Specification | |——–|—————| | Repeatable? | yes | | Safe to retry? | yes | | Dedup strategy | message ID |
| Field | Value |
|---|---|
| REQ-ID | REQ-065 |
| Type | functional |
| EARS | The system SHALL absorb GovernedSpeed™ domain logic into SEA™ kernel as a donor. |
| Bounded-Context | sea |
| Data Touched | GovernedSpeed™ policies, governance rules |
| Invariants | N/A |
Acceptance Criteria:
1
2
3
4
5
Given GovernedSpeed™ codebase
When extracting valuable domain pieces
Then they are placed in libs/sea/domain or libs/sea/app
And GovernedSpeed™ ceases to be a separate bounded context
And governance capabilities are available in SEA™ kernel
Idempotency Requirement: | Aspect | Specification | |——–|—————| | Repeatable? | yes (migration) | | Safe to retry? | yes | | Dedup strategy | N/A |
| Field | Value |
|---|---|
| REQ-ID | REQ-066 |
| Type | constraint |
| EARS | The CI pipeline SHALL fail when module boundary rules are violated. |
| Bounded-Context | All |
| Data Touched | N/A |
| Invariants | INV-034, INV-035, INV-036 |
Acceptance Criteria:
1
2
3
4
5
Given the Nx workspace with tagged libraries
When a developer adds an import that violates boundary rules
Then nx lint fails with clear error message
And the PR cannot be merged
And INV-034/035/036 invariants hold
Idempotency Requirement: | Aspect | Specification | |——–|—————| | Repeatable? | yes | | Safe to retry? | yes | | Dedup strategy | N/A |
| KPI | Target | Measurement Method |
|---|---|---|
| Kernel test coverage | > 80% | Jest coverage report |
| Boundary violations | 0 per release | CI lint results |
| VibesPro™ standalone uptime | 99.9% | Monitoring |
| Zed/LibreChat integration latency | p99 < 500ms | APM |