[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MPDHX7RYH44V8DC6YB2RY9":3,"skill-same:01M6MPDHX7RYH44V8DC6YB2RY9":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":32,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":63,"ownerDescription":64,"updatedAt":65,"install":66,"resources":79},"01M6MPDHX7RYH44V8DC6YB2RY9","centricmem-agent",null,"Organises and retrieves Markdown memory on the hosted CentricMem librarian (search, notes, decisions, transcripts). Use when coding, researching, reviewing, troubleshooting, or doing multi-step project work — at session start or resume (context compress \u002F checkpoint \u002F new chat), at each deliverable or phase close, filing Non-Micro work, searching project memory, connecting an agent credential, or refreshing this Skill. Skip it for pure Q&A chat that ships nothing. On session start, compare the loaded copy (see REFERENCE Skill refresh) against cm_health \u002F ambient skill_latest and refresh if stale.","hashgraph-online\u002Fawesome-codex-plugins","hashgraph-online","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160371962?v=4","01M6CNB6NRJVNNGN14TR01Q6D3","HOL (Hashgraph Online)","01M6JT1HSKKG9V68KQAQGBA7XP",1575,"MIT","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fzeyu-j\u002Fcentricmem-skill\u002Fskills\u002Fcentricmem-agent\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"centricmem agent","search","changelog","work","notes","false","host","MCP","main","librarian","filing","card","move","cm","project","memory","ids","session start","never","project memory","2026-11-10 10:12:30",false,"---\nname: centricmem-agent\ndescription: \"Organises and retrieves Markdown memory on the hosted CentricMem librarian (search, notes, decisions, transcripts). Use when coding, researching, reviewing, troubleshooting, or doing multi-step project work — at session start or resume (context compress \u002F checkpoint \u002F new chat), at each deliverable or phase close, filing Non-Micro work, searching project memory, connecting an agent credential, or refreshing this Skill. Skip it for pure Q&A chat that ships nothing. On session start, compare the loaded copy (see REFERENCE Skill refresh) against cm_health \u002F ambient skill_latest and refresh if stale.\"\nrequirements:\n  mcps:\n    - centricmem\nlicense: MIT\ncompatibility: \"Requires host MCP at https:\u002F\u002Fmem.centricmem.com\u002Fmcp. Floors use the pre-1.0 0.21.x numbering; every 1.0.x satisfies them all. librarian >=0.21.50: a card is summary + key points (a keep stub is not a card); a folder is cm_keep card:false then cm_import items; archive zip is optional; share: shelf ids; cm_move takes whole paths (never lessons.md or #); cm_delete {file,shelf} a card, heading= for one ##; cm_rename {file,shelf,title}; omitting the cm_library id lists shelves; skipExisting and copy-aside FTS skip. >=0.21.51 Codex OAuth. >=0.21.55 applicant HTTPS callbacks. >=0.21.56 OAuth credential picker and the ChatGPT Approve hop. >=1.0.6 host-ops detail (cm_ops).\"\nmetadata:\n  version: \"1.0.50\"\n  compatible_cli: \">=1.0.38\"\n  changelog_url: https:\u002F\u002Fgithub.com\u002Fzeyu-j\u002Fcentricmem-skill\u002Fblob\u002Fmain\u002FCHANGELOG.md\n---\n\n# CentricMem Agent Skill\n\n**Names:** product\u002FCLI = `centricmem`; GitHub install package = `centricmem-skill`; this Agent Skill folder = `centricmem-agent` (keep that folder name — it is not a second product). Canonical copy: `github.com\u002Fzeyu-j\u002Fcentricmem-skill` → `skills\u002Fcentricmem-agent\u002F` — copies under `~\u002F.cursor`, `~\u002F.agents`, `~\u002F.codex`, plugin trees are synced installs; newest version wins and `centricmem doctor` lists every copy it finds (STALE marks older ones).\nHandover (when \u002F loop). Schemas win. Branches: [REFERENCE.md](REFERENCE.md).\n**Library** → **Shelf** → **Card** (summary + key points). No Inbox \u002F `unclassified`. One credential = grants. Never paste credentials in chat (REFERENCE **Bearer: where plaintext is OK vs not** — claim may write a private local MCP file; docs\u002Fplans use `${VAR}` or URL-only). Hooks and wrappers resolve the credential from process env → nearest `.env` up from cwd → `~\u002F.centricmem\u002F.env`; hook broken but MCP fine → `CENTRICMEM_TOKEN=` in `.env`, never in a prompt.\n**Style** of a card (voice, length, evidence density) is yours + this agent's — not a CentricMem house voice. Structure only: REFERENCE **Card contract**.\n\n## Quick path\n`cm_health` → `cm_ambient` **with `shelf=`** → `cm_note` \u002F `cm_log_decision` with the same `shelf=`. The rest of this file is for when those three are blocked.\n**Health:** `library:null` with valid `auth` \u002F `grants` means connected with no shelf selected, not \"no shelves exist.\" Call `cm_ambient` with `cwd=` or a named `shelf=` and choose from `libraries=`.\n**Shelf:** `suggested_shelf=` is a cwd heuristic, not authority. If the session is not about that shelf, use the one whose charter matches and say which you chose.\n**Wrap-up:** decision unlogged? friction unlogged? stale card cited (>90d, volatile fact)? If all three are no, stop.\n\n## Do not (full list: REFERENCE)\n\n- Don't wait for \"log this\" \u002F close \u002F wrap up to file a finished chunk — sweep before you yield (§4)\n- Don't write `unclassified` — pick or create a named shelf; don't treat this git checkout as the memory disk\n- Don't put secrets \u002F credentials in cards, and never ask the human to paste a credential or transcript in chat\n- Never echo a credential value — fingerprint to confirm (`9352... len=64 fp=5E4ED29C`), never dump `mcp.json` \u002F `config.toml` \u002F `*.env` whole, never redact by length threshold. A credential in the transcript → say so that turn and rotate it. (REFERENCE **Never echo a credential**)\n- Don't stop after a title-only card — every card needs summary + key points\n- No `cm_*` tool in your tool list = the MCP is not attached to this session. Do not simulate ambient or a sweep — skip memory work, and tell the human once at wrap-up that CentricMem was unreachable (host needs the MCP registered, then restarted)\n- Don't confuse a dead session with a credential problem — transport failure → re-handshake path (§0); refusal (401\u002F403) → rotation. Never call a credential unrotated from the store alone: compare card, env, and whether this host is on OAuth.\n\n## When to Use\n\nProject work — session start or resume, and again at each deliverable\u002Fphase close (a light ambient, not a full restart); search; file Non-Micro; connect \u002F refresh Skill. Pure Q&A chat that ships nothing: skip. Recipes: REFERENCE.\n**Daily:** §2 → work → §4 before yield. Connect: REFERENCE. Empty shelf once: REFERENCE Existing memory.\n\n## 0. Reach\n\n1. MCP only `https:\u002F\u002Fmem.centricmem.com\u002Fmcp`: `cm_health` `cm_ambient` `cm_doctor` `cm_search` `cm_show` `cm_note` `cm_log_decision` `cm_done` `cm_keep` `cm_library` `cm_copy` `cm_move` `cm_delete` `cm_rename` `cm_import` `cm_index` `cm_ops`. No curl \u002F CLI-write \u002F bootstrap.\n2. Missing tools or short grants → **connect this turn**. REFERENCE **Reach**. Remote\u002Fcloud is **not** \"paste the credential only\": OAuth if this agent receives the browser login; paste Bearer only when it cannot. Listed OAuth hosts only: an unlisted callback shape leaves the host stuck on \"connecting\", so prefer `\u002Fconnect?device=` and send that callback shape to zeyu@poppyg.com (REFERENCE \"Approved, but the agent stays connecting\").\n   Tools that vanish mid-session or a load-time `discover` failure = the MCP **session** died, not the credential: probe `centricmem doctor` (its own request), re-handshake (goose: disable\u002Fenable centricmem or restart host), retry once. While the session is dead, nothing here is loaded either.\n3. `cm_show` = card on the **hosted** shelf (not a local junction file). `grants=[\"*\"]` = full access. Extra `mode=read` = view-only (search\u002Fshow only). A `share:` shelf can be read-only — owner can share read-only; re-share with a different level to change it (writes then 403). `ACADEMIC.md` beside this → follow it. Upsert corpus paths: REFERENCE **Import shapes** (`bundle.imported` + `rel_path`, never bare `items=`). Host-specific install, refresh or failure detail: `cm_ops` — read it when a host detail actually blocks you (librarian >=1.0.6; served on request, not shipped in every copy).\n4. **Writes — `items=` and `bundle` are different contracts.** `cm_note` \u002F `cm_log_decision` \u002F `cm_done` file cards; `cm_import` with `items=` (or `package.items`, or a zip) adds **new cards under `imported\u002Fkept\u002F`** and nothing else; `cm_import` with **`bundle: {version: 1, …}`** also writes library files — `context` → **`active_context.md`**, `rules` → **`AGENTS.md`**, plus `decisions` \u002F `lessons` \u002F `sessions` \u002F `imported` \u002F `research`. Unknown top-level slot → **`400 BAD_IMPORT_BUNDLE`** (names slot + allowed list). Slot table: REFERENCE **Writes**.\n\n## 1. Classify\n\nSkip (Micro): typo, one-liner, no durable fact. Sweep (Non-Micro): implement \u002F ops \u002F research \u002F architecture \u002F decision — ≥2 real turns **or** one turn that shipped \u002F decided.\n\n## 2. Start\n\nPrefer `cm_ambient` with **`shelf=`** (or `library=`) first — it already carries grants \u002F mode \u002F skill_latest \u002F Recent \u002F Session. That shapes **Recent decisions \u002F Session tail \u002F Curate**, not only later write routing. When you know this session's aim pass **`task=`** (3–8 words) — it drives the `Cued:` \u002F `Warnings:` lanes. Ambient with only an unmatched `cwd` and no `shelf=` often shows empty Recent\u002FSession — that is not \"the shelf is empty.\" When ambient\u002Fdoctor returns **`suggested_shelf=`** (cwd basename matches a shelf id), **use that id on every write this session** — do not wait for the human to name it. Optional durable bind (full-access `*` credential): `cm_library {id, sourceDir: \u003Cabsolute cwd>}` so later ambient cwd-matches. When `library=(none)` and no suggestion: pick from `libraries=` or mint (`cm_library`), same turn as the first Non-Micro write. `cm_health` only when tools are missing, connect is needed, or ambient is unhealthy \u002F unreachable. Unreachable: say once — no bootstrap. Named shelf for writes.\n\n**Host parity before the first card.** `centricmem doctor` names this host and what it can do: `parity` carry on; `armed-off` say the one command that fixes it and do not claim the hook fired; `stale` = local copy older than the CLI; `ceiling` \u002F `unprobed` are normal. Only the CLI sees this — `cm_doctor` cannot read host config. An inject surface that exists but is not live = a session that will not remember itself — fix before filing, not after.\n\n**Resume = new session.** Compress, checkpoint restore, or new chat on same task → ambient first (health only if needed).\n\nOnce after ambient (or health): refresh if `skill_latest` newer. **Load path ≠ refresh path** — read the version of the copy **this host loads**, not a sibling skills dir (plugin-tree hosts: `\u003Chost-plugins-dir>\u002Fcentricmem-skill\u002Fpackage.json`; npx `-g` \u002F `~\u002F.agents` does not update that tree). Install morphologies: REFERENCE Skill refresh — adapt, never invent a fourth shared hub. After a disk refresh: **re-read this SKILL.md and Do not** before the next write — installing newer ≠ acting on it. Name the credential once (`mode=read` → view-only). Don't log → skip sweep.\n\n## 3. During\n\n**chunk** = accepted unit (verified fragment, locked decision, evidenced lesson, delivery). Any in this reply → same-turn sweep. Not the whole task.\n**yield** = any reply end (incl. progress).\n\nSearch\u002Fshow\u002Fambient while working; hold half-finished. **Chunk done → sweep before you yield.** Cards need summary + key points — keep stubs ≠ cards (REFERENCE Writes). Voice\u002Fdensity: theirs + yours (REFERENCE **Card contract**), not a CentricMem template.\n\n## 4. Sweep — single source\n\nNo wrap-up wait; Agent close does not run this; Don't log \u002F Skill done → skip. **Gate:** an unfiled Non-Micro chunk in this reply and zero `cm_*` writes for it, no Don't log → **sweep before you yield**.\n\n| File now | File at wrap-up |\n|---|---|\n| Locked decision; method-changing lesson; finished chunk | Version-tied stats; unverified conclusions |\n| Shipped deliverable (design, artifact, doc, deploy) — tag it `deliverable`; durable user facts (hardware, accounts, preferences) | Session stats |\n\nSame `lessons.md` title → 409; rewrite = `cm_delete` then write (REFERENCE). Early wrong write costs more. Writes carry **`task=` \u002F `outcome=`** when you have them — `outcome=friction` when the work hit a pit (lands in next session's `Warnings:` lane); `task=` defaults to the last session heading.\n\nMCP down: hold **CentricMem deferred sweep**; connect (REFERENCE); file after health. Say so once, keep working without memory, and never fake a card, pick a local hub, or treat a leftover copy of the hub as the shelf.\n\n`shelf=` \u002F `library=` (REFERENCE **Shelf routing**):\n1. Transcript plaintext exists → Shell-read → `cm_keep` (no paste \u002F `path=`). Else skip keep.\n2. Same batch: `cm_note` \u002F `cm_log_decision` \u002F `cm_done` (+ `attach`) as needed.\n3. Copy\u002Fmove\u002Fdelete\u002Frename leftovers: REFERENCE Writes.\n","# CentricMem Agent Skill\n\n**Names:** product\u002FCLI = `centricmem`; GitHub install package = `centricmem-skill`; this Agent Skill folder = `centricmem-agent` (keep that folder name — it is not a second product). Canonical copy: `github.com\u002Fzeyu-j\u002Fcentricmem-skill` → `skills\u002Fcentricmem-agent\u002F` — copies under `~\u002F.cursor`, `~\u002F.agents`, `~\u002F.codex`, plugin trees are synced installs; newest version wins and `centricmem doctor` lists every copy it finds (STALE marks older ones).\nHandover (when \u002F loop). Schemas win. Branches: [REFERENCE.md](REFERENCE.md).\n**Library** → **Shelf** → **Card** (summary + key points). No Inbox \u002F `unclassified`. One credential = grants. Never paste credentials in chat (REFERENCE **Bearer: where plaintext is OK vs not** — claim may write a private local MCP file; docs\u002Fplans use `${VAR}` or URL-only). Hooks and wrappers resolve the credential from process env → nearest `.env` up from cwd → `~\u002F.centricmem\u002F.env`; hook broken but MCP fine → `CENTRICMEM_TOKEN=` in `.env`, never in a prompt.\n**Style** of a card (voice, length, evidence density) is yours + this agent's — not a CentricMem house voice. Structure only: REFERENCE **Card contract**.\n\n## Quick path\n`cm_health` → `cm_ambient` **with `shelf=`** → `cm_note` \u002F `cm_log_decision` with the same `shelf=`. The rest of this file is for when those three are blocked.\n**Health:** `library:null` with valid `auth` \u002F `grants` means connected with no shelf selected, not \"no shelves exist.\" Call `cm_ambient` with `cwd=` or a named `shelf=` and choose from `libraries=`.\n**Shelf:** `suggested_shelf=` is a cwd heuristic, not authority. If the session is not about that shelf, use the one whose charter matches and say which you chose.\n**Wrap-up:** decision unlogged? friction unlogged? stale card cited (>90d, volatile fact)? If all three are no, stop.\n\n## Do not (full list: REFERENCE)\n\n- Don't wait for \"log this\" \u002F close \u002F wrap up to file a finished chunk — sweep before you yield (§4)\n- Don't write `unclassified` — pick or create a named shelf; don't treat this git checkout as the memory disk\n- Don't put secrets \u002F credentials in cards, and never ask the human to paste a credential or transcript in chat\n- Never echo a credential value — fingerprint to confirm (`9352... len=64 fp=5E4ED29C`), never dump `mcp.json` \u002F `config.toml` \u002F `*.env` whole, never redact by length threshold. A credential in the transcript → say so that turn and rotate it. (REFERENCE **Never echo a credential**)\n- Don't stop after a title-only card — every card needs summary + key points\n- No `cm_*` tool in your tool list = the MCP is not attached to this session. Do not simulate ambient or a sweep — skip memory work, and tell the human once at wrap-up that CentricMem was unreachable (host needs the MCP registered, then restarted)\n- Don't confuse a dead session with a credential problem — transport failure → re-handshake path (§0); refusal (401\u002F403) → rotation. Never call a credential unrotated from the store alone: compare card, env, and whether this host is on OAuth.\n\n## When to Use\n\nProject work — session start or resume, and again at each deliverable\u002Fphase close (a light ambient, not a full restart); search; file Non-Micro; connect \u002F refresh Skill. Pure Q&A chat that ships nothing: skip. Recipes: REFERENCE.\n**Daily:** §2 → work → §4 before yield. Connect: REFERENCE. Empty shelf once: REFERENCE Existing memory.\n\n## 0. Reach\n\n1. MCP only `https:\u002F\u002Fmem.centricmem.com\u002Fmcp`: `cm_health` `cm_ambient` `cm_doctor` `cm_search` `cm_show` `cm_note` `cm_log_decision` `cm_done` `cm_keep` `cm_library` `cm_copy` `cm_move` `cm_delete` `cm_rename` `cm_import` `cm_index` `cm_ops`. No curl \u002F CLI-write \u002F bootstrap.\n2. Missing tools or short grants → **connect this turn**. REFERENCE **Reach**. Remote\u002Fcloud is **not** \"paste the credential only\": OAuth if this agent receives the browser login; paste Bearer only when it cannot. Listed OAuth hosts only: an unlisted callback shape leaves the host stuck on \"connecting\", so prefer `\u002Fconnect?device=` and send that callback shape to zeyu@poppyg.com (REFERENCE \"Approved, but the agent stays connecting\").\n   Tools that vanish mid-session or a load-time `discover` failure = the MCP **session** died, not the credential: probe `centricmem doctor` (its own request), re-handshake (goose: disable\u002Fenable centricmem or restart host), retry once. While the session is dead, nothing here is loaded either.\n3. `cm_show` = card on the **hosted** shelf (not a local junction file). `grants=[\"*\"]` = full access. Extra `mode=read` = view-only (search\u002Fshow only). A `share:` shelf can be read-only — owner can share read-only; re-share with a different level to change it (writes then 403). `ACADEMIC.md` beside this → follow it. Upsert corpus paths: REFERENCE **Import shapes** (`bundle.imported` + `rel_path`, never bare `items=`). Host-specific install, refresh or failure detail: `cm_ops` — read it when a host detail actually blocks you (librarian >=1.0.6; served on request, not shipped in every copy).\n4. **Writes — `items=` and `bundle` are different contracts.** `cm_note` \u002F `cm_log_decision` \u002F `cm_done` file cards; `cm_import` with `items=` (or `package.items`, or a zip) adds **new cards under `imported\u002Fkept\u002F`** and nothing else; `cm_import` with **`bundle: {version: 1, …}`** also writes library files — `context` → **`active_context.md`**, `rules` → **`AGENTS.md`**, plus `decisions` \u002F `lessons` \u002F `sessions` \u002F `imported` \u002F `research`. Unknown top-level slot → **`400 BAD_IMPORT_BUNDLE`** (names slot + allowed list). Slot table: REFERENCE **Writes**.\n\n## 1. Classify\n\nSkip (Micro): typo, one-liner, no durable fact. Sweep (Non-Micro): implement \u002F ops \u002F research \u002F architecture \u002F decision — ≥2 real turns **or** one turn that shipped \u002F decided.\n\n## 2. Start\n\nPrefer `cm_ambient` with **`shelf=`** (or `library=`) first — it already carries grants \u002F mode \u002F skill_latest \u002F Recent \u002F Session. That shapes **Recent decisions \u002F Session tail \u002F Curate**, not only later write routing. When you know this session's aim pass **`task=`** (3–8 words) — it drives the `Cued:` \u002F `Warnings:` lanes. Ambient with only an unmatched `cwd` and no `shelf=` often shows empty Recent\u002FSession — that is not \"the shelf is empty.\" When ambient\u002Fdoctor returns **`suggested_shelf=`** (cwd basename matches a shelf id), **use that id on every write this session** — do not wait for the human to name it. Optional durable bind (full-access `*` credential): `cm_library {id, sourceDir: \u003Cabsolute cwd>}` so later ambient cwd-matches. When `library=(none)` and no suggestion: pick from `libraries=` or mint (`cm_library`), same turn as the first Non-Micro write. `cm_health` only when tools are missing, connect is needed, or ambient is unhealthy \u002F unreachable. Unreachable: say once — no bootstrap. Named shelf for writes.\n\n**Host parity before the first card.** `centricmem doctor` names this host and what it can do: `parity` carry on; `armed-off` say the one command that fixes it and do not claim the hook fired; `stale` = local copy older than the CLI; `ceiling` \u002F `unprobed` are normal. Only the CLI sees this — `cm_doctor` cannot read host config. An inject surface that exists but is not live = a session that will not remember itself — fix before filing, not after.\n\n**Resume = new session.** Compress, checkpoint restore, or new chat on same task → ambient first (health only if needed).\n\nOnce after ambient (or health): refresh if `skill_latest` newer. **Load path ≠ refresh path** — read the version of the copy **this host loads**, not a sibling skills dir (plugin-tree hosts: `\u003Chost-plugins-dir>\u002Fcentricmem-skill\u002Fpackage.json`; npx `-g` \u002F `~\u002F.agents` does not update that tree). Install morphologies: REFERENCE Skill refresh — adapt, never invent a fourth shared hub. After a disk refresh: **re-read this SKILL.md and Do not** before the next write — installing newer ≠ acting on it. Name the credential once (`mode=read` → view-only). Don't log → skip sweep.\n\n## 3. During\n\n**chunk** = accepted unit (verified fragment, locked decision, evidenced lesson, delivery). Any in this reply → same-turn sweep. Not the whole task.\n**yield** = any reply end (incl. progress).\n\nSearch\u002Fshow\u002Fambient while working; hold half-finished. **Chunk done → sweep before you yield.** Cards need summary + key points — keep stubs ≠ cards (REFERENCE Writes). Voice\u002Fdensity: theirs + yours (REFERENCE **Card contract**), not a CentricMem template.\n\n## 4. Sweep — single source\n\nNo wrap-up wait; Agent close does not run this; Don't log \u002F Skill done → skip. **Gate:** an unfiled Non-Micro chunk in this reply and zero `cm_*` writes for it, no Don't log → **sweep before you yield**.\n\n| File now | File at wrap-up |\n|---|---|\n| Locked decision; method-changing lesson; finished chunk | Version-tied stats; unverified conclusions |\n| Shipped deliverable (design, artifact, doc, deploy) — tag it `deliverable`; durable user facts (hardware, accounts, preferences) | Session stats |\n\nSame `lessons.md` title → 409; rewrite = `cm_delete` then write (REFERENCE). Early wrong write costs more. Writes carry **`task=` \u002F `outcome=`** when you have them — `outcome=friction` when the work hit a pit (lands in next session's `Warnings:` lane); `task=` defaults to the last session heading.\n\nMCP down: hold **CentricMem deferred sweep**; connect (REFERENCE); file after health. Say so once, keep working without memory, and never fake a card, pick a local hub, or treat a leftover copy of the hub as the shelf.\n\n`shelf=` \u002F `library=` (REFERENCE **Shelf routing**):\n1. Transcript plaintext exists → Shell-read → `cm_keep` (no paste \u002F `path=`). Else skip keep.\n2. Same batch: `cm_note` \u002F `cm_log_decision` \u002F `cm_done` (+ `attach`) as needed.\n3. Copy\u002Fmove\u002Fdelete\u002Frename leftovers: REFERENCE Writes.\n",{"name":5,"license":15,"metadata":49,"description":7,"requirements":53,"compatibility":56},{"version":50,"changelog_url":51,"compatible_cli":52},"1.0.50","https:\u002F\u002Fgithub.com\u002Fzeyu-j\u002Fcentricmem-skill\u002Fblob\u002Fmain\u002FCHANGELOG.md",">=1.0.38",{"mcps":54},[55],"centricmem","Requires host MCP at https:\u002F\u002Fmem.centricmem.com\u002Fmcp. Floors use the pre-1.0 0.21.x numbering; every 1.0.x satisfies them all. librarian >=0.21.50: a card is summary + key points (a keep stub is not a card); a folder is cm_keep card:false then cm_import items; archive zip is optional; share: shelf ids; cm_move takes whole paths (never lessons.md or #); cm_delete {file,shelf} a card, heading= for one ##; cm_rename {file,shelf,title}; omitting the cm_library id lists shelves; skipExisting and copy-aside FTS skip. >=0.21.51 Codex OAuth. >=0.21.55 applicant HTTPS callbacks. >=0.21.56 OAuth credential picker and the ChatGPT Approve hop. >=1.0.6 host-ops detail (cm_ops).","cebc3dce495d7eb80d3b1d5841f877a4a92e162d","plugins\u002Fzeyu-j\u002Fcentricmem-skill\u002Fskills\u002Fcentricmem-agent",491,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins","https:\u002F\u002Fhol.org\u002Fplugins\u002Fbest-codex-plugins","https:\u002F\u002Fgithub.com\u002Fhashgraph-online","https:\u002F\u002Fhol.org","Open-source standards and developer tools for interoperable AI agents: discovery, identity, communication, payments, privacy and security.","2026-11-14 14:06:13",{"source":8,"skillName":5,"commands":67,"prompt":77,"zipAvailable":78},[68,71,74],{"tool":69,"command":70},"npx","npx skills add hashgraph-online\u002Fawesome-codex-plugins --skill centricmem-agent",{"tool":72,"command":73},"bunx","bunx skills add hashgraph-online\u002Fawesome-codex-plugins --skill centricmem-agent",{"tool":75,"command":76},"pnpm","pnpm dlx skills add hashgraph-online\u002Fawesome-codex-plugins --skill centricmem-agent","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fzeyu-j\u002Fcentricmem-skill\u002Fskills\u002Fcentricmem-agent\u002FSKILL.md",true,[80,86],{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"agents\u002Fopenai.yaml","REFERENCE","参考文档",591,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fzeyu-j\u002Fcentricmem-skill\u002Fskills\u002Fcentricmem-agent\u002Fagents\u002Fopenai.yaml",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"REFERENCE.md",57023,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fzeyu-j\u002Fcentricmem-skill\u002Fskills\u002Fcentricmem-agent\u002FREFERENCE.md",[91,100,107,114,138,162],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":99},"01M746ZWACVKMZ1BJXJZHYJSSX","migrate-to-e2e","Moves an existing Playwright, Cypress, Selenium, Appium, Detox, Maestro, or TesterArmy suite to e2e one slice at a time, with the old suite running beside the new one until each ported test is proven. Keeps a MIGRATION.md progress file so any later session resumes where the last stopped. Optionally plants a defect to show both suites catch it. Use for \u002Fmigrate-to-e2e, \"migrate our tests to e2e\", \"port these Maestro flows\", \"move our TesterArmy tests\", or when a project has an e2e config and an older suite still running.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftester-army\u002Fe2e\u002Fskills\u002Fmigrate-to-e2e\u002FSKILL.md",[],[],"2026-11-11 15:11:14",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":99},"01M746ZPTAX1Q0FBKAB1CYND7E","e2e","Writes, runs, and debugs end-to-end tests for web and mobile apps with e2e, the agentic test runner, which mixes agent.act goals with exact locator assertions on a Playwright browser or an iOS or Android device. Also drives a project's running app live over the e2e MCP server to look at a screen, check a UI change, take a screenshot or record a video, and try a locator; and runs bug bashes, parallel e2e explore runs with each bug proven by a repro test. Use when a project depends on e2e or has an e2e.config.ts, when asked for end-to-end, browser, mobile, or agentic UI tests, to check a change in the running app, to QA or bug bash an app or branch, or when an e2e run fails.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftester-army\u002Fe2e\u002Fskills\u002Fe2e\u002FSKILL.md",[],[],{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":99},"01M746ZJN784HVHMDP9MQGCSGG","create-verification-skill","Generate a project-local verify-\u003Capp> skill on top of e2e, so any coding agent can launch the app, check it is worth driving, exercise a feature the way a user does, keep evidence, and bug bash it. Writes the skill, a feature map with one explore charter per feature, and proves it once. Use for \u002Fcreate-verification-skill, \"make a verification skill for this repo\", or when a project has no scripted way to prove UI behavior.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftester-army\u002Fe2e\u002Fskills\u002Fcreate-verification-skill\u002FSKILL.md",[],[],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":44},"01M716A6ETNB9B1SQ3GXZC75VR","deja-search","deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-search\u002FSKILL.md",[],[25,121,42,122,123,39,124,125,126,127,128,129,130,131,132,133,134,135,136,137],"deja search","error","ready","re","decide","fix","design","debugging","when","you","done","reviewer","io","change","cli","merge","past",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":44},"01M716A3J2W5SENSE9VGMXB375","deja-reflect","End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-reflect\u002FSKILL.md",[],[145,146,147,133,148,149,150,151,152,153,154,155,156,157,39,158,38,159,160,161],"deja reflect","reflect","review","with","record","github","next","https","node","Rules","decisions","brew","remember","project rules","session","end","reflection",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":175,"publishedAt":44},"01M715T3RR4BAYSR57HPPTJ0PF","revid","Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftmakersas\u002Frevid-skills\u002Fskills\u002Frevid\u002FSKILL.md",[168,171,172],{"categoryNo":169,"categoryName":170,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":173,"categoryName":174,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[164,176,177,178,179,180,181,38,182,124,183,184,31,185,129,186,187,188,189,190],"URL","Video","short-form","standalone","PDF","viral","tiktok","short","social","song","image","mcp server","schedule","api","publish"]