SuperAPI AI Directory

forsvn

Agents & models

View repository

Updated 10-16 08:47

About this skill

/forsvn — Front Door

Classifies the ask, loads the context, routes or resumes. Always lands on a concrete next action. Capability metadata (route triggers, prerequisites, load map, artifact contract) lives in routing.yaml.

When To Use

  • Vague ask: "help me launch this", "what should I work on?", "where do I start?"
  • Resume: "continue", "pick up where I left off"
  • New to the stack and don't know which skill to call.
  • Want to see what's in flight across initiatives.

When NOT To Use

  • You already know the right skill — call it directly.
  • Deep multi-perspective debate — use /debate-agents.
  • Full scoping conversation — use /discover.

Operating Contract — 5 steps

Every invocation does exactly these five steps. No skipping, no looping.

Step 1 — State snapshot. Prefer the forsvn MCP server: call enter_workspace to load TRUTH / OUTPUT / MEMORY + the graph-derived next (one act, same data the disk walk produces). When the server is unavailable (no mcp__forsvn__* tools), fall back to the inline disk snapshot — graceful degradation, never a hard dependency. Full procedure + shell-bang fallback in references/procedures/state-snapshot.md.

Step 2 — Resume check. If .forsvn/routing/last-session.md exists AND status: awaiting-user AND timestamp < 7 days:

You were last working on: <intent>
  Initiative: <slug>
  Next action: <next-action>
  Open question: <first open question if any>

Resume? (yes / no / new)

Default to resume if the current ask is empty or "continue" / "resume". Otherwise classify fresh per Step 3.

Step 3 — Classify intent. Pick exactly one intent class. The classifier dispatches to the right leaf via the per-domain chain file (references/chains/<domain>.md) — read it before dispatching.

User says Intent class Route
"audience", "ICP", "competitors", "market", "diagnose", "prioritize", "funnel", "targets" research leaf via references/chains/research.md
"brand", "campaign", "copy", "headline", "landing page", "LP", "ad", "SEO", "video", "TikTok", "reel", "short", "cold email", "outreach", "humanize", "humanmax", "VN tone" marketing leaf via references/chains/marketing.md
"user flow", "tech stack", "architecture", "schema", "API", "code", "refactor", "machine cleanup", "docs", "README" product leaf via references/chains/product.md — forsvn-dev pkg
"scope this", "clarify", "what should we build", "requirements unclear" scope /discover
"debate this", "multiple perspectives", "poll", "consensus" debate /debate-agents
"decompose", "task list", "break down", "implementation order" decompose /breakdown-tasks (forsvn-dev pkg)
"review my work", "second opinion", "did I miss anything" review /review-work
"improvement loop", "track metric", "experiment ledger" loop /run-pipeline
Empty + no resume offer summary print state summary, exit
Ambiguous, multi-domain, "launch this", "ship this" multi scaffold a gated plan.md, stop for approval

Rules:

  • Single-domain → read the matching chain file and dispatch to its leaf.
  • Multi-domain → scaffold a gated .forsvn/runs/<slug>/plan.md (status: proposed) via bin/plan.ts init, render its steps table, and stop for human approval before step 1 (the plan-preview trust contract). No step runs until a human approves (status: approved). Schema + helper: references/plan-spec.md.
  • Unclear (in-scope) → at most 2 clarifying questions. Hard cap. Then hand off to /discover.
  • Unclear AND capability-shaped AND no index match → emit the gap line per references/procedures/nearest-match.md (terminal state b, not a clarify).
  • Brand-gate: marketing/launch intent with brand/BRAND.md missing → route through /create-brand first.
  • forsvn-dev gate: product intent and the decompose route resolve to the separate forsvn-dev package (engineering skills carved out 2026-06-16). If it isn't installed, tell the user to add forsvn-dev rather than dispatching into a missing skill.

