@atlashub/smartstack-cli 1.1.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.
Files changed (144) hide show
  1. package/.documentation/agents.html +912 -0
  2. package/.documentation/apex.html +1014 -0
  3. package/.documentation/business-analyse.html +1074 -0
  4. package/.documentation/commands.html +676 -0
  5. package/.documentation/css/styles.css +2030 -0
  6. package/.documentation/efcore.html +2501 -0
  7. package/.documentation/gitflow.html +2053 -0
  8. package/.documentation/hooks.html +409 -0
  9. package/.documentation/index.html +319 -0
  10. package/.documentation/installation.html +458 -0
  11. package/.documentation/js/app.js +794 -0
  12. package/.documentation/test-web.html +509 -0
  13. package/README.md +90 -0
  14. package/config/default-config.json +86 -0
  15. package/config/settings.json +53 -0
  16. package/config/settings.local.example.json +16 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +38198 -0
  19. package/dist/index.js.map +1 -0
  20. package/package.json +86 -0
  21. package/templates/agents/action.md +36 -0
  22. package/templates/agents/efcore/conflicts.md +57 -0
  23. package/templates/agents/efcore/db-deploy.md +51 -0
  24. package/templates/agents/efcore/db-reset.md +59 -0
  25. package/templates/agents/efcore/db-seed.md +56 -0
  26. package/templates/agents/efcore/db-status.md +43 -0
  27. package/templates/agents/efcore/migration.md +85 -0
  28. package/templates/agents/efcore/rebase-snapshot.md +62 -0
  29. package/templates/agents/efcore/scan.md +60 -0
  30. package/templates/agents/efcore/squash.md +67 -0
  31. package/templates/agents/explore-codebase.md +65 -0
  32. package/templates/agents/explore-docs.md +97 -0
  33. package/templates/agents/fix-grammar.md +49 -0
  34. package/templates/agents/gitflow/abort.md +45 -0
  35. package/templates/agents/gitflow/cleanup.md +85 -0
  36. package/templates/agents/gitflow/commit.md +40 -0
  37. package/templates/agents/gitflow/exec.md +48 -0
  38. package/templates/agents/gitflow/finish.md +92 -0
  39. package/templates/agents/gitflow/init.md +139 -0
  40. package/templates/agents/gitflow/merge.md +62 -0
  41. package/templates/agents/gitflow/plan.md +42 -0
  42. package/templates/agents/gitflow/pr.md +78 -0
  43. package/templates/agents/gitflow/review.md +49 -0
  44. package/templates/agents/gitflow/start.md +61 -0
  45. package/templates/agents/gitflow/status.md +32 -0
  46. package/templates/agents/snipper.md +36 -0
  47. package/templates/agents/websearch.md +46 -0
  48. package/templates/commands/_resources/formatting-guide.md +124 -0
  49. package/templates/commands/ai-prompt.md +315 -0
  50. package/templates/commands/apex/1-analyze.md +100 -0
  51. package/templates/commands/apex/2-plan.md +145 -0
  52. package/templates/commands/apex/3-execute.md +171 -0
  53. package/templates/commands/apex/4-examine.md +116 -0
  54. package/templates/commands/apex/5-tasks.md +209 -0
  55. package/templates/commands/apex.md +76 -0
  56. package/templates/commands/application/create.md +362 -0
  57. package/templates/commands/application/templates-backend.md +463 -0
  58. package/templates/commands/application/templates-frontend.md +517 -0
  59. package/templates/commands/application/templates-i18n.md +478 -0
  60. package/templates/commands/application/templates-seed.md +362 -0
  61. package/templates/commands/application.md +303 -0
  62. package/templates/commands/business-analyse/1-init.md +269 -0
  63. package/templates/commands/business-analyse/2-discover.md +520 -0
  64. package/templates/commands/business-analyse/3-analyse.md +408 -0
  65. package/templates/commands/business-analyse/4-specify.md +598 -0
  66. package/templates/commands/business-analyse/5-validate.md +326 -0
  67. package/templates/commands/business-analyse/6-handoff.md +746 -0
  68. package/templates/commands/business-analyse/7-doc-html.md +602 -0
  69. package/templates/commands/business-analyse/bug.md +325 -0
  70. package/templates/commands/business-analyse/change-request.md +368 -0
  71. package/templates/commands/business-analyse/hotfix.md +200 -0
  72. package/templates/commands/business-analyse.md +559 -0
  73. package/templates/commands/controller/create.md +216 -0
  74. package/templates/commands/controller/postman-templates.md +528 -0
  75. package/templates/commands/controller/templates.md +600 -0
  76. package/templates/commands/controller.md +278 -0
  77. package/templates/commands/debug.md +95 -0
  78. package/templates/commands/documentation/module.md +202 -0
  79. package/templates/commands/documentation/templates.md +432 -0
  80. package/templates/commands/documentation.md +190 -0
  81. package/templates/commands/efcore/_env-check.md +153 -0
  82. package/templates/commands/efcore/conflicts.md +269 -0
  83. package/templates/commands/efcore/db-deploy.md +193 -0
  84. package/templates/commands/efcore/db-reset.md +426 -0
  85. package/templates/commands/efcore/db-seed.md +326 -0
  86. package/templates/commands/efcore/db-status.md +214 -0
  87. package/templates/commands/efcore/migration.md +388 -0
  88. package/templates/commands/efcore/rebase-snapshot.md +264 -0
  89. package/templates/commands/efcore/scan.md +202 -0
  90. package/templates/commands/efcore/squash.md +298 -0
  91. package/templates/commands/efcore.md +176 -0
  92. package/templates/commands/epct.md +69 -0
  93. package/templates/commands/explain.md +186 -0
  94. package/templates/commands/explore.md +45 -0
  95. package/templates/commands/feature-full.md +267 -0
  96. package/templates/commands/gitflow/1-init.md +1038 -0
  97. package/templates/commands/gitflow/10-start.md +768 -0
  98. package/templates/commands/gitflow/11-finish.md +323 -0
  99. package/templates/commands/gitflow/12-cleanup.md +276 -0
  100. package/templates/commands/gitflow/13-sync.md +216 -0
  101. package/templates/commands/gitflow/14-rebase.md +251 -0
  102. package/templates/commands/gitflow/2-status.md +167 -0
  103. package/templates/commands/gitflow/3-commit.md +194 -0
  104. package/templates/commands/gitflow/4-plan.md +145 -0
  105. package/templates/commands/gitflow/5-exec.md +147 -0
  106. package/templates/commands/gitflow/6-abort.md +344 -0
  107. package/templates/commands/gitflow/7-pull-request.md +226 -0
  108. package/templates/commands/gitflow/8-review.md +176 -0
  109. package/templates/commands/gitflow/9-merge.md +224 -0
  110. package/templates/commands/gitflow.md +128 -0
  111. package/templates/commands/implement.md +663 -0
  112. package/templates/commands/notification.md +129 -0
  113. package/templates/commands/oneshot.md +57 -0
  114. package/templates/commands/quick-search.md +72 -0
  115. package/templates/commands/review.md +106 -0
  116. package/templates/commands/utils/test-web-config.md +160 -0
  117. package/templates/commands/utils/test-web.md +151 -0
  118. package/templates/commands/workflow.md +193 -0
  119. package/templates/gitflow/config.json +138 -0
  120. package/templates/hooks/ef-migration-check.md +139 -0
  121. package/templates/hooks/hooks.json +15 -0
  122. package/templates/skills/ai-prompt/SKILL.md +778 -0
  123. package/templates/skills/application/SKILL.md +563 -0
  124. package/templates/skills/application/templates-backend.md +450 -0
  125. package/templates/skills/application/templates-frontend.md +531 -0
  126. package/templates/skills/application/templates-i18n.md +520 -0
  127. package/templates/skills/application/templates-seed.md +647 -0
  128. package/templates/skills/business-analyse/SKILL.md +191 -0
  129. package/templates/skills/business-analyse/questionnaire.md +283 -0
  130. package/templates/skills/business-analyse/templates-frd.md +477 -0
  131. package/templates/skills/business-analyse/templates-react.md +580 -0
  132. package/templates/skills/controller/SKILL.md +240 -0
  133. package/templates/skills/controller/postman-templates.md +614 -0
  134. package/templates/skills/controller/templates.md +1468 -0
  135. package/templates/skills/documentation/SKILL.md +133 -0
  136. package/templates/skills/documentation/templates.md +476 -0
  137. package/templates/skills/feature-full/SKILL.md +838 -0
  138. package/templates/skills/notification/SKILL.md +555 -0
  139. package/templates/skills/ui-components/SKILL.md +870 -0
  140. package/templates/skills/workflow/SKILL.md +582 -0
  141. package/templates/test-web/api-health.json +38 -0
  142. package/templates/test-web/minimal.json +19 -0
  143. package/templates/test-web/npm-package.json +46 -0
  144. package/templates/test-web/seo-check.json +54 -0
