@montytools/cli 0.5.6 → 0.5.7
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/lib/styleLint.mjs +9 -3
- package/package.json +1 -1
- package/skills/monty-design/SKILL.md +2 -1
- package/template/AGENTS.md +7 -2
- package/template/package.json +1 -1
package/lib/styleLint.mjs
CHANGED
|
@@ -109,9 +109,15 @@ function* sourceFiles(dir, base = dir) {
|
|
|
109
109
|
const p = join(dir, entry.name);
|
|
110
110
|
const rel = relative(base, p);
|
|
111
111
|
if (entry.isDirectory()) {
|
|
112
|
-
//
|
|
113
|
-
// legitimately carry classes agents must not write
|
|
114
|
-
|
|
112
|
+
// Vendored zones are template/registry-owned — their internals may
|
|
113
|
+
// legitimately carry classes agents must not write: the shadcn kit
|
|
114
|
+
// (components/ui) and the blessed component registries.
|
|
115
|
+
if (
|
|
116
|
+
rel === join("components", "ui") ||
|
|
117
|
+
rel === join("components", "kibo-ui") ||
|
|
118
|
+
rel === join("components", "diceui") ||
|
|
119
|
+
entry.name === "node_modules"
|
|
120
|
+
) continue;
|
|
115
121
|
yield* sourceFiles(p, base);
|
|
116
122
|
} else if (/\.(?:tsx|jsx|ts)$/.test(entry.name)) {
|
|
117
123
|
if (SKIP_FILES.has(entry.name) || entry.name.endsWith(".gen.ts")) continue;
|
package/package.json
CHANGED
|
@@ -165,7 +165,8 @@ day-selector columns, status bars, top-deals table) and
|
|
|
165
165
|
and avatars is the one exception) — surfaces and controls are stock
|
|
166
166
|
components, sharp by policy.
|
|
167
167
|
2. No text class outside the six ladder styles; no arbitrary values
|
|
168
|
-
(`text-[…]`, `bg-[#…]`, `rounded-[…]`, `shadow-[…]`).
|
|
168
|
+
(`text-[…]`, `bg-[#…]`, `rounded-[…]`, `shadow-[…]`). `monty style`
|
|
169
|
+
verifies this — `monty save` refuses what it flags.
|
|
169
170
|
3. No rounded corners on any chart mark; every bar/column sits on an axis.
|
|
170
171
|
4. Dark: the page blends into the shell with no light seams.
|
|
171
172
|
5. Values in tabular figures; status as dot + muted text, never a pill.
|
package/template/AGENTS.md
CHANGED
|
@@ -52,7 +52,8 @@ logic.** Everything below is the complete contract.
|
|
|
52
52
|
for the next agent that fills them in (`description` on the field spec;
|
|
53
53
|
enum options say WHEN they apply, not what the word means).
|
|
54
54
|
5. **You are not done until the work is saved.** After every meaningful
|
|
55
|
-
change verified in dev, run `monty save "<what changed>"` — it
|
|
55
|
+
change verified in dev, run `monty save "<what changed>"` — it style-
|
|
56
|
+
lints (token vocabulary only — `monty style` checks on demand), builds,
|
|
56
57
|
typechecks, and pushes the working copy to the cloud copy, like
|
|
57
58
|
`git push main`. Unsaved work exists only on this machine.
|
|
58
59
|
|
|
@@ -214,7 +215,11 @@ Rules that matter:
|
|
|
214
215
|
for record-like tables (`<div className={SURFACE}><table>…`), identical to
|
|
215
216
|
the app's Configuration surfaces.
|
|
216
217
|
- **Extend records before rebuilding them.** For a custom page that is still
|
|
217
|
-
one table, use `RecordPage` from `@montytools/sdk/react`.
|
|
218
|
+
one table, use `RecordPage` from `@montytools/sdk/react`. To show ONE
|
|
219
|
+
record — from a board card, a report row, anywhere — use `RecordProfile`
|
|
220
|
+
(same module): every field plus one related tab per table that refs this
|
|
221
|
+
one, all derived from the schema with zero configuration. Never hand-build
|
|
222
|
+
a record dialog. Add behavior with
|
|
218
223
|
its typed `headerActions`, `rowActions`, `selectionActions`, and
|
|
219
224
|
`recordActions` callbacks. Use `RecordActionButton` and the lower-level
|
|
220
225
|
`RecordPage*`/`RecordTable*` components from `@montytools/sdk/ui` when you
|
package/template/package.json
CHANGED