---
name: ryan-founder-workflow
description: |
  Ryan Sebastian's operating mode — founder of Ghost Protocol (Pvt) Ltd. Maps
  the 87-repo portfolio (Dragon security stack, Wyrm AI memory, Ghost themes,
  agency clients, creative writing) to how he actually works: spec-driven
  development under the Dragon Constitution, fast ship cycles, multi-product
  context-switching, founder-level reasoning rather than line-IC tasks.
  Trigger when he says "let's ship X", "spec this out", "what's the state of
  Y", "release", or any work that crosses two or more Ghost Protocol repos.
argument-hint: "[ship | spec | release | portfolio-state | client-handoff]"
user-invocable: true
---

# Ryan's Founder Workflow

You're working with **Ryan Sebastian** — founder of Ghost Protocol (Pvt) Ltd,
Colombo. He runs a 87-repo portfolio mostly solo (one co-director, Azur).
This skill captures HOW he ships so AI helpers stay in step with his
operating tempo.

## Mental model

- He's **founder-level**, not line-IC. When he says "we" he usually means
  himself or himself+Azur. Default to architecture / product / release-level
  reasoning, not "let me refactor this function".
- He **context-switches across product lines** in a single session — Dragon
  security stack, Wyrm memory, agency clients (Vision Works, Upali's,
  Dankotuwa, etc.), creative writing (novel, RPG, mobile game). Don't
  assume he's still on the previous repo. Always check current cwd.
- He **ships fast**. Default bias is "merge and iterate" not "polish until
  perfect". Speed of learning > polish.
- He **uses spec-kit heavily**. Substantial work goes through
  `dragon-platform/specs/NNN-<slug>/` before code. The constitution
  enforces this. See [[dragon-spec-author]] for the workflow.
- He **runs Wyrm in every project** — it's both his product and his
  daily-driver. Every session starts with Wyrm priming.
- He **runs Claude Code from a phone (Samsung S24 FE in Termux + Fedora
  proot-distro)**. Some constraints follow: short terminal width breaks
  wrapped pastes, npm installs are slow over phone bandwidth, no Android
  binary for Claude Code itself.

## The Dragon Constitution (always in scope)

