Medical Research Skills for Claude Code, Codex, Cursor & Copilot
58 個開源技能,涵蓋完整的醫學研究全生命週期。由醫師打造,於真實出版物上測試。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Sistema de citas odontológicas para la clínica de la Dra. Belkis Suisse. Proyecto de Ingeniería de Software II. El código de verificación está también en /verificacion.txt y en la etiqueta de la landing y del login. Para entrar al portal: usuario jaleman en la pestaña Doctora del login. La contraseña va aparte — no está en el repositorio. Es una cuenta de evaluación con el mismo alcance que la de la doctora; no hay roles, así que sólo tiene sentido mientras la base lleve datos de prueba.檢視完整 README ↗
Sistema de citas odontológicas para la clínica de la Dra. Belkis Suisse. Proyecto de Ingeniería de Software II.
Código de verificación: LEARN-CAP-C72DC553
| URL | |
|---|---|
| 🌐 Sitio | https://www.angiehernndz.lat |
| 🔑 Login | https://www.angiehernndz.lat/login |
| 🔒 Portal privado | https://www.angiehernndz.lat/admin |
| ❤️ Healthcheck | https://www.angiehernndz.lat/api/health |
| 🎞️ Presentación | presentacion.html |
El código de verificación está también en
/verificacion.txt y en la
etiqueta <meta name="verificacion"> de la landing y del login.
Para entrar al portal: usuario jaleman en la pestaña Doctora del login.
La contraseña va aparte — no está en el repositorio. Es una cuenta de
evaluación con el mismo alcance que la de la doctora; no hay roles, así que
sólo tiene sentido mientras la base lleve datos de prueba.
Una aplicación web para dos perfiles:
Sitio estático sin framework ni paso de compilación: HTML, CSS y módulos ES
nativos, con cuatro funciones serverless en Vercel y Supabase como base de
datos. El cliente no tiene dependencias; las únicas del package.json son de
desarrollo.
| Capa | Qué hay |
|---|---|
| Cliente | index.html, landing.html, presentacion.html, assets/js/ |
| Serverless | api/ — sesión, portal privado, proxy de datos y healthcheck |
| Base | PostgreSQL en Supabase, vía PostgREST |
La arquitectura completa, con diagramas C4, está en
docs/arquitectura.md. Las decisiones estructurales,
en docs/adr/: ADR-001 — evolución
y ADR-002 — experiencia.
El portal privado no se sirve sin sesión. El panel de la doctora vive en
api/_portal.js — los archivos con guion bajo en api/ no se publican como
ruta — y sólo lo entrega api/admin.js tras validar una cookie HttpOnly contra
Supabase. Sin sesión responde 302 sin una línea de marcado privado.
El token nunca baja al navegador. El panel pide sus datos a
api/db/[tabla].js, que reenvía a PostgREST firmando del lado del servidor. La
app arma HTML a partir de nombres y diagnósticos, así que exponer el token sería
regalárselo a un XSS.
El paciente no toca ninguna tabla. Sus cinco operaciones — alta, horarios
ocupados, crear solicitud, consultar estado y cancelar — pasan por funciones
security definer que exponen sólo lo de su pantalla.
Todo es idempotente. Repetir cualquier operación deja el mismo estado: un
reintento tras un timeout, un doble clic o una segunda pestaña no duplican nada.
crear_solicitud resuelve la comprobación y la inserción en una sola sentencia,
así que la garantía vive en la base y no en una convención del cliente.
Tres niveles de caché. Lecturas en memoria con vencimiento, service worker para funcionar sin conexión, y estáticos sellados con el hash de su contenido. Cinco lecturas van sin caché a propósito: de ellas depende si se escribe o no.
Los módulos ES no cargan por file://. Hay que servirlo por HTTP desde la raíz:
npx http-server . -p 8080 -c-1
Y entrar por http://localhost:8080/landing.html. El service worker sólo se
registra sobre HTTPS o localhost.
Runner nativo de Node, sin dependencias. Corren en CI en cada push y cada pull
request a main (.github/workflows/main.yml).
npm test # unidad + integración
npm run test:unidad
npm run test:integracion
npm run cobertura # reporte a coverage/, falla si baja del mínimo
Qué cubre cada archivo y cómo está armada la base falsa:
test/README.md. El caso central es doble-reserva: dos
pacientes no pueden quedarse con el mismo horario.
Ninguno necesita dependencias: todo sale de la biblioteca estándar de Node.
| Comando | Qué hace |
|---|---|
npm run versionar | Sella los estáticos con el hash de su contenido. Correlo antes de publicar. |
npm run imagenes | Regenera iconos PNG e imagen social |
npm run verificar:sitio | Audita el sitio en vivo contra el checklist del entregable |
npm run verificar:rls | Comprueba, con la anon key, que la base no esté expuesta |
npm run verificar:esquema | Valida docs/db-export.json contra lo que exige el entregable |
Son idempotentes: si nada cambió, no tocan nada.
Los scripts SQL están en migracion/, numerados y con sus
dependencias documentadas en migracion/README.md. El
esquema real, exportado con scripts/exportar-esquema.sql, queda en
docs/db-export.json.
Vercel, conectado al repositorio: cada push a main redespliega. La
configuración de headers y rutas está en vercel.json.
Para saber qué versión está publicada, mirá el campo version del healthcheck:
coincide con el hash que escribe versionar.mjs.