eai-cli 0.0.0-bootstrap.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +183 -0
- package/NOTICE +4 -0
- package/README.md +14 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +69 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/blocks.d.ts +3 -0
- package/dist/commands/blocks.d.ts.map +1 -0
- package/dist/commands/blocks.js +249 -0
- package/dist/commands/blocks.js.map +1 -0
- package/dist/commands/chat.d.ts +6 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +105 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/deploy.d.ts +36 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +712 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +15 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +133 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs.d.ts +6 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +118 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/env.d.ts +10 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +200 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/errors.d.ts +3 -0
- package/dist/commands/errors.d.ts.map +1 -0
- package/dist/commands/errors.js +72 -0
- package/dist/commands/errors.js.map +1 -0
- package/dist/commands/gofer.d.ts +3 -0
- package/dist/commands/gofer.d.ts.map +1 -0
- package/dist/commands/gofer.js +134 -0
- package/dist/commands/gofer.js.map +1 -0
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1437 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +117 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/provision.d.ts +6 -0
- package/dist/commands/provision.d.ts.map +1 -0
- package/dist/commands/provision.js +855 -0
- package/dist/commands/provision.js.map +1 -0
- package/dist/commands/publicapi.d.ts +6 -0
- package/dist/commands/publicapi.d.ts.map +1 -0
- package/dist/commands/publicapi.js +184 -0
- package/dist/commands/publicapi.js.map +1 -0
- package/dist/commands/resources.d.ts +38 -0
- package/dist/commands/resources.d.ts.map +1 -0
- package/dist/commands/resources.js +1010 -0
- package/dist/commands/resources.js.map +1 -0
- package/dist/commands/runtime.d.ts +3 -0
- package/dist/commands/runtime.d.ts.map +1 -0
- package/dist/commands/runtime.js +78 -0
- package/dist/commands/runtime.js.map +1 -0
- package/dist/commands/template.d.ts +3 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +365 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/tenant.d.ts +45 -0
- package/dist/commands/tenant.d.ts.map +1 -0
- package/dist/commands/tenant.js +1036 -0
- package/dist/commands/tenant.js.map +1 -0
- package/dist/commands/types.d.ts +130 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +1636 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +163 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/user.d.ts +6 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +359 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/verify.d.ts +40 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +1442 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/vertical.d.ts +24 -0
- package/dist/commands/vertical.d.ts.map +1 -0
- package/dist/commands/vertical.js +301 -0
- package/dist/commands/vertical.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +73 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/commands/workflow.d.ts +6 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +400 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +272 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent-guide.d.ts +24 -0
- package/dist/lib/agent-guide.d.ts.map +1 -0
- package/dist/lib/agent-guide.js +155 -0
- package/dist/lib/agent-guide.js.map +1 -0
- package/dist/lib/api.d.ts +338 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +991 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auth.d.ts +65 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +592 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/azure-cli.d.ts +6 -0
- package/dist/lib/azure-cli.d.ts.map +1 -0
- package/dist/lib/azure-cli.js +13 -0
- package/dist/lib/azure-cli.js.map +1 -0
- package/dist/lib/block-catalog-normalize.d.ts +47 -0
- package/dist/lib/block-catalog-normalize.d.ts.map +1 -0
- package/dist/lib/block-catalog-normalize.js +355 -0
- package/dist/lib/block-catalog-normalize.js.map +1 -0
- package/dist/lib/block-catalog-types.d.ts +111 -0
- package/dist/lib/block-catalog-types.d.ts.map +1 -0
- package/dist/lib/block-catalog-types.js +41 -0
- package/dist/lib/block-catalog-types.js.map +1 -0
- package/dist/lib/block-catalog-utils.d.ts +7 -0
- package/dist/lib/block-catalog-utils.d.ts.map +1 -0
- package/dist/lib/block-catalog-utils.js +47 -0
- package/dist/lib/block-catalog-utils.js.map +1 -0
- package/dist/lib/block-catalog-validation.d.ts +5 -0
- package/dist/lib/block-catalog-validation.d.ts.map +1 -0
- package/dist/lib/block-catalog-validation.js +112 -0
- package/dist/lib/block-catalog-validation.js.map +1 -0
- package/dist/lib/block-catalog.d.ts +3 -0
- package/dist/lib/block-catalog.d.ts.map +1 -0
- package/dist/lib/block-catalog.js +284 -0
- package/dist/lib/block-catalog.js.map +1 -0
- package/dist/lib/cloud-env.d.ts +25 -0
- package/dist/lib/cloud-env.d.ts.map +1 -0
- package/dist/lib/cloud-env.js +79 -0
- package/dist/lib/cloud-env.js.map +1 -0
- package/dist/lib/config.d.ts +116 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +195 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/context.d.ts +43 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/context.js +68 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/error-codes.d.ts +56 -0
- package/dist/lib/error-codes.d.ts.map +1 -0
- package/dist/lib/error-codes.js +211 -0
- package/dist/lib/error-codes.js.map +1 -0
- package/dist/lib/error-guidance/catalog.d.ts +648 -0
- package/dist/lib/error-guidance/catalog.d.ts.map +1 -0
- package/dist/lib/error-guidance/catalog.js +940 -0
- package/dist/lib/error-guidance/catalog.js.map +1 -0
- package/dist/lib/error-guidance/match.d.ts +3 -0
- package/dist/lib/error-guidance/match.d.ts.map +1 -0
- package/dist/lib/error-guidance/match.js +46 -0
- package/dist/lib/error-guidance/match.js.map +1 -0
- package/dist/lib/error-guidance/render.d.ts +5 -0
- package/dist/lib/error-guidance/render.d.ts.map +1 -0
- package/dist/lib/error-guidance/render.js +92 -0
- package/dist/lib/error-guidance/render.js.map +1 -0
- package/dist/lib/error-guidance/types.d.ts +76 -0
- package/dist/lib/error-guidance/types.d.ts.map +1 -0
- package/dist/lib/error-guidance/types.js +2 -0
- package/dist/lib/error-guidance/types.js.map +1 -0
- package/dist/lib/error-guidance/validate.d.ts +3 -0
- package/dist/lib/error-guidance/validate.d.ts.map +1 -0
- package/dist/lib/error-guidance/validate.js +59 -0
- package/dist/lib/error-guidance/validate.js.map +1 -0
- package/dist/lib/gofer-installer.d.ts +32 -0
- package/dist/lib/gofer-installer.d.ts.map +1 -0
- package/dist/lib/gofer-installer.js +589 -0
- package/dist/lib/gofer-installer.js.map +1 -0
- package/dist/lib/gofer-refresh.d.ts +46 -0
- package/dist/lib/gofer-refresh.d.ts.map +1 -0
- package/dist/lib/gofer-refresh.js +536 -0
- package/dist/lib/gofer-refresh.js.map +1 -0
- package/dist/lib/next-route-exports.d.ts +6 -0
- package/dist/lib/next-route-exports.d.ts.map +1 -0
- package/dist/lib/next-route-exports.js +127 -0
- package/dist/lib/next-route-exports.js.map +1 -0
- package/dist/lib/npm.d.ts +2 -0
- package/dist/lib/npm.d.ts.map +1 -0
- package/dist/lib/npm.js +4 -0
- package/dist/lib/npm.js.map +1 -0
- package/dist/lib/object-type-defaults.d.ts +4 -0
- package/dist/lib/object-type-defaults.d.ts.map +1 -0
- package/dist/lib/object-type-defaults.js +72 -0
- package/dist/lib/object-type-defaults.js.map +1 -0
- package/dist/lib/output.d.ts +35 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +166 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/profile.d.ts +52 -0
- package/dist/lib/profile.d.ts.map +1 -0
- package/dist/lib/profile.js +116 -0
- package/dist/lib/profile.js.map +1 -0
- package/dist/lib/project-manifest.d.ts +42 -0
- package/dist/lib/project-manifest.d.ts.map +1 -0
- package/dist/lib/project-manifest.js +191 -0
- package/dist/lib/project-manifest.js.map +1 -0
- package/dist/lib/resourceapi-bundle.d.ts +33 -0
- package/dist/lib/resourceapi-bundle.d.ts.map +1 -0
- package/dist/lib/resourceapi-bundle.js +79 -0
- package/dist/lib/resourceapi-bundle.js.map +1 -0
- package/dist/lib/runtime-contract.d.ts +84 -0
- package/dist/lib/runtime-contract.d.ts.map +1 -0
- package/dist/lib/runtime-contract.js +318 -0
- package/dist/lib/runtime-contract.js.map +1 -0
- package/dist/lib/schema-builder.d.ts +28 -0
- package/dist/lib/schema-builder.d.ts.map +1 -0
- package/dist/lib/schema-builder.js +69 -0
- package/dist/lib/schema-builder.js.map +1 -0
- package/dist/lib/tenant-context.d.ts +127 -0
- package/dist/lib/tenant-context.d.ts.map +1 -0
- package/dist/lib/tenant-context.js +573 -0
- package/dist/lib/tenant-context.js.map +1 -0
- package/dist/lib/update-check.d.ts +52 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +271 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/update-maintenance.d.ts +15 -0
- package/dist/lib/update-maintenance.d.ts.map +1 -0
- package/dist/lib/update-maintenance.js +187 -0
- package/dist/lib/update-maintenance.js.map +1 -0
- package/dist/lib/utils.d.ts +23 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +48 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/workflow-provisioning.d.ts +54 -0
- package/dist/lib/workflow-provisioning.d.ts.map +1 -0
- package/dist/lib/workflow-provisioning.js +281 -0
- package/dist/lib/workflow-provisioning.js.map +1 -0
- package/package.json +51 -0
- package/resources/gofer/.gofer-version +7 -0
- package/resources/gofer/agents-skills/0_gofer_start/SKILL.md +1287 -0
- package/resources/gofer/agents-skills/0a_problem_validation/SKILL.md +429 -0
- package/resources/gofer/agents-skills/10_gofer_cloud/SKILL.md +635 -0
- package/resources/gofer/agents-skills/1_gofer_research/SKILL.md +1159 -0
- package/resources/gofer/agents-skills/2_gofer_specify/SKILL.md +860 -0
- package/resources/gofer/agents-skills/3_gofer_plan/SKILL.md +886 -0
- package/resources/gofer/agents-skills/4_gofer_tasks/SKILL.md +748 -0
- package/resources/gofer/agents-skills/5_gofer_implement/SKILL.md +924 -0
- package/resources/gofer/agents-skills/6_gofer_validate/SKILL.md +2269 -0
- package/resources/gofer/agents-skills/7_gofer_save/SKILL.md +423 -0
- package/resources/gofer/agents-skills/7a_stakeholder_comms/SKILL.md +508 -0
- package/resources/gofer/agents-skills/8_gofer_branding/SKILL.md +315 -0
- package/resources/gofer/agents-skills/9_gofer_tests/SKILL.md +558 -0
- package/resources/gofer/agents-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
- package/resources/gofer/agents-skills/gofer_check_workspace/SKILL.md +119 -0
- package/resources/gofer/agents-skills/gofer_constitution/SKILL.md +612 -0
- package/resources/gofer/agents-skills/gofer_diagnose/SKILL.md +114 -0
- package/resources/gofer/agents-skills/gofer_eai_first_run/SKILL.md +397 -0
- package/resources/gofer/agents-skills/gofer_hydrate/SKILL.md +561 -0
- package/resources/gofer/agents-skills/gofer_personality/SKILL.md +44 -0
- package/resources/gofer/agents-skills/gofer_plan/SKILL.md +40 -0
- package/resources/gofer/agents-skills/gofer_side/SKILL.md +45 -0
- package/resources/gofer/agents-skills/gofer_spec_summary/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_tdd/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_vocabulary/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_zoom_out/SKILL.md +112 -0
- package/resources/gofer/bash-scripts/check-context-health.sh +365 -0
- package/resources/gofer/bash-scripts/check-persona-pack.sh +81 -0
- package/resources/gofer/bash-scripts/check-prerequisites.sh +168 -0
- package/resources/gofer/bash-scripts/common.sh +192 -0
- package/resources/gofer/bash-scripts/create-new-feature.sh +260 -0
- package/resources/gofer/bash-scripts/install-optional-tools.sh +270 -0
- package/resources/gofer/bash-scripts/log-stage.sh +224 -0
- package/resources/gofer/bash-scripts/mark-task-complete.sh +74 -0
- package/resources/gofer/bash-scripts/pipeline-state.sh +306 -0
- package/resources/gofer/bash-scripts/read-failed-approaches.sh +114 -0
- package/resources/gofer/bash-scripts/read-session-memories.sh +96 -0
- package/resources/gofer/bash-scripts/save-checkpoint.sh +407 -0
- package/resources/gofer/bash-scripts/setup-plan.sh +62 -0
- package/resources/gofer/bash-scripts/sync-implementation-status.sh +47 -0
- package/resources/gofer/bash-scripts/update-agent-context.sh +772 -0
- package/resources/gofer/bash-scripts/validate-artifact.sh +335 -0
- package/resources/gofer/bash-scripts/verify-task.sh +384 -0
- package/resources/gofer/bash-scripts/write-failed-approach.sh +110 -0
- package/resources/gofer/bash-scripts/write-periodic-checkpoint.sh +128 -0
- package/resources/gofer/bash-scripts/write-session-memory.sh +118 -0
- package/resources/gofer/claude-agents/assumption-tracker.md +168 -0
- package/resources/gofer/claude-agents/business-metrics-analyzer.md +169 -0
- package/resources/gofer/claude-agents/business-problem-validator.md +168 -0
- package/resources/gofer/claude-agents/codebase-analyzer.md +124 -0
- package/resources/gofer/claude-agents/codebase-locator.md +95 -0
- package/resources/gofer/claude-agents/codebase-pattern-finder.md +180 -0
- package/resources/gofer/claude-agents/comms-writer.md +158 -0
- package/resources/gofer/claude-agents/engineer-review.md +169 -0
- package/resources/gofer/claude-agents/implement-bug-triangulator.md +94 -0
- package/resources/gofer/claude-agents/implement-code-review-council.md +89 -0
- package/resources/gofer/claude-agents/implement-doc-writer.md +89 -0
- package/resources/gofer/claude-agents/implement-error-hardener.md +84 -0
- package/resources/gofer/claude-agents/implement-performance-explorer.md +95 -0
- package/resources/gofer/claude-agents/implement-test-diversifier.md +82 -0
- package/resources/gofer/claude-agents/implement-variant-generator.md +80 -0
- package/resources/gofer/claude-agents/multi-perspective-judge.md +114 -0
- package/resources/gofer/claude-agents/plan-api-comparator.md +90 -0
- package/resources/gofer/claude-agents/plan-architecture-diverger.md +100 -0
- package/resources/gofer/claude-agents/plan-data-model-stress-tester.md +95 -0
- package/resources/gofer/claude-agents/plan-migration-path-finder.md +95 -0
- package/resources/gofer/claude-agents/plan-refactor-rewrite-advisor.md +97 -0
- package/resources/gofer/claude-agents/research-dependency-evaluator.md +106 -0
- package/resources/gofer/claude-agents/research-horizon-scanner.md +100 -0
- package/resources/gofer/claude-agents/research-market-scanner.md +137 -0
- package/resources/gofer/claude-agents/research-perspective-multiplier.md +102 -0
- package/resources/gofer/claude-agents/scope-creep-detector.md +152 -0
- package/resources/gofer/claude-agents/specify-ambiguity-detector.md +95 -0
- package/resources/gofer/claude-agents/specify-journey-stress-tester.md +92 -0
- package/resources/gofer/claude-agents/tasks-cross-cutting-scanner.md +91 -0
- package/resources/gofer/claude-agents/tasks-rollback-planner.md +89 -0
- package/resources/gofer/claude-agents/validate-security-red-team.md +102 -0
- package/resources/gofer/claude-agents/validation-correctness.md +103 -0
- package/resources/gofer/claude-agents/validation-integration.md +129 -0
- package/resources/gofer/claude-agents/validation-performance.md +120 -0
- package/resources/gofer/claude-agents/validation-security.md +115 -0
- package/resources/gofer/claude-agents/validation-standards.md +151 -0
- package/resources/gofer/claude-agents/validation-test-quality.md +146 -0
- package/resources/gofer/claude-agents/visual-bounded-context-writer.md +40 -0
- package/resources/gofer/claude-agents/visual-c4-writer.md +45 -0
- package/resources/gofer/claude-agents/visual-erd-writer.md +34 -0
- package/resources/gofer/claude-agents/visual-heatmap-writer.md +63 -0
- package/resources/gofer/claude-agents/visual-risk-writer.md +64 -0
- package/resources/gofer/claude-commands/0_gofer_start.md +1282 -0
- package/resources/gofer/claude-commands/0a_problem_validation.md +424 -0
- package/resources/gofer/claude-commands/10_gofer_cloud.md +630 -0
- package/resources/gofer/claude-commands/1_gofer_research.md +1154 -0
- package/resources/gofer/claude-commands/2_gofer_specify.md +855 -0
- package/resources/gofer/claude-commands/3_gofer_plan.md +881 -0
- package/resources/gofer/claude-commands/4_gofer_tasks.md +743 -0
- package/resources/gofer/claude-commands/5_gofer_implement.md +919 -0
- package/resources/gofer/claude-commands/6_gofer_validate.md +2264 -0
- package/resources/gofer/claude-commands/7_gofer_save.md +418 -0
- package/resources/gofer/claude-commands/7a_stakeholder_comms.md +503 -0
- package/resources/gofer/claude-commands/8_gofer_branding.md +310 -0
- package/resources/gofer/claude-commands/9_gofer_tests.md +553 -0
- package/resources/gofer/claude-commands/gofer_bootstrap_workspace.md +143 -0
- package/resources/gofer/claude-commands/gofer_check_workspace.md +114 -0
- package/resources/gofer/claude-commands/gofer_constitution.md +607 -0
- package/resources/gofer/claude-commands/gofer_diagnose.md +109 -0
- package/resources/gofer/claude-commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/claude-commands/gofer_hydrate.md +556 -0
- package/resources/gofer/claude-commands/gofer_personality.md +39 -0
- package/resources/gofer/claude-commands/gofer_plan.md +35 -0
- package/resources/gofer/claude-commands/gofer_side.md +40 -0
- package/resources/gofer/claude-commands/gofer_spec_summary.md +107 -0
- package/resources/gofer/claude-commands/gofer_tdd.md +107 -0
- package/resources/gofer/claude-commands/gofer_vocabulary.md +107 -0
- package/resources/gofer/claude-commands/gofer_zoom_out.md +107 -0
- package/resources/gofer/claude-skills/eai-gofer/SKILL.md +56 -0
- package/resources/gofer/commands/.gitkeep +0 -0
- package/resources/gofer/commands/0_gofer_start.md +1299 -0
- package/resources/gofer/commands/0a_problem_validation.md +405 -0
- package/resources/gofer/commands/10_gofer_cloud.md +611 -0
- package/resources/gofer/commands/1_gofer_research.md +1135 -0
- package/resources/gofer/commands/2_gofer_specify.md +836 -0
- package/resources/gofer/commands/3_gofer_plan.md +862 -0
- package/resources/gofer/commands/4_gofer_tasks.md +724 -0
- package/resources/gofer/commands/5_gofer_implement.md +900 -0
- package/resources/gofer/commands/6_gofer_validate.md +2245 -0
- package/resources/gofer/commands/7_gofer_save.md +399 -0
- package/resources/gofer/commands/7a_stakeholder_comms.md +484 -0
- package/resources/gofer/commands/8_gofer_branding.md +291 -0
- package/resources/gofer/commands/9_gofer_tests.md +534 -0
- package/resources/gofer/commands/gofer_bootstrap_workspace.md +159 -0
- package/resources/gofer/commands/gofer_check_workspace.md +130 -0
- package/resources/gofer/commands/gofer_constitution.md +588 -0
- package/resources/gofer/commands/gofer_diagnose.md +89 -0
- package/resources/gofer/commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/commands/gofer_hydrate.md +537 -0
- package/resources/gofer/commands/gofer_personality.md +61 -0
- package/resources/gofer/commands/gofer_plan.md +51 -0
- package/resources/gofer/commands/gofer_side.md +56 -0
- package/resources/gofer/commands/gofer_spec_summary.md +87 -0
- package/resources/gofer/commands/gofer_tdd.md +87 -0
- package/resources/gofer/commands/gofer_vocabulary.md +87 -0
- package/resources/gofer/commands/gofer_zoom_out.md +87 -0
- package/resources/gofer/copilot-instructions/gofer-cost.instructions.md +13 -0
- package/resources/gofer/copilot-instructions/language-server.instructions.md +49 -0
- package/resources/gofer/copilot-instructions/typescript.instructions.md +47 -0
- package/resources/gofer/copilot-instructions/vscode-extension.instructions.md +46 -0
- package/resources/gofer/copilot-prompts/0_gofer_start.prompt.md +1308 -0
- package/resources/gofer/copilot-prompts/0a_problem_validation.prompt.md +429 -0
- package/resources/gofer/copilot-prompts/10_gofer_cloud.prompt.md +644 -0
- package/resources/gofer/copilot-prompts/1_gofer_research.prompt.md +1177 -0
- package/resources/gofer/copilot-prompts/2_gofer_specify.prompt.md +878 -0
- package/resources/gofer/copilot-prompts/3_gofer_plan.prompt.md +904 -0
- package/resources/gofer/copilot-prompts/4_gofer_tasks.prompt.md +766 -0
- package/resources/gofer/copilot-prompts/5_gofer_implement.prompt.md +942 -0
- package/resources/gofer/copilot-prompts/6_gofer_validate.prompt.md +2277 -0
- package/resources/gofer/copilot-prompts/7_gofer_save.prompt.md +433 -0
- package/resources/gofer/copilot-prompts/7a_stakeholder_comms.prompt.md +516 -0
- package/resources/gofer/copilot-prompts/8_gofer_branding.prompt.md +323 -0
- package/resources/gofer/copilot-prompts/9_gofer_tests.prompt.md +566 -0
- package/resources/gofer/copilot-prompts/gofer_bootstrap_workspace.prompt.md +161 -0
- package/resources/gofer/copilot-prompts/gofer_check_workspace.prompt.md +132 -0
- package/resources/gofer/copilot-prompts/gofer_constitution.prompt.md +621 -0
- package/resources/gofer/copilot-prompts/gofer_diagnose.prompt.md +127 -0
- package/resources/gofer/copilot-prompts/gofer_eai_first_run.prompt.md +410 -0
- package/resources/gofer/copilot-prompts/gofer_hydrate.prompt.md +571 -0
- package/resources/gofer/copilot-prompts/gofer_personality.prompt.md +57 -0
- package/resources/gofer/copilot-prompts/gofer_plan.prompt.md +53 -0
- package/resources/gofer/copilot-prompts/gofer_side.prompt.md +58 -0
- package/resources/gofer/copilot-prompts/gofer_spec_summary.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_tdd.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_vocabulary.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_zoom_out.prompt.md +125 -0
- package/resources/gofer/gemini/agents/assumption-tracker.md +171 -0
- package/resources/gofer/gemini/agents/business-metrics-analyzer.md +172 -0
- package/resources/gofer/gemini/agents/business-problem-validator.md +171 -0
- package/resources/gofer/gemini/agents/codebase-analyzer.md +127 -0
- package/resources/gofer/gemini/agents/codebase-locator.md +98 -0
- package/resources/gofer/gemini/agents/codebase-pattern-finder.md +183 -0
- package/resources/gofer/gemini/agents/comms-writer.md +161 -0
- package/resources/gofer/gemini/agents/engineer-review.md +172 -0
- package/resources/gofer/gemini/agents/implement-bug-triangulator.md +97 -0
- package/resources/gofer/gemini/agents/implement-code-review-council.md +92 -0
- package/resources/gofer/gemini/agents/implement-doc-writer.md +92 -0
- package/resources/gofer/gemini/agents/implement-error-hardener.md +87 -0
- package/resources/gofer/gemini/agents/implement-performance-explorer.md +98 -0
- package/resources/gofer/gemini/agents/implement-test-diversifier.md +85 -0
- package/resources/gofer/gemini/agents/implement-variant-generator.md +83 -0
- package/resources/gofer/gemini/agents/multi-perspective-judge.md +117 -0
- package/resources/gofer/gemini/agents/plan-api-comparator.md +93 -0
- package/resources/gofer/gemini/agents/plan-architecture-diverger.md +103 -0
- package/resources/gofer/gemini/agents/plan-data-model-stress-tester.md +98 -0
- package/resources/gofer/gemini/agents/plan-migration-path-finder.md +98 -0
- package/resources/gofer/gemini/agents/plan-refactor-rewrite-advisor.md +100 -0
- package/resources/gofer/gemini/agents/research-dependency-evaluator.md +109 -0
- package/resources/gofer/gemini/agents/research-horizon-scanner.md +103 -0
- package/resources/gofer/gemini/agents/research-market-scanner.md +140 -0
- package/resources/gofer/gemini/agents/research-perspective-multiplier.md +105 -0
- package/resources/gofer/gemini/agents/scope-creep-detector.md +155 -0
- package/resources/gofer/gemini/agents/specify-ambiguity-detector.md +98 -0
- package/resources/gofer/gemini/agents/specify-journey-stress-tester.md +95 -0
- package/resources/gofer/gemini/agents/tasks-cross-cutting-scanner.md +94 -0
- package/resources/gofer/gemini/agents/tasks-rollback-planner.md +92 -0
- package/resources/gofer/gemini/agents/validate-security-red-team.md +105 -0
- package/resources/gofer/gemini/agents/validation-correctness.md +106 -0
- package/resources/gofer/gemini/agents/validation-integration.md +132 -0
- package/resources/gofer/gemini/agents/validation-performance.md +123 -0
- package/resources/gofer/gemini/agents/validation-security.md +118 -0
- package/resources/gofer/gemini/agents/validation-standards.md +154 -0
- package/resources/gofer/gemini/agents/validation-test-quality.md +149 -0
- package/resources/gofer/gemini/agents/visual-bounded-context-writer.md +40 -0
- package/resources/gofer/gemini/agents/visual-c4-writer.md +44 -0
- package/resources/gofer/gemini/agents/visual-erd-writer.md +36 -0
- package/resources/gofer/gemini/agents/visual-heatmap-writer.md +63 -0
- package/resources/gofer/gemini/agents/visual-risk-writer.md +64 -0
- package/resources/gofer/gemini/commands/gofer/.gitkeep +0 -0
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.md +1282 -0
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.md +424 -0
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.md +630 -0
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.md +1154 -0
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.md +855 -0
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.md +881 -0
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.md +743 -0
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.md +919 -0
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.md +2264 -0
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.md +418 -0
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.md +503 -0
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.md +310 -0
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.md +553 -0
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.md +143 -0
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.md +114 -0
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.md +607 -0
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.md +109 -0
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.md +392 -0
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.md +556 -0
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_personality.md +39 -0
- package/resources/gofer/gemini/commands/gofer/gofer_personality.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_plan.md +35 -0
- package/resources/gofer/gemini/commands/gofer/gofer_plan.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_side.md +40 -0
- package/resources/gofer/gemini/commands/gofer/gofer_side.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/manifest.json +32 -0
- package/resources/gofer/gemini/extension.json +16 -0
- package/resources/gofer/github-agents/gofer-business.agent.md +20 -0
- package/resources/gofer/github-agents/gofer-implement.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-plan.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-research.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-validate.agent.md +10 -0
- package/resources/gofer/github-skills/eai-gofer/SKILL.md +56 -0
- package/resources/gofer/hook-scripts/agent-stop.mjs +655 -0
- package/resources/gofer/hook-scripts/log-stage-launch-time.mjs +77 -0
- package/resources/gofer/hook-scripts/post-tool-use.mjs +333 -0
- package/resources/gofer/hook-scripts/queued-input.mjs +188 -0
- package/resources/gofer/hook-scripts/session-lifecycle.mjs +93 -0
- package/resources/gofer/hook-scripts/user-prompt-submit.mjs +228 -0
- package/resources/gofer/instruction-templates/base/agents-base.md +37 -0
- package/resources/gofer/instruction-templates/base/claude-base.md +7 -0
- package/resources/gofer/instruction-templates/base/copilot-base.md +26 -0
- package/resources/gofer/instruction-templates/gofer/gofer-claude.md +5 -0
- package/resources/gofer/instruction-templates/gofer/gofer-copilot.md +9 -0
- package/resources/gofer/instruction-templates/languages/generic.md +7 -0
- package/resources/gofer/instruction-templates/languages/go.md +8 -0
- package/resources/gofer/instruction-templates/languages/java.md +8 -0
- package/resources/gofer/instruction-templates/languages/python.md +9 -0
- package/resources/gofer/instruction-templates/languages/rust.md +9 -0
- package/resources/gofer/instruction-templates/languages/typescript.md +19 -0
- package/resources/gofer/instruction-templates/workflow/principles.md +52 -0
- package/resources/gofer/memory/constitution.md +391 -0
- package/resources/gofer/memory/context-profiles.yaml +74 -0
- package/resources/gofer/memory/decisions/000-use-adr-for-decisions.md +67 -0
- package/resources/gofer/memory/decisions/001-di-framework.md +190 -0
- package/resources/gofer/memory/decisions/002-module-extraction.md +305 -0
- package/resources/gofer/memory/decisions/003-error-handling.md +368 -0
- package/resources/gofer/memory/decisions/004-cache-eviction.md +436 -0
- package/resources/gofer/memory/decisions/005-constants-management.md +520 -0
- package/resources/gofer/memory/decisions/README.md +129 -0
- package/resources/gofer/memory/diagrams/di-container.mmd +321 -0
- package/resources/gofer/memory/diagrams/extension-activation.mmd +184 -0
- package/resources/gofer/memory/diagrams/module-dependencies.mmd +264 -0
- package/resources/gofer/memory/gofer-model-policy.yaml +97 -0
- package/resources/gofer/memory/lessons.md +46 -0
- package/resources/gofer/node-scripts/canonical-descriptions.mjs +86 -0
- package/resources/gofer/node-scripts/check-version-alignment.mjs +131 -0
- package/resources/gofer/node-scripts/codex-doctor.mjs +425 -0
- package/resources/gofer/node-scripts/generate-commands.mjs +1366 -0
- package/resources/gofer/node-scripts/generate-issues.js +563 -0
- package/resources/gofer/node-scripts/gofer-closed-loop-audit.mjs +893 -0
- package/resources/gofer/node-scripts/gofer-loop-audit.mjs +541 -0
- package/resources/gofer/node-scripts/gofer-performance-report.mjs +306 -0
- package/resources/gofer/node-scripts/gofer-workspace-bootstrap.mjs +56 -0
- package/resources/gofer/node-scripts/gofer-workspace-check.mjs +56 -0
- package/resources/gofer/node-scripts/lib/ai-leverage-tagger.mjs +103 -0
- package/resources/gofer/node-scripts/lib/assemble-stakeholder-pack.mjs +114 -0
- package/resources/gofer/node-scripts/lib/marp-deck.mjs +87 -0
- package/resources/gofer/node-scripts/lib/mermaid-tabular-fallback.mjs +264 -0
- package/resources/gofer/node-scripts/lib/render-visual.mjs +54 -0
- package/resources/gofer/node-scripts/lib/validate-aliases.mjs +85 -0
- package/resources/gofer/node-scripts/lib/visual-counts.mjs +44 -0
- package/resources/gofer/node-scripts/lib/visual-pass-pipeline.mjs +134 -0
- package/resources/gofer/node-scripts/mermaid-export.mjs +72 -0
- package/resources/gofer/node-scripts/package-agent-plugin.mjs +940 -0
- package/resources/gofer/node-scripts/parse-stage-command.mjs +211 -0
- package/resources/gofer/node-scripts/schemas/.gitkeep +0 -0
- package/resources/gofer/node-scripts/schemas/stage-command.schema.json +72 -0
- package/resources/gofer/node-scripts/sync-extension-resources.mjs +110 -0
- package/resources/gofer/node-scripts/workspace-bootstrap-lib.mjs +1166 -0
- package/resources/gofer/powershell-scripts/install-optional-tools.ps1 +214 -0
- package/resources/gofer/references/platform/README.md +17 -0
- package/resources/gofer/references/platform/deployment-repo.md +9 -0
- package/resources/gofer/references/platform/eai-app-template.md +45 -0
- package/resources/gofer/references/platform/eai-config-driven-ui.md +156 -0
- package/resources/gofer/references/platform/eai-error-catalog.yaml +197 -0
- package/resources/gofer/references/platform/eai-repo-contract.md +134 -0
- package/resources/gofer/references/platform/eai-service-patterns.md +56 -0
- package/resources/gofer/references/platform/eai.md +85 -0
- package/resources/gofer/references/platform/vertical-template.md +49 -0
- package/resources/gofer/specify-commands/.gitkeep +0 -0
- package/resources/gofer/specify-commands/0_gofer_start.md +1299 -0
- package/resources/gofer/specify-commands/0a_problem_validation.md +405 -0
- package/resources/gofer/specify-commands/10_gofer_cloud.md +611 -0
- package/resources/gofer/specify-commands/1_gofer_research.md +1135 -0
- package/resources/gofer/specify-commands/2_gofer_specify.md +836 -0
- package/resources/gofer/specify-commands/3_gofer_plan.md +862 -0
- package/resources/gofer/specify-commands/4_gofer_tasks.md +724 -0
- package/resources/gofer/specify-commands/5_gofer_implement.md +900 -0
- package/resources/gofer/specify-commands/6_gofer_validate.md +2245 -0
- package/resources/gofer/specify-commands/7_gofer_save.md +399 -0
- package/resources/gofer/specify-commands/7a_stakeholder_comms.md +484 -0
- package/resources/gofer/specify-commands/8_gofer_branding.md +291 -0
- package/resources/gofer/specify-commands/9_gofer_tests.md +534 -0
- package/resources/gofer/specify-commands/gofer_bootstrap_workspace.md +159 -0
- package/resources/gofer/specify-commands/gofer_check_workspace.md +130 -0
- package/resources/gofer/specify-commands/gofer_constitution.md +588 -0
- package/resources/gofer/specify-commands/gofer_diagnose.md +89 -0
- package/resources/gofer/specify-commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/specify-commands/gofer_hydrate.md +537 -0
- package/resources/gofer/specify-commands/gofer_personality.md +61 -0
- package/resources/gofer/specify-commands/gofer_plan.md +51 -0
- package/resources/gofer/specify-commands/gofer_side.md +56 -0
- package/resources/gofer/specify-commands/gofer_spec_summary.md +87 -0
- package/resources/gofer/specify-commands/gofer_tdd.md +87 -0
- package/resources/gofer/specify-commands/gofer_vocabulary.md +87 -0
- package/resources/gofer/specify-commands/gofer_zoom_out.md +87 -0
- package/resources/gofer/system-skills/0_gofer_start/SKILL.md +1287 -0
- package/resources/gofer/system-skills/0a_problem_validation/SKILL.md +429 -0
- package/resources/gofer/system-skills/10_gofer_cloud/SKILL.md +635 -0
- package/resources/gofer/system-skills/1_gofer_research/SKILL.md +1159 -0
- package/resources/gofer/system-skills/2_gofer_specify/SKILL.md +860 -0
- package/resources/gofer/system-skills/3_gofer_plan/SKILL.md +886 -0
- package/resources/gofer/system-skills/4_gofer_tasks/SKILL.md +748 -0
- package/resources/gofer/system-skills/5_gofer_implement/SKILL.md +924 -0
- package/resources/gofer/system-skills/6_gofer_validate/SKILL.md +2269 -0
- package/resources/gofer/system-skills/7_gofer_save/SKILL.md +423 -0
- package/resources/gofer/system-skills/7a_stakeholder_comms/SKILL.md +508 -0
- package/resources/gofer/system-skills/8_gofer_branding/SKILL.md +315 -0
- package/resources/gofer/system-skills/9_gofer_tests/SKILL.md +558 -0
- package/resources/gofer/system-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
- package/resources/gofer/system-skills/gofer_check_workspace/SKILL.md +119 -0
- package/resources/gofer/system-skills/gofer_constitution/SKILL.md +612 -0
- package/resources/gofer/system-skills/gofer_diagnose/SKILL.md +114 -0
- package/resources/gofer/system-skills/gofer_eai_first_run/SKILL.md +397 -0
- package/resources/gofer/system-skills/gofer_hydrate/SKILL.md +561 -0
- package/resources/gofer/system-skills/gofer_personality/SKILL.md +44 -0
- package/resources/gofer/system-skills/gofer_plan/SKILL.md +40 -0
- package/resources/gofer/system-skills/gofer_side/SKILL.md +45 -0
- package/resources/gofer/system-skills/gofer_spec_summary/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_tdd/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_vocabulary/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_zoom_out/SKILL.md +112 -0
- package/resources/gofer/templates/agent-file-template.md +28 -0
- package/resources/gofer/templates/assumptions-template.md +94 -0
- package/resources/gofer/templates/audit-history-template.md +35 -0
- package/resources/gofer/templates/brand/brand-profile-template.json +45 -0
- package/resources/gofer/templates/brand/document-style-template.md +50 -0
- package/resources/gofer/templates/brand/marp-theme-template.css +58 -0
- package/resources/gofer/templates/brownfield-analysis.md +44 -0
- package/resources/gofer/templates/business-metrics-template.md +120 -0
- package/resources/gofer/templates/business-owner-summary-template.md +83 -0
- package/resources/gofer/templates/checklist-template.md +40 -0
- package/resources/gofer/templates/ciso-security-summary-template.md +70 -0
- package/resources/gofer/templates/context-bundle-template.md +76 -0
- package/resources/gofer/templates/contract-pack-template.md +109 -0
- package/resources/gofer/templates/cto-architecture-summary-template.md +83 -0
- package/resources/gofer/templates/discovery-template.md +92 -0
- package/resources/gofer/templates/eai-preflight-template.md +144 -0
- package/resources/gofer/templates/goal-ledger-template.json +69 -0
- package/resources/gofer/templates/gofer-model-policy.yaml +97 -0
- package/resources/gofer/templates/issues-template.md +106 -0
- package/resources/gofer/templates/journey/base-journey.md +95 -0
- package/resources/gofer/templates/journey/industry-variants.yaml +277 -0
- package/resources/gofer/templates/loop-contract-template.json +68 -0
- package/resources/gofer/templates/plan-template.md +215 -0
- package/resources/gofer/templates/problem-brief-template.md +85 -0
- package/resources/gofer/templates/proposal-review-template.md +79 -0
- package/resources/gofer/templates/research-template.md +222 -0
- package/resources/gofer/templates/reuse-scan-template.md +43 -0
- package/resources/gofer/templates/sequence-diagrams/option-spectrum.yaml +178 -0
- package/resources/gofer/templates/service-fit-matrix-template.md +29 -0
- package/resources/gofer/templates/session-handoff-template.md +172 -0
- package/resources/gofer/templates/spec-summary-template.md +118 -0
- package/resources/gofer/templates/spec-template.md +196 -0
- package/resources/gofer/templates/stakeholder-comms-template.md +330 -0
- package/resources/gofer/templates/stakeholder-review-index-template.md +54 -0
- package/resources/gofer/templates/tasks-template.md +323 -0
- package/resources/gofer/templates/ui-approval-template.md +32 -0
- package/resources/gofer/templates/ui-preview-brief-template.md +65 -0
- package/resources/gofer/templates/ui-review-log-template.md +11 -0
- package/resources/gofer/templates/visuals/.gitkeep +0 -0
- package/resources/gofer/templates/visuals/bounded-context-map.md +19 -0
- package/resources/gofer/templates/visuals/bounded-context-template.md +47 -0
- package/resources/gofer/templates/visuals/c4-container-template.md +38 -0
- package/resources/gofer/templates/visuals/c4-container.md +20 -0
- package/resources/gofer/templates/visuals/c4-context-template.md +46 -0
- package/resources/gofer/templates/visuals/capability-heatmap-template.md +54 -0
- package/resources/gofer/templates/visuals/data-model-erd-template.md +41 -0
- package/resources/gofer/templates/visuals/erd.md +19 -0
- package/resources/gofer/templates/visuals/impact-canvas.md +40 -0
- package/resources/gofer/templates/visuals/risk-heatmap-template.md +51 -0
- package/resources/gofer/templates/visuals/roi-projection.md +17 -0
- package/resources/gofer/templates/visuals/value-stream-asis.md +16 -0
- package/resources/gofer/templates/visuals/value-stream-tobe.md +18 -0
- package/resources/gofer/templates/working-backwards-prfaq-template.md +165 -0
- package/resources/linked-sources.json +25 -0
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 9_gofer_tests
|
|
3
|
+
description: Generate comprehensive test suites from four testing perspectives for a target component.
|
|
4
|
+
agent: copilot-workspace
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Grep
|
|
8
|
+
- Glob
|
|
9
|
+
- Bash
|
|
10
|
+
- WebSearch
|
|
11
|
+
argument-hint: feature-name-or-description
|
|
12
|
+
gofer:
|
|
13
|
+
workflowProfile: standard
|
|
14
|
+
canonicalSource: .specify/commands/9_gofer_tests.md
|
|
15
|
+
canonicalChecksum: 3b846becc00c8a4211768f45ed301de0dac248f60b2274bdc11e812fb3bd9765
|
|
16
|
+
metadataSource: scripts/generate-commands.ts
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Workspace Preflight
|
|
20
|
+
|
|
21
|
+
Before doing stage/helper work:
|
|
22
|
+
|
|
23
|
+
1. Resolve the repository root.
|
|
24
|
+
2. Check the core Gofer sentinels:
|
|
25
|
+
- `.specify/.gofer-version`
|
|
26
|
+
- `.specify/commands/0_gofer_start.md`
|
|
27
|
+
- `.specify/templates/spec-template.md`
|
|
28
|
+
- `.specify/templates/loop-contract-template.json`
|
|
29
|
+
- `.specify/templates/working-backwards-prfaq-template.md`
|
|
30
|
+
- `.specify/templates/business-owner-summary-template.md`
|
|
31
|
+
- `.specify/templates/cto-architecture-summary-template.md`
|
|
32
|
+
- `.specify/templates/ciso-security-summary-template.md`
|
|
33
|
+
- `.specify/templates/stakeholder-review-index-template.md`
|
|
34
|
+
- `.specify/scripts/bash/create-new-feature.sh`
|
|
35
|
+
- `.specify/scripts/node/parse-stage-command.mjs`
|
|
36
|
+
- `.specify/scripts/node/gofer-loop-audit.mjs`
|
|
37
|
+
- `.specify/scripts/hooks/post-tool-use.mjs`
|
|
38
|
+
- `.specify/scripts/powershell/install-optional-tools.ps1`
|
|
39
|
+
- `.specify/templates/gofer-model-policy.yaml`
|
|
40
|
+
- `.specify/memory/gofer-model-policy.yaml`
|
|
41
|
+
- `.specify/specs/`
|
|
42
|
+
- `.specify/memory/`
|
|
43
|
+
3. Check host-specific repo-owned files when relevant:
|
|
44
|
+
- Claude: `AGENTS.md`, `CLAUDE.md`, `.claude/settings.json`
|
|
45
|
+
- Codex: `AGENTS.md`
|
|
46
|
+
- Copilot: `.github/copilot-instructions.md`
|
|
47
|
+
- VS Code extension mirrors Claude/Copilot/Gemini resources itself and should still keep the core scaffold healthy
|
|
48
|
+
4. If the repo already has the workspace checker script, prefer running:
|
|
49
|
+
- `node .specify/scripts/node/gofer-workspace-check.mjs --host copilot --json`
|
|
50
|
+
5. If the workspace is missing or stale, ask exactly:
|
|
51
|
+
- **"This repo is missing or stale for Gofer. Initialize/update it now?"**
|
|
52
|
+
6. If the user says yes, run the Gofer workspace bootstrap helper and then resume this command from the top.
|
|
53
|
+
7. If the user says no, stop and explain that Gofer stage/helper work depends on the repo-owned scaffold.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# Gofer Tests
|
|
57
|
+
|
|
58
|
+
## EAI Platform Session Preflight
|
|
59
|
+
|
|
60
|
+
Before any Gofer stage/helper command does pipeline work:
|
|
61
|
+
|
|
62
|
+
1. Treat durable delivery as EAI Platform delivery by default, with Azure second
|
|
63
|
+
and every other stack only by explicit exception.
|
|
64
|
+
2. Run `eai whoami` and confirm the EAI CLI is installed, the user is logged in,
|
|
65
|
+
and an active tenant is visible.
|
|
66
|
+
3. If `eai` is missing, `eai whoami` fails, the token is expired, or no active
|
|
67
|
+
tenant is available, stop and run `/gofer:eai-first-run` or ask the user to
|
|
68
|
+
approve login/setup before continuing.
|
|
69
|
+
4. For EAI app delivery, do not continue into research, specification, planning,
|
|
70
|
+
tasks, implementation, or validation until
|
|
71
|
+
`.specify/specs/{feature}/eai-preflight.md` records login, tenant, template,
|
|
72
|
+
app-readiness, and next-action evidence.
|
|
73
|
+
5. Do not write tokens, secrets, private tenant IDs, or local `.env` values into
|
|
74
|
+
Gofer artifacts; record only product-safe readiness status and evidence.
|
|
75
|
+
|
|
76
|
+
## Token And Cost Policy
|
|
77
|
+
<!-- gofer:token-cost-policy:start -->
|
|
78
|
+
|
|
79
|
+
Before spawning agents, calling tools, or loading large files:
|
|
80
|
+
|
|
81
|
+
1. Treat `.specify/memory/gofer-model-policy.yaml` as the repo-owned source of truth for simple, medium, hard, and arbiter model routing. If it is missing, run `/gofer:bootstrap-workspace` before continuing.
|
|
82
|
+
2. Use the cheapest capable model first.
|
|
83
|
+
- Claude: Haiku for scouting/extraction; Sonnet for normal implementation, synthesis, validation, and security; Opus for high-risk arbitration or release-critical failures.
|
|
84
|
+
- Codex/OpenAI: GPT mini for simple coding; GPT nano only for locate/classify/summarize/mechanical work; GPT-5.3-Codex or flagship GPT for tool-heavy coding, architecture, and release-critical validation.
|
|
85
|
+
- Gemini: Flash-Lite for cheap large-context scan/summarize; Flash for default research synthesis; Pro for large-context architecture or high-risk arbitration.
|
|
86
|
+
- Copilot: prefer Auto for simple and default work; ask the user before choosing a paid/high-tier picker model for hard security, architecture, or release gates.
|
|
87
|
+
3. Keep raw tool output out of the main conversation context. Save stable findings to `.specify/specs/{feature}/context-bundle.md`, then work from summaries.
|
|
88
|
+
4. Use provider prompt/context caching only for stable, non-secret prefixes: Gofer scaffold, AGENTS/CLAUDE/Copilot instructions, constitution, repo map, stage contracts, and validation rubric.
|
|
89
|
+
5. Before continuing after large research, planning, implementation, or validation bursts, checkpoint the durable artifacts and compact/clear/resume context when the host supports it.
|
|
90
|
+
6. Escalate model tier only when a cheaper pass is low-confidence, contradictory, security-sensitive, or blocking release quality.
|
|
91
|
+
<!-- gofer:token-cost-policy:end -->
|
|
92
|
+
|
|
93
|
+
## User Input
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
$ARGUMENTS
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## When to Use This Command
|
|
104
|
+
|
|
105
|
+
- **Test-First Development**: Define tests before writing implementation
|
|
106
|
+
- **During Planning**: Add test definitions to plan.md
|
|
107
|
+
- **During Implementation**: Create test scaffolds alongside code
|
|
108
|
+
- **Before Validation**: Ensure comprehensive test coverage
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Core Principles (Agentic Testing Best Practices)
|
|
113
|
+
|
|
114
|
+
### 1. Comment-First Approach
|
|
115
|
+
|
|
116
|
+
Always start by writing test cases as structured comments before any
|
|
117
|
+
implementation. This forces clear thinking about expected behavior.
|
|
118
|
+
|
|
119
|
+
### 2. DSL at Every Layer
|
|
120
|
+
|
|
121
|
+
All test code - setup, actions, assertions - must be written as readable DSL
|
|
122
|
+
functions. No direct framework calls in test files.
|
|
123
|
+
|
|
124
|
+
### 3. Implicit Given-When-Then
|
|
125
|
+
|
|
126
|
+
Structure tests with blank lines separating setup, action, and assertion phases.
|
|
127
|
+
Never use the words "Given", "When", or "Then" explicitly.
|
|
128
|
+
|
|
129
|
+
### 4. Traceability to Requirements
|
|
130
|
+
|
|
131
|
+
Every test case must trace back to a user story or acceptance criterion from
|
|
132
|
+
spec.md.
|
|
133
|
+
|
|
134
|
+
### 5. Follow Existing Patterns
|
|
135
|
+
|
|
136
|
+
Study and follow existing test patterns, DSL conventions, and naming standards
|
|
137
|
+
in the codebase.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Step 1: Load Feature Context
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
.specify/scripts/bash/check-prerequisites.sh --json
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Parse JSON for FEATURE_DIR, then load:
|
|
148
|
+
|
|
149
|
+
- `spec.md` - User stories and acceptance criteria
|
|
150
|
+
- `plan.md` - Technical architecture
|
|
151
|
+
- `tasks.md` - Implementation tasks (if exists)
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Step 2: Research Existing Test Patterns
|
|
156
|
+
|
|
157
|
+
**CRITICAL**: Before writing any test cases, spawn a research agent:
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
Task: subagent_type="codebase-pattern-finder", model="haiku"
|
|
161
|
+
Prompt: "Find existing test files and patterns in this codebase.
|
|
162
|
+
Identify:
|
|
163
|
+
- Test file locations and naming conventions
|
|
164
|
+
- DSL function patterns and naming conventions
|
|
165
|
+
- Test organization patterns (describe blocks, test grouping)
|
|
166
|
+
- Existing DSL functions for setup, actions, and assertions
|
|
167
|
+
- Test framework being used (Jest, Vitest, Mocha, pytest, etc.)"
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Step 3: Extract Test Requirements
|
|
173
|
+
|
|
174
|
+
### 3.1 From User Stories
|
|
175
|
+
|
|
176
|
+
For each user story in spec.md, extract:
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
| User Story | Priority | Acceptance Criteria | Test Cases Needed |
|
|
180
|
+
| ---------- | -------- | ------------------------- | ----------------- |
|
|
181
|
+
| US1 | P1 | User can login with email | TC001, TC002 |
|
|
182
|
+
| US1 | P1 | Error on invalid creds | TC003, TC004 |
|
|
183
|
+
| US2 | P2 | Dashboard shows metrics | TC005, TC006 |
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### 3.2 Coverage Requirements
|
|
187
|
+
|
|
188
|
+
Ensure tests cover:
|
|
189
|
+
|
|
190
|
+
1. **Happy Paths** - Standard successful flows
|
|
191
|
+
2. **Edge Cases** - Boundary conditions, unusual but valid inputs
|
|
192
|
+
3. **Error Scenarios** - Invalid inputs, service failures, timeouts
|
|
193
|
+
4. **Boundary Conditions** - Maximum/minimum values, empty states
|
|
194
|
+
5. **Authorization** - Permission-based access scenarios
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Step 4: Define Test Cases
|
|
199
|
+
|
|
200
|
+
### Test Case Structure
|
|
201
|
+
|
|
202
|
+
```javascript
|
|
203
|
+
// [Test Case ID]: [Test Case Name]
|
|
204
|
+
// Traces to: [US-X AC-Y]
|
|
205
|
+
//
|
|
206
|
+
// setupFunction
|
|
207
|
+
// anotherSetupFunction
|
|
208
|
+
//
|
|
209
|
+
// actionThatTriggersLogic
|
|
210
|
+
//
|
|
211
|
+
// expectationFunction
|
|
212
|
+
// anotherExpectationFunction
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Structure Rules
|
|
216
|
+
|
|
217
|
+
- **First line**: Test case ID and name
|
|
218
|
+
- **Second line**: Traceability to user story/acceptance criterion
|
|
219
|
+
- **Blank line**: Before setup
|
|
220
|
+
- **Setup phase**: Functions that arrange test state (no blank lines between)
|
|
221
|
+
- **Blank line**: Separates setup from action
|
|
222
|
+
- **Action phase**: Function(s) that trigger the behavior under test
|
|
223
|
+
- **Blank line**: Separates action from assertions
|
|
224
|
+
- **Assertion phase**: Functions that verify expected outcomes
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Step 5: Naming Conventions
|
|
229
|
+
|
|
230
|
+
### Setup Functions (Arrange)
|
|
231
|
+
|
|
232
|
+
Describe state being created:
|
|
233
|
+
|
|
234
|
+
- `userIsLoggedIn`, `cartHasThreeItems`, `databaseIsEmpty`
|
|
235
|
+
- `createUser`, `seedDatabase`, `mockExternalAPI`
|
|
236
|
+
|
|
237
|
+
### Action Functions (Act)
|
|
238
|
+
|
|
239
|
+
Describe the event/action:
|
|
240
|
+
|
|
241
|
+
- `userClicksCheckout`, `orderIsSubmitted`, `apiReceivesRequest`
|
|
242
|
+
- `submitForm`, `sendRequest`, `processPayment`
|
|
243
|
+
|
|
244
|
+
### Assertion Functions (Assert)
|
|
245
|
+
|
|
246
|
+
Start with `expect`:
|
|
247
|
+
|
|
248
|
+
- `expectOrderProcessed`, `expectUserRedirected`, `expectEmailSent`
|
|
249
|
+
- `expectNoEmailSent`, `expectOrderNotCreated` (negative cases)
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Step 6: Generate Test Document
|
|
254
|
+
|
|
255
|
+
Write to `{FEATURE_DIR}/test-cases.md`:
|
|
256
|
+
|
|
257
|
+
````markdown
|
|
258
|
+
---
|
|
259
|
+
feature: [Feature Name]
|
|
260
|
+
created: [ISO timestamp]
|
|
261
|
+
spec: spec.md
|
|
262
|
+
status: draft
|
|
263
|
+
coverage:
|
|
264
|
+
user_stories: [N]/[Total]
|
|
265
|
+
acceptance_criteria: [N]/[Total]
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
# Test Cases: [Feature Name]
|
|
269
|
+
|
|
270
|
+
## Test Coverage Matrix
|
|
271
|
+
|
|
272
|
+
| User Story | Acceptance Criterion | Test Case(s) | Status |
|
|
273
|
+
| ---------- | -------------------- | ------------ | ------- |
|
|
274
|
+
| US1 | AC1: User can login | TC001, TC002 | Defined |
|
|
275
|
+
| US1 | AC2: Error handling | TC003, TC004 | Defined |
|
|
276
|
+
| US2 | AC1: Dashboard | TC005 | Defined |
|
|
277
|
+
|
|
278
|
+
## Test Case Definitions
|
|
279
|
+
|
|
280
|
+
### Happy Path Tests
|
|
281
|
+
|
|
282
|
+
#### TC001: Successful Login with Valid Credentials
|
|
283
|
+
|
|
284
|
+
Traces to: US1-AC1
|
|
285
|
+
|
|
286
|
+
```javascript
|
|
287
|
+
// TC001: Successful Login with Valid Credentials
|
|
288
|
+
// Traces to: US1-AC1
|
|
289
|
+
//
|
|
290
|
+
// userExists({ email: 'test@example.com', password: 'valid' })
|
|
291
|
+
//
|
|
292
|
+
// userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
|
|
293
|
+
//
|
|
294
|
+
// expectUserLoggedIn()
|
|
295
|
+
// expectRedirectedToDashboard()
|
|
296
|
+
// expectSessionCreated()
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
#### TC002: Login Remembers User Preference
|
|
300
|
+
|
|
301
|
+
Traces to: US1-AC1
|
|
302
|
+
|
|
303
|
+
```javascript
|
|
304
|
+
// TC002: Login Remembers User Preference
|
|
305
|
+
// Traces to: US1-AC1
|
|
306
|
+
//
|
|
307
|
+
// userExists({ email: 'test@example.com' })
|
|
308
|
+
// rememberMeEnabled()
|
|
309
|
+
//
|
|
310
|
+
// userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
|
|
311
|
+
//
|
|
312
|
+
// expectPersistentSessionCreated()
|
|
313
|
+
// expectCookieSet('remember_token')
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Edge Case Tests
|
|
317
|
+
|
|
318
|
+
#### TC003: Login with Maximum Length Password
|
|
319
|
+
|
|
320
|
+
Traces to: US1-AC1
|
|
321
|
+
|
|
322
|
+
```javascript
|
|
323
|
+
// TC003: Login with Maximum Length Password
|
|
324
|
+
// Traces to: US1-AC1
|
|
325
|
+
//
|
|
326
|
+
// userExists({ password: 'a'.repeat(128) })
|
|
327
|
+
//
|
|
328
|
+
// userSubmitsLogin({ password: 'a'.repeat(128) })
|
|
329
|
+
//
|
|
330
|
+
// expectUserLoggedIn()
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Error Scenario Tests
|
|
334
|
+
|
|
335
|
+
#### TC004: Login with Invalid Credentials
|
|
336
|
+
|
|
337
|
+
Traces to: US1-AC2
|
|
338
|
+
|
|
339
|
+
```javascript
|
|
340
|
+
// TC004: Login with Invalid Credentials
|
|
341
|
+
// Traces to: US1-AC2
|
|
342
|
+
//
|
|
343
|
+
// userExists({ email: 'test@example.com', password: 'correct' })
|
|
344
|
+
//
|
|
345
|
+
// userSubmitsLogin({ email: 'test@example.com', password: 'wrong' })
|
|
346
|
+
//
|
|
347
|
+
// expectUserNotLoggedIn()
|
|
348
|
+
// expectErrorMessage('Invalid credentials')
|
|
349
|
+
// expectNoSessionCreated()
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
#### TC005: Login When Service Unavailable
|
|
353
|
+
|
|
354
|
+
Traces to: US1-AC2
|
|
355
|
+
|
|
356
|
+
```javascript
|
|
357
|
+
// TC005: Login When Service Unavailable
|
|
358
|
+
// Traces to: US1-AC2
|
|
359
|
+
//
|
|
360
|
+
// authServiceIsDown()
|
|
361
|
+
//
|
|
362
|
+
// userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
|
|
363
|
+
//
|
|
364
|
+
// expectErrorMessage('Service temporarily unavailable')
|
|
365
|
+
// expectRetryOption()
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Authorization Tests
|
|
369
|
+
|
|
370
|
+
#### TC006: Unauthorized Access Attempt
|
|
371
|
+
|
|
372
|
+
Traces to: US1-AC3
|
|
373
|
+
|
|
374
|
+
```javascript
|
|
375
|
+
// TC006: Unauthorized Access Attempt
|
|
376
|
+
// Traces to: US1-AC3
|
|
377
|
+
//
|
|
378
|
+
// userIsNotAuthenticated()
|
|
379
|
+
//
|
|
380
|
+
// userNavigatesToProtectedRoute('/dashboard')
|
|
381
|
+
//
|
|
382
|
+
// expectRedirectedToLogin()
|
|
383
|
+
// expectOriginalUrlPreserved()
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
## DSL Functions Required
|
|
387
|
+
|
|
388
|
+
### Setup Functions (To Create)
|
|
389
|
+
|
|
390
|
+
| Function | Purpose | Exists? |
|
|
391
|
+
| --------------------- | ---------------------------- | ------- |
|
|
392
|
+
| `userExists()` | Create test user in database | No |
|
|
393
|
+
| `authServiceIsDown()` | Mock auth service failure | No |
|
|
394
|
+
| `rememberMeEnabled()` | Set remember me preference | No |
|
|
395
|
+
|
|
396
|
+
### Action Functions (To Create)
|
|
397
|
+
|
|
398
|
+
| Function | Purpose | Exists? |
|
|
399
|
+
| -------------------- | ------------------------------ | ------- |
|
|
400
|
+
| `userSubmitsLogin()` | Simulate login form submission | No |
|
|
401
|
+
| `userNavigatesTo()` | Navigate to URL | Yes |
|
|
402
|
+
|
|
403
|
+
### Assertion Functions (To Create)
|
|
404
|
+
|
|
405
|
+
| Function | Purpose | Exists? |
|
|
406
|
+
| ---------------------- | -------------------------- | ------- |
|
|
407
|
+
| `expectUserLoggedIn()` | Verify user session exists | No |
|
|
408
|
+
| `expectErrorMessage()` | Verify error is displayed | Yes |
|
|
409
|
+
| `expectRedirectedTo()` | Verify redirect occurred | Yes |
|
|
410
|
+
|
|
411
|
+
## Implementation Notes
|
|
412
|
+
|
|
413
|
+
### Test File Location
|
|
414
|
+
|
|
415
|
+
Based on codebase patterns: `tests/integration/[feature]/`
|
|
416
|
+
|
|
417
|
+
### Test Framework
|
|
418
|
+
|
|
419
|
+
Using: [Jest/Vitest/Mocha/pytest] (from research)
|
|
420
|
+
|
|
421
|
+
### DSL Implementation Location
|
|
422
|
+
|
|
423
|
+
DSL functions should go in: `tests/helpers/` or `tests/dsl/`
|
|
424
|
+
|
|
425
|
+
## Next Steps
|
|
426
|
+
|
|
427
|
+
1. [ ] Create missing DSL functions
|
|
428
|
+
2. [ ] Implement test scaffolds
|
|
429
|
+
3. [ ] Run tests (expect failures)
|
|
430
|
+
4. [ ] Implement feature code
|
|
431
|
+
5. [ ] Verify tests pass
|
|
432
|
+
````
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
## Step 7: Generate Test Scaffolds (Optional)
|
|
437
|
+
|
|
438
|
+
If user wants actual test files, generate scaffolds:
|
|
439
|
+
|
|
440
|
+
```javascript
|
|
441
|
+
// tests/integration/[feature]/[feature].test.ts
|
|
442
|
+
import { describe, test, expect } from 'vitest';
|
|
443
|
+
import {
|
|
444
|
+
userExists,
|
|
445
|
+
userSubmitsLogin,
|
|
446
|
+
expectUserLoggedIn,
|
|
447
|
+
// ... other DSL functions
|
|
448
|
+
} from '../../helpers/auth-dsl';
|
|
449
|
+
|
|
450
|
+
describe('[Feature Name]', () => {
|
|
451
|
+
describe('US1: User Authentication', () => {
|
|
452
|
+
test('TC001: Successful Login with Valid Credentials', async () => {
|
|
453
|
+
// TC001: Successful Login with Valid Credentials
|
|
454
|
+
// Traces to: US1-AC1
|
|
455
|
+
//
|
|
456
|
+
// userExists({ email: 'test@example.com', password: 'valid' })
|
|
457
|
+
//
|
|
458
|
+
// userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
|
|
459
|
+
//
|
|
460
|
+
// expectUserLoggedIn()
|
|
461
|
+
// expectRedirectedToDashboard()
|
|
462
|
+
|
|
463
|
+
await userExists({ email: 'test@example.com', password: 'valid' });
|
|
464
|
+
|
|
465
|
+
await userSubmitsLogin({ email: 'test@example.com', password: 'valid' });
|
|
466
|
+
|
|
467
|
+
await expectUserLoggedIn();
|
|
468
|
+
await expectRedirectedToDashboard();
|
|
469
|
+
});
|
|
470
|
+
|
|
471
|
+
// ... more tests
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
## Step 8: Update Tasks.md
|
|
479
|
+
|
|
480
|
+
Add test implementation tasks to tasks.md:
|
|
481
|
+
|
|
482
|
+
```markdown
|
|
483
|
+
## Phase: Test Implementation
|
|
484
|
+
|
|
485
|
+
- [ ] T0XX [P] Create DSL helper functions in tests/helpers/
|
|
486
|
+
- [ ] T0XX [P] Implement test scaffolds for US1
|
|
487
|
+
- [ ] T0XX [P] Implement test scaffolds for US2
|
|
488
|
+
- [ ] T0XX Verify all tests fail initially (red phase)
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## Step 9: Report Completion
|
|
494
|
+
|
|
495
|
+
```
|
|
496
|
+
================================================================
|
|
497
|
+
TEST CASES DEFINED: [Feature Name]
|
|
498
|
+
================================================================
|
|
499
|
+
|
|
500
|
+
Coverage:
|
|
501
|
+
- User Stories: [N]/[Total] covered
|
|
502
|
+
- Acceptance Criteria: [N]/[Total] covered
|
|
503
|
+
- Test Cases: [Total] defined
|
|
504
|
+
|
|
505
|
+
Test Types:
|
|
506
|
+
- Happy Path: [N] tests
|
|
507
|
+
- Edge Cases: [N] tests
|
|
508
|
+
- Error Scenarios: [N] tests
|
|
509
|
+
- Authorization: [N] tests
|
|
510
|
+
|
|
511
|
+
DSL Functions:
|
|
512
|
+
- Existing: [N] functions
|
|
513
|
+
- To Create: [N] functions
|
|
514
|
+
|
|
515
|
+
Output: {FEATURE_DIR}/test-cases.md
|
|
516
|
+
|
|
517
|
+
Next Steps:
|
|
518
|
+
1. Review test cases with stakeholders
|
|
519
|
+
2. Implement DSL functions
|
|
520
|
+
3. Create test scaffolds
|
|
521
|
+
4. Run tests (expect red)
|
|
522
|
+
5. Implement feature (turn green)
|
|
523
|
+
|
|
524
|
+
================================================================
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
529
|
+
## Test-First Workflow Integration
|
|
530
|
+
|
|
531
|
+
### Before Implementation
|
|
532
|
+
|
|
533
|
+
```
|
|
534
|
+
#1_gofer_research → #2_gofer_specify → #3_gofer_plan
|
|
535
|
+
↓
|
|
536
|
+
#9_gofer_tests ← Define tests here
|
|
537
|
+
↓
|
|
538
|
+
#4_gofer_tasks → #5_gofer_implement
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
### During Implementation
|
|
542
|
+
|
|
543
|
+
After each task in `#5_gofer_implement`:
|
|
544
|
+
|
|
545
|
+
1. Run relevant tests
|
|
546
|
+
2. Verify behavior matches test expectations
|
|
547
|
+
3. Mark test as passing in test-cases.md
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
551
|
+
## Observability Logging
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
.specify/scripts/bash/log-stage.sh 9_tests --complete --tokens [N] --compactions [N]
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
---
|
|
558
|
+
|
|
559
|
+
## Key Rules
|
|
560
|
+
|
|
561
|
+
- Every test must trace to a user story or acceptance criterion
|
|
562
|
+
- Follow existing test patterns in the codebase
|
|
563
|
+
- DSL functions must be readable as natural language
|
|
564
|
+
- Tests should be independent and isolated
|
|
565
|
+
- Include both positive and negative test cases
|
|
566
|
+
- Document which DSL functions need to be created
|