Initial commit
This commit is contained in:
71
commands/find-redundant-verifications.md
Normal file
71
commands/find-redundant-verifications.md
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
allowed-tools: Read, Bash(reqvire:*)
|
||||
description: Find and analyze redundant verify relations in the Reqvire model
|
||||
model: claude-sonnet-4-5-20250929
|
||||
---
|
||||
|
||||
# Find Redundant Verify Relations
|
||||
|
||||
Analyze the verification traces to find redundant verify relations in the model.
|
||||
|
||||
## Current Status
|
||||
|
||||
- Auto-fixable issues: !`reqvire lint --json 2>&1 | jq -r '"\(if .auto_fixable then (.auto_fixable | length) else 0 end) (including redundant verifications)"'`
|
||||
|
||||
## Instructions
|
||||
|
||||
1. Run the lint command to find redundancies:
|
||||
```bash
|
||||
reqvire lint --json > /tmp/lint.json
|
||||
```
|
||||
|
||||
2. Parse the JSON to find redundant verify relations:
|
||||
```bash
|
||||
jq -r '
|
||||
.auto_fixable[] |
|
||||
select(.type == "redundant_verify_relations") |
|
||||
"## Verification: \(.verification.name)\n" +
|
||||
"**File**: \(.verification.file)\n" +
|
||||
"**Identifier**: `\(.verification.identifier)`\n\n" +
|
||||
"**Redundant VERIFY Relations** (will be auto-removed with lint --fix):\n" +
|
||||
(.redundant_relations[] | " * verify: \(.target)\n") +
|
||||
"\n**Reason**: \(.rationale)\n\n" +
|
||||
"---\n"
|
||||
' /tmp/lint.json || echo "No redundant verify relations found."
|
||||
```
|
||||
|
||||
3. Present the results to the user showing:
|
||||
- Which verifications have redundant relations
|
||||
- Which specific verify relations can be removed
|
||||
- Explanation of why they're redundant
|
||||
|
||||
4. If no redundancies found, report: "No redundant verify relations found in the model."
|
||||
|
||||
5. **Auto-fix option:**
|
||||
```bash
|
||||
reqvire lint --fix
|
||||
```
|
||||
|
||||
## Background
|
||||
|
||||
A verify relation is redundant when:
|
||||
- A verification directly verifies both a child requirement AND its parent
|
||||
- Since verification traces roll up automatically, verifying the child is sufficient
|
||||
- The direct verification of the parent adds noise to the model
|
||||
|
||||
Example:
|
||||
```
|
||||
Verification "Password Test" verifies:
|
||||
- "Password Strength" (leaf requirement)
|
||||
- "Password Authentication" (parent of Password Strength)
|
||||
|
||||
→ The verify relation to "Password Authentication" is REDUNDANT
|
||||
```
|
||||
|
||||
The system automatically detects this by building trace trees and checking if any ancestor requirements are also directly verified.
|
||||
|
||||
## Notes
|
||||
|
||||
- Use `reqvire lint --fix` to automatically remove redundant relations
|
||||
- Redundant verify relations are always safe to remove
|
||||
- Run `reqvire validate` after fixing to confirm model integrity
|
||||
Reference in New Issue
Block a user