← ClaudeAtlas

opsx-difflisted

Show a before/after diff of OpenSpec spec changes for a given change. Highlights additions, removals, and behavioral modifications across acceptance criteria, flows, and constraints. Supports markdown and JSON output.
fjpulidop/specrails-core · ★ 9 · AI & Automation · score 76
Install: claude install-skill fjpulidop/specrails-core
Visualize spec changes for this project (read name from CLAUDE.md or package.json): compare the current specs against a named OpenSpec change to show exactly what behavioral requirements are being added, modified, or removed. **Input:** $ARGUMENTS — accepts: - `<change-name>` — the kebab-case name of the change to diff (required). If omitted, interactive selection is offered. - `--format json` — emit structured JSON instead of markdown (default: markdown). - `--summary-only` — skip inline line-level diff; show only the file-level and behavioral summary. --- ## Phase 0: Argument Parsing Parse `$ARGUMENTS` to set runtime variables. **Variables to set:** - `CHANGE_NAME` — string. Required. If not provided, prompt the user. - `FORMAT` — `"markdown"` or `"json"`. Default: `"markdown"`. - `SUMMARY_ONLY` — boolean. Default: `false`. **Parsing rules:** 1. Scan `$ARGUMENTS` for `--format <value>`. If found and value is `json`, set `FORMAT="json"`. Any other value: print `Error: unknown format "<value>". Valid: markdown, json` and stop. Strip from arguments. 2. Scan for `--summary-only`. If found, set `SUMMARY_ONLY=true`. Strip from arguments. 3. Treat the remaining token (if any) as `CHANGE_NAME`. Strip leading/trailing whitespace. 4. If `CHANGE_NAME` is empty after parsing: - Run: ```bash openspec list --json ``` - If the result shows available changes, use the **AskUserQuestion tool** (open-ended, show the list) to ask which change to diff. - If no ch