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.