Skip to main content

regenerating-a-technical-summary-of-stellar-core

Instructions for regenerating the full set of subsystem and whole-system technical summary skill documents for stellar-core

Jump to install

Source facts

Repository
stellar/stellar-core
Last source activity
February 11, 2026 at 01:44
Detected SKILL.md language
English
Stars
3,302
Forks
1,077

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
regenerating a technical summary of stellar-core
description
Instructions for regenerating the full set of subsystem and whole-system technical summary skill documents for stellar-core
# Regenerating Technical Summaries of stellar-core ## Overview This skill describes the process of generating (or regenerating) the full set of technical summary skill documents for stellar-core. These summaries provide AI agents with compact architectural context about each subsystem and the system as a whole. ## Output Artifacts The process produces: - 21 subsystem summary files in `.claude/skills/subsystem-summary-of-$X/SKILL.md` - 1 whole-system summary file in `.claude/skills/stellar-core-summary/SKILL.md` ## Subsystem List The following subsystem directories under `src/` are each summarized individually: | Subsystem | Source Directory | Notes | |-----------|-----------------|-------| | bucket | `src/bucket/` | Bucket list and merge machinery | | catchup | `src/catchup/` | Ledger catchup / sync logic | | crypto | `src/crypto/` | Hashing, signing, key management | | database | `src/database/` | SQL database abstraction | | herder | `src/herder/` | Consensus coordination, tx queue | | history | `src/history/` | History archive management | | historywork | `src/historywork/` | Work tasks for history operations | | invariant | `src/invariant/` | Runtime invariant checking | | ledger | `src/ledger/` | Ledger state management, LedgerTxn | | main | `src/main/` | Application, Config, event loop | | overlay | `src/overlay/` | P2P network layer | | process | `src/process/` | Child process management | | protocol-curr | `src/protocol-curr/` | Current protocol XDR definitions | | rust | `src/rust/` (excl. soroban/) | C++/Rust bridge, non-soroban Rust | | soroban-env | `src/rust/soroban/p26/soroban-env-{common,host}/` | One protocol version of soroban env | | scp | `src/scp/` | SCP consensus protocol | | simulation | `src/simulation/` | Network simulation, load generation | | test | `src/test/` | Test utilities and infrastructure | | transactions | `src/transactions/` | Transaction/operation processing | | util | `src/util/` | Utility classes and helpers | | work | `src/work/` | Async work scheduling framework | ## Procedure ### Phase 1: Generate Subsystem Summaries (Parallelizable) For each subsystem directory listed above, launch a parallel sub-agent with the following instructions: 1. **Read the entire source** of all `.h`, `.cpp`, and/or `.rs` files in that subsystem directory, **excluding** any test files (files with "test" or "Test" in the name, or files ending in `Tests.cpp`, `Test.cpp`, `test.cpp`). 2. **Create a skill document** at `.claude/skills/subsystem-summary-of-$X/SKILL.md` 3. **Write the document** using this template: ```markdown --- name: "subsystem-summary-of-$X" description: "read this skill for a token-efficient summary of the $X subsystem" --- # Subsystem: $X ## Key Classes and Data Structures ... ## Key Modules ... ## Key Functions ... ## Control Loops, Threads, and Tasks ... ## Ownership Relationships ... ## Key Data Flows ... ``` The summary should be approximately **10KB** and focus on: - Key classes / data structures with brief descriptions - Key modules and their responsibilities - Key functions within major classes - Summary of key control loops, threads and/or tasks - Ownership relationships between data structures - Key data flows between components ### Special Cases - **protocol-curr**: Focus on XDR type definitions, enumerations, unions, and type relationships. - **rust** (non-soroban): Include the C++/Rust bridge mechanism (CXX bridge), files in `src/rust/src/` and `src/rust/*.h`/`*.cpp`, but exclude `src/rust/soroban/`. - **soroban-env**: Read from one protocol version directory (currently `p26`), specifically `soroban-env-common/src/` and `soroban-env-host/src/`. Cover Val types, Env traits, Host internals, budget/metering, storage model, and VM dispatch. - **test**: This contains test *utilities* and *infrastructure*, not tests themselves. Read everything but still skip files that are purely individual test cases (`*Tests.cpp`). ### Phase 2: Generate Whole-System Summary After all subsystem summaries are complete, launch a sub-agent that: 1. **Reads ALL 21 subsystem summary files** together 2. **Creates** `.claude/skills/stellar-core-summary/SKILL.md` 3. **Writes a ~30KB summary** covering: - System overview (what stellar-core is) - Architecture overview (component relationships) - Core subsystems (concise paragraph per subsystem) - Threading model (all thread types across subsystems) - Key data flows (transaction lifecycle, ledger close, catchup, history publication, overlay messaging) - Ownership hierarchy (Application → managers) - Cross-cutting concerns (protocol versioning, invariants, metrics, logging, process management, work scheduling) - Soroban integration (Rust/C++ FFI, Host runtime) - Testing infrastructure - Key design patterns (recurring patterns across the codebase) The description should indicate this is good initial context for any broad-scope task on stellar-core. ## When to Regenerate Regenerate summaries when: - Major architectural changes are made to a subsystem - New subsystems are added - Significant refactoring occurs across multiple subsystems - The soroban protocol version advances (update the `p26` reference to the latest) ## Notes - The soroban protocol version directory (currently `p26`) should be updated to the latest version when regenerating. - Each subsystem summary targets ~10KB; the whole-system summary targets ~30KB. - All summaries use YAML frontmatter with `name:` and `description:` fields. - The goal is to provide enough context for an AI agent to understand the architecture without reading all the source code.
View on GitHub