Borrowing it
Nothing to install: this file belongs to mendix/web-widgets. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/mendix/web-widgets/main/.agents/skills/openspec-verify-change/SKILL.mdgit clone --depth 1 https://github.com/mendix/web-widgetsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mendix/web-widgets/openspec-verify-change)<a href="https://agentmods.dev/skills/mendix/web-widgets/openspec-verify-change"><img src="https://agentmods.dev/badge/skills/mendix/web-widgets/openspec-verify-change/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mendix/web-widgets/openspec-verify-change"><img src="https://agentmods.dev/badge/skills/mendix/web-widgets/openspec-verify-change.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.01457 |
| Opus 5.5 | $0.00013 | $0.00583 |
| Sonnet 5.5 | $0.00006 | $0.00291 |
| Haiku 4.5 | $0.00003 | $0.00146 |
Grade A, and why
openspec-verify-change scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
80% identical to openspec-verify-change — 265 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 172 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Verify that an implementation matches the change artifacts (specs, tasks, design).
Input: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
Steps
-
If no change name provided, prompt for selection
Run
openspec list --jsonto get available changes. Use the AskUserQuestion tool to let the user select.Show changes that have implementation tasks (tasks artifact exists). Include the schema used for each change if available. Mark changes with incomplete tasks as "(In Progress)".
IMPORTANT: Do NOT guess or auto-select a change. Always let the user choose.
-
Check status to understand the schema
openspec status --change "<name>" --jsonParse the JSON to understand:
schemaName: The workflow being used (e.g., "spec-driven")- Which artifacts exist for this change
-
Get the change directory and load artifacts
openspec instructions apply --change "<name>" --jsonThis returns the change directory and
contextFiles(artifact ID -> array of concrete file paths). Read all available artifacts fromcontextFiles. -
Initialize verification report structure
Create a report structure with three dimensions:
- Completeness: Track tasks and spec coverage
- Correctness: Track requirement implementation and scenario coverage
- Coherence: Track design adherence and pattern consistency
Each dimension can have CRITICAL, WARNING, or SUGGESTION issues.
-
Verify Completeness
Task Completion:
- If
contextFiles.tasksexists, read every file path in it - Parse checkboxes:
- [ ](incomplete) vs- [x](complete) - Count complete vs total tasks
- If incomplete tasks exist:
- Add CRITICAL issue for each incomplete task
- Recommendation: "Complete task: " or "Mark as done if already implemented"
Spec Coverage:
- If delta specs exist in
openspec/changes/<name>/specs/:- Extract all requirements (marked with "### Requirement:")
- For each requirement:
- Search codebase for keywords related to the requirement
- Assess if implementation likely exists
- If requirements appear unimplemented:
- Add CRITICAL issue: "Requirement not found: "
- Recommendation: "Implement requirement X: "
- If
-
Verify Correctness
Requirement Implementation Mapping:
- For each requirement from delta specs:
- Search codebase for implementation evidence
- If found, note file paths and line ranges
- Assess if implementation matches requirement intent
- If divergence detected:
- Add WARNING: "Implementation may diverge from spec: "
- Recommendation: "Review : against requirement X"
Scenario Coverage:
- For each scenario in delta specs (marked with "#### Scenario:"):
- Check if conditions are handled in code
- Check if tests exist covering the scenario
- If scenario appears uncovered:
- Add WARNING: "Scenario not covered: "
- Recommendation: "Add test or implementation for scenario: "
- For each requirement from delta specs:
-
Verify Coherence
Design Adherence:
- If
contextFiles.designexists:- Extract key decisions (look for sections like "Decision:", "Approach:", "Architecture:")
- Verify implementation follows those decisions
- If contradiction detected:
- Add WARNING: "Design decision not followed: "
- Recommendation: "Update implementation or revise design.md to match reality"
- If no design.md: Skip design adherence check, note "No design.md to verify against"
Code Pattern Consistency:
- Review new code for consistency with project patterns
- Check file naming, directory structure, coding style
- If significant deviations found:
- Add SUGGESTION: "Code pattern deviation: "
- Recommendation: "Consider following project pattern: "
- If
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 172 lines · 32 tokens per session scan A cbf98c888f9c
openspec-verify-change is a skill published in the GitHub repository mendix/web-widgets (40 stars, last pushed today), licensed Apache-2.0. It adds 32 tokens to every session and 1,457 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 80% identical to openspec-verify-change, differing in 265 lines, and is treated as a copy.
Other skills, from other repositories
test-microflows
Write and run MDL-based microflow tests with mxcli test — annotations, file formats, and the warm local test loop. Use when testing microflow logic rather than the UI: return values, entity changes, control flow.
test-app
Verify a running Mendix app in a browser: mxcli playwright check for a one-call text verdict per page (renders? error banner? console errors? rows?), playwright-cli scripts for interaction, OQL for data. Use when asked to check a page, see whether it renders, verify in the browser, test the app end to end, or confirm…
validation-microflows
Validation microflows for new/edit pages — attribute checks, feedback messages, and conditional validation chains. Use when a form needs input validation with messages shown against the fields.
verify-with-oql
Verify microflow side effects and data changes with OQL against a running app. Use after executing changes to confirm data was created, updated or deleted as expected, or to back a browser test with a data assertion.
ui-data-testid
Add stable data-testid attributes when a new or refactored UI flow needs reliable unit or E2E selectors. Use for interactive React/TSX views, menus, or test-driven UI work; do not add selectors to static markup without a test or automation need.
mx-test-page
Drive a Playwright browser test against a page on the running TestOSApp3 testbed (port 8082). Auto-asserts the testbed fingerprints (URL :8082 + "Test Project" ribbon) before any further assertion -- this is a HARD safety gate against accidentally driving the live OneSource project. Uses the Playwright MCP server…