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.
- package/bundled-skills/.antigravity-install-manifest.json +23 -1
- package/bundled-skills/ai-agent-evaluation-benchmarking/SKILL.md +124 -0
- package/bundled-skills/ai-agent-tool-routing/SKILL.md +136 -0
- package/bundled-skills/ai-code-generation-guardrails/SKILL.md +142 -0
- package/bundled-skills/ai-prompt-regression-testing/SKILL.md +130 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +11 -7
- package/bundled-skills/cline-pilot/README.md +138 -0
- package/bundled-skills/cline-pilot/SKILL.md +301 -0
- package/bundled-skills/cline-pilot/assets/global-memory-bank-prompt.en.md +66 -0
- package/bundled-skills/cline-pilot/assets/global-memory-bank-prompt.md +56 -0
- package/bundled-skills/cline-pilot/references/cold-start.md +58 -0
- package/bundled-skills/cline-pilot/references/decision-log.example.md +9 -0
- package/bundled-skills/cline-pilot/references/local-config.example.md +26 -0
- package/bundled-skills/cline-pilot/references/project-profiles.example.md +10 -0
- package/bundled-skills/cline-pilot/scripts/session_report.py +151 -0
- package/bundled-skills/cross-chain-relayer-audit/SKILL.md +136 -0
- package/bundled-skills/defi-yield-strategy-allocator/SKILL.md +124 -0
- package/bundled-skills/dropthehassle-publish/SKILL.md +151 -0
- package/bundled-skills/smart-contract-formal-verification/SKILL.md +136 -0
- package/bundled-skills/smart-contract-upgrade-governance/SKILL.md +130 -0
- package/bundled-skills/soroban-contract-audit/SKILL.md +136 -0
- package/bundled-skills/soroban-liquidity-pool/SKILL.md +118 -0
- package/bundled-skills/soroban-oracle-data-feed-audit/SKILL.md +118 -0
- package/bundled-skills/soroban-storage-ttl-lifecycle/SKILL.md +118 -0
- package/bundled-skills/soroban-token-minter/SKILL.md +124 -0
- package/bundled-skills/stellar-anchor-integration/SKILL.md +136 -0
- package/bundled-skills/stellar-asset-clawback-compliance/SKILL.md +118 -0
- package/bundled-skills/stellar-escrow-timelock/SKILL.md +118 -0
- package/bundled-skills/stellar-multisig-threshold-coordinator/SKILL.md +112 -0
- package/bundled-skills/waf-setup/SKILL.md +1 -1
- package/bundled-skills/web3-rate-limiting-circuit-breaker/SKILL.md +130 -0
- package/bundled-skills/web3-transaction-relayer-pool/SKILL.md +124 -0
- package/bundled-skills/zk-proof-verification-pipeline/SKILL.md +124 -0
- package/package.json +1 -1
- 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.
|