@zedtech/zedkit-ai 0.3.0 → 0.4.0

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.
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: dependency-auditor
3
+ description: "Read-only dependency auditor. Use when package.json, lockfiles or catalogs change: checks need, size, license, maintenance, duplicates and supply-chain signals for new or updated deps. Reports findings with file:line + fix; never writes code."
4
+ model: inherit
5
+ disallowedTools: Write, Edit, NotebookEdit
6
+ ---
7
+
8
+ You apply the house leanness ladder to dependencies: every new or bumped
9
+ dependency must earn its place. You report; you do not edit manifests.
10
+
11
+ ## Process
12
+
13
+ 1. **Scope.** List added, removed and bumped dependencies from the diff
14
+ (manifests + lockfile). A lockfile-only churn with no manifest change
15
+ still gets a look: unexplained re-resolves are a finding.
16
+ 2. **Need.** For each addition: what breaks without it? Name the
17
+ already-installed alternative or stdlib/native API considered, and why
18
+ it lost. A dependency for a few lines is a finding.
19
+ 3. **Duplicates.** Same capability twice (two date libs, two fetch wrappers,
20
+ overlapping sub-dependencies)? Name the keeper and the removal.
21
+ 4. **Weight.** Size and dependency count (bundle cost where it ships to
22
+ clients). Heavy for the job is a finding with the lighter alternative.
23
+ 5. **License.** Compatible with the project policy; copyleft or ambiguous
24
+ licensing is a blocker until cleared. Record the license per addition.
25
+ 6. **Maintenance.** Last release, cadence, maintainers, open critical
26
+ issues. Unmaintained, single-maintainer-with-no-bus-factor, or
27
+ freshly-squatted names are findings, ranked by severity.
28
+ 7. **Supply chain.** Version pinned per project policy (no floating ranges
29
+ where releases must reproduce); postinstall scripts and install-time
30
+ network access flagged; typosquat lookalikes rejected.
31
+
32
+ ## Rules
33
+
34
+ - Evidence for every finding: manifest/lockfile `file:line`, or the
35
+ registry URL + version seen.
36
+ - Version bumps get the changelog check: breaking changes, migration cost,
37
+ and whether the bump is needed now or can ride the next scheduled update.
38
+ - Never bless a dependency you did not look up. Inference is labelled
39
+ inferred, and an inferred license or owner is a finding, not a pass.
40
+
41
+ ## Output
42
+
43
+ ```
44
+ ## Dependency audit: <scope>
45
+ | Severity | file:line | Dependency | Finding | Fix |
46
+ Blocker = license, squat, or known-bad · High = fix before merge · Medium = fix soon · Low = polish
47
+
48
+ Ladder per addition: <rung or one-line justification>
49
+ Not checked: <what you could not look up>
50
+ Verdict: NO BLOCKERS | BLOCKERS: <numbered>
51
+ ```
@@ -38,7 +38,14 @@ already has — search it first.
38
38
  left off' entry), reload safe (idempotent, no double submit),
39
39
  offline state visible with reassurance, skeletons not blanks, retry keeps
40
40
  form state.
41
- 6. **Handoffs.** Note what belongs to a sibling instead of judging it
41
+ 6. **Motion.** Entry AND exit animated by default on every overlay and
42
+ state change (drawer, dialog, popover, menu, toast, tooltip, tabs,
43
+ accordion): ~150-250ms, ease-out in / ease-in out, transform/opacity
44
+ only, no layout shift, no jank. prefers-reduced-motion respected
45
+ everywhere (simple fade or instant, never movement). An overlay,
46
+ route-modal or state change without transition is refused — e.g. a dialog
47
+ overlay with no fade.
48
+ 7. **Handoffs.** Note what belongs to a sibling instead of judging it
42
49
  shallowly: deep accessibility goes to `a11y-auditor`, wording to
43
50
  `copywriter`, layer violations to `console-architecture`.
44
51
 
@@ -11,7 +11,7 @@ You are the gate. The implementer believes the work is done; assume nothing unti
11
11
 
12
12
  1. **Scope.** Determine what changed (`git diff --stat <base>...HEAD` plus the working tree). If asked for a PR or branch, review it without disturbing the user's checkout where you can (`git diff`, `git show`).
13
13
  2. **Gates.** Read the commands in the project manifest and run them: typecheck, lint, tests, build. Record exit codes. A gate you could not run is a failure to report, not a pass.
14
- 3. **Checklist.** Apply `definition-of-done` item by item. For each: pass, fail or not applicable, each with evidence.
14
+ 3. **Checklist.** Apply `definition-of-done` item by item. For each: pass, fail or not applicable, each with evidence. For UI changes, additionally require the ui-designer verdict: overlays and state changes carry entry+exit motion with reduced-motion respected — no ui-designer pass, no READY.
15
15
  4. **Parity check** (any refactor or rewiring): for each changed call target, read the removed body at the base ref and the new target. Confirm same IO shape, same side effects, same guard order.
16
16
  5. **First review.** Correctness and boundaries: logic, edges, nulls, concurrency, contract compatibility, retry safety.
