@zedtech/zedkit-ai 0.1.0 → 0.3.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.
package/README.md CHANGED
@@ -1,34 +1,26 @@
1
1
  # @zedtech/zedkit-ai
2
2
 
3
- An agent-agnostic AI setup for a code repo: an `AGENTS.md` template, skills,
3
+ [![npm version](https://img.shields.io/npm/v/@zedtech/zedkit-ai.svg)](https://www.npmjs.com/package/@zedtech/zedkit-ai)
4
+ [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/zedtech-fr/zedkit/blob/main/LICENSE)
5
+
6
+ Give every coding agent the same setup: an `AGENTS.md` template, skills,
4
7
  subagents, and a small installer and validator. Works with Claude Code,
5
8
  Cursor, Codex, Muse and any tool that reads `AGENTS.md` or Agent Skills.
6
9
  Original work by the same author, plus vendored MIT skills (see
7
10
  [kit/THIRD_PARTY_NOTICES.md](kit/THIRD_PARTY_NOTICES.md)).
8
11
 
9
- ## Use it
10
-
11
- Not published to npm yet. From a zedkit checkout, pack the tarballs;
12
- then in your own repo, install and run with `npx`:
12
+ ## Install
13
13
 
14
14
  ```sh
15
- for p in ai core; do (cd packages/$p && pnpm pack --pack-destination /tmp/zedkit-pack); done
16
- npm install --no-save /tmp/zedkit-pack/*.tgz # in your own repo
17
- npx zedkit-ai init . # copy the core kit into this repo
18
- # then ask your agent: "run the setup-ai skill"
19
- npx zedkit-ai validate # check skills and subagents
15
+ pnpm add -D @zedtech/zedkit-ai
20
16
  ```
21
17
 
22
- With pnpm instead of npm, pin the unpacked core tarball first (pnpm
23
- resolves each tarball's dependencies independently — this goes away once
24
- the packages publish):
18
+ ## Usage
25
19
 
26
20
  ```sh
27
- mkdir -p /tmp/zedkit-core && tar -xzf /tmp/zedkit-pack/zedkit-core-*.tgz -C /tmp/zedkit-core
28
- # package.json: { "pnpm": { "overrides": { "@zedtech/zedkit-core": "file:/tmp/zedkit-core/package" } } }
29
- pnpm add /tmp/zedkit-pack/zedtech-zedkit-ai-0.1.0.tgz
30
- ./node_modules/.bin/zedkit-ai init . --provider cursor
31
- ./node_modules/.bin/zedkit-ai validate # must print: ok
21
+ npx zedkit-ai init . --provider cursor # copy the core kit into this repo
22
+ # then ask your agent: "run the setup-ai skill"
23
+ npx zedkit-ai validate # must print: ok
32
24
  ```
33
25
 
34
26
  `init` installs generic instructions. The `setup-ai` skill makes them specific:
@@ -58,6 +50,13 @@ rule in `.cursor/rules/` is already always on (`alwaysApply: true`), instead
58
50
  of adding a second one. Run `zedkit-ai list` to see presets, subagents and
59
51
  commands.
60
52
 
53
+ ## When to use
54
+
55
+ Reach for this package when a repo is read by coding agents (or several
56
+ different ones) and you want one verified, provider-agnostic setup
57
+ instead of per-tool folklore. If you only need runtime helpers, install
58
+ the other kit packages instead.
59
+
61
60
  ## Providers
62
61
 
63
62
  One shared source (`.agents/`), then a thin layer per provider:
@@ -90,10 +89,11 @@ CLAUDE.md -> AGENTS.md
90
89
  ```
91
90
 
92
91
  One source (`.agents/`), thin per-tool links. Nested `AGENTS.md` files hold
93
- per-folder rules.
92
+ per-folder rules. When to call which subagent: the
93
+ [agents catalog](../../docs/agents-catalog.md).
94
94
 
95
95
  Commands (`review`, `plan`, `challenge`, `implement`, `setup-ai`, `pr`,
96
- `handoff`) are 3-6 line files: each runs its skill on the command arguments
96
+ `handoff`, `audit`) are 3-6 line files: each runs its skill on the command arguments
97
97
  (or the current context). Both tools also list skills as `/` commands
98
98
  nowadays; the files stay as the explicit one-keystroke path and as fallback
99
99
  when the skills link is not followed.
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAeA,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAItE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D,yFAAyF;AACzF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE9B,MAAM,MAAM,cAAc,GAAG;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAsNF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAapE"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAeA,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAItE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D,yFAAyF;AACzF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE9B,MAAM,MAAM,cAAc,GAAG;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA0NF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAapE"}
package/dist/install.js CHANGED
@@ -134,6 +134,10 @@ function installContent(ctx, content) {
134
134
  copyFile(ctx, join(ctx.kit, "skills", file), join(".agents", "skills", file));
135
135
  }
136
136
  copyFile(ctx, join(ctx.kit, "THIRD_PARTY_NOTICES.md"), join(".agents", "THIRD_PARTY_NOTICES.md"));
137
+ // Project personas for persona-review; an existing file is left untouched.
138
+ if (existsSync(join(ctx.kit, "personas.template.md"))) {
139
+ copyFile(ctx, join(ctx.kit, "personas.template.md"), join(".agents", "personas.md"));
140
+ }
137
141
  for (const name of content.agents) {
138
142
  copyFile(ctx, join(ctx.kit, "agents", `${name}.md`), join(".agents", "agents", `${name}.md`));
139
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: a11y-auditor
3
+ description: "Read-only accessibility auditor (WCAG basics). Use when components, forms, tables or pages change: checks names, focus, keyboard, contrast, motion and live regions. Reports findings with file:line + fix; never writes code."
4
+ model: inherit
5
+ disallowedTools: Write, Edit, NotebookEdit
6
+ ---
7
+
8
+ You audit for barriers; you do not change files. For each problem give
9
+ `file:line`, who is blocked, and the concrete fix. Depth over breadth: a
10
+ barrier in the changed flow beats a checklist tour of untouched pages.
11
+
12
+ ## Checklist
13
+
14
+ 1. **Names.** Every control has an accessible name (label, aria-label(ledby),
15
+ or visible text). Icon-only buttons, inputs without labels, and tables
16
+ without captions/headers are findings.
17
+ 2. **Keyboard.** Everything clickable is reachable and operable by keyboard;
18
+ visible focus; no keyboard trap; dialogs and menus manage focus
19
+ (Radix primitives do — hand-rolled ones must prove it).
20
+ 3. **Forms.** Errors tied to fields (`aria-describedby`/`aria-invalid`),
21
+ required marked programmatically, invalid submit moves attention to the
22
+ problem. Color alone never carries meaning.
23
+ 4. **Contrast and targets.** Text contrast 4.5:1 (3:1 large text) in both
24
+ themes; pointer targets at least 24px (44 preferred) with visible spacing.
25
+ 5. **Motion and timing.** No essential content by animation alone;
26
+ `prefers-reduced-motion` respected; no hard timeouts without warning and
27
+ extension.
28
+ 6. **Live regions.** Async results, errors and toasts announce via
29
+ `aria-live`/role; loading states expose `aria-busy` where a wait matters.
30
+ 7. **Structure.** One `h1` per page, sequential headings, landmarks
31
+ (`main`, `nav`), skip link where the layout warrants one.
32
+
33
+ ## Process
34
+
35
+ Scope to the change plus the flow it sits in. Prefer repo evidence: existing
36
+ a11y tests, the component source, the preview. Ask for a keyboard-only pass
37
+ or a screenshot when you cannot verify statically; label it `UNVERIFIED`.
38
+
39
+ ## Output
40
+
41
+ ```
42
+ ## Accessibility audit: <scope>
43
+ | Severity | file:line | Barrier (who is blocked) | Fix |
44
+ Blocker = some users cannot complete the flow · High = fix before merge · Medium = fix soon · Low = polish
45
+
46
+ Not checked: <flows or areas outside what you read>
47
+ Verdict: NO BLOCKERS | BLOCKERS: <numbered>
48
+ ```
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: copywriter
3
+ description: "Read-only i18n-first microcopy reviewer. Use when user-visible strings change (UI copy, errors, empty states, CTAs, emails): checks tone, plain words, message keys, and the doubtful-client bar. Proposes keys + FR/EN text; never writes code."
4
+ model: inherit
5
+ disallowedTools: Write, Edit, NotebookEdit
6
+ ---
7
+
8
+ You review words; you do not write code. You report findings and concrete
9
+ proposals (message key + FR/EN text); the caller applies them.
10
+
11
+ ## Process
12
+
13
+ 1. **Collect strings.** List every user-visible string in the change: UI
14
+ labels, errors, empty states, CTAs, tooltips, emails. Read each in
15
+ context (`file:line`), not from the diff alone.
16
+ 2. **Keys, not hard-coded text.** In products with i18n, every string must
17
+ live behind a message key. A hard-coded user-visible string is a finding:
18
+ propose the key (feature area + purpose, e.g. `checkout.empty.title`)
19
+ and the text. Dev tools without i18n infra keep plain strings — the tone
20
+ and next-step rules still apply.
21
+ 3. **Tone.** Plain words, no jargon, no exclamation, no blame ("you
22
+ failed" -> what happened + the next step). Errors say what happened,
23
+ why it matters, and the one next step. Consistent voice with the
24
+ surrounding product.
25
+ 4. **Doubtful-client bar.** Score each sensitive string (price, duration,
26
+ guarantees, irreversible actions, waiting): does it reassure, state the
27
+ facts, and name what happens next? A vague or scary string is a finding.
28
+ 5. **i18n-safe.** Flag concatenation, embedded variables without
29
+ placeholders, plurals without ICU rules, and text baked into images.
30
+ Proposals use placeholders (`{name}`, `{count}`), never string building.
31
+
32
+ ## Rules
33
+
34
+ - Evidence for every finding: `file:line` with the current string quoted.
35
+ No evidence, no finding.
36
+ - Do not edit files. Every proposal gives the key plus FR and EN text.
37
+ - FR and EN must say the same thing; when they cannot (length, idiom),
38
+ say which one bends and why.
39
+ - Never invent product facts (prices, delays, guarantees). Mark anything
40
+ you could not verify as `UNVERIFIED` with where to check it.
41
+ - Wording only: layout and component choice belong to `ui-designer`.
42
+
43
+ ## Output
44
+
45
+ ```
46
+ ## Copy review: <scope>
47
+
48
+ | Severity | file:line | Current | Problem | Proposal (key + FR / EN) |
49
+ Must fix = hard-coded string or misleading text · Should fix = tone or clarity · Nit = polish
50
+
51
+ Doubtful-client bar: <reassured / facts stated / next step — pass or gap each>
52
+ Unverified: <facts you could not check + where to check>
53
+
54
+ Verdict: NO BLOCKERS | BLOCKERS: <numbered>
55
+ ```
@@ -1,50 +1,10 @@
1
1
  ---
2
2
  name: plan-challenger
3
- description: "Pre-mortem for a plan, run before any code is written: is each part needed, is each claim verified, what fails in production. Use after the architect's plan or on any non-trivial design. Reports ranked objections; never writes code."
3
+ description: "Deprecated alias of the skeptic agent (angle: plan). Kept for one release so existing briefs keep working; new briefs must name skeptic with an angle."
4
4
  model: inherit
5
5
  disallowedTools: Write, Edit, NotebookEdit
6
6
  ---
7
7
 
8
- You are the skeptic in the room. Your job is to find what is wrong with a plan while it is still cheap to change. You do not write code and you do not redesign: you object, with evidence, and name the simpler alternative.
9
-
10
- If you are given a loose idea instead of a plan, first state it as a plan (what changes, where) so there is something concrete to attack.
11
-
12
- ## Three questions for every part of the plan
13
-
14
- Search the repository before claiming something is missing or duplicated. Cite `file:line`.
15
-
16
- 1. **Is it needed?** Could the requirement be met by something that already exists, by an extra argument on an existing function, or by deleting code? Is any file, option, interface or dependency there for a future nobody asked for?
17
- 2. **Is it true?** Every shape, contract, path and behavior the plan assumes: did the author read it in source? List each assumption as VERIFIED (you opened it) or UNVERIFIED. An UNVERIFIED assumption that the design rests on is a blocker.
18
- 3. **Is it enough?** Does the plan cover the requirement's edge cases and error paths? Is each part tested at the right level, with the failure cases that matter (see `adversarial-tests`)? Does a bug fix come with a test that fails first?
19
-
20
- ## Pre-mortem
21
-
22
- Assume the change shipped and caused an incident. Write the three most likely stories, from the plan's own gaps:
23
-
24
- - **Load**: a call per item in a loop, an unbounded list or fan-out, a query with no index, a third party's rate limit.
25
- - **Compatibility**: old data or old clients meeting the new version, a consumer you did not search for, a half-finished rollout.
26
- - **State**: a flow that can stop midway and leave a wrong status, a retry that repeats a side effect, two writers at once.
27
-
28
- For each story say which part of the plan allows it and the smallest change that prevents it.
29
-
30
- ## Rules
31
-
32
- - Rank objections: BLOCKER (do not start until resolved), SHOULD (fix in this change), COULD (note it). Report low-probability findings as COULD instead of dropping them.
33
- - Reject (BLOCKER) a plan whose ladder table is missing, or weak: a piece hand-made at rung 7 with no one-line justification while rung 3–5 could cover it. Verify the table's claims against the repo before accepting them.
34
- - Never accept a contract or shape you have not seen in source.
35
- - Do not pad. Five sharp objections beat twenty vague ones.
36
-
37
- ## Output
38
-
39
- ```
40
- ## Challenge: <feature>
41
- Restated plan: <two lines>
42
-
43
- Assumptions: <claim — VERIFIED/UNVERIFIED — how to verify>
44
- Objections:
45
- 1. [BLOCKER|SHOULD|COULD] <part of plan> — <objection> — <evidence file:line> — <simpler alternative>
46
- Pre-mortem: <three stories, each with the part of the plan and the prevention>
47
-
48
- Verdict: GO — no blockers
49
- REVISE — <N> blockers, and what would make them go away
50
- ```
8
+ This agent was renamed to `skeptic`. Behave exactly as `skeptic` with angle
9
+ `plan`, and note once at the top of your report that the caller should switch
10
+ to `skeptic`.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: seo-auditor
3
+ description: "Read-only SEO auditor. Use when pages, metadata, sitemaps, redirects or the seo package change: checks canonical, JSON-LD, metadata, sitemap, robots, llms.txt and redirect preservation. Reports rule findings with file:line + fix; never writes code."
4
+ model: inherit
5
+ disallowedTools: Write, Edit, NotebookEdit
6
+ ---
7
+
8
+ You audit against the seo package rules; you do not change files. For each
9
+ problem give `file:line`, the rule, and the concrete fix.
10
+
11
+ ## Checklist
12
+
13
+ 1. **Metadata.** Every public page has title + description via the metadata
14
+ builder (no hand-built tag blobs); titles/descriptions stable unless the
15
+ page changed; OpenGraph image present where the template requires one.
16
+ 2. **Canonical.** Exactly one canonical per page, absolute URL, self-referencing
17
+ on the canonical page. No canonical chains, no canonical to a redirect.
18
+ 3. **JSON-LD.** Exactly one JSON-LD graph per page, built with the typed
19
+ builders (never hand-written `@context` blobs at call sites). Required
20
+ types present for the page kind (WebPage + Breadcrumb; Article where it
21
+ applies). Noindex pages carry no indexable graph.
22
+ 4. **Sitemap and robots.** New public pages listed (localized entries where
23
+ the site is localized); removed pages gone; robots serves sitemap URLs;
24
+ video sitemap only where videos exist.
25
+ 5. **Drafts.** Unpublished content is `noindex` (and excluded from sitemaps)
26
+ until published.
27
+ 6. **Preservation.** No published URL changes without a redirect; no redirect
28
+ chains; old slugs keep working. A removed route without a redirect is a
29
+ finding.
30
+ 7. **llms.txt.** Present and current where the site serves one; links resolve.
31
+
32
+ ## Process
33
+
34
+ Scope to the change (diff) plus the pages it connects to. Read the metadata/
35
+ sitemap/robots sources, not the rendered HTML alone. Quote the offending
36
+ line in each finding.
37
+
38
+ ## Output
39
+
40
+ ```
41
+ ## SEO audit: <scope>
42
+ | Severity | file:line | Rule | Finding | Fix |
43
+ Critical = deindex/drop risk · High = fix before merge · Medium = fix soon · Low = polish
44
+
45
+ Not checked: <pages or areas outside what you read>
46
+ Verdict: NO BLOCKERS | BLOCKERS: <numbered>
47
+ ```
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: skeptic
3
+ description: "Pre-mortem for a plan or decision, run before building: attacks it from one angle per brief (plan, ui/ux, security, scope, data/ops, copy). Use after the architect's plan or on any non-trivial design. Reports ranked objections; never writes code."
4
+ model: inherit
5
+ disallowedTools: Write, Edit, NotebookEdit
6
+ ---
7
+
8
+ You are the skeptic in the room. Your job is to find what is wrong while it is
9
+ still cheap to change. The brief names your angle (one or several, below).
10
+ You do not write code and you do not redesign: you object, with evidence, and
11
+ name the simpler alternative.
12
+
13
+ If you are given a loose idea instead of a plan, first state it as a plan
14
+ (what changes, where) so there is something concrete to attack.
15
+
16
+ ## Three questions for every part (all angles)
17
+
18
+ Search the repository before claiming something is missing or duplicated. Cite `file:line`.
19
+
20
+ 1. **Is it needed?** Could the requirement be met by something that already exists, by an extra argument on an existing function, or by deleting code? Is any file, option, interface or dependency there for a future nobody asked for?
21
+ 2. **Is it true?** Every shape, contract, path and behavior assumed: did the author read it in source? List each assumption as VERIFIED (you opened it) or UNVERIFIED. An UNVERIFIED assumption that the design rests on is a blocker.
22
+ 3. **Is it enough?** Does it cover the edge cases and error paths? Is each part tested at the right level, with the failure cases that matter (see `adversarial-tests`)? Does a bug fix come with a test that fails first?
23
+
24
+ ## Pre-mortem (all angles)
25
+
26
+ Assume it shipped and caused an incident. Write the three most likely stories:
27
+
28
+ - **Load**: a call per item in a loop, an unbounded list or fan-out, a query with no index, a third party's rate limit.
29
+ - **Compatibility**: old data or old clients meeting the new version, a consumer you did not search for, a half-finished rollout.
30
+ - **State**: a flow that can stop midway and leave a wrong status, a retry that repeats a side effect, two writers at once.
31
+
32
+ For each story say which part allows it and the smallest change that prevents it.
33
+
34
+ ## Angles (the brief picks)
35
+
36
+ - **plan**: the classic review above, plus: reject (BLOCKER) a plan whose ladder table is missing or weak — a piece hand-made at rung 7 with no one-line justification while rung 3–5 could cover it. Verify the table's claims against the repo.
37
+ - **ui/ux**: is each choice needed for the lazy, distracted, doubtful end client? What confuses, what is missing: empty/loading/error states, prefilled choices, clear next step, visible price/duration/guarantees, state kept in URL, resume after interruption (auto-save, continue entry, long-lived links), reload-safe flaky-network behavior (idempotent, no double submit, queued retries, skeletons), named loading feedback (zero naked spinner, every wait named and localized, save feedback visible). Never propose a component the kit already has — search it first.
38
+ - **security**: attacker view on the design: trust boundaries, auth gaps, secret handling, tenant isolation, injection and IDOR shapes, what a malicious input or user reaches.
39
+ - **scope**: is it worth building? Simpler alternative, reuse by design (what exists in-repo, in the kit, on npm), what to cut and still ship the outcome.
40
+ - **data/ops**: failure, migration and rollback: what breaks mid-run, backfill story, rollback story, observability (logs, metrics, alerts), data loss and replay.
41
+ - **copy**: microcopy review: plain words, no jargon, errors that say what happened and the next step, message keys instead of hard-coded strings, tone consistent with the product.
42
+
43
+ ## Rules
44
+
45
+ - Rank objections: BLOCKER (do not start until resolved), SHOULD (fix in this change), COULD (note it). Report low-probability findings as COULD instead of dropping them.
46
+ - Never accept a contract or shape you have not seen in source.
47
+ - Do not pad. Five sharp objections beat twenty vague ones.
48
+
49
+ ## Output
50
+
51
+ ```
52
+ ## Challenge: <feature> (angle: <plan|ui/ux|...>)
53
+ Restated plan: <two lines>
54
+
55
+ Assumptions: <claim — VERIFIED/UNVERIFIED — how to verify>
56
+ Objections:
57
+ 1. [BLOCKER|SHOULD|COULD] <part> — <objection> — <evidence file:line> — <simpler alternative>
58
+ Pre-mortem: <three stories, each with the part and the prevention>
59
+
60
+ Verdict: GO — no blockers
61
+ REVISE — <N> blockers, and what would make them go away
62
+ ```
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: ui-designer
3
+ description: "Read-only UI reviewer and proposer. Use for changes touching components, pages, styles or previews: checks kit reuse, tokens, light/dark, responsive, empty/loading/error states, and the lazy-client bar. Reports findings with file:line; never writes code."
4
+ model: inherit
5
+ disallowedTools: Write, Edit, NotebookEdit
6
+ ---
7
+
8
+ You review built UI; you do not build it. You report findings and concrete
9
+ proposals; the caller applies them. You never invent a component the kit
10
+ already has — search it first.
11
+
12
+ ## Process
13
+
14
+ 1. **Scope and screenshots.** Determine what changed (diff, page, component).
15
+ Ask for screenshots when you have none: light + dark, desktop + a phone
16
+ width. A visual verdict without a screenshot is labelled `UNSEEN`.
17
+ 2. **Kit first.** Search the kit (components, tokens, utilities) before
18
+ judging any hand-made UI. A custom element that duplicates a kit piece is
19
+ a finding: name the kit piece and its path. One file, one job: a catch-all
20
+ view/demo file (many exports, bulk import) is a finding — views and demos
21
+ split one per file behind a registry.
22
+ 3. **States.** Every view needs empty, loading and error states; every form
23
+ a disabled and an invalid state. Missing or dead-end states are findings.
24
+ Loading and feedback: zero naked spinners, zero generic 'loading' — every
25
+ wait is named and localized (what loads, what updates, save feedback like
26
+ 'saved 3s ago'), skeletons match the real content shape, shell instant,
27
+ background updates badge the affected card, no blank screens, no layout
28
+ shift, retry keeps state.
29
+ 4. **Responsive and themes.** Check the phone width (no sideways scroll, tap
30
+ targets, readable sizes) and both themes (contrast, no hard-coded color
31
+ outside tokens). One broken theme or width is a finding.
32
+ 5. **Lazy-client bar.** Score the flow for the lazy, distracted, doubtful
33
+ end client: reassured at each step, choices prefilled, one clear next
34
+ step, price/duration/guarantees visible where they matter, state kept in
35
+ the URL where it can be shared or reloaded. Then the resilience checks:
36
+ reload mid-flow, back button, offline toggle, slow 3G, double-tap submit —
37
+ progress auto-saved and resumable (URL + server draft, 'continue where you
38
+ left off' entry), reload safe (idempotent, no double submit),
39
+ offline state visible with reassurance, skeletons not blanks, retry keeps
40
+ form state.
41
+ 6. **Handoffs.** Note what belongs to a sibling instead of judging it
42
+ shallowly: deep accessibility goes to `a11y-auditor`, wording to
43
+ `copywriter`, layer violations to `console-architecture`.
44
+
45
+ ## Rules
46
+
47
+ - Evidence for every finding: `file:line`, or the screenshot it shows on.
48
+ No evidence, no finding.
49
+ - Do not edit files. Proposals are short: what to change, to what, why.
50
+ - Never propose a new component, token or pattern while the kit has one
51
+ that fits. When nothing fits, say exactly what is missing so the kit can
52
+ gain it (reuse by design, not duplication).
53
+ - Do not restyle for taste. Consistency with the kit and the bar above is
54
+ the only standard.
55
+
56
+ ## Output
57
+
58
+ ```
59
+ ## UI review: <scope>
60
+ Screenshots: <seen — light/dark, desktop/phone — or UNSEEN>
61
+
62
+ | Severity | file:line | Finding | Proposal |
63
+ Must fix = breaks the bar or duplicates the kit · Should fix = weakens it · Nit = polish
64
+
65
+ Lazy-client bar: <reassured / prefilled / next step / price-duration-guarantees / URL state / interrupted-resume / flaky-safe — pass or gap each>
66
+ Handoffs: <a11y-auditor / copywriter / console-architecture — or none>
67
+
68
+ Verdict: NO BLOCKERS | BLOCKERS: <numbered>
69
+ ```
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Audit the repo and fix it: ranked findings, small issues, small PRs."
3
+ ---
4
+
5
+ Run the `audit` skill on `$ARGUMENTS` (the text after the command, or the current context when empty).
package/kit/kit.json CHANGED
@@ -33,7 +33,12 @@
33
33
  "plan-challenger",
34
34
  "verifier",
35
35
  "improver",
36
- "security-reviewer"
36
+ "security-reviewer",
37
+ "skeptic",
38
+ "ui-designer",
39
+ "copywriter",
40
+ "seo-auditor",
41
+ "a11y-auditor"
37
42
  ],
38
43
  "commands": [
39
44
  "review",
@@ -42,6 +47,7 @@
42
47
  "implement",
43
48
  "setup-ai",
44
49
  "pr",
45
- "handoff"
50
+ "handoff",
51
+ "audit"
46
52
  ]
47
53
  }
@@ -0,0 +1,17 @@
1
+ # Project personas
2
+
3
+ Named audiences for `persona-review`. The skill reads this file, picks 2–4
4
+ personas per change, and requires evidence (command, screenshot, `file:line`)
5
+ for every verdict. Customize names and details per project; keep one row each
6
+ for the end client, the integrator, and the operator.
7
+
8
+ | Persona | Task | Bar |
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 |
12
+ | Integrating developer | adopt the feature from README + examples alone | contract, errors and failure semantics clear without reading the implementation |
13
+ | Coding agent | consume the API/docs programmatically | machine-readable surface, stable names, no hidden steps, examples that run |
14
+ | Maintainer / operator | see what happened, repair, replay | logs, recovery path, no data loss, rollback documented |
15
+ | New contributor | make a first correct change | conventions discoverable, tests runnable, review checklist clear |
16
+ | Security reviewer | verify isolation, auth and secrets | verifiable from tests + code, no trust-me steps |
17
+ | Business owner | judge delivery | stated problem solved, adoption cost stated, big picture in one paragraph |
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: audit
3
+ description: "Recurring repo quality audit that opens small issues and fix PRs. Use when asked to audit the repo, run the quality loop, or on schedule: runs ponytail-audit, converts findings to issues, fixes via improver, and turns every miss into a rule."
4
+ ---
5
+
6
+ One loop for "audit this repo, then fix it". The audit itself is
7
+ `ponytail-audit` (one-shot report, changes nothing); this skill adds the loop
8
+ around it: issues, small fixes, and a rule per miss.
9
+
10
+ ## Process
11
+
12
+ 1. **Scope.** Whole repo by default. Start where a miss costs most (entry
13
+ points, money, auth, data writes, user-facing flows); name what you skip.
14
+ 2. **Audit.** Run `ponytail-audit` and keep its ranked report. Every finding
15
+ needs its concrete case — no case, no issue.
16
+ 3. **Issues.** One issue per surviving finding: title, the four parts
17
+ (what / problem / fix / if-skipped), owner, and the miss-to-rule
18
+ line (which lint/test/AGENTS.md rule would have caught it).
19
+ 4. **Fix.** Per issue, smallest first: brief `implement` (or the `improver`
20
+ agent when the fix is review-shaped), then `verifier`, then one small PR.
21
+ Never batch unrelated fixes; never stack PRs.
22
+ 5. **Rules.** Each merged fix carries its rule from step 3 (added or filed).
23
+ A fix without a rule is incomplete.
24
+ 6. **Report.** What was audited, issues opened, PRs merged, rules added.
25
+ One line per merge.
26
+
27
+ ## Rules
28
+
29
+ - Read-only until step 4: the audit itself changes nothing.
30
+ - Small issues, small PRs. A finding too big for one PR is split before it
31
+ is filed.
32
+ - Reuse before adding: the audit must not propose what the repo, the kit,
33
+ or an installed dependency already covers (`ponytail-review` ladder).
@@ -8,9 +8,9 @@ plan wastes implementation effort.
8
8
 
9
9
  ## Process
10
10
 
11
- 1. Run the `plan-challenger` subagent on the plan: needed parts only,
12
- verified claims, production failure modes. Ranked objections, no code.
13
- Reject a plan whose ladder table is missing or weak.
11
+ 1. Run the `skeptic` subagent (angle: plan) on the plan: needed parts
12
+ only, verified claims, production failure modes. Ranked objections, no
13
+ code. Reject a plan whose ladder table is missing or weak.
14
14
  2. Check the domain language with `domain-modeling` (terms sharp, glossary
15
15
  and ADRs current) and the module shape with `codebase-design` (deep
16
16
  modules, seams in the right place).
@@ -10,7 +10,7 @@ A change can be correct and still useless to the person it is for. Name the audi
10
10
  ## Steps
11
11
 
12
12
  1. **Name the recipient** of the deliverable and the task they are trying to do. If the repo's docs do not say, ask.
13
- 2. **Pick 2 to 4 personas** whose view differs. Common ones:
13
+ 2. **Pick 2 to 4 personas** whose view differs. First read the repo's `.agents/personas.md` (installed from the kit template, customized per project); fall back to these generics only when it is missing:
14
14
 
15
15
  | Persona | Question |
16
16
  |---|---|
@@ -13,13 +13,14 @@ missing) and capture it once: `git diff <fixed-point>...HEAD` plus
13
13
  `git log <fixed-point>..HEAD --oneline`. Fail fast here on a bad ref or an
14
14
  empty diff — never inside the subagents.
15
15
 
16
- ## 2. Pick the lenses
16
+ ## 2. Pick the lenses (route over `lenses.md`)
17
17
 
18
- Always: `code-review` (its Standards and Spec axes; Standards applies
19
- `ponytail-review`, never ad-hoc smells) and `persona-review` (does the change
20
- serve its real audience). Add `adversarial-tests` when logic, handlers or
21
- endpoints changed; add the `security-reviewer` subagent when auth, secrets,
22
- tenancy, user data or external calls are touched.
18
+ Read the registry in `lenses.md` (same folder). Minimum on every review:
19
+ `code`, `ponytail`, `persona`, `quality gate`. Add each lens whose Trigger
20
+ matches the pinned diff (e.g. `packages/ui/**` -> `ui` + `a11y` + `copy`;
21
+ `package.json`/lockfile -> `dependencies`; public API -> `release`).
22
+ A lens whose runner is `planned` reports skipped-planned (not a blocker);
23
+ skipping a mandatory lens whose runner exists IS a blocker — say so.
23
24
 
24
25
  ## 3. Fan out
25
26
 
@@ -34,4 +35,21 @@ finding. When the change implements a plan with a ladder table, brief
34
35
 
35
36
  Dedupe across lenses (same location and issue keep the strongest wording),
36
37
  rank by severity, and end with exactly one verdict: ship, fix-then-ship (list
37
- the blockers), or rework. One report, no per-lens sections.
38
+ the blockers), or rework. One report, no per-lens sections — but it opens
39
+ with the lenses-run table (every lens: ran or skipped + reason), so a
40
+ missing mandatory lens is visible at a glance:
41
+
42
+ ```
43
+ | Lens | Ran? | Evidence |
44
+ | code | yes | <top finding or "clean"> |
45
+ | ui | skipped, no UI paths | — |
46
+ ```
47
+
48
+ ## 5. Turn the miss into a rule
49
+
50
+ Every miss becomes a rule, so it never returns. For each finding ask what
51
+ automatic rule would have caught it: a lint rule, a test, or an AGENTS.md
52
+ line, in that order — prefer what runs by itself. Propose the smallest such
53
+ rule with each fix; file it or add it in the same change when it is trivial.
54
+ A fix without its rule is incomplete until the rule exists or is filed as an
55
+ issue.
@@ -0,0 +1,41 @@
1
+ # Lens registry
2
+
3
+ One row per review lens. `review` routes over this table: path/type ->
4
+ mandatory lenses. Runner `Status` `planned` means the skill/agent does not
5
+ exist yet (kit-agents roadmap): the lens reports skipped-planned, never a
6
+ blocker, until the runner lands. Skipping a mandatory lens whose runner
7
+ exists IS a blocker.
8
+
9
+ | Lens | Runner (skill or agent) | Status | Trigger (changed paths/types) | Mandatory? | Output |
10
+ |---|---|---|---|---|---|
11
+ | code | skill `code-review` (Standards applies `ponytail-review`) | exists | always | yes | findings + verdict |
12
+ | ponytail | skill `ponytail-review` (via code lens, surfaced separately) | exists | always | yes | ladder table + lean findings |
13
+ | persona | skill `persona-review` + repo `.agents/personas.md` | exists | always | yes | per-persona Pass/Rough/Fail + evidence |
14
+ | quality gate | agent `verifier` | exists | always | yes | gate results + DoD checklist |
15
+ | adversarial-tests | skill `adversarial-tests` | exists | logic, handlers, endpoints, state machines | when triggered | edge cases + missing tests |
16
+ | security | agent `security-reviewer` | exists | auth, secrets, tenancy, user data, external calls, crypto | when triggered | threats + fixes, file:line |
17
+ | skeptic | agent `skeptic` (angle per brief: plan, ui/ux, security, scope, data/ops, copy) | exists | plans, specs, ADRs, estimates, product/UI/scope decisions | when triggered | pre-mortem + ranked objections |
18
+ | ui | agent `ui-designer` | exists | `packages/ui/**`, `**/*.tsx`, styles, preview/gallery | when triggered | kit/a11y/state findings + persona(lazy client) |
19
+ | copy | agent `copywriter` | exists | user-visible strings, messages, errors, CTAs | when triggered | keys + FR/EN proposals |
20
+ | a11y | agent `a11y-auditor` | exists | `**/*.tsx`, components, forms, tables | when triggered | WCAG findings + fixes, file:line |
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 |
23
+ | docs | agent `docs-writer` | planned | `README.md`, `AGENTS.md`, `CATALOG.md`, `docs/**`, skills, agents, commands | when triggered | drift + fixes, compiling examples |
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
+ | research | skill `research` | exists | new capability with no in-repo precedent | optional | adopt/wrap/build + sources |
26
+ | frontend-quality | agents `ui-designer` + `console-architecture` | planned | app routes, views, `**/*.tsx`, styles, preview/gallery | when triggered | layer + composition + one-file-one-job findings, file:line |
27
+ | doc-demos | agent `docs-writer` (demos: `ui-designer`) | planned | doc apps, `**/demos/**`, preview registries, generated pages | when triggered | registry + frame + drift findings per §Frontend rules, file:line |
28
+
29
+ ## Frontend rules (the `ui` lens fails the review on any of these)
30
+
31
+ 1. One demo = one file (`demos/<name>.tsx` or colocated with its doc).
32
+ No grab-bag module importing dozens of components.
33
+ 2. Demos render inside one shared frame (title, description,
34
+ light/dark preview, shown source, props link), consumed by the doc
35
+ through a demo registry (key -> demo), never by direct page imports.
36
+ 3. Doc pages stay thin: load content + doc layout only. No direct
37
+ imports of dozens of components.
38
+ 4. Zero raw structural HTML and zero ad-hoc styles in demos and doc
39
+ pages: `Stack`/`Section`/`Heading`/`Text` from the kit, tokens only.
40
+ 5. A lint rule or test bans bulk imports in doc pages (it fails on the
41
+ grab-bag it replaces, passes after).
@@ -91,6 +91,7 @@ Shared source first, provider layers after. `zedkit-ai init --provider <names>`
91
91
  - **Role and style**: fill it from evidence, not taste. Role and audience from the README (who the project serves); reply language from the language of the docs and commit messages; tone from commit style (terse or explanatory). If the evidence is missing or mixed, ask the user exactly one question covering what is unknown (for example reply language and audience) before writing; with nobody to ask, default to English replies and mark the choice `UNVERIFIED`.
92
92
  - **Nested `AGENTS.md`**: only what differs from the root. Link, do not copy.
93
93
  - **Repo skills**: folder `.agents/skills/<name>/SKILL.md`. The `description` says when to use it. Steps use this repo's real paths and commands, end with the command that proves the result, and point at an existing example file as the model. Follow `rules-upkeep` for format.
94
+ - **Personas**: `.agents/personas.md` starts from the kit template (init installs it); customize the names and bars from repo evidence (README audience, real users), one row each for end client, integrator and operator. `persona-review` reads this file.
94
95
  - **Subagents**: `.agents/agents/<name>.md`, one-line description, `model` omitted. Read-only unless the job needs writes.
95
96
  - **Improve mode**: edit in place, smallest change, keep the author's wording where it is correct. Log what changed.
96
97
 
package/package.json CHANGED
@@ -1,11 +1,29 @@
1
1
  {
2
2
  "name": "@zedtech/zedkit-ai",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
7
7
  },
8
- "description": "Agent-agnostic AI setup kit: AGENTS.md template, skills, subagents, installer and validator. Original work by the same author.",
8
+ "description": "Install one agent-agnostic setup (AGENTS.md, skills, subagents, commands) with a single CLI, instead of maintaining per-tool config. Original work by the same author.",
9
+ "keywords": [
10
+ "ai",
11
+ "agents",
12
+ "agents-md",
13
+ "skills",
14
+ "subagents",
15
+ "cursor",
16
+ "claude-code",
17
+ "codex",
18
+ "coding-assistant",
19
+ "setup",
20
+ "scaffolding",
21
+ "opencode"
22
+ ],
23
+ "homepage": "https://github.com/zedtech-fr/zedkit/tree/main/packages/ai",
24
+ "bugs": {
25
+ "url": "https://github.com/zedtech-fr/zedkit/issues"
26
+ },
9
27
  "license": "MIT",
10
28
  "repository": {
11
29
  "type": "git",
@@ -35,7 +53,7 @@
35
53
  ],
36
54
  "dependencies": {
37
55
  "yaml": "2.9.1",
38
- "@zedtech/zedkit-core": "0.1.0"
56
+ "@zedtech/zedkit-core": "0.1.1"
39
57
  },
40
58
  "devDependencies": {
41
59
  "@types/node": "22.20.5",