@sun-asterisk/sungen 3.2.2 → 3.2.3
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/capabilities/discover.d.ts.map +1 -1
- package/dist/capabilities/discover.js +26 -3
- package/dist/capabilities/discover.js.map +1 -1
- package/dist/cli/commands/add-flow.d.ts.map +1 -1
- package/dist/cli/commands/add-flow.js +2 -0
- package/dist/cli/commands/add-flow.js.map +1 -1
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +4 -0
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/capability.d.ts.map +1 -1
- package/dist/cli/commands/capability.js +61 -0
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/delivery.d.ts.map +1 -1
- package/dist/cli/commands/delivery.js +89 -2
- package/dist/cli/commands/delivery.js.map +1 -1
- package/dist/cli/commands/eval.js +3 -3
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/gate.d.ts +3 -0
- package/dist/cli/commands/gate.d.ts.map +1 -0
- package/dist/cli/commands/gate.js +83 -0
- package/dist/cli/commands/gate.js.map +1 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +2 -1
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +32 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/journey.d.ts +3 -0
- package/dist/cli/commands/journey.d.ts.map +1 -0
- package/dist/cli/commands/journey.js +114 -0
- package/dist/cli/commands/journey.js.map +1 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +10 -3
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/snapshot-builder.d.ts.map +1 -1
- package/dist/dashboard/snapshot-builder.js +10 -1
- package/dist/dashboard/snapshot-builder.js.map +1 -1
- package/dist/exporters/csv-exporter.d.ts.map +1 -1
- package/dist/exporters/csv-exporter.js +3 -1
- package/dist/exporters/csv-exporter.js.map +1 -1
- package/dist/exporters/json-exporter.js +3 -1
- package/dist/exporters/json-exporter.js.map +1 -1
- package/dist/exporters/mobile-app-id.d.ts +22 -0
- package/dist/exporters/mobile-app-id.d.ts.map +1 -0
- package/dist/exporters/mobile-app-id.js +37 -0
- package/dist/exporters/mobile-app-id.js.map +1 -0
- package/dist/exporters/spec-parser.d.ts.map +1 -1
- package/dist/exporters/spec-parser.js +6 -2
- package/dist/exporters/spec-parser.js.map +1 -1
- package/dist/generators/test-generator/adapters/adapter-interface.d.ts +3 -0
- package/dist/generators/test-generator/adapters/adapter-interface.d.ts.map +1 -1
- package/dist/generators/test-generator/adapters/appium/templates/steps/actions/scroll-action.hbs +7 -4
- package/dist/generators/test-generator/adapters/appium/templates/steps/actions/toggle-action.hbs +20 -3
- package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/checked-assertion.hbs +4 -1
- package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/not-checked-assertion.hbs +4 -1
- package/dist/generators/test-generator/adapters/appium/templates/test-file.hbs +3 -0
- package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
- package/dist/generators/test-generator/code-generator.js +48 -9
- package/dist/generators/test-generator/code-generator.js.map +1 -1
- package/dist/generators/test-generator/template-engine.d.ts +3 -0
- package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
- package/dist/generators/test-generator/template-engine.js +11 -1
- package/dist/generators/test-generator/template-engine.js.map +1 -1
- package/dist/generators/test-generator/utils/selector-resolver.d.ts +11 -1
- package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
- package/dist/generators/test-generator/utils/selector-resolver.js +33 -0
- package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
- package/dist/harness/audit.d.ts.map +1 -1
- package/dist/harness/audit.js +8 -1
- package/dist/harness/audit.js.map +1 -1
- package/dist/harness/catalog/universal-viewpoints.yaml +15 -0
- package/dist/harness/eval/skill-lint.d.ts +3 -3
- package/dist/harness/eval/skill-lint.d.ts.map +1 -1
- package/dist/harness/eval/skill-lint.js +88 -68
- package/dist/harness/eval/skill-lint.js.map +1 -1
- package/dist/harness/journey.d.ts +88 -0
- package/dist/harness/journey.d.ts.map +1 -0
- package/dist/harness/journey.js +414 -0
- package/dist/harness/journey.js.map +1 -0
- package/dist/harness/quality-gates.d.ts +13 -0
- package/dist/harness/quality-gates.d.ts.map +1 -1
- package/dist/harness/quality-gates.js +23 -0
- package/dist/harness/quality-gates.js.map +1 -1
- package/dist/harness/sensors.d.ts +1 -1
- package/dist/harness/sensors.d.ts.map +1 -1
- package/dist/harness/sensors.js +32 -9
- package/dist/harness/sensors.js.map +1 -1
- package/dist/orchestrator/ai-rules-updater.d.ts +11 -3
- package/dist/orchestrator/ai-rules-updater.d.ts.map +1 -1
- package/dist/orchestrator/ai-rules-updater.js +44 -180
- package/dist/orchestrator/ai-rules-updater.js.map +1 -1
- package/dist/orchestrator/ai-skills/adapters.d.ts +28 -0
- package/dist/orchestrator/ai-skills/adapters.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/adapters.js +34 -0
- package/dist/orchestrator/ai-skills/adapters.js.map +1 -0
- package/dist/orchestrator/ai-skills/build.d.ts +10 -0
- package/dist/orchestrator/ai-skills/build.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/build.js +128 -0
- package/dist/orchestrator/ai-skills/build.js.map +1 -0
- package/dist/orchestrator/ai-skills/cap-stripper.d.ts +27 -0
- package/dist/orchestrator/ai-skills/cap-stripper.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/cap-stripper.js +78 -0
- package/dist/orchestrator/ai-skills/cap-stripper.js.map +1 -0
- package/dist/orchestrator/ai-skills/commands.d.ts +22 -0
- package/dist/orchestrator/ai-skills/commands.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/commands.js +109 -0
- package/dist/orchestrator/ai-skills/commands.js.map +1 -0
- package/dist/orchestrator/ai-skills/generator.d.ts +23 -0
- package/dist/orchestrator/ai-skills/generator.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/generator.js +79 -0
- package/dist/orchestrator/ai-skills/generator.js.map +1 -0
- package/dist/orchestrator/ai-skills/golden-skills.test.d.ts +2 -0
- package/dist/orchestrator/ai-skills/golden-skills.test.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/golden-skills.test.js +183 -0
- package/dist/orchestrator/ai-skills/golden-skills.test.js.map +1 -0
- package/dist/orchestrator/ai-skills/resolve-assistants.d.ts +8 -0
- package/dist/orchestrator/ai-skills/resolve-assistants.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/resolve-assistants.js +28 -0
- package/dist/orchestrator/ai-skills/resolve-assistants.js.map +1 -0
- package/dist/orchestrator/ai-skills/writer.d.ts +15 -0
- package/dist/orchestrator/ai-skills/writer.d.ts.map +1 -0
- package/dist/orchestrator/ai-skills/writer.js +129 -0
- package/dist/orchestrator/ai-skills/writer.js.map +1 -0
- package/dist/orchestrator/flow-manager.d.ts +11 -0
- package/dist/orchestrator/flow-manager.d.ts.map +1 -1
- package/dist/orchestrator/flow-manager.js +147 -29
- package/dist/orchestrator/flow-manager.js.map +1 -1
- package/dist/orchestrator/mobile-runtime-scaffolder.d.ts +59 -0
- package/dist/orchestrator/mobile-runtime-scaffolder.d.ts.map +1 -0
- package/dist/orchestrator/mobile-runtime-scaffolder.js +298 -0
- package/dist/orchestrator/mobile-runtime-scaffolder.js.map +1 -0
- package/dist/orchestrator/project-initializer.d.ts +44 -7
- package/dist/orchestrator/project-initializer.d.ts.map +1 -1
- package/dist/orchestrator/project-initializer.js +147 -79
- package/dist/orchestrator/project-initializer.js.map +1 -1
- package/dist/orchestrator/screen-manager.d.ts +30 -0
- package/dist/orchestrator/screen-manager.d.ts.map +1 -1
- package/dist/orchestrator/screen-manager.js +205 -22
- package/dist/orchestrator/screen-manager.js.map +1 -1
- package/dist/orchestrator/templates/ai-src/README.md +58 -0
- package/dist/orchestrator/templates/{ai-instructions/claude-cmd-add-flow.md → ai-src/commands/add-flow.md} +63 -2
- package/dist/orchestrator/templates/{ai-instructions/claude-cmd-add-screen.md → ai-src/commands/add-screen.md} +171 -6
- package/dist/orchestrator/templates/{ai-instructions/claude-cmd-create-test.md → ai-src/commands/create-test.md} +118 -4
- package/{src/orchestrator/templates/ai-instructions/claude-cmd-dashboard.md → dist/orchestrator/templates/ai-src/commands/dashboard.md} +25 -3
- package/{src/orchestrator/templates/ai-instructions/claude-cmd-delivery.md → dist/orchestrator/templates/ai-src/commands/delivery.md} +67 -3
- package/dist/orchestrator/templates/ai-src/commands/design.md +29 -0
- package/{src/orchestrator/templates/ai-instructions/claude-cmd-feedback.md → dist/orchestrator/templates/ai-src/commands/feedback.md} +34 -3
- package/dist/orchestrator/templates/{ai-instructions/claude-cmd-locale.md → ai-src/commands/locale.md} +56 -4
- package/{src/orchestrator/templates/ai-instructions/claude-cmd-review.md → dist/orchestrator/templates/ai-src/commands/review.md} +57 -2
- package/{src/orchestrator/templates/ai-instructions/claude-cmd-run-test.md → dist/orchestrator/templates/ai-src/commands/run-test.md} +116 -5
- package/dist/orchestrator/templates/ai-src/config/codex.md +8 -0
- package/{src/orchestrator/templates/ai-instructions/claude-skill-capture-mobile.md → dist/orchestrator/templates/ai-src/skills/sungen-capture-mobile/SKILL.md} +11 -0
- package/dist/orchestrator/templates/{ai-instructions/github-skill-sungen-error-mapping.md → ai-src/skills/sungen-error-mapping/SKILL.md} +49 -9
- package/{src/orchestrator/templates/ai-instructions/claude-skill-harness-audit.md → dist/orchestrator/templates/ai-src/skills/sungen-harness-audit/SKILL.md} +5 -5
- package/{src/orchestrator/templates/ai-instructions/claude-skill-locale.md → dist/orchestrator/templates/ai-src/skills/sungen-locale/SKILL.md} +275 -3
- package/{src/orchestrator/templates/ai-instructions/github-skill-sungen-selector-fix.md → dist/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md} +17 -0
- package/dist/orchestrator/templates/{ai-instructions/claude-skill-selector-fix-mobile.md → ai-src/skills/sungen-selector-fix-mobile/SKILL.md} +5 -0
- package/dist/orchestrator/templates/{ai-instructions/claude-skill-tc-generation.md → ai-src/skills/sungen-tc-generation/SKILL.md} +5 -0
- package/dist/orchestrator/templates/playwright.config.ts +7 -4
- package/package.json +3 -3
- package/src/capabilities/discover.ts +29 -3
- package/src/cli/commands/add-flow.ts +2 -0
- package/src/cli/commands/add.ts +4 -0
- package/src/cli/commands/capability.ts +64 -1
- package/src/cli/commands/delivery.ts +89 -2
- package/src/cli/commands/eval.ts +3 -3
- package/src/cli/commands/gate.ts +44 -0
- package/src/cli/commands/generate.ts +2 -1
- package/src/cli/commands/init.ts +50 -3
- package/src/cli/commands/journey.ts +72 -0
- package/src/cli/commands/update.ts +14 -4
- package/src/cli/index.ts +4 -0
- package/src/dashboard/snapshot-builder.ts +10 -1
- package/src/exporters/csv-exporter.ts +3 -1
- package/src/exporters/json-exporter.ts +3 -1
- package/src/exporters/mobile-app-id.ts +34 -0
- package/src/exporters/spec-parser.ts +6 -2
- package/src/generators/test-generator/adapters/adapter-interface.ts +3 -0
- package/src/generators/test-generator/adapters/appium/templates/steps/actions/scroll-action.hbs +7 -4
- package/src/generators/test-generator/adapters/appium/templates/steps/actions/toggle-action.hbs +20 -3
- package/src/generators/test-generator/adapters/appium/templates/steps/assertions/checked-assertion.hbs +4 -1
- package/src/generators/test-generator/adapters/appium/templates/steps/assertions/not-checked-assertion.hbs +4 -1
- package/src/generators/test-generator/adapters/appium/templates/test-file.hbs +3 -0
- package/src/generators/test-generator/code-generator.ts +49 -9
- package/src/generators/test-generator/template-engine.ts +14 -1
- package/src/generators/test-generator/utils/selector-resolver.ts +51 -1
- package/src/harness/audit.ts +9 -2
- package/src/harness/catalog/universal-viewpoints.yaml +15 -0
- package/src/harness/eval/skill-lint.ts +71 -60
- package/src/harness/journey.ts +434 -0
- package/src/harness/quality-gates.ts +20 -0
- package/src/harness/sensors.ts +25 -8
- package/src/orchestrator/ai-rules-updater.ts +35 -197
- package/src/orchestrator/ai-skills/adapters.ts +52 -0
- package/src/orchestrator/ai-skills/build.ts +103 -0
- package/src/orchestrator/ai-skills/cap-stripper.ts +85 -0
- package/src/orchestrator/ai-skills/commands.ts +112 -0
- package/src/orchestrator/ai-skills/generator.ts +47 -0
- package/src/orchestrator/ai-skills/golden-skills.test.ts +124 -0
- package/src/orchestrator/ai-skills/resolve-assistants.ts +18 -0
- package/src/orchestrator/ai-skills/writer.ts +92 -0
- package/src/orchestrator/flow-manager.ts +165 -29
- package/src/orchestrator/mobile-runtime-scaffolder.ts +277 -0
- package/src/orchestrator/project-initializer.ts +159 -86
- package/src/orchestrator/screen-manager.ts +237 -22
- package/src/orchestrator/templates/ai-src/README.md +58 -0
- package/src/orchestrator/templates/{ai-instructions/claude-cmd-add-flow.md → ai-src/commands/add-flow.md} +63 -2
- package/src/orchestrator/templates/{ai-instructions/claude-cmd-add-screen.md → ai-src/commands/add-screen.md} +171 -6
- package/src/orchestrator/templates/{ai-instructions/claude-cmd-create-test.md → ai-src/commands/create-test.md} +118 -4
- package/{dist/orchestrator/templates/ai-instructions/claude-cmd-dashboard.md → src/orchestrator/templates/ai-src/commands/dashboard.md} +25 -3
- package/{dist/orchestrator/templates/ai-instructions/claude-cmd-delivery.md → src/orchestrator/templates/ai-src/commands/delivery.md} +67 -3
- package/src/orchestrator/templates/ai-src/commands/design.md +29 -0
- package/{dist/orchestrator/templates/ai-instructions/claude-cmd-feedback.md → src/orchestrator/templates/ai-src/commands/feedback.md} +34 -3
- package/src/orchestrator/templates/{ai-instructions/claude-cmd-locale.md → ai-src/commands/locale.md} +56 -4
- package/{dist/orchestrator/templates/ai-instructions/claude-cmd-review.md → src/orchestrator/templates/ai-src/commands/review.md} +57 -2
- package/{dist/orchestrator/templates/ai-instructions/claude-cmd-run-test.md → src/orchestrator/templates/ai-src/commands/run-test.md} +116 -5
- package/src/orchestrator/templates/ai-src/config/codex.md +8 -0
- package/{dist/orchestrator/templates/ai-instructions/claude-skill-capture-mobile.md → src/orchestrator/templates/ai-src/skills/sungen-capture-mobile/SKILL.md} +11 -0
- package/{dist/orchestrator/templates/ai-instructions/claude-skill-error-mapping.md → src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md} +49 -9
- package/{dist/orchestrator/templates/ai-instructions/claude-skill-harness-audit.md → src/orchestrator/templates/ai-src/skills/sungen-harness-audit/SKILL.md} +5 -5
- package/{dist/orchestrator/templates/ai-instructions/claude-skill-locale.md → src/orchestrator/templates/ai-src/skills/sungen-locale/SKILL.md} +275 -3
- package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-selector-fix.md → src/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md} +17 -0
- package/src/orchestrator/templates/{ai-instructions/claude-skill-selector-fix-mobile.md → ai-src/skills/sungen-selector-fix-mobile/SKILL.md} +5 -0
- package/src/orchestrator/templates/{ai-instructions/claude-skill-tc-generation.md → ai-src/skills/sungen-tc-generation/SKILL.md} +5 -0
- package/src/orchestrator/templates/playwright.config.ts +7 -4
- package/dist/orchestrator/templates/ai-instructions/claude-cmd-design.md +0 -12
- package/dist/orchestrator/templates/ai-instructions/claude-skill-selector-fix.md +0 -347
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-add-flow.md +0 -86
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-add-screen.md +0 -131
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-create-test.md +0 -93
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-dashboard.md +0 -65
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-delivery.md +0 -83
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-design.md +0 -13
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-feedback.md +0 -24
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-locale.md +0 -70
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-review.md +0 -38
- package/dist/orchestrator/templates/ai-instructions/copilot-cmd-run-test.md +0 -155
- package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mobile.md +0 -184
- package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-harness-audit.md +0 -85
- package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-locale.md +0 -291
- package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-selector-fix-mobile.md +0 -316
- package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-selector-keys.md +0 -221
- package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-tc-generation.md +0 -617
- package/src/orchestrator/templates/ai-instructions/claude-cmd-design.md +0 -12
- package/src/orchestrator/templates/ai-instructions/claude-skill-api-design.md +0 -62
- package/src/orchestrator/templates/ai-instructions/claude-skill-capture-mode-figma-mcp.md +0 -82
- package/src/orchestrator/templates/ai-instructions/claude-skill-capture-mode-figma-pat.md +0 -117
- package/src/orchestrator/templates/ai-instructions/claude-skill-capture-mode-live.md +0 -60
- package/src/orchestrator/templates/ai-instructions/claude-skill-capture-mode-local.md +0 -38
- package/src/orchestrator/templates/ai-instructions/claude-skill-capture.md +0 -35
- package/src/orchestrator/templates/ai-instructions/claude-skill-dashboard.md +0 -121
- package/src/orchestrator/templates/ai-instructions/claude-skill-delivery.md +0 -141
- package/src/orchestrator/templates/ai-instructions/claude-skill-error-mapping.md +0 -157
- package/src/orchestrator/templates/ai-instructions/claude-skill-gherkin-syntax.md +0 -446
- package/src/orchestrator/templates/ai-instructions/claude-skill-ingest-legacy.md +0 -79
- package/src/orchestrator/templates/ai-instructions/claude-skill-mobile-gestures.md +0 -109
- package/src/orchestrator/templates/ai-instructions/claude-skill-selector-fix.md +0 -347
- package/src/orchestrator/templates/ai-instructions/claude-skill-tc-review.md +0 -320
- package/src/orchestrator/templates/ai-instructions/claude-skill-test-design-techniques.md +0 -118
- package/src/orchestrator/templates/ai-instructions/claude-skill-viewpoint-group-a-data-entry.md +0 -203
- package/src/orchestrator/templates/ai-instructions/claude-skill-viewpoint-group-b-data-ops.md +0 -179
- package/src/orchestrator/templates/ai-instructions/claude-skill-viewpoint-group-c-data-explore.md +0 -233
- package/src/orchestrator/templates/ai-instructions/claude-skill-viewpoint-group-d-display.md +0 -226
- package/src/orchestrator/templates/ai-instructions/claude-skill-viewpoint-group-e-identity.md +0 -177
- package/src/orchestrator/templates/ai-instructions/claude-skill-viewpoint.md +0 -118
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-add-flow.md +0 -86
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-add-screen.md +0 -131
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-create-test.md +0 -93
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-dashboard.md +0 -65
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-delivery.md +0 -83
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-design.md +0 -13
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-feedback.md +0 -24
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-locale.md +0 -70
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-review.md +0 -38
- package/src/orchestrator/templates/ai-instructions/copilot-cmd-run-test.md +0 -155
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-api-design.md +0 -62
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mobile.md +0 -184
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-figma-mcp.md +0 -82
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-figma-pat.md +0 -117
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-live.md +0 -60
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-local.md +0 -38
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-capture.md +0 -35
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-dashboard.md +0 -121
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-delivery.md +0 -141
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-error-mapping.md +0 -157
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-gherkin-syntax.md +0 -446
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-harness-audit.md +0 -85
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-ingest-legacy.md +0 -79
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-locale.md +0 -291
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-mobile-gestures.md +0 -109
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-selector-fix-mobile.md +0 -316
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-selector-keys.md +0 -221
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-tc-generation.md +0 -617
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-tc-review.md +0 -320
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-test-design-techniques.md +0 -118
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-a-data-entry.md +0 -203
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-b-data-ops.md +0 -179
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-c-data-explore.md +0 -233
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-d-display.md +0 -226
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-e-identity.md +0 -177
- package/src/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint.md +0 -118
- /package/dist/orchestrator/templates/{ai-instructions/claude-agent-challenge.md → ai-src/agents/challenge.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-agent-discovery.md → ai-src/agents/discovery.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-agent-generator.md → ai-src/agents/generator.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-agent-reviewer.md → ai-src/agents/reviewer.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-config.md → ai-src/config/claude.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/copilot-config.md → ai-src/config/copilot.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-api-design.md → ai-src/skills/sungen-api-design/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-capture.md → ai-src/skills/sungen-capture/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-capture-mode-figma-mcp.md → ai-src/skills/sungen-capture/mode-figma-mcp.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-capture-mode-figma-pat.md → ai-src/skills/sungen-capture/mode-figma-pat.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-capture-mode-live.md → ai-src/skills/sungen-capture/mode-live.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-capture-mode-local.md → ai-src/skills/sungen-capture/mode-local.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-dashboard.md → ai-src/skills/sungen-dashboard/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-delivery.md → ai-src/skills/sungen-delivery/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-gherkin-syntax.md → ai-src/skills/sungen-gherkin-syntax/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-ingest-legacy.md → ai-src/skills/sungen-ingest-legacy/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-mobile-gestures.md → ai-src/skills/sungen-mobile-gestures/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-selector-keys.md → ai-src/skills/sungen-selector-keys/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-tc-review.md → ai-src/skills/sungen-tc-review/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-test-design-techniques.md → ai-src/skills/sungen-test-design-techniques/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-viewpoint.md → ai-src/skills/sungen-viewpoint/SKILL.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-viewpoint-group-a-data-entry.md → ai-src/skills/sungen-viewpoint/group-a-data-entry.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-viewpoint-group-b-data-ops.md → ai-src/skills/sungen-viewpoint/group-b-data-ops.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-viewpoint-group-c-data-explore.md → ai-src/skills/sungen-viewpoint/group-c-data-explore.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-viewpoint-group-d-display.md → ai-src/skills/sungen-viewpoint/group-d-display.md} +0 -0
- /package/dist/orchestrator/templates/{ai-instructions/claude-skill-viewpoint-group-e-identity.md → ai-src/skills/sungen-viewpoint/group-e-identity.md} +0 -0
- /package/src/orchestrator/templates/{ai-instructions/claude-agent-challenge.md → ai-src/agents/challenge.md} +0 -0
- /package/src/orchestrator/templates/{ai-instructions/claude-agent-discovery.md → ai-src/agents/discovery.md} +0 -0
- /package/src/orchestrator/templates/{ai-instructions/claude-agent-generator.md → ai-src/agents/generator.md} +0 -0
- /package/src/orchestrator/templates/{ai-instructions/claude-agent-reviewer.md → ai-src/agents/reviewer.md} +0 -0
- /package/src/orchestrator/templates/{ai-instructions/claude-config.md → ai-src/config/claude.md} +0 -0
- /package/src/orchestrator/templates/{ai-instructions/copilot-config.md → ai-src/config/copilot.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-api-design.md → src/orchestrator/templates/ai-src/skills/sungen-api-design/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-capture.md → src/orchestrator/templates/ai-src/skills/sungen-capture/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-figma-mcp.md → src/orchestrator/templates/ai-src/skills/sungen-capture/mode-figma-mcp.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-figma-pat.md → src/orchestrator/templates/ai-src/skills/sungen-capture/mode-figma-pat.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-live.md → src/orchestrator/templates/ai-src/skills/sungen-capture/mode-live.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-capture-mode-local.md → src/orchestrator/templates/ai-src/skills/sungen-capture/mode-local.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-dashboard.md → src/orchestrator/templates/ai-src/skills/sungen-dashboard/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-delivery.md → src/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-gherkin-syntax.md → src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-ingest-legacy.md → src/orchestrator/templates/ai-src/skills/sungen-ingest-legacy/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-mobile-gestures.md → src/orchestrator/templates/ai-src/skills/sungen-mobile-gestures/SKILL.md} +0 -0
- /package/src/orchestrator/templates/{ai-instructions/claude-skill-selector-keys.md → ai-src/skills/sungen-selector-keys/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-tc-review.md → src/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-test-design-techniques.md → src/orchestrator/templates/ai-src/skills/sungen-test-design-techniques/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint.md → src/orchestrator/templates/ai-src/skills/sungen-viewpoint/SKILL.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-a-data-entry.md → src/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-a-data-entry.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-b-data-ops.md → src/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-b-data-ops.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-c-data-explore.md → src/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-c-data-explore.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-d-display.md → src/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-d-display.md} +0 -0
- /package/{dist/orchestrator/templates/ai-instructions/github-skill-sungen-viewpoint-group-e-identity.md → src/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-e-identity.md} +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: delivery
|
|
3
|
-
description:
|
|
3
|
+
description: "Export Gherkin scenarios + Playwright results to CSV test case file for QA delivery."
|
|
4
4
|
argument-hint: "[screen-name...] [--env <locale>] (omit screens for all; --env for locale-specific export)"
|
|
5
|
-
|
|
5
|
+
order: 50
|
|
6
|
+
claude-tools: "Bash, Read, AskUserQuestion"
|
|
7
|
+
copilot-tools: "[read, execute, edit, vscode/askQuestions]"
|
|
8
|
+
codex-trigger: "Run when the user asks to EXPORT or deliver test cases to CSV/XLSX for QA hand-off. Final step. Do NOT use for creating or running tests."
|
|
6
9
|
---
|
|
7
|
-
|
|
8
10
|
## Role
|
|
9
11
|
|
|
10
12
|
You are a **QA Test Delivery Engineer**. Your job is to invoke the deterministic `sungen delivery` CLI that performs all parsing and CSV export. Your role is minimal — just run the CLI and help the user if pre-flight checks fail.
|
|
@@ -12,7 +14,12 @@ You are a **QA Test Delivery Engineer**. Your job is to invoke the deterministic
|
|
|
12
14
|
## Parameters
|
|
13
15
|
|
|
14
16
|
Parse from `$ARGUMENTS`:
|
|
17
|
+
{{#cap parallel-subagents}}
|
|
15
18
|
- **screens** — zero or more screen/flow names. Empty → CLI processes all targets in `qa/screens/` + `qa/flows/`.
|
|
19
|
+
{{/cap}}
|
|
20
|
+
{{^cap parallel-subagents}}
|
|
21
|
+
- **names** — zero or more screen/flow names. Empty → CLI processes all targets in `qa/screens/` + `qa/flows/`.
|
|
22
|
+
{{/cap}}
|
|
16
23
|
- **`--env <locale>`** — optional. Sets `SUNGEN_ENV=<locale>` for the run so the CLI merges `<name>.<locale>.yaml` over the base test-data and writes `<name>-testcases.<locale>.csv` / `.xlsx`. Accept `--locale <locale>` as an alias.
|
|
17
24
|
|
|
18
25
|
If `--env` is passed but no value follows, ask the user which locale to use.
|
|
@@ -21,21 +28,47 @@ If `--env` is passed but no value follows, ask the user which locale to use.
|
|
|
21
28
|
|
|
22
29
|
### 1. Invoke the CLI
|
|
23
30
|
|
|
31
|
+
{{#cap parallel-subagents}}
|
|
24
32
|
Run via Bash (single command, no extra parsing). Prefer the local `./bin/sungen.js` when it exists — the sungen monorepo ships local-only features the global npm package doesn't have yet (multi-sheet locale aggregation, `.<env>` filename suffix, locale-aware step rendering). Fall back to `npx sungen` in downstream projects.
|
|
33
|
+
{{/cap}}
|
|
34
|
+
{{^cap parallel-subagents}}
|
|
35
|
+
Run via Bash (single command, no extra parsing):
|
|
36
|
+
{{/cap}}
|
|
25
37
|
|
|
26
38
|
```bash
|
|
27
39
|
# No env — local-first dispatcher:
|
|
40
|
+
{{#cap parallel-subagents}}
|
|
28
41
|
[ -x ./bin/sungen.js ] && ./bin/sungen.js delivery <screens> || npx sungen delivery <screens>
|
|
42
|
+
{{/cap}}
|
|
43
|
+
{{^cap parallel-subagents}}
|
|
44
|
+
[ -x ./bin/sungen.js ] && ./bin/sungen.js delivery <names> || npx sungen delivery <names>
|
|
45
|
+
{{/cap}}
|
|
29
46
|
|
|
30
47
|
# Locale-specific:
|
|
48
|
+
{{#cap parallel-subagents}}
|
|
31
49
|
[ -x ./bin/sungen.js ] && SUNGEN_ENV=<locale> ./bin/sungen.js delivery <screens> || SUNGEN_ENV=<locale> npx sungen delivery <screens>
|
|
50
|
+
{{/cap}}
|
|
51
|
+
{{^cap parallel-subagents}}
|
|
52
|
+
[ -x ./bin/sungen.js ] && SUNGEN_ENV=<locale> ./bin/sungen.js delivery <names> || SUNGEN_ENV=<locale> npx sungen delivery <names>
|
|
53
|
+
{{/cap}}
|
|
32
54
|
```
|
|
33
55
|
|
|
56
|
+
{{#cap parallel-subagents}}
|
|
34
57
|
- If no screen args → omit `<screens>` (CLI processes all targets).
|
|
58
|
+
{{/cap}}
|
|
59
|
+
{{^cap parallel-subagents}}
|
|
60
|
+
- If no name args → omit `<names>` (CLI processes all targets).
|
|
61
|
+
{{/cap}}
|
|
35
62
|
- If `--env <locale>` was provided → prepend `SUNGEN_ENV=<locale>` to the command. Do NOT pass `--env` to the CLI itself — it's not a CLI flag, only a slash-command convenience.
|
|
36
63
|
|
|
37
64
|
The CLI handles:
|
|
65
|
+
{{#cap parallel-subagents}}
|
|
38
66
|
- Scope detection (all screens + flows vs specific)
|
|
67
|
+
{{/cap}}
|
|
68
|
+
{{^cap parallel-subagents}}
|
|
69
|
+
- Scope detection (all screens + flows vs specific names)
|
|
70
|
+
- Auto-detect: `qa/flows/<name>/` → flow, `qa/screens/<name>/` → screen
|
|
71
|
+
{{/cap}}
|
|
39
72
|
- Pre-flight source checks with colorful output
|
|
40
73
|
- Parsing `.feature`, `.spec.ts`, `test-data.yaml` (+ `<name>.<env>.yaml` overlay when `SUNGEN_ENV` is set), and per-target `<name>-test-result[.<env>].json`
|
|
41
74
|
- Generating CSV/XLSX at `qa/deliverables/<name>-testcases[.<env>].csv` / `.xlsx`
|
|
@@ -43,13 +76,23 @@ The CLI handles:
|
|
|
43
76
|
|
|
44
77
|
### 2. Handle pre-flight failures (if CLI exits non-zero)
|
|
45
78
|
|
|
79
|
+
{{#cap parallel-subagents}}
|
|
46
80
|
If the CLI exits with blocking issues, it will have already printed a clear table showing exactly what's missing per screen.
|
|
81
|
+
{{/cap}}
|
|
82
|
+
{{^cap parallel-subagents}}
|
|
83
|
+
If the CLI exits with blocking issues, it will have already printed a clear table showing exactly what's missing per target.
|
|
84
|
+
{{/cap}}
|
|
47
85
|
|
|
48
86
|
Use `AskUserQuestion` to offer next steps:
|
|
49
87
|
|
|
50
88
|
**Options:**
|
|
51
89
|
- **Fix missing sources** (Recommended) — Print the suggested commands from CLI output and stop. User will run those commands manually, then re-invoke `/sungen:delivery`.
|
|
90
|
+
{{#cap parallel-subagents}}
|
|
52
91
|
- **Continue with available screens** — Re-run as `npx sungen delivery <screens> --continue-on-missing` to skip screens with blocking issues.
|
|
92
|
+
{{/cap}}
|
|
93
|
+
{{^cap parallel-subagents}}
|
|
94
|
+
- **Continue with available targets** — Re-run as `npx sungen delivery <names> --continue-on-missing` to skip targets with blocking issues.
|
|
95
|
+
{{/cap}}
|
|
53
96
|
- **Cancel** — Exit.
|
|
54
97
|
|
|
55
98
|
### 3. Show summary + offer next steps (on success)
|
|
@@ -57,8 +100,14 @@ Use `AskUserQuestion` to offer next steps:
|
|
|
57
100
|
Forward the CLI's summary table to the user verbatim. Then use `AskUserQuestion`:
|
|
58
101
|
|
|
59
102
|
- **Open a specific CSV** — Help user inspect one of the exported files with Read tool.
|
|
103
|
+
{{#cap parallel-subagents}}
|
|
60
104
|
- **Run tests to refresh results** — Suggest `/sungen:run-test <screen>` to update `test-results/results.json`, then re-run delivery.
|
|
61
105
|
- **Export another screen** — User can run `/sungen:delivery <other-screen>`.
|
|
106
|
+
{{/cap}}
|
|
107
|
+
{{^cap parallel-subagents}}
|
|
108
|
+
- **Run tests to refresh results** — Suggest `/sungen-run-test <name>` to update test results, then re-run delivery.
|
|
109
|
+
- **Export another target** — User can run `/sungen-delivery <other-name>`.
|
|
110
|
+
{{/cap}}
|
|
62
111
|
- **Done** — Exit.
|
|
63
112
|
|
|
64
113
|
## Important notes
|
|
@@ -71,12 +120,27 @@ Forward the CLI's summary table to the user verbatim. Then use `AskUserQuestion`
|
|
|
71
120
|
## CLI Reference
|
|
72
121
|
|
|
73
122
|
```
|
|
123
|
+
{{#cap parallel-subagents}}
|
|
74
124
|
sungen delivery [screens...]
|
|
125
|
+
{{/cap}}
|
|
126
|
+
{{^cap parallel-subagents}}
|
|
127
|
+
sungen delivery [names...]
|
|
128
|
+
{{/cap}}
|
|
75
129
|
[--skip-preflight] Skip pre-flight checks (not recommended)
|
|
130
|
+
{{#cap parallel-subagents}}
|
|
76
131
|
[--continue-on-missing] Skip screens with blocking misses
|
|
132
|
+
{{/cap}}
|
|
133
|
+
{{^cap parallel-subagents}}
|
|
134
|
+
[--continue-on-missing] Skip targets with blocking misses
|
|
135
|
+
{{/cap}}
|
|
77
136
|
|
|
78
137
|
# Locale-aware export (env var, not a CLI flag):
|
|
138
|
+
{{#cap parallel-subagents}}
|
|
79
139
|
SUNGEN_ENV=<locale> sungen delivery [screens...]
|
|
140
|
+
{{/cap}}
|
|
141
|
+
{{^cap parallel-subagents}}
|
|
142
|
+
SUNGEN_ENV=<locale> sungen delivery [names...]
|
|
143
|
+
{{/cap}}
|
|
80
144
|
→ reads <name>.<locale>.yaml overlay, picks <name>-test-result.<locale>.json,
|
|
81
145
|
writes <name>-testcases.<locale>.csv / .xlsx
|
|
82
146
|
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design
|
|
3
|
+
description: "Alias of create-test. Generates test cases AND runs the quality harness (gate + repair). Kept for discoverability; create-test now does this by default."
|
|
4
|
+
argument-hint: [screen-name]
|
|
5
|
+
order: 15
|
|
6
|
+
claude-tools: "Read, Grep, Bash, Glob, Write, AskUserQuestion, Skill, mcp__playwright__browser_navigate, mcp__playwright__browser_snapshot, mcp__playwright__browser_take_screenshot"
|
|
7
|
+
copilot-tools: "[vscode, execute, read, agent, edit, search, web, browser, todo, 'playwright/*']"
|
|
8
|
+
codex-trigger: "Run when the user asks to capture DESIGN/visual context (Figma, live page scan, mockups) for a screen. Used before create-test. Do NOT use for writing or running tests."
|
|
9
|
+
---
|
|
10
|
+
{{#cap parallel-subagents}}
|
|
11
|
+
## `/sungen:design` is an alias of `/sungen:create-test`
|
|
12
|
+
{{/cap}}
|
|
13
|
+
{{^cap parallel-subagents}}
|
|
14
|
+
## `/sungen-design` is an alias of `/sungen-create-test`
|
|
15
|
+
{{/cap}}
|
|
16
|
+
|
|
17
|
+
{{#cap parallel-subagents}}
|
|
18
|
+
As of v3.0 the quality harness (discovery → viewpoint overview → generate → **`sungen audit` gate → repair loop** → manifest/ledger) is built into **`/sungen:create-test`** by default — the user does not need a second command to get quality.
|
|
19
|
+
{{/cap}}
|
|
20
|
+
{{^cap parallel-subagents}}
|
|
21
|
+
As of v3.0 the quality harness (discovery → viewpoint overview → generate → **`sungen audit` gate → repair loop** → manifest/ledger) is built into **`/sungen-create-test`** by default — no second command needed for quality.
|
|
22
|
+
{{/cap}}
|
|
23
|
+
|
|
24
|
+
{{#cap parallel-subagents}}
|
|
25
|
+
**Do exactly what `/sungen:create-test <name>` does.** Follow the `create-test` command instructions verbatim (including the mandatory harness gate & repair step and the `sungen-harness-audit` skill). This `design` entry exists only so the name remains discoverable for users who learned it during the beta.
|
|
26
|
+
{{/cap}}
|
|
27
|
+
{{^cap parallel-subagents}}
|
|
28
|
+
**Do exactly what `/sungen-create-test <name>` does** — follow that command verbatim, including the mandatory harness gate & repair step and the `sungen-harness-audit` skill. This entry exists only to keep the `design` name discoverable.
|
|
29
|
+
{{/cap}}
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feedback
|
|
3
|
-
description:
|
|
3
|
+
description: "Record QA feedback locally (test-design knowledge or product telemetry). Auto-attaches context and stores to .sungen/feedback/."
|
|
4
4
|
argument-hint: [message]
|
|
5
|
-
|
|
5
|
+
order: 90
|
|
6
|
+
claude-tools: "Read, Grep, Bash, Glob"
|
|
7
|
+
copilot-tools: "[vscode, execute, read, search]"
|
|
8
|
+
codex-trigger: "Run when the user wants to send FEEDBACK about sungen itself."
|
|
6
9
|
---
|
|
7
|
-
|
|
8
10
|
## Role
|
|
11
|
+
{{#cap parallel-subagents}}
|
|
9
12
|
|
|
10
13
|
You capture QA feedback and store it **locally** (no server) via `sungen feedback record`. The value is closing the learning loop inside this project — the harness can later reuse it (don't regenerate rejected viewpoints; include added ones) and it feeds the spec-change/reuse plan.
|
|
14
|
+
{{/cap}}
|
|
15
|
+
{{^cap parallel-subagents}}
|
|
16
|
+
Capture QA feedback and store it **locally** (no server) via `sungen feedback record`. Closes the learning loop inside the project; the harness can reuse it later.
|
|
17
|
+
{{/cap}}
|
|
11
18
|
|
|
12
19
|
## Steps
|
|
20
|
+
{{#cap parallel-subagents}}
|
|
13
21
|
|
|
14
22
|
1. Read the message from `$ARGUMENTS` (ask if empty).
|
|
15
23
|
2. **Classify the type** (do not over-ask — infer, confirm only if ambiguous):
|
|
@@ -22,15 +30,38 @@ You capture QA feedback and store it **locally** (no server) via `sungen feedbac
|
|
|
22
30
|
- `--decision <accept|reject|edit|add|none>`: if the feedback is a decision on an AI suggestion (e.g. "this viewpoint is wrong" → `reject`; "also test X" → `add`).
|
|
23
31
|
- `--reason <text>`: the rationale, if distinct from the message.
|
|
24
32
|
4. Run, e.g.:
|
|
33
|
+
{{/cap}}
|
|
34
|
+
{{^cap parallel-subagents}}
|
|
35
|
+
1. Read message from arguments (ask if empty).
|
|
36
|
+
2. **Classify**: `test-design` (viewpoint/scenario wrong/missing/duplicate/add), `product` (Sungen itself misbehaved), or `other`. Infer; confirm only if ambiguous.
|
|
37
|
+
3. **Auto-attach context** (don't make the user repeat): `--screen <name>` (current focus), `--target <ref>` (VP id / scenario / command / artifact), `--decision <accept|reject|edit|add|none>`, `--reason <text>`.
|
|
38
|
+
4. Run:
|
|
39
|
+
{{/cap}}
|
|
25
40
|
```bash
|
|
41
|
+
{{#cap parallel-subagents}}
|
|
26
42
|
sungen feedback record --type test-design --screen <name> \
|
|
27
43
|
--target "VP-DATA-CONSISTENCY" --decision add \
|
|
28
44
|
--message "<message>" --reason "<why>"
|
|
45
|
+
{{/cap}}
|
|
46
|
+
{{^cap parallel-subagents}}
|
|
47
|
+
sungen feedback record --type <type> --screen <name> --target "<ref>" --decision <d> --message "<msg>" --reason "<why>"
|
|
48
|
+
{{/cap}}
|
|
29
49
|
```
|
|
50
|
+
{{#cap parallel-subagents}}
|
|
30
51
|
5. Confirm what was recorded and where (`.sungen/feedback/feedback.jsonl`). Note it is **local now**; cross-project sync is opt-in and added later.
|
|
31
52
|
6. If the feedback implies a concrete next action (e.g. a missing critical viewpoint), offer it: `/sungen:design <name>` to regenerate with the gate, or `/sungen:add-flow` for a cross-screen gap.
|
|
53
|
+
{{/cap}}
|
|
54
|
+
{{^cap parallel-subagents}}
|
|
55
|
+
5. Confirm what/where (`.sungen/feedback/feedback.jsonl`). It is **local**; cross-project sync is opt-in later.
|
|
56
|
+
6. If feedback implies an action (missing critical viewpoint), offer `sungen-design <name>` (regenerate with gate) or `sungen-add-flow` (cross-screen gap).
|
|
57
|
+
{{/cap}}
|
|
32
58
|
|
|
33
59
|
## Notes
|
|
60
|
+
{{#cap parallel-subagents}}
|
|
34
61
|
- **Never send anywhere** — this only writes a local file.
|
|
35
62
|
- Keep `product` feedback separate from `test-design` so it can route to telemetry vs the viewpoint knowledge later.
|
|
36
63
|
- View history: `sungen feedback list [--screen <name>] [--type <t>]`.
|
|
64
|
+
{{/cap}}
|
|
65
|
+
{{^cap parallel-subagents}}
|
|
66
|
+
- Never send anywhere — local file only. Keep `product` vs `test-design` distinct. View: `sungen feedback list`.
|
|
67
|
+
{{/cap}}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: "Bootstrap i18n for a screen/flow — audit selectors, detect locale switch mechanism via Playwright, generate test-data overlay so `sungen:run-test --env <locale>` works."
|
|
3
3
|
argument-hint: "<name> <locale> [--base-locale <code>] [--offline]"
|
|
4
|
-
|
|
4
|
+
order: 45
|
|
5
|
+
claude-tools: "Read, Grep, Bash, Glob, Edit, Write, AskUserQuestion, mcp__playwright__browser_navigate, mcp__playwright__browser_snapshot, mcp__playwright__browser_take_screenshot, mcp__playwright__browser_wait_for, mcp__playwright__browser_evaluate, mcp__playwright__browser_click, mcp__playwright__browser_storage_state, mcp__playwright__browser_set_storage_state"
|
|
6
|
+
copilot-tools: "[read, execute, edit, vscode/askQuestions, playwright/*]"
|
|
7
|
+
codex-trigger: "Run when the user asks to bootstrap i18n/localization for a screen. Runs before run-test --env <locale>."
|
|
5
8
|
---
|
|
6
|
-
|
|
7
9
|
## Role
|
|
8
10
|
|
|
9
11
|
You are a **Senior QA Localization Engineer**. Use the `sungen-locale` skill — it contains the full phased strategy. Your job in this command is parameter parsing, context detection, and final hand-off.
|
|
@@ -11,19 +13,37 @@ You are a **Senior QA Localization Engineer**. Use the `sungen-locale` skill —
|
|
|
11
13
|
## Parameters
|
|
12
14
|
|
|
13
15
|
Parse from `$ARGUMENTS`:
|
|
16
|
+
{{#cap parallel-subagents}}
|
|
14
17
|
- **name** — screen or flow name (e.g. `home`, `awards`, `kudo-to-display-on-kudos`). If missing → AskUserQuestion.
|
|
15
18
|
- **locale** — target locale code (e.g. `en`, `ja`, `en-US`, `staging-ja`). If missing → AskUserQuestion. This becomes the suffix in `test-data/<feature>.<locale>.yaml` and `SUNGEN_ENV=<locale>` at run time.
|
|
16
19
|
- **`--base-locale <code>`** — optional. The locale of existing `test-data/<feature>.yaml`. Default `vi`. Used only for reporting/UX — files never get renamed.
|
|
17
20
|
- **`--offline`** — force OFFLINE mode (skip Playwright capture). Useful when you know the live page can't be reached or when prepping a test-only template.
|
|
18
|
-
|
|
21
|
+
{{/cap}}
|
|
22
|
+
{{^cap parallel-subagents}}
|
|
23
|
+
- **name** — screen or flow name (e.g. `home`, `awards`). If missing, ask the user.
|
|
24
|
+
- **locale** — target locale code (e.g. `en`, `ja`, `en-US`, `staging-ja`). If missing, ask. This becomes the suffix in `test-data/<feature>.<locale>.yaml` and `SUNGEN_ENV=<locale>` at run time.
|
|
25
|
+
- **`--base-locale <code>`** — optional. Locale of the existing `test-data/<feature>.yaml`. Default `vi`. Reporting only — files are never renamed.
|
|
26
|
+
- **`--offline`** — force OFFLINE mode (skip Playwright capture). Useful when you know the live page can't be reached.
|
|
27
|
+
{{/cap}}
|
|
28
|
+
|
|
29
|
+
{{#cap parallel-subagents}}
|
|
19
30
|
Reject if name == locale (common typo).
|
|
31
|
+
{{/cap}}
|
|
32
|
+
{{^cap parallel-subagents}}
|
|
33
|
+
Reject if name == locale.
|
|
34
|
+
{{/cap}}
|
|
20
35
|
|
|
21
36
|
## Auto-detect context
|
|
22
37
|
|
|
23
38
|
Same as `/sungen:run-test`:
|
|
24
39
|
- `qa/flows/<name>/` exists → flow mode (base path: `qa/flows/<name>/`)
|
|
25
40
|
- Else `qa/screens/<name>/` exists → screen mode (base path: `qa/screens/<name>/`)
|
|
41
|
+
{{#cap parallel-subagents}}
|
|
26
42
|
- Neither exists → tell user and stop
|
|
43
|
+
{{/cap}}
|
|
44
|
+
{{^cap parallel-subagents}}
|
|
45
|
+
- Neither → tell user and stop
|
|
46
|
+
{{/cap}}
|
|
27
47
|
|
|
28
48
|
## Steps
|
|
29
49
|
|
|
@@ -39,15 +59,27 @@ The `sungen-locale` skill defines 7 phases. Execute them in order:
|
|
|
39
59
|
|
|
40
60
|
**Mode selection** happens at the start of Phase 2:
|
|
41
61
|
|
|
62
|
+
{{#cap parallel-subagents}}
|
|
42
63
|
- If `--offline` flag → OFFLINE mode (skip Phases 2-4, Phase 5 shows empty `target text` column for user to fill manually).
|
|
43
64
|
- Else try `browser_navigate(baseURL)` — if it succeeds and page renders content → LIVE mode.
|
|
44
65
|
- If navigate fails / page redirects to login / shows blocker → fall back to OFFLINE mode automatically. Announce the fallback clearly so the user knows what they got.
|
|
66
|
+
{{/cap}}
|
|
67
|
+
{{^cap parallel-subagents}}
|
|
68
|
+
- If `--offline` flag → OFFLINE mode (skip Phases 2-4).
|
|
69
|
+
- Else try `browser_navigate(baseURL)` — succeeds + page renders content → LIVE mode.
|
|
70
|
+
- If navigate fails / page redirects to login / shows blocker → fall back to OFFLINE mode automatically. Announce the fallback clearly.
|
|
71
|
+
{{/cap}}
|
|
45
72
|
|
|
46
73
|
## Enumerate features
|
|
47
74
|
|
|
75
|
+
{{#cap parallel-subagents}}
|
|
48
76
|
For multi-feature screens (e.g. `home` has `home.feature` + `home-modal.feature`), run Phases 1, 4, 6 once **per feature file**; run Phases 2 & 3 (live capture + mechanism detection) **once per screen** — the mechanism doesn't change between features in the same screen.
|
|
49
77
|
|
|
50
78
|
Discover features the same way delivery does:
|
|
79
|
+
{{/cap}}
|
|
80
|
+
{{^cap parallel-subagents}}
|
|
81
|
+
Multi-feature screens (e.g. `home` has `home.feature` + `home-modal.feature`): run Phases 1, 4, 6 **per feature file**; Phases 2 & 3 (live capture + mechanism detection) **once per screen** — the locale mechanism is the same.
|
|
82
|
+
{{/cap}}
|
|
51
83
|
|
|
52
84
|
```bash
|
|
53
85
|
ls qa/screens/<name>/features/*.feature
|
|
@@ -57,15 +89,35 @@ ls qa/flows/<name>/features/*.feature
|
|
|
57
89
|
|
|
58
90
|
## After Phase 7
|
|
59
91
|
|
|
92
|
+
{{#cap parallel-subagents}}
|
|
60
93
|
Use `AskUserQuestion` to offer next steps:
|
|
94
|
+
{{/cap}}
|
|
95
|
+
{{^cap parallel-subagents}}
|
|
96
|
+
Offer the user:
|
|
97
|
+
{{/cap}}
|
|
61
98
|
|
|
99
|
+
{{#cap parallel-subagents}}
|
|
62
100
|
- **`/sungen:run-test <name> --env <locale>`** — Run the tests against the new locale (Recommended)
|
|
63
101
|
- **`/sungen:locale <name> <other-locale>`** — Bootstrap another locale (e.g. add `ja` after `en`)
|
|
64
102
|
- **Open the overlay file** — Show `test-data/<feature>.<locale>.yaml` so user can review / edit before running
|
|
65
103
|
- **Done** — Stop
|
|
104
|
+
{{/cap}}
|
|
105
|
+
{{^cap parallel-subagents}}
|
|
106
|
+
- **`/sungen:run-test <name> --env <locale>`** — Run tests against the new locale (Recommended)
|
|
107
|
+
- **`/sungen:locale <name> <other-locale>`** — Bootstrap another locale
|
|
108
|
+
- **Open the overlay file** for review/edit
|
|
109
|
+
- **Done**
|
|
110
|
+
{{/cap}}
|
|
66
111
|
|
|
67
112
|
## Notes
|
|
68
113
|
|
|
114
|
+
{{#cap parallel-subagents}}
|
|
69
115
|
- Do NOT run tests yourself. `/sungen:run-test` is the executor. This command only PREPS files.
|
|
70
116
|
- Do NOT modify `.feature` files. Localization happens entirely through `selectors/*.yaml` + `test-data/*.yaml`.
|
|
71
117
|
- Auth blocker on SAA staging? Use `--offline`. See [[saa-auth-blocker]] memory.
|
|
118
|
+
{{/cap}}
|
|
119
|
+
{{^cap parallel-subagents}}
|
|
120
|
+
- Do NOT run tests yourself. `/sungen:run-test` is the executor; this command only PREPS files.
|
|
121
|
+
- Do NOT modify `.feature` files. Localization lives in `selectors/*.yaml` + `test-data/*.yaml` only.
|
|
122
|
+
- Auth blocked? Use `--offline`.
|
|
123
|
+
{{/cap}}
|
|
@@ -1,36 +1,84 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review
|
|
3
|
-
description:
|
|
3
|
+
description: "Independent quality checkpoint for test cases — runs the harness (audit gate + reviewer + script-check) from a fresh context and presents one unified scorecard. Use for manually/prompt-authored or hand-edited testcases, before delivery, or in CI."
|
|
4
4
|
argument-hint: [screen-name]
|
|
5
|
-
|
|
5
|
+
order: 30
|
|
6
|
+
claude-tools: "Read, Grep, Glob, Bash, Edit, Write, AskUserQuestion"
|
|
7
|
+
copilot-tools: "[vscode, execute, read, edit, search, todo]"
|
|
8
|
+
codex-trigger: "Run when the user asks to REVIEW or score the quality of already-generated test cases. Step 3 (between create-test and run-test). Do NOT use for creating or running tests."
|
|
6
9
|
---
|
|
10
|
+
{{^cap parallel-subagents}}
|
|
11
|
+
**Input**: Screen or flow name (e.g., `/sungen-review admin-users`).
|
|
7
12
|
|
|
13
|
+
{{/cap}}
|
|
8
14
|
## Role
|
|
9
15
|
|
|
16
|
+
{{#cap parallel-subagents}}
|
|
10
17
|
You are an **independent QA Reviewer** running in a **fresh context** — you did not author these tests. You do **not** invent a parallel score; you run the **harness** and present its signals as a human scorecard. Skills: `sungen-tc-review` (presentation rubric), `sungen-viewpoint`, `sungen-gherkin-syntax`.
|
|
18
|
+
{{/cap}}
|
|
19
|
+
{{^cap parallel-subagents}}
|
|
20
|
+
You are an **independent QA Reviewer** — you did not author these tests. You do **not** invent a parallel score; you run the **harness** and present its signals as a human scorecard. Skills: `sungen-tc-review` (presentation rubric), `sungen-viewpoint`, `sungen-gherkin-syntax`.
|
|
21
|
+
{{/cap}}
|
|
11
22
|
|
|
23
|
+
{{#cap parallel-subagents}}
|
|
12
24
|
## When this matters (positioning)
|
|
25
|
+
{{/cap}}
|
|
26
|
+
{{^cap parallel-subagents}}
|
|
27
|
+
## When this matters
|
|
28
|
+
{{/cap}}
|
|
13
29
|
|
|
30
|
+
{{#cap parallel-subagents}}
|
|
14
31
|
`/sungen:create-test` already runs the harness gate + repair while generating, so you do **not** need to review right after it. Run `/sungen:review` when the harness did **not** run, or when you need an independent sign-off:
|
|
15
32
|
- Test cases **written by hand or by a free-form prompt** (bypassing create-test).
|
|
16
33
|
- A `.feature` that was **hand-edited** after generation.
|
|
17
34
|
- **Before `/sungen:delivery`** — an independent quality + integrity gate before client hand-off.
|
|
18
35
|
- In **CI** — fail the build on a failing gate or spec drift.
|
|
36
|
+
{{/cap}}
|
|
37
|
+
{{^cap parallel-subagents}}
|
|
38
|
+
`/sungen-create-test` already runs the harness gate while generating, so you don't need to review right after it. Run `/sungen-review` when the harness did **not** run or you need an independent sign-off: hand/prompt-authored testcases, a hand-edited `.feature`, **before `/sungen-delivery`**, or in **CI**.
|
|
39
|
+
{{/cap}}
|
|
19
40
|
|
|
41
|
+
{{#cap parallel-subagents}}
|
|
20
42
|
## Steps
|
|
43
|
+
{{/cap}}
|
|
44
|
+
{{^cap parallel-subagents}}
|
|
45
|
+
## Parameters
|
|
46
|
+
- **name** — ${input:name:screen or flow name}
|
|
47
|
+
**Auto-detect context**: `qa/flows/<name>/` → flow, else `qa/screens/<name>/` → screen.
|
|
48
|
+
{{/cap}}
|
|
21
49
|
|
|
50
|
+
{{#cap parallel-subagents}}
|
|
22
51
|
1. **Enumerate feature files** — glob `<base>/<name>/features/*.feature` (main + any sub-features). If none → `/sungen:create-test` first.
|
|
23
52
|
2. **Run the harness (source of truth) — do NOT re-score with a separate rubric:**
|
|
24
53
|
- `sungen audit --screen <name>` (Bash) → gate status, business-weighted score, findings, gaps (coverage / assertion-depth / balance / duplicate / traceability).
|
|
25
54
|
- **`sungen-reviewer`** sub-agent (Task tool, `subagent_type: sungen-reviewer`) → semantic verdict the gate can't see (do steps prove the title, observable Then, @manual justified). Copilot/no-sub-agents: apply the `sungen-reviewer` criteria inline.
|
|
26
55
|
- `sungen script-check --screen <name>` (Bash) → is the generated spec a 1:1 of the Gherkin (only if a spec exists; flags hand-edit / stale drift).
|
|
27
56
|
3. **Unified scorecard** — present ONE report per feature, anchored on the harness signals (the `sungen-tc-review` 7 dimensions are a *presentation layer* over these, not a competing score):
|
|
57
|
+
{{/cap}}
|
|
58
|
+
{{^cap parallel-subagents}}
|
|
59
|
+
## Steps
|
|
60
|
+
{{/cap}}
|
|
28
61
|
|
|
62
|
+
{{^cap parallel-subagents}}
|
|
63
|
+
1. **Enumerate** `<base>/${input:name}/features/*.feature`. If none → `/sungen-create-test` first.
|
|
64
|
+
2. **Run the harness (source of truth) — no separate rubric:**
|
|
65
|
+
- `sungen audit --screen ${input:name}` → gate, business-weighted score, findings, gaps.
|
|
66
|
+
- Apply the **`sungen-reviewer` criteria inline** → semantic verdict (do steps prove the title? observable Then? business-critical depth? @manual justified?).
|
|
67
|
+
- `sungen script-check --screen ${input:name}` → spec is 1:1 with the Gherkin (flags hand-edit / stale drift; only if a spec exists).
|
|
68
|
+
3. **Unified scorecard** per feature, anchored on harness signals (the `sungen-tc-review` 7 dimensions are a presentation layer, not a competing score):
|
|
69
|
+
{{/cap}}
|
|
29
70
|
```
|
|
71
|
+
{{#cap parallel-subagents}}
|
|
30
72
|
Feature Gate Score Reviewer Spec 1:1 Verdict
|
|
31
73
|
───────────────────────────────────────────────────────────────────
|
|
32
74
|
home.feature PASS 8.4/10 2 minor issues in-sync PASS
|
|
75
|
+
{{/cap}}
|
|
76
|
+
{{^cap parallel-subagents}}
|
|
77
|
+
Feature Gate Score Reviewer Spec 1:1 Verdict
|
|
78
|
+
home.feature PASS 8.4/10 2 minor issues in-sync PASS
|
|
79
|
+
{{/cap}}
|
|
33
80
|
```
|
|
81
|
+
{{#cap parallel-subagents}}
|
|
34
82
|
- **Gate PASS + reviewer clean + spec in-sync** → PASS.
|
|
35
83
|
- **Gate FAIL or reviewer NEEDS-REPAIR or drift** → CONDITIONAL/FAIL — show the findings + reviewer issues + fixes.
|
|
36
84
|
- The score is the **audit business-weighted score** adjusted down by unresolved reviewer issues — never a parallel number that contradicts the gate.
|
|
@@ -40,3 +88,10 @@ You are an **independent QA Reviewer** running in a **fresh context** — you di
|
|
|
40
88
|
- **`/sungen:delivery <name>`** — export the deliverable (review passed)
|
|
41
89
|
- **`/sungen:create-test <name>`** — add more coverage
|
|
42
90
|
- **Done for now**
|
|
91
|
+
{{/cap}}
|
|
92
|
+
{{^cap parallel-subagents}}
|
|
93
|
+
PASS = gate PASS + reviewer clean + spec in-sync. Else CONDITIONAL/FAIL with findings + fixes. Score = audit score adjusted by unresolved reviewer issues — never contradicting the gate.
|
|
94
|
+
4. **Repair (on confirm)** — apply audit findings + reviewer fixes (use `remember`/`see all` per `sungen-harness-audit`), re-run step 2 on the affected file. On drift → `sungen generate` to resync (never hand-edit the spec).
|
|
95
|
+
5. **Trace + next** — `sungen trace --screen ${input:name}` (human-loop focus), then offer:
|
|
96
|
+
- **`/sungen-run-test ${input:name}`** (Recommended) · **`/sungen-delivery ${input:name}`** · **`/sungen-create-test ${input:name}`** · Done.
|
|
97
|
+
{{/cap}}
|