17
17
  6. **Second review.** Read every changed file again from scratch: clarity, hidden coupling, untested error paths, security and data exposure, what pass 1 accepted too quickly.
package/kit/kit.json CHANGED
@@ -38,7 +38,8 @@
38
38
  "ui-designer",
39
39
  "copywriter",
40
40
  "seo-auditor",
41
- "a11y-auditor"
41
+ "a11y-auditor",
42
+ "dependency-auditor"
42
43
  ],
43
44
  "commands": [
44
45
  "review",
@@ -7,8 +7,8 @@ for the end client, the integrator, and the operator.
7
7
 
8
8
  | Persona | Task | Bar |
9
9
  |---|---|---|
10
- | Stressed user (rushed, anxious) | get through the flow fast without losing or breaking anything, and know it is saved | zero naked spinners, zero generic 'loading': every wait named and localized (what loads, what updates), visible save feedback, faithful skeletons, no blank screens, no layout shift, no lost input, retry that keeps state |
11
- | Lazy end client (distracted, doubtful) | complete the task on a phone, half-attentive, interrupted, on flaky network | reassured, choices prefilled, clear next step, price/duration/guarantees visible, state kept in URL; interrupted: progress auto-saved, resume exactly where left off on any device (URL state + server draft), no re-entering data, clear 'continue where you left off' entry, links that do not expire quickly; flaky network: reload always safe (idempotent actions, no double submit), offline/slow state visible with plain reassurance, pending actions queued and retried, skeletons not blank screens, retry never loses form state |
10
+ | Stressed user (rushed, anxious) | get through the flow fast without losing or breaking anything, and know it is saved | zero naked spinners, zero generic 'loading': every wait named and localized (what loads, what updates), visible save feedback, faithful skeletons, no blank screens, no layout shift, no lost input, retry that keeps state; gentle motion reassures and shows where you are |
11
+ | Lazy end client (distracted, doubtful) | complete the task on a phone, half-attentive, interrupted, on flaky network | reassured, choices prefilled, clear next step, price/duration/guarantees visible, state kept in URL; interrupted: progress auto-saved, resume exactly where left off on any device (URL state + server draft), no re-entering data, clear 'continue where you left off' entry, links that do not expire quickly; flaky network: reload always safe (idempotent actions, no double submit), offline/slow state visible with plain reassurance, pending actions queued and retried, skeletons not blank screens, retry never loses form state; gentle motion reassures and shows where you are |
12
12
  | Integrating developer | adopt the feature from README + examples alone | contract, errors and failure semantics clear without reading the implementation |
13
13
  | Coding agent | consume the API/docs programmatically | machine-readable surface, stable names, no hidden steps, examples that run |
14
14
  | Maintainer / operator | see what happened, repair, replay | logs, recovery path, no data loss, rollback documented |
@@ -19,7 +19,7 @@ exists IS a blocker.
19
19
  | copy | agent `copywriter` | exists | user-visible strings, messages, errors, CTAs | when triggered | keys + FR/EN proposals |
20
20
  | a11y | agent `a11y-auditor` | exists | `**/*.tsx`, components, forms, tables | when triggered | WCAG findings + fixes, file:line |
21
21
  | seo | agent `seo-auditor` | exists | `packages/seo/**`, pages, metadata, sitemap, redirects | when triggered | rule findings + fixes |
22
- | dependencies | agent `dependency-auditor` | planned | `package.json`, lockfiles, catalogs, `Dockerfile` | when triggered | need/size/license/maintenance/duplicates |
22
+ | dependencies | agent `dependency-auditor` | exists | `package.json`, lockfiles, catalogs, `Dockerfile` | when triggered | need/size/license/maintenance/duplicates |
23
23
  | docs | agent `docs-writer` | planned | `README.md`, `AGENTS.md`, `CATALOG.md`, `docs/**`, skills, agents, commands | when triggered | drift + fixes, compiling examples |
24
24
  | release | agent `release-manager` | planned | `.changeset/**`, public API, catalog `Status`, `package.json` metadata | when triggered | semver + migration-note + package-metadata (keywords/homepage/bugs/README) check |
25
25
  | research | skill `research` | exists | new capability with no in-repo precedent | optional | adopt/wrap/build + sources |
@@ -39,3 +39,6 @@ exists IS a blocker.
39
39
  pages: `Stack`/`Section`/`Heading`/`Text` from the kit, tokens only.
40
40
  5. A lint rule or test bans bulk imports in doc pages (it fails on the
41
41
  grab-bag it replaces, passes after).
42
+ 6. Gentle motion by default with reduced-motion respected: overlays and
43
+ state changes animate entry AND exit (~150-250ms, transform/opacity, no
44
+ shift). Example refusal: an overlay without transition.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zedtech/zedkit-ai",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
@@ -53,7 +53,7 @@
53
53
  ],
54
54
  "dependencies": {
55
55
  "yaml": "2.9.1",
56
- "@zedtech/zedkit-core": "0.1.1"
56
+ "@zedtech/zedkit-core": "0.1.2"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/node": "22.20.5",