96 lines
6.6 KiB
Markdown
96 lines
6.6 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Exact SCUM detail navigation
|
|
The SCUM server detail view SHALL contain exactly five tabs in this order: `用户管理`, `队伍管理`, `实时地图`, `礼包管理`, `AI 助手`.
|
|
|
|
#### Scenario: SCUM detail opens normally
|
|
- **WHEN** an operator opens a SCUM server detail without a valid section selector
|
|
- **THEN** the page selects `用户管理` as the default and renders no standalone `管理` or `Workflow 状态` tab
|
|
|
|
#### Scenario: Legacy section is requested
|
|
- **WHEN** a legacy `manage`, `workflows`, or otherwise invalid SCUM section is requested
|
|
- **THEN** the page replaces/falls back to `用户管理` without an empty screen or a Workflow/management placeholder
|
|
|
|
#### Scenario: Non-SCUM server detail is rendered
|
|
- **WHEN** another plugin/server type legitimately declares different navigation
|
|
- **THEN** the SCUM-only five-tab restriction does not silently remove that plugin's declared pages
|
|
|
|
### Requirement: Required management controls are relocated
|
|
Removing the SCUM `管理` tab SHALL NOT remove server deployment, metadata, or administrator-membership capabilities.
|
|
|
|
#### Scenario: Operator edits deployment
|
|
- **WHEN** an authorized operator needs to change the SCUM deployment definition
|
|
- **THEN** the existing server-list deployment action remains available and no replacement permanent detail tab is introduced
|
|
|
|
#### Scenario: Server owner opens settings
|
|
- **WHEN** the server owner selects the compact settings action in the detail header
|
|
- **THEN** a drawer or dialog permits display-name and administrator membership changes with the existing ownership authorization
|
|
|
|
#### Scenario: Non-owner opens server settings
|
|
- **WHEN** a server member who is not the owner views the settings surface
|
|
- **THEN** owner-only membership mutations are unavailable and a direct API attempt remains forbidden
|
|
|
|
### Requirement: Projection and Workflow concepts are removed from the product
|
|
SCUM pages and browser contracts SHALL NOT render or offer projection, observation, manual synchronization, audit-initiation, pending-review counter, or Workflow product concepts.
|
|
|
|
#### Scenario: Any retained SCUM page renders
|
|
- **WHEN** users, squads, map, gifts, or AI content is displayed
|
|
- **THEN** it contains none of `Workflow 状态`, `投影`, `真实投影`, `玩家投影`, `刷新投影`, `刷新世界投影`, `刷新真实数据`, `发起审计`, `创建发放 workflow`, `typed workflow`, `typed observation`, `typed operation`, `待审操作`, `审批/确认队列`, `清理旧入口`, `目前暂无真实投影数据`, `暂无真实投影数据`, `暂无玩家投影`, or `Companion 可用`
|
|
|
|
#### Scenario: Plugin page loads data
|
|
- **WHEN** any of the four SCUM management pages initializes or retries a failed local read
|
|
- **THEN** it calls only its local resource API and does not list/create Workflow instances/steps or start a query, projection refresh, real-data refresh, or audit
|
|
|
|
#### Scenario: Removed endpoint is requested
|
|
- **WHEN** a browser requests the removed SCUM Workflow, Workflow-step, observation, operation-list/approve, projection/real-data refresh, or audit-initiation endpoint
|
|
- **THEN** Platform returns not found or a stable removal response without dispatching a job or exposing a replacement raw execution path
|
|
|
|
#### Scenario: Legacy operation approval route is requested
|
|
- **WHEN** a caller invokes a legacy SCUM operation-list, `/scum/operations/{id}/approve`, pending-review, or confirmation-queue route
|
|
- **THEN** Platform returns not found or a stable removal response and SHALL NOT create an approval record, dispatch a write, or revive an approval product domain
|
|
|
|
#### Scenario: Internal write safety is recorded
|
|
- **WHEN** Platform records authorization, idempotency, backup, execution, or confirmation evidence for a write
|
|
- **THEN** the record remains internal/safe and does not create a user-facing audit-start action or Workflow status page
|
|
|
|
### Requirement: Trustworthy management page layouts
|
|
The user, squad, map, and gift pages SHALL use full-width business data layouts and shared theme-aware table, drawer, dialog, and status patterns without placeholder product data.
|
|
|
|
#### Scenario: Management page is implemented
|
|
- **WHEN** a first-party SCUM page adds or changes styles
|
|
- **THEN** it preserves black-mecha and magical-girl theme readability, reuses shared tokens/components, keeps CSS declarations compact, and does not add unrelated opaque SaaS cards or page-local fixed decorative effects
|
|
|
|
#### Scenario: Data load fails
|
|
- **WHEN** a local API request fails
|
|
- **THEN** the page shows a readable error and may retry only the local read; it does not generate sample players, squads, vehicles, flags, positions, gifts, maintenance evidence, backups, or operation results
|
|
|
|
### Requirement: AI assistant is preserved with reviewable effects
|
|
The `AI 助手` SHALL remain the final SCUM tab and SHALL support plugin-declared configuration suggestions and controlled player-operation drafts without receiving provider secrets or independent write authority.
|
|
|
|
#### Scenario: AI suggests plugin configuration
|
|
- **WHEN** an authorized operator requests SCUM plugin configuration assistance
|
|
- **THEN** AI proposes only plugin-declared fields, Platform validates and displays a reviewable diff, and the authorized review-and-confirm config-write path applies the change only after explicit confirmation
|
|
|
|
#### Scenario: User can view but cannot apply a suggestion
|
|
- **WHEN** the user may invoke/read an AI suggestion but lacks the permission required for the proposed config or player write
|
|
- **THEN** the suggestion remains reviewable while the apply action is disabled and backend application is forbidden
|
|
|
|
#### Scenario: AI provider is invoked
|
|
- **WHEN** Platform sends the allowed prompt/context to the configured AI provider
|
|
- **THEN** raw AI keys, database credentials, SCUM.db paths, raw XML, and protected Run material never reach the plugin page/browser
|
|
|
|
### Requirement: Obsolete UI actions and placeholders are removed
|
|
The SCUM product SHALL replace hard-coded actions and placeholder map/gift behavior with the declared business flows.
|
|
|
|
#### Scenario: Player actions render
|
|
- **WHEN** a player has writable verified fields
|
|
- **THEN** the UI offers explicit named-field editing and contains no `Fame +100`, `现金 +1000`, `855 审批`, fake before value, fake maintenance ID, or fake backup reference
|
|
|
|
#### Scenario: Map renders
|
|
- **WHEN** the map page is available
|
|
- **THEN** it uses the verified map capability and contains no gradient-only board or arbitrary percentage-dot transform
|
|
|
|
#### Scenario: Gift page renders
|
|
- **WHEN** gift management is available
|
|
- **THEN** it reads local gift packages and contains no hard-coded `starter-pack`, fixed player-card delivery, or fixed notification text
|