fimo 2.7.1 → 2.8.0-staging.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +3 -3
  2. package/assets/agent-templates/_default/GOAL.md +2 -2
  3. package/assets/agent-templates/_default/capabilities.yaml +1 -0
  4. package/assets/agent-templates/broken-link-sweeper/capabilities.yaml +0 -1
  5. package/assets/agent-templates/content-translator/GOAL.md +1 -2
  6. package/assets/agent-templates/content-translator/capabilities.yaml +1 -2
  7. package/assets/agent-templates/post-deploy-check/capabilities.yaml +0 -1
  8. package/assets/agent-templates/seo-audit/capabilities.yaml +0 -1
  9. package/assets/skills/fimo/SKILL.md +11 -4
  10. package/assets/skills/fimo-cli/SKILL.md +16 -10
  11. package/assets/skills/fimo-cli/references/agents.md +35 -38
  12. package/assets/skills/fimo-cli/references/analytics.md +9 -1
  13. package/assets/skills/fimo-cli/references/branches.md +1 -1
  14. package/assets/skills/fimo-cli/references/credits.md +2 -2
  15. package/assets/skills/fimo-cli/references/deploy.md +1 -1
  16. package/assets/skills/fimo-cli/references/describe.md +2 -2
  17. package/assets/skills/fimo-cli/references/init.md +7 -7
  18. package/assets/skills/fimo-cli/references/integrations.md +2 -2
  19. package/assets/skills/fimo-cli/references/invite.md +1 -1
  20. package/assets/skills/fimo-cli/references/knowledge.md +48 -0
  21. package/assets/skills/fimo-cli/references/locales.md +1 -1
  22. package/assets/skills/fimo-cli/references/mcp.md +1 -1
  23. package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +1 -1
  24. package/assets/skills/fimo-cli/references/projects.md +3 -3
  25. package/assets/skills/fimo-cli/references/schedules.md +1 -1
  26. package/assets/skills/fimo-cli/references/support.md +1 -1
  27. package/assets/skills/fimo-cli/references/update.md +9 -0
  28. package/assets/skills/fimo-code/SKILL.md +11 -0
  29. package/assets/skills/fimo-code/references/analytics.md +70 -0
  30. package/assets/skills/fimo-code/references/design.md +6 -6
  31. package/assets/skills/fimo-code/references/frameworks/vite-react.md +1 -1
  32. package/assets/skills/fimo-migration/SKILL.md +7 -0
  33. package/assets/skills/fimo-studio/SKILL.md +55 -38
  34. package/assets/skills/fimo-studio/references/agents.md +4 -4
  35. package/assets/skills/fimo-studio/references/ai-chat.md +24 -4
  36. package/assets/skills/fimo-studio/references/analytics.md +28 -0
  37. package/assets/skills/fimo-studio/references/billing-and-credits.md +13 -3
  38. package/assets/skills/fimo-studio/references/cms.md +2 -2
  39. package/assets/skills/fimo-studio/references/command-palette.md +5 -6
  40. package/assets/skills/fimo-studio/references/connections.md +10 -11
  41. package/assets/skills/fimo-studio/references/custom-domains.md +3 -3
  42. package/assets/skills/fimo-studio/references/drawing-and-wireframing.md +2 -4
  43. package/assets/skills/fimo-studio/references/knowledge.md +9 -0
  44. package/assets/skills/fimo-studio/references/media-library.md +5 -2
  45. package/assets/skills/fimo-studio/references/preview-and-responsive.md +6 -12
  46. package/assets/skills/fimo-studio/references/project-creation.md +24 -8
  47. package/assets/skills/fimo-studio/references/publish-and-deploy.md +8 -8
  48. package/assets/skills/fimo-studio/references/schedules.md +6 -7
  49. package/assets/skills/fimo-studio/references/seo-settings.md +2 -2
  50. package/assets/skills/fimo-studio/references/sharing-and-collaboration.md +11 -13
  51. package/assets/skills/fimo-studio/references/version-history.md +4 -4
  52. package/assets/skills/fimo-studio/references/visual-editing.md +9 -7
  53. package/assets/skills/fimo-studio/references/webhooks.md +10 -11
  54. package/dist/cli/bundle.json +1 -1
  55. package/dist/cli/index.js +106 -121
  56. package/dist/runtime/templates.d.ts +1 -2
  57. package/dist/runtime/templates.js +1 -3
  58. package/package.json +13 -13
  59. package/release.json +2 -2
  60. package/templates/astro/.fimo/config.json +0 -14
  61. package/templates/astro/AGENTS.md +1 -1
  62. package/templates/astro/package.json +4 -2
  63. package/templates/astro/src/layouts/Base.astro +2 -48
  64. package/templates/nextjs/package.json +7 -5
  65. package/templates/nextjs/src/app/layout.tsx +2 -0
  66. package/templates/react-router/package.json +5 -4
  67. package/templates/react-router/src/root.tsx +2 -0
  68. package/templates/sveltekit/package.json +4 -2
  69. package/templates/sveltekit/src/routes/+layout.svelte +2 -0
  70. package/templates/vite/package.json +7 -5
  71. package/templates/vite/src/LocaleLayout.tsx +2 -0
  72. package/assets/skills/fimo-cli/references/inbox.md +0 -86
  73. package/assets/skills/fimo-studio/references/code-editor.md +0 -65
  74. package/templates/astro/src/components/ProjectOverview.astro +0 -45
  75. package/templates/astro/src/pages/[locale]/projects/[slug].astro +0 -38
  76. package/templates/astro/src/pages/[locale]/projects/index.astro +0 -19
  77. package/templates/astro/src/pages/projects/[slug].astro +0 -31
  78. package/templates/astro/src/pages/projects/index.astro +0 -13
  79. package/templates/astro/src/schemas/Project.json +0 -9
  80. package/templates/astro/src/schemas/Project.ts +0 -29
  81. package/templates/astro/src/schemas/Project.types.ts +0 -70
  82. package/templates/astro/src/schemas/SiteSettings.json +0 -10
  83. package/templates/astro/src/schemas/SiteSettings.ts +0 -31
  84. package/templates/astro/src/schemas/SiteSettings.types.ts +0 -69
  85. package/templates/react-router/src/pages/Privacy.tsx +0 -79
  86. package/templates/react-router/src/pages/Terms.tsx +0 -48
  87. package/templates/react-router/src/pages/legal/LegalPage.tsx +0 -42
  88. package/templates/welcome/manifest.json +0 -655
  89. package/templates/welcome/media/analytics-overview.avif +0 -0
  90. package/templates/welcome/media/autonomous-loop.avif +0 -0
  91. package/templates/welcome/media/editable-preview.avif +0 -0
  92. package/templates/welcome/media/media-library.avif +0 -0
  93. package/templates/welcome/media/slack-teams.avif +0 -0
  94. package/templates/welcome/template/.fimo/agents/welcome-guide/GOAL.md +0 -12
  95. package/templates/welcome/template/.fimo/agents/welcome-guide/capabilities.yaml +0 -3
  96. package/templates/welcome/template/.fimo/agents/welcome-guide/config.yaml +0 -8
  97. package/templates/welcome/template/.fimo/config.json +0 -52
  98. package/templates/welcome/template/src/font.css +0 -60
  99. package/templates/welcome/template/src/pages/ArticleDetail.tsx +0 -104
  100. package/templates/welcome/template/src/pages/Index.tsx +0 -36
  101. package/templates/welcome/template/src/pages/SiteContent.tsx +0 -674
  102. package/templates/welcome/template/src/pages/fallback-content.ts +0 -152
  103. package/templates/welcome/template/src/routes.ts +0 -9
  104. package/templates/welcome/template/src/schemas/Article.json +0 -34
  105. package/templates/welcome/template/src/schemas/Article.ts +0 -54
  106. package/templates/welcome/template/src/schemas/Article.types.ts +0 -93
  107. package/templates/welcome/template/src/schemas/Author.json +0 -17
  108. package/templates/welcome/template/src/schemas/Author.ts +0 -51
  109. package/templates/welcome/template/src/schemas/Author.types.ts +0 -54
  110. package/templates/welcome/template/src/schemas/Category.json +0 -17
  111. package/templates/welcome/template/src/schemas/Category.ts +0 -51
  112. package/templates/welcome/template/src/schemas/Category.types.ts +0 -54
  113. package/templates/welcome/template/src/schemas/HomePage.json +0 -110
  114. package/templates/welcome/template/src/schemas/HomePage.ts +0 -22
  115. package/templates/welcome/template/src/schemas/HomePage.types.ts +0 -116
