Agent skill

Crystallize

by avelikiy in avelikiy/great_cto

Distils repeating patterns from session logs and lessons.md into draft skill files.

MITAuto-check: notes

Install Crystallize

skills CLI
$ npx skills add avelikiy/great_cto --skill crystallize -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install avelikiy/great_cto crystallize --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/avelikiy/great_cto.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/crystallize .claude/skills/crystallize && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
crystallize
GitHub stars
103
Token cost
~1.1k tokens
SKILL.md length
204 words
Files
1
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Distils repeating patterns from session logs and lessons.md into draft skill files.

  • Works in 5 steps: Gather raw material → Cluster patterns (via… → Emit promotion report → …
  • SKILL.md covers Step 1 — Gather raw material, Step 2 — Cluster patterns (via…, Step 3 — Emit promotion report and Step 4 — Write…, plus 1 more section
  • Calls git and node

What it does

Crystallize is an agent skill from avelikiy/great_cto. Distils repeating patterns from session logs and lessons.md into draft skill files. Run after ≥10 sessions to extract durable knowledge. Output: draft skills/ files + promotion report.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: You already have the agent. This is everything around it. greatcto runs Claude Code as a pipeline of 70 specialist agents — an independent model checks each stage before the next… The licence is MIT.

Example prompts

  • “Use the crystallize skill to distil repeating patterns from session logs and lessons.md into draft skill files”
  • “/crystallize”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Glob, Grep, Bash, Agent

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Gather raw material
  2. Cluster patterns (via knowledge-extractor agent)
  3. Emit promotion report
  4. Write .last-crystallize marker
  5. Auto-run cadence suggestion

What it can do on your machine

Read from SKILL.md and the folder at commit 5d6e760. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Glob
    • Grep
    • Bash
    • Agent

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Crystallize loads about 1.1k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 204 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Glob, Grep, Bash, Agent

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from avelikiy/great_cto at commit 5d6e760, republished under its MIT licence (© avelikiy). 204 words, ~1,086 tokens.

Download SKILL.mdSave it as .claude/skills/crystallize/SKILL.md (or your agent's skills folder).
name
crystallize
description
Distils repeating patterns from session logs and lessons.md into draft skill files. Run after ≥10 sessions to extract durable knowledge. Output: draft skills/ files + promotion report.
allowed-tools
Read, Write, Glob, Grep, Bash, Agent
when_to_use
Apply when: - CTO says /crystallize, "crystallize", or "extract knowledge" - Session count in .great_cto/logs/ reaches a multiple of 10 (auto-suggest) - User…
effort
high
paths
.great_cto/logs/**, .great_cto/lessons.md, ~/.great_cto/decisions.md, skills/**

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

bash
# 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:

bash
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.

© avelikiy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/crystallize of avelikiy/great_cto.

Open the folder on GitHubat commit 5d6e760

Compare with similar skills

Crystallize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Crystallize compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Crystallize this skillavelikiy/great_cto103—~1.1kAutomated safety check: NotesMIT
Lesson Memory Recorderrohitg00/agentmemory29k—~721Automated safety check: PassApache-2.0
Growth Logaffaan-m/ECC276k1 repos~1.7kAutomated safety check: PassMIT
Clickhouse Logs Queriessupabase/supabase111k—~2.4kAutomated safety check: PassApache-2.0
Paperclip Distillpaperclipai/paperclip99k—~2.8kAutomated safety check: PassMIT
Investigating LogsPostHog/posthog40k—~2.1kAutomated safety check: PassCustom licence

Similar skills

  • Lesson Memory Recorder

    rohitg00/agentmemory

    Distills a user correction or hard-won rule into a confidence-weighted lesson that resurfaces automatically before similar future work.

    29k GitHub stars~721 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Growth Log

    affaan-m/ECC

    Write growth log entries that extract reusable patterns from completed work — root cause, transferable rule, and a recognizable signal — instead of diary-style event narration, with a 4-8 sentence…

    276k GitHub starsUsed in 1 repo~1.7k tokens
    DevelopmentAuto-check passed
  • Clickhouse Logs Queries

    supabase/supabase

    Official

    Write, review, and migrate Supabase logs queries against the ClickHouse-backed logs table (the logs.all.otel analytics endpoint).

    111k GitHub stars~2.4k tokensUpdated today
    DatabasesAuto-check passed
  • Paperclip Distill

    paperclipai/paperclip

    A skill your agent uses when an operation issue is a Paperclip cursor-window, distill, or backfill.

    99k GitHub stars~2.8k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Investigating Logs

    PostHog/posthog

    Official

    Investigate logs in a PostHog project: verify a service or deployment is healthy, explain an error spike, triage an incident, or understand what a log stream is saying.

    40k GitHub stars~2.1k tokensUpdated today
    DatabasesAuto-check passed
  • Guides log level choices and when to raise a structured Sentry event instead of a plain log line in the Warp Rust codebase, keeping secrets out of logs.

    65k GitHub starsUsed in 1 repo~5.6k tokens
    DevelopmentAuto-check passed

More from avelikiy/great_cto

All 27 skills in this repo
  • AnyDesign Design Analyzer

    avelikiy/great_cto

    Analyzes a screenshot, website or Figma file and writes a `design.md` with its token system, component inventory and reconstruction notes, or an `element.md` for one element.

    103 GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed
  • Opportunity Solution Tree

    avelikiy/great_cto

    Builds an Opportunity Solution Tree that links one measurable outcome to customer opportunities, candidate solutions and experiments.

    103 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Rewrites a feature-list roadmap into outcome statements that name the customer segment, the result they get and the business impact, grouped into themes.

    103 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Exposed Secret Rotation

    avelikiy/great_cto

    Turns a leaked key, token or password into one tracked rotation task the moment it's spotted, instead of a reminder repeated every session.

    103 GitHub stars~884 tokensUpdated today
    Auto-check: notes
  • Skeptical Triage

    avelikiy/great_cto

    Runs a three-round self-challenge plus an arbiter over high-stakes findings, so false positives from reviews, audits and flaky-test verdicts do not become blockers.

    103 GitHub stars~2.1k tokensUpdated today
    Auto-check: notes
  • Aesthetic Instrument

    avelikiy/great_cto

    greatcto's own committed aesthetic — the instrument panel. An agent skill from avelikiy/great_cto.

    103 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Crystallize

What does Crystallize do?

Distils repeating patterns from session logs and lessons.md into draft skill files. Crystallize is an agent skill from avelikiy/great_cto.md into draft skill files.

How do I install Crystallize in Claude Code?

Run `npx skills add avelikiy/great_cto --skill crystallize -a claude-code`. Or copy the skill folder (skills/crystallize in avelikiy/great_cto) into .claude/skills/crystallize in your project. Claude Code loads it when a task matches its description.

How do I install Crystallize in Codex?

Run `npx skills add avelikiy/great_cto --skill crystallize -a codex`. Or copy the skill folder (skills/crystallize in avelikiy/great_cto) into .agents/skills/crystallize in your project. Codex loads it when a task matches its description.

Can I use Crystallize in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add avelikiy/great_cto --skill crystallize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/crystallize, .gemini/skills/crystallize, .github/skills/crystallize and .opencode/skills/crystallize in your project.

What does Crystallize need to run?

Going by SKILL.md and its folder, Crystallize needs the command-line tools its instructions call (git and node). Its frontmatter pre-approves these tools: Read, Write, Glob, Grep, Bash, Agent.

Does Crystallize access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Crystallize safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Crystallize use?

Crystallize is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Crystallize use?

About 1.1k tokens (SKILL.md is roughly 4.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Crystallize?

Skills that share tags, products or a category with Crystallize: Lesson Memory Recorder (rohitg00/agentmemory, 29k stars), Growth Log (affaan-m/ECC, 276k stars), Clickhouse Logs Queries (supabase/supabase, 111k stars) and Paperclip Distill (paperclipai/paperclip, 99k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Crystallize?

avelikiy (a GitHub user) maintains it in avelikiy/great_cto, which has 103 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.

Source: avelikiy/great_cto on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.