Agent skill

Temporal Parameter Staleness

by PlamenTSV in PlamenTSV/plamen

Trigger Pattern TEMPORAL flag (required) - Inject Into Breadth agents, depth-state-trace

MITAuto-check passed

Install Temporal Parameter Staleness

skills CLI
$ npx skills add PlamenTSV/plamen --skill temporal-parameter-staleness -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PlamenTSV/plamen temporal-parameter-staleness --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PlamenTSV/plamen.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/skills/sui/temporal-parameter-staleness .claude/skills/temporal-parameter-staleness && rm -rf skills-src

Use ~/.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/

Facts

Skill name
temporal-parameter-staleness
GitHub stars
303
Token cost
~2.4k tokens
SKILL.md length
1,016 words
Files
1
Skills in repo
87
Repo updated
First seen
Licence
MIT

At a glance

Trigger Pattern TEMPORAL flag (required) - Inject Into Breadth agents, depth-state-trace

  • Works in 5 steps: Enumerate Multi-Step Operations → Identify Cached Parameters → Model Staleness Impact → …
  • Pattern TEMPORAL flag (required) - Inject Into Breadth agents
  • SKILL.md covers Trigger Patterns, Reasoning Template, Key Questions (must answer all) and Common False Positives, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Temporal Parameter Staleness is an agent skill from PlamenTSV/plamen. Trigger Pattern TEMPORAL flag (required) - Inject Into Breadth agents, depth-state-trace

Its SKILL.md is about 2.4k 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.

When your agent uses it

  • Pattern TEMPORAL flag (required) - Inject Into Breadth agents
  • Depth-state-trace

Example prompts

  • “/temporal-parameter-staleness”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Enumerate Multi-Step Operations
  2. Identify Cached Parameters
  3. Model Staleness Impact
  4. Retroactive Application Analysis
  5. Assess Severity

What it can do on your machine

Read from SKILL.md and the folder at commit 795962b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Temporal Parameter Staleness loads about 2.4k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 1,016 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~29
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from PlamenTSV/plamen at commit 795962b, republished under its MIT licence (© PlamenTSV). 1,016 words, ~2,415 tokens.

