ソース情報
- リポジトリ
- manti-by/demetra
- ソースの最終更新活動
- 2026年8月20日 11:52
- 検出された SKILL.md の言語
- 英語
- スター
- 5
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/manti-by/demetra --skill archive-old-wiki-pagesコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SKILL.md を表示中
Generate two-word app release names based on space phenomena. Use when naming app versions, release codenames, milestones, or build labels with a consistent cosmic theme.
Revalidate AGENTS.md against the current codebase, wiki pages,
Cross-check wiki pages for discrepancies, resolve what you can,
| name | Archive old wiki pages |
| description | Archive old wiki pages (default > 3 months) by extracting any |
You are the OpenWiki Archive Agent. Read wiki/README.md and wiki/TEMPLATE.md
for conventions, then work through every page under wiki/pages/.
Pages are session-scoped — once a session is old enough that the detailed
narrative is no longer the freshest source of truth, distil whatever is still
useful (decisions, conventions, stable patterns, external refs) into the most
relevant current page, then retire the original to wiki/archive/ so the
active wiki/pages/ stays focused on recent sessions.
The default age threshold is 3 months (compare each page's date: against
date +%F today). If the user invokes this command with an explicit age
(e.g. /wiki-archive 6mo), respect that override — accept any duration the
user names (3mo, 90d, 6 months, 1y, …).
.md file in wiki/pages/. Parse the
frontmatter of each — you need date (the session date), status,
type, services, tickets, tags, and related at minimum.date is older than the
threshold. Pages without a parseable date are NOT candidates — log them
in the report and skip (do not guess; bad data must surface, not be
silently archived).status: open or status: in-progress
are NOT candidates — they are still being actively worked on, and
archiving them would hide live state. Skip them and note them in the
report under "needs human review".## Follow-ups
section with any non-trivial entry (anything other than - None), skip
the page. Live follow-ups must not be silently retired — leave the page
in wiki/pages/ and surface it in the report under "needs human review".The three skip categories in this step are reported separately — never lump them together.
For each remaining candidate:
Read it in full. Frontmatter and complete body. Note the TL;DR, the
page's services / tickets / tags, and the topic (from the body, not
just the frontmatter tags).
Identify the durable content. Carry forward only:
Do NOT carry forward:
session_id cross-references) — these age out by design.Find the target page. Search wiki/pages/ for the page that
currently owns the same topic — the most recent page on the same
subsystem / service / tag set, with overlapping services or tags
in frontmatter, or an explicit related: link to the candidate. Pick
a single best target when one clearly dominates; otherwise pick a small
set (2–3) of equally good targets and merge into all of them.
If there is no good target (the candidate is a true one-off, or its useful info is already fully covered by a newer page), record the candidate in the report as "no target — archive without merge" and proceed directly to step 5 (no merge, just move).
For each (candidate, target) pair:
Insert into the target. Add a new body section to the target page,
inserted immediately before the target's ## Follow-ups section,
with the heading:
## Source — [[<candidate-filename-without-.md>]]
Under that heading, copy the useful info distilled in step 2. Quote short snippets verbatim; paraphrase long passages. Whenever you carry a decision or convention forward, attribute it inline: "Originally decided in [[<candidate-filename-without-.md>]] on YYYY-MM-DD" — the date lets the reader judge the source's recency.
Update target frontmatter.
related: list
(and tickets:, tags:, services: — union, deduped, no
reordering).date, session_id, title, or
status.Update the candidate's related: list (now). For every other
page in wiki/pages/ that currently lists the candidate in its
related: frontmatter (the target, plus any sibling you noticed in
step 2.3), rewrite the entry to point at the target. Do this now
— step 5 will delete the candidate file and dangling references must
be gone by then.
Body [[...]] cross-links. For each surviving page in
wiki/pages/ that has a body [[candidate-filename-without-.md]]
link, rewrite it to [[target-filename-without-.md]]. Mirror the
change in that page's related: frontmatter so the two stay in sync.
If the candidate was archived without merge, drop the link and the
related: entry instead.
Update wiki/QUESTIONS.md references. Scan wiki/QUESTIONS.md
for **Pages:** fields listing the candidate. For a candidate that
was merged, rewrite the reference to the merge target. For a
candidate archived without merge, rewrite it to a resolvable archive
reference (wiki/archive/<candidate-filename-without-.md>) so the
question keeps pointing at the content. Do this now — alongside the
related-list and body-link updates above — so no dangling question
reference survives step 5.
Process each candidate independently — a single candidate may merge into
multiple targets, and a single target may absorb multiple candidates.
Never chain candidates: every merge must land on a page that will
remain in wiki/pages/ (i.e. is not itself a candidate in this run).
If you find yourself wanting to merge A into B and B is also a candidate,
stop — promote B's content into a third (non-candidate) page first, or
defer A to the next run.
mkdir -p wiki/archive.wiki/pages/<name>.md to
wiki/archive/<name>.md using git mv (so git tracks the rename
rather than a delete + add). If the destination already exists
(collision with a previous archive), append a -2, -3, … suffix
until the path is free; record the rename in the report.wiki/.openwiki-sessions.json. For each archived candidate,
if the session-id → filename mapping points at the candidate, redirect
it to the target page (or remove the entry if archived without merge).
Leave any other-session-id mapping that happens to point at the
candidate alone — wiki-update cleans those on its next write.Reconcile wiki/INDEX.md:
## Pages: remove every archived page's entry. Do not reorder the
rest — keep newest-first order intact. If a target's title or summary
materially changed (rare — only when a merge actually changed what the
page is about), note it for the consistency agent to revisit on its
next run.## By topic: drop archived pages from their clusters. If a cluster
loses its last page, remove the cluster heading entirely.## Archive section — the consistency agent
maintains the archive catalog, not this command. wiki/archive/
existing on disk is the source of truth.Print a short summary at the end:
End with a one-line verdict: N archived, M skipped, K needs-human-review.
Stamp a "moved to" note on the candidate (only when a merge happened). Just below the candidate's H1, prepend:
> **Archived on YYYY-MM-DD.** Useful info merged into
> [[<target-1-filename-without-.md>]] and
> [[<target-2-filename-without-.md>]]. See wiki/archive/ for the
> original.
List every merge target — one [[...]] link per target, joined
with "and" (a candidate may merge into 2–3 targets, step 2.3). Use
today's date. Skip this note if the candidate was archived without
merge (step 2.3).