switching memory off switches skills off, and the chat then denies the feature exists
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Start with importForeignSkillsBeforeFirstMessage in cmd/codeaf/chatv3.go:1169, then read renderSkillCatalog in internal/session/skillcatalog.go:64 and useSkillTool in internal/session/tools_skill.go:71. Trace both memory states through the real chat surface and the /skill picker. Done means memory-off users are told skills are switched off and the setting is named, while memory-on users see and can use the skill shelf.
索引モデルが issue の本文から書いたものです。
説明
What happened
A person with eighty-one skills on disk asked the chat "can you use skills ?" and
was told:
If you meant skills in the Claude Code SKILL.md sense, codeaf has no such
mechanism — harnesses and the notebook are what it has instead.
The binary was built from the head that carries the skills wave and its manual
pages. The feature was there. The answer denies it exists.
Why
memory.enabled was off.
~/.codeaf/config.json memory.enabled = off
~/.codeaf/graph.db 59.7 MB, facts table: 0 rows
~/.claude/skills 40 direct-child SKILL.md
~/.agents/skills 41 direct-child SKILL.md
importForeignSkillsBeforeFirstMessage (cmd/codeaf/chatv3.go:1169) returns on
its first line when memory is nil. Nothing is recorded, so
renderSkillCatalog (internal/session/skillcatalog.go:64) reads an empty
shelf and emits zero bytes, and useSkillTool (internal/session/tools_skill.go:71)
withholds the verb. Every one of those is behaving as designed.
The model then has no shelf, no verb, and no sentence about either, so it
reasons from the silence and invents a denial.
The two defects
One. Skills are gated on a setting that names something else, and nothing says
so. A person switches memory off to stop the program remembering things about
them. They also switch off skills, and are not told. That is one decision
producing two outcomes with only one of them disclosed.
Two. "Absent because impossible here" and "absent because it does not exist"
are the same silence. The absent-not-broken law works: it stops a model
planning a reply around a call that can only refuse. It does not stop the model
reasoning from the silence and concluding the capability was never built. The
law needs a companion clause rather than an exception: WHEN A CAPABILITY IS
WITHHELD BY A SETTING, SOMETHING HAS TO SAY SO.
This is not the emptiness law's territory. That law is about a number nobody has
yet: draw nothing rather than $0.00. It was never a licence to hide the
difference between "you have no skills" and "skills are switched off here".
Replication
- A profile with
memory.enabled = offand any number of SKILL.md folders
under a scanned root. - Ask the chat whether it can use skills.
- It denies the feature exists, rather than saying it is switched off.
Acceptance
End to end, through the real surface, in BOTH states.
- With memory off: the answer says skills are switched off on this machine and
names the setting. It does not say codeaf has no such mechanism. - With memory on: the shelf is there and the answer is yes.
- The
/skillpicker with memory off says the same thing rather than drawing an
empty list.
Then whatever mechanism carries it. One candidate: the catalog emits a single
line when the store is absent and the roots are not, which costs a person with
no skills nothing, because that person has no roots either.
Not in scope
#1378 is the manual side: no heading answers the capability question in either
state. Fixing the sentence here does not fix retrieval there, and neither is a
substitute for the other.
- 主要言語
- Go
- スター
- 115
- フォーク
- 14
- 平均マージ
- 9時間 37分
- マージ済み PR(30日)
- 755
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Agent-Field/CodeAF のほかの issue
-
area:chat bug sev:papercut
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Agent-Field/CodeAF#1592 ·
メンテナーはふだん 1 日以内に返信
-
area:headless bug sev:critical
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Agent-Field/CodeAF#1566 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
area:chat feature
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Agent-Field/CodeAF#1510 ·
メンテナーはふだん 1 日以内に返信
-
area:tests bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Agent-Field/CodeAF#1489 ·
メンテナーはふだん 1 日以内に返信
-
area:chat bug good first issue sev:papercut
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Agent-Field/CodeAF#1470 ·
メンテナーはふだん 1 日以内に返信
Agent-Field/CodeAF の issue をすべて見る
似ている issue
-
priority: low 🌱 type: enhancement 💅🏼
難易度 2/5 半日 初心者へのやさしさ 84/100
nebari-dev/llm-serving-pack#199 ·
メンテナーはふだん 3 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
area/helm kind/bug priority/backlog triage/accepted
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
lexfrei/cloudflare-tunnel-gateway-controller#889 ·
メンテナーはふだん 1 日以内に返信
-
bug difficulty: beginner documentation good first issue help wanted localization
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
wavefnd/wave-platform#140 ·
-
compiler/runtime
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信