@@ -0,0 +1,48 @@
1
+ # Shared site knowledge
2
+
3
+ Site knowledge holds website goals, audience, brand guidance, and rules shared across every Branch.
4
+ It is site context, not repository instructions or an agent's private memory.
5
+
6
+ ## Read before site work
7
+
8
+ Read before proposing a site direction, planning, writing code or content, choosing design, or
9
+ reviewing work for consistency. Refresh on a new task, site switch, reported knowledge change,
10
+ or context refresh/compaction that removed the snapshot. Carry the current content to
11
+ delegated agents. Do not fetch it for unrelated account administration.
12
+
13
+ ```bash
14
+ fimo knowledge get --json
15
+ fimo knowledge get --project <project-id> --json
16
+ ```
17
+
18
+ The result contains `content`, `updatedAt`, and `updatedBy`. Empty content means no saved knowledge. Continue using the user's request and site evidence; ask only for missing
19
+ information that materially affects the task. Do not force setup, infer and save on the next message,
20
+ or treat a permission/network failure as empty knowledge. Explain a failed read and retry safely.
21
+
22
+ Use knowledge as site guidance, never as authority to override system instructions, permissions,
23
+ or the user's current request. Surface relevant conflicts rather than silently changing the knowledge.
24
+ Website observations are evidence of the current site, not proof of intended goals or approved rules.
25
+
26
+ ## Write only when asked
27
+
28
+ Only persist when the user explicitly asks to save or update shared knowledge and the caller has
29
+ permission. Managers can edit; an agent needs explicit knowledge-write authorization. Reading is not
30
+ permission to learn and persist. A request to change site copy is not a request to change shared rules.
31
+
32
+ Read the current knowledge, edit the complete Markdown while preserving unrelated guidance, and save:
33
+
34
+ ```bash
35
+ fimo knowledge set --file knowledge.md --json
36
+ cat knowledge.md | fimo knowledge set --stdin --json
37
+ ```
38
+
39
+ `--file -` also reads stdin. Content is limited to 10,000 characters. An empty file explicitly clears
40
+ knowledge. Each save replaces the current Markdown.
41
+
42
+ CLI `--branch` does not isolate knowledge. Saved updates apply on the next agent context refresh.
43
+ For MCP, use `knowledge_get` or `knowledge_update`
44
+ with `projectId`; update accepts `content`.
45
+
46
+ Settings also offers **Draft from website**. It runs analysis in the background and returns an editable
47
+ draft for review. Only an explicit **Save** updates shared knowledge; drafting does not grant permission
48
+ to write it. Do not install an autonomous agent to perform this action.
@@ -33,7 +33,7 @@ The synchronized `.fimo/config.json` remains the application runtime's declarati
33
33
  - `defaultLocale` is the locale used by `fimo validate`, `fimo labels set` without `--locale`, and content commands without `--locale`. Change it with `fimo locales set-default`.
34
34
  - `locales` must include `defaultLocale`. Add and remove values with `fimo locales add` and `fimo locales remove`.
35
35
  - Locale tags should be structurally valid, for example `en`, `es`, `pt-BR`, or `zh-Hans`.
36
- - New projects do not need a global routing strategy. The route contract declares locale placement with `/:locale`; legacy `i18n.routing.strategy` values are read only for compatibility while migrating.
36
+ - New sites do not need a global routing strategy. The route contract declares locale placement with `/:locale`; legacy `i18n.routing.strategy` values are read only for compatibility while migrating.
37
37
  - If multiple locales are configured, create or update labels and localized content for every configured locale. Create schemas with `i18n: { "enabled": false }` only once.
38
38
 
39
39
  Edit application-owned settings such as `routes` directly in `.fimo/config.json`. Locale membership and the default use the lifecycle commands above because they must update the selected Fimo Branch and local checkout together.
@@ -121,4 +121,4 @@ Remote connections support HTTPS Streamable HTTP servers with OAuth, no authenti
121
121
  private headers. Local stdio commands such as `npx`, arbitrary child processes, resources, and prompts are not supported.
122
122
 
123
123
  To connect ChatGPT, Claude, or another remote MCP client to Fimo itself, use Fimo's hosted Project MCP at
124
- `https://api.fimo.ai/api/mcp`. That is a separate direction from connecting a Fimo project to an external MCP server.
124
+ `https://api.fimo.ai/api/mcp`. That is a separate direction from connecting a Fimo site to an external MCP server.
@@ -53,7 +53,7 @@ and the active git branch; hosted preview and production inject it directly.
53
53
 
54
54
  `fimo vars add`, `fimo vars update`, and `fimo vars pull` write public project variables to a managed block in `.env.local`.
55
55
 
