opencode-skills-collection 4.1.3 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +23 -1
  2. package/bundled-skills/ai-agent-evaluation-benchmarking/SKILL.md +124 -0
  3. package/bundled-skills/ai-agent-tool-routing/SKILL.md +136 -0
  4. package/bundled-skills/ai-code-generation-guardrails/SKILL.md +142 -0
  5. package/bundled-skills/ai-prompt-regression-testing/SKILL.md +130 -0
  6. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +11 -7
  7. package/bundled-skills/cline-pilot/README.md +138 -0
  8. package/bundled-skills/cline-pilot/SKILL.md +301 -0
  9. package/bundled-skills/cline-pilot/assets/global-memory-bank-prompt.en.md +66 -0
  10. package/bundled-skills/cline-pilot/assets/global-memory-bank-prompt.md +56 -0
  11. package/bundled-skills/cline-pilot/references/cold-start.md +58 -0
  12. package/bundled-skills/cline-pilot/references/decision-log.example.md +9 -0
  13. package/bundled-skills/cline-pilot/references/local-config.example.md +26 -0
  14. package/bundled-skills/cline-pilot/references/project-profiles.example.md +10 -0
  15. package/bundled-skills/cline-pilot/scripts/session_report.py +151 -0
  16. package/bundled-skills/cross-chain-relayer-audit/SKILL.md +136 -0
  17. package/bundled-skills/defi-yield-strategy-allocator/SKILL.md +124 -0
  18. package/bundled-skills/dropthehassle-publish/SKILL.md +151 -0
  19. package/bundled-skills/smart-contract-formal-verification/SKILL.md +136 -0
  20. package/bundled-skills/smart-contract-upgrade-governance/SKILL.md +130 -0
  21. package/bundled-skills/soroban-contract-audit/SKILL.md +136 -0
  22. package/bundled-skills/soroban-liquidity-pool/SKILL.md +118 -0
  23. package/bundled-skills/soroban-oracle-data-feed-audit/SKILL.md +118 -0
  24. package/bundled-skills/soroban-storage-ttl-lifecycle/SKILL.md +118 -0
  25. package/bundled-skills/soroban-token-minter/SKILL.md +124 -0
  26. package/bundled-skills/stellar-anchor-integration/SKILL.md +136 -0
  27. package/bundled-skills/stellar-asset-clawback-compliance/SKILL.md +118 -0
  28. package/bundled-skills/stellar-escrow-timelock/SKILL.md +118 -0
  29. package/bundled-skills/stellar-multisig-threshold-coordinator/SKILL.md +112 -0
  30. package/bundled-skills/waf-setup/SKILL.md +1 -1
  31. package/bundled-skills/web3-rate-limiting-circuit-breaker/SKILL.md +130 -0
  32. package/bundled-skills/web3-transaction-relayer-pool/SKILL.md +124 -0
  33. package/bundled-skills/zk-proof-verification-pipeline/SKILL.md +124 -0
  34. package/package.json +1 -1
  35. package/skills_index.json +805 -0
