specweave 0.28.17 → 0.28.20
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/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +16 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +63 -3
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +12 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js +37 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +6 -11
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.js +6 -11
- package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts +21 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +445 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts +10 -0
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-status-sync.js +40 -2
- package/dist/plugins/specweave-github/lib/github-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts +94 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js +369 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +12 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +57 -5
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +5 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js +12 -4
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
- package/dist/src/cli/commands/import-external.d.ts.map +1 -1
- package/dist/src/cli/commands/import-external.js +12 -7
- package/dist/src/cli/commands/import-external.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +308 -36
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +115 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +590 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts +65 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js +278 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts +64 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js +251 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js.map +1 -0
- package/dist/src/config/types.d.ts +6 -6
- package/dist/src/core/ac-test-validator-cli.js +4 -1
- package/dist/src/core/ac-test-validator-cli.js.map +1 -1
- package/dist/src/core/ac-test-validator.d.ts.map +1 -1
- package/dist/src/core/ac-test-validator.js +4 -1
- package/dist/src/core/ac-test-validator.js.map +1 -1
- package/dist/src/core/background/index.d.ts +11 -0
- package/dist/src/core/background/index.d.ts.map +1 -0
- package/dist/src/core/background/index.js +11 -0
- package/dist/src/core/background/index.js.map +1 -0
- package/dist/src/core/background/job-manager.d.ts +65 -0
- package/dist/src/core/background/job-manager.d.ts.map +1 -0
- package/dist/src/core/background/job-manager.js +192 -0
- package/dist/src/core/background/job-manager.js.map +1 -0
- package/dist/src/core/background/types.d.ts +59 -0
- package/dist/src/core/background/types.d.ts.map +1 -0
- package/dist/src/core/background/types.js +8 -0
- package/dist/src/core/background/types.js.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts +25 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js +614 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts +40 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.js +252 -0
- package/dist/src/core/repo-structure/repo-initializer.js.map +1 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts +3 -37
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.js +23 -803
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +75 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/core/types/spec-metadata.d.ts +2 -0
- package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.d.ts +137 -5
- package/dist/src/core/types/sync-profile.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.js +63 -0
- package/dist/src/core/types/sync-profile.js.map +1 -1
- package/dist/src/importers/external-importer.d.ts +25 -0
- package/dist/src/importers/external-importer.d.ts.map +1 -1
- package/dist/src/importers/github-importer.d.ts.map +1 -1
- package/dist/src/importers/github-importer.js +5 -3
- package/dist/src/importers/github-importer.js.map +1 -1
- package/dist/src/importers/import-coordinator.d.ts +20 -0
- package/dist/src/importers/import-coordinator.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts +51 -0
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +39 -12
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/init/architecture/types.d.ts +2 -2
- package/dist/src/init/compliance/types.d.ts +1 -1
- package/dist/src/init/repo/types.d.ts +1 -1
- package/dist/src/living-docs/fs-id-allocator.d.ts +72 -3
- package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +142 -16
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/locales/de/cli.json +14 -0
- package/dist/src/locales/es/cli.json +14 -0
- package/dist/src/locales/fr/cli.json +14 -0
- package/dist/src/locales/ja/cli.json +14 -0
- package/dist/src/locales/ko/cli.json +14 -0
- package/dist/src/locales/pt/cli.json +14 -0
- package/dist/src/locales/ru/cli.json +14 -0
- package/dist/src/locales/zh/cli.json +14 -0
- package/dist/src/utils/chalk-fallback.d.ts +38 -0
- package/dist/src/utils/chalk-fallback.d.ts.map +1 -0
- package/dist/src/utils/chalk-fallback.js +118 -0
- package/dist/src/utils/chalk-fallback.js.map +1 -0
- package/dist/src/utils/project-id-generator.d.ts +127 -0
- package/dist/src/utils/project-id-generator.d.ts.map +1 -0
- package/dist/src/utils/project-id-generator.js +228 -0
- package/dist/src/utils/project-id-generator.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/agents/pm/AGENT.md +202 -0
- package/plugins/specweave/commands/specweave-import-external.md +5 -3
- package/plugins/specweave/commands/specweave-jobs.md +160 -0
- package/plugins/specweave/commands/specweave-sync-docs.md +6 -2
- package/plugins/specweave/hooks/pre-task-completion.sh +35 -17
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.d.ts +16 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js +121 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js.map +1 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.d.ts +111 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.js +295 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.js.map +1 -0
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +75 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.d.ts +38 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.js +118 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.js.map +1 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.d.ts +179 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.js +319 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.js.map +1 -0
- package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
- package/plugins/specweave/skills/docs-updater/SKILL.md +61 -0
- package/plugins/specweave/skills/increment-planner/SKILL.md +10 -335
- package/plugins/specweave/skills/increment-planner/templates/metadata.json +13 -0
- package/plugins/specweave/skills/increment-planner/templates/plan.md +50 -0
- package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +86 -0
- package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +50 -0
- package/plugins/specweave/skills/increment-planner/templates/tasks-multi-project.md +86 -0
- package/plugins/specweave/skills/increment-planner/templates/tasks-single-project.md +48 -0
- package/plugins/specweave-ado/commands/specweave-ado-import-areas.md +358 -0
- package/plugins/specweave-ado/lib/ado-spec-sync.js +59 -3
- package/plugins/specweave-ado/lib/ado-spec-sync.ts +72 -3
- package/plugins/specweave-ado/lib/ado-status-sync.js +35 -3
- package/plugins/specweave-ado/lib/ado-status-sync.ts +48 -4
- package/plugins/specweave-alternatives/skills/architecture-alternatives/SKILL.md +1 -0
- package/plugins/specweave-alternatives/skills/bmad-method/SKILL.md +1 -0
- package/plugins/specweave-core/skills/code-quality/SKILL.md +1 -0
- package/plugins/specweave-core/skills/design-patterns/SKILL.md +1 -0
- package/plugins/specweave-core/skills/software-architecture/SKILL.md +1 -0
- package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +14 -10
- package/plugins/specweave-github/commands/specweave-github-sync.md +57 -0
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +74 -0
- package/plugins/specweave-github/lib/github-feature-sync.ts +6 -11
- package/plugins/specweave-github/lib/github-increment-sync-cli.js +456 -0
- package/plugins/specweave-github/lib/github-increment-sync-cli.ts +588 -0
- package/plugins/specweave-github/lib/github-status-sync.js +37 -1
- package/plugins/specweave-github/lib/github-status-sync.ts +60 -4
- package/plugins/specweave-github/lib/increment-issue-builder.js +389 -0
- package/plugins/specweave-github/lib/increment-issue-builder.ts +502 -0
- package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +19 -24
- package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +15 -23
- package/plugins/specweave-jira/commands/specweave-jira-import-boards.md +331 -0
- package/plugins/specweave-jira/lib/jira-spec-sync.js +53 -5
- package/plugins/specweave-jira/lib/jira-spec-sync.ts +87 -7
- package/plugins/specweave-jira/lib/jira-status-sync.js +9 -3
- package/plugins/specweave-jira/lib/jira-status-sync.ts +15 -6
- package/plugins/specweave-ml/agents/data-scientist/AGENT.md +16 -20
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +18 -19
- package/plugins/specweave-ml/skills/{ml-pipeline-workflow → mlops-dag-builder}/SKILL.md +18 -14
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +111 -0
- package/plugins/specweave-ui/skills/browser-automation/SKILL.md +1 -1
- package/plugins/specweave-ui/skills/ui-testing/SKILL.md +10 -122
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +0 -70
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +0 -1
- package/dist/plugins/specweave-github/lib/epic-content-builder.js +0 -258
- package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +0 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts +0 -83
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts.map +0 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.js +0 -466
- package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +0 -1
- package/plugins/specweave-github/lib/epic-content-builder.js +0 -265
- package/plugins/specweave-github/lib/epic-content-builder.ts +0 -376
- package/plugins/specweave-github/lib/github-epic-sync.js +0 -488
- package/plugins/specweave-github/lib/github-epic-sync.ts +0 -715
|
@@ -1,42 +1,38 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-scientist
|
|
3
|
-
description:
|
|
4
|
-
model: claude-sonnet-4-5-20250929
|
|
3
|
+
description: Statistical modeling and business analytics expert. A/B testing, causal inference, customer analytics (CLV, churn, segmentation), time series forecasting. Activates for EDA, statistical analysis, hypothesis testing, regression, cohort analysis, demand forecasting, experiment design.
|
|
5
4
|
model_preference: sonnet
|
|
6
5
|
cost_profile: planning
|
|
7
6
|
fallback_behavior: strict
|
|
7
|
+
max_response_tokens: 2000
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## ⚠️ Chunking Rule
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Large analyses (EDA + modeling + visualization) = 800+ lines. Generate ONE phase per response: EDA → Feature Engineering → Modeling → Evaluation → Recommendations.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
## How to Invoke This Agent
|
|
15
15
|
|
|
16
|
-
**
|
|
16
|
+
**Agent**: `specweave-ml:data-scientist:data-scientist`
|
|
17
17
|
|
|
18
18
|
```typescript
|
|
19
19
|
Task({
|
|
20
20
|
subagent_type: "specweave-ml:data-scientist:data-scientist",
|
|
21
|
-
prompt: "Analyze
|
|
22
|
-
model: "haiku" // optional: haiku, sonnet, opus
|
|
21
|
+
prompt: "Analyze churn patterns and build predictive model"
|
|
23
22
|
});
|
|
24
23
|
```
|
|
25
24
|
|
|
26
|
-
**
|
|
27
|
-
- **Plugin**: specweave-ml
|
|
28
|
-
- **Directory**: data-scientist
|
|
29
|
-
- **Agent Name**: data-scientist
|
|
25
|
+
**Use When**: EDA, A/B testing, statistical modeling, business analytics, causal inference.
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
- You need to perform exploratory data analysis and statistical analysis
|
|
33
|
-
- You want to build machine learning models for prediction or classification
|
|
34
|
-
- You need to design A/B tests or experiments
|
|
35
|
-
- You want to create data visualizations and dashboards
|
|
36
|
-
- You need actionable insights from complex data
|
|
27
|
+
## Philosophy: Rigorous Yet Practical
|
|
37
28
|
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
**I balance statistical rigor with business impact:**
|
|
30
|
+
|
|
31
|
+
1. **Statistical Significance ≠ Business Significance** - A 0.1% lift may be statistically significant but not worth optimizing.
|
|
32
|
+
2. **Start Simple** - Linear regression often beats complex models. XGBoost if you need more.
|
|
33
|
+
3. **Causation > Correlation** - Design experiments or use causal inference when "why" matters.
|
|
34
|
+
4. **Domain Knowledge First** - Understand the business before the data.
|
|
35
|
+
5. **Communicate Impact** - "Model predicts 20% churn reduction" not "AUC = 0.87".
|
|
40
36
|
|
|
41
37
|
## Capabilities
|
|
42
38
|
|
|
@@ -1,42 +1,41 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ml-engineer
|
|
3
|
+
description: End-to-end ML system builder with SpecWeave integration. Enforces best practices - baseline comparison, cross-validation, experiment tracking, explainability (SHAP/LIME). Activates for ML features, model training, hyperparameter tuning, production ML. Works within increment-based workflow.
|
|
3
4
|
model_preference: sonnet
|
|
5
|
+
cost_profile: execution
|
|
4
6
|
max_response_tokens: 2000
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
# ML Engineer Agent
|
|
8
10
|
|
|
9
|
-
## ⚠️ Chunking
|
|
11
|
+
## ⚠️ Chunking Rule
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Large ML pipelines = 1000+ lines. Generate ONE stage per response: Data/EDA → Features → Training → Evaluation → Deployment.
|
|
12
14
|
|
|
13
|
-
##
|
|
15
|
+
## How to Invoke This Agent
|
|
14
16
|
|
|
15
|
-
**
|
|
16
|
-
|
|
17
|
-
**Usage Example**:
|
|
17
|
+
**Agent**: `specweave-ml:ml-engineer:ml-engineer`
|
|
18
18
|
|
|
19
19
|
```typescript
|
|
20
20
|
Task({
|
|
21
21
|
subagent_type: "specweave-ml:ml-engineer:ml-engineer",
|
|
22
|
-
prompt: "Build fraud detection model
|
|
23
|
-
model: "haiku" // optional: haiku, sonnet, opus
|
|
22
|
+
prompt: "Build fraud detection model with baseline comparison and explainability"
|
|
24
23
|
});
|
|
25
24
|
```
|
|
26
25
|
|
|
27
|
-
**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
**Use When**: ML feature implementation, model training, hyperparameter tuning, production ML with SpecWeave.
|
|
27
|
+
|
|
28
|
+
## Philosophy: Disciplined ML Engineering
|
|
29
|
+
|
|
30
|
+
**Every model I build follows these non-negotiable rules:**
|
|
31
31
|
|
|
32
|
-
**
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- You want to integrate ML with SpecWeave's living documentation
|
|
32
|
+
1. **Baseline First** - No model ships without beating a simple baseline by 20%+.
|
|
33
|
+
2. **Cross-Validation Always** - Single train/test splits lie. Use k-fold.
|
|
34
|
+
3. **Log Everything** - Every experiment tracked to increment folder.
|
|
35
|
+
4. **Explain Your Model** - SHAP/LIME for production models. Non-negotiable.
|
|
36
|
+
5. **Load Test Before Deploy** - p95 latency < target or optimize first.
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
I work within SpecWeave's increment-based workflow to build **production-ready, reproducible ML systems**.
|
|
40
39
|
|
|
41
40
|
## Your Expertise
|
|
42
41
|
|
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
2
|
+
name: mlops-dag-builder
|
|
3
|
+
description: Design DAG-based MLOps pipeline architectures with Airflow, Dagster, Kubeflow, or Prefect. Activates for DAG orchestration, workflow automation, pipeline design patterns, CI/CD for ML. Use for platform-agnostic MLOps infrastructure - NOT for SpecWeave increment-based ML (use ml-pipeline-orchestrator instead).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# MLOps DAG Builder
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Design and implement DAG-based ML pipeline architectures using production orchestration tools.
|
|
9
9
|
|
|
10
10
|
## Overview
|
|
11
11
|
|
|
12
|
-
This skill provides
|
|
12
|
+
This skill provides guidance for building **platform-agnostic MLOps pipelines** using DAG orchestrators (Airflow, Dagster, Kubeflow, Prefect). It focuses on workflow architecture, not SpecWeave integration.
|
|
13
|
+
|
|
14
|
+
**When to use this skill vs ml-pipeline-orchestrator:**
|
|
15
|
+
- **Use this skill**: General MLOps architecture, Airflow/Dagster DAGs, cloud ML platforms
|
|
16
|
+
- **Use ml-pipeline-orchestrator**: SpecWeave increment-based ML development with experiment tracking
|
|
13
17
|
|
|
14
18
|
## When to Use This Skill
|
|
15
19
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- Integrating ML components into production systems
|
|
20
|
+
- Designing DAG-based workflow orchestration (Airflow, Dagster, Kubeflow)
|
|
21
|
+
- Implementing platform-agnostic ML pipeline patterns
|
|
22
|
+
- Setting up CI/CD automation for ML training jobs
|
|
23
|
+
- Creating reusable pipeline templates for teams
|
|
24
|
+
- Integrating with cloud ML services (SageMaker, Vertex AI, Azure ML)
|
|
22
25
|
|
|
23
26
|
## What This Skill Provides
|
|
24
27
|
|
|
@@ -240,6 +243,7 @@ After setting up your pipeline:
|
|
|
240
243
|
|
|
241
244
|
## Related Skills
|
|
242
245
|
|
|
243
|
-
- **
|
|
244
|
-
- **
|
|
245
|
-
- **
|
|
246
|
+
- **ml-pipeline-orchestrator**: SpecWeave-integrated ML development (use for increment-based ML)
|
|
247
|
+
- **experiment-tracker**: MLflow and Weights & Biases experiment tracking
|
|
248
|
+
- **automl-optimizer**: Automated hyperparameter optimization with Optuna/Hyperopt
|
|
249
|
+
- **ml-deployment-helper**: Model serving and deployment patterns
|
|
@@ -1105,3 +1105,114 @@
|
|
|
1105
1105
|
[2025-11-26 01:29:07] 🎯 Post-Increment-Completion Hook Triggered
|
|
1106
1106
|
[2025-11-26 01:29:07] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1107
1107
|
[2025-11-26 01:29:07] Run: npm run build
|
|
1108
|
+
[2025-11-26 02:36:06] 🎯 Post-Increment-Completion Hook Triggered
|
|
1109
|
+
[2025-11-26 02:36:06] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1110
|
+
[2025-11-26 02:36:06] Run: npm run build
|
|
1111
|
+
[2025-11-26 02:36:06] 🎯 Post-Increment-Completion Hook Triggered
|
|
1112
|
+
[2025-11-26 02:36:06] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1113
|
+
[2025-11-26 02:36:06] Run: npm run build
|
|
1114
|
+
[2025-11-26 02:36:06] 🎯 Post-Increment-Completion Hook Triggered
|
|
1115
|
+
[2025-11-26 02:36:06] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1116
|
+
[2025-11-26 02:36:06] Run: npm run build
|
|
1117
|
+
[2025-11-26 02:36:06] 🎯 Post-Increment-Completion Hook Triggered
|
|
1118
|
+
[2025-11-26 02:36:06] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1119
|
+
[2025-11-26 02:36:06] Run: npm run build
|
|
1120
|
+
[2025-11-26 02:36:06] 🎯 Post-Increment-Completion Hook Triggered
|
|
1121
|
+
[2025-11-26 02:36:06] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1122
|
+
[2025-11-26 02:36:06] Run: npm run build
|
|
1123
|
+
[2025-11-26 03:25:15] 🎯 Post-Increment-Completion Hook Triggered
|
|
1124
|
+
[2025-11-26 03:25:15] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1125
|
+
[2025-11-26 03:25:15] Run: npm run build
|
|
1126
|
+
[2025-11-26 03:25:15] 🎯 Post-Increment-Completion Hook Triggered
|
|
1127
|
+
[2025-11-26 03:25:15] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1128
|
+
[2025-11-26 03:25:15] Run: npm run build
|
|
1129
|
+
[2025-11-26 03:25:16] 🎯 Post-Increment-Completion Hook Triggered
|
|
1130
|
+
[2025-11-26 03:25:16] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1131
|
+
[2025-11-26 03:25:16] Run: npm run build
|
|
1132
|
+
[2025-11-26 03:27:50] 🎯 Post-Increment-Completion Hook Triggered
|
|
1133
|
+
[2025-11-26 03:27:50] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1134
|
+
[2025-11-26 03:27:50] Run: npm run build
|
|
1135
|
+
[2025-11-26 03:27:50] 🎯 Post-Increment-Completion Hook Triggered
|
|
1136
|
+
[2025-11-26 03:27:50] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1137
|
+
[2025-11-26 03:27:50] Run: npm run build
|
|
1138
|
+
[2025-11-26 03:27:50] 🎯 Post-Increment-Completion Hook Triggered
|
|
1139
|
+
[2025-11-26 03:27:50] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1140
|
+
[2025-11-26 03:27:50] Run: npm run build
|
|
1141
|
+
[2025-11-26 03:47:12] 🎯 Post-Increment-Completion Hook Triggered
|
|
1142
|
+
[2025-11-26 03:47:12] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1143
|
+
[2025-11-26 03:47:12] Run: npm run build
|
|
1144
|
+
[2025-11-26 03:47:12] 🎯 Post-Increment-Completion Hook Triggered
|
|
1145
|
+
[2025-11-26 03:47:12] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1146
|
+
[2025-11-26 03:47:12] Run: npm run build
|
|
1147
|
+
[2025-11-26 03:47:13] 🎯 Post-Increment-Completion Hook Triggered
|
|
1148
|
+
[2025-11-26 03:47:13] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1149
|
+
[2025-11-26 03:47:13] Run: npm run build
|
|
1150
|
+
[2025-11-26 03:47:13] 🎯 Post-Increment-Completion Hook Triggered
|
|
1151
|
+
[2025-11-26 03:47:13] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1152
|
+
[2025-11-26 03:47:13] Run: npm run build
|
|
1153
|
+
[2025-11-26 03:47:13] 🎯 Post-Increment-Completion Hook Triggered
|
|
1154
|
+
[2025-11-26 03:47:13] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1155
|
+
[2025-11-26 03:47:13] Run: npm run build
|
|
1156
|
+
[2025-11-26 03:47:13] 🎯 Post-Increment-Completion Hook Triggered
|
|
1157
|
+
[2025-11-26 03:47:13] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1158
|
+
[2025-11-26 03:47:13] Run: npm run build
|
|
1159
|
+
[2025-11-26 03:47:13] 🎯 Post-Increment-Completion Hook Triggered
|
|
1160
|
+
[2025-11-26 03:47:13] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1161
|
+
[2025-11-26 03:47:13] Run: npm run build
|
|
1162
|
+
[2025-11-26 03:47:13] 🎯 Post-Increment-Completion Hook Triggered
|
|
1163
|
+
[2025-11-26 03:47:13] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1164
|
+
[2025-11-26 03:47:13] Run: npm run build
|
|
1165
|
+
[2025-11-26 03:47:22] 🎯 Post-Increment-Completion Hook Triggered
|
|
1166
|
+
[2025-11-26 03:47:22] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1167
|
+
[2025-11-26 03:47:22] Run: npm run build
|
|
1168
|
+
[2025-11-26 03:47:22] 🎯 Post-Increment-Completion Hook Triggered
|
|
1169
|
+
[2025-11-26 03:47:22] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1170
|
+
[2025-11-26 03:47:22] Run: npm run build
|
|
1171
|
+
[2025-11-26 03:47:22] 🎯 Post-Increment-Completion Hook Triggered
|
|
1172
|
+
[2025-11-26 03:47:22] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1173
|
+
[2025-11-26 03:47:22] Run: npm run build
|
|
1174
|
+
[2025-11-26 03:52:20] 🎯 Post-Increment-Completion Hook Triggered
|
|
1175
|
+
[2025-11-26 03:52:20] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1176
|
+
[2025-11-26 03:52:20] Run: npm run build
|
|
1177
|
+
[2025-11-26 03:52:20] 🎯 Post-Increment-Completion Hook Triggered
|
|
1178
|
+
[2025-11-26 03:52:20] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1179
|
+
[2025-11-26 03:52:20] Run: npm run build
|
|
1180
|
+
[2025-11-26 03:52:20] 🎯 Post-Increment-Completion Hook Triggered
|
|
1181
|
+
[2025-11-26 03:52:20] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1182
|
+
[2025-11-26 03:52:20] Run: npm run build
|
|
1183
|
+
[2025-11-26 08:47:37] 🎯 Post-Increment-Completion Hook Triggered
|
|
1184
|
+
[2025-11-26 08:47:37] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1185
|
+
[2025-11-26 08:47:37] Run: npm run build
|
|
1186
|
+
[2025-11-26 08:47:37] 🎯 Post-Increment-Completion Hook Triggered
|
|
1187
|
+
[2025-11-26 08:47:37] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1188
|
+
[2025-11-26 08:47:37] Run: npm run build
|
|
1189
|
+
[2025-11-26 08:47:37] 🎯 Post-Increment-Completion Hook Triggered
|
|
1190
|
+
[2025-11-26 08:47:37] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1191
|
+
[2025-11-26 08:47:37] Run: npm run build
|
|
1192
|
+
[2025-11-26 08:50:09] 🎯 Post-Increment-Completion Hook Triggered
|
|
1193
|
+
[2025-11-26 08:50:09] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1194
|
+
[2025-11-26 08:50:09] Run: npm run build
|
|
1195
|
+
[2025-11-26 08:50:09] 🎯 Post-Increment-Completion Hook Triggered
|
|
1196
|
+
[2025-11-26 08:50:09] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1197
|
+
[2025-11-26 08:50:09] Run: npm run build
|
|
1198
|
+
[2025-11-26 08:50:09] 🎯 Post-Increment-Completion Hook Triggered
|
|
1199
|
+
[2025-11-26 08:50:09] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1200
|
+
[2025-11-26 08:50:09] Run: npm run build
|
|
1201
|
+
[2025-11-26 08:52:35] 🎯 Post-Increment-Completion Hook Triggered
|
|
1202
|
+
[2025-11-26 08:52:35] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1203
|
+
[2025-11-26 08:52:35] Run: npm run build
|
|
1204
|
+
[2025-11-26 08:52:36] 🎯 Post-Increment-Completion Hook Triggered
|
|
1205
|
+
[2025-11-26 08:52:36] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1206
|
+
[2025-11-26 08:52:36] Run: npm run build
|
|
1207
|
+
[2025-11-26 08:52:36] 🎯 Post-Increment-Completion Hook Triggered
|
|
1208
|
+
[2025-11-26 08:52:36] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1209
|
+
[2025-11-26 08:52:36] Run: npm run build
|
|
1210
|
+
[2025-11-26 12:29:21] 🎯 Post-Increment-Completion Hook Triggered
|
|
1211
|
+
[2025-11-26 12:29:21] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1212
|
+
[2025-11-26 12:29:21] Run: npm run build
|
|
1213
|
+
[2025-11-26 12:29:21] 🎯 Post-Increment-Completion Hook Triggered
|
|
1214
|
+
[2025-11-26 12:29:21] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1215
|
+
[2025-11-26 12:29:21] Run: npm run build
|
|
1216
|
+
[2025-11-26 12:29:21] 🎯 Post-Increment-Completion Hook Triggered
|
|
1217
|
+
[2025-11-26 12:29:21] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1218
|
+
[2025-11-26 12:29:21] Run: npm run build
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: browser-automation
|
|
3
|
-
description:
|
|
3
|
+
description: Non-testing browser automation - web scraping, form filling, screenshot capture, PDF generation, workflow automation. For TESTING with Playwright, use e2e-playwright skill instead. Activates for web scraping, form automation, screenshot, PDF, headless browser, Puppeteer, Selenium, automation scripts, data extraction.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Browser Automation Skill
|
|
@@ -1,135 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-testing
|
|
3
|
-
description: UI
|
|
3
|
+
description: Multi-framework UI testing expert - Cypress, Testing Library, component tests. Use for framework comparison, Cypress-specific testing, or React Testing Library. For DEEP Playwright expertise, use e2e-playwright skill instead. Activates for Cypress, Testing Library, component tests, React testing, Vue testing, framework comparison, which testing tool, Cypress vs Playwright.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# UI Testing Skill
|
|
7
7
|
|
|
8
|
-
Expert in UI
|
|
8
|
+
Expert in UI testing with **Cypress** and **Testing Library**. For deep Playwright expertise, see the `e2e-playwright` skill.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Framework Selection Guide
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
| Framework | Best For | Key Strength |
|
|
13
|
+
|-----------|----------|--------------|
|
|
14
|
+
| **Playwright** | E2E, cross-browser | Auto-wait, multi-browser → Use `e2e-playwright` skill |
|
|
15
|
+
| **Cypress** | E2E, developer experience | Time-travel debugging, real-time reload |
|
|
16
|
+
| **Testing Library** | Component tests | User-centric queries, accessibility-first |
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
- Multi-browser support (Chromium, Firefox, WebKit)
|
|
16
|
-
- Auto-wait (no manual `waitFor` needed)
|
|
17
|
-
- Fast parallel execution
|
|
18
|
-
- Built-in assertions and fixtures
|
|
19
|
-
- Network interception and mocking
|
|
20
|
-
|
|
21
|
-
#### Basic Test Structure
|
|
22
|
-
|
|
23
|
-
```typescript
|
|
24
|
-
import { test, expect } from '@playwright/test';
|
|
25
|
-
|
|
26
|
-
test.describe('User Authentication', () => {
|
|
27
|
-
test('should login with valid credentials', async ({ page }) => {
|
|
28
|
-
// Navigate
|
|
29
|
-
await page.goto('https://example.com/login');
|
|
30
|
-
|
|
31
|
-
// Interact
|
|
32
|
-
await page.fill('input[name="email"]', 'user@example.com');
|
|
33
|
-
await page.fill('input[name="password"]', 'SecurePass123!');
|
|
34
|
-
await page.click('button[type="submit"]');
|
|
35
|
-
|
|
36
|
-
// Assert
|
|
37
|
-
await expect(page).toHaveURL('https://example.com/dashboard');
|
|
38
|
-
await expect(page.locator('h1')).toHaveText('Welcome, User');
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test('should show error with invalid credentials', async ({ page }) => {
|
|
42
|
-
await page.goto('https://example.com/login');
|
|
43
|
-
|
|
44
|
-
await page.fill('input[name="email"]', 'wrong@example.com');
|
|
45
|
-
await page.fill('input[name="password"]', 'WrongPass');
|
|
46
|
-
await page.click('button[type="submit"]');
|
|
47
|
-
|
|
48
|
-
// Wait for error message
|
|
49
|
-
const errorMessage = page.locator('.error-message');
|
|
50
|
-
await expect(errorMessage).toBeVisible();
|
|
51
|
-
await expect(errorMessage).toHaveText('Invalid credentials');
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
#### Fixtures (Reusable Setup)
|
|
57
|
-
|
|
58
|
-
```typescript
|
|
59
|
-
// fixtures.ts
|
|
60
|
-
import { test as base } from '@playwright/test';
|
|
61
|
-
|
|
62
|
-
type Fixtures = {
|
|
63
|
-
authenticatedPage: Page;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export const test = base.extend<Fixtures>({
|
|
67
|
-
authenticatedPage: async ({ page }, use) => {
|
|
68
|
-
// Login before each test
|
|
69
|
-
await page.goto('https://example.com/login');
|
|
70
|
-
await page.fill('input[name="email"]', 'user@example.com');
|
|
71
|
-
await page.fill('input[name="password"]', 'SecurePass123!');
|
|
72
|
-
await page.click('button[type="submit"]');
|
|
73
|
-
await page.waitForURL('**/dashboard');
|
|
74
|
-
|
|
75
|
-
// Use the authenticated page
|
|
76
|
-
await use(page);
|
|
77
|
-
|
|
78
|
-
// Cleanup (logout)
|
|
79
|
-
await page.click('[data-testid="logout"]');
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
// tests/dashboard.spec.ts
|
|
84
|
-
import { test, expect } from './fixtures';
|
|
85
|
-
|
|
86
|
-
test('should display user dashboard', async ({ authenticatedPage }) => {
|
|
87
|
-
// Already logged in via fixture
|
|
88
|
-
await expect(authenticatedPage.locator('h1')).toHaveText('Dashboard');
|
|
89
|
-
});
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
#### Page Object Model (POM)
|
|
93
|
-
|
|
94
|
-
```typescript
|
|
95
|
-
// pages/LoginPage.ts
|
|
96
|
-
export class LoginPage {
|
|
97
|
-
constructor(private page: Page) {}
|
|
98
|
-
|
|
99
|
-
async goto() {
|
|
100
|
-
await this.page.goto('https://example.com/login');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
async login(email: string, password: string) {
|
|
104
|
-
await this.page.fill('input[name="email"]', email);
|
|
105
|
-
await this.page.fill('input[name="password"]', password);
|
|
106
|
-
await this.page.click('button[type="submit"]');
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
async getErrorMessage() {
|
|
110
|
-
const errorElement = this.page.locator('.error-message');
|
|
111
|
-
return errorElement.textContent();
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
async isLoginButtonDisabled() {
|
|
115
|
-
return this.page.locator('button[type="submit"]').isDisabled();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// tests/login.spec.ts
|
|
120
|
-
import { LoginPage } from '../pages/LoginPage';
|
|
121
|
-
|
|
122
|
-
test('login with POM', async ({ page }) => {
|
|
123
|
-
const loginPage = new LoginPage(page);
|
|
124
|
-
|
|
125
|
-
await loginPage.goto();
|
|
126
|
-
await loginPage.login('user@example.com', 'SecurePass123!');
|
|
127
|
-
|
|
128
|
-
await expect(page).toHaveURL('**/dashboard');
|
|
129
|
-
});
|
|
130
|
-
```
|
|
18
|
+
---
|
|
131
19
|
|
|
132
|
-
|
|
20
|
+
## 1. Cypress (E2E Testing)
|
|
133
21
|
|
|
134
22
|
**Why Cypress?**
|
|
135
23
|
- Developer-friendly API
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Epic Content Builder - Hierarchical GitHub issue content for Feature Specs
|
|
3
|
-
*
|
|
4
|
-
* Architecture:
|
|
5
|
-
* - Reads FS-* folder (FEATURE.md + us-*.md files)
|
|
6
|
-
* - Reads increment tasks.md files to map tasks to user stories
|
|
7
|
-
* - Generates hierarchical issue body:
|
|
8
|
-
* 1. User Stories section (with status + increment)
|
|
9
|
-
* 2. Tasks section (grouped by User Story)
|
|
10
|
-
*
|
|
11
|
-
* Key Features:
|
|
12
|
-
* - NO single "Increment" field (epics span multiple increments)
|
|
13
|
-
* - User Stories are checkable with status and increment link
|
|
14
|
-
* - Tasks grouped under their User Story
|
|
15
|
-
* - Shows which increment each US/task belongs to
|
|
16
|
-
*/
|
|
17
|
-
export declare class EpicContentBuilder {
|
|
18
|
-
private epicFolder;
|
|
19
|
-
private projectRoot;
|
|
20
|
-
constructor(epicFolder: string, projectRoot: string);
|
|
21
|
-
/**
|
|
22
|
-
* Build hierarchical GitHub issue body
|
|
23
|
-
*
|
|
24
|
-
* Format:
|
|
25
|
-
* - Epic overview
|
|
26
|
-
* - User Stories section (checkable, with status + increment)
|
|
27
|
-
* - Tasks section (grouped by User Story)
|
|
28
|
-
*/
|
|
29
|
-
buildIssueBody(): Promise<string>;
|
|
30
|
-
/**
|
|
31
|
-
* Read Epic FEATURE.md frontmatter
|
|
32
|
-
*/
|
|
33
|
-
private readEpicMetadata;
|
|
34
|
-
/**
|
|
35
|
-
* Read all user stories from us-*.md files
|
|
36
|
-
*/
|
|
37
|
-
private readUserStories;
|
|
38
|
-
/**
|
|
39
|
-
* Extract tasks for a user story from its Implementation section
|
|
40
|
-
*/
|
|
41
|
-
private extractTasksForUserStory;
|
|
42
|
-
/**
|
|
43
|
-
* Extract acceptance criteria from user story content
|
|
44
|
-
*
|
|
45
|
-
* Parses the "## Acceptance Criteria" section and extracts all checkable items.
|
|
46
|
-
* Format: - [x] **AC-US2-01**: Description...
|
|
47
|
-
*/
|
|
48
|
-
private extractAcceptanceCriteria;
|
|
49
|
-
/**
|
|
50
|
-
* Build overview section
|
|
51
|
-
*/
|
|
52
|
-
private buildOverviewSection;
|
|
53
|
-
/**
|
|
54
|
-
* Build User Stories section
|
|
55
|
-
*/
|
|
56
|
-
private buildUserStoriesSection;
|
|
57
|
-
/**
|
|
58
|
-
* Build Tasks section (grouped by User Story)
|
|
59
|
-
*/
|
|
60
|
-
private buildTasksSection;
|
|
61
|
-
/**
|
|
62
|
-
* Normalize status values
|
|
63
|
-
*/
|
|
64
|
-
private normalizeStatus;
|
|
65
|
-
/**
|
|
66
|
-
* Get status emoji
|
|
67
|
-
*/
|
|
68
|
-
private getStatusEmoji;
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=epic-content-builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"epic-content-builder.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/epic-content-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA8CH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;gBAEhB,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKnD;;;;;;;OAOG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAgBvC;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;YACW,eAAe;IA8C7B;;OAEG;YACW,wBAAwB;IAoEtC;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAgCjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA8B/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,cAAc;CAgBvB"}
|