Download SKILL.mdSave it as .claude/skills/temporal-parameter-staleness/SKILL.md (or your agent's skills folder).
name
temporal-parameter-staleness
description
Trigger Pattern TEMPORAL flag (required) - Inject Into Breadth agents, depth-state-trace

Skill: Temporal Parameter Staleness Analysis (Sui)

Trigger Pattern: TEMPORAL flag (required) Inject Into: Breadth agents, depth-state-trace Purpose: Analyze cached parameters in multi-step operations on Sui for staleness when capability holders change them mid-operation. Time source on Sui is the shared Clock object at address 0x6.

Trigger Patterns

epoch|period|duration|delay|cooldown|lock_period|timelock|
unbonding_period|claim_delay|withdraw_delay|maturity_time|
clock::timestamp_ms|tx_context::epoch

Reasoning Template

Step 1: Enumerate Multi-Step Operations

Find all operations that span multiple transactions:

OperationStep 1 (Initiate)Wait ConditionStep N (Complete)
{op_name}{module::initiate_fn}(){wait_condition}{module::complete_fn}()

Sui-specific multi-step patterns:

  • Unstaking: request_withdraw() -> wait epochs -> complete_withdraw()
  • Governance: propose() -> wait voting period -> execute()
  • Vesting: create_vest() -> wait lock period -> claim()
  • Cooldowns: initiate_action() -> wait cooldown (clock-based) -> finalize_action()

Time sources on Sui:

  • clock::timestamp_ms(clock: &Clock): Real-time milliseconds. Shared object at 0x6. Monotonically increasing. Used for time-based delays.
  • tx_context::epoch(ctx: &TxContext): Epoch number. Incremented roughly every 24 hours. Used for epoch-based staking/unstaking.

For each multi-step operation:

  • What parameters are read/cached at Step 1?
  • What parameters are re-read at Step N?
  • What parameters are used but NOT re-read at Step N? (stored in user's owned object or shared object field)
Step 2: Identify Cached Parameters

For each parameter used across steps:

ParameterStored InRead At StepCached?Admin-Changeable?Re-Validated At Completion?
{param}Shared config objectinitiate() L{N}YES/NOYES/NO (requires {CapType})YES/NO
{delay_param}User's receipt objectinitiate() L{N}YES (in receipt)YES/NOYES/NO

Sui caching patterns:

  • Parameter stored in shared config object: read at initiation, may change before completion
  • Parameter stored in user's receipt/ticket object (owned): cached at initiation, immutable until completion
  • Parameter in dynamic field: may be updated independently of the operation

Red flags: Parameter is cached at Step 1 AND changeable via admin capability AND NOT re-validated at Step N.

Step 3: Model Staleness Impact

For each cached parameter that can become stale:

Scenario A: Parameter INCREASES between steps
1. User initiates at Step 1 with param = X (stored in receipt)
2. Admin (via AdminCap) changes param to X + delta in shared config
3. User completes at Step N
4. Impact: {what happens with stale value X when current is X + delta}

Scenario B: Parameter DECREASES between steps
1. User initiates at Step 1 with param = X
2. Admin changes param to X - delta
3. User completes at Step N
4. Impact: {what happens with stale value X when current is X - delta}

BOTH directions are mandatory -- increase and decrease often have different impacts.

Sui-specific staleness vectors:

  • Epoch-based operations: If unstaking delay is cached as "epoch + N" and N is changed, the cached deadline may be too early or too late
  • Clock-based cooldowns: If cooldown duration changes, users with in-flight operations may bypass or be locked longer
  • Fee parameters: If fee rate changes between request and execution, user pays stale rate

PTB bypass check (CRITICAL): Can Steps 1 and N both be executed within a single PTB?

  • If YES with time-based waits (clock::timestamp_ms comparisons): bypassed -- same Clock timestamp within a PTB
  • If YES with epoch-based waits (tx_context::epoch comparisons): bypassed -- same epoch within a PTB
  • Only hot-potato receipts (zero-ability structs) or consumed/destroyed objects can enforce multi-transaction separation
  • If PTB bypass is possible -> escalate severity (time controls are ineffective)
Step 3b: Update Source Audit

For each parameter updated from an external source:

  • Is the source (e.g., oracle, clock, epoch) the correct representation of what this parameter tracks?
  • Should this parameter be fixed for a period (e.g., per epoch, per cycle) rather than continuously refreshed?
  • Which functions update it? Which functions SHOULD update it? Any mismatch?
  • Sui-specific: Does the parameter depend on clock::timestamp_ms (continuous) vs tx_context::epoch (discrete)? Is the choice appropriate?
  • Unit consistency: Verify all timestamp arithmetic uses consistent units. clock::timestamp_ms() returns milliseconds; external sources (Pyth publish_time, cross-chain timestamps) typically use seconds. Any comparison or subtraction without ×1000 conversion → FINDING.
Step 4: Retroactive Application Analysis

For fee/rate parameters that apply to existing state:

ParameterApplies ToRetroactive?Impact
{fee_param}{what it affects}YES/NO{if retroactive: who is harmed}

Pattern: Fee changes that affect already-accrued rewards or already-initiated operations are retroactive.

Sui-specific retroactive patterns:

  • Staking reward rate changed -> applies to already-staked positions?
  • Fee rate changed -> applies to in-flight withdrawals?
  • Slippage tolerance changed -> applies to pending swap requests?
Show full SKILL.md (432 more words)Show less
Step 5: Assess Severity

For each staleness issue:

  • Who is affected? (single user with pending operation, all users with pending operations, protocol)
  • Is the impact bounded? (capped by fee range, max delay, etc.)
  • Can it be exploited intentionally? (admin front-running users, users racing admin changes)
  • Is there a recovery path? (cancel and re-initiate, admin override)

Severity factors specific to Sui:

  • Epoch transitions are infrequent (~24h) -- staleness impact per epoch change is bounded
  • Clock-based parameters can change at any time -- more exploitable
  • Shared object contention may delay admin parameter changes, creating a natural buffer

Key Questions (must answer all)

  1. What multi-step operations exist? (request/claim, deposit/lock/withdraw, propose/vote/execute)
  2. For each cached parameter: can admin (via capability) change it between steps?
  3. What happens if a delay DECREASES after initiation? (users locked longer than necessary)
  4. What happens if a delay INCREASES after initiation? (users can claim too early)
  5. Are fees applied retroactively to existing positions or only to new ones?
  6. Is there a maximum parameter range (enforced bounds) that limits the staleness impact?

Common False Positives

  • Immutable parameters: If the parameter is set at object creation and has no setter function, no staleness
  • Bounded ranges: If min/max bounds limit the change magnitude, impact may be Low
  • User can cancel and re-initiate: If users can abort pending operations with new parameters, reduced severity
  • Timelock on parameter changes: If parameter changes require a delay (e.g., governance proposal), users have time to react
  • Per-operation snapshots: If each operation stores its own copy of the parameter (in receipt/ticket object), it is isolated from changes

Instantiation Parameters

{CONTRACTS}           -- Move modules to analyze
{MULTI_STEP_OPS}      -- Identified multi-step operations
{CACHED_PARAMS}       -- Parameters cached at initiation
{ADMIN_PARAMS}        -- Admin-changeable parameters (via capability)
{DELAY_PARAMS}        -- Delay/cooldown parameters (clock or epoch based)
{FEE_PARAMS}          -- Fee/rate parameters that may apply retroactively
{CLOCK_USAGE}         -- Functions using clock::timestamp_ms
{EPOCH_USAGE}         -- Functions using tx_context::epoch

Output Schema

FieldRequiredDescription
multi_step_opsyesList of multi-step operations found
cached_paramsyesParameters cached across steps
staleness_vectorsyesHow cached params can become stale
retroactive_feesyesFees applied retroactively
findingyesCONFIRMED / REFUTED / CONTESTED
evidenceyesCode locations with line numbers
step_executionyesStatus for each step

Step Execution Checklist (MANDATORY)

StepRequiredCompleted?Notes
1. Enumerate Multi-Step OperationsYES
2. Identify Cached ParametersYES
3. Model Staleness Impact (both directions)YES
3 (PTB bypass check)YESCan Steps 1+N execute in same PTB?
3b. Update Source AuditYES
4. Retroactive Application AnalysisYES
5. Assess SeverityYES
Cross-Reference Markers

After Step 2: If cached parameters are admin-changeable via capability -> MUST complete Step 3 with BOTH increase and decrease scenarios.

After Step 3 (PTB bypass): If PTB bypass is possible -> escalate severity (time controls are ineffective). Only hot-potato receipts enforce multi-transaction separation.

After Step 4: Cross-reference with SEMI_TRUSTED_ROLES.md for capability holders that change these parameters -- is the parameter change within or outside the role's stated trust boundary?

© PlamenTSV, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in agents/skills/sui/temporal-parameter-staleness of PlamenTSV/plamen.

Open the folder on GitHubat commit 795962b

Compare with similar skills

Temporal Parameter Staleness 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.

Temporal Parameter Staleness compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Temporal Parameter Staleness this skillPlamenTSV/plamen303—~2.4kAutomated safety check: PassMIT
Cleaning Up Stale Feature FlagsPostHog/posthog40k—~8.9kAutomated safety check: WarnCustom licence
Golang Patternsaffaan-m/ECC276k—~1.1kAutomated safety check: PassMIT
Dotnet Patternsaffaan-m/ECC276k1 repos~2.3kAutomated safety check: PassMIT
Fastapi Patternsaffaan-m/ECC276k—~2.3kAutomated safety check: PassMIT
Flagsvercel/next.js143k—~746Automated safety check: PassMIT

Similar skills

  • Official

    Identify stale feature flags in a PostHog project and clean up the code that checks them.

    40k GitHub stars~8.9k tokensUpdated today
    DevelopmentAuto-check: warnings
  • 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.

    276k GitHub stars~1.1k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Dotnet Patterns

    affaan-m/ECC

    Idiomatic C and .NET patterns, conventions, dependency injection, async/await, and best practices for building robust, maintainable .NET applications.

    276k GitHub starsUsed in 1 repo~2.3k tokens
    DevelopmentAuto-check passed
  • Fastapi Patterns

    affaan-m/ECC

    FastAPI patterns for async APIs, dependency injection, Pydantic request and response models, OpenAPI docs, tests, security, and production readiness.

    276k GitHub stars~2.3k tokensUpdated 4 days ago
    Backend & APIsAuto-check passed
  • Flags

    vercel/next.js

    Official

    How to add or modify Next.js experimental feature flags end-to-end.

    143k GitHub stars~746 tokensUpdated today
    DevelopmentAuto-check passed
  • JetBrains Exposed ORM patterns including DSL queries, DAO pattern, transactions, HikariCP connection pooling, Flyway migrations, and repository pattern.

    276k GitHub starsUsed in 4 repos~5.5k tokens
    DatabasesAuto-check passed

More from PlamenTSV/plamen

All 87 skills in this repo
  • Audit Prep

    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…

    303 GitHub stars~3.7k tokensUpdated 13 days ago
    Auto-check passed
  • Verification Protocol

    PlamenTSV/plamen

    Trigger Pattern Always (used by all verifier agents) - Inject Into security-verifier agents (Phase 5)

    303 GitHub stars~3.5k tokensUpdated 13 days ago
    Auto-check passed
  • Ability Analysis

    PlamenTSV/plamen

    Trigger Pattern Always (Aptos Move) - foundational security check - Inject Into Breadth agents, depth agents

    303 GitHub stars~3.3k tokensUpdated 13 days ago
    Auto-check passed
  • Ability Analysis

    PlamenTSV/plamen

    Trigger Pattern Always (Sui Move) -- foundational security check - Inject Into Breadth agents, depth agents

    303 GitHub stars~3.2k tokensUpdated 13 days ago
    Auto-check passed
  • Account Lifecycle

    PlamenTSV/plamen

    Trigger Pattern ACCOUNTCLOSING flag detected (close/CloseAccount usage) - Inject Into Breadth agents, depth agents

    303 GitHub stars~1.2k tokensUpdated 13 days ago
    Auto-check passed
  • Account Validation

    PlamenTSV/plamen

    Trigger Pattern Always required for Solana audits - Inject Into Breadth agents, depth agents

    303 GitHub stars~1.7k tokensUpdated 13 days ago
    Auto-check passed

Questions about Temporal Parameter Staleness

What does Temporal Parameter Staleness do?

Trigger Pattern TEMPORAL flag (required) - Inject Into Breadth agents, depth-state-trace. Temporal Parameter Staleness is an agent skill from PlamenTSV/plamen.

When should I use Temporal Parameter Staleness?

Temporal Parameter Staleness fits situations like: pattern TEMPORAL flag (required) - Inject Into Breadth agents; depth-state-trace.

How do I install Temporal Parameter Staleness in Claude Code?

Run `npx skills add PlamenTSV/plamen --skill temporal-parameter-staleness -a claude-code`. Or copy the skill folder (agents/skills/sui/temporal-parameter-staleness in PlamenTSV/plamen) into .claude/skills/temporal-parameter-staleness in your project. Claude Code loads it when a task matches its description.

How do I install Temporal Parameter Staleness in Codex?

Run `npx skills add PlamenTSV/plamen --skill temporal-parameter-staleness -a codex`. Or copy the skill folder (agents/skills/sui/temporal-parameter-staleness in PlamenTSV/plamen) into .agents/skills/temporal-parameter-staleness in your project. Codex loads it when a task matches its description.

Can I use Temporal Parameter Staleness in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PlamenTSV/plamen --skill temporal-parameter-staleness -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/temporal-parameter-staleness, .gemini/skills/temporal-parameter-staleness, .github/skills/temporal-parameter-staleness and .opencode/skills/temporal-parameter-staleness in your project.

What does Temporal Parameter Staleness need to run?

SKILL.md names no scripts, command-line tools or credentials: Temporal Parameter Staleness is instructions for the agent only.

Does Temporal Parameter Staleness access the network?

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.

Is Temporal Parameter Staleness safe to install?

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.

What licence does Temporal Parameter Staleness use?

Temporal Parameter Staleness is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Temporal Parameter Staleness use?

About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Temporal Parameter Staleness?

Skills that share tags, products or a category with Temporal Parameter Staleness: Cleaning Up Stale Feature Flags (PostHog/posthog, 40k stars), Golang 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.

Who maintains Temporal Parameter Staleness?

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.