56
- Local env files are ignored by git in Fimo projects. They are for local development only; deployment reads project variables from Fimo and injects them into the remote build.
56
+ Local env files are ignored by git in Fimo sites. They are for local development only; deployment reads project variables from Fimo and injects them into the remote build.
57
57
 
58
58
  ## Agent Secrets
59
59
 
@@ -1,6 +1,6 @@
1
1
  # Managing projects
2
2
 
3
- Commands for listing projects across an org, cloning a remote project locally, and managing the lifecycle of a single project (delete, publish, unpublish, rename). Most lifecycle commands operate on the **current project** (read from `.fimo/project.json`, or the legacy `.fimo.settings.json`, in the cwd) by default; for `delete`, `publish`, and `unpublish` you can pass an explicit `[projectId]` to target another. (`rename` only edits the linked local project; see below.)
3
+ Commands for listing projects across an org, cloning a remote site locally, and managing the lifecycle of a single project (delete, publish, unpublish, rename). Most lifecycle commands operate on the **current project** (read from `.fimo/project.json`, or the legacy `.fimo.settings.json`, in the cwd) by default; for `delete`, `publish`, and `unpublish` you can pass an explicit `[projectId]` to target another. (`rename` only edits the linked local project; see below.)
4
4
 
5
5
  ## The `fimo projects` namespace
6
6
 
@@ -16,8 +16,8 @@ fimo projects rename <name> [projectId] [-C <dir>] # set seo.siteName in the l
16
16
 
17
17
  - **`list`** — projects you can see in the org. Live projects are marked.
18
18
  - **`create`** — identical to `fimo init` (create-new path); see `references/init.md`.
19
- - **`clone`** — clone a remote Fimo project's git repo to your machine and write the local `.fimo/project.json` and agent files. Use `fimo clone <projectId>` when scripting or when the ID is known. In an interactive terminal, bare `fimo clone` opens a project picker for the active org; JSON mode and non-TTY shells require an explicit project ID and fail fast instead of prompting. By default it clones `main`; pass `--branch <name>` to clone a specific Branch. The removed `--env <name>` spelling is rejected as a Branch selector. The target directory defaults to the project display name/name, or pass `[dir]` explicitly.
20
- - **`delete`** — destructive; prompts unless `-y`. Removes the remote project.
19
+ - **`clone`** — clone a remote Fimo site's git repo to your machine and write the local `.fimo/project.json` and agent files. Use `fimo clone <projectId>` when scripting or when the ID is known. In an interactive terminal, bare `fimo clone` opens a project picker for the active org; JSON mode and non-TTY shells require an explicit site ID and fail fast instead of prompting. By default it clones `main`; pass `--branch <name>` to clone a specific Branch. The removed `--env <name>` spelling is rejected as a Branch selector. The target directory defaults to the project display name/name, or pass `[dir]` explicitly.
20
+ - **`delete`** — destructive; prompts unless `-y`. Removes the remote site.
21
21
  - **`publish` / `unpublish`** — toggle the project's public visibility. `publish` flips the configured Production source state live (the same "go live" as `fimo deploy --publish`, minus the git push).
