fimo 1.0.1-staging.1 → 1.1.0-staging.2
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/assets/skills/fimo/SKILL.md +1 -1
- package/assets/skills/fimo-cli/SKILL.md +1 -0
- package/assets/skills/fimo-cli/references/update.md +65 -0
- package/assets/skills/fimo-code/references/frameworks/compatibility.md +16 -1
- package/assets/skills/fimo-code/references/frameworks/react-router.md +3 -2
- package/assets/skills/fimo-code/references/frameworks/vite-react.md +1 -1
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +42 -38
- package/dist/scripts/sync-schemas.js +17 -3
- package/package.json +7 -7
- package/templates/astro/package.json +2 -2
- package/templates/nextjs/package.json +3 -3
- package/templates/react-router/package.json +4 -4
- package/templates/sveltekit/package.json +2 -2
- package/templates/vite/package.json +4 -4
|
@@ -21,7 +21,7 @@ When you are about to do Fimo work:
|
|
|
21
21
|
1. List what's available: `<fimo-cli> skills list`
|
|
22
22
|
2. Load the relevant skill: `<fimo-cli> skills get <name>` (add `--ref <doc>` for a reference doc)
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Every loaded skill begins with the Fimo version that supplied it. An older version may be the project's intentional runtime, so do not upgrade it automatically. Upgrade only when the developer asks, using the selected CLI's `fimo update <exact-version>` command.
|
|
25
25
|
|
|
26
26
|
Reference paths mentioned in streamed skill output, such as `references/media.md`, are identifiers,
|
|
27
27
|
not files in the project. Load them through the CLI, for example
|
|
@@ -108,6 +108,7 @@ Load the matching reference when the user's request fires its trigger. Recipes t
|
|
|
108
108
|
- "Install Fimo for my agent / fimo skills install / set up Claude Code, Codex, or Cursor for Fimo" → `references/agent-setup.md`
|
|
109
109
|
- "Add, inspect, search, or run a remote MCP server / use `fimo mcp`" → `references/mcp.md`
|
|
110
110
|
- "Refresh / update installed Fimo skills / fimo skills sync / agent missing the latest Fimo conventions" → `references/agent-setup.md`
|
|
111
|
+
- "Update / upgrade the project's fimo packages / move to a new Fimo release / `fimo update`" → `references/update.md`. Never edit `fimo` or `fimo-*` versions directly in `package.json`; `fimo update` keeps package pins and codemods aligned.
|
|
111
112
|
- "Report a Fimo problem or blocking feature request / contact Fimo support / a Fimo API or command keeps failing / a documented argument is rejected / a supported operation needs an undocumented workaround / a Fimo API is abnormally slow / a confirmed missing capability blocks completion or forces a fragile or heavily manual workaround" → `references/support.md`
|
|
112
113
|
- "Regenerate rule files / I edited AGENTS.md / fimo rules sync" → `references/agent-setup.md`
|
|
113
114
|
- "Show analytics / visitor stats / traffic / pageviews / how is my site performing / top pages / where do visitors come from" → `references/analytics.md` (7-day preview free for all; longer ranges require paid)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Update the project's Fimo packages
|
|
2
|
+
|
|
3
|
+
**`fimo update <exact-version>` migrates the local checkout to one exact Fimo release.** It updates the developer's project — dependencies, safe codemods, install, validation — and nothing else. It never commits, deploys, publishes, or switches a development pin to npm.
|
|
4
|
+
|
|
5
|
+
> Run it only when the developer explicitly asks to upgrade. An older project runtime is normal; never "fix" a version on your own.
|
|
6
|
+
|
|
7
|
+
## Workflow: plan, apply, report
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx fimo@latest update 1.0.0 --dry-run --json # plan only — never writes
|
|
11
|
+
npx fimo@latest update 1.0.0 --apply --json # apply without prompting (agents / CI)
|
|
12
|
+
npx fimo@latest update 1.0.0 # interactive: shows the plan, asks, then applies
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- Without `--apply`, a non-interactive shell (including `--json`) emits the plan and writes nothing.
|
|
16
|
+
- The working tree must be clean so the update lands as its own reviewable change. Commit or stash first; `--allow-dirty` overrides.
|
|
17
|
+
- `--apply` repins `fimo` and its companion packages to the exact target, adds the framework's missing companions, rewrites retired `fimo/*` imports to their companion-package replacements, installs with the project's declared package manager, then runs `fimo validate`. `--no-install` / `--no-validate` opt out of the last two steps.
|
|
18
|
+
- After a successful apply, review the diff, run the project's dev or build script, and let the developer commit.
|
|
19
|
+
|
|
20
|
+
What it refuses to touch:
|
|
21
|
+
|
|
22
|
+
- `file:` and development-tarball pins select a development build on purpose; they are reported as blockers, never replaced.
|
|
23
|
+
- Ambiguous imports (template literals, `fimo/astro/config`) are reported as manual steps instead of guessed at.
|
|
24
|
+
|
|
25
|
+
## Reading the report
|
|
26
|
+
|
|
27
|
+
`--json` returns one envelope whose `data` is stable for agents:
|
|
28
|
+
|
|
29
|
+
| Field | Meaning |
|
|
30
|
+
| ------------------------------------------------------ | ----------------------------------------------------------------------------------- |
|
|
31
|
+
| `from` / `to` | Declared (and installed) fimo version → exact target |
|
|
32
|
+
| `framework` | Detected framework profile driving the package map |
|
|
33
|
+
| `mode` / `applied` | `plan`, `dry-run`, or `apply`; whether anything was written |
|
|
34
|
+
| `packages[]` | Per package: `update`, `add`, `unchanged`, or `blocked` with `from`/`to` and reason |
|
|
35
|
+
| `codemods[]` | Files scanned, per-file replacements, and manual follow-ups |
|
|
36
|
+
| `breakingChanges` / `improvements` / `recommendations` | The bundled migration notes for the target release |
|
|
37
|
+
| `manualSteps` / `blockers` | What you must do yourself / what stopped the apply |
|
|
38
|
+
| `install` / `validation` | `installed`/`passed`, `failed`, or `skipped` with the reason |
|
|
39
|
+
| `guidance.command` | The CLI command that loads the update guidance |
|
|
40
|
+
|
|
41
|
+
The breaking changes, improvements, and recommendations explain how to update
|
|
42
|
+
the application's code. They are not the CLI changelog. After `--apply` runs
|
|
43
|
+
the package changes and safe codemods, complete any reported manual steps and
|
|
44
|
+
run the application's build.
|
|
45
|
+
|
|
46
|
+
Error codes: `UPDATE_TARGET_INVALID`, `UPDATE_NO_FIMO_DEP`, `UPDATE_DIRTY_WORKTREE`, `UPDATE_BLOCKED`, `UPDATE_CANCELLED`.
|
|
47
|
+
|
|
48
|
+
## Per-framework package map
|
|
49
|
+
|
|
50
|
+
Every companion releases at the same version as `fimo`; keep them identical.
|
|
51
|
+
|
|
52
|
+
| Framework | Packages updated together |
|
|
53
|
+
| --------------- | ------------------------------------------------------ |
|
|
54
|
+
| React Router | `fimo`, `fimo-react`, `fimo-vite`, `fimo-react-router` |
|
|
55
|
+
| Vite + React | `fimo`, `fimo-react`, `fimo-vite`, `fimo-react-router` |
|
|
56
|
+
| Vite (no React) | `fimo`, `fimo-vite` |
|
|
57
|
+
| Next.js | `fimo`, `fimo-react`, `fimo-next` |
|
|
58
|
+
| Astro | `fimo`, `fimo-astro` |
|
|
59
|
+
| SvelteKit | `fimo`, `fimo-sveltekit` |
|
|
60
|
+
|
|
61
|
+
To read the update guidance, use the current CLI:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npx fimo@latest skills get fimo-cli --ref update
|
|
65
|
+
```
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
peer ranges and the executable acceptance fixtures define compatibility; the
|
|
5
5
|
profile does not promise support for every version of the framework.
|
|
6
6
|
|
|
7
|
-
| Profile | Application dependency specifier | Fimo surface
|
|
7
|
+
| Profile | Application dependency specifier | Fimo import surface |
|
|
8
8
|
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
9
9
|
| `nextjs` | Next 16 is the current acceptance baseline; Fimo's React peer is `^18.2.0 \|\| ^19.0.0` and Next imposes its own React range | `fimo-next`, `fimo-next/client` |
|
|
10
10
|
| `react-router` | React `^18.2.0 \|\| ^19.0.0`, React Router `^7.0.0 \|\| ^8.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo-react-router`, `fimo-react-router/routes`, `fimo-react-router/preset`, `fimo-react-router/vite`, `fimo-react` |
|
|
@@ -14,6 +14,21 @@ profile does not promise support for every version of the framework.
|
|
|
14
14
|
| `nuxtjs`, `remix`, `vue` | Hosting detection only; no Fimo content/runtime adapter yet | `fimo` hosting profile only |
|
|
15
15
|
| _(unset)_ | Anything else: a static generator, plain HTML, a custom build script. Declare `runtime.commands.build` and `runtime.outputDirectory` instead | Static output only; no adapter |
|
|
16
16
|
|
|
17
|
+
The import surface is not the install list. Installed packages, always at the
|
|
18
|
+
same version as `fimo`: React Router **and** Vite + React install `fimo`,
|
|
19
|
+
`fimo-react`, `fimo-vite`, and `fimo-react-router` (React projects import the
|
|
20
|
+
Vite plugin from `fimo-react-router/vite`, which builds on the installed
|
|
21
|
+
`fimo-vite`); non-React Vite installs `fimo` and `fimo-vite`; Next.js installs
|
|
22
|
+
`fimo`, `fimo-react`, and `fimo-next`; Astro installs `fimo` and `fimo-astro`;
|
|
23
|
+
SvelteKit installs `fimo` and `fimo-sveltekit`. Move a project to a new release
|
|
24
|
+
with `fimo update <exact-version>`, which keeps the whole set on one version.
|
|
25
|
+
|
|
26
|
+
React projects pinned before framework companions shipped keep their legacy
|
|
27
|
+
runtime imports. The current CLI generates content clients through `fimo/ui`
|
|
28
|
+
for those projects and does not require `fimo-react`. Run `fimo update
|
|
29
|
+
<exact-version>` only when the developer chooses to move the project to a split
|
|
30
|
+
runtime release.
|
|
31
|
+
|
|
17
32
|
`runtime.framework` must match a dependency in `package.json`; a profile the
|
|
18
33
|
code does not use fails the production build. Shape and rules: `hosting.md`
|
|
19
34
|
§ `runtime`.
|
|
@@ -9,11 +9,12 @@ its routes, rendering choices, providers, and SEO.
|
|
|
9
9
|
Install the peers the application uses:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
pnpm add fimo fimo-react fimo-react-router react react-dom react-router @tanstack/react-query
|
|
12
|
+
pnpm add fimo fimo-react fimo-vite fimo-react-router react react-dom react-router @tanstack/react-query
|
|
13
13
|
pnpm add -D @react-router/dev @react-router/node vite
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
`fimo-
|
|
16
|
+
Install `fimo-vite` even though application code imports the plugin from
|
|
17
|
+
`fimo-react-router/vite`. The router entrypoint builds on the Vite runtime.
|
|
17
18
|
|
|
18
19
|
Keep the project's React Router Vite plugin explicit:
|
|
19
20
|
|
|
@@ -5,7 +5,7 @@ Use this reference for a Vite + React SPA without React Router framework mode. P
|
|
|
5
5
|
## Install and build
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
pnpm add fimo fimo-react fimo-react-router react react-dom react-router @tanstack/react-query
|
|
8
|
+
pnpm add fimo fimo-react fimo-vite fimo-react-router react react-dom react-router @tanstack/react-query
|
|
9
9
|
pnpm add -D vite @vitejs/plugin-react
|
|
10
10
|
```
|
|
11
11
|
|