@@ -0,0 +1,129 @@
1
+ # /notification - Integration Notifications SmartStack
2
+
3
+ > **Synergie Skill/Commande:**
4
+ > - **Skill** (`templates/skills/notification/`) → Invocation automatique par Claude
5
+ > - **Commande** (`/notification`) → Invocation manuelle par l'utilisateur
6
+
7
+ ---
8
+
9
+ ## ARGUMENTS
10
+
11
+ ```
12
+ /notification <action> [options]
13
+ ```
14
+
15
+ | Action | Description |
16
+ |--------|-------------|
17
+ | `add` | Ajouter une notification dans un service existant |
18
+ | `type` | Creer un nouveau type de notification |
19
+ | `hook` | Creer le hook frontend avec SignalR |
20
+
21
+ ---
22
+
23
+ ## WORKFLOW
24
+
25
+ ### /notification add
26
+
27
+ Ajoute l'envoi de notification dans un service existant.
28
+
29
+ **Questions:**
30
+ 1. Quel service modifier ? (liste des services)
31
+ 2. Quelle methode ? (Create, Update, Delete, etc.)
32
+ 3. Qui notifier ? (createur, assigne, role, liste)
33
+ 4. Quel type de notification ? (existant ou nouveau)
34
+
35
+ **Actions:**
36
+ 1. Injecter `INotificationService` si pas present
37
+ 2. Ajouter l'appel `SendNotificationAsync` dans la methode
38
+ 3. Logger l'envoi de notification
39
+
40
+ ### /notification type
41
+
42
+ Cree un nouveau type de notification.
43
+
44
+ **Questions:**
45
+ 1. Nom du type ? (ex: `ProductCreated`)
46
+ 2. Categorie ? (Support, Admin, System, SLA)
47
+ 3. Description ?
48
+
49
+ **Actions:**
50
+ 1. Ajouter dans `NotificationType.cs`
51
+ 2. Creer migration EF Core
52
+
53
+ ### /notification hook
54
+
55
+ Cree le hook frontend pour recevoir les notifications en temps reel.
56
+
57
+ **Questions:**
58
+ 1. Quel module ?
59
+ 2. Quel type d'entite ?
60
+
61
+ **Actions:**
62
+ 1. Creer `use{Module}Notifications.ts`
63
+ 2. Integrer `useSignalR`
64
+ 3. Configurer les callbacks
65
+
66
+ ---
67
+
68
+ ## TEMPLATES
69
+
70
+ ### Template SendNotification
71
+
72
+ ```csharp
73
+ await _notificationService.SendNotificationAsync(
74
+ userId: $USER_ID,
75
+ type: NotificationType.$TYPE,
76
+ title: "$TITLE",
77
+ message: $"$MESSAGE",
78
+ relatedEntityType: "$ENTITY_TYPE",
79
+ relatedEntityId: $ENTITY_ID,
80
+ actionUrl: $"/$MODULE/$ENTITY_ID",
81
+ cancellationToken: ct);
82
+
83
+ _logger.LogInformation(
84
+ "Notification sent to {UserId}: {Type}",
85
+ $USER_ID, NotificationType.$TYPE);
86
+ ```
87
+
88
+ ### Template Hook
89
+
90
+ ```typescript
91
+ // hooks/use{Module}Notifications.ts
92
+ import { useSignalR } from '@/hooks/useSignalR';
93
+ import { useQueryClient } from '@tanstack/react-query';
94
+ import { toast } from 'sonner';
95
+
96
+ export function use{Module}Notifications() {
97
+ const queryClient = useQueryClient();
98
+
99
+ useSignalR({
100
+ onNotification: (notification) => {
101
+ if (notification.relatedEntityType === '{Entity}') {
102
+ queryClient.invalidateQueries(['{module}']);
103
+ toast.info(notification.title, {
104
+ description: notification.message,
105
+ action: notification.actionUrl ? {
106
+ label: 'Voir',
107
+ onClick: () => window.location.href = notification.actionUrl,
108
+ } : undefined,
109
+ });
110
+ }
111
+ },
112
+ });
113
+ }
114
+ ```
115
+
116
+ ---
117
+
118
+ ## FICHIERS CLES
119
+
120
+ | Fichier | Role |
121
+ |---------|------|
122
+ | `Domain/Support/Enums/NotificationType.cs` | Types de notification |
123
+ | `Application/Common/Interfaces/INotificationService.cs` | Interface |
124
+ | `Infrastructure/Services/Support/NotificationService.cs` | Implementation |
125
+ | `web/src/hooks/useSignalR.ts` | Hook SignalR |
126
+
127
+ ---
128
+
129
+ User: $ARGUMENTS
@@ -0,0 +1,57 @@
1
+ ---
2
+ description: Ultra-fast feature implementation - Explore then Code then Test
3
+ argument-hint: <feature-description>
4
+ ---
5
+
6
+ You are a rapid implementation specialist. Implement features at maximum speed using the OneShot methodology.
7
+
8
+ **You need to always ULTRA THINK.**
9
+
10
+ ## Workflow
11
+
12
+ 1. **EXPLORE**: Quick context gathering (5-10 minutes max)
13
+ - Launch **1-2 parallel subagents maximum** to find relevant files
14
+ - Prefer `explore-codebase` agent for codebase search
15
+ - Use `explore-docs` agent ONLY if library-specific knowledge needed
16
+ - Find files to use as **examples** or **edit targets**
17
+ - **CRITICAL**: Be surgical - know exactly what to search for
18
+ - **NO PLANNING PHASE** - gather context and move directly to coding
19
+
20
+ 2. **CODE**: Implement immediately following existing patterns
21
+ - Start coding as soon as you have basic context
22
+ - Follow existing codebase style:
23
+ - Prefer clear variable/method names over comments
24
+ - Match existing patterns and conventions
25
+ - **CRITICAL RULES**:
26
+ - Stay **STRICTLY IN SCOPE** - change only what's needed
27
+ - NO comments unless absolutely necessary
28
+ - NO refactoring beyond the feature requirements
29
+ - Run autoformatting scripts when done
30
+ - Fix reasonable linter warnings as you go
31
+
32
+ 3. **TEST**: Validate with ESLint and TypeScript
33
+ - **First check package.json** for available scripts:
34
+ - Look for: `lint`, `typecheck`, `format`
35
+ - Run: `npm run lint && npm run typecheck` (or equivalent)
36
+ - **CRITICAL**: Code must pass linting and type checks
37
+ - If checks fail: fix errors immediately and re-run
38
+ - **STAY IN SCOPE**: Don't run full test suite unless explicitly requested
39
+ - For major changes only: run relevant tests with `npm test -- <pattern>`
40
+
41
+ ## Execution Rules
42
+
43
+ - **SPEED IS PRIORITY**: Move fast, break nothing
44
+ - **NO PLANNING**: Trust your exploration and code directly
45
+ - **PARALLEL AGENTS**: Max 2 agents during explore phase
46
+ - **MINIMAL TESTS**: Lint + typecheck only (unless user requests more)
47
+ - **STAY FOCUSED**: Implement exactly what's requested, nothing more
48
+ - Never exceed task boundaries
49
+ - If stuck or uncertain: ask user immediately instead of over-exploring
50
+
51
+ ## Priority
52
+
53
+ Speed > Completeness. Ship fast, iterate later.
54
+
55
+ ---
56
+
57
+ User: $ARGUMENTS
@@ -0,0 +1,72 @@
1
+ ---
2
+ description: Lightning-fast search to answer specific questions - optimized for speed
3
+ argument-hint: <question>
4
+ allowed-tools: Grep, Glob, Read
5
+ model: haiku
6
+ ---
7
+
8
+ You are a rapid search specialist. Answer questions at maximum speed using direct search tools.
9
+
10
+ ## Workflow
11
+
12
+ 1. **IDENTIFY**: Parse the question
13
+
14
+ - Extract key search terms
15
+ - Determine target file types or patterns
16
+ - **CRITICAL**: Be surgical - know exactly what to search
17
+
18
+ 2. **SEARCH**: Direct tool usage (NO agents)
19
+
20
+ - Use `Grep` for code content search with specific patterns
21
+ - Use `Glob` for file name/path patterns
22
+ - Launch searches **in parallel** when possible
23
+ - **SPEED RULE**: Max 2-3 search iterations total
24
+
25
+ 3. **READ**: Targeted file reading
26
+
27
+ - `Read` only the most relevant files found
28
+ - **CRITICAL**: Max 3-5 files - be selective
29
+ - Scan for the specific answer needed
30
+
31
+ 4. **ANSWER**: Direct response
32
+ - Immediate answer to the question
33
+ - Include file references with line numbers (`file.ts:42`)
34
+ - **NO**: Long explanations or architectural context
35
+ - **YES**: Concise answer with evidence
36
+
37
+ ## Execution Rules
38
+
39
+ - **SPEED FIRST**: Answer in under 30 seconds
40
+ - **NO AGENTS**: Use direct tools only (Grep, Glob, Read)
41
+ - **PARALLEL SEARCH**: Run independent searches simultaneously
42
+ - **MINIMAL READING**: Read only what's absolutely necessary
43
+ - **NO DEEP ANALYSIS**: Surface-level answers with citations
44
+ - **STOP EARLY**: Once you have the answer, respond immediately
45
+
46
+ ## Search Patterns
47
+
48
+ **Finding implementations**:
49
+
50
+ ```
51
+ Grep: pattern="class FooBar" or "function fooBar"
52
+ ```
53
+
54
+ **Finding configs**:
55
+
56
+ ```
57
+ Glob: pattern="**/config.{js,ts,json}"
58
+ ```
59
+
60
+ **Finding imports/usage**:
61
+
62
+ ```
63
+ Grep: pattern="from ['\"].*moduleName['\"]"
64
+ ```
65
+
66
+ ## Priority
67
+
68
+ Speed > Completeness. Fast answers beat perfect answers.
69
+
70
+ ---
71
+
72
+ User: $ARGUMENTS
@@ -0,0 +1,106 @@
1
+ ---
2
+ description: Quick code review - review current PR changes and output directly
3
+ allowed-tools: Bash(npm :*), Bash(git :*), Bash(gh :*), Read, Grep, Glob
4
+ ---
5
+
6
+ You are a code review specialist. Conduct thorough reviews of current PR changes WITHOUT creating review files.
7
+
8
+ **You need to ULTRA THINK at every step.**
9
+
10
+ ## Workflow
11
+
12
+ 1. **GET PR CONTEXT**: Understand what changed
13
+ - Use `gh pr view` to get PR info (title, description, number)
14
+ - Use `gh pr diff` to see all changes
15
+ - Use `git log origin/main..HEAD` to see commits
16
+ - Identify all modified files
17
+ - **CRITICAL**: Review actual changes, not entire codebase
18
+
19
+ 2. **FEATURE REVIEW**: Verify implementation correctness
20
+ - **Read changed files**: Review implementation in context
21
+ - **Check requirements**: Compare changes against PR description
22
+ - **Verify completeness**: Ensure requested features are implemented
23
+ - **Test coverage**: Check if tests were added for new functionality
24
+ - **CRITICAL**: Flag incomplete implementations
25
+
26
+ 3. **SECURITY REVIEW**: Deep security analysis
27
+ - Search for security vulnerabilities in changed code:
28
+ - **Credentials exposure**: Hardcoded keys, tokens, passwords
29
+ - **Environment variables**: Check `.env` files are gitignored
30
+ - **Sensitive data**: Exposed API keys, secrets, private keys
31
+ - **Input validation**: SQL injection, XSS vulnerabilities
32
+ - **Authentication**: Auth checks are correct
33
+ - **Authorization**: Proper permission checks
34
+ - **Data sanitization**: User input is escaped
35
+ - Use Grep on changed files:
36
+ - `password.*=.*['"]` (hardcoded passwords)
37
+ - `api[_-]?key.*=.*['"]` (hardcoded API keys)
38
+ - `secret.*=.*['"]` (hardcoded secrets)
39
+ - `token.*=.*['"]` (hardcoded tokens)
40
+ - **CRITICAL**: Block if critical security issues found
41
+
42
+ 4. **CODE QUALITY REVIEW**: Style and maintainability
43
+ - Check code quality in changed files:
44
+ - **Naming conventions**: Clear, consistent names
45
+ - **Code duplication**: Repeated logic
46
+ - **Complexity**: Overly complex functions
47
+ - **Comments**: Minimal, useful comments only
48
+ - **Patterns**: Follows existing codebase patterns
49
+ - **Dependencies**: No unnecessary new dependencies
50
+ - Note quality issues
51
+
52
+ 5. **AUTOMATED CHECKS**: Linting and build verification
53
+ - **Check `package.json`** for available scripts
54
+ - Run checks systematically:
55
+ - `npm run lint` - Code linting
56
+ - `npm run typecheck` - TypeScript type checking
57
+ - `npm run test` - Run relevant tests only
58
+ - `npm run build` - Build verification
59
+ - **CRITICAL**: All checks must pass before approval
60
+ - If failures: Document and request fixes
61
+
62
+ 6. **FINAL VERDICT**: Output review summary
63
+ - Compile all findings into summary
64
+ - Rate implementation quality (1-10)
65
+ - **Decision options**:
66
+ - **✅ APPROVED**: All checks pass, ready to merge
67
+ - **🔧 NEEDS FIXES**: Minor issues, list required changes
68
+ - **🚫 BLOCKED**: Critical issues, cannot proceed
69
+ - **NO FILE CREATION**: Output everything directly to chat
70
+
71
+ ## Security Search Patterns
72
+
73
+ ```bash
74
+ # Hardcoded secrets
75
+ gh pr diff | grep -iE "(password|api[_-]?key|secret|token)\s*=\s*['\"]"
76
+
77
+ # Check .env is gitignored
78
+ cat .gitignore | grep -E "^\.env"
79
+
80
+ # Look for .env in PR
81
+ gh pr diff | grep -E "\.env"
82
+ ```
83
+
84
+ ## Code Quality Anti-patterns
85
+
86
+ - Large functions (>50 lines)
87
+ - Deep nesting (>3 levels)
88
+ - Magic numbers/strings
89
+ - Commented-out code
90
+
91
+ ## Execution Rules
92
+
93
+ - **ULTRA THINK** at each review phase
94
+ - **NEVER skip security checks** - they are mandatory
95
+ - **Focus on changed code** - don't review entire codebase
96
+ - **Block on critical issues** - don't proceed if unsafe
97
+ - **Stay objective** - report facts, not opinions
98
+ - **NO FILE CREATION**: Output all results directly to chat
99
+
100
+ ## Priority
101
+
102
+ Security > Correctness > Quality > Speed. Never compromise on security.
103
+
104
+ ---
105
+
106
+ User: $ARGUMENTS
@@ -0,0 +1,160 @@
1
+ ---
2
+ description: Configure test-web targets from external config file
3
+ argument-hint: [path/to/config.json]
4
+ allowed-tools: Read, Write, AskUserQuestion, Glob
5
+ model: haiku
6
+ ---
7
+
8
+ # /test-web:config - Web test configuration
9
+
10
+ Updates web test configuration from external file.
11
+
12
+ > **CLAUDE INSTRUCTION:** The `AskUserQuestion({...})` blocks are instructions to use the `AskUserQuestion` tool **interactively**. You MUST execute the tool with these parameters to get user response BEFORE continuing.
13
+
14
+ ## Usage
15
+
16
+ ```
17
+ /test-web:config # Ask for file interactively
18
+ /test-web:config path/to/config.json # Load file directly
19
+ ```
20
+
21
+ ## Workflow
22
+
23
+ ### 1. Get source file
24
+
25
+ **If argument provided**: Use given path
26
+
27
+ **Otherwise**: Ask user
28
+
29
+ ```
30
+ AskUserQuestion:
31
+ question: "Which configuration file do you want to load?"
32
+ header: "Config file"
33
+ options:
34
+ - label: "Search in project"
35
+ description: "Glob to find *test-web*.json files"
36
+ - label: "Enter path"
37
+ description: "Manually specify file path"
38
+ ```
39
+
40
+ ### 2. Validate file
41
+
42
+ 1. Check file exists
43
+ 2. Read JSON content
44
+ 3. Validate structure (targets, settings)
45
+
46
+ **Expected structure**:
47
+
48
+ ```json
49
+ {
50
+ "targets": [
51
+ {
52
+ "name": "string (required)",
53
+ "url": "string (required for fetch)",
54
+ "query": "string (required for search)",
55
+ "type": "fetch|search (required)",
56
+ "expects": {
57
+ "status": "number (optional)",
58
+ "contains": ["strings"] "(optional)",
59
+ "hasResults": "boolean (optional)"
60
+ }
61
+ }
62
+ ],
63
+ "chrome": {
64
+ "enabled": "boolean",
65
+ "targets": [...]
66
+ },
67
+ "settings": {
68
+ "timeout": "number",
69
+ "retries": "number",
70
+ "reportPath": "string"
71
+ }
72
+ }
73
+ ```
74
+
75
+ ### 3. Merge or replace
76
+
77
+ ```
78
+ AskUserQuestion:
79
+ question: "How to apply new configuration?"
80
+ header: "Mode"
81
+ options:
82
+ - label: "Replace"
83
+ description: "Completely replace existing config"
84
+ - label: "Merge (add)"
85
+ description: "Add new targets to existing"
86
+ ```
87
+
88
+ ### 4. Apply
89
+
90
+ 1. Read existing [.claude/test-web/config.json](.claude/test-web/config.json)
91
+ 2. Apply chosen mode (replace or merge)
92
+ 3. Write result
93
+
94
+ ### 5. Confirm
95
+
96
+ ```
97
+ CONFIG UPDATED
98
+ ────────────────────────────────
99
+ Source: {source_file_path}
100
+ Mode: {replace|merge}
101
+ Targets: {total_count}
102
+ ────────────────────────────────
103
+
104
+ Test now:
105
+ /test-web --quick
106
+ ```
107
+
108
+ ## Example source files
109
+
110
+ ### Minimal
111
+
112
+ ```json
113
+ {
114
+ "targets": [
115
+ {
116
+ "name": "My site",
117
+ "url": "https://example.com",
118
+ "type": "fetch",
119
+ "expects": { "status": 200 }
120
+ }
121
+ ]
122
+ }
123
+ ```
124
+
125
+ ### Complete
126
+
127
+ ```json
128
+ {
129
+ "targets": [
130
+ {
131
+ "name": "API Health",
132
+ "url": "https://api.example.com/health",
133
+ "type": "fetch",
134
+ "expects": {
135
+ "status": 200,
136
+ "contains": ["healthy", "ok"]
137
+ }
138
+ },
139
+ {
140
+ "name": "SEO Check",
141
+ "query": "site:example.com",
142
+ "type": "search",
143
+ "expects": { "hasResults": true }
144
+ }
145
+ ],
146
+ "settings": {
147
+ "timeout": 60000,
148
+ "retries": 3
149
+ }
150
+ }
151
+ ```
152
+
153
+ ## Available templates
154
+
155
+ Configuration templates are available in:
156
+ [templates/test-web/](templates/test-web/)
157
+
158
+ ---
159
+
160
+ User: $ARGUMENTS
@@ -0,0 +1,151 @@
1
+ ---
2
+ description: Test web accessibility and content validation
3
+ argument-hint: --quick|--chrome|--report|<url>
4
+ allowed-tools: WebFetch, WebSearch, Read, Write, Bash
5
+ model: sonnet
6
+ ---
7
+
8
+ # /test-web - Web testing agent
9
+
10
+ Tests accessibility and content of project web resources.
11
+
12
+ ## Execution Modes
13
+
14
+ | Mode | Flag | Description |
15
+ |------|------|-------------|
16
+ | Quick | `--quick` | WebFetch only (HTTP 200 + text content) |
17
+ | Chrome | `--chrome` | E2E tests with Claude for Chrome (requires `claude --chrome`) |
18
+ | Report | `--report` | Generates detailed report in reports/ |
19
+ | Full | (default) | Quick + Chrome if available |
20
+
21
+ ## Configuration
22
+
23
+ Reads configuration from: [.claude/test-web/config.json](.claude/test-web/config.json)
24
+
25
+ ## Workflow
26
+
27
+ ### Quick Mode (--quick)
28
+
29
+ 1. **Load configuration**
30
+ ```bash
31
+ cat .claude/test-web/config.json
32
+ ```
33
+
34
+ 2. **For each target type "fetch"**:
35
+ - `WebFetch(url, "Verify that the page is accessible and contains: {expects.contains}")`
36
+ - Check HTTP status (200 expected)
37
+ - Verify expected content presence
38
+
39
+ 3. **For each target type "search"**:
40
+ - `WebSearch(query)`
41
+ - Verify results exist
42
+
43
+ 4. **Report**: Display results in console
44
+
45
+ ### Chrome Mode (--chrome)
46
+
47
+ **Prerequisites**:
48
+ - "Claude for Chrome" extension installed
49
+ - Max/Pro/Team/Enterprise plan
50
+ - Claude Code launched with: `claude --chrome`
51
+
52
+ 1. **Verify Chrome mode is active**
53
+ 2. **For each chrome target**:
54
+ - Navigate to URL
55
+ - Execute actions (click, verify, etc.)
56
+ - Capture screenshots if requested
57
+
58
+ 3. **Report**: Generate report with captures
59
+
60
+ ### Report Mode (--report)
61
+
62
+ Generates markdown file in [.claude/test-web/reports/](.claude/test-web/reports/):
63
+
64
+ ```markdown
65
+ # Test Web Report - YYYY-MM-DD HH:mm
66
+
67
+ ## Summary
68
+ | Target | Status | Time |
69
+ |--------|--------|------|
70
+ | ... | PASS/FAIL | Xms |
71
+
72
+ ## Details
73
+ ### Target Name
74
+ - URL: ...
75
+ - Expected: ...
76
+ - Result: ...
77
+ - Screenshot: (if chrome mode)
78
+ ```
79
+
80
+ ## Examples
81
+
82
+ ### Quick test of all configured URLs
83
+
84
+ ```
85
+ /test-web --quick
86
+ ```
87
+
88
+ ### E2E test with browser
89
+
90
+ ```bash
91
+ # First launch Claude Code with Chrome
92
+ claude --chrome
93
+
94
+ # Then execute tests
95
+ /test-web --chrome
96
+ ```
97
+
98
+ ### Test specific URL
99
+
100
+ ```
101
+ /test-web https://github.com/SIMON-Atlashub/atlashub-claudecode-cli
102
+ ```
103
+
104
+ ### Generate detailed report
105
+
106
+ ```
107
+ /test-web --report
108
+ ```
109
+
110
+ ## Output Format
111
+
112
+ ### Success
113
+
114
+ ```
115
+ TEST WEB RESULTS
116
+ ────────────────────────────────
117
+ ✅ GitHub Repository 200 OK "README" found
118
+ ✅ npm Package 200 OK "claude-tools" found
119
+ ✅ Google Indexation Results Found in search
120
+
121
+ Status: 3/3 PASS
122
+ ────────────────────────────────
123
+ ```
124
+
125
+ ### Failure
126
+
127
+ ```
128
+ TEST WEB RESULTS
129
+ ────────────────────────────────
130
+ ✅ GitHub Repository 200 OK "README" found
131
+ ❌ npm Package 404 Package not found
132
+ ⚠️ Google Indexation Results No relevant results
133
+
134
+ Status: 1/3 PASS, 1 FAIL, 1 WARNING
135
+ ────────────────────────────────
136
+ ```
137
+
138
+ ## BA/EPCT Integration
139
+
140
+ This command can be called automatically in:
141
+ - Phase T (Test) of BA workflow: `/ba:5-verify`
142
+ - Phase T of EPCT workflow
143
+
144
+ ## Sources
145
+
146
+ - [Anthropic - Claude for Chrome](https://www.anthropic.com/news/claude-for-chrome)
147
+ - [Claude Help Center](https://support.claude.com/en/articles/12012173-getting-started-with-claude-in-chrome)
148
+
149
+ ---
150
+
151
+ User: $ARGUMENTS