Golang Patterns
affaan-m/ECC
Go-specific design patterns and best practices including functional options, small interfaces, dependency injection, concurrency patterns, error handling, and package organization.
Type Thought-template (instantiate before use) - Trigger Pattern bridge|wormhole|axelar|layerzero|suibridge|crosschain|relay|vaa|guardian|emitter|ccip
$ npx skills add PlamenTSV/plamen --skill cross-chain-timing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install PlamenTSV/plamen cross-chain-timing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/PlamenTSV/plamen.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/skills/sui/cross-chain-timing .claude/skills/cross-chain-timing && rm -rf skills-srcUse ~/.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/
Install the "cross-chain-timing" agent skill from https://github.com/PlamenTSV/plamen/tree/main/agents/skills/sui/cross-chain-timing into .claude/skills/cross-chain-timing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-timing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/PlamenTSV/plamen/tree/main/agents/skills/sui/cross-chain-timingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add PlamenTSV/plamen --skill cross-chain-timing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install PlamenTSV/plamen cross-chain-timing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PlamenTSV/plamen.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agents/skills/sui/cross-chain-timing .agents/skills/cross-chain-timing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cross-chain-timing" agent skill from https://github.com/PlamenTSV/plamen/tree/main/agents/skills/sui/cross-chain-timing into .agents/skills/cross-chain-timing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-timing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add PlamenTSV/plamen --skill cross-chain-timing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install PlamenTSV/plamen cross-chain-timing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PlamenTSV/plamen.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agents/skills/sui/cross-chain-timing .cursor/skills/cross-chain-timing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cross-chain-timing" agent skill from https://github.com/PlamenTSV/plamen/tree/main/agents/skills/sui/cross-chain-timing into .cursor/skills/cross-chain-timing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-timing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/PlamenTSV/plamen.git --path agents/skills/sui/cross-chain-timing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add PlamenTSV/plamen --skill cross-chain-timing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install PlamenTSV/plamen cross-chain-timing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PlamenTSV/plamen.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agents/skills/sui/cross-chain-timing .gemini/skills/cross-chain-timing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cross-chain-timing" agent skill from https://github.com/PlamenTSV/plamen/tree/main/agents/skills/sui/cross-chain-timing into .gemini/skills/cross-chain-timing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-timing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install PlamenTSV/plamen cross-chain-timingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add PlamenTSV/plamen --skill cross-chain-timing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/PlamenTSV/plamen.git skills-src && mkdir -p .github/skills && cp -r skills-src/agents/skills/sui/cross-chain-timing .github/skills/cross-chain-timing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cross-chain-timing" agent skill from https://github.com/PlamenTSV/plamen/tree/main/agents/skills/sui/cross-chain-timing into .github/skills/cross-chain-timing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-timing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add PlamenTSV/plamen --skill cross-chain-timing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install PlamenTSV/plamen cross-chain-timing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PlamenTSV/plamen.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agents/skills/sui/cross-chain-timing .opencode/skills/cross-chain-timing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cross-chain-timing" agent skill from https://github.com/PlamenTSV/plamen/tree/main/agents/skills/sui/cross-chain-timing into .opencode/skills/cross-chain-timing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-timing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cross-chain-timingType Thought-template (instantiate before use) - Trigger Pattern bridge|wormhole|axelar|layerzero|suibridge|crosschain|relay|vaa|guardian|emitter|ccip
Cross Chain Timing is an agent skill from PlamenTSV/plamen. Type Thought-template (instantiate before use) - Trigger Pattern bridge|wormhole|axelar|layerzero|suibridge|crosschain|relay|vaa|guardian|emitter|ccip
Its SKILL.md is about 4.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: Autonomous Web3 security audit agent for Claude Code. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 795962b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cross Chain Timing loads about 4.1k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 1,652 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from PlamenTSV/plamen at commit 795962b, republished under its MIT licence (© PlamenTSV). 1,652 words, ~4,144 tokens.
.claude/skills/cross-chain-timing/SKILL.md (or your agent's skills folder).Type: Thought-template (instantiate before use) Trigger Pattern:
bridge|wormhole|axelar|layerzero|sui_bridge|cross_chain|relay|vaa|guardian|emitter|ccipInject Into: Breadth agents, depth-external Finding prefix:[CCT-N]Rules referenced: R1, R2, R4, R8, R10, R16 Research basis: Multi-block arbitrage windows, bridge latency exploitation
Covers: cross-chain message verification, timing asymmetry between Sui and other chains, object creation requirements for bridged assets, nonce/sequence replay protection, and cross-chain price relay staleness.
Sui's consensus model produces checkpoints every ~0.5-2 seconds and epochs every ~24 hours. Cross-chain messaging relies on bridge protocols (Wormhole, Axelar, Sui Bridge native) that verify Sui checkpoints before relaying messages. Sui's fast finality (~2-3s checkpointed) creates timing asymmetry with slower chains (Ethereum ~12min, rollups 10-60min).
bridge|wormhole|axelar|layerzero|sui_bridge|cross_chain|vaa|relay|messenger|
send_message|receive_message|bridge_transferFind all cross-chain messaging calls in {CONTRACTS}:
| # | Function | Module | Direction | Bridge Protocol | State Synced | Trigger |
|---|---|---|---|---|---|---|
| 1 | {func} | {module} | OUTBOUND/INBOUND | {protocol} | {what state} | {when sent} |
For each call, determine:
If Wormhole is detected:
| Component | Function/Object | Purpose | Location |
|---|---|---|---|
| VAA Verification | vaa::parse_and_verify() | Guardian signature verification | {module:line} |
| Message Posting | publish_message() | Send message from Sui | {module:line} |
| Token Bridge | complete_transfer() / create_wrapped() | Token bridging | {module:line} |
| Emitter Object | Shared or owned emitter state | Message source identity | {module:line} |
If the native Sui Bridge is detected:
| Component | Function/Object | Purpose | Location |
|---|---|---|---|
| Bridge Committee | Shared committee object | Validator attestation | {module:line} |
| Message Verification | verify_and_execute() | Committee signature check | {module:line} |
| Token Transfer | Bridge treasury operations | Lock/unlock bridged tokens | {module:line} |
Sui-specific outbound/inbound:
clock::timestamp_ms() provides millisecond timestamps -- check if timestamp freshness is validated on message receiptFor EACH inbound cross-chain message consumed by the protocol:
| # | Check | Status | Location | Notes |
|---|---|---|---|---|
| 1 | Guardian signature count >= quorum (13/19) | YES/NO | {line} | Does protocol verify guardian_set_index is current? |
| 2 | Guardian set is current (not expired) | YES/NO | {line} | Old guardian sets may be compromised |
| 3 | Emitter chain ID validated | YES/NO | {line} | Reject messages from unexpected source chains |
| 4 | Emitter address validated | YES/NO | {line} | Reject messages from unexpected contracts |
| 5 | Sequence number replay check | YES/NO | {line} | Each VAA should be processed exactly once |
| 6 | Consistency level validated | YES/NO | {line} | finalized vs confirmed |
| 7 | Payload format validated | YES/NO | {line} | Malformed payload handling |
| 8 | VAA object authenticity | YES/NO | {line} | Is VAA object from the actual Wormhole package? Type check on package address. |
Critical: Missing checks 1-5 = CRITICAL (arbitrary cross-chain message injection). Missing checks 6-8 = HIGH.
Sui-specific: On Sui, Wormhole VAAs are represented as objects. Verify the VAA object type comes from the authentic Wormhole package (check package address) -- an attacker could deploy a fake Wormhole package with matching type names.
For non-Wormhole bridges:
| # | Check | Status | Location | Notes |
|---|---|---|---|---|
| 1 | Message source authenticated (signatures/proofs) | YES/NO | {line} | |
| 2 | Source chain ID validated | YES/NO | {line} | |
| 3 | Source contract/address validated | YES/NO | {line} | |
| 4 | Replay protection (nonce/sequence/Table lookup) | YES/NO | {line} | |
| 5 | Message freshness (timestamp check vs clock::timestamp_ms) | YES/NO | {line} | |
| 6 | Relayer authorization (if applicable) | YES/NO | {line} |
| Chain | Optimistic Finality | Checkpointed Finality | Protocol Assumes |
|---|---|---|---|
| Sui | ~400ms (execution) | ~2-3s (checkpoint) | {which level?} |
| {Remote Chain} | {time} | {time} | {which level?} |
| Asymmetry Window | -- | -- | {max delay between chains} |
Critical question: When Sui processes a message about remote chain state, how old can that state be? Compute: max_staleness = remote_finality + bridge_relay_delay + sui_processing_time
For each piece of state synced cross-chain:
| State Variable | Source Chain | Sync Trigger | Max Staleness | Sui Functions Using It | Fresh Required? |
|---|---|---|---|---|---|
| {state} | {chain} | {event/periodic/manual} | {time} | {list functions} | YES/NO |
For each dependent function on Sui:
clock::timestamp_ms() against message timestamp)?Sui-specific checks:
Sui's fast finality means actions on Sui are visible almost immediately, but take time to propagate to remote chains:
1. Attacker acts on Sui (visible in ~2-3s checkpoint)
2. Sui message posted via bridge (begins relay)
3. TIMING WINDOW: Remote chain does not yet know about Sui action
4. Attacker acts on remote chain using pre-Sui-action state
5. Bridge message arrives on remote chain -- state updates
6. Attacker profited from acting on both chains during asymmetry1. State changes on remote chain (e.g., price moves, governance action)
2. Bridge message relay begins (latency: {estimate})
3. TIMING WINDOW: Sui still uses old remote state
4. Attacker acts on Sui using stale remote state (low tx cost)
5. Bridge message arrives on Sui -- state updates
6. Attacker profited from Sui action with stale stateCross-chain operations on Sui have unique object requirements:
| # | Check | Status | Notes |
|---|---|---|---|
| 1 | Recipient object/account exists before transfer arrival? | YES/NO | Who creates it? Who pays gas? |
| 2 | Are wrapped/bridged coin types created correctly? | YES/NO | TreasuryCap held by bridge, OTW consumed correctly? |
| 3 | What happens if recipient cannot receive the object? | {revert/queue/escrow} | Reverted transfers may be lost on source chain |
| 4 | Can attacker manipulate shared objects between message arrival and execution? | YES/NO | Consensus ordering is non-deterministic from user's perspective |
| 5 | Are bridged asset objects shared or owned? | {shared/owned} | Shared: contention risk. Owned: only recipient can use. |
| 6 | Is there a claim/complete mechanism or auto-delivery? | {claim/auto} | Claim: user must submit tx. Auto: relayer delivers. |
Sui-specific: Bridged tokens on Sui are typically Coin<BridgedType> where BridgedType was registered by the bridge via OTW. Verify: is the TreasuryCap for bridged tokens held exclusively by the bridge? Can anyone else mint bridged tokens? If TreasuryCap is stored in a shared object, check that access control prevents unauthorized minting.
| # | Check | Status | Location | Notes |
|---|---|---|---|---|
| 1 | Replay protection exists | YES/NO | {line} | Method: {Table<Hash,bool> / dynamic field / counter / unique object per message} |
| 2 | Replay check is BEFORE state changes | YES/NO | {line} | If after: partial replay possible |
| 3 | Out-of-order messages handled | YES/NO | {line} | Strict ordering vs any-order processing |
| 4 | Sequence gaps handled | YES/NO | {line} | What if message N+1 arrives before N? |
| 5 | Replay storage bounded | YES/NO | {line} | Table/Bag may grow unbounded (DoS via storage cost) |
| 6 | Double-spend across chains | YES/NO | {line} | Same asset spent on both chains during relay |
Sui replay patterns:
If oracle prices are relayed cross-chain:
| # | Check | Status | Notes |
|---|---|---|---|
| 1 | Price freshness validated on Sui side (clock::timestamp_ms) | YES/NO | Max acceptable age? |
| 2 | Price source authenticated (bridge signature) | YES/NO | Can fake price be relayed? |
| 3 | Price deviation bounds | YES/NO | Max delta from last known price? |
| 4 | Fallback if relay is delayed/offline | YES/NO | What happens to price-dependent operations? |
| 5 | Flash loan on source chain can manipulate relayed price | YES/NO | Is source price spot or TWAP? |
Staleness calculation: relay_staleness = source_price_age + bridge_latency + sui_processing
If relay_staleness > acceptable_threshold at worst case, price is stale. Apply Rule 16 (Oracle Integrity).
1. Attacker monitors {SOURCE_CHAIN} for state changes at {MONITOR_POINT}
2. State change triggers sync message (latency window opens: ~{LATENCY} minutes)
3. Attacker executes on Sui at {EXPLOIT_FUNCTION} using stale {STALE_STATE}
- Sui transaction cost is very low (<$0.01 per tx)
- PTB allows multi-step atomic exploitation
4. Sync message arrives on Sui, state updates
5. Profit = {PROFIT_FORMULA}
6. Cost = bridge_fees + Sui_gas + capital_lockup_cost
7. Viable if: profit > cost AND repeatableSui cost model: Sui gas is paid in SUI, typically very low (<$0.01 per tx). Cost barrier is primarily bridge fees and capital requirements. Low gas makes small-margin attacks more viable than on EVM.
clock::timestamp_ms()?clock::timestamp_ms() and rejects stale messages, window is bounded{CONTRACTS} -- List of modules to analyze
{BRIDGE_PROTOCOL} -- Specific bridge (Wormhole, Axelar, Sui Bridge, custom)
{SYNC_POINT} -- Function where inbound sync occurs
{DEPENDENT_FUNCTIONS} -- Functions that read synced state
{SOURCE_CHAIN} -- Chain where state originates
{DEST_CHAIN} -- Chain where stale state is exploited (may be Sui)
{MONITOR_POINT} -- What attacker monitors on source chain
{EXPLOIT_FUNCTION} -- Function attacker calls using stale state
{STALE_STATE} -- Specific state variable that becomes stale
{PROFIT_FORMULA} -- (new_value - old_value) * position_size
{MAX_DELTA} -- Maximum observed state change during sync window
{LATENCY} -- Estimated bridge latency in minutes| Field | Required | Description |
|---|---|---|
| bridge_inventory | yes | All cross-chain messaging infrastructure |
| verification_audit | yes | Message verification completeness |
| timing_windows | yes | Asymmetry windows with duration estimates |
| object_creation | yes | Bridged asset object requirements and failure modes |
| replay_protection | yes | Nonce/sequence management assessment |
| price_relay_audit | if applicable | Cross-chain price freshness and manipulation risk |
| arbitrage_viability | yes | Quantified attack profitability or NOT_VIABLE |
| finding | yes | CONFIRMED / REFUTED / CONTESTED |
| evidence | yes | Code locations with line numbers |
| Step | Required | Completed? | Notes |
|---|---|---|---|
| 1. Identify Cross-Chain Messaging Infrastructure | YES | All cross-chain calls enumerated | |
| 2. Cross-Chain Message Verification Audit | YES | VAA/message verification complete | |
| 3. Timing Window Analysis (both directions) | YES | Cite bridge documentation | |
| 4. Object Creation Requirements | YES | Bridged token TreasuryCap security | |
| 5. Nonce and Sequence Management | YES | Replay storage boundedness | |
| 6. Cross-Chain Price Relay Audit | IF price relay detected | ||
| 7. Quantify Arbitrage Viability | YES | Profit vs cost with real numbers |
After Step 2: If message verification is incomplete -> immediate finding, do not wait for timing analysis.
After Step 3: Feed timing windows to TEMPORAL_PARAMETER_STALENESS skill for parameters cached across chain boundaries.
After Step 4: If bridged token TreasuryCap is not exclusively held by bridge -> cross-reference with TYPE_SAFETY Coin/Balance section.
After Step 6: Feed price staleness findings to ORACLE_ANALYSIS if applicable.
If any step skipped, document valid reason (N/A, no cross-chain messaging, single chain only).
© PlamenTSV, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in agents/skills/sui/cross-chain-timing of PlamenTSV/plamen.
Open the folder on GitHubat commit 795962b
Cross Chain Timing 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cross Chain Timing this skillPlamenTSV/plamen | 303 | — | ~4.1k | Automated safety check: Pass | MIT | |
| Golang Patternsaffaan-m/ECC | 276k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Kotlin Exposed Patternsaffaan-m/ECC | 276k | 4 repos | ~5.5k | Automated safety check: Pass | MIT | |
| Dotnet Patternsaffaan-m/ECC | 276k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Fastapi Patternsaffaan-m/ECC | 276k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Python Patternsaffaan-m/ECC | 276k | — | ~2.3k | Automated safety check: Pass | MIT |
affaan-m/ECC
Go-specific design patterns and best practices including functional options, small interfaces, dependency injection, concurrency patterns, error handling, and package organization.
affaan-m/ECC
JetBrains Exposed ORM patterns including DSL queries, DAO pattern, transactions, HikariCP connection pooling, Flyway migrations, and repository pattern.
affaan-m/ECC
Idiomatic C and .NET patterns, conventions, dependency injection, async/await, and best practices for building robust, maintainable .NET applications.
affaan-m/ECC
FastAPI patterns for async APIs, dependency injection, Pydantic request and response models, OpenAPI docs, tests, security, and production readiness.
affaan-m/ECC
Python-specific design patterns and best practices including protocols, dataclasses, context managers, decorators, async/await, type hints, and package organization.
sickn33/agentic-awesome-skills
Reference document for monopoly patterns. An agent skill from sickn33/agentic-awesome-skills.
PlamenTSV/plamen
Prepare Solidity projects for a security audit — test coverage, test quality, NatSpec docs, code hygiene, dependency health, best-practice enforcement, deployment readiness, and project…
PlamenTSV/plamen
Trigger Pattern Always (used by all verifier agents) - Inject Into security-verifier agents (Phase 5)
PlamenTSV/plamen
Trigger Pattern Always (Aptos Move) - foundational security check - Inject Into Breadth agents, depth agents
PlamenTSV/plamen
Trigger Pattern Always (Sui Move) -- foundational security check - Inject Into Breadth agents, depth agents
PlamenTSV/plamen
Trigger Pattern ACCOUNTCLOSING flag detected (close/CloseAccount usage) - Inject Into Breadth agents, depth agents
PlamenTSV/plamen
Trigger Pattern Always required for Solana audits - Inject Into Breadth agents, depth agents
Type Thought-template (instantiate before use) - Trigger Pattern bridge|wormhole|axelar|layerzero|suibridge|crosschain|relay|vaa|guardian|emitter|ccip. Cross Chain Timing is an agent skill from PlamenTSV/plamen.
Cross Chain Timing fits situations like: pattern bridge|wormhole|axelar|layerzero|suibridge|crosschain|relay|vaa|guardian|emitter|ccip.
Run `npx skills add PlamenTSV/plamen --skill cross-chain-timing -a claude-code`. Or copy the skill folder (agents/skills/sui/cross-chain-timing in PlamenTSV/plamen) into .claude/skills/cross-chain-timing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add PlamenTSV/plamen --skill cross-chain-timing -a codex`. Or copy the skill folder (agents/skills/sui/cross-chain-timing in PlamenTSV/plamen) into .agents/skills/cross-chain-timing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PlamenTSV/plamen --skill cross-chain-timing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cross-chain-timing, .gemini/skills/cross-chain-timing, .github/skills/cross-chain-timing and .opencode/skills/cross-chain-timing in your project.
SKILL.md names no scripts, command-line tools or credentials: Cross Chain Timing is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cross Chain Timing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cross Chain Timing: Golang Patterns (affaan-m/ECC, 276k stars), Kotlin Exposed Patterns (affaan-m/ECC, 276k stars), Dotnet Patterns (affaan-m/ECC, 276k stars) and Fastapi Patterns (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
PlamenTSV (a GitHub user) maintains it in PlamenTSV/plamen, which has 303 GitHub stars. The repository holds 87 skills in this directory. The repository was last updated on September 26, 2026.
Source: PlamenTSV/plamen on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.