@floegence/floe-webapp-init 0.33.0 → 0.33.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/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import t from"node:fs";import a from"node:path";import{fileURLToPath as d}from"node:url";import y from"prompts";import{red as c,bold as g,cyan as f,green as x}from"kolorist";const h=[{name:"minimal",value:"minimal",description:"Basic setup with FloeApp"},{name:"full",value:"full",description:"Full setup with sample pages"}],v={"_package.json":"package.json",_gitignore:".gitignore","_env.example":".env.example",_claude:".claude"};async function S(){console.log(`
3
- ${g(f("Floe Webapp"))}
4
- `);const n=process.argv.slice(2);let o=n[0],l;(n.includes("--help")||n.includes("-h"))&&(console.log(`Usage: npx @floegence/floe-webapp-init [project-name] [options]
2
+ import n from"node:fs";import c from"node:path";import{fileURLToPath as d}from"node:url";import S from"prompts";import{red as a,bold as f,cyan as y,green as v}from"kolorist";const h=[{name:"minimal",value:"minimal",description:"Basic setup with FloeApp"},{name:"full",value:"full",description:"Full setup with sample pages"}],j={"_package.json":"package.json",_gitignore:".gitignore","_env.example":".env.example"};async function b(){console.log(`
3
+ ${f(y("Floe Webapp"))}
4
+ `);const l=process.argv.slice(2);let o=l[0],t;(l.includes("--help")||l.includes("-h"))&&(console.log(`Usage: npx @floegence/floe-webapp-init [project-name] [options]
5
5
 
6
6
  Options:
7
7
  --template <name> Use a specific template (minimal, full)
@@ -11,12 +11,14 @@ Examples:
11
11
  npx @floegence/floe-webapp-init
12
12
  npx @floegence/floe-webapp-init my-app
13
13
  npx @floegence/floe-webapp-init my-app --template full
14
- `),process.exit(0));const i=n.indexOf("--template");if(i!==-1&&n[i+1]){const e=n[i+1];e==="minimal"||e==="full"?l=e:(console.log(c(`Invalid template: ${e}`)),console.log("Available templates: minimal, full"),process.exit(1)),o==="--template"&&(o=n[i+2])}const p=await y([{type:o?null:"text",name:"projectName",message:"Project name:",initial:"floe-app",validate:e=>e?/^[a-z0-9-_]+$/i.test(e)?!0:"Project name can only contain letters, numbers, hyphens, and underscores":"Project name is required"},{type:l?null:"select",name:"template",message:"Select a template:",choices:h.map(e=>({title:e.name,value:e.value,description:e.description}))}],{onCancel:()=>{console.log(c(`
15
- Operation cancelled`)),process.exit(1)}});o=o||p.projectName,l=l||p.template,(!o||!l)&&(console.log(c("Missing required information")),process.exit(1));const s=a.resolve(o);t.existsSync(s)&&t.readdirSync(s).length>0&&(console.log(c(`
14
+ `),process.exit(0));const i=l.indexOf("--template");if(i!==-1&&l[i+1]){const e=l[i+1];e==="minimal"||e==="full"?t=e:(console.log(a(`Invalid template: ${e}`)),console.log("Available templates: minimal, full"),process.exit(1)),o==="--template"&&(o=l[i+2])}const p=await S([{type:o?null:"text",name:"projectName",message:"Project name:",initial:"floe-app",validate:e=>e?/^[a-z0-9-_]+$/i.test(e)?!0:"Project name can only contain letters, numbers, hyphens, and underscores":"Project name is required"},{type:t?null:"select",name:"template",message:"Select a template:",choices:h.map(e=>({title:e.name,value:e.value,description:e.description}))}],{onCancel:()=>{console.log(a(`
15
+ Operation cancelled`)),process.exit(1)}});o=o||p.projectName,t=t||p.template,(!o||!t)&&(console.log(a("Missing required information")),process.exit(1));const s=c.resolve(o);n.existsSync(s)&&n.readdirSync(s).length>0&&(console.log(a(`
16
16
  Directory ${o} is not empty.`)),process.exit(1)),console.log(`
17
- Scaffolding project in ${f(s)}...
18
- `);const r=a.resolve(d(import.meta.url),"../../templates",l);t.existsSync(r)||(console.log(c(`Template directory not found: ${r}`)),process.exit(1)),u(r,s);const m=a.join(s,"package.json");if(t.existsSync(m)){const e=JSON.parse(t.readFileSync(m,"utf-8"));e.name=a.basename(o),t.writeFileSync(m,JSON.stringify(e,null,2)+`
19
- `)}console.log(x(`Done!
17
+ Scaffolding project in ${y(s)}...
18
+ `);const r=c.resolve(d(import.meta.url),"../../templates",t),m=c.resolve(d(import.meta.url),"../../skills");n.existsSync(r)||(console.log(a(`Template directory not found: ${r}`)),process.exit(1)),u(r,s);const x=c.join(s,"skills");n.existsSync(m)?u(m,x):console.log(a(`Warning: skill directory not found: ${m}`));const g=c.join(s,"package.json");if(n.existsSync(g)){const e=JSON.parse(n.readFileSync(g,"utf-8"));e.name=c.basename(o),n.writeFileSync(g,JSON.stringify(e,null,2)+`
19
+ `)}console.log(v(`Done!
20
20
  `)),console.log(`Next steps:
21
- `),console.log(` cd ${g(o)}`),console.log(" pnpm install"),console.log(` pnpm dev
22
- `)}function u(n,o){t.mkdirSync(o,{recursive:!0});for(const l of t.readdirSync(n)){const i=a.join(n,l),p=v[l]||l,s=a.join(o,p);t.statSync(i).isDirectory()?u(i,s):t.copyFileSync(i,s)}}S().catch(n=>{console.error(c("Error:"),n),process.exit(1)});
21
+ `),console.log(` cd ${f(o)}`),console.log(" pnpm install"),console.log(` pnpm dev
22
+ `),console.log(`Skill package:
23
+ `),console.log(` ${f("skills/floe-webapp/SKILL.md")}
24
+ `)}function u(l,o){n.mkdirSync(o,{recursive:!0});for(const t of n.readdirSync(l)){const i=c.join(l,t),p=j[t]||t,s=c.join(o,p);n.statSync(i).isDirectory()?u(i,s):n.copyFileSync(i,s)}}b().catch(l=>{console.error(a("Error:"),l),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floegence/floe-webapp-init",
3
- "version": "0.33.0",
3
+ "version": "0.33.2",
4
4
  "type": "module",
5
5
  "description": "Scaffolding tool for Floe Webapp applications",
6
6
  "repository": {
@@ -14,7 +14,8 @@
14
14
  "main": "./dist/index.mjs",
15
15
  "files": [
16
16
  "dist",
17
- "templates"
17
+ "templates",
18
+ "skills"
18
19
  ],
19
20
  "scripts": {
20
21
  "build": "unbuild",
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: floe-webapp
3
+ description: Implement, refactor, and debug Floe-Webapp Solid.js applications with @floegence/floe-webapp-core public exports. Use for FloeApp shell wiring, FloeComponent sidebar or command registration, lifecycle hooks, design-token-first styling, and build or typecheck failures in Floe-Webapp projects.
4
+ ---
5
+
6
+ # Floe-Webapp Skill
7
+
8
+ ## Scope
9
+
10
+ - Implement or refactor pages/components in a Floe-Webapp app.
11
+ - Add or update `FloeComponent` registration (`sidebar`, `commands`, lifecycle hooks).
12
+ - Diagnose framework-usage issues and local build/lint/typecheck/test failures.
13
+
14
+ ## Required Inputs
15
+
16
+ - Read project-root `AGENTS.md` first when available.
17
+ - If `AGENTS.md` is absent, read `README.md` and `docs/getting-started.md`.
18
+ - Load [references/playbooks.md](references/playbooks.md) and pick the closest playbook for the task.
19
+
20
+ ## Execution Protocol
21
+
22
+ 1. Verify package versions in `package.json` and lockfile before using any API surface.
23
+ 2. Locate entry points and registration flow (`src/App.tsx`, component modules, command handlers).
24
+ 3. Implement using only public exports from `@floegence/floe-webapp-core` (`/app`, `/ui`, `/layout`, `/icons`, root).
25
+ 4. Align `FloeComponent.id`, sidebar items, and command navigation targets.
26
+ 5. Keep styling on design tokens (`text-foreground`, `bg-card`, `border-border`, etc.).
27
+ 6. Run deterministic checks before finishing:
28
+
29
+ ```bash
30
+ pnpm lint
31
+ pnpm typecheck
32
+ pnpm test -- --run
33
+ pnpm build
34
+ ```
35
+
36
+ ## Constraints
37
+
38
+ - Solid.js only: do not use React hooks/patterns.
39
+ - Use `class=` in JSX, not `className=`.
40
+ - Do not import `@floegence/floe-webapp-core/src/...` internal paths.
41
+ - Keep command navigation ids aligned with registered component ids.
42
+ - Prefer Solid control flow in JSX (`<For>`, `<Show>`, `<Switch>/<Match>`).
43
+ - If API behavior is unclear, inspect installed type declarations before guessing.
44
+
45
+ ## Failure Handling
46
+
47
+ - If checks fail, report the exact failing command and first actionable error.
48
+ - Fix root causes instead of adding compatibility shims for old code paths.
49
+ - If task requires risky incompatible behavior change, stop and ask for confirmation.
50
+
51
+ ## Output Format
52
+
53
+ 1. Brief summary of intent and implementation.
54
+ 2. Changed files with behavior impact.
55
+ 3. Verification result for each executed command.
@@ -0,0 +1,59 @@
1
+ # Floe-Webapp Skill Playbooks
2
+
3
+ Use this file after reading `../SKILL.md`.
4
+
5
+ ## Playbook A: Add Or Update A FloeComponent
6
+
7
+ 1. Find the registration list:
8
+
9
+ ```bash
10
+ rg "const components|FloeComponent\\[]" src --hidden
11
+ ```
12
+
13
+ 2. Keep every component entry aligned:
14
+ - Stable `id` string.
15
+ - `sidebar` metadata (`order`, `renderIn`, `fullScreen`, optional `badge`).
16
+ - `commands` targets using the same `id`.
17
+
18
+ 3. Validate shell wiring still renders through:
19
+ - `FloeApp`
20
+ - `ActivityAppsMain`
21
+
22
+ ## Playbook B: Add Command Navigation
23
+
24
+ 1. Search command contribution points:
25
+
26
+ ```bash
27
+ rg "commands|useCommand|command" src --hidden
28
+ ```
29
+
30
+ 2. Ensure each command action targets a registered component id.
31
+ 3. Keep labels, ids, and sidebar destination consistent.
32
+
33
+ ## Playbook C: Implement UI With Public Exports
34
+
35
+ Allowed imports:
36
+ - `@floegence/floe-webapp-core`
37
+ - `@floegence/floe-webapp-core/app`
38
+ - `@floegence/floe-webapp-core/ui`
39
+ - `@floegence/floe-webapp-core/layout`
40
+ - `@floegence/floe-webapp-core/icons`
41
+
42
+ Forbidden:
43
+ - `@floegence/floe-webapp-core/src/...`
44
+
45
+ ## Playbook D: Verify And Diagnose
46
+
47
+ Run:
48
+
49
+ ```bash
50
+ pnpm lint
51
+ pnpm typecheck
52
+ pnpm test -- --run
53
+ pnpm build
54
+ ```
55
+
56
+ If a command fails:
57
+ 1. Capture the first actionable error.
58
+ 2. Fix the nearest root cause.
59
+ 3. Re-run from the failed command onward.
@@ -1,10 +1,22 @@
1
1
  # Floe-Webapp AI Coding Skill
2
2
 
3
- > Tool-agnostic framework guidance for AI coding tools (Claude Code, Codex, Cursor, Copilot, etc.)
3
+ > Tool-agnostic framework guidance for AI coding tools
4
4
  > to generate maintainable floe-webapp applications.
5
5
 
6
6
  ---
7
7
 
8
+ ## 0. Open Agent Skill Package
9
+
10
+ This template includes a portable skill package at:
11
+
12
+ - `skills/floe-webapp/SKILL.md`
13
+ - `skills/floe-webapp/references/playbooks.md`
14
+
15
+ The `SKILL.md` format follows the open Agent Skills shape (frontmatter + structured sections).
16
+ Agent runtimes may use different discovery paths, but this project stores the skill in a neutral location for reuse.
17
+
18
+ ---
19
+
8
20
  ## 1. Identity & Stack
9
21
 
10
22
  **Floe-Webapp** is a VSCode-style web application framework built on **Solid.js**.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: floe-webapp
3
+ description: Implement, refactor, and debug Floe-Webapp Solid.js applications with @floegence/floe-webapp-core public exports. Use for FloeApp shell wiring, FloeComponent sidebar or command registration, lifecycle hooks, design-token-first styling, and build or typecheck failures in Floe-Webapp projects.
4
+ ---
5
+
6
+ # Floe-Webapp Skill
7
+
8
+ ## Scope
9
+
10
+ - Implement or refactor pages/components in a Floe-Webapp app.
11
+ - Add or update `FloeComponent` registration (`sidebar`, `commands`, lifecycle hooks).
12
+ - Diagnose framework-usage issues and local build/lint/typecheck/test failures.
13
+
14
+ ## Required Inputs
15
+
16
+ - Read project-root `AGENTS.md` first when available.
17
+ - If `AGENTS.md` is absent, read `README.md` and `docs/getting-started.md`.
18
+ - Load [references/playbooks.md](references/playbooks.md) and pick the closest playbook for the task.
19
+
20
+ ## Execution Protocol
21
+
22
+ 1. Verify package versions in `package.json` and lockfile before using any API surface.
23
+ 2. Locate entry points and registration flow (`src/App.tsx`, component modules, command handlers).
24
+ 3. Implement using only public exports from `@floegence/floe-webapp-core` (`/app`, `/ui`, `/layout`, `/icons`, root).
25
+ 4. Align `FloeComponent.id`, sidebar items, and command navigation targets.
26
+ 5. Keep styling on design tokens (`text-foreground`, `bg-card`, `border-border`, etc.).
27
+ 6. Run deterministic checks before finishing:
28
+
29
+ ```bash
30
+ pnpm lint
31
+ pnpm typecheck
32
+ pnpm test -- --run
33
+ pnpm build
34
+ ```
35
+
36
+ ## Constraints
37
+
38
+ - Solid.js only: do not use React hooks/patterns.
39
+ - Use `class=` in JSX, not `className=`.
40
+ - Do not import `@floegence/floe-webapp-core/src/...` internal paths.
41
+ - Keep command navigation ids aligned with registered component ids.
42
+ - Prefer Solid control flow in JSX (`<For>`, `<Show>`, `<Switch>/<Match>`).
43
+ - If API behavior is unclear, inspect installed type declarations before guessing.
44
+
45
+ ## Failure Handling
46
+
47
+ - If checks fail, report the exact failing command and first actionable error.
48
+ - Fix root causes instead of adding compatibility shims for old code paths.
49
+ - If task requires risky incompatible behavior change, stop and ask for confirmation.
50
+
51
+ ## Output Format
52
+
53
+ 1. Brief summary of intent and implementation.
54
+ 2. Changed files with behavior impact.
55
+ 3. Verification result for each executed command.
@@ -0,0 +1,59 @@
1
+ # Floe-Webapp Skill Playbooks
2
+
3
+ Use this file after reading `../SKILL.md`.
4
+
5
+ ## Playbook A: Add Or Update A FloeComponent
6
+
7
+ 1. Find the registration list:
8
+
9
+ ```bash
10
+ rg "const components|FloeComponent\\[]" src --hidden
11
+ ```
12
+
13
+ 2. Keep every component entry aligned:
14
+ - Stable `id` string.
15
+ - `sidebar` metadata (`order`, `renderIn`, `fullScreen`, optional `badge`).
16
+ - `commands` targets using the same `id`.
17
+
18
+ 3. Validate shell wiring still renders through:
19
+ - `FloeApp`
20
+ - `ActivityAppsMain`
21
+
22
+ ## Playbook B: Add Command Navigation
23
+
24
+ 1. Search command contribution points:
25
+
26
+ ```bash
27
+ rg "commands|useCommand|command" src --hidden
28
+ ```
29
+
30
+ 2. Ensure each command action targets a registered component id.
31
+ 3. Keep labels, ids, and sidebar destination consistent.
32
+
33
+ ## Playbook C: Implement UI With Public Exports
34
+
35
+ Allowed imports:
36
+ - `@floegence/floe-webapp-core`
37
+ - `@floegence/floe-webapp-core/app`
38
+ - `@floegence/floe-webapp-core/ui`
39
+ - `@floegence/floe-webapp-core/layout`
40
+ - `@floegence/floe-webapp-core/icons`
41
+
42
+ Forbidden:
43
+ - `@floegence/floe-webapp-core/src/...`
44
+
45
+ ## Playbook D: Verify And Diagnose
46
+
47
+ Run:
48
+
49
+ ```bash
50
+ pnpm lint
51
+ pnpm typecheck
52
+ pnpm test -- --run
53
+ pnpm build
54
+ ```
55
+
56
+ If a command fails:
57
+ 1. Capture the first actionable error.
58
+ 2. Fix the nearest root cause.
59
+ 3. Re-run from the failed command onward.
@@ -1,10 +1,22 @@
1
1
  # Floe-Webapp AI Coding Skill
2
2
 
3
- > Tool-agnostic framework guidance for AI coding tools (Claude Code, Codex, Cursor, Copilot, etc.)
3
+ > Tool-agnostic framework guidance for AI coding tools
4
4
  > to generate maintainable floe-webapp applications.
5
5
 
6
6
  ---
7
7
 
8
+ ## 0. Open Agent Skill Package
9
+
10
+ This template includes a portable skill package at:
11
+
12
+ - `skills/floe-webapp/SKILL.md`
13
+ - `skills/floe-webapp/references/playbooks.md`
14
+
15
+ The `SKILL.md` format follows the open Agent Skills shape (frontmatter + structured sections).
16
+ Agent runtimes may use different discovery paths, but this project stores the skill in a neutral location for reuse.
17
+
18
+ ---
19
+
8
20
  ## 1. Identity & Stack
9
21
 
10
22
  **Floe-Webapp** is a VSCode-style web application framework built on **Solid.js**.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: floe-webapp
3
+ description: Implement, refactor, and debug Floe-Webapp Solid.js applications with @floegence/floe-webapp-core public exports. Use for FloeApp shell wiring, FloeComponent sidebar or command registration, lifecycle hooks, design-token-first styling, and build or typecheck failures in Floe-Webapp projects.
4
+ ---
5
+
6
+ # Floe-Webapp Skill
7
+
8
+ ## Scope
9
+
10
+ - Implement or refactor pages/components in a Floe-Webapp app.
11
+ - Add or update `FloeComponent` registration (`sidebar`, `commands`, lifecycle hooks).
12
+ - Diagnose framework-usage issues and local build/lint/typecheck/test failures.
13
+
14
+ ## Required Inputs
15
+
16
+ - Read project-root `AGENTS.md` first when available.
17
+ - If `AGENTS.md` is absent, read `README.md` and `docs/getting-started.md`.
18
+ - Load [references/playbooks.md](references/playbooks.md) and pick the closest playbook for the task.
19
+
20
+ ## Execution Protocol
21
+
22
+ 1. Verify package versions in `package.json` and lockfile before using any API surface.
23
+ 2. Locate entry points and registration flow (`src/App.tsx`, component modules, command handlers).
24
+ 3. Implement using only public exports from `@floegence/floe-webapp-core` (`/app`, `/ui`, `/layout`, `/icons`, root).
25
+ 4. Align `FloeComponent.id`, sidebar items, and command navigation targets.
26
+ 5. Keep styling on design tokens (`text-foreground`, `bg-card`, `border-border`, etc.).
27
+ 6. Run deterministic checks before finishing:
28
+
29
+ ```bash
30
+ pnpm lint
31
+ pnpm typecheck
32
+ pnpm test -- --run
33
+ pnpm build
34
+ ```
35
+
36
+ ## Constraints
37
+
38
+ - Solid.js only: do not use React hooks/patterns.
39
+ - Use `class=` in JSX, not `className=`.
40
+ - Do not import `@floegence/floe-webapp-core/src/...` internal paths.
41
+ - Keep command navigation ids aligned with registered component ids.
42
+ - Prefer Solid control flow in JSX (`<For>`, `<Show>`, `<Switch>/<Match>`).
43
+ - If API behavior is unclear, inspect installed type declarations before guessing.
44
+
45
+ ## Failure Handling
46
+
47
+ - If checks fail, report the exact failing command and first actionable error.
48
+ - Fix root causes instead of adding compatibility shims for old code paths.
49
+ - If task requires risky incompatible behavior change, stop and ask for confirmation.
50
+
51
+ ## Output Format
52
+
53
+ 1. Brief summary of intent and implementation.
54
+ 2. Changed files with behavior impact.
55
+ 3. Verification result for each executed command.
@@ -0,0 +1,59 @@
1
+ # Floe-Webapp Skill Playbooks
2
+
3
+ Use this file after reading `../SKILL.md`.
4
+
5
+ ## Playbook A: Add Or Update A FloeComponent
6
+
7
+ 1. Find the registration list:
8
+
9
+ ```bash
10
+ rg "const components|FloeComponent\\[]" src --hidden
11
+ ```
12
+
13
+ 2. Keep every component entry aligned:
14
+ - Stable `id` string.
15
+ - `sidebar` metadata (`order`, `renderIn`, `fullScreen`, optional `badge`).
16
+ - `commands` targets using the same `id`.
17
+
18
+ 3. Validate shell wiring still renders through:
19
+ - `FloeApp`
20
+ - `ActivityAppsMain`
21
+
22
+ ## Playbook B: Add Command Navigation
23
+
24
+ 1. Search command contribution points:
25
+
26
+ ```bash
27
+ rg "commands|useCommand|command" src --hidden
28
+ ```
29
+
30
+ 2. Ensure each command action targets a registered component id.
31
+ 3. Keep labels, ids, and sidebar destination consistent.
32
+
33
+ ## Playbook C: Implement UI With Public Exports
34
+
35
+ Allowed imports:
36
+ - `@floegence/floe-webapp-core`
37
+ - `@floegence/floe-webapp-core/app`
38
+ - `@floegence/floe-webapp-core/ui`
39
+ - `@floegence/floe-webapp-core/layout`
40
+ - `@floegence/floe-webapp-core/icons`
41
+
42
+ Forbidden:
43
+ - `@floegence/floe-webapp-core/src/...`
44
+
45
+ ## Playbook D: Verify And Diagnose
46
+
47
+ Run:
48
+
49
+ ```bash
50
+ pnpm lint
51
+ pnpm typecheck
52
+ pnpm test -- --run
53
+ pnpm build
54
+ ```
55
+
56
+ If a command fails:
57
+ 1. Capture the first actionable error.
58
+ 2. Fix the nearest root cause.
59
+ 3. Re-run from the failed command onward.
@@ -1,24 +0,0 @@
1
- # Floe-Webapp Coding Skill
2
-
3
- Load the floe-webapp coding skill and apply it to implementation tasks.
4
-
5
- ## Instructions
6
-
7
- 1. Read `AGENTS.md` at the project root first.
8
- 2. Treat `AGENTS.md` as tool-agnostic framework guidance.
9
- 3. Use the current project's `package.json`/lockfile as the version source of truth.
10
- 4. Follow hard constraints first:
11
- - Solid.js patterns (not React)
12
- - public subpath imports only
13
- - design-token-first styling
14
- 5. Then apply the recommended coding priorities in `AGENTS.md`.
15
-
16
- ## Quick Start
17
-
18
- When implementing a floe-webapp feature:
19
-
20
- 1. Read `AGENTS.md`.
21
- 2. Build with `@floegence/floe-webapp-core` public exports (`/app`, `/ui`, `/layout`, `/icons`, root).
22
- 3. Register features as `FloeComponent` and align `sidebar` + `commands` behavior.
23
- 4. Keep styles token-based (`text-foreground`, `bg-card`, `border-border`, etc.).
24
- 5. Validate API usage against installed dependency versions.
@@ -1,24 +0,0 @@
1
- # Floe-Webapp Coding Skill
2
-
3
- Load the floe-webapp coding skill and apply it to implementation tasks.
4
-
5
- ## Instructions
6
-
7
- 1. Read `AGENTS.md` at the project root first.
8
- 2. Treat `AGENTS.md` as tool-agnostic framework guidance.
9
- 3. Use the current project's `package.json`/lockfile as the version source of truth.
10
- 4. Follow hard constraints first:
11
- - Solid.js patterns (not React)
12
- - public subpath imports only
13
- - design-token-first styling
14
- 5. Then apply the recommended coding priorities in `AGENTS.md`.
15
-
16
- ## Quick Start
17
-
18
- When implementing a floe-webapp feature:
19
-
20
- 1. Read `AGENTS.md`.
21
- 2. Build with `@floegence/floe-webapp-core` public exports (`/app`, `/ui`, `/layout`, `/icons`, root).
22
- 3. Register features as `FloeComponent` and align `sidebar` + `commands` behavior.
23
- 4. Keep styles token-based (`text-foreground`, `bg-card`, `border-border`, etc.).
24
- 5. Validate API usage against installed dependency versions.