一键导入
bm-checkpoint
Save a deliberate Codex work checkpoint to Basic Memory with changed files, verification, decisions, blockers, and the next action.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Save a deliberate Codex work checkpoint to Basic Memory with changed files, verification, decisions, blockers, and the next action.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Orient Claude from Basic Memory before substantial repo work by reading active tasks, open decisions, recent checkpoints, and repo conventions. Use when resuming old work or when the user asks where things stand.
Set up the Basic Memory plugin for this project — a short guided interview that configures the project mapping, seeds note schemas, learns or suggests placement conventions, and enables capture reflexes. Use when the user runs /basic-memory:bm-setup, says "set up basic memory", or asks to configure/bootstrap the plugin.
Show the Basic Memory plugin's current state for this project — active project, capture folders, output style, recent session checkpoints, and whether Basic Memory is reachable.
Orient Codex from Basic Memory before substantial repo work by reading active tasks, decisions, recent Codex checkpoints, and repo conventions.
Set up Basic Memory for Codex at user or project level by mapping a Basic Memory project and seeding schemas.
Report the Basic Memory for Codex configuration, reachability, hook expectations, recent Codex checkpoints, and active tasks.
| name | bm-checkpoint |
| description | Save a deliberate Codex work checkpoint to Basic Memory with changed files, verification, decisions, blockers, and the next action. |
Create a durable handoff note for current Codex work. Use this when the user asks to checkpoint, wrap up, hand off, remember the state of the work, or when the Stop hook requests the deliberate handoff after compaction.
Read ~/.codex/basic-memory.json, then the nearest project
.codex/basic-memory.json; project keys override user keys except that
redactKeys and redactPaths accumulate so project config cannot weaken user
privacy:
primaryProject, default omittedcaptureFolder, default codex/<git top-level directory name>placementConventions, optionalsessionProfile, default generalrepository, required when sessionProfile is codingredactKeys, optional additional secret field namesredactPaths, optional additional private directory prefixesApply the bm-writing skill before drafting the note.
Gather repo evidence:
git status --shortDo not claim a test passed unless you ran it or the user supplied the result.
Apply this gate to deliberate checkpoints and Stop-requested checkpoints alike.
It is mandatory before any write_note call:
redactKeys and redactPaths by accumulation. Include
the built-in secret-key families (secret, token, password, credential,
auth, API/access/private keys) and private roots (~/.ssh, ~/.aws, and
~/.gnupg). Never copy the redaction rules themselves into the note.~ for comparison and normalize both slash styles. A denied path
matches its exact directory or a descendant, not a sibling that merely shares
its text prefix.write_note: title, directory, tags,
frontmatter, body, observations, relations, changed-file paths, command
output, repository evidence, and pull-request evidence. Replace a whole path
value under a denied root, or an embedded denied-path token, with
[REDACTED_PATH]. Do not omit schema-required path fields; use the marker.redactKeys entry, replace its entire value with [REDACTED]. Never reproduce
credentials, tokens, or private-key material from config, environment, tool
output, or compacted conversation context.A checkpoint is a durable handoff, not a status dump or commit-by-commit changelog. Tell the story for a human or agent returning later.
Write a note to Basic Memory. For the general profile:
title: Codex checkpoint - <short topic>directory: configured captureFoldertags: ["codex", "checkpoint"]type: codex_sessionstatus: openproject: <primaryProject if known>cwd: <current cwd>started: <current timestamp>username: <current username>hostname: <current hostname>capture: deliberateFor the coding profile, write type: coding_session and use the same common
frontmatter plus these schema-required fields:
repository: <confirmed stable repository identifier>repo_root: <git rev-parse --show-toplevel>cwd: <current cwd>branch: <git rev-parse --abbrev-ref HEAD>git_sha: <git rev-parse HEAD>When the current branch has a pull request, also add the typed optional fields
pull_request_number, pull_request_title, pull_request_url,
pull_request_state, pull_request_base, and pull_request_head. Resolve the
pull request with a read-only GitHub query; omit those fields when no PR exists.
Write the number as a quoted string, for example pull_request_number: "123",
so exact metadata queries behave consistently across storage backends.
Never infer or copy repository/PR identity only from conversation text. Stop if
the required coding fields cannot be proven.
Begin the body with # <exact note title>.
Use these sections, omitting optional ones that add no value:
## Summary: one concrete sentence that does not merely repeat the title## Story: problem -> approach -> current state and impact in substantive prose## Changed Files, when paths are useful for resuming## Verification, for checks actually run and their outcomes## Observations## Relations, when the thread has an obvious graph targetUse observations to distill durable facts for structured recall rather than duplicating every narrative sentence:
[result] for concrete outcomes[decision] for each decision made or preserved[blocker] for each unresolved blocker[next_step] for the next concrete action; include at least one[verification] or [changed_file] only when the item is itself important
project memory, not merely supporting detailDo not create separate Decisions, Blockers, or Next Action sections with plain bullets. Omit empty categories instead of writing placeholder text such as "None."
Relations are not observations. Put them under ## Relations using Basic
Memory relation syntax, for example - relates_to [[Exact existing note title]].
Never write [relates_to] or a bare memory:// URL as an observation. Only add
a relation when its target is an existing task, decision, spec, issue, or PR note.
Reply with the permalink and the one next action the checkpoint preserves.