pstack: in Claude Code, poteto-mode cites principles without reading their SKILL.md files
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 65/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
issueで説明されている poteto-mode SKILL.md の指示、特に Non-negotiables と Principles のセクションから始め、提案された文言と比較してください。最初の返信の前に、アダプターと関連する leaf skill を読むことを明示的に求めるよう、指示を更新してください。アダプターの読み込みが引き続き Claude Code に限定され、leaf skill の読み込みが Cursor に適用されることを確認してください。指示がこれらの手順を必須とし、引用ルールを維持していれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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/.
- 主要言語
- TypeScript
- スター
- 12.5k
- フォーク
- 1.2k
- 平均マージ
- 10時間 48分
- マージ済み PR(30日)
- 128
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
cursor/plugins のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
cursor/plugins#701 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
create-plugin README documents a /create-plugin command that does not exist対応中かも @lab1207 が 19 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
cursor/plugins#475 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
principle-test-behavior-not-implementation: listed matchers do not all pass when imports return undefined対応中かも @Yi-111-a が 20 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
cursor/plugins#474 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
cursor-sdk auth.md: non-null assertion described as a runtime missing-variable check対応中かも @lab1207 が 19 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
cursor/plugins#473 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
check-agent-compatibility: SKILL.md description has an unquoted colon, YAML parse fails対応中かも @rufushsu9987 が 33 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 95/100
cursor/plugins#381 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
ranxianglei/billion-context#4172 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
awslabs/threat-composer#362 ·
メンテナーはふだん 1 日以内に返信
-
Area/Cloud Needs Triage Type/Bug
難易度 1/5 1〜3時間 初心者へのやさしさ 86/100
wso2/product-integrator#2847 ·
メンテナーはふだん 1 日以内に返信