@@ -0,0 +1,9 @@
1
+ # Decision Log — habits & preferences learned per TAG CLASS 决策流水(按标签类记)
2
+
3
+ > Log each user correction/decision with its TAG CLASS.
4
+ > ≥2 consistent samples in one tag class → distill into the 标签偏好区 section of SKILL.md.
5
+ > 同标签类 ≥2 个一致样本 → 蒸馏进 SKILL.md 的标签偏好区。
6
+
7
+ | Date 日期 | Tag class 标签类 | Scenario 场景 | My choice 我的选择 | User correction 用户纠正 | Reason 理由 |
8
+ |------|--------|------|---------------|------------|---------|
9
+ | — | — | — | — | — | — |
@@ -0,0 +1,26 @@
1
+ # Local Config — YOUR MACHINE (private, not tracked)
2
+
3
+ Copy this file to `local-config.md` and fill in YOUR values before first use.
4
+ 本文件为模板;复制为 `local-config.md` 后填入你自己的值。
5
+
6
+ ## Dev Environment 开发环境
7
+ | Item 项目 | Value 值 |
8
+ |----|-----|
9
+ | conda env | e.g. `dev-env` |
10
+ | Pre-launch | `source <your rc/env file> && conda activate <env>` |
11
+ | Dirty-stack fix | `unset CONDA_PREFIX CONDA_PREFIX_1 CONDA_PROMPT_MODIFIER CONDA_SHLVL CONDA_DEFAULT_ENV` (if your agent session inherits broken CONDA state) |
12
+ | Toolchain | e.g. `java` 21 / `mvn` 3.9+ / `node` |
13
+ | Branch rules | e.g. main is push-protected; feature branches only |
14
+
15
+ ## Launch Template 启动模板
16
+ ```bash
17
+ zsh -c '<unset CONDA_* if dirty>; source <env> && conda activate <env> && cd <project> && cline ...'
18
+ ```
19
+ Self-check before launch: python points to target env / toolchain versions / `git branch --show-current` = task branch.
20
+
21
+ ## LLM Endpoint
22
+ - base: `http://<your openai-compatible endpoint>/v1`, model: `<model-id>`
23
+ - Probe before launch: `curl -s -H 'Authorization: Bearer <key>' <base>/models | head -c 200`
24
+
25
+ ## Scratch Workspace 临时工作区
26
+ `<path>/worktree/` — worktrees / subagent dirs / temp builds MUST stay here; never scatter into `~`.
@@ -0,0 +1,10 @@
1
+ # Project Profiles — intro + tags only, NO architecture 项目画像(仅简介+标签,不记架构)
2
+
3
+ > Register a one-line intro + tags per project so learned preferences can be
4
+ > applied by TAG CLASS. Architecture details live in the project's own memory
5
+ > bank + clinerules, never here.
6
+ > 按工程登记简介+标签,以便按“标签类”套用已学偏好。架构细节归工程自己的 memory bank,不放这里。
7
+
8
+ | Project 工程 | Path 路径 | One-line intro 简介 | Side 端 | Lifecycle 生命周期 | Risk 风险面 |
9
+ |------|------|----------|----|---------|--------|
10
+ | — | — | — | backend/frontend 前后端 | long-term/short 长护/短期 | prod-data?/public API? 是否生产数据/对外接口 |
@@ -0,0 +1,151 @@
1
+ #!/usr/bin/env python3
2
+ """session_report.py — Cline 会话活动摘要 + 工程进度硬证据。
3
+
4
+ 用法:
5
+ python3 session_report.py # 最新会话 10 条 + 当前目录证据
6
+ python3 session_report.py 15 # 最近 15 条
7
+ python3 session_report.py /path/to/repo # 指定工程目录(自动识别 sid 或路径)
8
+
9
+ 输出:
10
+ - 会话最近 N 条消息(role / text / tool / 结果摘要)
11
+ - 工程硬证据:分支、git status、最近 commit、最新测试报告首行(多栈:Maven surefire / JUnit-xml / pytest 等)
12
+ 输出 / output: branch, git status, last commit, newest test-report lines (stack-agnostic)
13
+ 只读操作,不改任何文件。stdlib only。
14
+ """
15
+ import glob
16
+ import json
17
+ import os
18
+ import subprocess
19
+ import sys
20
+
21
+
22
+ SESSIONS_ROOT = os.path.join(os.path.expanduser("~"), ".cline", "data", "sessions")
23
+
24
+
25
+ def latest_session_id():
26
+ if not os.path.isdir(SESSIONS_ROOT):
27
+ return None
28
+ entries = []
29
+ for e in os.listdir(SESSIONS_ROOT):
30
+ p = os.path.join(SESSIONS_ROOT, e)
31
+ if os.path.isdir(p):
32
+ entries.append((os.path.getmtime(p), e))
33
+ return max(entries)[1] if entries else None
34
+
35
+
36
+ def load_session(sid):
37
+ p = os.path.join(SESSIONS_ROOT, sid, sid + ".messages.json")
38
+ if not os.path.exists(p):
39
+ return None, None
40
+ with open(p, encoding="utf-8") as f:
41
+ d = json.load(f)
42
+ return d.get("messages", []), d.get("updated_at")
43
+
44
+
45
+ def summarize(msgs, n):
46
+ lines = []
47
+ for m in (msgs or [])[-n:]:
48
+ role = m.get("role", "?")
49
+ content = m.get("content")
50
+ if isinstance(content, str):
51
+ lines.append("[%s] %s" % (role, content[:160].strip()))
52
+ continue
53
+ for c in content or []:
54
+ t = c.get("type")
55
+ if t == "text":
56
+ lines.append("[%s|text] %s" % (role, (c.get("text") or "")[:160].strip()))
57
+ elif t in ("tool_use", "toolCall", "tool"):
58
+ name = c.get("name") or c.get("toolName") or ""
59
+ inp = c.get("input") or c.get("arguments") or {}
60
+ lines.append("[%s|tool:%s] %s" % (role, name, json.dumps(inp, ensure_ascii=False)[:150]))
61
+ elif t == "tool_result":
62
+ r = c.get("content") or c.get("output") or ""
63
+ r = r if isinstance(r, str) else json.dumps(r, ensure_ascii=False)
64
+ lines.append("[%s|result] %s" % (role, str(r)[:150]))
65
+ else:
66
+ lines.append("[%s|%s] %s" % (role, t, json.dumps(c, ensure_ascii=False)[:120]))
67
+ return lines
68
+
69
+
70
+ def sh(cmd, cwd):
71
+ try:
72
+ r = subprocess.run(cmd, shell=True, cwd=cwd, capture_output=True, text=True, timeout=60)
73
+ out = r.stdout.strip()
74
+ return out if out else "(exit %d %s)" % (r.returncode, r.stderr.strip()[:60])
75
+ except Exception as e:
76
+ return "(error %s)" % e
77
+
78
+
79
+ # 多栈测试报告候选(按优先级)/ multi-stack test-report candidate patterns
80
+ REPORT_GLOBS = [
81
+ "**/target/surefire-reports/*.txt", # Maven/JUnit
82
+ "**/junit-xml/TEST-*.xml", # Node (vitest/jest jasmine2)
83
+ "**/build/test-results/test/*.xml", # Kotlin/Gradle
84
+ "**/.pytest_cache/v/cache/lastfailed", # pytest
85
+ "**/coverage/*.html", # 覆盖率产物兜底
86
+ ]
87
+
88
+
89
+ def repo_evidence(root):
90
+ if not os.path.exists(os.path.join(root, ".git")) and not os.path.isdir(os.path.join(root, ".git")):
91
+ try:
92
+ r = subprocess.run(["git", "rev-parse", "--show-toplevel"], cwd=root, capture_output=True, text=True, timeout=20)
93
+ if r.returncode != 0:
94
+ return ["(not a git repo: %s)" % root]
95
+ root = r.stdout.strip()
96
+ except Exception:
97
+ return ["(not a git repo: %s)" % root]
98
+ lines = [
99
+ "branch : %s" % sh("git branch --show-current", root),
100
+ "status : %s" % (sh("git status --short | head -15", root) or "(clean)"),
101
+ "commit : %s" % sh("git log -1 --pretty='%h %s'", root),
102
+ ]
103
+ recent = []
104
+ for pat in REPORT_GLOBS:
105
+ hits = glob.glob(os.path.join(root, pat), recursive=True)
106
+ if hits:
107
+ recent.extend(hits)
108
+ break
109
+ recent = sorted(recent, key=lambda p: os.path.getmtime(p), reverse=True)[:6]
110
+ for f in recent:
111
+ try:
112
+ with open(f, encoding="utf-8", errors="replace") as fh:
113
+ first = fh.readline().strip()
114
+ lines.append("tests : %s | %s" % (os.path.relpath(f, root), first[:140]))
115
+ except OSError:
116
+ pass
117
+ if not recent:
118
+ lines.append("tests : (no test reports found / 未找到测试报告)")
119
+ return lines
120
+
121
+
122
+ def main(argv):
123
+ n, repo, sid = 10, os.getcwd(), None
124
+ for a in argv:
125
+ if a.isdigit() and int(a) < 500:
126
+ n = max(1, int(a))
127
+ elif os.path.isdir(os.path.expanduser(a)):
128
+ repo = os.path.expanduser(a)
129
+ else:
130
+ sid = a
131
+ sid = sid or latest_session_id()
132
+ if not sid:
133
+ print("no cline sessions found under", SESSIONS_ROOT)
134
+ return 1
135
+ print("== session: %s ==" % sid)
136
+ msgs, updated = load_session(sid)
137
+ if msgs is None:
138
+ print("(messages.json not found)")
139
+ return 1
140
+ print("updated_at: %s | total messages: %d" % (updated, len(msgs)))
141
+ print("-- recent activity --")
142
+ for line in summarize(msgs, n):
143
+ print(line)
144
+ print("-- repo evidence: %s --" % repo)
145
+ for line in repo_evidence(repo):
146
+ print(line)
147
+ return 0
148
+
149
+
150
+ if __name__ == "__main__":
151
+ sys.exit(main(sys.argv[1:]))
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: cross-chain-relayer-audit
3
+ description: 'Cross-chain relayer bridge audit register: message hash verifications, replay protection nonces, validator quorum, and withdrawal proofs.'
4
+ category: engineering
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-10-01"
9
+ author: Ranjeet2063
10
+ tags: [cross-chain, bridge, relayer, security, cryptography, web3, stellar]
11
+ tools: []
12
+ source_repo: Ranjeet2063/agentic-awesome-skills
13
+ ---
14
+
15
+ # Cross-Chain Relayer Security Audit
16
+
17
+ **What it is:** Audits cross-chain message passing protocols, cryptographic commitment trees, and validator quorum consensus for cross-chain relayers.
18
+
19
+ ## Overview
20
+
21
+ Provides a standardized, auditable framework and data model for **Cross-Chain Relayer Security Audit** operations across distributed engineering and decentralized application systems.
22
+
23
+ ## When to Use This Skill
24
+
25
+ - When formalizing architectural contracts, security invariants, or operational limits for Cross-Chain Relayer Security Audit.
26
+ - When cross-functional review is required between protocol developers, smart contract auditors, and AI engineering agents.
27
+ - When generating reproducible CSV, SQL DDL, JSON Schema, and Notion property registers for tracking compliance.
28
+
29
+ ## How It Works
30
+
31
+ 1. Define the parameters, thresholds, and identity bindings required for the target operational register.
32
+ 2. Select appropriate boundary enforcement values from validated enum select sets.
33
+ 3. Export standardized artifacts (CSV table, SQL DDL, JSON Schema) to integrate into validation CI pipelines.
34
+
35
+ ## Field Reference
36
+
37
+ | # | Field Name | Type | SQL Type | JSON Schema Type | Notion Property Type | Example Value |
38
+ |---|------------|------|----------|------------------|----------------------|---------------|
39
+ | 1 | Relayer Audit ID | `id` | `SERIAL PRIMARY KEY` | `integer` | Text | `REL-001` |
40
+ | 2 | Source Chain Domain | `text` | `VARCHAR(32)` | `string` | Text | `Ethereum Sepolia` |
41
+ | 3 | Destination Chain Domain | `text` | `VARCHAR(32)` | `string` | Text | `Stellar Testnet` |
42
+ | 4 | Message Hash Verification | `select` | `VARCHAR(32)` | `string` | Select | `Keccak256 Verified` |
43
+ | 5 | Replay Protection Nonce Check | `select` | `VARCHAR(32)` | `string` | Select | `Enforced Strict Sequence` |
44
+ | 6 | Validator Quorum Threshold | `text` | `VARCHAR(16)` | `string` | Text | `5-of-7 Quorum` |
45
+ | 7 | Slashing Condition Active | `select` | `VARCHAR(16)` | `string` | Select | `Yes` |
46
+ | 8 | Withdrawal Proof Standard | `select` | `VARCHAR(64)` | `string` | Select | `Merkle Patricia Trie Proof` |
47
+ | 9 | Finality Confirmation Blocks | `number` | `INTEGER` | `number` | Number | `32` |
48
+ | 10 | Bridge Security Posture | `select` | `VARCHAR(32)` | `string` | Select | `Verified Secure` |
49
+ | 11 | Audit Stamp Date | `date` | `DATE` | `string, format: date` | Date | `2026-10-01` |
50
+
51
+ ## Select Options
52
+
53
+ **Message Hash Verification**
54
+
55
+ ```
56
+ Keccak256 Verified | SHA256 Verified | Invalid Hash
57
+ ```
58
+
59
+ **Replay Protection Nonce Check**
60
+
61
+ ```
62
+ Enforced Strict Sequence | Bitmask Window | Unchecked
63
+ ```
64
+
65
+ **Slashing Condition Active**
66
+
67
+ ```
68
+ Yes | No
69
+ ```
70
+
71
+ **Withdrawal Proof Standard**
72
+
73
+ ```
74
+ Merkle Patricia Trie Proof | ZK-SNARK Validity Proof | Light Client Header
75
+ ```
76
+
77
+ **Bridge Security Posture**
78
+
79
+ ```
80
+ Verified Secure | Under Audit | Vulnerable Finding
81
+ ```
82
+
83
+ ## Relations
84
+
85
+ - `Audit Reference` -> links to the formal review documentation or test repository.
86
+ - `Target Architecture` -> links to the deployed contract or autonomous agent runtime component.
87
+
88
+ ## Examples
89
+
90
+ **Prompt**
91
+
92
+ ```
93
+ How do I configure and track Cross-Chain Relayer Security Audit for our production environment?
94
+ ```
95
+
96
+ **Recommended Next Step**
97
+
98
+ > Generate the unified field schema, SQL DDL migration, and JSON validation schema to register into your system catalog.
99
+ >
100
+ > Workflow: Define criteria -> Run automated verification -> Record baseline -> Monitor invariants.
101
+
102
+ ## Best Practices
103
+
104
+ - Enforce strict typing on numerical bounds and currency amounts; avoid unstructured free-text fields for critical states.
105
+ - Re-run validation test suites on every state-altering commit or parameter change.
106
+ - Keep example data synthetic and isolated from production cryptographic keys or private endpoints.
107
+
108
+ ## Limitations
109
+
110
+ - Provides architectural specifications, data models, and verification schemas; does not execute direct transaction signing without authorized external tooling.
111
+ - Requires network connectivity and valid RPC credentials when querying on-chain states.
112
+
113
+ ## Security & Safety Notes
114
+
115
+ - All parameters declare `risk: safe`. No unauthorized state modification or privileged credential access is performed.
116
+ - Use synthetic dummy keys and mock addresses in test suites and local verification scripts.
117
+
118
+ ## Common Pitfalls
119
+
120
+ - **Problem:** Mismatched decimal precision between contract runtime and database register.
121
+ **Solution:** Always verify decimals using the explicit field mapping in this reference.
122
+ - **Problem:** Missing authorization checks prior to state update.
123
+ **Solution:** Cross-validate against the Security Audit register before deployment.
124
+
125
+ ## Related Skills
126
+
127
+ - @smart-contract-formal-verification - verifies state invariants mathematically.
128
+ - @web3-rate-limiting-circuit-breaker - provides operational guardrails and threshold breakers.
129
+ - @stellar-anchor-integration - covers SEP-10 and SEP-24 anchor compliance flows.
130
+
131
+ ## Reusable Prompt
132
+
133
+ ```
134
+ I want to establish a verified Cross-Chain Relayer Security Audit register for our production protocol.
135
+ Guide me through the required field parameters and output the corresponding SQL DDL and JSON Schema.
136
+ ```
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: defi-yield-strategy-allocator
3
+ description: 'Multi-vault automated yield strategy allocation register: APY benchmarks, impermanent loss risk tiers, and rebalancing triggers.'
4
+ category: engineering
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-10-01"
9
+ author: Ranjeet2063
10
+ tags: [defi, yield, soroban, vault, liquidity, finance, stellar]
11
+ tools: []
12
+ source_repo: Ranjeet2063/agentic-awesome-skills
13
+ ---
14
+
15
+ # DeFi Yield Strategy Allocation Register
16
+
17
+ **What it is:** Monitors capital efficiency, yield compounding schedules, and downside protection bounds across decentralized finance yield protocols.
18
+
19
+ ## Overview
20
+
21
+ Provides a standardized, auditable framework and data model for **DeFi Yield Strategy Allocation Register** operations across distributed engineering and decentralized application systems.
22
+
23
+ ## When to Use This Skill
24
+
25
+ - When formalizing architectural contracts, security invariants, or operational limits for DeFi Yield Strategy Allocation Register.
26
+ - When cross-functional review is required between protocol developers, smart contract auditors, and AI engineering agents.
27
+ - When generating reproducible CSV, SQL DDL, JSON Schema, and Notion property registers for tracking compliance.
28
+
29
+ ## How It Works
30
+
31
+ 1. Define the parameters, thresholds, and identity bindings required for the target operational register.
32
+ 2. Select appropriate boundary enforcement values from validated enum select sets.
33
+ 3. Export standardized artifacts (CSV table, SQL DDL, JSON Schema) to integrate into validation CI pipelines.
34
+
35
+ ## Field Reference
36
+
37
+ | # | Field Name | Type | SQL Type | JSON Schema Type | Notion Property Type | Example Value |
38
+ |---|------------|------|----------|------------------|----------------------|---------------|
39
+ | 1 | Strategy Allocation ID | `id` | `SERIAL PRIMARY KEY` | `integer` | Text | `YLD-001` |
40
+ | 2 | Target Protocol Strategy | `text` | `VARCHAR(64)` | `string` | Text | `Soroban AMM Liquidity Staking` |
41
+ | 3 | Allocated Capital Principal | `currency` | `NUMERIC(24,7)` | `number` | Number | `100000.0000000` |
42
+ | 4 | Base APY Yield % | `number` | `NUMERIC(6,2)` | `number` | Number | `14.25` |
43
+ | 5 | Impermanent Loss Risk Score | `select` | `VARCHAR(32)` | `string` | Select | `Low (Stablecoin Pair)` |
44
+ | 6 | Max Protocol Drawdown Cap % | `number` | `NUMERIC(5,2)` | `number` | Number | `5.00` |
45
+ | 7 | Automated Harvest Frequency Hours | `number` | `INTEGER` | `number` | Number | `12` |
46
+ | 8 | Emergency Unwind Trigger | `select` | `VARCHAR(64)` | `string` | Select | `Price Divergence > 3%` |
47
+ | 9 | Capital Allocation Health | `select` | `VARCHAR(32)` | `string` | Select | `Optimum Yield` |
48
+ | 10 | Portfolio Manager | `text` | `VARCHAR(64)` | `string` | Text | `Ranjeet2063` |
49
+ | 11 | Last Rebalance Date | `date` | `DATE` | `string, format: date` | Date | `2026-10-01` |
50
+
51
+ ## Select Options
52
+
53
+ **Impermanent Loss Risk Score**
54
+
55
+ ```
56
+ Low (Stablecoin Pair) | Moderate (Correlated) | High (Volatile)
57
+ ```
58
+
59
+ **Emergency Unwind Trigger**
60
+
61
+ ```
62
+ Price Divergence > 3% | TVL Drain > 20% | Oracle Failure
63
+ ```
64
+
65
+ **Capital Allocation Health**
66
+
67
+ ```
68
+ Optimum Yield | Underperforming | Unwinding | Liquidated
69
+ ```
70
+
71
+ ## Relations
72
+
73
+ - `Audit Reference` -> links to the formal review documentation or test repository.
74
+ - `Target Architecture` -> links to the deployed contract or autonomous agent runtime component.
75
+
76
+ ## Examples
77
+
78
+ **Prompt**
79
+
80
+ ```
81
+ How do I configure and track DeFi Yield Strategy Allocation Register for our production environment?
82
+ ```
83
+
84
+ **Recommended Next Step**
85
+
86
+ > Generate the unified field schema, SQL DDL migration, and JSON validation schema to register into your system catalog.
87
+ >
88
+ > Workflow: Define criteria -> Run automated verification -> Record baseline -> Monitor invariants.
89
+
90
+ ## Best Practices
91
+
92
+ - Enforce strict typing on numerical bounds and currency amounts; avoid unstructured free-text fields for critical states.
93
+ - Re-run validation test suites on every state-altering commit or parameter change.
94
+ - Keep example data synthetic and isolated from production cryptographic keys or private endpoints.
95
+
96
+ ## Limitations
97
+
98
+ - Provides architectural specifications, data models, and verification schemas; does not execute direct transaction signing without authorized external tooling.
99
+ - Requires network connectivity and valid RPC credentials when querying on-chain states.
100
+
101
+ ## Security & Safety Notes
102
+
103
+ - All parameters declare `risk: safe`. No unauthorized state modification or privileged credential access is performed.
104
+ - Use synthetic dummy keys and mock addresses in test suites and local verification scripts.
105
+
106
+ ## Common Pitfalls
107
+
108
+ - **Problem:** Mismatched decimal precision between contract runtime and database register.
109
+ **Solution:** Always verify decimals using the explicit field mapping in this reference.
110
+ - **Problem:** Missing authorization checks prior to state update.
111
+ **Solution:** Cross-validate against the Security Audit register before deployment.
112
+
113
+ ## Related Skills
114
+
115
+ - @soroban-liquidity-pool - covers AMM invariant and LP-share modelling.
116
+ - @web3-rate-limiting-circuit-breaker - provides operational guardrails and threshold breakers.
117
+ - @soroban-oracle-data-feed-audit - covers oracle heartbeat and stale-price handling.
118
+
119
+ ## Reusable Prompt
120
+
121
+ ```
122
+ I want to establish a verified DeFi Yield Strategy Allocation Register register for our production protocol.
123
+ Guide me through the required field parameters and output the corresponding SQL DDL and JSON Schema.
124
+ ```
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: dropthehassle-publish
3
+ description: "Publish a finished static site to a free HTTPS link with DropTheHassle: build it if needed, deploy, hand over the claim link, verify it is live, never spend money."
4
+ category: devops
5
+ risk: critical
6
+ source: "https://github.com/bosmdavid-gif/dropthehassle-skill"
7
+ source_repo: "bosmdavid-gif/dropthehassle-skill"
8
+ source_type: official
9
+ date_added: "2026-10-01"
10
+ license: "MIT"
11
+ license_source: "https://github.com/bosmdavid-gif/dropthehassle-skill/blob/main/LICENSE"
12
+ author: bosmdavid-gif
13
+ tags: [deploy, static-site, hosting, domain, mcp]
14
+ tools: [claude, cursor, codex, windsurf]
15
+ ---
16
+
17
+ # DropTheHassle publish
18
+
19
+ ## Overview
20
+
21
+ DropTheHassle (https://dropthehassle.com) hosts finished static files (HTML, CSS, JS, images) on a
22
+ free `name.dropthehassle.app` link with HTTPS, and can later put the same site on a real domain
23
+ with no DNS editing. A first deploy needs no account: it returns a live URL and a claim link. This
24
+ skill makes the agent check that the folder is a finished build, deploy it with the CLI or MCP
25
+ server, give the human the claim link, and verify the site is live. No DropTheHassle tool can pay,
26
+ and the agent must never try to. Adapted from the official skill, which also ships a local
27
+ preflight script and longer references: https://github.com/bosmdavid-gif/dropthehassle-skill
28
+
29
+ ## When to Use This Skill
30
+
31
+ - Use when the user asks to publish, deploy, host or share a site they built with an AI tool and
32
+ wants DropTheHassle, or wants it on a free link or their own domain without DNS work and has not
33
+ picked another host.
34
+ - Use when the folder is static output: a hand-written `index.html`, or a Vite, Astro, Create React
35
+ App, Nuxt generate, Next.js `output: 'export'` or TanStack Start SPA build.
36
+ - Do not use for apps that need a server at runtime (SSR, API routes, server functions, PHP). Say
37
+ that DropTheHassle only hosts static files.
38
+
39
+ ## How It Works
40
+
41
+ ### Step 1: Find the finished folder
42
+
43
+ - Plain folder with `index.html` at the top: that is the site.
44
+ - Project with a `build` script or a `vite.config.*`, `next.config.*`, `astro.config.*` or
45
+ `nuxt.config.*`: look for `index.html` in `dist/`, `build/`, `out/` or `.output/public/`. If
46
+ there is none, install with the lockfile's package manager and run the build first. Next.js
47
+ needs `output: 'export'` (writes `out/`).
48
+ - An `index.html` that loads `/src/main.tsx` or another `.ts`, `.tsx`, `.jsx` or `/src/` script
49
+ is a dev entry. Build it.
50
+ - The DropTheHassle CLI and MCP server never run the build. On unbuilt source they stop and print
51
+ the build command.
52
+
53
+ ### Step 2: Check the limits
54
+
55
+ Before the site is claimed: 25 MB and 1,000 files, and no executables or archives
56
+ (`.exe .msi .apk .dmg .scr .bat .zip .rar .7z .iso`). Signed in: 100 MB and 5,000 files. One
57
+ network can create 5 new unclaimed sites per hour and 20 per day. `node_modules`, `.git` and
58
+ hidden files are left out, except `.well-known`.
59
+
60
+ ### Step 3: Deploy
61
+
62
+ CLI, run on the project folder after the build (or on the plain site folder):
63
+
64
+ ```bash
65
+ npx -y dropthehassle deploy .
66
+ ```
67
+
68
+ It prints the live URL and a claim link, and writes `.dropthehassle.json` in that folder so the
69
+ next deploy from it updates the same site. That file holds the site's key: keep it out of git.
70
+ `--login` puts the site on the human's account after a browser approval; `--slug name` only works
71
+ with `--login`; `--code XXXX-XXXX` uses a 15-minute dashboard code for an existing site.
72
+
73
+ MCP, in Claude Code:
74
+
75
+ ```bash
76
+ claude mcp add dropthehassle -- npx -y dropthehassle-mcp
77
+ ```
78
+
79
+ Then call `deploy_site` with `folder` set to the absolute path. The hosted connector
80
+ `https://dropthehassle.com/mcp` cannot read the disk: send `files` inline as
81
+ `{path, content, encoding}` (`utf8` or `base64`). Account tools need the human's token from
82
+ dropthehassle.com, menu, Connect your AI, set as `DTH_TOKEN` by the human in their own config.
83
+
84
+ ### Step 4: Hand over and verify
85
+
86
+ Tell the human the live URL and the claim link, and that the claim link works for 7 days. An
87
+ unclaimed site can be removed after that. Then check:
88
+
89
+ ```bash
90
+ curl -s "https://dropthehassle.com/api/v1/check?host=NAME.dropthehassle.app"
91
+ ```
92
+
93
+ `outcome` should be `live` and `secure` true. The same check is on
94
+ https://dropthehassle.com/is-my-website-down.
95
+
96
+ ### Step 5: Domains, only if asked
97
+
98
+ Check names with the MCP `search_domain` tool or
99
+ `curl -s "https://dropthehassle.com/api/v1/domains/search?q=NAME.com"`, and report only names the
100
+ answer marks `available`, with the price it returned. Buying is the human's step: after they claim
101
+ the site, `get_checkout_link` returns a `checkout.stripe.com` link for them to open and pay.
102
+
103
+ ## Examples
104
+
105
+ ### Example 1: Vite project
106
+
107
+ ```text
108
+ User: Put this site online.
109
+ Agent: No dist/ yet, so runs npm install && npm run build, then npx -y dropthehassle deploy .
110
+ Reports: Live at https://yourname.dropthehassle.app, plus the claim link (7 days).
111
+ Runs the live check: outcome "live", secure true.
112
+ ```
113
+
114
+ ### Example 2: Domain search
115
+
116
+ ```text
117
+ User: Is there a .com for it?
118
+ Agent: Checks three names with search_domain, lists the available ones with the returned price,
119
+ and asks which one they want. It does not create a payment link until they say so.
120
+ ```
121
+
122
+ ## Best Practices
123
+
124
+ - ✅ Deploy the build output, not the source, and rebuild before every redeploy.
125
+ - ✅ Run the CLI on the project folder so a rebuild of `dist/` does not delete the link file.
126
+ - ✅ Give the human the claim link word for word, with the 7-day note.
127
+ - ❌ Do not open, fill in or pay a payment link. A DropTheHassle payment link is always on
128
+ `checkout.stripe.com`.
129
+ - ❌ Do not invent or commit a token, and do not loop new anonymous deploys.
130
+ - ❌ Do not rename the free link (`choose_link`) without an explicit yes for that exact name.
131
+
132
+ ## Limitations
133
+
134
+ - Static files only. Server code does not run; a separate HTTPS backend can be linked with the
135
+ `set_backend` tool (account token).
136
+ - `npx dropthehassle status` and `rollback` need a folder linked with `--login` or `--code`.
137
+ - On npm `dropthehassle-mcp` 0.4.2, `search_domain` needs a token; the hosted connector and the
138
+ HTTP route above work without one.
139
+ - Cloud sandboxes (Claude Code on the web, Codex cloud) block dropthehassle.com by default: allow
140
+ the domain or use the hosted connector.
141
+ - A plain deploy from a fresh machine creates a new site. Updating a claimed site needs a
142
+ dashboard code or the token.
143
+
144
+ ## Security & Safety Notes
145
+
146
+ - Deploying publishes the folder on a public URL. Confirm the folder holds only what the user wants
147
+ public. Hidden files such as `.env` are left out, but secrets in JS bundles are not.
148
+ - `.dropthehassle.json` contains a site key. Never commit or publish it.
149
+ - The account token can deploy and create payment links but cannot pay. The human sets it in their
150
+ own MCP config; the agent should not ask for it in chat.
151
+ - Never buy anything or create a payment link without the user asking.