Terminal-state rule. Every /forsvn turn ends in exactly one of three states — never a fourth "answered it myself" path:

  • invoke — recorded → announced → invoked ≥1 capability (Steps 4–5).
  • gap — the ask is capability-shaped (an imperative to produce / evaluate / plan a marketing, research, or product job) but matches no Step-3 row, no chains/<domain>.md rule, and no index entry → do not answer from general knowledge; emit the gap line per references/procedures/nearest-match.md.
  • clarify — in-scope but ambiguous → ≤2 bundled questions, then /discover.

A pure factual question ("what's a good CTR?") is answered normally — not a miss. A capability-shaped ask answered from general knowledge, or dropped, is the silent miss.

Steps 4 + 5 — Load context, then dispatch: record → announce → invoke. Full procedure in references/procedures/dispatch.md. Loading context includes the foundation pre-flight (Step 4.5): for research/marketing/product intent, a cold repo (no ICP.md, no prior session, no named deliverable) triggers the infer-and-draft First-Run flow — read the repo and draft ONE tailored artifact with labeled assumptions, never an intake form; a partial (or thin-with-prior-session) foundation warns before a generic run and offers /research-icp first, non-blocking. Write the routing record BEFORE invoking (status: dispatched, dispatched-by: forsvn), announce in one line (→ Dispatching /<skill> — <why>), then invoke the leaf via the Skill tool with args. Confident classification auto-dispatches; two close candidates → present both (counts toward the 2-question cap), never auto-fire. An explicit /forsvn dispatch supersedes any router-hook hint. The dispatcher owns the session execution-profile ask (references/_shared/execution-policy.md); dispatched leaves inherit it.

Pre-Dispatch — the classify flow IS the cold start

Needed dimensions: intent class (Step 3 table), initiative slug (Step 2 resume check / last-session.md), domain chain rule (the matching chains/<domain>.md row). Unresolved after reading state → at most 2 bundled clarifying questions (the Step 3 hard cap; close-candidate presentations count toward it); still unclear → hand off to /discover. A capability-shaped ask that resolves to no intent class is terminal state gap (not a clarify) — name the nearest 1–2 caps via references/procedures/nearest-match.md. Dispatched leaves warm-start and skip their own pre-dispatch steps 1–2.

Quality Gate

Instantiates references/_shared/thin-critic-rubric.md as a per-dispatch self-check (fast tier — no sub-agent):

  • Classification — intent matches a Step 3 row or a chain-file rule; two close candidates were presented, never coin-flipped.
  • Sequencing — routing record written (status: dispatched) BEFORE the Skill invocation.
  • Announcement — the one-line → Dispatching /<skill> — <why> preceded the invocation.
  • Coverage — the turn ended in invoke / gap / clarify; no capability-shaped ask was answered from general knowledge or dropped.

Auto-fail: silent dispatch (no announcement), record-after-invoke, or answering a capability-shaped ask without invoking, naming the gap, or clarifying — redo the step per references/anti-patterns.md.

Worked Example

"Brief the landing page first, then build" → marketing chain → brief-landing-page: record → announce → invoke → warm handoff, with the gate self-check: references/examples/dispatch-walkthrough.md [EXAMPLE].

Anti-Patterns

references/anti-patterns.md — 11 rules covering clarifying-question cap, silent dispatch, hand-off-and-stop, coin-flip auto-fire, routing-record sequencing, chain-file read, experience grep, brand-gate bypass, the silent miss, the cold-repo intake form. Re-read before dispatch.

Durable Rules (protected)

Completion Status

  • DONE — classified intent, wrote routing record, announced + invoked the leaf (or presented candidates / state summary).
  • DONE_WITH_CONCERNS — dispatched on a thin/partial foundation (no ICP.md / unratified / stale product context); the Step 4.5 pre-flight warned the user and recorded foundation:.
  • BLOCKED — could not read project state AND could not bootstrap .forsvn/.
  • NEEDS_CONTEXT — ask was empty, no prior session, no canonical sources. Printed state summary and exited.

Next Step

After dispatch, the routed leaf skill owns the work. Re-invoke /forsvn with resume to pick up the next action from last-session.md.

References