Skip to content
Back to skills

Cordis Styling Nitpicking

ASecurity

对插件、服务及其可达辅助代码进行生命周期审查:共享状态所有者、副作用释放,以及消费者清理完成前依赖被关闭的竞争。

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
ai-agentsapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add TeFuirnever/azhou-ai-hub --skill cordis-styling-nitpicking --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cordis Styling Nitpicking?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cordis Styling Nitpicking
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tefuirnever-cordis-styling-nitpicking/badge)](https://www.skillsdirectory.com/skills/tefuirnever-cordis-styling-nitpicking)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: cordis-styling-nitpicking
description: "对插件、服务及其可达辅助代码进行生命周期审查:共享状态所有者、副作用释放,以及消费者清理完成前依赖被关闭的竞争。"
---

# cordis-styling-nitpicking

本 Skill 仅用于当前项目。用户授权、项目 AGENTS.md 和实际宿主能力优先。

## 范围与证据

从真实插件/服务导出入口追踪模块初始化、注册、监听、effect、disposer 和可达辅助调用。测试与框架源码用于证明行为;生成物问题定位到拥有它的源文件。无关 CLI、构建工具及 vendored 框架不作为本次发现对象。

读实际框架的生命周期实现,不凭注册顺序、依赖声明或持有 service 引用推断关闭顺序。若使用 Cordis,确认可追踪服务方法中的 `this.ctx` 属于调用者;非 Cordis 代码按自己的作用域和资源所有者判断,不照搬 API。

## 三类检查

1. **共享状态归属**:查模块全局、static、global symbol、隐藏缓存、getInstance 等可变状态的创建、身份及释放。弱键、容量界限、代次校验不等于生命周期归属。纯函数、不可变常量和显式 owner 内的对象不是单例缺陷;进程级状态须有明确进程生命周期与隔离依据。
2. **未释放的副作用**:监听、注册、定时器、watcher、子进程、连接、临时文件、ambient patch 和异步任务必须由作用域拥有并释放。框架已有自动清理的注册不要求重复保存 disposer。abort/kill/close 后还要等待真正停止。持久业务写入或远端提交不要求因 dispose 自动撤销,但其临时资源仍需释放。
3. **依赖过早关闭**:沿每个 await 追到消费者最后的服务调用、事件、确认和持久写入。先停止新准入,再让已接纳操作及清理完成,最后释放依赖;服务的 dispose promise 最后 resolve 不证明资源直到那时才关闭。完成通知监听器也可能随兄弟 effect 提前取消。

依赖注入和“反向注册顺序”不足以证明并发 disposer 安全。显式组合实际 disposer,或由资源父 owner 保存并等待真实消费者清理任务;包装一个已独立注册的 disposer 不会自动转移其所有权。检查 provider 替换、消费者先退出、根 owner 退出与清理异常,确保一个错误不跳过剩余必需释放。新准入拒绝与已接纳操作的完成能力分开控制。

## 验证与报告

用受控 promise/屏障把消费者停在最后一次依赖使用之前,启动 provider 或根 owner 关闭;证明关闭仍未完成且资源与必需监听仍可用,再释放消费者,检查真实终态、持久结果和最终释放。仅计数或空闲关闭测试不足。检查已有取消与明确丢弃语义,不能因缺 inject 或想象中的晚调用就报错。

只报告有可达消费者、合法交错及可观察影响的问题。说明入口、消费者/资源所有者、失败顺序、具体位置、修复与确定性验证;合并同一机制的重复发现。按本项目实际风险定级,不沿用来源“所有三类均 P0”的约定。仅源码推导、未复现或范围不足须明确。用户要求留档时才写现有记录,不自行修改记忆。

来源、适配边界和许可证见 [provenance.md](provenance.md)。

Files in this skill

  • LICENSE-DeepSeek1 KB
  • SKILL.md3.3 KB
  • provenance.md1.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.