delivery-gate
Stop hook that blocks Claude from finishing until quality checks pass. Detects rationalization patterns (surface text heuristics), stale learning logs (filesystem mtime), and low disk space. Complements self-audit by mechanically enforcing learning capture habits. Use when Claude should be mechanically blocked from declaring work finished before quality checks and learning capture actually pass.
DeepseekModel
官方收录技能
质量 优秀 · 90
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=affaan-m-ecc-skills-delivery-gate-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name delivery-gate description Stop hook that blocks Claude from finishing until quality checks pass. Detects rationalization patterns (surface text heuristics), stale learning logs (filesystem mtime), and low disk space. Complements self-audit by mechanically enforcing learning capture habits. Use when Claude should be mechanically blocked from declaring work finished before quality checks and learning capture actually pass. metadata {"version":"1.1.1","origin":"ECC"} Delivery Gate — Mechanical Quality Gate for Claude Code A Stop hook that checks three things before Claude can finish a session, using only deterministic checks — file modification timestamps, disk usage, and regex patterns on the transcript text. No AI inference. This is distinct from reasoning gates (like self-audit ): delivery-gate checks machine-verifiable facts; self-audit checks output quality across four reasoning dimensions. Together they form defense in depth: delivery-gate : "Was the learning library touched today? Is disk space safe?" self-audit : "Is the file content correct, complete, and honest?" This is the same pattern as CI pipeline gates — automated, deterministic checks that verify machine-readable facts rather than trusting self-reported status. What It Checks Check Mechanism On Hit Rationalization patterns Regex on transcript tail Warning only (never blocks) Stale learning libraries mtime on 5 configurable paths Warning if some stale; Block if >=3 stale OR growth-log stale + complex task Disk space < 50GB shutil.disk_usage Warning Disk space < 15GB shutil.disk_usage Block (exit 2) Rationalization detection warns about patterns like "skip tests for now" and "pre-existing bug" — surface signals that thinking may have been cut short. It never blocks on its own, because regex heuristics can false-positive. The blocking conditions are: disk critical, >=3 learning libs stale , OR growth-log specifically stale (all require complex task >=3 edits). Why Claude Code's built-in checks cover code quality (build → type → lint → test). But there's a different failure mode: the agent produces working code while the session hygiene was neglected — learning not captured, rationalized shortcuts, disk running out silently. Over many sessions of "ship and forget," the human hasn't grown. This hook enforces the habit: complex task → must touch learning libraries. Install cp quality-gate.py ~/.claude/scripts/ Add to ~/.claude/settings.json : { "hooks" : { "Stop" : [ { "hooks" : [ { "type" : "command" , "command" : "python3 ~/.claude/scripts/quality-gate.py" , "timeout" : 5000 } ] } ] } } Learning Libraries Create these files in your project's memory directory. The hook checks if at least one was updated today: memory/ ├── growth-log/ # Daily learning entries (directory) ├── decisions/log.md # Decision log ├── output-index.md # Index of session outputs ├── ratings-tracker.md # Skill ratings over time └── tooling_capabilities.md # Known tools inventory Customize the LIBS dict to match your own file structure. Configuration Edit quality-gate.py : Variable Default Purpose RATIONALIZE 4 patterns Regex patterns for rationalization detection LIBS 5 libraries Files/dirs to check for today's updates COMPLEX_THRESHOLD 3 Edit/Write calls to classify as complex DISK_WARN_GB 50 Warn below this DISK_CRIT_GB 15 Block below this Examples Simple session — allowed: edit_count=1 (< 3, not complex) → exit 0 Complex task, learning captured — allowed: edit_count=5 (complex) → checks LIBS → growth-log updated today → exit 0 Complex task, no learning — BLOCKED: edit_count=4 (complex) → checks LIBS → all 5 stale → exit 2 stderr: "Blocked: complex task completed but no learning captured today." Low disk space — BLOCKED: disk_free=12GB < 15GB critical → exit 2 stderr: "Blocked: disk space at 12GB (threshold: 15GB)." Limitations The hook enforces the habit of touching learning libraries, not the quality of what was recorded. If output-index.md is updated but growth-log is skipped, the hook passes (1 of 5 libraries touched). This is by design: mechanical gates check machine-verifiable facts. For content quality verification, pair with self-audit . Compatibility Python 3.8+ (uses from __future__ import annotations ) Cross-platform: Windows, macOS, Linux Zero dependencies beyond stdlib Quality This code went through 4 rounds of automated code review (CodeRabbit + Greptile) with 9 real bugs found and fixed. See Also self-audit — Reasoning quality gate (completeness/consistency/groundedness/honesty) verification-loop — Code quality checks (build/type/lint/test) gateguard — PreToolUse safety gate
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |