aesthetic-instrument
great_cto's own committed aesthetic — the instrument panel. Dark five-step surface ladder, exactly one accent, two faces divided by MEANING (Geist speaks,…
Domain-knowledge pack for money on a phone — wallets, payments, custody and signing, transaction lifecycle, KYC/AML gates, and offline reconciliation. The rules that separate a payments app from a CRUD app with a currency symbol: a balance is a claim about a server, an
$ npx -y skills add avelikiy/great_cto --skill vertical-fintech-mobile --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/vertical-fintech-mobileContext preview
The summary Claude sees to decide when to auto-load this skill.
Domain-knowledge pack for money on a phone — wallets, payments, custody and signing, transaction lifecycle, KYC/AML gates, and offline reconciliation. The rules that separate a payments app from a CRUD app with a currency symbol: a balance is a claim about a server, an
name: vertical-fintech-mobile description: 'Domain-knowledge pack for money on a phone — wallets, payments, custody and signing, transaction lifecycle, KYC/AML gates, and offline reconciliation. The rules that separate a payments app from a CRUD app with a currency symbol: a balance is a claim about a server, an idempotency key must outlive the process that made it, keys never enter JavaScript memory, and a device clock may not order financial events. Applied by architect/pm/design-advisor when specing a mobile product that moves money, and by mobile-app-builder while implementing it.' when_to_use: | Apply when a mobile product holds, moves, or reports money or assets: - architect writes ARCH-*.md for a wallet, payments, trading, remittance, or account product with a phone client - pm decomposes it and must not under-scope the transaction lifecycle (this is where naive specs fail) - design-advisor wireframes a balance, a send flow, a signing confirmation, or a blocked-account state - mobile-app-builder implements any screen where a number is money Do NOT apply to the server-side money rules — pci-reviewer owns payment scope, accounting-reviewer owns ledger integrity, oracle-reviewer owns on-chain oracles and MEV. This pack is what the PHONE gets wrong. effort: low allowed-tools: Read, Write, Grep, Glob paths: - "docs/architecture/**" - "docs/plans/**" - "docs/design/**"
A field app that loses a photo is annoying. A money app that loses — or duplicates — a transfer is a loss, a support case, and sometimes a regulator. Everything in the generic mobile contract still applies (offline queue, idempotency, permissions); this pack is the part that is different **because it is money**, and it is the part community skill sets do not carry, because it is domain knowledge rather than framework knowledge.
The through-line: **the phone is not the ledger.** It is a client with an opinion, and every screen must be honest about how strong that opinion is.
`confirmed` · `pending` · `unknown`. A number rendered without which of the three it is, is a lie the user will act on.
recently enough to say when.
*display*, not a fact, and it is labelled.
confirmed number rendered as though it were current. A stale balance shown as live is the defect this whole pack exists to prevent.
Every balance carries **as of when**. "£1,240.55" is not an answer; "£1,240.55, as of 14:02" is.
The generic rule is "client-generated id so a re-sync never duplicates". For money that is not enough, because the process dies.
intent** in the same durable write. A key held in memory is a key that a crash turns into a second payment.
"send £50" share one key. A second tap of the button is a new intent — or it is a double-send, and the UI decides which by disabling or by asking.
shorter than the app's retry backoff is the same as no idempotency.
For any product that signs — custody, non-custodial wallets, hardware-backed auth:
Keystore/StrongBox). The app asks for a signature; it never holds the key.
debugger, the redux devtools, and the error reporter. Assume all four.
key, the onboarding must say so before the key exists, not in a support article afterwards.
hex blob the user cannot read is consent theatre.
Not "sent/failed". At minimum:
drafted → submitted → accepted → settled
↘ rejected
↘ unknown ──(reconcile)──→ settled | rejectedno answer came back. The app may not guess, may not retry blindly (see §2), and may not show it as failed — a payment shown as failed that actually settled is how a user sends it twice.
often, and what it does when the answer never comes.
retry queue that woke up late.
A phone with a wrong clock silently wins every last-write-wins conflict.
never as the audit timestamp.
When the app reconnects after an offline stretch:
balance and then sees a different one, with no explanation, files a fraud report.
it must survive being interrupted halfway.
user, not auto-sent. Auto-sending an hour-old
You already have the agent. This is everything around it. great_cto runs Claude Code as a pipeline of 70 specialist agents — an independent model checks each stage before the next builds on it, spending caps refuse rather than warn, and three decisions stay yours: what gets built, how, and whether it ships.
Repo: avelikiy/great_cto
great_cto's own committed aesthetic — the instrument panel. Dark five-step surface ladder, exactly one accent, two faces divided by MEANING (Geist speaks,…
Catalogue of known SDLC anti-patterns that great_cto agents must actively reject when reviewing architecture, plans, code, or post-mortems. Used by architect…
Analyze images, websites, and Figma files to extract their design and generate a `design.md` with token system, component inventory, and reconstruction notes.…
Shared review framework that every domain reviewer (pci, oracle, gov, edtech, healthcare, mlops, etc.) MUST follow. Defines the output artifact (TM-{slug}.md),…
Structured idea generation + multi-LLM debate for the product-owner stage. Diverge (generate genuinely different bets), debate (a 4-persona panel on 4 models…
Run the great_cto controlled Codex lifecycle with controller-owned writes, verifier evidence, human gates and optional artifact release.