From cancer-buddy
Negotiates whether/how/when to tell a Chinese cancer patient their diagnosis, modeling layered (not binary) disclosure. Use when a family is deciding whether to suppress or reveal the diagnosis, a patient is breaking the news to kin, or someone spontaneously asks 我是不是癌症. Triggers on: 要不要告诉, 不想让 Ta 知道, Ta 不知道自己得癌, 瞒着, 知情同意, 他爸妈不让说, 披露, disclosure.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cancer-buddy:cancer-buddy-disclosureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Chinese families often suppress the cancer diagnosis from the patient. From love, from fear, from habit. This skill does not judge that starting point — it helps families move through suppression → partial → full disclosure as a process, not an event. Binary "tell everything or hide everything" is the anti-pattern. Layered disclosure paced to the patient's desire-to-know is the pattern.
Chinese families often suppress the cancer diagnosis from the patient. From love, from fear, from habit. This skill does not judge that starting point — it helps families move through suppression → partial → full disclosure as a process, not an event. Binary "tell everything or hide everything" is the anti-pattern. Layered disclosure paced to the patient's desire-to-know is the pattern.
suppressed state for active_role = patient)This skill's core use-case is the early family conversation that precedes organize — often before any records exist. So the usual readiness/schema gates are relaxed here.
patients/<patient_code>/role.json if present; otherwise infer role from how the user frames the question).profile.json) is enough to start. If profile.json is missing, proceed on what the user tells you and offer to run organize later.validate-profile-schema.sh. If profile.json exists, read disclosure_state + disclosure_history[] defensively (tolerate missing/partial fields); if it does not exist, skip straight to the conversation and only persist state once a patient directory exists.disclosure_state.profile.disclosure_state + tail of disclosure_history[]. Resolve active role.profile.disclosure_state (suppressed / partial / full / null, per the canonical schema enum) and append to disclosure_history[] after every transition: who decided, what layer, when, why. Every move through the layered model is logged. (Only persist once a patient directory exists — see Preflight.)Under patients/<patient_code>/reports/disclosure/:
negotiation-notes.md — family-internal discussion log (who feels what, what's driving suppression, what's been tried)family-scripts-drafted.md — drafted scripts for the next disclosure moment, tailored to speaker → listener configurationdecision-log.md — every disclosure_state transition with who decided, which layer, when, and the reasonWrites profile.disclosure_state and appends to profile.disclosure_history[]. Never silently overwrites history; every transition is an append with timestamp and rationale.
capacity-and-surrogates.md; decisions become surrogate decisions within a surrogate hierarchy, with best-interest and prior-known-preferences as standards.npx claudepluginhub cancerdao/cancer-buddy-skill --plugin cancer-buddyProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.