pstack: in Claude Code, poteto-mode cites principles without reading their SKILL.md files
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
- 65/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ệ
- typescript
- Lĩnh vực
- developer-experience
Hướng nghiên cứu
Bắt đầu với các hướng dẫn trong poteto-mode SKILL.md được mô tả trong issue, đặc biệt là các mục Non-negotiables và Principles, rồi so sánh chúng với cách diễn đạt được đề xuất. Cập nhật hướng dẫn để nêu rõ rằng phải đọc adapter và leaf skill liên quan trước câu trả lời đầu tiên. Kiểm tra để bảo đảm việc đọc adapter vẫn chỉ áp dụng cho Claude Code và việc đọc leaf skill áp dụng trong Cursor; hoàn tất khi hướng dẫn yêu cầu thực hiện các bước này mà vẫn giữ nguyên quy tắc trích dẫn.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
In Claude Code, /pstack:poteto-mode runs almost never read the files that the skill tells the agent to read. SKILL.md line 11 says to read docs/harness/claude-code.md once per session. Line 17 says to cite only principles whose leaf SKILL.md the agent read this session. The agent skips both reads. It then does one of two things:
- It names principles from the inline index without reading them. That breaks the "cite only what you read" rule.
- It names no principles at all, so the Principles section has no visible effect.
From the user's side, poteto-mode follows its principles on some days and ignores them on others.
Evidence
I audited 18 poteto-mode runs across 4 Claude Code sessions (pstack 0.15.25 and 0.15.27, Claude Code 2.1.304, Opus 5.5):
- Every run injected the full skill body, so the skill loaded correctly.
- The agent read
docs/harness/claude-code.mdin 1 run. - The agent read a
principle-*/SKILL.mdfile in 0 runs and a playbook file in 0 runs. - One session named principles in its replies anyway. The other three named none.
- One run spawned
general-purposewhere the adapter maps delegates topstack:poteto-agent.
poteto-mode, poteto-agent, and the principle-* skills are identical in 0.15.25 and 0.15.27, so the version change did not cause this.
All 24 principle-* skills set disable-model-invocation: true, so the Skill tool refuses them. The only way to load a principle file is to Read it by path. The current wording states the citation rule but never makes the read a step, so the agent treats the inline index as enough.
Proposed fix
Make the reads an explicit first step in the Non-negotiables:
-The Principles section below grounds every trigger. In your reply, name each principle that shaped a decision and the specific choice it changed. Cite only principles whose leaf SKILL.md you read this session.
+The Principles section below grounds every trigger. Before your first reply in a run, `Read` the adapter above if you have not this session, then `Read` `../principle-<name>/SKILL.md` for each principle you expect to shape a decision. The index below is a pointer, not a substitute. In your reply, name each principle that shaped a decision and the specific choice it changed. Cite only principles whose leaf SKILL.md you read this session.
The adapter clause applies only in Claude Code, because line 11 scopes the adapter to Claude Code. In Cursor the change adds only the leaf read, which line 17 already requires.
Test
I applied the patch locally to 0.15.27 and ran:
claude -p "/pstack:poteto-mode avg() in stats.py crashes on an empty list. Propose a fix, don't edit files."
The agent read docs/harness/claude-code.md, then principle-fix-root-causes/SKILL.md and principle-boundary-discipline/SKILL.md. Its reply named both principles and said what each one changed. That is one run, not a benchmark.
Related
- #629 adds Claude Code support but does not change line 17.
- I haven't tested whether
poteto-agentdelegates have the same gap. Their fallback search forSKILL.mdlooks only in~/.cursor/plugins/.
- Ngôn ngữ chính
- TypeScript
- Star
- 12.5k
- Fork
- 1.2k
- Merge trung bình
- 10 giờ 48 phút
- Pull request đã merge (30 ngày)
- 128
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cursor/plugins
-
Poteto Mode Claude CodeĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
cursor/plugins#701 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
create-plugin README documents a /create-plugin command that does not existCó thể đã có người làm @lab1207 đã nhận 19 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
cursor/plugins#475 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
principle-test-behavior-not-implementation: listed matchers do not all pass when imports return undefinedCó thể đã có người làm @Yi-111-a đã nhận 20 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
cursor/plugins#474 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
cursor-sdk auth.md: non-null assertion described as a runtime missing-variable checkCó thể đã có người làm @lab1207 đã nhận 19 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
cursor/plugins#473 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
check-agent-compatibility: SKILL.md description has an unquoted colon, YAML parse failsCó thể đã có người làm @rufushsu9987 đã nhận 33 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 95/100
cursor/plugins#381 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của cursor/plugins
Issue tương tự
-
frontend
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
ranxianglei/billion-context#4172 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
awslabs/threat-composer#362 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Area/Cloud Needs Triage Type/Bug
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
wso2/product-integrator#2847 ·
Maintainer thường phản hồi trong vòng 1 ngày