원클릭으로
parity-check
Analyze or update a crate's PARITY_STATUS.md for stellar-core parity
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyze or update a crate's PARITY_STATUS.md for stellar-core parity
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
One tick of a CI watchdog — check main-branch GHA status; spawn an agent to fix if failing and no investigation is in flight.
One tick of the henyey mainnet monitor — checks, metrics scan, deploy, status report
Continuous always-on orchestrator for the henyey project pipeline. Each pass queries the board, central-picks up to N actionable issues by priority, and fans out parallel foreground specialist sub-agents (triage/plan/do/review-pr) with the right Claude model per stage. Owns concurrency, conflict-avoidance, CI pipelining, sibling-nit consolidation, and a self-reflection pass that files pipeline-improvement issues. Replaces scripts/project-tick-loop.sh. Use when the operator asks to "run the loop", "process the board continuously", or "keep the pipeline going".
Single-pick dispatcher primitive for the henyey project pipeline. One tick = pick one actionable issue from the project board and dispatch the right specialist sub-agent for its current state. Used for manual single picks and `--issue=` recovery; the continuous orchestrator is `/project-loop`, which owns concurrency centrally. Use when the user asks to "run a tick", "pick up an issue", or "process one board item".
Run two parallel adversarial PR reviewers and combine their verdicts with external PR reviews (GH Copilot bot, humans, other bots) and CI state into a merge decision. Agent reviewers post structured comment verdicts (since the agent is the PR author and cannot self-approve via GH native review). External CHANGES_REQUESTED reviews block merge identically to agent CHANGES_REQUESTED. Operates on issues in `in-review`. Auto-merges with --admin on all-green (after filing follow-up issues for unaddressed inline review comments, so non-critical feedback is preserved as backlog instead of dropped); bounces to `ready-for-doing` on any request-changes or CI red; blocks after 3 bounce-backs on the same code state. At the lifetime cap (6 bounces since last `## Review: Reset`) the PR enters **force-converge mode**: if CI is green, the PR auto-merges and unresolved reviewer concerns become follow-up issues; only red/pending CI at the cap still blocks. Use when invoked by /project-tick with an issue in in-review, or manuall
Audit a Rust crate's adherence to its Stellar protocol spec (spec-driven, walks every normative claim)
| name | parity-check |
| description | Analyze or update a crate's PARITY_STATUS.md for stellar-core parity |
| argument-hint | <crate-path> [--apply] |
Parse $ARGUMENTS:
$TARGET with it.--apply is present, set $MODE = apply. Otherwise set $MODE = review.Analyze the Rust crate at $TARGET for stellar-core parity and produce a
standardized PARITY_STATUS.md.
$MODE = review (default): Report findings to the conversation. Do NOT
write or modify any files.$MODE = apply: Write or update $TARGET/PARITY_STATUS.md using the
standardized format below. Also update the parity column in the main
README.md Crate Overview table if the computed percentage changed.Use this table to find the upstream stellar-core directory for each crate.
| Crate | Upstream Directory |
|---|---|
crates/tx | stellar-core/src/transactions/ |
crates/scp | stellar-core/src/scp/ |
crates/db | stellar-core/src/database/ |
crates/common | stellar-core/src/util/ |
crates/crypto | stellar-core/src/crypto/ |
crates/ledger | stellar-core/src/ledger/ |
crates/bucket | stellar-core/src/bucket/ |
crates/herder | stellar-core/src/herder/ |
crates/overlay | stellar-core/src/overlay/ |
crates/history | stellar-core/src/history/ |
crates/historywork | stellar-core/src/historywork/ |
crates/work | stellar-core/src/work/ |
crates/app | stellar-core/src/main/ |
crates/henyey | stellar-core/src/main/ (CLI subset) |
Some crates may reference additional upstream directories (e.g., crates/db
also covers SQL operations in src/overlay/PeerManager.*,
src/herder/HerderPersistence*.*, etc.). Note these in the File Mapping
section.
Follow these six steps in order.
Look up the crate in the mapping table above. If the crate spans multiple upstream directories, note all of them.
Read .h files in the upstream directory first. These define the API surface:
classes, public methods, enums, and constants. This gives you the complete
list of functionality to check against.
Read all .rs files in $TARGET/src/. For each upstream class/function
identified in Step 2, determine whether there is a Rust equivalent.
Classify each as:
Scan upstream test files (*Tests.cpp, *Test.cpp) to understand test
coverage expectations. Count TEST_CASE and SECTION macros for each
test file.
Count the functions/components from Step 3:
implemented = items marked Fullgaps = items marked None or Partial that are NOT intentional omissionsomissions = items deliberately excluded with documented rationaleParity % = implemented / (implemented + gaps) (omissions excluded from
both sides).
Compare Rust #[test] functions against upstream test coverage from Step 4.
Identify areas where the Rust crate has significantly fewer tests than upstream.
.h files first — they define the API surface concisely..cpp files only when the header is ambiguous or you need to
understand specific behavior to classify parity accurately.stellar-core/ test files exhaustively. Scan for TEST_CASE
and SECTION counts to characterize coverage.The output PARITY_STATUS.md MUST use this structure. All sections are
required unless marked optional.
# stellar-core Parity Status
**Crate**: `henyey-<name>`
**Upstream**: `stellar-core/src/<dir>/`
**Overall Parity**: N%
**Last Updated**: YYYY-MM-DD
## Summary
| Area | Status | Notes |
|------|--------|-------|
| ... | Full / Partial / None | ... |
(5-15 rows covering major functional areas)
## File Mapping
| stellar-core File | Rust Module | Notes |
|--------------------|-------------|-------|
| `Foo.h` / `Foo.cpp` | `foo.rs` | ... |
## Component Mapping
### <module_name> (`module.rs`)
Corresponds to: `UpstreamFile.h`
| stellar-core | Rust | Status |
|--------------|------|--------|
| `functionName()` | `function_name()` | Full |
(Repeat subsection per module)
## Intentional Omissions
Features excluded by design. These are NOT counted against parity %.
| stellar-core Component | Reason |
|------------------------|--------|
| `FooBar` | Not needed because ... |
## Gaps
Features not yet implemented. These ARE counted against parity %.
| stellar-core Component | Priority | Notes |
|------------------------|----------|-------|
| `BazQux` | High / Medium / Low | ... |
(If no gaps, write "No known gaps.")
## Architectural Differences
1. **<Topic>**
- **stellar-core**: ...
- **Rust**: ...
- **Rationale**: ...
## Test Coverage
| Area | stellar-core Tests | Rust Tests | Notes |
|------|-------------------|------------|-------|
| ... | N TEST_CASE / M SECTION | K #[test] | ... |
### Test Gaps
(List specific upstream test areas with limited Rust equivalents)
## Verification Results
*(Optional — include only when concrete verification data exists)*
Evidence of parity: testnet verification results, hash matches,
transaction replay statistics, etc.
## Parity Calculation
| Category | Count |
|----------|-------|
| Implemented (Full) | N |
| Gaps (None + Partial) | M |
| Intentional Omissions | O |
| **Parity** | **N / (N + M) = X%** |
Full, Partial, None..h file (or .h/.cpp pair).TEST_CASE / SECTION counts for upstream, #[test] counts for Rust.$MODE = review)Present findings as a structured report in the conversation:
## Parity Review: henyey-<name>
**Computed Parity**: N% (X implemented, Y gaps, Z omissions)
### Key Findings
- ...
### Summary Table
| Area | Status | Notes |
|------|--------|-------|
### Gaps
- ...
### Recommendations
- ...
Do not write any files in review mode.
$MODE = apply)When $MODE = apply:
$TARGET/PARITY_STATUS.md using the standardized format above.PARITY_STATUS.md already exists, preserve any Verification
Results data (testnet runs, hash matches, resolved issues). Reformat
everything else to match the standard.README.md (lines ~192-227) if the computed
percentage differs from what's currently shown. Use the exact computed
percentage (not a tilde approximation).