用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/erseco/facturascripts-plugin-ServiceRenewals --skill facturascripts-plugin命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | facturascripts-plugin |
| description | Arquitectura de plugins de FacturaScripts aplicada a ServiceRenewals. |
Init.php (Core\Template\InitClass): init() registra workers
(WorkQueue::addWorker) y extensiones ($this->loadExtension(...));
update() siembra los Settings que falten.Cron.php (Core\Template\CronClass): job process-renewals con
every('1 hour') que encola el evento ServiceRenewals.Process.Model/ + Table/*.xml: cada modelo declara tableName(),
primaryColumn(), clear(), test(), install(). El XML de tabla usa
columnas serial/integer/character varying(N)/date/timestamp/boolean/text
y constraints SQL en crudo (PRIMARY KEY, UNIQUE, FOREIGN KEY).Controller/ + XMLView/: ListController/EditController/
PanelController; el nombre del XMLView debe coincidir con el nombre de
la vista añadida.Extension/Controller/<Controlador>.php: cada método público devuelve un
Closure que se ejecuta con $this ligado al controlador destino
(hooks: createViews, loadData, execPreviousAction...).Worker/ (Core\Template\WorkerClass): run(WorkEvent $event): bool,
terminar siempre con return $this->done();.FacturaScripts\Dinamic\Model\*.setSubject() + save() + getNewProductLine() +
Calculator::calculate($doc, $lines, true). En CLI, asignar
codalmacen/codserie si faltan (Almacenes::default(),
Series::default()).DocTransformation (model1/iddoc1 →
model2/iddoc2), siguiendo cadenas presupuesto → pedido → factura.NewMail::create() fluido; send() devuelve bool y no lanza por
fallos SMTP.d-m-Y al recargar; comparar siempre con
RenewalDateCalculator::toIso().$this->permissions->allowUpdate +
$this->validateFormToken() antes de cualquier mutación.es_ES.json y en_EN.json
siempre sincronizados.