Skip to content

fix(codex): make explicit memory requests trigger the project-context skill #1378

Description

@Alanxtl

Related to #1333

Problem

The Codex project-context skill does not reliably route explicit memory requests to the corresponding PowerContext tools.

When a user says that a preference, decision, constraint, or other context should be remembered, the model may acknowledge the request without calling remember_memory. Likewise, an explicit request to search memories may be answered without calling search_memory.

This creates a misleading user experience: the assistant can claim that a memory was saved or searched even though no PowerContext operation occurred. The prompt hook's automatic context preparation and source capture do not replace explicit memory-tool execution.

Fail demo

› remember I prefer uv for Python

• Got it — I’ll prefer uv for Python environments, dependencies, and commands.

Successful demo

› 请调用 PowerContext 的 remember_memory 工具,把“我偏好使用 uv 管理 Python 环境、依赖和命令”保存为 preference。
不要只回复确认。

• You have 1 usage limit reset available. Run /usage to use one.

• 我会调用 PowerContext 的记忆工具,将这条偏好保存为 preference。

• Called powercontext.select_handoff_workstream({"locale":"zh-CN"})
└ {"status": "empty", "message": "没有可供选择的交接项目。", "stage": null, "selected": null,
"project_choices": [], "workstream_choices": [], "truncated": false}

• Called
└ powercontext.remember_memory({"kind":"preference","scope_id":"global","text":"我偏好使用 uv 管理 Python 环
境、依赖和命令","reason":"用户明确指定的长期偏好"})
{"memory": {"family": "memory", "artifact_id": "memory", "revision": 1}, "entry": {"citation": {"memory_ref":
{"family": "memory", "artifact_id": "memory", "revision": 1}, "entry_id":
"mem_ent_98036887e23749d1a7fdfeff7d2212f3", "entry_version_id":
"mem_ver_56cf02488c424a41854f8f51f574a9cb"}, "version": 1, "kind": "preference", "text": "我偏好使用 uv
管理 Python 环境、依赖和命令", "state": "active", "source_refs": [], "artifact_refs": []}}

─────────────────────────────────────────────────────────────────────────────────────────────────────────────────

• 已调用 remember_memory,成功保存为 preference。

  • 范围:global
  • 状态:active

Expected behavior

  • Natural-language requests such as remember, save this preference, record this decision, and equivalent Chinese phrases must trigger an actual remember_memory call.
  • Natural-language requests such as search my memories, what do you remember about, and equivalent Chinese phrases must trigger an actual search_memory call.
  • The assistant must report success only after the corresponding tool returns successfully.
  • If the memory tools are unavailable or the operation fails, the assistant must clearly report that the memory was not saved or searched.
  • Automatic prompt capture must not be presented as equivalent to an explicit remember_memory write.
  • Ordinary remember/search requests must not invoke unrelated handoff-workstream selection.

Proposed changes

  • Expand the project-context skill description and instructions with explicit remember/search triggers.
  • Add concise examples for both English and Chinese requests.
  • State the required tool call and success-reporting behavior as a strict contract.
  • Add an acceptance or transcript-level test covering successful and unavailable-tool paths.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions