chore(openspec): drop 9 superseded proposals + 11 stub archive files
Drop 9 batch proposals that are superseded by the boocode-lift-analysis (boocontext-audit, conductor upgrades, self-healing/verify-gate skills): add-3tier-memory, import-llm-evaluator, import-pregel-engine, plugin-platform, conductor-evolution, code-intelligence-upgrade, dev-workflow, ui-overhaul, agent-reliability. Delete 11 stub archive files (49-66B each, 'Status: Shipped. Archived.' only) that provide zero documentation value over the existing CHANGELOG.md + git tags.
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: MCP middleware captures tool calls to buffer
|
||||
The MCP server SHALL provide injectable middleware that intercepts every tool call response and appends a structured record to `audit_buffer.jsonl` in the configured audit directory.
|
||||
|
||||
#### Scenario: PostToolUse captures tool name and summary
|
||||
- **WHEN** any MCP tool completes execution
|
||||
- **THEN** middleware SHALL write a JSONL record with `{timestamp, tool, session, summary}` to `audit_buffer.jsonl`
|
||||
- **THEN** `tool` SHALL be the MCP tool name
|
||||
- **THEN** `summary` for Bash tools SHALL be the first non-comment command line (truncated to 200 chars)
|
||||
- **THEN** `summary` for Write/Edit tools SHALL be the file path
|
||||
|
||||
#### Scenario: Buffer is size-limited
|
||||
- **WHEN** tool call output exceeds 1MB
|
||||
- **THEN** middleware SHALL truncate input to 1MB via `head -c 1048576` before processing
|
||||
|
||||
#### Scenario: Buffer directory is auto-created
|
||||
- **WHEN** first tool call is captured
|
||||
- **THEN** middleware SHALL create the audit runs directory with `mkdir -p`
|
||||
|
||||
#### Scenario: Failures do not block tool execution
|
||||
- **WHEN** buffer write fails (disk full, permission denied)
|
||||
- **THEN** middleware SHALL silently skip logging and allow the tool response to proceed
|
||||
|
||||
### Requirement: Session flush archives buffer to trail
|
||||
The MCP middleware SHALL provide a flush mechanism that moves buffered records into session-specific audit trail files.
|
||||
|
||||
#### Scenario: Flush moves buffer to session trail
|
||||
- **WHEN** middleware flush is triggered (on session end or explicit flush call)
|
||||
- **THEN** system SHALL read `audit_buffer.jsonl` + `audit_pending.jsonl`
|
||||
- **THEN** system SHALL concatenate them into `{session_id}/audit_trail.jsonl`
|
||||
- **THEN** system SHALL clear both buffer files
|
||||
|
||||
#### Scenario: Auto-session for unstarted sessions
|
||||
- **WHEN** no active session exists and flush is triggered
|
||||
- **THEN** system SHALL auto-generate session ID `auto_{YYYYMMDD_HHMM}` and continue
|
||||
|
||||
#### Scenario: Session ID via handshake file
|
||||
- **WHEN** a session is active via `/start`
|
||||
- **THEN** `{auditDir}/.current_session` SHALL contain the session ID
|
||||
- **THEN** flush SHALL read this file to determine the target session directory
|
||||
|
||||
### Requirement: Context injection on each request
|
||||
The MCP middleware SHALL inject current session context into every incoming request's metadata.
|
||||
|
||||
#### Scenario: Session context injected at request start
|
||||
- **WHEN** any MCP request arrives
|
||||
- **THEN** middleware SHALL add `{audit.session_id, audit.record_count, audit.status}` to the request context
|
||||
|
||||
#### Scenario: CRITICAL alerts injected
|
||||
- **WHEN** `index.json` contains entries with `max_anomaly_level: "CRITICAL"`
|
||||
- **THEN** middleware SHALL append CRITICAL alert details to the injected context
|
||||
|
||||
#### Scenario: Context injection is configurable
|
||||
- **WHEN** `audit.contextInjection` is set to `false`
|
||||
- **THEN** middleware SHALL skip context injection entirely
|
||||
Reference in New Issue
Block a user