Design and generate the in-app help system: havainnepolku (visual guidance path) components, help mode (apua-tila), contextual help content, and searchable help index. Use when (1) creating or updating help pages, (2) building the havainnepolku breadcrumb-path component, (3) implementing help mode overlay, (4) generating help search index, (5) adding contextual tips to pages, (6) brainstorming which guidance paths to create. Triggers: "help system", "apua", "havainnepolku", "guidance path", "...
Scanned 2/10/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: help-system-architect
description: >
Design and generate the in-app help system: havainnepolku (visual guidance path) components,
help mode (apua-tila), contextual help content, and searchable help index.
Use when (1) creating or updating help pages, (2) building the havainnepolku breadcrumb-path
component, (3) implementing help mode overlay, (4) generating help search index,
(5) adding contextual tips to pages, (6) brainstorming which guidance paths to create.
Triggers: "help system", "apua", "havainnepolku", "guidance path", "help mode",
"apua-tila", "contextual help", "help content", "help search", "user guidance",
"breadcrumb path", "ohje", "opaste".
---
# Help System Architect
Design and generate the in-app help system for Raamattu Nyt.
## Authority
- Consumes `Docs/ai/core-user-model.json` as the **single source of truth** for tasks and paths
- NEVER redefines tasks or paths — only explains, guides, and contextualizes them
- The `core-ux-detective` skill owns task/path definitions; this skill owns help presentation
## Architecture
### Havainnepolku (Visual Guidance Path)
A horizontal strip at the top of the page showing the full user journey as linked blocks:
```
┌──────────┐ ┌────────────────┐ ┌───────────┐ ┌────────────────┐ ┌─────────────┐
│ MUISTIO │ → │ VALITSE JAKEET │ → │ LUO REELS │ → │ EDITOI REELSIÄ │ → │ JULKAISE │
│ │ │ │ │ │ │ ◄ olet tässä │ │ │
│ │ │ │ │ │ │ Muokkaa tyyliä │ │ │
└──────────┘ └────────────────┘ └────────────┘ └────────────────┘ └─────────────┘
```
Each block:
- Is a clickable link to the page where that step happens
- Shows the step label (Finnish, from `core_tasks[].label`)
- When the user is on that step's page: highlighted + short contextual tip below
### Shared Package: `packages/help-guide/`
Havainnepolku and help mode as a shared monorepo package:
```
packages/help-guide/
package.json # @raamattu-nyt/help-guide
tsconfig.json
src/
index.ts
types.ts # HelpPath, HelpStep, HelpContent, HelpSearchEntry
GuidancePath.tsx # Havainnepolku component
HelpModeProvider.tsx # Context provider for help mode state
useHelpMode.ts # Hook: isHelpMode, toggleHelp, currentPath
HelpTooltip.tsx # Contextual tip bubble (non-blocking, dismissible)
HelpSearchIndex.ts # Search index builder from core-user-model
```
### Help Mode (Apua-tila)
Toggle-based overlay that reveals:
1. Havainnepolku bar at page top
2. Contextual tooltips on interactive elements
3. Non-blocking, dismissible — never prevents user from working
4. Persists in session storage (survives page navigation, clears on tab close)
### Help Search ("?")
Maps search queries to `core_tasks` and `user_paths`:
- Finnish keyword index built from task labels, path labels, and help content
- Never invents new terminology — only uses canonical labels from `core-user-model.json`
## Workflow
### 1. Read the User Model
```
Read Docs/ai/core-user-model.json
```
If file doesn't exist, inform the user to run `core-ux-detective` first.
### 2. Choose What to Generate
Determine scope from user request:
- **Full system**: All components + content + search index
- **Havainnepolku only**: Just the GuidancePath component + path data
- **Help content**: Help pages for specific tasks/paths
- **Search index**: Keyword-to-task/path mapping
### 3. Brainstorm Paths (Optional)
When the user needs help deciding which guidance paths to create:
- Invoke the `brainstorming` skill
- Provide it with the `user_paths` from `core-user-model.json`
- Focus questions on: which paths are most confusing, which need step-by-step guidance
### 4. Generate Components
See [references/component-specs.md](references/component-specs.md) for detailed component specifications.
### 5. Generate Help Content
For each task/path, generate help content in Finnish:
```json
{
"task_id": "create_reel",
"title": "Reelsin luominen",
"what": "Luo kaunis kuvajae Raamatun jakeesta.",
"when": "Kun haluat jakaa jakeen someen kuvana.",
"steps": [
"Valitse jae Raamatusta",
"Paina 'Luo reels' -painiketta",
"Valitse malli ja tyyli",
"Esikatsele ja julkaise"
]
}
```
Rules:
- Finnish language, calm and supportive tone
- Non-technical — describe what the user sees, not implementation details
- Short sentences, max 15 words per step
- Reference canonical `core_tasks[].label` for consistency
### 6. Generate Search Index
Map Finnish keywords to task/path IDs:
```json
{
"entries": [
{ "keywords": ["reels", "kuva", "jae", "julkaise"], "type": "path", "id": "create_and_share_reel" },
{ "keywords": ["haku", "etsi", "jae"], "type": "task", "id": "search_verses" }
]
}
```
Never add keywords that don't appear in the canonical model or help content.
### 7. Output Files
| File | Purpose |
|------|---------|
| `packages/help-guide/src/*.tsx` | Shared components |
| `apps/.../data/help-content.json` | Help content for all tasks/paths |
| `apps/.../data/help-search-index.json` | Search keyword index |
| `apps/.../components/help/HelpModeToggle.tsx` | App-level help button |
| `apps/.../components/help/HelpPage.tsx` | Full help page (optional) |
## Rules
- All user-facing text in Finnish
- Calm, supportive, non-technical tone
- Never redefine tasks or paths from `core-user-model.json`
- Havainnepolku steps must exactly match canonical path steps
- Help mode is non-blocking — user can always dismiss
- Search only uses canonical terminology
- Components go in `packages/help-guide/`, app wiring in `apps/raamattu-nyt/`
No comments yet. Be the first to comment!