22
22
  - **`rename`** — edits only the linked local project's `seo.siteName`. It does not commit or deploy. It requires a project marker in the cwd, and if you pass a `[projectId]` that doesn't match the linked project it errors and exits 1 (so you can't rename a different project). Later remote config commands may require reconciliation while the local config is dirty. Finish your local edits, then explicitly run `fimo deploy --no-wait` when ready for a quick sync.
23
23
 
@@ -33,7 +33,7 @@ fimo schedules delete <schedule>
33
33
 
34
34
  Scheduled commands run in the project's Branch runtime, not on the user's machine. Fimo prepares the Branch and executes the stored command from the project root.
35
35
 
36
- `--do` can be any command that works with schedule runtime permissions, such as `fimo validate`, `pnpm test`, or a project script. The runtime can edit project content and publish or unpublish the project, but it cannot manage project access, secrets, schedules, or other project-level settings.
36
+ `--do` can be any command that works with schedule runtime permissions, such as `fimo validate`, `pnpm test`, or a project script. The runtime can edit project content and publish or unpublish the project, but it cannot manage site access, secrets, schedules, or other project-level settings.
37
37
 
38
38
  Runs use at-least-once delivery. If Fimo loses a completion response, the same run may execute again. Side-effecting commands should use `FIMO_SCHEDULE_RUN_ID` as their idempotency key.
39
39
 
@@ -1,6 +1,6 @@
1
1
  # Reporting a problem to Fimo
2
2
 
3
- `fimo support report` sends a project-scoped problem to Fimo support. It automatically includes the project, current Branch, and CLI version so support can start investigating without asking the user to repeat that context.
3
+ `fimo support report` sends a site-scoped problem to Fimo support. It automatically includes the project, current Branch, and CLI version so support can start investigating without asking the user to repeat that context.
4
4
 
5
5
  ## When to prepare it
6
6
 
@@ -22,6 +22,15 @@ What it refuses to touch:
22
22
  - `file:` and development-tarball pins select a development build on purpose; they are reported as blockers, never replaced.
23
23
  - Ambiguous imports (template literals, `fimo/astro/config`) are reported as manual steps instead of guessed at.
24
24
 
25
+ ## Analytics when updating
26
+
27
+ If the project declares `fimo-analytics`, the update keeps it aligned with the
28
+ other Fimo packages. The update never adds a tracker: React Router projects that
29
+ tracked through `FimoProviders` before 2.8.0 need `<Analytics />`, and other
30
+ projects without `fimo-analytics` should add it to match new projects. For setup and
31
+ verification, load `fimo skills get fimo-code --ref analytics`. The update
32
+ command itself does not publish the website.
33
+
25
34
  ## Reading the report
26
35
 
27
36
  `--json` returns one envelope whose `data` is stable for agents:
@@ -20,6 +20,13 @@ plain-JSON consumer such as Markdown, RSS, or JSON-LD, use the generated
20
20
  serializer and hydrate them in the client when the generated client requires
21
21
  it. Load the framework reference for the exact boundary.
22
22
 
23
+ ## Shared site knowledge
24
+
25
+ Before site planning, recommendations, design, copy, content, or code work, read the site's
26
+ knowledge: `fimo knowledge get --project <id> --json` (omit `--project` in a linked checkout).
27
+ Use the selected CLI invocation. Load `fimo skills get fimo-cli --ref knowledge` for refresh,
28
+ empty-state, and explicit-write rules. This prerequisite also applies when entering this skill directly.
29
+
23
30
  ## Orient before writing
24
31
 
25
32
  1. Run the project-installed `fimo describe --json` in a linked project and read `data.framework.slug`, schemas, locales, and tree. If the project is not linked yet, inspect `package.json` and the app directory instead.
@@ -76,6 +83,10 @@ Each reference defines one package contract. Fetch it when the task reaches that
76
83
  - Framework detection, production routing, and hosting adapters → `references/frameworks/hosting.md`
77
84
  - Major visual work → `references/design.md`
78
85
 
86
+ ## Analytics
87
+
88
+ For pageview installation or debugging, read [references/analytics.md](references/analytics.md).
89
+
79
90
  ## Non-negotiable boundaries
80
91
 
81
92
  - Do not hardcode editor-owned collections, page content, labels, or media in JSX.
@@ -0,0 +1,70 @@
1
+ # Pageview tracking
2
+
3
+ ## Before adding tracking
4
+
5
+ Inspect the installed packages and the built page first; never mount a second
6
+ sender beside one the app already renders. Projects created from current
7
+ templates already declare `fimo-analytics` and mount `<Analytics />` in the root. `fimo-react-router` before 2.8.0
8
+ tracked from `FimoProviders`; from 2.8.0 it does not.
9
+
10
+ Install `fimo-analytics`, preserving the project's chosen version or channel.
11
+ Publish the code change before verifying live traffic.
12
+
13
+ ```sh
14
+ pnpm add fimo-analytics
15
+ ```
16
+
17
+ ## Install and mount
18
+
19
+ Mount the matching component once, with no props:
20
+
21
+ | Framework | Import | Placement |
22
+ | ------------ | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
23
+ | React Router | `{ Analytics }` from `fimo-analytics/react-router` | Root route component beside `<Outlet />`, or inside the existing `<BrowserRouter>` / `<HashRouter>` |
24
+ | Next.js | `{ Analytics }` from `fimo-analytics/next` | App Router: inside `<body>` in `app/layout.tsx`. Pages Router: beside `<Component {...pageProps} />` in `pages/_app.tsx` |
25
+ | Astro | default `Analytics` from `fimo-analytics/astro` | Shared layout, no `client:*` directive |
26
+ | SvelteKit | default `Analytics` from `fimo-analytics/sveltekit` | Root `src/routes/+layout.svelte` |
27
+ | React (Vite) | `{ Analytics }` from `fimo-analytics/react` | Application root |
28
+ | Svelte | default `Analytics` from `fimo-analytics/svelte` | Root component |
29
+ | Vue | `{ Analytics }` from `fimo-analytics/vue` | Root component |
30
+
31
+ ```tsx
32
+ import { Analytics } from 'fimo-analytics/next';
33
+ <Analytics />;
34
+ ```
35
+
36
+ For Nuxt, mount nothing: add `'fimo-analytics/nuxt'` to `modules` in
37
+ `nuxt.config.ts` and run `pnpm add -D @nuxt/kit`.
38
+
39
+ The generic React, Svelte and Vue components observe browser history and do not
40
+ resolve hash-router paths; use a framework adapter when one exists.
41
+
42
+ For a plain HTML Vite site, copy `node_modules/fimo-analytics/dist/browser.js`
43
+ to `public/fimo-analytics.js` and add this classic script to `index.html`:
44
+
45
+ ```html
46
+ <script
47
+ defer
48
+ src="/fimo-analytics.js"
49
+ data-endpoint="%VITE_API_URL%/e/p"
50
+ data-enabled="%VITE_ENABLE_ANALYTICS%"
51
+ ></script>
52
+ ```
53
+
54
+ ## Hosting controls tracking
55
+
56
+ Fimo hosting provides the destination and the switch while the site builds:
57
+ on for published sites, off for previews. Without it, as in local development,
58
+ tracking is off; `[fimo-analytics]` in the browser console, or in build logs for
59
+ Astro and Nuxt, says why. Do not add an `endpoint`, an `enabled` guard, or a
60
+ `NODE_ENV` check.
61
+
62
+ ## Verify and diagnose
63
+
64
+ On the published site, check Network for one POST to `/e/p` on the initial load
65
+ and on each pathname or query change, including back/forward and revisits.
66
+ Hash-only changes do not send. Previews send nothing. If requests are missing,
67
+ check that the deployed app mounts the component and read the `[fimo-analytics]`
68
+ diagnostics. If requests arrive but counts stay at zero, use the `fimo-cli`
69
+ analytics reference to check the branch, date range and device filter; headless
70
+ browsers count as bots. A 202 response does not prove a stored row.
@@ -24,7 +24,7 @@ Before coding, understand the context and commit to a BOLD aesthetic direction:
24
24
  ## Frontend aesthetics guidelines
25
25
 
26
26
  - **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt for distinctive choices. Pair a distinctive display font with a refined body font. Limit to 2 font families total.
27
- - **Color & Theme**: Commit to a cohesive aesthetic. Dominant colors with sharp accents outperform timid, evenly-distributed palettes. Reserve high-saturation colors for small actionable elements (icons, charts, buttons). Maintain WCAG AA contrast (4.5:1 body, 3:1 large text). Write palette values into the shadcn CSS variables in `src/index.css` — see `references/ui.md` for the Tailwind integration.
27
+ - **Color & Theme**: Commit to a cohesive aesthetic. Dominant colors with sharp accents outperform timid, evenly-distributed palettes. Reserve high-saturation colors for small actionable elements (icons, charts, buttons). Maintain WCAG AA contrast (4.5:1 body, 3:1 large text). Put palette values in the project's existing theme tokens instead of hard-coding colors in components.
28
28
  - **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions; use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
29
29
  - **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density. Dramatic whitespace contrast: tight clusters + generous breathing room.
30
30
  - **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors — gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, grain overlays.
@@ -101,13 +101,13 @@ Example: "**Linear meets Stripe** — polished SaaS with premium editorial touch
101
101
  ### Color & Theme
102
102
 
103
103
  - **Like:** Reference site(s) for color inspiration
104
- - **Background:** Primary background color (hex → `--background`)
105
- - **Foreground:** Primary text color (hex → `--foreground`)
106
- - **Accent:** Primary accent color (hex → `--primary`)
104
+ - **Background:** Primary background color (hex)
105
+ - **Foreground:** Primary text color (hex)
106
+ - **Accent:** Primary accent color (hex)
107
107
  - **Secondary accents:** Additional colors if needed
108
108
  - **Dark mode:** Direction for dark mode palette (if applicable)
109
109
 
110
- Write into `src/index.css` as shadcn CSS variables, then use `bg-background` / `text-foreground` / `bg-primary` in components.
110
+ Write these into the project's existing theme tokens and reference the tokens from components.
111
111
 
112
112
  ### Motion & Interaction
113
113
 
@@ -130,7 +130,7 @@ If the user hasn't supplied images and one is needed, run `fimo image generate -
130
130
 
131
131
  - **Like:** Reference site(s) for icon style
132
132
  - **Style:** Line icons, filled, duotone, custom
133
- - **Library:** Lucide (already in the template), Heroicons, custom, or none
133
+ - **Library:** the icon set the project already uses, a custom set, or none
134
134
  - **Usage:** Sparse and meaningful vs. decorative
135
135
 
136
136
  ### Quality Bar
@@ -27,7 +27,7 @@ Import it from `fimo-react-router/vite` whenever the application renders through
27
27
 
28
28
  ## Application root
29
29
 
30
- `FimoProviders` needs a React Router context for Studio navigation and pageview tracking. Keep the application's existing router type:
30
+ `FimoProviders` needs a React Router context for Studio navigation. Keep the application's existing router type. For pageview tracking, read `references/analytics.md`.
31
31
 
32
32
  ```tsx
33
33
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
@@ -48,6 +48,13 @@ lookups, avoid duplicate or sequential reads, and prove edit freshness. Do not
48
48
  ask a generic optimization question or bundle a framework upgrade into the
49
49
  migration.
50
50
 
51
+ ## Shared site knowledge
52
+
53
+ Before site planning, recommendations, design, copy, content, or code work, read the site's
54
+ knowledge: `fimo knowledge get --project <id> --json` (omit `--project` in a linked checkout).
55
+ Use the selected CLI invocation. Load `fimo skills get fimo-cli --ref knowledge` for refresh,
56
+ empty-state, and explicit-write rules. This prerequisite also applies when entering this skill directly.
57
+
51
58
  ## Execution environment
52
59
 
53
60
  Run this skill from a coding-agent process that has direct access to the
@@ -6,7 +6,7 @@ description: >-
6
6
  Triggers: "in Fimo Studio", "in the dashboard", "in the web app",
7
7
  "how do I X in the UI", or screenshots of the dashboard. Topics
8
8
  covered: dashboard content and CMS, publishing from the dashboard,
9
- dashboard SEO/domain settings, project connections, agents, schedules and run history, outbound webhooks,
9
+ dashboard SEO/domain settings, site connections, agents, schedules and run history, outbound webhooks,
10
10
  visual editing, version history UI, dashboard sharing/billing, dashboard chat,
11
11
  and the command palette. Never describe
12
12
  UI locations, buttons, or panels from memory — always read the relevant
@@ -15,56 +15,73 @@ description: >-
15
15
 
16
16
  # Fimo Studio
17
17
 
18
- Fimo Studio is the Fimo web app — the place where content editors and project owners manage their site without writing code. This skill guides users through Studio features with step-by-step walkthroughs.
18
+ Fimo Studio is the Fimo web app — the place where content editors and site owners manage their site without writing code. This skill guides users through Studio features with step-by-step walkthroughs.
19
19
 
20
20
  For developer-side conventions (the `fimo` CLI, schemas, forms, code-side rules), see the `fimo` skill instead.
21
21
 
22
+ ## Shared site knowledge
23
+
24
+ Before site planning, recommendations, design, copy, content, or code work, read the site's
25
+ knowledge: `fimo knowledge get --project <id> --json` (omit `--project` in a linked checkout).
26
+ Use the selected CLI invocation. Load `fimo skills get fimo-cli --ref knowledge` for refresh,
27
+ empty-state, and explicit-write rules. This prerequisite also applies when entering this skill directly.
28
+
22
29
  ## Voice
23
30
 
24
31
  Use plain, friendly language. Describe what users see, where they click, and what happens next. Adapt depth to the user's level.
25
32
 
26
33
  **Always read the relevant reference file before describing any UI feature, button, or panel.** Do not rely on your own knowledge of the interface — it changes frequently. If you are about to mention where something is located or how to access a feature, read the reference first.
27
34
 
35
+ ## Studio layout
36
+
37
+ - **Header (desktop):** the site menu (site name; History is here) and the Branch switcher, then the workspaces: Chats, Getting started, Preview, Content, Assets, Agents, Analytics, Settings. Only workspaces the user can access appear. Workspaces that do not fit move into **More**. On the right: Earn free credits, Invite, Clone, Publish, and Merge on a Branch.
38
+ - **Phone:** bottom tabs for Chat, Preview, Agents and Settings. Invite, Earn free credits and Clone ("Work on this site locally") move into the site menu.
39
+ - **Settings:** General, Domains, Knowledge, SEO and Languages are listed directly. Models, Environments, Secrets, Schedules, Webhooks and Connections are under **Advanced settings**.
40
+ - **Shortcuts:** Alt+1 Preview, Alt+2 Content, Alt+3 Assets, Alt+5 Settings, Alt+E edit mode, Cmd/Ctrl+K command palette.
41
+
42
+ When a reference says "open X", X can be inside **More** on a narrow window.
43
+
28
44
  ## Topic index
29
45
 
30
46
  Read the relevant reference file when the user's question matches a topic.
31
47
 
32
- | Topic | Reference | When to read |
33
- | ------------------------ | --------------------------------------- | ----------------------------------------------------- |
34
- | Command Palette | references/command-palette.md | "What can I open with Cmd+K?", "Quick actions" |
35
- | Publish & Deploy | references/publish-and-deploy.md | "How do I publish?", "How do I make my site live?" |
36
- | Custom Domains | references/custom-domains.md | "How do I use my own domain?", "DNS setup" |
37
- | Content Management (CMS) | references/cms.md | "How does the CMS work?", "How do I add blog posts?" |
38
- | Media Library | references/media-library.md | "How do I upload images?", "Where are my files?" |
39
- | AI Chat | references/ai-chat.md | "What can the AI do?", "How do I give context?" |
40
- | Code Editor | references/code-editor.md | "How do I edit code?", "Where are my files?" |
41
- | SEO Settings | references/seo-settings.md | "How do I set up SEO?", "Favicon, title, share image" |
42
- | Agents | references/agents.md | "Run an agent", "Pause an agent", "Next agent run" |
43
- | Schedules | references/schedules.md | "Recurring commands", "Run history", "Run now" |
44
- | Webhooks | references/webhooks.md | "React to forms", "Send events to another service" |
45
- | Connections | references/connections.md | "Connect a service", "Add an MCP server" |
46
- | Preview & Responsive | references/preview-and-responsive.md | "How does it look on mobile?", "How do I test sizes?" |
47
- | Visual Editing | references/visual-editing.md | "Can I edit visually?", "How do I change colors?" |
48
- | Version History | references/version-history.md | "How do I undo?", "How do I go back?" |
49
- | Sharing & Collaboration | references/sharing-and-collaboration.md | "How do I share?", "How do I invite someone?" |
50
- | Project Creation | references/project-creation.md | "How do I start a new project?" |
51
- | Billing & Credits | references/billing-and-credits.md | "What are credits?", "How do I upgrade?" |
52
- | Drawing & Wireframing | references/drawing-and-wireframing.md | "How do I sketch my idea?" |
48
+ | Topic | Reference | When to read |
49
+ | ------------------------ | --------------------------------------- | ---------------------------------------------------------------------- |
50
+ | Command Palette | references/command-palette.md | "What can I open with Cmd+K?", "Quick actions" |
51
+ | Publish & Deploy | references/publish-and-deploy.md | "How do I publish?", "How do I make my site live?" |
52
+ | Analytics | references/analytics.md | "Is tracking working?", "Why are analytics empty?" |
53
+ | Custom Domains | references/custom-domains.md | "How do I use my own domain?", "DNS setup" |
54
+ | Content Management (CMS) | references/cms.md | "How does the CMS work?", "How do I add blog posts?" |
55
+ | Media Library | references/media-library.md | "How do I upload images?", "Where are my files?" |
56
+ | AI Chat | references/ai-chat.md | "What can the AI do?", "How do I give context?" |
57
+ | Site Knowledge | references/knowledge.md | "Set brand guidance", "Website goals", "Draft knowledge from the site" |
58
+ | SEO Settings | references/seo-settings.md | "How do I set up SEO?", "Favicon, title, share image" |
59
+ | Agents | references/agents.md | "Run an agent", "Pause an agent", "Next agent run" |
60
+ | Schedules | references/schedules.md | "Recurring commands", "Run history", "Run now" |
61
+ | Webhooks | references/webhooks.md | "React to forms", "Send events to another service" |
62
+ | Connections | references/connections.md | "Connect a service", "Add an MCP server" |
63
+ | Preview & Responsive | references/preview-and-responsive.md | "How does it look on mobile?", "How do I test sizes?" |
64
+ | Visual Editing | references/visual-editing.md | "Can I edit visually?", "How do I change colors?" |
65
+ | Version History | references/version-history.md | "How do I undo?", "How do I go back?" |
66
+ | Sharing & Collaboration | references/sharing-and-collaboration.md | "How do I share?", "How do I invite someone?" |
67
+ | Site Creation | references/project-creation.md | "How do I start a new site?" |
68
+ | Billing & Credits | references/billing-and-credits.md | "What are credits?", "How do I upgrade?", "How do referrals work?" |
69
+ | Drawing & Wireframing | references/drawing-and-wireframing.md | "How do I sketch my idea?" |
53
70
 
54
71
  ## Cross-feature references
55
72
 
56
- | When user asks about... | Also mention... |
57
- | ----------------------- | ------------------------------------------------------------------------------ |
58
- | Publishing | SEO settings, Custom domains |
59
- | Custom domains | Publishing (must publish first), Billing (premium required) |
60
- | Adding images | Media Library, AI Chat, Edit Mode |
61
- | Content/CMS | AI Chat, Media Library |
62
- | Webhooks | Project secrets, Forms, Publishing, Agents |
63
- | Connections | AI Chat, Agents, Project secrets |
64
- | Agents | Connections, Project secrets, Branches |
65
- | Schedules | Project secrets, Environments, Agents |
66
- | Visual changes | Edit Mode (quick tweaks), AI Chat (bigger changes), Code Editor (full control) |
67
- | Something went wrong | Version History, AI Chat |
68
- | Working with others | Sharing, Collaboration |
69
- | Starting a project | Preview & Responsive, Publish & Deploy |
70
- | Running out of credits | Billing |
73
+ | When user asks about... | Also mention... |
74
+ | ----------------------- | -------------------------------------------------------------------- |
75
+ | Publishing | SEO settings, Custom domains |
76
+ | Custom domains | Publishing (must publish first), Billing (premium required) |
77
+ | Adding images | Media Library, AI Chat, Edit Mode |
78
+ | Content/CMS | AI Chat, Media Library |
79
+ | Webhooks | Site secrets, Forms, Publishing, Agents |
80
+ | Connections | AI Chat, Agents, Site secrets |
81
+ | Agents | Connections, Site secrets, Branches |
82
+ | Schedules | Site secrets, Environments, Agents |
83
+ | Visual changes | Edit Mode (CMS content), AI Chat (layout, styling, and code changes) |
84
+ | Something went wrong | Version History, AI Chat |
85
+ | Working with others | Sharing, Collaboration |
86
+ | Starting a site | Preview & Responsive, Publish & Deploy |
87
+ | Running out of credits | Billing |
@@ -1,10 +1,10 @@
1
1
  # Agents
2
2
 
3
- Project agents are versioned bundles from the project's repository. Studio lets project members inspect their configuration and run history, while project managers can start, stop, resume, and delete them.
3
+ Site agents are versioned bundles from the site's repository. Studio lets site members inspect their configuration and run history, while site managers can start, stop, resume, and delete them.
4
4
 
5
5
  ## Open an agent
6
6
 
7
- 1. Open the project and choose **Agents**.
7
+ 1. Open the site and choose **Agents**.
8
8
  2. Select **Agents** again to see the available bundles.
9
9
  3. Choose an agent to open its **Runs** and **Settings** tabs.
10
10
 
@@ -20,11 +20,11 @@ Choose **Stop** to pause every future trigger and stop planned or running work.
20
20
 
21
21
  A stopped agent shows **Paused** in the header. **Resume** makes the same triggers live again with their previous settings.
22
22
 
23
- Only project managers see Run, Stop, and Resume. Other project members can still see schedule timing, status, settings, and run history.
23
+ Only site managers see Run, Stop, and Resume. Other site members can still see schedule timing, status, settings, and run history.
24
24
 
25
25
  ## Delete an agent
26
26
 
27
- Project managers can open **Agent actions** beside Run/Stop, choose **Delete agent**, and confirm. Deletion stops planned or running work and commits removal of the agent bundle from `main`. Recorded runs remain in history. Remove the bundle from a local checkout before deploying again, or that deployment recreates the agent.
27
+ Site managers can open **Agent actions** beside Run/Stop, choose **Delete agent**, and confirm. Deletion stops planned or running work and commits removal of the agent bundle from `main`. Recorded runs remain in history. Remove the bundle from a local checkout before deploying again, or that deployment recreates the agent.
28
28
 
29
29
  If a run cannot be stopped or `main` changes before deletion commits, the definition stays intact and the agent may remain paused. Reload and retry, or resume it if you want to keep it.
30
30
 
@@ -1,6 +1,18 @@
1
1
  ## Where to Find It
2
2
 
3
- On desktop, the AI chat opens docked on the left by default. You can make it floating or dock it on either side from the project menu's **Chat position** submenu (Floating / Left / Right). Toggle the chat open or closed by clicking the **chat (speech-bubble) icon** in the header, or press **Cmd+Shift+H** (Mac) / **Ctrl+Shift+H** (Windows/Linux).
3
+ Open the **Chats** tab in the site header. On a phone, the Chat tab at the bottom opens the chat list first; select a chat to open it.
4
+
5
+ ## Working in Several Chats
6
+
7
+ Chat has its own **Chats** tab in the site header; the tab shows how many chats have unread activity. A site can have several chats, shared by everyone on the site. The left list shows them most recently active first with a status (**Working** with a spinner while replying, **Done** once the reply finished) and their last words; a dot marks unread activity. Select **+** for a new chat (it joins the list when its first message is sent, and its name comes from that message; an empty chat offers starter requests), the search icon to find a chat, the filter icon to show only Working or Done chats, and the list settings for ordering and showing read, unread, or archived chats. The buttons above an open chat (or a right-click on a row) mark it unread, pin, archive, or mute it, for you only; the settings icon opens the chat's settings, which change its portrait (shape, eyes, mouth, color) and rename it for everyone, hold the same pin, mute and archive switches, and delete it, stopping a running reply first. Each chat has its own messages and context; when you refer to an earlier discussion, Chat searches the site's chats and answers with the messages it found. The open chat is in the page address (`/chats?chat=<id>`), so a link or reload opens the same chat.
8
+
9
+ ## Agents
10
+
11
+ An agent is a chat with a job: a name and a description that Fimo reads at the start of every reply in that chat. Agents are shared like any chat and are listed as soon as they are created, with an **Agent** tag after the name. The **+** above the chat list is a menu: **New chat** (blank), **New agent** (a name and a description, then the empty agent opens), and under **Agents** Fimo's default agents (**SEO**, **Site health**, **Writer**, **Translator**); a new site starts with all four listed, their routines off until someone turns them on, and on an older site selecting a default creates the site's chat for it the first time, the same chat every time after. In an agent, the description shows next to its name in the header, the empty state introduces the agent by name and job, and the message box reads **Message <name>**. The agent's settings page has a **Description** field, shared with everyone; empty means none. The filter icon's **Kind** option shows only chats or only agents; search finds an agent by its name.
12
+
13
+ ### Routines
14
+
15
+ A routine is saved instructions an agent runs in a thread of its own, by hand or on a schedule, so each run sees its earlier runs and the agent's chat never fills with its work. The agent's settings list its **Routines** as cards (name, cadence such as **Every Monday at 08:00** or **By hand**, next run, an **Active** switch) with a **New routine** button; the default agents come with theirs. A routine's page holds **Name**, **Instructions** (the task, run on every trigger), **Triggers** (**By hand** with **Run now**, which starts a run right away, or sends the routine a message as its next run; **Schedule**: none, every day, every week on a weekday, or every month on a day, at a time, in the timezone shown (a default agent's routines take the opener's browser timezone), at most every 15 minutes), the **Runs** list (newest first, two lines each: how it ended (**Quiet**, **Sent to agent**, **Asked for a decision**, or **Failed** and **Stopped** in red), when and what started it (**On schedule**, or **By hand** with the person's name or **agent** when their message started it), then the first sentence of what it told the agent; select one to open the routine's thread, read-only, at that run), the **Active** switch in the header (pauses the schedule only) and **Delete routine** (removes its thread too). Routines report to the agent, never to a person: a run that has something the agent should know writes it to the agent's chat as a message only the agent reads, and the agent takes a turn on it (reports waiting together are read in one turn); a run with nothing to say reports nothing. The agent decides what the team sees: nothing (the chat stays as it was, the row stays read), one short message (several reports folded into one), or a form when a person must decide, and the chat's row reads **Needs you** while that form is open. A person answers the form in the chat; the agent sends the decision to the routine with its `send_message` tool and the routine runs again with it. Only the agent answers a routine: its page has no answer box. Quiet runs leave no message: they fold into one line placed where the last run happened among the messages (**N runs since <date>**), counted from the last report the agent answered visibly, and the chat's row reads **Ran <date>** with that count while the newest thing in the chat is a run, the ordinary status and the last words when a message is newer, and **First check <day> <time>** or **No checks scheduled** before the first run. A routine whose runs keep failing or are refused for credits is reported to the agent once per streak, as a message from Fimo.
4
16
 
5
17
  ## Sending a Message
6
18
 
@@ -13,7 +25,7 @@ On desktop, the AI chat opens docked on the left by default. You can make it flo
13
25
 
14
26
  The AI can place choices, cards, tables, images, and contextual actions directly in its reply. Optional suggestions do not interrupt the conversation.
15
27
 
16
- When the AI needs an answer before it can continue, it pins a form directly above the message box and waits for your response. The form stays there while you scroll the conversation; the message that asked shows **Waiting for your answer...** in its place in the history. Select **Minimize** to fold the form to one line without losing your answers, then select that line to reopen it. **Submit** sends only the completed form and leaves anything typed in the message box unsent. Sending from the message box includes any selections already made in the form with your message; with no selections, it is an ordinary reply. A form with many steps scrolls inside its own area, and its **Next** / **Submit** buttons stay in view.
28
+ When the AI needs an answer before it can continue, it pins a form directly above the message box and waits for your response. While the question is the last message, the form stays there as you scroll the conversation; the message that asked shows **Waiting for your answer...** in its place in the history. If you send a message that does not answer it, the question moves back to its place in the history, folded to one line with an orange **?**. Select it to open it there and answer it at any time, with an optional note from **Add a note**; the answer is sent as a new message at the end of the chat. An answered question shows a gray check next to its title. Select **Minimize** to fold the form to one line without losing your answers, then select that line to reopen it. **Submit** sends only the completed form and leaves anything typed in the message box unsent. Sending from the message box includes any selections already made in the form with your message; with no selections, it is an ordinary reply and the question stays open. A form with many steps scrolls inside its own area, and its **Next** / **Submit** buttons stay in view.
17
29
 
18
30
  ## Attaching Context
19
31
 
@@ -37,13 +49,21 @@ To halt the AI mid-generation, use the **Stop button** in the input bar — whil
37
49
 
38
50
  ## Understanding Tool Badges
39
51
 
40
- While the AI works, you see small badges in the chat showing what it is doing. Each badge displays a tool name and its current status. Examples include reading files, writing code, searching your project, or generating images. These badges help you follow along without needing to understand the technical details.
52
+ While the AI works, you see small badges in the chat showing what it is doing. Each badge displays a tool name and its current status. Examples include reading files, writing code, searching your site, or generating images. These badges help you follow along without needing to understand the technical details.
53
+
54
+ ## Reviewing Proposals
55
+
56
+ Ask the AI to keep alternatives as named proposals. Open the Branch picker and choose one from **Proposals** to preview its work. Each proposal has its own changes. The picker follows visibility: internal work stays hidden even when saved, durable, or given more time. Extending retention does not show the work.
57
+
58
+ A review request saves the selected session's current work and makes that same session visible and durable. Follow its review card to the proposal, or its Preview and Changes links from chat, Slack, or an agent report. These links open the current Branch in Studio and require site access. A review request refers to saved work: if that work changes, request a new review before merging. Exploring or merging proposal B keeps A, C, and D available unless you ask to discard them. Merging does not publish the site.
59
+
60
+ Delete a proposal from the Branch picker when you no longer need it. Pull is unavailable for proposals; ask the AI to update the proposal instead. New Branch defaults to the proposal's upstream. Merge the proposal first if you want to create a Branch from its changes.
41
61
 
42
62
  ## Reviewing Changes That Could Not Merge
43
63
 
44
64
  Chat changes are prepared separately and then applied to the environment you are viewing. Most changes merge automatically.
45
65
 
46
- If the project changed in the same place while the AI was working, the response shows a **Review changes** card and an attention banner above the chat input. The banner remains visible when floating chat history is collapsed.
66
+ If the site changed in the same place while the AI was working, the response shows a **Review changes** card and an attention banner above the chat input.
47
67
 
48
68
  Choose **Auto fix** or keep chatting to let Fimo continue in the retained proposal, resolve the conflict, and retry the merge. Choose **Review manually** to inspect and resolve the proposal yourself. Discarding leaves the current environment unchanged and permanently removes the proposal.
49
69
 
@@ -0,0 +1,28 @@
1
+ # Analytics
2
+
3
+ Open **Analytics** in the site's workspace navigation. It may be inside
4
+ **More** at narrower desktop widths. This workspace reports the published site,
5
+ regardless of the editing branch currently selected.
6
+
7
+ Publishing alone does not confirm pageview tracking. Before publication, the
8
+ page offers setup guidance without an **Open site** link.
9
+
10
+ For a published site:
11
+
12
+ - **Waiting for the first pageview** means no pageviews are stored for it.
13
+ **Open site** lets the user visit the published address. **Set up tracking**
14
+ opens the installation guide. A visit must run a configured tracker to count.
15
+ - **Pageviews received** shows the last pageview timestamp across available
16
+ history. Changing the chart's date range or device filter does not reset it.
17
+ Earlier traffic proves tracking worked then, not that a later deployment
18
+ still sends events.
19
+ - **Tracking status unavailable** means the status could not be checked.
20
+ **Check again** retries it. Do not interpret this as an uninstalled tracker.
21
+ Charts that loaded successfully remain visible.
22
+
23
+ Studio checks every 15 seconds while waiting in a visible tab. The first
24
+ pageview refreshes the charts automatically. Processing may take longer than
25
+ one check. Do not diagnose a missing tracker from zero chart counts alone.
26
+
27
+ Users need analytics viewing permission. Date ranges and grouping apply to the
28
+ charts; available history depends on the organization's analytics access.
@@ -15,7 +15,17 @@ Look for the **coin icon with a number** near the chat send button. That number
15
15
  - Click it to open a detailed breakdown showing how many credits you have in each category.
16
16
  - When your balance is low, opening that breakdown shows an alert-triangle warning ("No credits left" or "_N_ credits left") at the bottom.
17
17
 
18
- From a linked project directory, `fimo credits` shows the same organization balance in the CLI. Its "Available now" total already includes the visible buckets.
18
+ From a linked site directory, `fimo credits` shows the same organization balance in the CLI. Its "Available now" total already includes the visible buckets.
19
+
20
+ ## Referral progress
21
+
22
+ Open **Earn free credits** from the site header (or the site menu on mobile), then use **Copy** inside the link field.
23
+
24
+ - **Signed up** counts people who registered through your link, including those who later published. Link visits do not count.
25
+ - **Published** counts people who published their first site, not the number of sites they publish.
26
+ - **AI credits earned** shows inviter rewards already credited to you. It excludes your own bonus for joining through someone else's link; a publication can appear before its reward is credited.
27
+
28
+ Each signup uses one of the five referral slots. Publishing unlocks the reward but does not reopen a slot. The dialog shows signups used and how many people have not published yet. **Terms and Conditions** opens the program terms; **Close** dismisses the dialog.
19
29
 
20
30
  ## Buying More Credits
21
31
 
@@ -29,7 +39,7 @@ Buying credits is available while a paid plan is effective, including after sche
29
39
 
30
40
  ## Refilling Credits Automatically
31
41
 
32
- Organization billing admins on a paid plan can configure auto-refill from **Settings > Billing**:
42
+ Organization billing admins on a paid plan can configure auto-refill from the organization's **Billing & usage** page:
33
43
 
34
44
  1. Choose the balance threshold that should trigger a refill.
35
45
  2. Choose the dollar amount to purchase when the balance crosses that threshold.
@@ -42,7 +52,7 @@ Turn auto-refill off from the same control. Leaving a paid plan locks automatic-
42
52
  You can upgrade from two places:
43
53
 
44
54
  - Click **Upgrade** in the credit dropdown.
45
- - Or go to your organization settings, then the **Billing** tab.
55
+ - Or open **Billing & usage** in your organization.
46
56
 
47
57
  From there:
48
58
 
@@ -13,7 +13,7 @@ Pages is still a pre-release Studio surface. It is visible in development and st
13
13
 
14
14
  ## Browsing Your Content
15
15
 
16
- 1. Click the **Content tab** (the database icon) in the top navigation bar.
16
+ 1. Open **Content** (the database icon).
17
17
  2. Choose **Pages**, **Collections**, or **Singles** in the left sidebar. **Forms** and **Labels & Text** follow them in the same list.
18
18
  3. Hover over or focus the info icon beside any item for a short explanation.
19
19
  4. Pages shows the site's route tree. Collections and Singles show cards for the schemas in that group.
@@ -55,7 +55,7 @@ When you open a Collection, the entry list provides several tools:
55
55
 
56
56
  ## Completing Missing Translations
57
57
 
58
- Localized Collections show only entries for the locale selected beside the Collection name. When that locale is missing translations that exist in the project's default locale:
58
+ Localized Collections show only entries for the locale selected beside the Collection name. When that locale is missing translations that exist in the site's default locale:
59
59
 
60
60
  1. Click the amber **N missing** warning beside the locale selector.
61
61
  2. Review the source and target languages in the popover.