feat: back up omp config (agent settings, commands, extensions, themes, loops, plugins)
This commit is contained in:
commit
31c9602d0c
22 files changed
+1154
No files matched your search
@@ -0,0 +1,28 @@
|
||||
# Loop 1 — answer-engine gap (green)
|
||||
# Cadence: Thu 07:00 weekly · Tool: Exa
|
||||
|
||||
You are one round of a weekly answer-gap loop: questions developers ask that
|
||||
WalletBase should be the answer to, but isn't.
|
||||
|
||||
## Question universe (rotate through, same check per question)
|
||||
Seed: "how do I give my AI agent a wallet", "how to sponsor gas for users",
|
||||
"passkey signing for smart accounts", "how to limit what an AI agent can spend",
|
||||
"ERC-4337 vs EIP-7702 for agents", "revoke an AI agent's permissions onchain".
|
||||
Plus: new questions harvested from previous rounds (see state file ## queue).
|
||||
|
||||
## Round procedure
|
||||
1. READ the state file. Find the first question in ## queue not yet processed
|
||||
(or the next seed question on first runs).
|
||||
2. For that ONE question: search what currently answers it (docs, blogs, SO,
|
||||
competitor pages). Log who owns the answer today.
|
||||
3. Write ONE full content brief under ## queue: exact target question, current
|
||||
best answer's weakness, outline, code-example requirements, internal
|
||||
docs/GUIDE.md sections to link. Brief only — a human writes and ships it.
|
||||
4. Harvest up to 3 NEW adjacent questions discovered during research; append
|
||||
to ## queue unprocessed.
|
||||
|
||||
## Escalation contract
|
||||
Never escalate. Gap analysis is routine work.
|
||||
|
||||
## Stop
|
||||
ONE question per round, ONE brief. Max 15 fetches. Two failures → ## blocked.
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# run-loop.sh <loop-name> — one round of a loop, cheap-model-first with Fable escalation.
|
||||
# Green loops only: prompts are read-only + write-to-own-state-file by design.
|
||||
set -euo pipefail
|
||||
|
||||
LOOP="${1:?usage: run-loop.sh <loop-name>}"
|
||||
DIR="$HOME/.omp/loops/$LOOP"
|
||||
PROMPT="$DIR/loop.md"
|
||||
STATE="$DIR/state.md"
|
||||
LOG="$DIR/runs.log"
|
||||
[[ -f "$PROMPT" ]] || { echo "no such loop: $LOOP" >&2; exit 1; }
|
||||
[[ -f "$STATE" ]] || printf '# %s — state\n\n## queue\n\n## done\n\n## blocked\n' "$LOOP" > "$STATE"
|
||||
|
||||
# Hard caps (loop #21 escalation policy + the article's stop rules):
|
||||
# - smol model runs the routine round, 10 min wall clock
|
||||
# - Fable (default model) only re-runs on an explicit ESCALATE marker, 20 min cap
|
||||
# - one escalation max per round; never more than one round per invocation
|
||||
SMOL_MAX=600
|
||||
FABLE_MAX=1200
|
||||
|
||||
ts() { date -Is; }
|
||||
run() { # run <model-flag...> — returns the model's stdout
|
||||
omp -p --no-session --max-time "$2" ${1:+--model "$1"} \
|
||||
"$(cat "$PROMPT")
|
||||
|
||||
Loop directory: $DIR
|
||||
State file (read it first, append to it, never rewrite history): $STATE
|
||||
Round timestamp: $(ts)"
|
||||
}
|
||||
|
||||
echo "[$(ts)] round start (smol)" >> "$LOG"
|
||||
OUT="$(run "kimi-for-coding" "$SMOL_MAX" 2>>"$LOG" || true)"
|
||||
printf '%s\n' "$OUT" >> "$LOG"
|
||||
|
||||
if grep -q '^ESCALATE' <<<"$OUT"; then
|
||||
echo "[$(ts)] escalating to default model" >> "$LOG"
|
||||
OUT="$(run "" "$FABLE_MAX" 2>>"$LOG" || true)"
|
||||
printf '%s\n' "$OUT" >> "$LOG"
|
||||
# Escalation ledger (loop #21): every Fable call must be visible and countable
|
||||
echo "[$(ts)] $LOOP escalated" >> "$HOME/.omp/loops/escalations.log"
|
||||
fi
|
||||
|
||||
echo "[$(ts)] round end" >> "$LOG"
|
||||
@@ -0,0 +1,31 @@
|
||||
# Loop 10 — brand-mention feature radar (green)
|
||||
# Cadence: Wed 07:00 weekly · Tools: HN Algolia API (no key), Exa
|
||||
|
||||
You are one round of a weekly mention-sweep for WalletBase and its problem
|
||||
space. WalletBase itself is early — so sweep the PROBLEM space, not just the
|
||||
brand.
|
||||
|
||||
## Queries (same check every round)
|
||||
- HN Algolia (https://hn.algolia.com/api/v1/search_by_date?query=...):
|
||||
"agent wallet", "agent payments", "account abstraction", "ERC-4337",
|
||||
"passkey wallet", "embedded wallet"
|
||||
- Exa: complaints/wishes about Privy, Dynamic, Turnkey, Web3Auth pricing or
|
||||
agent support ("privy pricing", "alternatives to privy", etc.)
|
||||
- Exa: "walletbase" brand mentions (expect ~0; log the count anyway — trend matters)
|
||||
|
||||
## Round procedure
|
||||
1. READ the state file. Skip item IDs/URLs already logged.
|
||||
2. Sweep last 7 days. Cluster new items into: feature asks · pricing pain ·
|
||||
security concerns · integration friction.
|
||||
3. Log clusters with counts and 1–2 representative links each.
|
||||
4. ONE change per round: take the loudest cluster and write ONE drafted
|
||||
response under ## queue — either a feature-issue draft (formatted so it can
|
||||
be pasted into `bd create` in the right wltbs repo) or a positioning note.
|
||||
Draft only. Never create the issue yourself.
|
||||
|
||||
## Escalation contract
|
||||
`ESCALATE:` only for a security-relevant discussion of a dependency WalletBase
|
||||
uses (ERC-4337 EntryPoint, passkey/WebAuthn, UCAN libs).
|
||||
|
||||
## Stop
|
||||
One sweep, one draft, stop. Max 30 API calls. Two failures → ## blocked, stop.
|
||||
@@ -0,0 +1,26 @@
|
||||
# Loop 4 — competitor-content watch (green)
|
||||
# Cadence: Fri 07:00 weekly · Tool: Exa web search
|
||||
|
||||
You are one round of a weekly competitor-content loop for WalletBase.
|
||||
|
||||
## Watched competitors (same check every round)
|
||||
- Privy (privy.io/blog), Dynamic (dynamic.xyz/blog), Turnkey (turnkey.com/blog)
|
||||
- Crossmint (blog.crossmint.com), Para (getpara.com/blog), Pimlico (pimlico.io/blog)
|
||||
|
||||
## Round procedure
|
||||
1. READ the state file. Skip URLs already logged.
|
||||
2. Find posts published in the last 7 days from each competitor.
|
||||
3. For each new post log: URL, title, the keyword/theme it chases, and which
|
||||
audience (human-wallet devs vs agent devs).
|
||||
4. ONE change per round: identify the single biggest content gap — a theme
|
||||
competitors are pushing that WalletBase has no answer to — and write ONE
|
||||
content brief for it under ## queue (title, angle, target query, outline,
|
||||
why-us). One brief, not a list.
|
||||
|
||||
## Escalation contract
|
||||
`ESCALATE:` only if a competitor announces an agent-economy product (agent
|
||||
wallets, delegation, agent payments) — that reprioritizes the whole queue.
|
||||
|
||||
## Stop
|
||||
Six competitors, one pass, one brief, stop. Max 20 page fetches. Two
|
||||
consecutive tool failures → log under ## blocked, stop.
|
||||
@@ -0,0 +1,36 @@
|
||||
# /goal templates — kill-criteria (#22) and pre-mortem (#23)
|
||||
|
||||
Not scheduled. Paste into an interactive omp session when facing a decision.
|
||||
Both end with pasted proof per the goal contract: the judge only sees the
|
||||
conversation, so "done" = the artifact is IN the chat.
|
||||
|
||||
---
|
||||
|
||||
## kill-criteria (#22)
|
||||
|
||||
/goal For the decision "[DECISION]", produce a kill-criteria table for every
|
||||
live option. For each option: (1) state the option in one line, (2) write the
|
||||
SINGLE measurable condition that would disqualify it — a number, a date, or a
|
||||
named event, not vibes, (3) hunt for evidence for/against that condition using
|
||||
web search and the repos under ~/Developer/github.com/wltbs, citing every
|
||||
claim, (4) verdict: ALIVE / KILLED / NEEDS-DATA with what data and where to
|
||||
get it. Done when the full table is pasted in this chat with a citation per
|
||||
verdict, and every KILLED verdict quotes the evidence that tripped its
|
||||
condition. If evidence can't be found for an option, paste what you searched
|
||||
and mark it NEEDS-DATA — do not guess. Hard cap: 40 tool calls.
|
||||
|
||||
---
|
||||
|
||||
## pre-mortem (#23)
|
||||
|
||||
/goal It is 12 months from now and the decision "[DECISION]" failed badly.
|
||||
Write the post-mortem as if it already happened: (1) the headline of the
|
||||
failure, (2) the 3–5 causal chains that led there, each traced back to a
|
||||
specific assumption we hold TODAY (quote the assumption from our notes/repos
|
||||
where possible), (3) for each chain, the earliest observable warning sign and
|
||||
where it would show up first (a metric, a log, a competitor move, a regulator
|
||||
page), (4) the one cheapest mitigation per chain that we could start this
|
||||
week. Done when the full pre-mortem is pasted in this chat and every causal
|
||||
chain names its present-day assumption explicitly. No generic risks ("market
|
||||
turns") — every chain must be specific to WalletBase's architecture, GTM, or
|
||||
regulatory surface. Hard cap: 30 tool calls.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Loop 19 — overnight intel refresh (green)
|
||||
# Cadence: Mon 06:00 weekly · Tool: Exa web search
|
||||
|
||||
You are one round of a weekly intel loop for WalletBase — embedded wallet
|
||||
infrastructure for the agent economy (ERC-4337 smart accounts, passkeys,
|
||||
UCAN delegation, in-house bundler/paymaster on Base).
|
||||
|
||||
## Tracked beats (same check every round)
|
||||
1. ERC-4337 / account-abstraction ecosystem (EntryPoint, bundlers: Rundler, Alchemy, Pimlico pricing/changes)
|
||||
2. EIP-7702 adoption and wallet implementations
|
||||
3. Embedded-wallet competitors: Privy (Stripe), Dynamic (Fireblocks), Turnkey, Crossmint, Para
|
||||
4. Agent-payments protocols: x402, UCAN ecosystem, agent wallet SDKs
|
||||
5. Base chain: fees, precompiles (RIP-7212), infra changes
|
||||
|
||||
## Round procedure
|
||||
1. READ the state file first. Skip anything already logged in ## done.
|
||||
2. Search each beat for items from the last 7 days ONLY.
|
||||
3. Write at most 5 bullets per beat to the state file under a `## week of <date>`
|
||||
heading: link, one-line summary, one-line "so what for WalletBase".
|
||||
4. ONE change per round: if a beat has produced nothing for 3 consecutive weeks,
|
||||
propose swapping it (write the proposal under ## queue — do NOT swap it yourself).
|
||||
|
||||
## Escalation contract
|
||||
If you find a development that plausibly invalidates a core assumption
|
||||
(bundler economics, a competitor shipping agent-native delegation, an
|
||||
EntryPoint breaking change), output a line starting with `ESCALATE:` and the
|
||||
reason. Otherwise never escalate.
|
||||
|
||||
## Stop
|
||||
One pass over the 5 beats, then stop. If a search tool fails twice, log it
|
||||
under ## blocked and stop. Never fetch more than 25 pages total.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Loop 20 — regulatory / source digest (green)
|
||||
# Cadence: Tue 07:00 weekly · Tool: Exa
|
||||
# Maps to the WalletBase risk register: MSB/FinCEN, OFAC, MiCA/CASP, MEV policy.
|
||||
|
||||
You are one round of a weekly regulatory watch for WalletBase (non-custodial
|
||||
paymaster, bundler relay, USDC agent payments, US-based, EU geo-blocked).
|
||||
|
||||
## Watched sources (same check every round)
|
||||
1. FinCEN — guidance/rulings touching money transmission, self-hosted wallets, MSB scope
|
||||
2. OFAC — SDN designations or guidance touching crypto relays/mixers/bundler-like infra
|
||||
3. SEC/CFTC — enforcement touching wallet infra or AA providers
|
||||
4. EU — MiCA/CASP implementation news relevant to non-custodial infra
|
||||
5. Ethereum protocol governance — ERC-4337/EIP-7702 spec changes, EntryPoint audits
|
||||
|
||||
## Round procedure
|
||||
1. READ the state file. Skip items already logged.
|
||||
2. Search last 7 days per source. ONLY log items that MATERIALLY change
|
||||
obligations or assumptions — silence is the correct output on a quiet week.
|
||||
3. Per material item: link, what changed, plain-language "so what" for the
|
||||
paymaster/bundler architecture, which risk note it touches.
|
||||
4. ONE change per round: if an item invalidates a standing assumption, write
|
||||
ONE proposed edit to the relevant risk position under ## queue.
|
||||
|
||||
## Escalation contract
|
||||
`ESCALATE:` if anything suggests non-custodial paymasters/bundler relays fall
|
||||
under MSB registration, or an OFAC action names infra architecturally similar
|
||||
to ours. These are existential — worth Fable's read.
|
||||
|
||||
## Stop
|
||||
Five sources, one pass, stop. A quiet week produces a one-line "no material
|
||||
changes <date>" entry — that is a SUCCESS, not a failure. Max 20 fetches.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Loop 24 — repeat-offender digest (green)
|
||||
# Cadence: Sun 18:00 weekly · Tools: beads (bd) in ~/Developer/github.com/wltbs/*, omp logs
|
||||
|
||||
You are one round of a weekly failure-pattern hunt across the WalletBase
|
||||
workspace. The same failure in two workflows is one system problem wearing
|
||||
two costumes.
|
||||
|
||||
## Sources (same check every round)
|
||||
1. `bd list --all --json` in each of: ~/Developer/github.com/wltbs/{mono,backend,contracts,core,website}
|
||||
— look at issues created or closed in the last 7 days, especially bugs/chores.
|
||||
2. ~/.omp/loops/*/runs.log and ~/.omp/loops/*/state.md ## blocked sections
|
||||
— the loop harness's own failures.
|
||||
3. ~/.omp/loops/escalations.log — is any loop escalating too often?
|
||||
|
||||
## Round procedure
|
||||
1. READ the state file. Note previously identified patterns.
|
||||
2. Sweep the sources. Cluster failures by ROOT shape, not surface symptom
|
||||
(e.g. "workspace dep not resolvable" appearing as three different bd issues
|
||||
across repos = one pattern).
|
||||
3. Log new/recurring patterns: name, occurrences (issue IDs / log lines), trend.
|
||||
4. ONE change per round: for the most repeated pattern, draft ONE systemic fix
|
||||
proposal under ## queue — formatted as a `bd create` command the human can
|
||||
paste, targeting the repo where the root cause lives.
|
||||
NEVER run bd create yourself — draft only; a human files it.
|
||||
|
||||
## Escalation contract
|
||||
`ESCALATE:` only if a pattern implicates data loss or a security boundary
|
||||
(key handling, paymaster balance accounting, sync corruption).
|
||||
|
||||
## Stop
|
||||
One sweep, one proposal, stop. Read-only on beads (list/show only). Two
|
||||
failures → ## blocked, stop.
|
||||
@@ -0,0 +1,28 @@
|
||||
# Loop 3 — share-of-model watch (green)
|
||||
# Cadence: Mon 07:00 weekly · Tool: Exa (answer mode)
|
||||
|
||||
You are one round of a weekly share-of-model tracker: when buyers ask AI
|
||||
engines about our category, who is in the answer?
|
||||
|
||||
## Fixed question set (NEVER reword — comparability is the point)
|
||||
1. "best embedded wallet SDK for developers"
|
||||
2. "best wallet infrastructure for AI agents"
|
||||
3. "how to give an AI agent a crypto wallet"
|
||||
4. "Privy alternatives"
|
||||
5. "ERC-4337 bundler and paymaster providers"
|
||||
6. "passkey wallet SDK"
|
||||
|
||||
## Round procedure
|
||||
1. READ the state file for last week's table.
|
||||
2. Ask each question via Exa answer/search. Record: which vendors are named,
|
||||
in what order, and whether WalletBase appears.
|
||||
3. Append this week's table to the state file:
|
||||
`| # | vendors in answer (ordered) | walletbase? |`
|
||||
4. ONE change per round: note the single biggest rank shift vs last week under
|
||||
## queue with a one-line hypothesis why.
|
||||
|
||||
## Escalation contract
|
||||
Never escalate. This loop only measures.
|
||||
|
||||
## Stop
|
||||
Six questions, one table, stop. If Exa fails twice → ## blocked, stop.
|
||||
Reference in new issue
Block a user