fe-module

A guide for working on the Svelte web applications and shared front-end code in the fe/ folder. It explains the repository's monorepo layout, where several related applications and shared libraries are kept together.

In plain words
What is it for?
Use it when adding or editing interface components, API calls, routes, shared front-end code, or a new Svelte application.
Why use it?
It prevents changes from going in the wrong package or breaking the connection between the Svelte interface and its Go-based host.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/yogasw/wick/fe-module
Any agent
npx skills add yogasw/wick --skill fe-module
Clone the repo
git clone --depth 1 https://github.com/yogasw/wick

Made for: Claude Code, Codex.

Per session 166 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,427 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00166 $0.03427
Opus 5 $0.00083 $0.01714
Sonnet 5 $0.00033 $0.00685
Haiku 4.5 $0.00017 $0.00343

Measured 2d ago against content hash 15d7609dc69f, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

fe-module scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/fe-module/SKILL.md · 307 lines

How it starts

The opening of the file, as written. The whole thing — 307 lines — stays where its author put it; the contents beside it link to each section on GitHub.

FE Module — wick

The fe/ tree is an npm-workspaces monorepo. Shared code lives in fe/common/* (source-only libraries, no build step); the user-facing apps are Svelte 5 SPAs in fe/agents/*. Each SPA is mounted by a Go templ "thin shell" that boots the bundle.

Workspaces

fe/
  common/       @wick-fe/common-*  — source-only shared libraries (no build script)
    api/        APIError, WickClientLayer, apiGetE/apiPostE/apiDeleteE, apiGet/apiPost/apiDelete
    stores/     toasts, pushToast, dismissToast, toastOk/toastWarn/toastError, snapshotToasts
    ui/         ConfirmDialog, ToastHost, Select   (exports ONLY the package index)
  agents/       @wick-fe/agents-*  — full Svelte SPAs (have build/dev/check scripts)
    workflow/   Workflow editor
    scm/        Git SCM panel
    conversation, overview, presets, project-settings, providers, shell, skills, new-session
  manager/      @wick-fe/manager — Manager SPA (connector builder, job runner, etc.)
                outDir: internal/manager/dist/manager/
                Go host: internal/manager/spa.go (NOT internal/tools/)

The workspace globs are ["agents/*", "common/*", "manager"] in fe/package.json. Shared dev tools (vitest, svelte, @testing-library/svelte, jsdom, typescript, vite) are declared once at the fe/ root and hoisted — do NOT redeclare them in common/* packages.

Adding a common library: create fe/common/<name>/package.json with "main": "src/index.ts" and NO build script, then cd fe && npm install. Pin runtime deps in that package; leave dev tools to the root.

Adding a new agents SPA: copy fe/agents/workflow/vite.config.ts, change base and the out dir, add a dev:<app> and build:watch entry to fe/scripts/dev.mjs workspace list + fe/package.json, then add a templ thin shell (see Routing).

Adding a brand-new Go tool SPA (outside agents): one line — var spaLoader = spa.New(spaEmbedded, "internal/<path>") (see internal/manager/spa.go). The spa.Loader handles embed-vs-live-disk, asset-URL resolution, and auto-reload registration. No init(), no spadev (removed), no per-host reload endpoint. See § "Go SPA host (internal/pkg/spa)" below.

Read the full file on GitHub · 307 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 307 lines · 166 tokens per session scan A 15d7609dc69f

Subscribe to this mod's changes

fe-module is a skill published in the GitHub repository yogasw/wick (5 stars, last pushed 5d ago), licensed MIT. It adds 166 tokens to every session and 3,427 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.