Skip to content

docs: update devnet-runner skill with information on restarting nodes#209

Merged
pablodeymo merged 2 commits intomainfrom
restart-client-reference
Mar 13, 2026
Merged

docs: update devnet-runner skill with information on restarting nodes#209
pablodeymo merged 2 commits intomainfrom
restart-client-reference

Conversation

@MegaRedHand
Copy link
Copy Markdown
Collaborator

This PR updates the devnet-runner skill with information on restarting nodes via checkpoint-sync.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 13, 2026

Greptile Summary

This PR enriches the devnet-runner Claude skill with documentation for restarting nodes mid-devnet using checkpoint sync. It adds a concise procedure summary to SKILL.md and a new references/checkpoint-sync.md with a detailed 6-step restart guide, troubleshooting entries, and key concepts around the shared RPC/metrics port.

Changes:

  • SKILL.md: Updated skill description to surface the new use case; added a "Restarting a Node with Checkpoint Sync" section with the essential steps; converted the single-line Reference footer into a bullet list linking both reference files.
  • references/checkpoint-sync.md (new): Full restart procedure covering node selection, checkpoint source identification, Docker image updates, pre-pull strategy, spin-node.sh --restart-client invocation, post-restart verification, and six troubleshooting scenarios.

Issues found:

  • --restart-client and --checkpoint-sync-url are not added to the Command-Line Flags table in SKILL.md, leaving the flags table incomplete.
  • The isAggregator field shown in the YAML example in checkpoint-sync.md does not appear in the validator-config.yaml schema documented in SKILL.md, nor anywhere else in the repository — this inconsistency may confuse readers about whether the field is real or illustrative.

Confidence Score: 4/5

  • Safe to merge — documentation-only changes with no risk of runtime breakage.
  • Both changed files are pure Markdown documentation for a Claude skill. No executable code, scripts, or configuration is modified. The content is accurate and consistent with the existing docs/checkpoint_sync.md. Minor documentation gaps (missing flags in the table, undocumented isAggregator field) reduce the score slightly but do not block merging.
  • No files require special attention beyond the two style suggestions noted above.

Important Files Changed

Filename Overview
.claude/skills/devnet-runner/SKILL.md Updated skill description to include checkpoint sync use case, added a concise "Restarting a Node with Checkpoint Sync" section with a 5-step procedure, and expanded the Reference section into a bullet list. Minor issue: --restart-client and --checkpoint-sync-url are not added to the Command-Line Flags table.
.claude/skills/devnet-runner/references/checkpoint-sync.md New reference document with a comprehensive 6-step checkpoint sync restart procedure, verification guidance, and troubleshooting section. Content is clear and well-structured; the only concern is the isAggregator field shown in the YAML example, which is not documented in SKILL.md's schema reference.

Sequence Diagram

sequenceDiagram
    participant User
    participant spin-node.sh
    participant Docker
    participant SourceNode
    participant RestartedNode

    User->>spin-node.sh: --restart-client <node> --checkpoint-sync-url <url>
    spin-node.sh->>Docker: Stop existing container
    spin-node.sh->>Docker: Clear data directory
    spin-node.sh->>Docker: docker pull <image>:<tag>
    spin-node.sh->>RestartedNode: Start with --checkpoint-sync-url
    RestartedNode->>SourceNode: GET /lean/v0/states/finalized
    SourceNode-->>RestartedNode: SSZ-encoded finalized state
    RestartedNode->>RestartedNode: Verify state (genesis time, validator count, pubkeys)
    RestartedNode->>RestartedNode: Store anchor state & block header
    RestartedNode->>RestartedNode: Connect to P2P network
    RestartedNode-->>User: Node syncing from checkpoint slot
    User->>Docker: docker logs --tail 20 <node>
    Docker-->>User: "Block imported successfully" / Fork Choice Tree
Loading

Comments Outside Diff (1)

  1. .claude/skills/devnet-runner/SKILL.md, line 88-97 (link)

    New flags missing from Command-Line Flags table

    The new section introduces --restart-client and --checkpoint-sync-url, but neither flag is added to the Command-Line Flags table (lines 88–97). An agent or developer scanning this table as a quick reference won't find these flags there.

    Consider adding them to the table for completeness:

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: .claude/skills/devnet-runner/SKILL.md
    Line: 88-97
    
    Comment:
    **New flags missing from Command-Line Flags table**
    
    The new section introduces `--restart-client` and `--checkpoint-sync-url`, but neither flag is added to the Command-Line Flags table (lines 88–97). An agent or developer scanning this table as a quick reference won't find these flags there.
    
    Consider adding them to the table for completeness:
    
    
    
    How can I resolve this? If you propose a fix, please make it concise.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: .claude/skills/devnet-runner/SKILL.md
