Loading...
Loading...
Dọn + validate kho nháp và render (wiki/sources/draft/*.md + llmwiki/html/*.html) khi phình to — ex docs-curate (đổi tên 2026-09-09 vì tên cũ không ai gọi). Ba tầng — PROMOTE bản chất quý lên wiki ADR/concept, ARCHIVE nháp đã xong (status done/implemented hoặc task done) vào archive/<nhóm>/ bằng git mv (TRACKED, không xoá, không giết draft còn proposed), KEEP canonical — rồi RE-INDEX. Gọi tay bất cứ lúc nào, hoặc khi đầu phiên báo "[tidy] draft/ có N file (> 10)". Trigger — "tidy", "dọn nháp", "dọn docs", "draft quá nhiều", "archive draft", "quét nháp lỗi thời", "/tidy".
npx skill4agent add rheinmir/setup tidywiki/sources/draft/*.mdllmwiki/html/*.html🧹 [tidy] draft/ có N file .md tầng gốc (> ngưỡng 10)session_start.py/tidydraft/llmwiki/html//lintmedictidyarchive/draft/ + html/ → check (đếm) → plan (KEEP · ARCHIVE · PROMOTE?) → agent promote → apply (git mv vào archive/<nhóm>/) → re-index → verify + commit| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | | không (mặc định 10) | ngưỡng số file |
| In | | không (mặc định 2) | số mốc ngày html report giữ lại |
| In | | không | dùng khi downstream không có |
| Out | bảng plan | có | KEEP / ARCHIVE / PROMOTE? kèm lý do từng file |
| Out | ADR/concept mới trong wiki | theo nội dung | bản chất quý đã promote, có |
| Out | rename vào | có (khi apply) | git thấy rename, không delete |
archive/rmgit mvgit log --followstatus: proposed/open/implementingoverstack.htmlindex.htmlwiki-graph.html*-cheatsheet*-health-dashboardproblem-treeline-status--keep-dates N.md## Origintypewiki/index.mdwiki/log.mdwiki-healthindex_syncarchive/checkstatus: proposed/open….gitignorewiki-health --fail-on brokenindex_sync| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | | Check (0 token, không đụng file): | exit 3 = vượt ngưỡng | dưới ngưỡng → dừng trừ khi user tự gọi |
| W02 | deterministic | draft + html | Plan (dry-run): | bảng KEEP/ARCHIVE/PROMOTE? | draft treo → B01; cờ outdated → B02 |
| W03 | judgment | mục PROMOTE? + ARCHIVE có quyết định | PROMOTE bản chất quý vào wiki TRƯỚC khi apply | ADR/concept + index + log | đã có trong wiki → chỉ archive |
| W04 | effect | plan | Apply: | rename + index | đích gitignored → B03 |
| W05 | deterministic | worktree | Verify + commit: | commit + log | đỏ → sửa, lặp W05 |
python3 harness/scripts/tidy.py check # downstream không có harness/: python3 ~/.claude/harness/harness/scripts/tidy.py check --root ..md--threshold NOVERSTACK_DRAFT_THRESHOLDpython3 harness/scripts/tidy.py planOUTDATED — status done|implemented|…task T-… đã done⏱ TREO — status proposed/open…status:PROMOTE?↳ ⚠ nội dung có thể outdatedcode-driftstale.jsonrejectedneed-review/PROMOTE?llmwiki/wiki/sources/adr/ADR-NNN-<slug>.mdllmwiki/wiki/concepts/<slug>.mdtype:## Originwiki/index.mdwiki/log.mdpython3 harness/scripts/tidy.py applyarchive/<proposals|superseded|analysis|reports>/git mvbuild-docs-indexindex_sync --fixhtml/archive/INDEX.md.gitignoregit statusarchive/INDEX.mdpython3 harness/scripts/wiki-health.py --wiki-dir llmwiki/wiki --fail-on brokenindex_syncwiki/log.md| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | conditional_required | plan báo | giữ; muốn dọn thì hỏi user làm-tiếp hay reject, đổi | user không quyết → KEEP | W02 |
| B02 | conditional_required | dòng | đối chiếu code: (a) xong → đổi status + archive, (b) còn làm → sửa đúng câu sai, (c) bỏ → | dương tính giả (đường dẫn ví dụ) → giữ nguyên | W03 |
| B03 | recovery | tool từ chối dời vì đích bị | báo user dòng gitignore cần bỏ; không lách bằng xoá | user không bỏ → file đó ở yên | W04 |
bash harness/tests/tidy-test.shwiki-health --fail-on brokenindex_syncgit statusarchive/INDEX.md[tidy] draft/ có 57 filetidy.py applygit statuswiki-healthstatus: proposed⏱ TREOarchive/reports/bash harness/tests/tidy-test.sh>10