بنقرة واحدة
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 ويثبّتها لك.
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)
استنادا إلى تصنيف SOC المهني
| 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.
Parity measures observable-surface coverage (docs/PARITY.md), not internal
sameness. An item is a "gap" only if it affects the observable / interop surface
(hashes, result/meta XDR, SCP/overlay wire, archive format, HTTP/RPC/CLI, crypto)
and is missing or partial. An internal helper implemented differently but
producing the same observable output is NOT a gap — record it under
Architectural Differences.
Count the functions/components from Step 3:
implemented = items marked Fullgaps = items marked None or Partial that affect the observable surface and 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).docs/PARITY.md); if it is, it is a real gap, not an omission.docs/PARITY.md) — expected, and
never counted as gaps.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).