SKILL·E096E4

crystallize

avelikiy
更新于 12 days ago
75
13
75
在 GitHub 上查看
general

关于

The crystallize skill analyzes session logs and lessons to identify repeating patterns, then generates draft skill files for reusable knowledge. It's triggered manually via commands like `/crystallize` or automatically after every 10 sessions. The process produces draft skills and a promotion report using a dedicated knowledge-extractor agent for pattern distillation.

快速安装

Claude Code

推荐
主要方式
npx skills add avelikiy/great_cto -a claude-code
插件命令备选方式
/plugin add https://github.com/avelikiy/great_cto
Git 克隆备选方式
git clone https://github.com/avelikiy/great_cto.git ~/.claude/skills/crystallize

在 Claude Code 中复制并粘贴此命令以安装该技能

技能文档

Crystallize — distil session patterns into reusable skills

Invoke when the CTO says /crystallize, "crystallize", "extract knowledge", or "what have we learned?". Also auto-suggested when session count is a multiple of 10 (the session-end hook checks .great_cto/.last-crystallize).

The knowledge-extractor agent (Opus) does the heavy lifting. This skill orchestrates the workflow and emits the final report.

Session-end hint integration: The session-end hook checks .great_cto/.last-crystallize and suggests running /crystallize when the session count exceeds last_sessions + 10. Run this skill after ≥10 sessions to keep extracted skills current.


Step 1 — Gather raw material

# Count sessions
SESSION_COUNT=$(ls .great_cto/logs/session-*-end.md 2>/dev/null | wc -l | tr -d ' ')
echo "Sessions: $SESSION_COUNT"

# Read lessons
cat .great_cto/lessons.md 2>/dev/null || echo "(no lessons yet)"

# Read cross-project decisions
cat ~/.great_cto/decisions.md 2>/dev/null | head -200 || echo "(none)"

# Find patterns that appear in ≥3 sessions
grep -h "^## pattern:" .great_cto/logs/session-*-end.md 2>/dev/null | sort | uniq -c | sort -rn | head -20

# Recent git log for context
git log --oneline --since="30 days ago" | head -30

If SESSION_COUNT is 0, tell the CTO: "No session logs found in .great_cto/logs/. Run at least 10 sessions before crystallizing." Exit.

If SESSION_COUNT < 10, tell the CTO: "Only {N} sessions found. Patterns are more reliable after ≥10 sessions. Proceed anyway? [yes/no]" Wait for confirmation before continuing.


Step 2 — Cluster patterns (via knowledge-extractor agent)

Spawn the knowledge-extractor agent with the gathered data as context:

Agent: knowledge-extractor
Task: |
  Read .great_cto/lessons.md and all files in .great_cto/logs/.
  Cluster lesson entries by pattern slug.
  For each cluster with ≥3 occurrences, write a draft skill file to
  skills/{domain}/SKILL.md (status: draft in frontmatter).
  If a skill for that domain already exists, append a new ## section instead
  of replacing the file.
  Infer domain from the pattern slug and its archetype tags.
  Return a structured summary: clusters found, drafts written, already-covered.

Wait for the agent to complete before proceeding to Step 3.


Step 3 — Emit promotion report

After the agent completes, print:

CRYSTALLIZE REPORT
════════════════════════════════════════
Sessions analysed: {SESSION_COUNT}
Lessons found:     {LESSON_COUNT}
Clusters:          {CLUSTER_COUNT}
Draft skills:      {DRAFT_COUNT}  (in skills/{domain}/SKILL.md)
Already covered:   {COVERED_COUNT}  (pattern already in existing skill)
════════════════════════════════════════
Draft files:
  {list of paths and brief description per draft}

Next: review drafts, remove `status: draft` when satisfied.
Run /crystallize again after 10 more sessions.
════════════════════════════════════════

Step 4 — Write .last-crystallize marker

After emitting the report, write the marker file:

SESSION_COUNT=$(ls .great_cto/logs/session-*-end.md 2>/dev/null | wc -l | tr -d ' ')
DRAFT_COUNT={P}   # from agent output
mkdir -p .great_cto
node -e "
const fs = require('fs');
fs.writeFileSync('.great_cto/.last-crystallize', JSON.stringify({
  ts: new Date().toISOString(),
  sessions: parseInt('$SESSION_COUNT') || 0,
  drafts: parseInt('$DRAFT_COUNT') || 0
}) + '\n');
"

Step 5 — Auto-run cadence suggestion

If SESSION_COUNT is a multiple of 10 (and > 0), append to the report:

Auto-suggestion: you've completed {SESSION_COUNT} sessions. Consider running
`/crystallize` every 10 sessions to keep skills current.

GitHub 仓库

avelikiy/great_cto
路径: skills/crystallize
0
agentic-codingclaude-code-pluginclaude-code-skillsclaude-code-subagentscode-reviewcto
FAQ

常见问题

什么是 crystallize Skill?

crystallize 是一个 Claude Skill,作者为 avelikiy。Skill 将 Claude 按需加载的说明和资源打包,让 Claude 无需额外提示即可执行与 crystallize 相关的任务。

如何安装 crystallize?

使用本页的安装命令:将 crystallize 作为插件添加到 Claude Code,或将其仓库克隆到 skills 目录,然后重启 Claude 以加载该 Skill。

crystallize 属于哪个分类?

crystallize 属于元分类。

crystallize 可以免费使用吗?

可以。crystallize 已收录在 AIMCP,可免费安装。

相关推荐技能

content-collections

Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。

查看技能
polymarket

这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。

查看技能
creating-opencode-plugins

该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。

查看技能
sglang

SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。

查看技能