Every Dragon-stack feature must honour [these seven invariants](https://github.com/Ghosts-Protocol-Pvt-Ltd/dragon-platform/blob/main/.specify/memory/constitution.md):

1. Local-first — no remote telemetry by default
2. Two-colour palette — teal `#00B89F` + red `#ff5a55`, Inter weight 900 h1, **never black-and-green** (was tried 2026-05-23 and reverted)
3. Cross-OS single binary
4. Operator owns the data
5. NGAV-grade or don't ship
6. **Spec before code for ≥4h work** or ≥2-repo changes
7. Every change tells a story (commits cite spec task IDs, PR bodies quote acceptance)

Internalize these. If a proposed change violates one, push back **before**
writing code — not after.

## How he ships (the actual workflow)

For ≥4-hour features or ≥2-repo changes:

1. **Spec** — `dragon-platform/specs/NNN-<slug>/spec.md` (what + why + acceptance, no implementation). Use [[dragon-spec-author]].
2. **Plan** — same dir, `plan.md` (architecture + phases + risks).
3. **Tasks** — same dir, `tasks.md` (numbered atomic, T001…).
4. **Implement** in the appropriate repo. Commits reference T-numbers.
5. **PR** — body quotes acceptance criteria. Squash-merge to main.
6. **Release** — see [[wyrm-release-workflow]] for npm-published packages
   (Wyrm, dragon-meta-mcp, dragonscansdk). Tag, GitHub Release, publish.
7. **Spec status flips** — `dragon-platform/README.md` active-specs table
   moves the row to `✅ shipped YYYY-MM-DD · <repo>@<sha>`.

For <4-hour surgical fixes: skip the spec, document the bug in the commit
message instead. Don't over-process.

## Multi-product portfolio — keep your bearings

Repos cluster into clear product lines. Recognize prefixes:

- **`dragon-*` / `Dragon*`** → security stack (PhantomDragon, DragonKeep,
  DragonNet, dragon-cli, dragon-console, dragon-os, dragon-meta-mcp, etc.)
- **`ghost-*` / `Ghost*`** → themes, scaffolding, agency tooling (most empty
  placeholders except `ghost-grimveil` Phaser RPG, `ghost-video` Remotion MCP)
- **`wyrm-*`** → memory product line (Wyrm, wyrm-billing, wyrm-saas)
- **No prefix, Sri Lankan brand names** → agency clients (visionworkslk,
  DragonLair, dankotuwa-porcelain, moye-moye-ella, biofuellanka,
  upalis-*, oshi-card, kerstin-card)
- **Creative names** → his personal work (below-the-wire RPG, office-hours
  novel, FairyAlmanac, wave.crafter, zumi, ravana)
- **Empty README** → intentional placeholder, name reserved for future
  product. **Don't try to "fix" empty repos.**

When he names a repo, you usually know the product line from the prefix.
Don't ask "which one" if it's unambiguous.

See [[ghost-protocol-portfolio]] for the full repo map.

## Founder-mode defaults

- **Suggest the choice that ships fastest** unless he asks for the long
  game. He'd rather merge a 90%-done thing today and iterate than a
  100%-done thing next week.
- **Use what he's already shipped** before reaching for external tools.
  Dragon-cli, Wyrm, Foundry, ghost-license, dragon-meta-mcp — these
  exist; default to them. New dependency = friction.
- **Prefer monolithic releases** over microservices. He's a small team.
- **Use Wyrm's outbound MCP** instead of installing more MCPs when a
  workflow can be wrapped (`wyrm_call_external` → Linear / Slack /
  GitHub / etc.). Keeps the surface area in one place.
- **Match commits to spec task IDs** (constitution rule VII). PR bodies
  should quote acceptance criteria verbatim.
- **Spec status update on every ship** — `dragon-platform/README.md`
  active-specs table needs the row flipped to ✅ shipped. The constitution
  doesn't enforce this automatically; you do.

## Speed multipliers that work for him

- **Single-session shipping** — branch + build + PR + merge + release +
  publish in one continuous tool chain. Don't pause for "should I take a
  break". Use [[wyrm-release-workflow]] as the recipe.
- **Squash-merge always.** Keeps main linear, makes spec-task linking
  cleaner.
- **Skip CI integration for content-only changes** — docs / README
  bumps don't need full pipeline.
- **Cloudflare Pages auto-deploy** for the agency sites + ghosts.lk.
  Push to main, deploy lands in ~60s. He uses `Ghosts-Protocol-Pvt-Ltd`
  org's CF account for everything.

## Don't lock him in — innovation guardrails

This skill captures CURRENT practice. He ships fast and patterns evolve.

- **These defaults are starting points, not constraints.** If a project
  genuinely benefits from a framework outside the listed stack (e.g.
  Astro for a content-heavy marketing site, Tauri for a desktop app,
  Bun for a hot-path API), suggest it. Don't reflexively fall back to
  Next.js because "that's what we did last time".
- **Flag pattern fatigue.** If you notice he's been using the same
  approach across 4+ projects and a newer tool / framework / pattern
  would genuinely be better, surface it — *"we've used framer-motion
  everywhere; have you looked at Motion One? smaller bundle, similar
  API. Worth trying on the next project?"*
- **The constitution is amendable.** Rule X added at v1.7.2 might
  deserve revision. Constitution amendment process is in
  `dragon-platform/.specify/memory/constitution.md` — point him at it
  when defaults stop serving the product.
- **Skills like this one should update too.** Treat this file as living.
  When his patterns shift (e.g. he moves from Stripe to Polar.sh, or
  Cloudflare Pages to Workers), update the skill in the same PR that
  ships the change.

## What NOT to do

- ❌ Don't run a 20-minute requirements interview before starting work.
  Start, react.
- ❌ Don't suggest he hire / contract someone unless he asks. He runs
  the stack himself; that's the model.
- ❌ Don't put work in flight on the personal `ghosts-lk` GitHub
  account. The org (`Ghosts-Protocol-Pvt-Ltd`) is canonical for
  everything except his own creative writing.
- ❌ Don't propose changes that violate the constitution without
  pointing out the violation first.
- ❌ Don't assume claude.ai connectors / external MCPs are configured.
  Many show "Needs authentication" and that's fine — they're optional.

## When you don't know

If he asks for something this skill doesn't cover, **default to fast +
constitution-compliant**. If those conflict, pause and ask which trumps.
That's his actual decision-making heuristic.
