yadflow 4.2.0 → 4.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.
@@ -12,7 +12,7 @@ screens and/or web pages — inside that tool (e.g. Figma), linked back from the
12
12
  passes to `yad-review-gate` (base rule: 1 distinct approver, who should not be the author).
13
13
 
14
14
  UI work is shaped by **Impeccable**, invoked as **harness slash-commands** (not a subprocess CLI) per
15
- the Phase 0 deviation. If Impeccable is not installed, the `ux-designer` lens authors the same outputs
15
+ the Phase 0 deviation. If Impeccable is not used (**When a tool is missing** below), the `ux-designer` lens authors the same outputs
16
16
  directly — the workflow does not block on the tool.
17
17
 
18
18
  The visual design is materialized in the **design tool connected via `yad-connect-design`**
@@ -21,6 +21,38 @@ The visual design is materialized in the **design tool connected via `yad-connec
21
21
  is connected, the step degrades to the Markdown artifacts only — the design tool is additive, exactly
22
22
  like Impeccable.
23
23
 
24
+ ## When a tool is missing
25
+
26
+ <!-- Written from yadflow's cli/toolbox.mjs (E87). Change the words there: a test holds this section to it. -->
27
+
28
+ No tool below is required. When one is missing, this skill still finishes, using the fallback written
29
+ beside it.
30
+
31
+ For Impeccable (the one tool here that is not a connector), decide from yad's answer, not from a guess:
32
+ run `yad toolbox list --json` and read, in its `tools` list, the entry with the tool's `id`. Run it
33
+ where the tool will run: for work inside a code repo, add `--dir <that repo>`, so the tools installed
34
+ there are found.
35
+
36
+ - **The team's choices.** They come from the Product. If the answer's `product` is null, yad found no
37
+ Product, so a tool the team chose not to use still shows `used: true`. Tell the person that.
38
+ - **When yad cannot see the tool.** yad does not read every way a tool can be set up (an older install
39
+ may be missed). If the entry says `missing` but the check in the steps below finds the tool, use
40
+ it — but never when the entry says `used: false`.
41
+ - **When yad cannot answer** (yad is not installed here, or the command fails), use the check in the
42
+ steps below.
43
+
44
+ Tell the person which tools you used and which fallbacks, and why.
45
+
46
+ - **Impeccable** (`impeccable`). Use it when its entry has `used: true` and `status.state` is `installed` or `available`. Otherwise — not found, its plugin turned off in Claude Code, or the team chose not to use it (`yad toolbox remove impeccable`) — use the fallback.
47
+ - Fallback — markdown-only UI design: yad-ui writes ui-design.md and DESIGN.md directly.
48
+ - Record `impeccable: not-installed`. It means the tool was not used, whatever the reason.
49
+ - **Figma** (`figma`, a connector). Used when `.sdlc/design.json` connects it. yad-connect-design writes that file; follow it, not yad's toolbox answer.
50
+ - Fallback — markdown-only: yad-ui writes ui-design.md and DESIGN.md only.
51
+ - **Pencil (pen.dev)** (`pencil`, a connector). Used when `.sdlc/design.json` connects it. yad-connect-design writes that file; follow it, not yad's toolbox answer.
52
+ - Fallback — markdown-only: yad-ui writes ui-design.md and DESIGN.md only.
53
+
54
+ <!-- end: When a tool is missing -->
55
+
24
56
  ## Conventions
25
57
 
26
58
  - `{project-root}` resolves from the project working directory.
@@ -84,7 +116,7 @@ Read the registry `{project-root}/.sdlc/repos.json` (`config.yaml` `code_context
84
116
  `epic.repos`**, load the code-map `{project-root}/.sdlc/code-context/<repo>/code-map.md` so the UI
85
117
  **reuses existing components and conventions** rather than inventing parallel ones. This complements
86
118
  Impeccable's `/impeccable document` (Step 3), which reads code directly for the design system — when
87
- Impeccable is absent, the code-map is the brain's view of what UI/components already exist.
119
+ Impeccable is not used, the code-map is the brain's view of what UI/components already exist.
88
120
 
89
121
  - **Greenfield-safe:** if `repos.json` is absent/empty, note "no repos connected" and proceed.
90
122
  - **Staleness:** if a repo's current HEAD ≠ its registry `syncedHead`, warn and suggest
@@ -102,7 +134,8 @@ Adopt the **ux-designer** lens. Drive Impeccable as slash-commands:
102
134
  `/impeccable document` generates the root `DESIGN.md` from existing code; `/impeccable extract` pulls
103
135
  components/tokens into the design system; `/impeccable craft` is shape-then-build for the new screens.
104
136
 
105
- **Graceful degradation:** if Impeccable is not installed (no `/impeccable …` commands available), the
137
+ **Graceful degradation:** if Impeccable is not used (**When a tool is missing** says how to tell; if
138
+ yad cannot answer, it is not used when no `/impeccable …` commands are available), the
106
139
  `ux-designer` lens authors `ui-design.md` and `DESIGN.md` directly, and you **note in `ui-design.md`
107
140
  that Impeccable was not used**. Do not run `npx impeccable skills install` as part of this step — tool
108
141
  installation is out of scope for Shape.