Line: 88-97

Comment:
**New flags missing from Command-Line Flags table**

The new section introduces `--restart-client` and `--checkpoint-sync-url`, but neither flag is added to the Command-Line Flags table (lines 88–97). An agent or developer scanning this table as a quick reference won't find these flags there.

Consider adding them to the table for completeness:

```suggestion
| Flag | Description |
|------|-------------|
| `--node <name\|all>` | **Required.** Node(s) to start. Use `all` to start all nodes in config. **Note:** Using specific node names (e.g., `--node zeam_0,ream_0`) does NOT reassign validators - use only if explicitly requested |
| `--generateGenesis` | Regenerate genesis files. Implies `--cleanData` |
| `--cleanData` | Clean data directories before starting |
| `--stop` | Stop running nodes instead of starting them |
| `--forceKeyGen` | Force regeneration of hash-sig validator keys |
| `--validatorConfig <path>` | Custom config path (default: `$NETWORK_DIR/genesis/validator-config.yaml`) |
| `--dockerWithSudo` | Run docker commands with `sudo` |
| `--restart-client <name[,name...]>` | Stop, clear data, and restart specified node(s) with optional checkpoint sync |
| `--checkpoint-sync-url <url>` | Checkpoint state URL used when restarting a node (defaults to public leanpoint provider if omitted) |
```

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: .claude/skills/devnet-runner/references/checkpoint-sync.md
Line: 34-41

Comment:
**`isAggregator` field undocumented in schema reference**

The `isAggregator` field shown in this YAML snippet doesn't appear anywhere else in the repository — it's absent from the validator-config schema table in `SKILL.md` (the "full schema" and "Field reference" sections). This creates an inconsistency: a reader following `SKILL.md` would not know this field exists, and might think the example here is illustrative/fictional rather than a real config field.

If `isAggregator` is a real field supported by `spin-node.sh`, it should be added to the schema documentation in `SKILL.md`. If it isn't a real field and the aggregator role is determined some other way (e.g., alphabetically or by validator index), the example should be updated to reflect the actual mechanism.

How can I resolve this? If you propose a fix, please make it concise.

Last reviewed commit: 9e34b2f

Comment on lines +34 to +41
```yaml
# In lean-quickstart/<network-dir>/genesis/validator-config.yaml
validators:
- name: "ethlambda_0"
isAggregator: false
- name: "ethlambda_2"
isAggregator: true # restarting this stops finalization until it catches up
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isAggregator field undocumented in schema reference

The isAggregator field shown in this YAML snippet doesn't appear anywhere else in the repository — it's absent from the validator-config schema table in SKILL.md (the "full schema" and "Field reference" sections). This creates an inconsistency: a reader following SKILL.md would not know this field exists, and might think the example here is illustrative/fictional rather than a real config field.

If isAggregator is a real field supported by spin-node.sh, it should be added to the schema documentation in SKILL.md. If it isn't a real field and the aggregator role is determined some other way (e.g., alphabetically or by validator index), the example should be updated to reflect the actual mechanism.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .claude/skills/devnet-runner/references/checkpoint-sync.md
Line: 34-41

Comment:
**`isAggregator` field undocumented in schema reference**

The `isAggregator` field shown in this YAML snippet doesn't appear anywhere else in the repository — it's absent from the validator-config schema table in `SKILL.md` (the "full schema" and "Field reference" sections). This creates an inconsistency: a reader following `SKILL.md` would not know this field exists, and might think the example here is illustrative/fictional rather than a real config field.

If `isAggregator` is a real field supported by `spin-node.sh`, it should be added to the schema documentation in `SKILL.md`. If it isn't a real field and the aggregator role is determined some other way (e.g., alphabetically or by validator index), the example should be updated to reflect the actual mechanism.

How can I resolve this? If you propose a fix, please make it concise.

@pablodeymo pablodeymo merged commit 86543dc into main Mar 13, 2026
2 checks passed
@pablodeymo pablodeymo deleted the restart-client-reference branch March 13, 2026 17:43
@pablodeymo pablodeymo changed the title docs: update devnet-runner with information on restarting nodes docs: update devnet-runner skill with information on restarting nodes Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants