Skip to content

fix(verify): find spec and design artifacts by output path - #2028

Merged
clay-good merged 3 commits into
Fission-AI:mainfrom
drakeo338:claude/2027-fix
Oct 5, 2026
Merged

clay-good merged 3 commits into
Fission-AI:mainfrom
drakeo338:claude/2027-fix

Conversation

@drakeo338

@drakeo338 drakeo338 commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Closes #2027

What this changes

The verify workflow read contextFiles.specs and contextFiles.design, which only exist when a schema names its artifacts specs and design; with other artifact ids it found nothing to verify against. It now finds them through artifactPaths.<id>.outputPath: spec artifacts are those under specs/, and the design artifact is design.md. The generated skill file is regenerated to match.

How you verified it

The updated template tests failed on the previous source (58 passed, 3 failed) and pass with the change (61 passed, 0 failed). I did not run the full build, tsc or lint.

Notes

Written by Claude Code (Claude Sonnet 5.5); I ran the tests above myself.


  • Ran pnpm changeset if this affects users, and committed the file
  • If a coding agent wrote this, named the agent and model in the Notes section, and verified the result myself

Summary by CodeRabbit

  • Bug Fixes
    • Verification now finds specification and design artifacts using schema output paths, rather than relying on fixed artifact IDs.
    • When specification files are missing or empty, related checks are marked as not verified. Design adherence is marked as not verified when its file is missing or empty, and not applicable when no design artifact is defined.

The verify workflow read contextFiles.specs and contextFiles.design, which
only exist when the schema names its artifacts "specs" and "design".
Find them by artifactPaths.<id>.outputPath instead: spec artifacts are
those under specs/, the design artifact is design.md.

Closes Fission-AI#2027
Regenerate skills/openspec-verify-change/SKILL.md so the skills.sh copy
matches the template, and treat an artifact with id design, or an output
path ending in design.md, as the design artifact.

Signed-off-by: drakeo338 <paranoyouz@gmail.com>
@drakeo338
drakeo338 requested a review from a team as a code owner October 2, 2026 08:01
@drakeo338
drakeo338 requested review from clay-good and removed request for a team October 2, 2026 08:01
@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration
  • Configuration used: Repository: Fission-AI/OpenSpec/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4b88a48c-1287-41b9-bc49-f573c6f58733
📥 Commits

Reviewing files that changed from the base of the PR and between 250c490 and 8a61f0d.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: Fission-AI/OpenSpec/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 7694dbfa-7bd5-4ed0-9c48-a6b5a6ee2c12

📥 Commits

Reviewing files that changed from the base of the PR and between bfa670e and 250c490.

📒 Files selected for processing (5)
  • .changeset/verify-change-artifact-paths.md
  • skills/openspec-verify-change/SKILL.md
  • src/core/templates/workflows/verify-change.ts
  • test/core/templates/skill-templates-parity.test.ts
  • test/core/templates/verify-change.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

Verify instructions now locate spec and design artifacts through schema output paths and artifact IDs instead of relying only on fixed context-file keys. The templates update verification status when spec files are absent or empty, and when no design artifact is defined. Tests and the patch changeset are updated.

Changes

Verify artifact lookup

Layer / File(s) Summary
Artifact path detection and verification guidance
src/core/templates/workflows/verify-change.ts, skills/openspec-verify-change/SKILL.md, test/core/templates/verify-change.test.ts, test/core/templates/skill-templates-parity.test.ts, .changeset/verify-change-artifact-paths.md
Both templates and the skill guidance identify spec artifacts by output paths under specs/ and design artifacts by ID or output path. They use the matching artifact IDs to read context files. Tests, expected hashes, and the patch changeset are updated.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to 250c4

No actionable verification gap is established; the artifact-discovery changes appear ready to merge.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 3 files. (2 skipped: 2 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: locating spec and design artifacts by output path instead of relying on fixed identifiers.
Linked Issues check ✅ Passed The PR satisfies the coding requirements in #2027. Both verify template branches identify spec artifacts from artifactPaths.<id>.outputPath paths under specs/ and read files through the matching `…
Out of Scope Changes check ✅ Passed The changes stay within #2027. The source template update, generated skill update, changeset, parity hash updates, and template regression test all directly support path-based artifact discovery and i…
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 3 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@alfred-openspec alfred-openspec left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This removes the hardcoded artifact-ID assumption and aligns verification with the schema output-path contract, so renamed spec and design artifacts can be verified. The fallback behavior for absent files remains conservative, targeted tests pass, and all CI checks are green. No docs-lab change is needed because the public verify contract remains the same; this fixes custom-schema behavior beneath it.

@clay-good
clay-good added this pull request to the merge queue Oct 5, 2026

@alfred-openspec alfred-openspec left a comment •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fast fix. The direction is right, and the patch passed the focused template/parity tests, lint, and build locally before the merge-from-main refresh. I think this needs one bounded revision before merge:

  • State the same normalized path rule as isSpecsArtifactPath(): normalize separators and dot segments, then match patterns beginning specs/.
  • For design, match normalized design.md or a path ending /design.md; “ends in design.md” also accepts unrelated names such as redesign.md.
  • Add the renamed-ID and skipped/missing outcomes to openspec/specs/opsx-verify-skill/spec.md, then strengthen the template regression to pin those cases for both generated bodies.

The generated mirror, parity hashes, and patch changeset are already in good shape. Canonical docs-lab remains accurate, and the hosted CI/Security matrix is green on this head.

Merged via the queue into Fission-AI:main with commit 43d23cc Oct 5, 2026
16 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(verify): verify workflow hardcodes contextFiles.specs / contextFiles.design, so since 1.13.2 a custom schema's renamed artifacts read as missing

3 participants