yadflow 2.5.0 → 2.7.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/CHANGELOG.md +8 -2
- package/README.md +65 -22
- package/bin/yad.mjs +27 -1
- package/cli/docs.mjs +298 -0
- package/cli/doctor.mjs +1 -0
- package/cli/manifest.mjs +23 -2
- package/cli/ship.mjs +37 -0
- package/docs/index.html +44 -13
- package/package.json +2 -2
- package/skills/sdlc/config.yaml +26 -2
- package/skills/sdlc/install.sh +1 -1
- package/skills/sdlc/module-help.csv +11 -4
- package/skills/yad-checks/references/check-gates.md +58 -2
- package/skills/yad-checks/templates/checks/commit-message.sh +82 -0
- package/skills/yad-checks/templates/github/yad-checks.yml +27 -0
- package/skills/yad-checks/templates/github/yad-hub-checks.yml +36 -0
- package/skills/yad-checks/templates/gitlab/yad-checks.gitlab-ci.yml +20 -0
- package/skills/yad-checks/templates/gitlab/yad-hub-checks.gitlab-ci.yml +39 -0
- package/skills/yad-commit/SKILL.md +66 -0
- package/skills/yad-connect-docs/SKILL.md +132 -0
- package/skills/yad-connect-docs/references/docs-registry.md +74 -0
- package/skills/yad-docs/SKILL.md +159 -0
- package/skills/yad-docs/references/data-mapping.md +75 -0
- package/skills/yad-docs/references/theme-map.md +69 -0
- package/skills/yad-docs/templates/app/README.md +31 -0
- package/skills/yad-docs/templates/app/eslint.config.js +23 -0
- package/skills/yad-docs/templates/app/index.html +17 -0
- package/skills/yad-docs/templates/app/package-lock.json +4030 -0
- package/skills/yad-docs/templates/app/package.json +35 -0
- package/skills/yad-docs/templates/app/public/favicon.svg +28 -0
- package/skills/yad-docs/templates/app/public/logo.svg +39 -0
- package/skills/yad-docs/templates/app/public/vite.svg +1 -0
- package/skills/yad-docs/templates/app/src/App.tsx +98 -0
- package/skills/yad-docs/templates/app/src/components/Auth/LoginPage.tsx +101 -0
- package/skills/yad-docs/templates/app/src/components/Canvas/AnimatedMessage.tsx +101 -0
- package/skills/yad-docs/templates/app/src/components/Canvas/ConnectionLine.tsx +90 -0
- package/skills/yad-docs/templates/app/src/components/Canvas/FlowCanvas.tsx +216 -0
- package/skills/yad-docs/templates/app/src/components/Canvas/SystemComponent.tsx +153 -0
- package/skills/yad-docs/templates/app/src/components/Controls/PlaybackBar.tsx +284 -0
- package/skills/yad-docs/templates/app/src/components/Controls/StepDetail.tsx +167 -0
- package/skills/yad-docs/templates/app/src/components/DetailPanel/HandlerLogicSnippet.tsx +41 -0
- package/skills/yad-docs/templates/app/src/components/DetailPanel/RequestPayloadPreview.tsx +46 -0
- package/skills/yad-docs/templates/app/src/components/DetailPanel/RightPanel.tsx +88 -0
- package/skills/yad-docs/templates/app/src/components/DetailPanel/StatusCard.tsx +76 -0
- package/skills/yad-docs/templates/app/src/components/DetailPanel/TriggerEventCard.tsx +45 -0
- package/skills/yad-docs/templates/app/src/components/DocLayout/DocPageShell.tsx +80 -0
- package/skills/yad-docs/templates/app/src/components/DocLayout/DocSectionCard.tsx +55 -0
- package/skills/yad-docs/templates/app/src/components/DocLayout/DocTableOfContents.tsx +79 -0
- package/skills/yad-docs/templates/app/src/components/DocLayout/RoleCard.tsx +67 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/ApiReferenceSection.tsx +108 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/CancelabilitySection.tsx +73 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/CriticalRunbookSection.tsx +177 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/DataMigrationSection.tsx +102 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/DbSchemaSection.tsx +98 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/DeploymentGuideSection.tsx +104 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/DriverIntegrationSection.tsx +127 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/ExecutiveSummarySection.tsx +69 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/FlowOverviewSection.tsx +73 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/FlowPathsChecklistSection.tsx +96 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/MiddlewareChainSection.tsx +107 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/MonitoringAlertingSection.tsx +106 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/NotificationLocalizationSection.tsx +102 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/PMRoadmapSection.tsx +133 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/PerformanceTestingSection.tsx +91 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/RiderIntegrationSection.tsx +99 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/SecuritySection.tsx +74 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/StatusMachineSection.tsx +90 -0
- package/skills/yad-docs/templates/app/src/components/DocSections/TestPlanSection.tsx +163 -0
- package/skills/yad-docs/templates/app/src/components/Logs/SystemLogsTerminal.tsx +126 -0
- package/skills/yad-docs/templates/app/src/components/Navigation/TopNavBar.tsx +90 -0
- package/skills/yad-docs/templates/app/src/components/Reference/BullMQJobsList.tsx +60 -0
- package/skills/yad-docs/templates/app/src/components/Reference/DecisionTreeView.tsx +49 -0
- package/skills/yad-docs/templates/app/src/components/Reference/DeeplinkActionsChips.tsx +69 -0
- package/skills/yad-docs/templates/app/src/components/Reference/DriverUIStatesTable.tsx +61 -0
- package/skills/yad-docs/templates/app/src/components/Reference/FeatureFlagMatrix.tsx +73 -0
- package/skills/yad-docs/templates/app/src/components/Reference/RiderUIStatesTable.tsx +61 -0
- package/skills/yad-docs/templates/app/src/components/Reference/RulesLegendPanel.tsx +217 -0
- package/skills/yad-docs/templates/app/src/components/Reference/StakeholderToggle.tsx +41 -0
- package/skills/yad-docs/templates/app/src/components/Reference/TroubleshootingSection.tsx +93 -0
- package/skills/yad-docs/templates/app/src/components/Sidebar/PathSelector.tsx +148 -0
- package/skills/yad-docs/templates/app/src/components/Sidebar/SidebarFooter.tsx +40 -0
- package/skills/yad-docs/templates/app/src/components/Sidebar/StepList.tsx +234 -0
- package/skills/yad-docs/templates/app/src/components/shared/Badge.tsx +28 -0
- package/skills/yad-docs/templates/app/src/components/shared/CommandPalette.tsx +213 -0
- package/skills/yad-docs/templates/app/src/components/shared/Icon.tsx +21 -0
- package/skills/yad-docs/templates/app/src/components/shared/Tooltip.tsx +42 -0
- package/skills/yad-docs/templates/app/src/data/components.ts +74 -0
- package/skills/yad-docs/templates/app/src/data/docSections.ts +231 -0
- package/skills/yad-docs/templates/app/src/data/paths.ts +2319 -0
- package/skills/yad-docs/templates/app/src/data/referenceData.ts +392 -0
- package/skills/yad-docs/templates/app/src/data/roles.ts +145 -0
- package/skills/yad-docs/templates/app/src/data/types.ts +79 -0
- package/skills/yad-docs/templates/app/src/hooks/useAnimationQueue.ts +41 -0
- package/skills/yad-docs/templates/app/src/hooks/usePlayback.ts +100 -0
- package/skills/yad-docs/templates/app/src/hooks/useStakeholderFilter.ts +10 -0
- package/skills/yad-docs/templates/app/src/index.css +121 -0
- package/skills/yad-docs/templates/app/src/main.tsx +13 -0
- package/skills/yad-docs/templates/app/src/pages/RoleSelectPage.tsx +34 -0
- package/skills/yad-docs/templates/app/src/pages/StakeholderDocPage.tsx +98 -0
- package/skills/yad-docs/templates/app/src/pages/SubPathDetailPage.tsx +282 -0
- package/skills/yad-docs/templates/app/src/store/useAuthStore.ts +42 -0
- package/skills/yad-docs/templates/app/src/store/useFlowStore.ts +197 -0
- package/skills/yad-docs/templates/app/src/utils/iconMap.ts +46 -0
- package/skills/yad-docs/templates/app/tsconfig.app.json +28 -0
- package/skills/yad-docs/templates/app/tsconfig.json +7 -0
- package/skills/yad-docs/templates/app/tsconfig.node.json +26 -0
- package/skills/yad-docs/templates/app/vite.config.ts +10 -0
- package/skills/yad-docs-overview/SKILL.md +129 -0
- package/skills/yad-docs-overview/references/pipeline-model.md +102 -0
- package/skills/yad-docs-sync/SKILL.md +99 -0
- package/skills/yad-docs-sync/references/staleness.md +81 -0
- package/skills/yad-engineer-review/SKILL.md +86 -0
- package/skills/{yad-ship → yad-engineer-review}/references/ship-and-record.md +2 -2
- package/skills/{yad-ship → yad-engineer-review}/templates/.coderabbit.yaml +1 -1
- package/skills/yad-epic/references/state-schema.md +1 -1
- package/skills/yad-implement/SKILL.md +1 -1
- package/skills/yad-implement/references/implement-conventions.md +1 -1
- package/skills/yad-open-pr/SKILL.md +72 -0
- package/skills/yad-pr-template/templates/checks/pr-template.sh +62 -0
- package/skills/yad-pr-template/templates/checks/pr-title.sh +51 -0
- package/skills/yad-run/SKILL.md +2 -2
- package/skills/yad-run/references/run-loop.md +4 -4
- package/skills/yad-ship/SKILL.md +44 -66
- package/skills/yad-spec/SKILL.md +1 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Theme map — DESIGN tokens → `index.css` `:root`
|
|
2
|
+
|
|
3
|
+
`yad-docs` themes only the **`:root` block** of the copied shell's `src/index.css` (and nothing else —
|
|
4
|
+
fonts, utilities, and the rest of the file stay verbatim). The shell's design system is a dark
|
|
5
|
+
CSS-custom-property theme; theming = overwriting the `:root` custom properties from the epic's design
|
|
6
|
+
tokens, deterministically. Fonts are always **Space Grotesk** (display / headings) + **Noto Sans**
|
|
7
|
+
(body), and the `.glass-panel` / `.flow-grid` / `.code-block` utilities and Material Symbols icon names
|
|
8
|
+
are untouched.
|
|
9
|
+
|
|
10
|
+
## 4-tier priority (first hit wins, per property)
|
|
11
|
+
|
|
12
|
+
For each custom property, resolve its value in this order and **stamp `theme:` in `docs-build.json`** to
|
|
13
|
+
the tier that supplied the palette:
|
|
14
|
+
|
|
15
|
+
1. **`DESIGN.md`** (`theme: DESIGN.md`) — the epic's hand/Impeccable-authored design-system tokens. The
|
|
16
|
+
richest source; use it when present.
|
|
17
|
+
2. **`design.json` / `design-links.json` palette** (`theme: design.json`) — the connected design tool's
|
|
18
|
+
palette (e.g. a Figma file's color styles read back).
|
|
19
|
+
3. **code-map tokens** (`theme: design.json`-tier fallback, noted) — brand/theme tokens captured in
|
|
20
|
+
`.sdlc/code-context/<repo>/code-map.md` for repos in `epic.repos`, so the site matches the built UI.
|
|
21
|
+
4. **default theme** (`theme: default`) — keep the shell's reference `:root` verbatim (the dark theme
|
|
22
|
+
below). Stamp `theme: default` so the degrade is visible.
|
|
23
|
+
|
|
24
|
+
A single missing token falls through to the next tier for **that token only** (the others can still come
|
|
25
|
+
from a higher tier); only a wholesale absence stamps `theme: default`.
|
|
26
|
+
|
|
27
|
+
## Token → custom-property mapping
|
|
28
|
+
|
|
29
|
+
Map design tokens onto these properties (the exact set the shell defines). Names match the reference
|
|
30
|
+
`index.css` — do not rename or add properties.
|
|
31
|
+
|
|
32
|
+
| Design token (role) | CSS custom property | Default (reference) |
|
|
33
|
+
|---------------------|---------------------|---------------------|
|
|
34
|
+
| page background | `--color-bg-primary` | `#141118` |
|
|
35
|
+
| raised surface | `--color-bg-secondary` | `#1e1a25` |
|
|
36
|
+
| higher surface | `--color-bg-tertiary` | `#2f2938` |
|
|
37
|
+
| brand wash | `--color-bg-brand-soft` | `#1a0244` |
|
|
38
|
+
| accent wash | `--color-bg-accent-soft` | `#25060e` |
|
|
39
|
+
| panel surface | `--color-surface-dark` | `#1e1a25` |
|
|
40
|
+
| highlighted surface | `--color-surface-highlight` | `#2f2938` |
|
|
41
|
+
| darkest surface (code blocks) | `--color-surface-darker` | `#0f0e13` |
|
|
42
|
+
| primary text | `--color-text-primary` | `#ffffff` |
|
|
43
|
+
| secondary text | `--color-text-secondary` | `#a8a4b2` |
|
|
44
|
+
| muted text | `--color-text-muted` | `#767284` |
|
|
45
|
+
| **primary brand** | `--color-primary` | `#6116da` |
|
|
46
|
+
| primary hover | `--color-primary-hover` | `#7a2ce0` |
|
|
47
|
+
| primary soft | `--color-primary-soft` | `#35087c` |
|
|
48
|
+
| **accent** | `--color-accent` | `#ff6490` |
|
|
49
|
+
| accent hover | `--color-accent-hover` | `#fb2576` |
|
|
50
|
+
| accent soft | `--color-accent-soft` | `#4f0520` |
|
|
51
|
+
| light border | `--color-border-light` | `#453c53` |
|
|
52
|
+
| default border | `--color-border-default` | `#342e40` |
|
|
53
|
+
| strong border | `--color-border-strong` | `#141118` |
|
|
54
|
+
|
|
55
|
+
### Derivation rules (deterministic)
|
|
56
|
+
- The two anchors are **`--color-primary`** and **`--color-accent`**; everything else derives from them
|
|
57
|
+
and the background ramp when a source supplies only a brand + accent.
|
|
58
|
+
- `*-hover` = the anchor lightened one step; `*-soft` = the anchor darkened/desaturated for washes.
|
|
59
|
+
Apply a **fixed** lightness delta (no randomness) so regeneration is byte-identical.
|
|
60
|
+
- The background ramp (`bg-primary` → `bg-tertiary` → `surface-*`) is darkest→lighter; preserve that
|
|
61
|
+
ordering when mapping a source's neutrals.
|
|
62
|
+
- Always emit the **full property set** in the **fixed order above** (matching the reference file), with
|
|
63
|
+
no trailing timestamp/comment — the theme contributes to the `artifactHash`, so determinism matters.
|
|
64
|
+
|
|
65
|
+
## Fonts + utilities (never themed)
|
|
66
|
+
Headings/`.font-display` → **Space Grotesk**; body/`.font-body` → **Noto Sans**. The `.glass-panel`,
|
|
67
|
+
`.flow-grid`, `.code-block`, scrollbar, and `.logs-scrollbar` utilities are copied verbatim from the
|
|
68
|
+
shell. Icons are **Material Symbols** names (e.g. `phone_iphone`, `terminal`, `bar_chart`) carried in
|
|
69
|
+
the data files, not the theme.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# yadflow docs site (template)
|
|
2
|
+
|
|
3
|
+
This is the **vendored shell** that the `yad-docs` / `yad-docs-overview` skills copy to generate an
|
|
4
|
+
interactive documentation site (an animated flow canvas + role-based stakeholder doc pages). It is a
|
|
5
|
+
React 19 + Vite 7 + Tailwind v4 + framer-motion + zustand + react-router app.
|
|
6
|
+
|
|
7
|
+
**You normally don't edit this template directly.** The skills copy it (to
|
|
8
|
+
`epics/EP-<slug>/docs-site/` for a feature, or `docs/sdlc-site/` for the SDLC overview) and then
|
|
9
|
+
**generate the content** into `src/data/*.ts` + the `DocSections/*` components, theme `src/index.css`
|
|
10
|
+
from the connected design system, and substitute the Vite `base` (the `__BASE_PATH__` token) from
|
|
11
|
+
`.sdlc/docs.json`.
|
|
12
|
+
|
|
13
|
+
## What is generated vs. fixed
|
|
14
|
+
|
|
15
|
+
- **Generated per site:** `src/data/{paths,components,roles,docSections,referenceData}.ts`, the
|
|
16
|
+
`:root` theme block of `src/index.css`, the referenced `DocSections/*` content, and the `base` path.
|
|
17
|
+
- **Fixed shell (copied verbatim):** `src/App.tsx`, `src/main.tsx`, the `components/` /
|
|
18
|
+
`hooks/` / `store/` infrastructure, and `src/data/types.ts` (the contracts the generated data
|
|
19
|
+
satisfies).
|
|
20
|
+
|
|
21
|
+
## Local commands
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm ci # or: npm install
|
|
25
|
+
npm run dev # local preview
|
|
26
|
+
npm run build # tsc -b && vite build → dist/
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Build + deploy are normally driven by the CLI: `yad docs build|deploy|sync`. The login gate
|
|
30
|
+
(`DOCS_REQUIRE_LOGIN` in `src/store/useAuthStore.ts`) is **off by default** — it is presentational
|
|
31
|
+
only, never a security control; private docs rely on the repo / Pages access control.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import js from '@eslint/js'
|
|
2
|
+
import globals from 'globals'
|
|
3
|
+
import reactHooks from 'eslint-plugin-react-hooks'
|
|
4
|
+
import reactRefresh from 'eslint-plugin-react-refresh'
|
|
5
|
+
import tseslint from 'typescript-eslint'
|
|
6
|
+
import { defineConfig, globalIgnores } from 'eslint/config'
|
|
7
|
+
|
|
8
|
+
export default defineConfig([
|
|
9
|
+
globalIgnores(['dist']),
|
|
10
|
+
{
|
|
11
|
+
files: ['**/*.{ts,tsx}'],
|
|
12
|
+
extends: [
|
|
13
|
+
js.configs.recommended,
|
|
14
|
+
tseslint.configs.recommended,
|
|
15
|
+
reactHooks.configs.flat.recommended,
|
|
16
|
+
reactRefresh.configs.vite,
|
|
17
|
+
],
|
|
18
|
+
languageOptions: {
|
|
19
|
+
ecmaVersion: 2020,
|
|
20
|
+
globals: globals.browser,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
])
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>Booking Flow Visualizer</title>
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Noto+Sans:wght@300;400;500;600;700&display=swap" rel="stylesheet" />
|
|
11
|
+
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" rel="stylesheet" />
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<div id="root"></div>
|
|
15
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|