no-fi-skill 0.3.0 → 0.3.1

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 CHANGED
@@ -39,7 +39,11 @@ The outer frame is double-lined, every box inside it is single-lined, and the pr
39
39
 
40
40
  ## Install
41
41
 
42
- Pick one. Each puts the `no-fi/` folder where your agent loads skills from.
42
+ Pick one. Each puts the `no-fi` skill folder where your agent loads skills from.
43
+
44
+ **With a prompt**
45
+
46
+ Copy the install prompt from [no-fi.dev](https://no-fi.dev/#get-started) and paste it into Claude Code or any agent. It runs the npx command below, or downloads the files one by one if it can't run npx.
43
47
 
44
48
  **With npx**
45
49
 
@@ -59,18 +63,18 @@ npx skills add p-a-u-l-i-e/no-fi --skill no-fi
59
63
 
60
64
  ```sh
61
65
  git clone https://github.com/p-a-u-l-i-e/no-fi.git
62
- cp -R no-fi/no-fi ~/.claude/skills/
66
+ cp -R no-fi/plugin/skills/no-fi ~/.claude/skills/
63
67
  ```
64
68
 
65
69
  **On claude.ai**
66
70
 
67
- Download the repository as a ZIP and upload it under Settings, Capabilities, Skills.
71
+ Download [no-fi.zip](https://no-fi.dev/no-fi.zip) and upload it under Settings, Capabilities, Skills. It holds only the skill folder. GitHub's Download ZIP holds the whole repository, which claude.ai won't take as a skill.
68
72
 
69
- The skill is plain text and a few small scripts, so you can read every file before you install it.
73
+ The skill is plain text plus one small checker script, in Node and Python, so you can read every file before you install it.
70
74
 
71
75
  ## Use it
72
76
 
73
- Ask for a screen the way you would ask a designer for a sketch:
77
+ Ask for a screen the way you would ask a designer for a sketch. Saying wireframe or sketch is enough to load the skill, or type `/no-fi` in Claude Code.
74
78
 
75
79
  > Wireframe a send-money form with three steps.
76
80
  >
@@ -82,7 +86,7 @@ Claude replies with a fenced code block, runs the checker on it, and adds a note
82
86
 
83
87
  ## The rules
84
88
 
85
- Seven rules keep every wireframe readable. The full text is in [`no-fi/SKILL.md`](no-fi/SKILL.md).
89
+ Seven rules keep every wireframe readable. The full text is in [`SKILL.md`](plugin/skills/no-fi/SKILL.md).
86
90
 
87
91
  1. **Plain characters, plus box-drawing.** Printable ASCII, box-drawing borders, and block characters for bars and charts. No emoji, no tabs.
88
92
  2. **Double outside, single inside.** The outermost container uses double lines. Every box inside it uses single lines.
@@ -102,42 +106,47 @@ Seven rules keep every wireframe readable. The full text is in [`no-fi/SKILL.md`
102
106
  - Open states are drawn open: a **select** with its menu below, an **accordion** with its content under it.
103
107
  - **Modals**, **toasts**, and **tooltips** are cards drawn inside the screen they sit on.
104
108
 
105
- The complete table, with a drawing and a note for each element, is in [`no-fi/SKILL.md`](no-fi/SKILL.md). The same data is in [`no-fi/vocabulary.json`](no-fi/vocabulary.json).
109
+ The complete table, with a drawing and a note for each element, is in [`SKILL.md`](plugin/skills/no-fi/SKILL.md). The same data is in [`vocabulary.json`](plugin/skills/no-fi/vocabulary.json).
106
110
 
107
111
  ## Examples
108
112
 
109
- Seven finished screens in [`no-fi/examples/`](no-fi/examples), built to use the whole vocabulary:
113
+ Seven finished screens in [`examples/`](plugin/skills/no-fi/examples), built to use the whole vocabulary:
110
114
 
111
115
  | Screen | File |
112
116
  | --- | --- |
113
- | Fintech dashboard | [`fintech-dashboard.txt`](no-fi/examples/fintech-dashboard.txt) |
114
- | Send money form | [`send-money-form.txt`](no-fi/examples/send-money-form.txt) |
115
- | Transactions table | [`transactions-table.txt`](no-fi/examples/transactions-table.txt) |
116
- | Spending report | [`spending-report.txt`](no-fi/examples/spending-report.txt) |
117
- | Card details | [`card-details.txt`](no-fi/examples/card-details.txt) |
118
- | Notification settings | [`settings-notifications.txt`](no-fi/examples/settings-notifications.txt) |
119
- | Activity patterns | [`activity-patterns.txt`](no-fi/examples/activity-patterns.txt) |
117
+ | Fintech dashboard | [`fintech-dashboard.txt`](plugin/skills/no-fi/examples/fintech-dashboard.txt) |
118
+ | Send money form | [`send-money-form.txt`](plugin/skills/no-fi/examples/send-money-form.txt) |
119
+ | Transactions table | [`transactions-table.txt`](plugin/skills/no-fi/examples/transactions-table.txt) |
120
+ | Spending report | [`spending-report.txt`](plugin/skills/no-fi/examples/spending-report.txt) |
121
+ | Card details | [`card-details.txt`](plugin/skills/no-fi/examples/card-details.txt) |
122
+ | Notification settings | [`settings-notifications.txt`](plugin/skills/no-fi/examples/settings-notifications.txt) |
123
+ | Activity patterns | [`activity-patterns.txt`](plugin/skills/no-fi/examples/activity-patterns.txt) |
120
124
 
121
125
  ## Check your work
122
126
 
123
- The checker ships with the skill, in Node and Python with the same output. `npx no-fi-skill check` runs it without installing anything.
127
+ Your agent checks every wireframe before it shows you one. To check one yourself, from anywhere:
124
128
 
125
129
  ```sh
126
- node no-fi/scripts/check_wireframe.mjs wireframe.txt
127
- python3 no-fi/scripts/check_wireframe.py wireframe.txt
128
130
  npx no-fi-skill check wireframe.txt
129
131
  ```
130
132
 
133
+ The checker also ships with the skill, in Node and Python with the same output. From an install, or from this repository:
134
+
135
+ ```sh
136
+ node ~/.claude/skills/no-fi/scripts/check_wireframe.mjs wireframe.txt
137
+ python3 plugin/skills/no-fi/scripts/check_wireframe.py wireframe.txt
138
+ ```
139
+
131
140
  It fails on unsupported characters, tabs, ASCII box borders, boxes that don't close or line up, mixed double and single lines in one box, a double-line box nested inside another box, table dividers that don't land in the same column, progress bars whose fill disagrees with their percentage, bar chart rows whose length disagrees with their value, heatmaps and stacked columns without a legend, and column charts that don't say what a row is worth.
132
141
 
133
142
  ## Maintaining the vocabulary
134
143
 
135
- `no-fi/vocabulary.json` is the source of truth. These scripts live in `scripts/`, outside the skill, so they don't ship to users. After editing the vocabulary, run:
144
+ `plugin/skills/no-fi/vocabulary.json` is the source of truth. These scripts live in `scripts/`, outside the skill, so they don't ship to users. After editing the vocabulary, run:
136
145
 
137
146
  ```sh
138
147
  python3 scripts/sync_vocabulary.py # rewrite the tables in SKILL.md
139
148
  node scripts/check_coverage.mjs # every element appears in an example
140
- node no-fi/scripts/check_wireframe.mjs no-fi/examples/*.txt
149
+ node plugin/skills/no-fi/scripts/check_wireframe.mjs plugin/skills/no-fi/examples/*.txt
141
150
  ```
142
151
 
143
152
  `python3 scripts/check_coverage.py` gives the same coverage output without Node.
@@ -145,15 +154,17 @@ node no-fi/scripts/check_wireframe.mjs no-fi/examples/*.txt
145
154
  ## Repository layout
146
155
 
147
156
  ```
148
- no-fi/ the skill
149
- SKILL.md rules and vocabulary tables
150
- vocabulary.json the element vocabulary as data
151
- examples/ finished example screens
152
- scripts/ the wireframe checker
153
- scripts/ maintainer scripts: vocabulary sync and coverage
154
- bin/no-fi-skill.mjs the npx no-fi-skill command
155
- assets/ README images
156
- site/ the no-fi.dev site
157
+ plugin/ the Claude plugin
158
+ .claude-plugin/ plugin.json
159
+ skills/no-fi/ the skill
160
+ SKILL.md rules and vocabulary tables
161
+ vocabulary.json the element vocabulary as data
162
+ examples/ finished example screens
163
+ scripts/ the wireframe checker
164
+ scripts/ maintainer scripts: vocabulary sync and coverage
165
+ bin/no-fi-skill.mjs the npx no-fi-skill command
166
+ assets/ README images
167
+ site/ the no-fi.dev site
157
168
  ```
158
169
 
159
170
  ## License
@@ -9,7 +9,7 @@ import path from "node:path";
9
9
  import { fileURLToPath } from "node:url";
10
10
 
11
11
  const root = path.join(path.dirname(fileURLToPath(import.meta.url)), "..");
12
- const skill = path.join(root, "no-fi");
12
+ const skill = path.join(root, "plugin", "skills", "no-fi");
13
13
  const { version } = JSON.parse(fs.readFileSync(path.join(root, "package.json"), "utf8"));
14
14
 
15
15
  const usage = `no-fi ${version}: wireframes without the distraction.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "no-fi-skill",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "An agent skill that draws UI wireframes and charts as plain text, so teams discuss layout and flow instead of color and type.",
5
5
  "keywords": [
6
6
  "wireframe",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "files": [
27
27
  "bin",
28
- "no-fi",
28
+ "plugin/skills/no-fi",
29
29
  "!**/__pycache__",
30
30
  "!**/.DS_Store"
31
31
  ],
@@ -18,10 +18,10 @@ Draw screens as monospaced text. The goal is to make the conversation about stru
18
18
  7. **Validate.** Run the checker before showing the result:
19
19
 
20
20
  ```sh
21
- node no-fi/scripts/check_wireframe.mjs path/to/wireframe.txt
21
+ node ${CLAUDE_SKILL_DIR}/scripts/check_wireframe.mjs path/to/wireframe.txt
22
22
  ```
23
23
 
24
- Without Node, `python3 no-fi/scripts/check_wireframe.py` gives the same output.
24
+ `${CLAUDE_SKILL_DIR}` is the folder this file is in. Without Node, `python3 ${CLAUDE_SKILL_DIR}/scripts/check_wireframe.py` gives the same output.
25
25
 
26
26
  It fails on unsupported characters, tabs, ASCII box borders, boxes that don't close or line up, mixed double and single lines in one box, a double-line box nested inside another box, table dividers that don't land in the same column top and bottom, progress bars whose fill disagrees with their percentage, bar chart rows whose length disagrees with their value and stated unit, heatmaps and stacked columns without a legend, and column charts that don't say what a row is worth. Fix every failure before presenting the wireframe.
27
27
 
File without changes