project-card-repair

Solid

Repair broken card links in Heptabase project + project/progress cards — the dead plain-text `[[card:UUID]]` literals left by a `hb` bridge append (remote cluster) or a bare CLI append, which the heptabase CLI never renders into a real, clickable card-mention. Seals three header/timeline shapes back into live mentions: a log/progress card's `專案:[[card:…]]` back-ref to its project, a project card's `📎 date [[card:…]]` timeline line to a log, and a continuation child's `母卡:[[card:…]]` back-ref to its entry. Given card id(s) it repairs just those; given nothing it sweeps every project + progress card. Use when the user says 修卡片 link / 卡片連結斷了 / log 卡指回 project 斷了 / timeline 連結壞掉 / repair/seal project card links / 專案回指 變成純文字 / 掃全部修卡片連結. Mac-only (local heptabase CLI). Sentinels (▶續卡 chain edges) are left to project-card-log/repair_chain.py --seal unless --include-sentinel is passed.

AI & Automation 3 stars 0 forks Updated today MIT

Install

View on GitHub

Quality Score: 79/100

Stars 20%
20
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Project Card Repair — seal text-form card links into real mentions ## What breaks, and why A card link should be a clickable **card-mention node**. But an append that did NOT go through the local heptabase CLI's renderer writes it as the literal text `[[card:<uuid>]]` — dead text in the UI, invisible to PM-level parsers. This happens on the **`hb` bridge** (remote cluster over SSH, append-only) and on bare CLI/Mac spills. Three shapes carry it: | shape | where | direction | |---|---|---| | `專案:[[card:<project>]] 環境:…` | log/progress card header | log → project | | `📎 <date> [[card:<log>]] <summary>` | project card timeline line | project → log | | `…母卡:[[card:<entry>]]。…` | continuation child header | chain child → entry | Obsidian `.md` cards use `[[wikilink]]` and never hit this — **heptabase-only**. ## Usage ```bash cd ${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/skills/research-cards}/skills/project-card-repair python3 repair.py --card <id> [--card <id> …] # pinpoint: repair only these python3 repair.py # sweep: every project + progress card python3 repair.py --dry-run # preview; save nothing python3 repair.py --include-sentinel # also seal ▶續卡 (see below) ``` Output is one JSON object: `mode`, `scanned`, `cards_changed`, and a lean `results` list (only cards that sealed something or errored, each with `by_kind`: how many loglink / backref / sentinel paragraphs were sealed). Idempotent — a second run reports ...

Details

Author
SungFeng-Huang
Repository
SungFeng-Huang/research-cards
Created
3 weeks ago
Last Updated
today
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

Data & Documents Solid

project-card-log

From a project-wise session, find THIS project's Heptabase card and log progress as SELF-CONTAINED log cards — weekly reports to the project lead/mentor: each log event becomes its own card (前情提要 recap that needs no back-reading, what was done, results with explained metrics, what it means, decisions pending — no unexplained abbreviations), and the project chain only gains one human-readable timeline line (📎 date [[card]] one-sentence summary) — the chain stays a readable project timeline for handoff (to the user, to the Mac, to the paper side). Auto-resolves which card via a per-repo .heptabase-card marker, then a registry (projects.json), then search. Use when the user says 補卡 / 記實驗 / log progress / 記進度 / handoff 實驗進度 / update my Heptabase project card / 把進度寫進 Heptabase. Transport: local `heptabase` CLI when available (Mac), else the `hb` bridge (remote over SSH).

3 Updated today
SungFeng-Huang
Code & Development Solid

project-card-merge

Consolidate a Heptabase research-project card on the Mac into a STANDALONE full report for the project lead (前情提要 + evolution story + current state — readable without session memory): fold the cluster's append-only `📥 cluster 補充/進度` blocks (and any `📝 待補成 paper 級參考` brief) into ONE focused, paper-grade, coherent card — update 現狀 to the latest state, supersede stale info, keep all paper-grade detail + figures + file citations + card-links, and remove the dated append shells. Also folds tail-appended `🔍` research-gap analysis sections (from overview-graph Operation 5) into the body after Findings, promoting actionable 發想 into 下一步 and verification-type 洞 into 待補. Chain-aware: collapses a continuation chain (entry→續卡, from append-side overflow) back into the merge, and when the merged result itself exceeds the card cap it spills whole sections into a fresh chain instead of condensing (finalize_chain) — paper-grade content is never trimmed to fit 100K. This is the Mac-only "final merge" that pairs with the clus

3 Updated today
SungFeng-Huang
AI & Automation Listed

project-card-cleanup

Re-scope a project card CHAIN to its handoff role — 最高指導原則 + 實驗現狀紀錄 + 待辦 handoff — against an external authority layer (paper draft, .private/chapter-plan & evidence-map, or the axis card). Unlike project-card-merge (which FOLDS appends into the body), cleanup DISTILLS writing-phase appends, SUPERSEDES history pile-ups, and POINTERIZES content that now lives in the draft/plan/axis card, while preserving every experiment number, method record, figure, and card-link. Use when the user says 清理卡鏈 / cleanup 專案卡 / 卡鏈瘦身 / 讓卡回到指導原則 / handoff 化, typically during paper-writing periods when cards accumulate both cluster experiment appends and Mac-side planning appends. Consolidated (needs_merge=false) chains are VALID targets — this is a re-scoping, not a marker-driven merge.

3 Updated today
SungFeng-Huang