Files
ss-tools/.opencode/command/speckit.test.md
2026-05-08 10:07:05 +03:00

4.0 KiB

description
description
Execute semantic audit and Rust-native testing for the active feature batch.

User Input

$ARGUMENTS

You MUST consider the user input before proceeding (if not empty).

Goal

Run the verification loop for the touched Rust MCP scope: semantic audit, decision-memory audit, executable tests, logic review, and documentation of coverage/results.

Operating Constraints

  1. NEVER delete existing tests unless the user explicitly requests removal.
  2. NEVER duplicate tests when existing tests/*.rs coverage already validates the same contract.
  3. Decision-memory regression guard: tests and audits must not silently normalize any path documented as rejected.
  4. Rust-native structure: prefer existing integration/protocol test organization under tests/.

Execution Steps

1. Analyze Context

Run .specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks and determine:

  • FEATURE_DIR
  • touched implementation tasks from tasks.md
  • affected .rs files
  • relevant ADRs, @RATIONALE, and @REJECTED guardrails

All test documentation emitted by this workflow belongs under FEATURE_DIR/tests/ or other files inside specs/<feature>/..., never under .kilo/plans/.

2. Load Relevant Artifacts

Load only the necessary portions of:

  • tasks.md
  • plan.md
  • contracts/modules.md when present
  • quickstart.md when present
  • .specify/memory/constitution.md
  • README.md
  • docs/SEMANTIC_PROTOCOL_COMPLIANCE.md
  • relevant docs/adr/*.md

3. Coverage Matrix

Build a compact matrix:

Module / Flow File Existing Tests Complexity Guardrails Needed Verification

4. Semantic Audit and Logic Review

Before writing or executing tests, perform a semantic audit of the touched scope:

  1. Use the AXIOM semantic validation path where available.
  2. Reject malformed or pseudo-semantic markup.
  3. Verify contract density matches effective complexity.
  4. Verify C4/C5 Rust flows account for belief runtime markers (belief_scope, reason, reflect, explore) when required by the contract and repository norms.
  5. Verify no touched code silently restores an ADR- or contract-rejected path.
  6. Emulate the algorithm mentally to ensure @PRE, @POST, @INVARIANT, and declared side effects remain coherent.

If audit fails, emit [AUDIT_FAIL: semantic_noncompliance | contract_mismatch | logic_mismatch | rejected_path_regression] with concrete file-based reasons.

5. Test Writing / Updating

When test additions are needed:

  • prefer tests/*.rs integration/protocol coverage
  • use deterministic fixtures rather than logic mirrors
  • trace tests back to semantic contracts and ADR guardrails
  • add explicit rejected-path regression coverage when the touched scope has a forbidden alternative

For non-UI Rust MCP flows, UX verification means validating interaction envelopes, warnings, recovery messaging, and tool/resource discoverability promised by ux_reference.md.

6. Execute Verifiers

Run the smallest truthful verifier set for the touched scope, typically chosen from:

cargo test --all-targets --all-features -- --nocapture
cargo clippy --all-targets --all-features -- -D warnings
python3 scripts/static_verify.py

Use narrower cargo test <target> runs when they are sufficient and then widen verification when finalizing the feature batch.

7. Test Documentation

Create or update specs/<feature>/tests/ documentation using .specify/templates/test-docs-template.md.

Document:

  • coverage summary
  • semantic audit verdict
  • commands run
  • failing or waived cases
  • decision-memory regression coverage

8. Update Tasks

Mark test tasks complete only after semantic audit and executable verification succeed.

Output

Produce a Markdown test report containing:

  • coverage summary
  • commands executed
  • semantic audit verdict
  • ADR / rejected-path coverage status
  • issues found and resolutions
  • remaining risk or debt