fimo 2.8.0-staging.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.
- package/README.md +3 -3
- package/assets/agent-templates/_default/GOAL.md +2 -2
- package/assets/agent-templates/_default/capabilities.yaml +1 -0
- package/assets/agent-templates/broken-link-sweeper/capabilities.yaml +0 -1
- package/assets/agent-templates/content-translator/GOAL.md +1 -2
- package/assets/agent-templates/content-translator/capabilities.yaml +1 -2
- package/assets/agent-templates/post-deploy-check/capabilities.yaml +0 -1
- package/assets/agent-templates/seo-audit/capabilities.yaml +0 -1
- package/assets/skills/fimo/SKILL.md +11 -4
- package/assets/skills/fimo-cli/SKILL.md +16 -10
- package/assets/skills/fimo-cli/references/agents.md +35 -38
- package/assets/skills/fimo-cli/references/analytics.md +9 -1
- package/assets/skills/fimo-cli/references/branches.md +1 -1
- package/assets/skills/fimo-cli/references/credits.md +2 -2
- package/assets/skills/fimo-cli/references/deploy.md +1 -1
- package/assets/skills/fimo-cli/references/describe.md +2 -2
- package/assets/skills/fimo-cli/references/init.md +7 -7
- package/assets/skills/fimo-cli/references/integrations.md +2 -2
- package/assets/skills/fimo-cli/references/invite.md +1 -1
- package/assets/skills/fimo-cli/references/knowledge.md +48 -0
- package/assets/skills/fimo-cli/references/locales.md +1 -1
- package/assets/skills/fimo-cli/references/mcp.md +1 -1
- package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +1 -1
- package/assets/skills/fimo-cli/references/projects.md +3 -3
- package/assets/skills/fimo-cli/references/schedules.md +1 -1
- package/assets/skills/fimo-cli/references/support.md +1 -1
- package/assets/skills/fimo-cli/references/update.md +9 -0
- package/assets/skills/fimo-code/SKILL.md +11 -0
- package/assets/skills/fimo-code/references/analytics.md +70 -0
- package/assets/skills/fimo-code/references/design.md +6 -6
- package/assets/skills/fimo-code/references/frameworks/vite-react.md +1 -1
- package/assets/skills/fimo-migration/SKILL.md +7 -0
- package/assets/skills/fimo-studio/SKILL.md +55 -38
- package/assets/skills/fimo-studio/references/agents.md +8 -22
- package/assets/skills/fimo-studio/references/ai-chat.md +24 -4
- package/assets/skills/fimo-studio/references/analytics.md +28 -0
- package/assets/skills/fimo-studio/references/billing-and-credits.md +5 -5
- package/assets/skills/fimo-studio/references/cms.md +2 -2
- package/assets/skills/fimo-studio/references/command-palette.md +5 -6
- package/assets/skills/fimo-studio/references/connections.md +10 -11
- package/assets/skills/fimo-studio/references/custom-domains.md +3 -3
- package/assets/skills/fimo-studio/references/drawing-and-wireframing.md +2 -4
- package/assets/skills/fimo-studio/references/knowledge.md +9 -0
- package/assets/skills/fimo-studio/references/media-library.md +5 -2
- package/assets/skills/fimo-studio/references/preview-and-responsive.md +6 -12
- package/assets/skills/fimo-studio/references/project-creation.md +24 -8
- package/assets/skills/fimo-studio/references/publish-and-deploy.md +8 -8
- package/assets/skills/fimo-studio/references/schedules.md +6 -7
- package/assets/skills/fimo-studio/references/seo-settings.md +2 -2
- package/assets/skills/fimo-studio/references/sharing-and-collaboration.md +11 -13
- package/assets/skills/fimo-studio/references/version-history.md +4 -4
- package/assets/skills/fimo-studio/references/visual-editing.md +9 -7
- package/assets/skills/fimo-studio/references/webhooks.md +10 -11
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +108 -123
- package/dist/runtime/templates.d.ts +1 -2
- package/dist/runtime/templates.js +1 -3
- package/package.json +13 -13
- package/templates/astro/.fimo/config.json +0 -14
- package/templates/astro/AGENTS.md +1 -1
- package/templates/astro/package.json +4 -2
- package/templates/astro/src/layouts/Base.astro +2 -48
- package/templates/nextjs/package.json +7 -5
- package/templates/nextjs/src/app/layout.tsx +2 -0
- package/templates/react-router/package.json +5 -4
- package/templates/react-router/src/root.tsx +2 -0
- package/templates/sveltekit/package.json +4 -2
- package/templates/sveltekit/src/routes/+layout.svelte +2 -0
- package/templates/vite/package.json +7 -5
- package/templates/vite/src/LocaleLayout.tsx +2 -0
- package/assets/skills/fimo-cli/references/inbox.md +0 -86
- package/assets/skills/fimo-studio/references/code-editor.md +0 -65
- package/templates/astro/src/components/ProjectOverview.astro +0 -45
- package/templates/astro/src/pages/[locale]/projects/[slug].astro +0 -38
- package/templates/astro/src/pages/[locale]/projects/index.astro +0 -19
- package/templates/astro/src/pages/projects/[slug].astro +0 -31
- package/templates/astro/src/pages/projects/index.astro +0 -13
- package/templates/astro/src/schemas/Project.json +0 -9
- package/templates/astro/src/schemas/Project.ts +0 -29
- package/templates/astro/src/schemas/Project.types.ts +0 -70
- package/templates/astro/src/schemas/SiteSettings.json +0 -10
- package/templates/astro/src/schemas/SiteSettings.ts +0 -31
- package/templates/astro/src/schemas/SiteSettings.types.ts +0 -69
- package/templates/react-router/src/pages/Privacy.tsx +0 -79
- package/templates/react-router/src/pages/Terms.tsx +0 -48
- package/templates/react-router/src/pages/legal/LegalPage.tsx +0 -42
- package/templates/welcome/manifest.json +0 -655
- package/templates/welcome/media/analytics-overview.avif +0 -0
- package/templates/welcome/media/autonomous-loop.avif +0 -0
- package/templates/welcome/media/editable-preview.avif +0 -0
- package/templates/welcome/media/media-library.avif +0 -0
- package/templates/welcome/media/slack-teams.avif +0 -0
- package/templates/welcome/template/.fimo/agents/welcome-guide/GOAL.md +0 -12
- package/templates/welcome/template/.fimo/agents/welcome-guide/capabilities.yaml +0 -3
- package/templates/welcome/template/.fimo/agents/welcome-guide/config.yaml +0 -8
- package/templates/welcome/template/.fimo/config.json +0 -52
- package/templates/welcome/template/src/font.css +0 -60
- package/templates/welcome/template/src/pages/ArticleDetail.tsx +0 -104
- package/templates/welcome/template/src/pages/Index.tsx +0 -36
- package/templates/welcome/template/src/pages/SiteContent.tsx +0 -674
- package/templates/welcome/template/src/pages/fallback-content.ts +0 -152
- package/templates/welcome/template/src/routes.ts +0 -9
- package/templates/welcome/template/src/schemas/Article.json +0 -34
- package/templates/welcome/template/src/schemas/Article.ts +0 -54
- package/templates/welcome/template/src/schemas/Article.types.ts +0 -93
- package/templates/welcome/template/src/schemas/Author.json +0 -17
- package/templates/welcome/template/src/schemas/Author.ts +0 -51
- package/templates/welcome/template/src/schemas/Author.types.ts +0 -54
- package/templates/welcome/template/src/schemas/Category.json +0 -17
- package/templates/welcome/template/src/schemas/Category.ts +0 -51
- package/templates/welcome/template/src/schemas/Category.types.ts +0 -54
- package/templates/welcome/template/src/schemas/HomePage.json +0 -110
- package/templates/welcome/template/src/schemas/HomePage.ts +0 -22
- package/templates/welcome/template/src/schemas/HomePage.types.ts +0 -116
package/README.md
CHANGED
|
@@ -35,11 +35,11 @@ npx fimo@latest init my-site
|
|
|
35
35
|
cd my-site
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
Every command runs the same way: **`npx fimo@latest <command>`**. `fimo init` sets up the
|
|
38
|
+
Every command runs the same way: **`npx fimo@latest <command>`**. `fimo init` sets up the site, pushes the first commit, and wires it to your Fimo account. Open it in your coding agent and start building.
|
|
39
39
|
|
|
40
40
|
## AI coding tools
|
|
41
41
|
|
|
42
|
-
Fimo ships skills and rules for your AI coding tools (Claude Code, Cursor, Codex, Gemini, and more) so the agent knows how to work in a Fimo
|
|
42
|
+
Fimo ships skills and rules for your AI coding tools (Claude Code, Cursor, Codex, Gemini, and more) so the agent knows how to work in a Fimo site. `fimo init` installs them for you — add or refresh them any time (`--mode=copy` is required under npx):
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
45
|
npx fimo@latest skills install --mode=copy
|
|
@@ -47,7 +47,7 @@ npx fimo@latest skills install --mode=copy
|
|
|
47
47
|
|
|
48
48
|
## Local development
|
|
49
49
|
|
|
50
|
-
A Fimo
|
|
50
|
+
A Fimo site is a standard framework application. Run its normal package scripts:
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
53
|
npm install
|
|
@@ -16,6 +16,6 @@ Adapt these defaults to the risk and scope of this agent:
|
|
|
16
16
|
|
|
17
17
|
- Proceed without asking when the work is within scope and a safe, reversible choice exists.
|
|
18
18
|
- Ask when a missing human decision changes what the correct result should be.
|
|
19
|
-
-
|
|
20
|
-
-
|
|
19
|
+
- Keep work open and request review when a human decision or approval is needed.
|
|
20
|
+
- Merge completed, verified work within scope when runtime:auto_merge is granted; otherwise request human review.
|
|
21
21
|
- Discard when the run produced no useful changes or deliberately abandoned them.
|
|
@@ -16,8 +16,7 @@ JSON files or put translated values in source code.
|
|
|
16
16
|
For each entry:
|
|
17
17
|
|
|
18
18
|
1. Read the default-locale field via `cms:read`.
|
|
19
|
-
2. Translate to every missing locale
|
|
20
|
-
provider of choice).
|
|
19
|
+
2. Translate to every missing locale.
|
|
21
20
|
3. Write the translation back to the matching locale entry via `cms:write`.
|
|
22
21
|
4. For static UI labels, update values with the i18n/labels API rather
|
|
23
22
|
than editing files.
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fimo
|
|
3
3
|
description: >-
|
|
4
|
-
Working in or with a Fimo
|
|
4
|
+
Working in or with a Fimo site (a content + media + forms + analytics
|
|
5
5
|
platform for web applications). Load the current Fimo skills on demand through
|
|
6
6
|
the `fimo` CLI before doing Fimo work — writing schema-driven
|
|
7
|
-
code, running CLI/deploy workflows,
|
|
7
|
+
code, planning, recommendations, design, copy, running CLI/deploy workflows,
|
|
8
|
+
using the dashboard, or migrating a site.
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Fimo
|
|
@@ -27,10 +28,16 @@ Reference paths mentioned in streamed skill output, such as `references/media.md
|
|
|
27
28
|
not files in the project. Load them through the CLI, for example
|
|
28
29
|
`<fimo-cli> skills get fimo-cli --ref media`. Do not use a filesystem read tool for them.
|
|
29
30
|
|
|
31
|
+
Before reasoning about an existing site's goals, recommendations, design, copy, content, or code,
|
|
32
|
+
read its shared knowledge with `<fimo-cli> knowledge get --project <id> --json` (omit `--project` in a
|
|
33
|
+
linked checkout). Load the detailed rules with `<fimo-cli> skills get fimo-cli --ref knowledge`.
|
|
34
|
+
Refresh when switching sites or starting a new task. Empty knowledge does not block work; never
|
|
35
|
+
save inferred guidance automatically. Write only when explicitly asked and authorized.
|
|
36
|
+
|
|
30
37
|
Pick by task:
|
|
31
38
|
|
|
32
39
|
- Writing code — schemas/forms, generated clients, labels, framework adapters, rendering primitives → `fimo-code`
|
|
33
|
-
-
|
|
40
|
+
- Site creation, local setup, cloning, and CLI workflows — init, push, deploy, sync, labels, domains, analytics → `fimo-cli`
|
|
34
41
|
- Fimo agents — create, configure, validate, deploy, run, or inspect them → `fimo-cli` (`references/agents.md`)
|
|
35
42
|
- AI agent setup — connect Claude Code, Codex, Cursor, or another agent → `fimo-cli` (`references/agent-setup.md`)
|
|
36
43
|
- Remote MCP integrations — add, inspect, search, or run an MCP server → `fimo-cli` (`references/mcp.md`)
|
|
@@ -38,7 +45,7 @@ Pick by task:
|
|
|
38
45
|
- Migrating an existing site into Fimo → `fimo-migration`
|
|
39
46
|
|
|
40
47
|
For project setup, load `fimo-cli` first. Its `references/init.md` decision tree distinguishes a new or empty
|
|
41
|
-
project, an existing Fimo
|
|
48
|
+
project, an existing Fimo site, and an external migration; load `fimo-migration` for the last path.
|
|
42
49
|
|
|
43
50
|
If a confirmed Fimo platform failure or missing capability materially blocks the task, finish or safely preserve the main work first, then use the built-in `supportReport` tool. Load the `fimo-cli` support instructions for the reporting criteria.
|
|
44
51
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fimo-cli
|
|
3
3
|
description: >-
|
|
4
|
-
Use the `fimo` CLI to create or operate a Fimo
|
|
4
|
+
Use the `fimo` CLI to create or operate a Fimo site: content, forms,
|
|
5
5
|
media, labels/locales, deploys, Branches, Environments, domains, analytics,
|
|
6
6
|
integrations, Fimo agents, collaboration, accounts, and credits. Also use
|
|
7
7
|
for AI agent or MCP setup and confirmed Fimo platform blockers.
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Fimo CLI
|
|
11
11
|
|
|
12
|
-
The `fimo` CLI is the workflow surface for Fimo. Fimo connects content, media, forms, analytics, editing, and hosting to web applications. The CLI handles
|
|
12
|
+
The `fimo` CLI is the workflow surface for Fimo. Fimo connects content, media, forms, analytics, editing, and hosting to web applications. The CLI handles site creation, content / forms / media / labels / locale workflows, deploys, collaboration, account management, Fimo agents, AI credit inspection, and AI agent setup.
|
|
13
13
|
|
|
14
14
|
This skill describes **what the CLI does and the workflows it drives**. For the package surface used IN code (component props, generated hooks, JSON shapes, code-side rules), load the `fimo-code` skill on demand with `fimo skills get fimo-code`, using the invocation prefix below.
|
|
15
15
|
|
|
@@ -17,6 +17,13 @@ Use `fimo <command> --help` for full flag details on any command.
|
|
|
17
17
|
|
|
18
18
|
> Verify a destination with `fimo webhooks test <id> --wait` and inspect its delivery history before depending on it in production.
|
|
19
19
|
|
|
20
|
+
## Shared site knowledge
|
|
21
|
+
|
|
22
|
+
Before site planning, recommendations, design, copy, content, or code work, read the site's
|
|
23
|
+
knowledge: `fimo knowledge get --project <id> --json` (omit `--project` in a linked checkout).
|
|
24
|
+
Use the selected CLI invocation. Load `fimo skills get fimo-cli --ref knowledge` for refresh,
|
|
25
|
+
empty-state, and explicit-write rules. This prerequisite also applies when entering this skill directly.
|
|
26
|
+
|
|
20
27
|
## Running the CLI
|
|
21
28
|
|
|
22
29
|
Use **`npx fimo@latest`** by default. If the initiating prompt supplies another Fimo CLI selector, such as `npx fimo@staging` or `npx fimo@0.14.0`, preserve that selector for every Fimo command in the same flow. Do **not** install `fimo` globally.
|
|
@@ -40,11 +47,11 @@ Pretty output may hide URLs behind clickable labels. Agents should use `--json`
|
|
|
40
47
|
|
|
41
48
|
## Critical: `.fimo/project.json` is the project link
|
|
42
49
|
|
|
43
|
-
A Fimo
|
|
50
|
+
A Fimo site is identified by `.fimo/project.json`, written by `fimo init`. This file connects the local directory to the remote Fimo site. **Never edit it manually.** Most CLI commands find it by walking up from the cwd.
|
|
44
51
|
|
|
45
52
|
## Critical: commands target the Branch matching the current git branch
|
|
46
53
|
|
|
47
|
-
A project can have multiple **Branches** — each is a git branch _plus_ its own DB, sandbox, preview, and assets.
|
|
54
|
+
A project can have multiple **Branches** — each is a git branch _plus_ its own DB, sandbox, preview, and assets. Site-scoped commands (`deploy`, `status`, `entries`, `diff`, …) operate on the Branch matching the **current git branch**, and print a one-line banner saying which one. Analytics reads are the exception: they default to canonical `prod`, independent of the checkout; see `references/analytics.md`. Annotation writes keep the current or explicit Branch. New sites start on `main`. Override for a single command with the canonical `--branch <name>` flag; the removed `--env <name>` spelling is rejected. Never edit the link file to switch. The full git-shaped workflow (`branch` / `checkout` / `switch` / `pull` / `diff` / `merge` / `status` / `publish`) lives in `references/branches.md`.
|
|
48
55
|
|
|
49
56
|
## Quick Start
|
|
50
57
|
|
|
@@ -64,7 +71,7 @@ fimo deploy # ON-DEMAND: hosted project previ
|
|
|
64
71
|
fimo deploy --publish # ON-DEMAND: publish live (only when the developer says "ship it")
|
|
65
72
|
```
|
|
66
73
|
|
|
67
|
-
New
|
|
74
|
+
New sites use the Next.js App Router template by default. Fimo's canonical React Router template is selected explicitly with `--framework react-router`; use `--framework vite` for a React SPA.
|
|
68
75
|
|
|
69
76
|
The working loop is local: run the app with the project's package-manager `dev` script (`pnpm dev` / `npm run dev` / `yarn dev` / `bun dev` — match the lockfile), ask the developer what they want, edit, and iterate against the live localhost server. Outside the first-time onboarding rule below, `fimo deploy` is **not** a required final step — reach for it only when the developer wants a hosted project preview or to go live, and only on their signal (see `references/deploy.md`).
|
|
70
77
|
|
|
@@ -78,7 +85,7 @@ Keep `fimo validate --json` at the front of the project's `build` script, which
|
|
|
78
85
|
|
|
79
86
|
Load the matching reference when the user's request fires its trigger. Recipes that involve writing code also need the `fimo-code` skill's package references — they're called out where relevant.
|
|
80
87
|
|
|
81
|
-
- "Create a new Fimo
|
|
88
|
+
- "Create a new Fimo site / scaffold a site / start a new website / link an existing project locally" → `references/init.md`
|
|
82
89
|
- "Add a content type / blog / products / content schemas / CMS" → `references/content.md` (workflow) **+ run `fimo skills get fimo-code --ref content/schema` and load the detected framework reference**
|
|
83
90
|
- "Declare Pages routes / configure Pages sources or route params / control what Studio shows for a route" → `references/pages.md`
|
|
84
91
|
- "Add a contact / signup / feedback / newsletter form" → `references/forms.md` (workflow) **+ run `fimo skills get fimo-code --ref forms` for the JSON spec and generated client**
|
|
@@ -107,7 +114,6 @@ Load the matching reference when the user's request fires its trigger. Recipes t
|
|
|
107
114
|
- "Modify the URL of the website / change my project's address / connect a custom domain (e.g. blog.example.com) / rename the Fimo-provided `*.fimo.site` subdomain / buy a new domain through Fimo / set up a domain" → `references/domains.md`
|
|
108
115
|
- "Invite a collaborator / add Marc / share with client" → `references/invite.md`
|
|
109
116
|
- "Login / log out / who am I / switch organization" → `references/account.md` — note: switching **org** is `fimo orgs switch`; bare `fimo switch` changes the active **Fimo Branch** (see `references/branches.md`)
|
|
110
|
-
- "Check the Inbox / what are my agents waiting on / answer a blocked agent / an agent asked me a question / approve or deny what an agent asked for (`fimo inbox *`)" → `references/inbox.md`. Never answer on the person's behalf.
|
|
111
117
|
- "Create / scaffold / run / validate an agent / agent bundle / wire or enable its triggers / list agent templates / view agent runs, reports, or logs (`fimo agents *`)" → `references/agents.md`
|
|
112
118
|
- "Install Fimo for my agent / fimo skills install / set up Claude Code, Codex, or Cursor for Fimo" → `references/agent-setup.md`
|
|
113
119
|
- "Add, inspect, search, or run a remote MCP server / use `fimo mcp`" → `references/mcp.md`
|
|
@@ -123,7 +129,7 @@ Load the matching reference when the user's request fires its trigger. Recipes t
|
|
|
123
129
|
These fire at specific moments in the project lifecycle. **Surface them proactively** rather than waiting for the user to ask:
|
|
124
130
|
|
|
125
131
|
- **Right after `fimo init`** → `cd` into the new directory, read the project's `AGENTS.md` (or `CLAUDE.md` for Claude Code), run `fimo describe --json`, then load `fimo-code` and only the task/framework references it routes to. The rules file came into existence mid-session and may not be auto-loaded by the harness. See `references/init.md` § Load the project context.
|
|
126
|
-
- **When `fimo init` created or scaffolded a new
|
|
132
|
+
- **When `fimo init` created or scaffolded a new site (create-new path, including a Studio-supplied `--project-id`)** → after init and context loading succeed, run the single first-preview deploy and return the preview and dashboard links — see `references/init.md` § Create the first hosted preview. That deploy is also the sandbox warm-up; never run a separate warm-up deploy. Skip it only if the user explicitly said not to deploy. Linking a project with existing code and migrations keep their own approval rules.
|
|
127
133
|
- **Right after `fimo init`** → suggest `fimo rename "<Display Name>"` to set a human-readable name (the default post-init name is an auto-generated slug). Infer the name from what the user is building (e.g. "Acme Coffee" for a café, "Jane Doe Portfolio" for a personal site). See `references/init.md`.
|
|
128
134
|
- **Right after `fimo init`** → start the app locally with the project's package-manager `dev` script (`pnpm dev` / `npm run dev` / `yarn dev` / `bun dev`) in the background. This localhost server with live reload is your iteration loop — edit, show, repeat. No deploy is needed to see local changes. If the initiating request did not say what to build, ask the developer — after the first preview on the create-new path, never as a blocker before initializing.
|
|
129
135
|
- **When a user-visible unit of work looks done outside first-time onboarding** → **offer** to deploy (`fimo deploy` for a hosted project preview, `fimo deploy --publish` to go live) and run it only after the developer confirms — or immediately if they ask. Never deploy ordinary edits on your own. See `references/deploy.md`.
|
|
@@ -132,14 +138,14 @@ These fire at specific moments in the project lifecycle. **Surface them proactiv
|
|
|
132
138
|
- **You need the current preview URL but haven't changed code** (opening it, screenshotting it, handing it to another tool, the previous URL expired) → `fimo preview url`, never a no-op `fimo deploy`. See `references/preview.md`.
|
|
133
139
|
- **When the user wants to try something risky / explore a redesign without touching the live site** → suggest a feature Branch: `fimo checkout -b <name>` gives an isolated Branch + DB + preview. Deploy previews there, then `fimo merge` it back and `fimo publish`. See `references/branches.md`.
|
|
134
140
|
- **After completing or safely preserving the user's main work, when a confirmed Fimo platform failure still materially blocks the task after one safe recovery attempt, or a confirmed missing capability blocks completion or forces a fragile or heavily manual workaround** → use the built-in `supportReport` tool. Do not wait for the user to ask and do not stop after only describing the gap. See `references/support.md`.
|
|
135
|
-
- **When a project agent has stopped and is waiting on a person** →
|
|
141
|
+
- **When a project agent has stopped and is waiting on a person** → a project member answers its question in Studio, on the run's page; the question email links there. The CLI cannot answer it. Never answer on the person's behalf.
|
|
136
142
|
- **After the first successful `fimo deploy`** → suggest `fimo invite` if the project involves multiple people. Typical roles: `edit` for developers/content editors, `view` or `comment` for clients/stakeholders, `full` for project leads. See `references/invite.md`.
|
|
137
143
|
- **After the automatic first-preview deploy on the create-new path, before the project has been published** → if there is no custom domain and the free default `*.fimo.site` slug still looks generated or was never explicitly chosen, offer to find a cleaner free subdomain. It needs no DNS. Never claim one without explicit user confirmation: suggest candidates, let the user choose, then rename it. Choosing the slug does not publish the site; the URL starts resolving only after the first successful `fimo deploy --publish`. Skip this nudge if the user already chose the default slug, attached a custom domain, or declined. See `references/domains.md` § Offer a cleaner default URL before first publish.
|
|
138
144
|
- **When the user wants to modify the URL of their website** → walk through `references/domains.md`. The CLI surface covers renaming the Fimo-provided subdomain (`fimo domains rename-default`, free), attaching a domain they already own (`fimo domains add`, Premium), and buying a new domain through Fimo (`fimo domains buy`, Premium).
|
|
139
145
|
|
|
140
146
|
## Anti-Patterns
|
|
141
147
|
|
|
142
|
-
- **Editing `.fimo/project.json`** — read-only; it's the link between local and remote
|
|
148
|
+
- **Editing `.fimo/project.json`** — read-only; it's the link between local and remote site. Treat as a generated file.
|
|
143
149
|
- **Treating `fimo deploy` as the working loop or a required final step** — the loop is local (`pnpm dev` etc.). Deploy commits + pushes + round-trips the sandbox; it's for hosted previews / going live, on-demand. Iterate locally and deploy at logical breakpoints. See `references/deploy.md`.
|
|
144
150
|
- **Deploying without the developer asking or confirming** — new-project onboarding authorizes exactly one automatic first preview deploy (unless the user said not to deploy); every other deploy is offer-then-confirm. Don't auto-deploy after finishing an ordinary edit.
|
|
145
151
|
- **Running `fimo deploy` just to get the current preview URL** — that's a commit + push + sandbox sync when only destination resolution is needed. Use `fimo preview url` instead. See `references/preview.md`.
|
|
@@ -38,10 +38,10 @@ fimo agents secrets remove <name> <KEY> [-C <dir>]
|
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
- **`list-templates`** — list the bundled starter templates with the first line of each template's `GOAL.md` as a summary. Ships with the CLI binary; no API call. The five bundled templates are `_default`, `seo-audit`, `content-translator`, `broken-link-sweeper`, `post-deploy-check`.
|
|
41
|
-
- **`create <name>`** — scaffold `.fimo/agents/<name>/` from a template (default `_default`, a minimal valid bundle with a manual trigger). `--description <text>` writes a one-line tagline into the scaffolded `config.yaml` (surfaces in the dashboard's agents list). When run **without** `-C`, it requires the cwd to be inside a real Fimo
|
|
41
|
+
- **`create <name>`** — scaffold `.fimo/agents/<name>/` from a template (default `_default`, a minimal valid bundle with a manual trigger). `--description <text>` writes a one-line tagline into the scaffolded `config.yaml` (surfaces in the dashboard's agents list). When run **without** `-C`, it requires the cwd to be inside a real Fimo site (walks up for `.fimo/project.json` or legacy `.fimo.settings.json`) and errors out cleanly otherwise, so it never leaks an agent bundle into a stray cwd. If the template declares capabilities, an install-consent flow runs after the copy (`--quiet` skips it; critical caps still abort). Keep the scaffolded `runtime` block as is unless the author asks for a different credit limit; see the `runtime` reference below before adding any limit key.
|
|
42
42
|
- Every generated `config.yaml` includes `model: openai/gpt-5.6-luna`. Change that top-level value to another supported Fimo text model when needed; bundles without `model` keep the Luna fallback. Deploy after changing it because cloud runs use the deployed bundle.
|
|
43
43
|
- **`list`** — list the agents declared under `<project>/.fimo/agents/` (or legacy root `agents/`), with each one's trigger types and capability count. Local — the bundle list is the source of truth even if the project isn't linked yet.
|
|
44
|
-
- **`validate [name]`** — run the full validation pipeline: parse → capability vocabulary → composition (cycle / missing sub-agents / invalid grants) → semantic + Fimo
|
|
44
|
+
- **`validate [name]`** — run the full validation pipeline: parse → capability vocabulary → composition (cycle / missing sub-agents / invalid grants) → semantic + Fimo site config policy checks. Omit `name` to validate every bundle. `--json` emits a structured `ValidationReport` for CI; exit code is non-zero on any failure.
|
|
45
45
|
- **`secrets add/remove/list`** — edit or inspect the agent's requested secret names in `.fimo/agents/<name>/config.yaml` (or legacy root). These commands do not create, rotate, or reveal secret values. Store values with `fimo secrets add`; run `fimo agents validate` to check that required requested secrets exist in the project. See `references/project-vars-and-secrets.md`.
|
|
46
46
|
- **`integrations <name>`** — preview the agent's `integrations` allowlist from `.fimo/agents/<name>/config.yaml` (or legacy root) and, when linked, overlay project integration status. See `references/integrations.md`.
|
|
47
47
|
|
|
@@ -77,25 +77,20 @@ runtime:
|
|
|
77
77
|
All four keys are optional; an absent `runtime` block behaves as if every key were unset. There is no platform step cap
|
|
78
78
|
and no platform per-run cost ceiling — the only stops are these author-owned limits, the organization running out of
|
|
79
79
|
credits (`insufficient_credits`), and the agent-hours allowance. A limit that fires records a truthful terminal reason
|
|
80
|
-
(`max_steps`, `budget_exceeded`, `insufficient_credits
|
|
81
|
-
`finish_run`), readable via `fimo agents report` and the Studio run page.
|
|
80
|
+
(`max_steps`, `budget_exceeded`, or `insufficient_credits`), readable via `fimo agents report` and the Studio run page.
|
|
82
81
|
|
|
83
82
|
## How a cloud run ends
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
or
|
|
84
|
+
Runs perform compute; explicit work sessions hold project changes. Ordinary conversation and research need no session.
|
|
85
|
+
Project operations name their session. Save accumulated work before a risky operation or handoff. A confirmed save
|
|
86
|
+
commits and pushes without merging or publishing; Fimo also attempts a bounded save when compute ends.
|
|
88
87
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Fimo leaves the target unchanged, keeps the complete task Branch, and sends an Inbox notification asking a person to
|
|
93
|
-
review all of its changes. A later follow-up can continue from that retained work.
|
|
94
|
-
- **Discard** when none of the run's work should be applied, including when it made no useful changes or deliberately
|
|
95
|
-
abandoned an approach. This permanently deletes the task Branch and every change in it without review.
|
|
88
|
+
Merge ready work explicitly. Resolve clear conflicts through the existing merge tools; ask when the resolution requires
|
|
89
|
+
product intent. Request review with one sessionId; request_review saves current work itself and makes that same session visible and durable. Inspecting or leaving a session open creates no review.
|
|
90
|
+
Discard only unwanted work within the requested scope. Ending a run does none of these operations implicitly.
|
|
96
91
|
|
|
97
|
-
|
|
98
|
-
|
|
92
|
+
The autonomous `report` tool records a structured report without ending compute or deciding session fate. The model may
|
|
93
|
+
continue working after reporting. A normal model stop ends compute. Scheduled work has no implicit publication grant.
|
|
99
94
|
|
|
100
95
|
The run report is a concise outcome summary: what changed, what was verified, and what is still blocked. It is not a
|
|
101
96
|
chronological account, and it should not use decorative emoji.
|
|
@@ -106,18 +101,22 @@ When authoring or editing an agent, add a short **Decision policy** to its `GOAL
|
|
|
106
101
|
acting, asking, review, and merge; do not copy Fimo's tool protocol. Use this shape and replace the examples with rules
|
|
107
102
|
specific to the agent:
|
|
108
103
|
|
|
104
|
+
Infer the intended autonomy from the user's request when it is clear. Otherwise ask what the agent may apply itself,
|
|
105
|
+
what needs review, and whether it may publish. Record that policy in `GOAL.md`; do not impose review-first on every
|
|
106
|
+
agent or treat permission to merge as permission to publish. A routine fixer and a proposal writer need different policies.
|
|
107
|
+
|
|
109
108
|
```md
|
|
110
109
|
## Decision policy
|
|
111
110
|
|
|
112
111
|
- Proceed without asking when the work is within scope and a safe, reversible choice exists.
|
|
113
112
|
- Ask when a missing human decision changes what the correct result should be.
|
|
114
|
-
-
|
|
113
|
+
- Request review of the saved session when completed work needs a person's approval before merge.
|
|
115
114
|
- Request merge only when the result is complete, verified, and clearly safe for this agent's scope.
|
|
116
115
|
- Discard when the run produced no useful changes or deliberately abandoned them.
|
|
117
116
|
```
|
|
118
117
|
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
`ask_user` requests a blocking decision and ends the current invocation. `request_review` saves and captures one selected session for approval
|
|
119
|
+
without ending compute. Neither operation merges or discards sessions.
|
|
121
120
|
|
|
122
121
|
Make those rules concrete enough that the agent can decide without guessing. For example:
|
|
123
122
|
|
|
@@ -126,8 +125,7 @@ Make those rules concrete enough that the agent can decide without guessing. For
|
|
|
126
125
|
verification is blocked. Discard when the scan is clean or exploratory edits were reverted.
|
|
127
126
|
- **Launch-copy agent:** draft from an approved brief without asking about routine wording. Ask before choosing pricing,
|
|
128
127
|
product promises, brand direction, or deletions. Retain every completed draft for human review; never request merge.
|
|
129
|
-
- **Read-only auditor:** inspect and report autonomously. Ask only when the requested scope cannot be inferred.
|
|
130
|
-
the unchanged task environment after recording the report.
|
|
128
|
+
- **Read-only auditor:** inspect and report autonomously. Ask only when the requested scope cannot be inferred.
|
|
131
129
|
- **Missing capability:** ask once for the exact capability and explain which operation it unlocks. Do not retain partial
|
|
132
130
|
work as a substitute for the blocking permission decision.
|
|
133
131
|
|
|
@@ -143,10 +141,10 @@ A review-first content agent could use this complete policy:
|
|
|
143
141
|
- Discard only when no useful draft was produced or the attempted approach was fully abandoned.
|
|
144
142
|
```
|
|
145
143
|
|
|
146
|
-
When a run cannot continue correctly without a decision from a project member, it may call `ask_user` instead.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
process does not wait.
|
|
144
|
+
When a run cannot continue correctly without a decision from a project member, it may call `ask_user` instead. Fimo
|
|
145
|
+
emails project members a link to answer it in Studio, and the current invocation ends. It can reference zero or more
|
|
146
|
+
sessions. An authorized answer starts a continuation in the same thread; the referenced work stays open and the original
|
|
147
|
+
model process does not wait.
|
|
150
148
|
|
|
151
149
|
Use `ask_user` sparingly, especially from scheduled agents:
|
|
152
150
|
|
|
@@ -156,7 +154,7 @@ Use `ask_user` sparingly, especially from scheduled agents:
|
|
|
156
154
|
- Use choices for compact text options. Use cards only when an option benefits from an image or a richer title and
|
|
157
155
|
subtitle. Use assets when the image itself is the answer, and tables when options need the same structured comparison.
|
|
158
156
|
- Do not repeat a question or request already waiting in prior run history.
|
|
159
|
-
- Use `
|
|
157
|
+
- Use `request_review` with one sessionId when approval is needed. No pre-save or promotion is required; other sessions stay unchanged and work can continue.
|
|
160
158
|
|
|
161
159
|
An agent may include one multi-select `capabilities` step in that same form to request public Fimo capabilities it does
|
|
162
160
|
not currently hold. Group related tokens in one request. Selected tokens apply only to the continuation started by that
|
|
@@ -169,12 +167,12 @@ behavior. Keep it under 4 KB, record no secrets or run log, and prune stale entr
|
|
|
169
167
|
|
|
170
168
|
When three or more earlier runs still await a question answer, review, conflict resolution, or recovery, the agent
|
|
171
169
|
normally starts no new independent work. Unless the current trigger explicitly asks it to proceed anyway, it makes no
|
|
172
|
-
changes and
|
|
170
|
+
changes and records a brief report of what is waiting.
|
|
173
171
|
|
|
174
172
|
## Define reporting preferences when they matter
|
|
175
173
|
|
|
176
|
-
Fimo's default report needs no setup: a short, scannable brief appears in email
|
|
177
|
-
|
|
174
|
+
Fimo's default report needs no setup: a short, scannable brief appears in email, while the full report in Fimo carries
|
|
175
|
+
the organized evidence and depth. Do not add a reporting section merely to restate that default.
|
|
178
176
|
|
|
179
177
|
When the user names an audience, depth, recurring comparison, required section, or useful visual, preserve the request
|
|
180
178
|
in a short **Reporting** section of `GOAL.md`. Describe the communication outcome in ordinary language. Do not prescribe
|
|
@@ -208,11 +206,11 @@ audience or emphasis. Even then, the brief remains the external handoff and the
|
|
|
208
206
|
|
|
209
207
|
## Capabilities
|
|
210
208
|
|
|
211
|
-
Capabilities describe the opt-in Fimo
|
|
212
|
-
|
|
213
|
-
publication. If `capabilities.yaml` is absent or empty, the agent keeps baseline project reads such as agent run
|
|
214
|
-
but receives no CMS, asset, or other domain-operation scope
|
|
215
|
-
|
|
209
|
+
Capabilities describe the opt-in Fimo actions an agent may take. Managed agents always receive project filesystem
|
|
210
|
+
access, a shell, the ability to commit their task-environment changes, and web and data tools; Fimo owns branch creation
|
|
211
|
+
and publication. If `capabilities.yaml` is absent or empty, the agent keeps baseline project reads such as agent run
|
|
212
|
+
history, but receives no CMS, asset, or other domain-operation scope. Once you add a capabilities file, list every Fimo
|
|
213
|
+
permission the agent needs. `net:fetch` is no longer needed and is ignored.
|
|
216
214
|
Namespace selectors such as `cms:*`, `assets:*`, `i18n:*`, and `forms:*` grant every current and future declarable capability
|
|
217
215
|
in that namespace. Fimo expands selectors to concrete grants when a run starts. Use exact tokens for narrower agents.
|
|
218
216
|
The default template includes those four selectors plus read access to analytics, deployment logs, history, previews,
|
|
@@ -238,16 +236,15 @@ webhooks, and schedules; remove entries when an agent should have less access.
|
|
|
238
236
|
| `fimo:preview:read` | Read a current preview URL | Low |
|
|
239
237
|
| `fimo:history:read` | Read project restore points | Low |
|
|
240
238
|
| `fimo:deploy` | Trigger a production deploy | Critical |
|
|
241
|
-
| `net:fetch` | Make outbound HTTP requests | Medium |
|
|
242
239
|
| `agent:delegate` | Invoke declared sub-agents | Medium |
|
|
243
|
-
| `runtime:auto_merge` |
|
|
240
|
+
| `runtime:auto_merge` | Merge work sessions without per-change review | Critical |
|
|
244
241
|
|
|
245
242
|
If a public Fimo capability is missing and the work is genuinely blocked, the agent can request it through `ask_user`.
|
|
246
243
|
Fimo grants only the selected subset to the next invocation in that run thread. Unknown capabilities, internal runtime
|
|
247
244
|
abilities, and capabilities the run already holds are refused before the question is stored. For durable access on
|
|
248
245
|
ordinary future runs, add the capability to `capabilities.yaml`, validate, and deploy the bundle.
|
|
249
246
|
|
|
250
|
-
Managed agents can list project agents and read their run history through baseline
|
|
247
|
+
Managed agents can list project agents and read their run history through baseline site access. This does not
|
|
251
248
|
require `fimo:agents:run`; that capability is only required to dispatch another agent.
|
|
252
249
|
|
|
253
250
|
Studio chat and project-bound Slack turns receive `fimo:logs:read`. The default autonomous-agent template now declares
|
|
@@ -282,7 +279,7 @@ fimo agents report <name> [--session <id>] [--branch <branch>] [--project <id>]
|
|
|
282
279
|
A refusal that clears on its own (`agent-paused`, `run-in-progress`, `task-branch-budget`) exits **0** and prints `Dispatch was skipped: <reason>`. **Pre-flight drift check**: if `.fimo/agents/<name>/` (or the legacy root bundle) has uncommitted git changes, the command refuses — the server would dispatch the _deployed_ version, so deploy first. Pass `--skip-drift-check` to dispatch the deployed bundle anyway. Defaults `--branch` to `main`.
|
|
283
280
|
|
|
284
281
|
- **`runs <name>`** — list past run sessions for the agent in a compact table (id, started, duration, status, trigger, Branch, credits — settled credit consumption, `—` until a run settles). Default `--limit 20`; `--branch` filters to one Branch. The response uses the canonical `branch` field.
|
|
285
|
-
- **`report <name>`** — print a run's structured **report**: its durable outcome summary (for a read-only agent like `seo-audit` this _is_ the audit; for a write agent it's a "what I changed" summary). A run that returns plain text without calling `
|
|
282
|
+
- **`report <name>`** — print a run's structured **report**: its durable outcome summary (for a read-only agent like `seo-audit` this _is_ the audit; for a write agent it's a "what I changed" summary). A run that returns plain text without calling `report` receives a small structured fallback document. With no `--session`, the most recent run for `<name>` is used (combine with `--branch` to scope); `--session <id>` targets a specific run. Output is projected Markdown, so it stays readable in the terminal and pipes cleanly (e.g. `fimo agents report seo-audit | glow`). If the run hasn't finished, or produced no report, it says so (and shows the stop reason when there is one).
|
|
286
283
|
|
|
287
284
|
## How triggers get wired
|
|
288
285
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
# Analytics workflow
|
|
2
2
|
|
|
3
|
-
Pageview aggregates
|
|
3
|
+
Pageview aggregates are read for the selected branch. Reading analytics does not
|
|
4
|
+
install tracking. For installation or missing pageview requests, load
|
|
5
|
+
`fimo skills get fimo-code --ref analytics`. For zero counts, first check the
|
|
6
|
+
branch, date range and device filter using the guidance below. A successful HTTP
|
|
7
|
+
response alone does not establish that a row was stored.
|
|
4
8
|
|
|
5
9
|
Analytics has a **retained preview for every org** — free included. The free default is a 7-day retention window, so short ranges (`today`, `yesterday`, `this_week`, `last_week`, `last_7_days`) work for everyone. **Extended date ranges and longer retention are paid** — `last_30_days`, `last_90_days`, `this_month`, `last_month`, `last_quarter`, `last_year`, and `custom` require the `canUseExtendedDateRanges` privilege, which only paid orgs have. Asking for an extended range as a free user returns a 403 with an upgrade hint.
|
|
6
10
|
|
|
11
|
+
For Studio tracking verification, load `fimo-studio` and its analytics reference.
|
|
12
|
+
Its tracking status is independent of the chart range and device filter; a failed
|
|
13
|
+
status check is not evidence of missing tracking.
|
|
14
|
+
|
|
7
15
|
## Select published traffic
|
|
8
16
|
|
|
9
17
|
For traffic, growth, or site-performance questions, read **`prod`**, regardless of the current Git branch, `FIMO_ENV`, or the source branch published to Production. Analytics reads (`pageviews`, `top`, `annotations list`) default to this canonical published target. On older CLI versions, select it explicitly:
|
|
@@ -8,7 +8,7 @@ New standalone projects start with one Branch: `main`. Linking an unversioned fo
|
|
|
8
8
|
|
|
9
9
|
## The Branch model — how every command picks its target
|
|
10
10
|
|
|
11
|
-
**This is the single most important concept:
|
|
11
|
+
**This is the single most important concept: site-scoped commands target the Branch matching the _current git branch_.** When you're on git branch `feat/seo`, `fimo deploy`, `fimo status`, `fimo entries list`, etc. all operate on the `feat/seo` Branch's DB / sandbox / preview. The CLI prints a one-line stderr banner telling you which Branch it resolved.
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
fimo --branch <name> <command> # peek at another Branch for one command (does not switch)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Credits
|
|
2
2
|
|
|
3
|
-
`fimo credits` is a read-only command for checking the AI credit balance of the organization that owns a Fimo
|
|
3
|
+
`fimo credits` is a read-only command for checking the AI credit balance of the organization that owns a Fimo site. It resolves the project from `.fimo/project.json` unless `--project <project-id>` is provided.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
fimo credits
|
|
@@ -9,7 +9,7 @@ fimo credits --project <project-id>
|
|
|
9
9
|
fimo credits -C ./path/to/project
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
This command is **
|
|
12
|
+
This command is **site-scoped but not Branch-scoped**. It does not depend on the current git branch or `--branch`, because credits belong to the project's organization, not to a Branch.
|
|
13
13
|
|
|
14
14
|
## Pretty Output
|
|
15
15
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> **Local vs hosted.** The local dev server is localhost only. The Fimo **dashboard preview** and the authenticated **project-member preview URL** are served by the deployed sandbox — so if the developer wants to see the site in the dashboard or send another project member a link, that requires a `fimo deploy`.
|
|
6
6
|
|
|
7
|
-
`fimo deploy` uses the current Branch. New
|
|
7
|
+
`fimo deploy` uses the current Branch. New sites start on `main`; `release/*` is read-only, and `--publish` only runs from the project's configured Production source Branch. See `references/branches.md` for the multi-Branch workflow.
|
|
8
8
|
|
|
9
9
|
Before deploying, Fimo fast-forwards a clean checkout that is behind and stops on dirty-behind or diverged branches. This syncs the whole branch, including config commits from Studio or locale commands.
|
|
10
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Describe — read-only snapshot of the current project
|
|
2
2
|
|
|
3
|
-
`fimo describe` prints a structured snapshot of the Fimo
|
|
3
|
+
`fimo describe` prints a structured snapshot of the Fimo site in the current working directory: project name + config version, detected framework, fimo package version, package manager, route / schema / locale counts, and a file tree.
|
|
4
4
|
|
|
5
5
|
It is **read-only**. Never writes, never hits the network. Safe to run any time.
|
|
6
6
|
|
|
@@ -76,4 +76,4 @@ The scoped view still emits the project-level metadata header (name, framework,
|
|
|
76
76
|
|
|
77
77
|
- The JSON shape is stable; parse it rather than scraping the human output when you need a specific field.
|
|
78
78
|
- `framework` is normally auto-detected. If it is `null`, inspect the project before choosing framework-specific guidance.
|
|
79
|
-
- The command runs in any directory that contains `.fimo/project.json` or one of its ancestors. If you're not in a Fimo
|
|
79
|
+
- The command runs in any directory that contains `.fimo/project.json` or one of its ancestors. If you're not in a Fimo site, `describe` will run against whatever directory you point it at (it doesn't require Fimo credentials).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `fimo init`
|
|
2
2
|
|
|
3
|
-
One-stop project setup: sign in, create a new Fimo
|
|
3
|
+
One-stop project setup: sign in, create a new Fimo site (or link an existing one), install dependencies, and optionally set up Fimo skills for your AI tools.
|
|
4
4
|
|
|
5
5
|
## Command
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ fimo init [dir] [options]
|
|
|
11
11
|
`fimo init` runs the full onboarding in one shot:
|
|
12
12
|
|
|
13
13
|
1. **Signs in automatically** — if there's no session it opens the browser loopback login. In `--json` / non-TTY with no session it fails with `NOT_AUTHENTICATED` (run `fimo login` first).
|
|
14
|
-
2. **Resolves the project** — with `--project-id <id>` it sets up the named Fimo
|
|
14
|
+
2. **Resolves the project** — with `--project-id <id>` it sets up the named Fimo site: a project with no code yet is scaffolded as a fresh site, while an existing repository is cloned. Without it, `init` creates a NEW project. An interactive TTY shows a "Create new / Link existing" picker; non-interactive shells default to create-new. New sites use the Next.js App Router by default; `--framework react-router`, `--framework vite`, `--framework astro`, and `--framework sveltekit` select the other minimal framework-native shells.
|
|
15
15
|
3. **Installs dependencies** — prompts for the package manager, or honor `--package-manager <pm>` / `--no-install`.
|
|
16
16
|
4. **Optionally sets up Fimo skills** — confirm prompt, or `--skills` / `--no-skills`.
|
|
17
17
|
|
|
@@ -20,7 +20,7 @@ Generated pnpm projects pin `pnpm@10.26.0` and carry project-owned `pnpm-workspa
|
|
|
20
20
|
| Flag | Required | Purpose |
|
|
21
21
|
| ---------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
22
22
|
| `[dir]` positional | yes in non-TTY for create-new | Target directory (e.g. `my-site`) |
|
|
23
|
-
| `--project-id <id>` | no | Set up the named Fimo
|
|
23
|
+
| `--project-id <id>` | no | Set up the named Fimo site: scaffold and push a fresh site when it has no code yet, otherwise clone it. |
|
|
24
24
|
| `--org <id>` | no | Target organization **id** when creating (use the `ID` column from `fimo orgs list`, NOT the slug). Picker shown interactively if omitted and TTY. |
|
|
25
25
|
| `--branch <name>` | no | Branch to check out when linking an existing project (defaults to `main`). |
|
|
26
26
|
| `--env <name>` | no | Rejected as a Branch selector; use `--branch <name>`. |
|
|
@@ -95,7 +95,7 @@ For `--agents`, pass the AI tool you're running in: `--agents=claude-code` for C
|
|
|
95
95
|
|
|
96
96
|
## Setting up a project by ID
|
|
97
97
|
|
|
98
|
-
Pass `--project-id <id>` to set up a known Fimo
|
|
98
|
+
Pass `--project-id <id>` to set up a known Fimo site. If the project has no code yet — for example, one just created in Fimo Studio — `init` scaffolds a fresh site into it and pushes the initial commit: the same create-new path, linked to the existing ID. If the project already has code, `init` clones it into `[dir]`, like `fimo clone`. Use `--branch <name>` to check out a specific Branch (defaults to `main`). Without `--project-id`, `fimo init` creates a new site.
|
|
99
99
|
|
|
100
100
|
## Linking an existing local application
|
|
101
101
|
|
|
@@ -110,7 +110,7 @@ fimo link <projectId> --relink
|
|
|
110
110
|
`fimo init` (create-new path) scaffolds:
|
|
111
111
|
|
|
112
112
|
- The selected project shell: Next.js App Router by default, React Router with `--framework react-router`, a native React SPA with `--framework vite`, Astro with `--framework astro`, or SvelteKit with `--framework sveltekit`
|
|
113
|
-
- `.fimo/project.json` — links this directory to the remote
|
|
113
|
+
- `.fimo/project.json` — links this directory to the remote site (read-only after creation)
|
|
114
114
|
- `.fimo/config.json` — project, optional Studio Pages route metadata, locale, SEO, and agent policy
|
|
115
115
|
- `.fimo/agents/` — versioned agent bundles
|
|
116
116
|
- `AGENTS.md` + `CLAUDE.md` — project rules (from the template) read by AGENTS.md-compatible tools and Claude Code. Both point the agent at `fimo skills get` to load the real skills on demand.
|
|
@@ -149,7 +149,7 @@ After `fimo init` completes, the project root has `AGENTS.md` (universal) and `C
|
|
|
149
149
|
|
|
150
150
|
**These files came into existence mid-session, so they may not be auto-loaded by the harness.** Explicitly:
|
|
151
151
|
|
|
152
|
-
1. `cd <project-dir>` — switch into the new
|
|
152
|
+
1. `cd <project-dir>` — switch into the new site.
|
|
153
153
|
2. `Read` the project rules file: `AGENTS.md` (or `CLAUDE.md` if you're Claude Code).
|
|
154
154
|
3. Run `fimo describe --json` with the current invocation prefix and read the detected framework, schemas, locales, and tree.
|
|
155
155
|
4. Load the code skill on demand with the same prefix: `fimo skills get fimo-code`.
|
|
@@ -159,7 +159,7 @@ Do not batch-load every reference. Progressive disclosure keeps unrelated framew
|
|
|
159
159
|
|
|
160
160
|
### Create the first hosted preview (create-new path)
|
|
161
161
|
|
|
162
|
-
Whenever `fimo init` created or scaffolded a new
|
|
162
|
+
Whenever `fimo init` created or scaffolded a new site — including a Studio-supplied `--project-id`, since Studio creates the project before any code exists — finish onboarding with exactly one plain preview deploy after init and context loading succeed, unless the user explicitly said not to deploy:
|
|
163
163
|
|
|
164
164
|
```bash
|
|
165
165
|
fimo deploy -m "chore: first preview" --json
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Integrations
|
|
2
2
|
|
|
3
|
-
Use integrations to enable external services for a Fimo
|
|
3
|
+
Use integrations to enable external services for a Fimo site. Firecrawl and Fal are built into Fimo: Fimo owns the provider account and bills the project in Fimo credits, so they take no API key at all. Every other credential (MCP servers, OAuth workspaces) is stored encrypted by Fimo and never printed back to the CLI. Teammates and agents receive access to the integration, not the underlying token.
|
|
4
4
|
|
|
5
|
-
Start with `fimo integrations list` whenever the task could benefit from an external service. It is the
|
|
5
|
+
Start with `fimo integrations list` whenever the task could benefit from an external service. It is the site-scoped,
|
|
6
6
|
runtime-truthful inventory; use `info` only for the relevant integration instead of loading every provider's tools into
|
|
7
7
|
context.
|
|
8
8
|
|
|
@@ -93,4 +93,4 @@ fimo invite --email "dev@agency.com" --role full
|
|
|
93
93
|
- Invited users receive an email with a sign-up link if they don't have an account, or a sign-in link if they do.
|
|
94
94
|
- Organization invites can be resent with `--resend` if the user didn't receive the original.
|
|
95
95
|
- Project invites are scoped to a single project; organization invites grant access to all projects in that organization.
|
|
96
|
-
- If `--cwd` is set and the directory belongs to a linked Fimo
|
|
96
|
+
- If `--cwd` is set and the directory belongs to a linked Fimo site, that project is auto-selected.
|