Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

openspec-sync-specs skill: containment check missing for create/update path, only present for delete

Đang mở Phù hợp với người mới
#2,164 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
73/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
node.js, typescript
Lĩnh vực
security, tooling

Hướng nghiên cứu

Đọc skill openspec-sync-specs và bản sao phản chiếu .opencode/skills/openspec-sync-specs/SKILL.md, sau đó kiểm tra cách skill lưu trữ gọi quy trình này. Cập nhật hướng dẫn tạo và cập nhật để xác minh trước khi ghi rằng đích đến và mọi thư mục cha đều được phân giải bên trong thư mục gốc openspec/specs/ thực tế. Hoàn tất khi skill dừng nếu các thư mục capability được liên kết bằng symbolic link hoặc các đích spec.md nằm ngoài thư mục gốc đó.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

What you were trying to do

Running the openspec-sync-specs skill to merge a delta spec into the main spec.

What happened

The skill instructs the agent to write to <planningHome.root>/openspec/specs/<capability-path>/spec.md but only requires a real-path containment check for the special deletion case. If a repository contains a symlink at the capability directory or spec.md pointing outside openspec/specs/, the agent follows it and modifies the external target. The mirrored .opencode/skills/openspec-sync-specs/SKILL.md has the same issue, and the archive skill invokes this workflow inline.

What you expected instead

Before any create or update (not just deletion), the skill should require that the destination and every parent directory resolve inside the real openspec/specs/ root. A symlinked spec.md or capability directory pointing outside openspec/specs/ should cause the skill to abort.

Minimal steps to reproduce

  1. In a repo, create openspec/specs/my-cap/ as a symlink to a directory outside openspec/specs/
  2. Run the openspec-sync-specs skill for a change with a delta for my-cap
  3. The skill follows the symlink and writes outside openspec/specs/

OpenSpec version

1.15.0

Coding agent and model

OpenCode, Claude Sonnet 4.6

OS and Node version

macOS, Node 22

Ngôn ngữ chính
TypeScript
Star
73k
Fork
5k
Merge trung bình
2 ngày 12 giờ
Pull request đã merge (30 ngày)
54

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Fission-AI/OpenSpec

Tất cả issue của Fission-AI/OpenSpec

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.