用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/FerroxLabs/ferrox-factory --skill ferrox-mempalace-capture命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Something was built and you want tests covering what it promised to do
A step involves building an AI system and you want its design and evals pinned down first
You want issues found, classified, fixed, tested and committed without steering each one
基于 SOC 职业分类
正在显示 SKILL.md
| name | ferrox-mempalace-capture |
| description | File a finished artifact into MemPalace and mirror its decisions into the temporal graph |
| argument-hint | [CONTEXT.md|PLAN.md|SUMMARY.md] |
| allowed-tools | ["Read","Bash"] |
STOP -- DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by the command system. Using the Read tool on this file wastes tokens. Begin executing Step 0 immediately.
Before ANY tool calls, display this banner:
Ferrox > MEMPALACE CAPTURE
Then proceed to Step 1.
Check whether the MemPalace capability is enabled by reading .planning/config.json directly with the Read tool.
.planning/config.json with the Read tool.config.mempalace is absent, or config.mempalace.enabled !== true, or config.mempalace.capture_artifacts !== true: display the disabled message and STOP.Disabled message:
Ferrox > MEMPALACE CAPTURE
MemPalace capture is disabled (mempalace.enabled / mempalace.capture_artifacts).
Nothing was filed; the loop proceeds normally.
This step is onError: skip at discuss:post / plan:post / verify:post -- capture never fails a phase.
$ARGUMENTS. If absent, infer from the loop point: discuss:post → CONTEXT.md, plan:post → PLAN.md, verify:post → SUMMARY.md.CONTEXT.md → decisionsPLAN.md → planningSUMMARY.md → milestones
(Confirmed problem→fix pairs go to problems — see the capture-problems fragment used at execute:wave:post.)config.mempalace.wing if non-empty, else config.project_code, else the repo directory name.config.mempalace.memory_mode. Prefer MCP (mempalace_*) when your MemPalace MCP server is registered and your runtime permits those tools; otherwise use the mempalace CLI (covered by this skill's Bash allow-tool), as in mempalace-recall.On any error or timeout, stop and let the phase continue -- capture is best-effort.
Dedup first. Interactive: mempalace_check_duplicate on the artifact's deterministic drawer id. Headless: rely on mempalace mine's content-hash idempotency.
Add the drawer (verbatim). File the exact artifact text into room: <room> of wing: <wing> with provenance (source_file, phase id). Interactive: mempalace_add_drawer. Headless: see below.
mempalace mine has no --room flag — only search accepts --room (CLI reference: https://mempalaceofficial.com/reference/cli.html). Room assignment is driven by detect_room() matching folder-path segments against the rooms: list in mempalace.yaml (mining guide: https://mempalaceofficial.com/guide/mining.html — "Rooms are auto-detected from your folder structure"; config reference: https://mempalaceofficial.com/guide/configuration.html). Stage the artifact under a room-named folder so detect_room() assigns it correctly:
STAGE=".planning/.mempalace-stage"
# One-time: declare the Ferrox room taxonomy so detect_room() recognizes these folders
mkdir -p "$STAGE"
[ -f "$STAGE/mempalace.yaml" ] || cat > "$STAGE/mempalace.yaml" <<'YAML'
rooms:
- decisions
- planning
- milestones
- problems
- general
YAML
# Suppress MemPalace cache artifacts written into the scanned tree
[ -f "$STAGE/.gitignore" ] || echo "mempalace_embedder.json" > "$STAGE/.gitignore"
# Stage under <room>/<phase-id>/<basename> — stable path so mine's content-hash
ROOM_DIR=
-p
mempalace mine --wing <wing>
Print a one-line summary: Filed <artifact> → <wing>/<room> (<n> KG facts) or MemPalace unavailable — capture skipped.
onError: skip.sync --apply) is the curator agent's job at ship:post, wing-scoped only.Mirror KG facts when config.mempalace.mirror_kg is true: extract decision/delivery facts and mempalace_kg_add them with valid_from = the phase date (e.g. (<project>, decided, <decision>) from CONTEXT; (<phase>, delivered, <capability>) from SUMMARY). Under augment these are an additive mirror of Ferrox's native .planning/graphs/. Under kg_backend/replace the palace KG is the authoritative fact store — Ferrox still produces .planning/graphs/ through its normal graphify, so an unreachable palace never loses a fact. Write each decision/surprise into that native .planning/graphs/ KG via ferrox-tools query memory.capture --subject <s> --predicate decided --object <decision> --valid-from <ms> --recorded-at <ms>; when a new decision contradicts a prior one add --contradicts, which supersedes the prior via invalidate (sets its valid_to) and NEVER deletes it — the old fact is retained in history.
Re-running a phase MUST NOT create duplicate drawers (deterministic ids + check_duplicate).