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,919 @@
|
|
|
1
|
+
## Workspace Preflight
|
|
2
|
+
|
|
3
|
+
Before doing stage/helper work:
|
|
4
|
+
|
|
5
|
+
1. Resolve the repository root.
|
|
6
|
+
2. Check the core Gofer sentinels:
|
|
7
|
+
- `.specify/.gofer-version`
|
|
8
|
+
- `.specify/commands/0_gofer_start.md`
|
|
9
|
+
- `.specify/templates/spec-template.md`
|
|
10
|
+
- `.specify/templates/loop-contract-template.json`
|
|
11
|
+
- `.specify/templates/working-backwards-prfaq-template.md`
|
|
12
|
+
- `.specify/templates/business-owner-summary-template.md`
|
|
13
|
+
- `.specify/templates/cto-architecture-summary-template.md`
|
|
14
|
+
- `.specify/templates/ciso-security-summary-template.md`
|
|
15
|
+
- `.specify/templates/stakeholder-review-index-template.md`
|
|
16
|
+
- `.specify/scripts/bash/create-new-feature.sh`
|
|
17
|
+
- `.specify/scripts/node/parse-stage-command.mjs`
|
|
18
|
+
- `.specify/scripts/node/gofer-loop-audit.mjs`
|
|
19
|
+
- `.specify/scripts/hooks/post-tool-use.mjs`
|
|
20
|
+
- `.specify/scripts/powershell/install-optional-tools.ps1`
|
|
21
|
+
- `.specify/templates/gofer-model-policy.yaml`
|
|
22
|
+
- `.specify/memory/gofer-model-policy.yaml`
|
|
23
|
+
- `.specify/specs/`
|
|
24
|
+
- `.specify/memory/`
|
|
25
|
+
3. Check host-specific repo-owned files when relevant:
|
|
26
|
+
- Claude: `AGENTS.md`, `CLAUDE.md`, `.claude/settings.json`
|
|
27
|
+
- Codex: `AGENTS.md`
|
|
28
|
+
- Copilot: `.github/copilot-instructions.md`
|
|
29
|
+
- VS Code extension mirrors Claude/Copilot/Gemini resources itself and should still keep the core scaffold healthy
|
|
30
|
+
4. If the repo already has the workspace checker script, prefer running:
|
|
31
|
+
- `node .specify/scripts/node/gofer-workspace-check.mjs --host claude --json`
|
|
32
|
+
5. If the workspace is missing or stale, ask exactly:
|
|
33
|
+
- **"This repo is missing or stale for Gofer. Initialize/update it now?"**
|
|
34
|
+
6. If the user says yes, run the Gofer workspace bootstrap helper and then resume this command from the top.
|
|
35
|
+
7. If the user says no, stop and explain that Gofer stage/helper work depends on the repo-owned scaffold.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
description: Execute tasks from tasks.md to implement the feature
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
# Gofer Implement
|
|
42
|
+
|
|
43
|
+
## EAI Platform Session Preflight
|
|
44
|
+
|
|
45
|
+
Before any Gofer stage/helper command does pipeline work:
|
|
46
|
+
|
|
47
|
+
1. Treat durable delivery as EAI Platform delivery by default, with Azure second
|
|
48
|
+
and every other stack only by explicit exception.
|
|
49
|
+
2. Run `eai whoami` and confirm the EAI CLI is installed, the user is logged in,
|
|
50
|
+
and an active tenant is visible.
|
|
51
|
+
3. If `eai` is missing, `eai whoami` fails, the token is expired, or no active
|
|
52
|
+
tenant is available, stop and run `/gofer:eai-first-run` or ask the user to
|
|
53
|
+
approve login/setup before continuing.
|
|
54
|
+
4. For EAI app delivery, do not continue into research, specification, planning,
|
|
55
|
+
tasks, implementation, or validation until
|
|
56
|
+
`.specify/specs/{feature}/eai-preflight.md` records login, tenant, template,
|
|
57
|
+
app-readiness, and next-action evidence.
|
|
58
|
+
5. Do not write tokens, secrets, private tenant IDs, or local `.env` values into
|
|
59
|
+
Gofer artifacts; record only product-safe readiness status and evidence.
|
|
60
|
+
|
|
61
|
+
## Token And Cost Policy
|
|
62
|
+
<!-- gofer:token-cost-policy:start -->
|
|
63
|
+
|
|
64
|
+
Before spawning agents, calling tools, or loading large files:
|
|
65
|
+
|
|
66
|
+
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.
|
|
67
|
+
2. Use the cheapest capable model first.
|
|
68
|
+
- Claude: Haiku for scouting/extraction; Sonnet for normal implementation, synthesis, validation, and security; Opus for high-risk arbitration or release-critical failures.
|
|
69
|
+
- 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.
|
|
70
|
+
- Gemini: Flash-Lite for cheap large-context scan/summarize; Flash for default research synthesis; Pro for large-context architecture or high-risk arbitration.
|
|
71
|
+
- 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.
|
|
72
|
+
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.
|
|
73
|
+
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.
|
|
74
|
+
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.
|
|
75
|
+
6. Escalate model tier only when a cheaper pass is low-confidence, contradictory, security-sensitive, or blocking release quality.
|
|
76
|
+
<!-- gofer:token-cost-policy:end -->
|
|
77
|
+
|
|
78
|
+
## User Input
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
$ARGUMENTS
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
85
|
+
|
|
86
|
+
## Execution Profile During Implementation
|
|
87
|
+
|
|
88
|
+
Before editing, re-check the planned depth and generic risk labels from
|
|
89
|
+
`tasks.md` / `plan.md`:
|
|
90
|
+
|
|
91
|
+
- **fast**: for `docs-only` or very small low-risk changes, make the smallest
|
|
92
|
+
scoped edit, run focused checks, and avoid regenerating optional artifacts
|
|
93
|
+
unless they are directly affected.
|
|
94
|
+
- **standard**: implement phase by phase with normal focused test evidence.
|
|
95
|
+
- **full**: open the relevant contracts, security, data, infra, release, and
|
|
96
|
+
rollback artifacts before code changes; update tests before or alongside the
|
|
97
|
+
fix.
|
|
98
|
+
- **dynamic**: confirm `workflow-dag.md` exists and `requiresConfirmation` is
|
|
99
|
+
false before executing shard-oriented work. Run each shard against its declared
|
|
100
|
+
inputs/outputs, then run the reducer and verifier/refuter pass before marking
|
|
101
|
+
tasks complete.
|
|
102
|
+
|
|
103
|
+
If the implementation reveals a higher-risk surface than planned, stop and
|
|
104
|
+
upgrade the depth before continuing. Do not silently broaden scope.
|
|
105
|
+
|
|
106
|
+
## Prerequisites
|
|
107
|
+
|
|
108
|
+
This command expects in `.specify/specs/{feature}/`:
|
|
109
|
+
|
|
110
|
+
- `research.md` - Codebase analysis (from /1_gofer_research)
|
|
111
|
+
- `spec.md` - Feature specification (from /2_gofer_specify)
|
|
112
|
+
- `plan.md` - Implementation plan (from /3_gofer_plan)
|
|
113
|
+
- `tasks.md` - Task breakdown (from /4_gofer_tasks)
|
|
114
|
+
- `loop-contract.json` - Bounded eval commands and stop rules (from /1 through /4)
|
|
115
|
+
|
|
116
|
+
If missing, prompt user to run the prerequisite stage.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Spec Artifact Guard
|
|
121
|
+
|
|
122
|
+
Before implementation, `.specify/scripts/bash/check-prerequisites.sh --json
|
|
123
|
+
--require-tasks --include-tasks` must confirm that `{FEATURE_DIR}/spec.md`
|
|
124
|
+
exists, is non-empty, and is not the unfilled spec template. If the helper
|
|
125
|
+
reports `spec.md` as missing, empty, or `template`, stop and run
|
|
126
|
+
`/2_gofer_specify` before editing code. Implementation must never proceed from
|
|
127
|
+
`tasks.md` or `plan.md` without an authoritative spec for acceptance criteria
|
|
128
|
+
and protected boundaries.
|
|
129
|
+
|
|
130
|
+
## Outline
|
|
131
|
+
|
|
132
|
+
1. Context health check
|
|
133
|
+
2. Load implementation context
|
|
134
|
+
3. Load scope boundaries
|
|
135
|
+
4. Check checklists status
|
|
136
|
+
5. Verify project setup
|
|
137
|
+
6. Execute tasks phase by phase (with feedback loops)
|
|
138
|
+
7. Track progress and handle errors
|
|
139
|
+
8. Output: Implemented feature code
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Step 1: Context Health Check
|
|
144
|
+
|
|
145
|
+
Before starting implementation, assess context window health:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
.specify/scripts/bash/check-context-health.sh
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Evaluate thresholds (2025-2026 research-based)**:
|
|
152
|
+
|
|
153
|
+
| Status | Token Usage | Action |
|
|
154
|
+
| -------- | ----------- | ---------------------------------------- |
|
|
155
|
+
| Healthy | < 50% | Proceed normally |
|
|
156
|
+
| Warning | 50-70% | Use sub-agents, checkpoint every 5 tasks |
|
|
157
|
+
| Critical | > 70% | Run `/7_gofer_save`, start new session |
|
|
158
|
+
|
|
159
|
+
### Context Management Techniques
|
|
160
|
+
|
|
161
|
+
During implementation, use these techniques to preserve context quality:
|
|
162
|
+
|
|
163
|
+
1. **Sub-Agent Architecture** (Recommended)
|
|
164
|
+
- Use Task tool with specialized agents for exploration
|
|
165
|
+
- Each agent returns condensed results (1-2k tokens)
|
|
166
|
+
- Keeps main context focused on implementation
|
|
167
|
+
|
|
168
|
+
2. **Observation Masking**
|
|
169
|
+
- Old file reads become stale quickly
|
|
170
|
+
- Re-read files only when actively editing
|
|
171
|
+
- Avoid keeping full file contents in context
|
|
172
|
+
|
|
173
|
+
3. **Periodic Checkpoints**
|
|
174
|
+
- Every 5 completed tasks, check context health
|
|
175
|
+
- If Warning status: Run `/7_gofer_save`
|
|
176
|
+
- This enables resumption with fresh context
|
|
177
|
+
|
|
178
|
+
**If compaction needed**:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
/7_gofer_save # Creates comprehensive checkpoint
|
|
182
|
+
# Start a fresh supported AI coding app session
|
|
183
|
+
# Read .specify/specs/{feature}/session-checkpoint.md
|
|
184
|
+
# Continue with /5_gofer_implement or the stage named in the checkpoint
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Step 2: Load Context
|
|
190
|
+
|
|
191
|
+
1. **Run setup script**:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Parse JSON for FEATURE_DIR and task list
|
|
198
|
+
|
|
199
|
+
2. **Load implementation documents**:
|
|
200
|
+
- **Required**: tasks.md (task list and execution plan)
|
|
201
|
+
- **Required**: plan.md (tech stack, architecture, file structure)
|
|
202
|
+
- **Required**: spec.md (scope boundaries and protected files)
|
|
203
|
+
- **Required**: loop-contract.json (bounded loop objective, eval commands,
|
|
204
|
+
maximum iterations, stop conditions, and escalation rules)
|
|
205
|
+
- **Optional**: data-model.md (entities and relationships)
|
|
206
|
+
- **Optional**: contracts/ (API specifications)
|
|
207
|
+
- **Optional**: research.md (technical decisions)
|
|
208
|
+
- **Optional**: quickstart.md (integration scenarios)
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Step 3: Load Scope Boundaries
|
|
213
|
+
|
|
214
|
+
Extract protected boundaries from spec.md and tasks.md:
|
|
215
|
+
|
|
216
|
+
1. **Read "Protected Boundaries" section from spec.md**
|
|
217
|
+
2. **Read "Protected Files" section from tasks.md**
|
|
218
|
+
3. **Build exclusion list**:
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
PROTECTED_FILES:
|
|
222
|
+
- path/to/file1.ts (reason: backward compatibility)
|
|
223
|
+
- path/to/directory/ (reason: out of scope)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
4. **Display to confirm**:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
⚠️ SCOPE BOUNDARIES LOADED
|
|
230
|
+
The following files/patterns are PROTECTED and must NOT be modified:
|
|
231
|
+
- [list files]
|
|
232
|
+
|
|
233
|
+
If you need to modify these, STOP and ask for approval.
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Step 4: Check Checklists Status
|
|
239
|
+
|
|
240
|
+
If `{FEATURE_DIR}/checklists/` exists:
|
|
241
|
+
|
|
242
|
+
1. **Scan all checklist files**
|
|
243
|
+
2. **Count completion status** for each:
|
|
244
|
+
- Total items: `- [ ]` or `- [X]` or `- [x]`
|
|
245
|
+
- Completed: `- [X]` or `- [x]`
|
|
246
|
+
- Incomplete: `- [ ]`
|
|
247
|
+
|
|
248
|
+
3. **Display status table**:
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
| Checklist | Total | Completed | Incomplete | Status |
|
|
252
|
+
|----------------|-------|-----------|------------|--------|
|
|
253
|
+
| requirements.md| 12 | 12 | 0 | ✓ PASS |
|
|
254
|
+
| ux.md | 8 | 5 | 3 | ✗ FAIL |
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
4. **If any incomplete**:
|
|
258
|
+
- Display the table
|
|
259
|
+
- **STOP** and ask: "Some checklists are incomplete. Proceed anyway?
|
|
260
|
+
(yes/no)"
|
|
261
|
+
- Wait for user response
|
|
262
|
+
|
|
263
|
+
5. **If all complete**: Proceed automatically
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Step 5: Project Setup Verification
|
|
268
|
+
|
|
269
|
+
Create/verify ignore files based on project setup:
|
|
270
|
+
|
|
271
|
+
### Detection Logic
|
|
272
|
+
|
|
273
|
+
- Git repo? → verify `.gitignore`
|
|
274
|
+
- Dockerfile exists? → verify `.dockerignore`
|
|
275
|
+
- ESLint config? → verify `.eslintignore`
|
|
276
|
+
- Prettier config? → verify `.prettierignore`
|
|
277
|
+
|
|
278
|
+
### Common Patterns by Tech Stack
|
|
279
|
+
|
|
280
|
+
Read tech stack from plan.md and ensure appropriate patterns:
|
|
281
|
+
|
|
282
|
+
- **Node.js**: `node_modules/`, `dist/`, `build/`, `*.log`, `.env*`
|
|
283
|
+
- **Python**: `__pycache__/`, `*.pyc`, `.venv/`, `dist/`
|
|
284
|
+
- **TypeScript**: `node_modules/`, `dist/`, `*.js.map`, `.tsbuildinfo`
|
|
285
|
+
- **Universal**: `.DS_Store`, `*.tmp`, `*.swp`, `.vscode/`, `.idea/`
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Step 6: Parse Tasks Structure
|
|
290
|
+
|
|
291
|
+
Extract from tasks.md:
|
|
292
|
+
|
|
293
|
+
1. **Task phases**: Setup, Foundational, User Stories, Polish
|
|
294
|
+
2. **Dependencies**: Sequential vs parallel execution
|
|
295
|
+
3. **Task details**: ID, description, file paths, [P] markers
|
|
296
|
+
4. **Current progress**: Which tasks are already `[X]` completed
|
|
297
|
+
5. **Protected files**: List from "Protected Files" section
|
|
298
|
+
6. **Loop evidence tasks**: eval command tasks, ledger append tasks, and
|
|
299
|
+
stop/escalation rules
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## Step 7: Execute Implementation
|
|
304
|
+
|
|
305
|
+
### Loop Contract Preflight
|
|
306
|
+
|
|
307
|
+
Before editing code, run:
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
node .specify/scripts/node/gofer-loop-audit.mjs --feature-dir {FEATURE_DIR} --stage 4_tasks --init --json
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
If this reports contract blocking findings, repair `loop-contract.json` before
|
|
314
|
+
editing code. If `loop-contract.json` was initialized for an older feature, keep
|
|
315
|
+
going but make sure task execution appends real `loop-ledger.jsonl` evidence
|
|
316
|
+
before this stage completes.
|
|
317
|
+
|
|
318
|
+
### Checkpoint Strategy
|
|
319
|
+
|
|
320
|
+
Create checkpoints (git commits) at strategic points:
|
|
321
|
+
|
|
322
|
+
| Checkpoint Point | Command |
|
|
323
|
+
| -------------------------------- | ------------------------------------------------------------------ |
|
|
324
|
+
| Before starting each phase | `git add -A && git commit -m "WIP: checkpoint before Phase N"` |
|
|
325
|
+
| After completing each user story | `git add -A && git commit -m "feat: complete US1 - [description]"` |
|
|
326
|
+
| Before any risky operation | `git add -A && git commit -m "WIP: checkpoint before [operation]"` |
|
|
327
|
+
|
|
328
|
+
**Risky operations requiring checkpoint**:
|
|
329
|
+
|
|
330
|
+
- Modifying database schemas or migrations
|
|
331
|
+
- Changing authentication/authorization logic
|
|
332
|
+
- Modifying core infrastructure or shared utilities
|
|
333
|
+
- Large refactoring (> 5 files)
|
|
334
|
+
- Deleting or renaming significant code
|
|
335
|
+
|
|
336
|
+
### Scope Enforcement
|
|
337
|
+
|
|
338
|
+
**Before EACH file modification**:
|
|
339
|
+
|
|
340
|
+
1. ✓ Check file path is in planned scope (listed in tasks.md)
|
|
341
|
+
2. ✓ Check file is NOT in Protected Files list (from Step 3)
|
|
342
|
+
3. If file is protected:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
⚠️ SCOPE BOUNDARY VIOLATION
|
|
346
|
+
File: [path/to/file]
|
|
347
|
+
Reason: [from Protected Files list]
|
|
348
|
+
|
|
349
|
+
This file is marked as protected and must NOT be modified.
|
|
350
|
+
Options:
|
|
351
|
+
1. Find alternative approach that doesn't touch this file
|
|
352
|
+
2. STOP and ask user for explicit approval to cross boundary
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Execution Rules
|
|
356
|
+
|
|
357
|
+
1. **Phase-by-phase**: Complete each phase before next
|
|
358
|
+
2. **Respect dependencies**: Sequential tasks in order
|
|
359
|
+
3. **Parallel tasks**: [P] marked tasks can run together
|
|
360
|
+
4. **File coordination**: Same-file tasks run sequentially
|
|
361
|
+
5. **Scope check**: Verify every file against protected list
|
|
362
|
+
6. **Loop evidence**: After each focused implementation/check-repair loop,
|
|
363
|
+
append a ledger record:
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
node .specify/scripts/node/gofer-loop-audit.mjs --feature-dir {FEATURE_DIR} --stage 5_implement --record '{"iteration":1,"action":"<command-or-review>","result":"pass","summary":"<evidence summary>"}' --json
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
Use `result: "fail"` or `"blocked"` when a check fails and include a
|
|
370
|
+
material `nextAction`. Stop and escalate instead of continuing silently when
|
|
371
|
+
the same action reaches `humanEscalation.maxFailedIterations`.
|
|
372
|
+
|
|
373
|
+
### Execution Order
|
|
374
|
+
|
|
375
|
+
1. **Setup first**: Project structure, dependencies, config
|
|
376
|
+
2. **Foundational next**: Shared components blocking user stories
|
|
377
|
+
3. **User stories**: In priority order (P1, P2, P3...)
|
|
378
|
+
4. **Polish last**: Documentation, optimization, final tests
|
|
379
|
+
|
|
380
|
+
### Minimal Changes Only
|
|
381
|
+
|
|
382
|
+
**Before EVERY file modification**, verify against Constitution Principle VIII:
|
|
383
|
+
|
|
384
|
+
1. Is this change directly required by the current task? If not, **do not make
|
|
385
|
+
it**.
|
|
386
|
+
2. Am I modifying only the files listed in the task scope? If touching other
|
|
387
|
+
files, **stop and justify**.
|
|
388
|
+
3. Am I refactoring surrounding code? If yes, **revert** — only change what the
|
|
389
|
+
task specifies.
|
|
390
|
+
4. Am I adding features, documentation, or tests beyond what's specified? If
|
|
391
|
+
yes, **remove them**.
|
|
392
|
+
5. Am I adding error handling for scenarios that cannot occur? If yes, **remove
|
|
393
|
+
it**.
|
|
394
|
+
6. Am I creating an abstraction for a one-time operation? If yes, **inline it**.
|
|
395
|
+
7. Am I gold-plating (better variable names, extra comments, type annotations on
|
|
396
|
+
unchanged code)? If yes, **revert**.
|
|
397
|
+
|
|
398
|
+
**This is a per-modification check, not a per-task check.** Apply it to every
|
|
399
|
+
line you write.
|
|
400
|
+
|
|
401
|
+
### For Each Task
|
|
402
|
+
|
|
403
|
+
1. Read the task description and file path
|
|
404
|
+
2. **SCOPE CHECK**: Verify file is not protected
|
|
405
|
+
3. Load relevant context (data-model, contracts, research)
|
|
406
|
+
4. Implement according to plan.md architecture
|
|
407
|
+
5. Follow existing codebase patterns (from research.md)
|
|
408
|
+
6. **MINIMAL CHANGE CHECK**: Verify every modification against the 7-point
|
|
409
|
+
checklist above
|
|
410
|
+
7. Mark the task `in_progress` before editing:
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# Use the Gofer task status tool if available
|
|
414
|
+
gofer_update_task_status <spec-id> <task-id> in_progress
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
8. **RUN FEEDBACK LOOP** (see below)
|
|
418
|
+
9. After the task passes its feedback loop, immediately mark it complete in
|
|
419
|
+
`tasks.md` using `gofer_update_task_status <spec-id> <task-id> completed` or
|
|
420
|
+
`.specify/scripts/bash/mark-task-complete.sh <feature-dir> <task-id>`
|
|
421
|
+
10. Report progress
|
|
422
|
+
|
|
423
|
+
### Feedback Loop (After EACH Task)
|
|
424
|
+
|
|
425
|
+
**Immediately after completing each task, run verification**:
|
|
426
|
+
|
|
427
|
+
```bash
|
|
428
|
+
# 1. Run relevant tests (if test file exists for this component)
|
|
429
|
+
npm test -- --grep "[component pattern]" # or pytest -k "pattern"
|
|
430
|
+
|
|
431
|
+
# 2. Run linter on modified files
|
|
432
|
+
npm run lint -- [modified files] # or ruff check [files]
|
|
433
|
+
|
|
434
|
+
# 3. Run type check (TypeScript projects)
|
|
435
|
+
npm run typecheck # or tsc --noEmit
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**Feedback Loop Rules**:
|
|
439
|
+
|
|
440
|
+
- If tests fail → **FIX BEFORE** proceeding to next task
|
|
441
|
+
- If lint errors → **FIX BEFORE** proceeding
|
|
442
|
+
- If type errors → **FIX BEFORE** proceeding
|
|
443
|
+
- **DO NOT** mark a task complete until the feedback loop passes
|
|
444
|
+
- **DO NOT** accumulate failures across tasks
|
|
445
|
+
|
|
446
|
+
### After Each Phase
|
|
447
|
+
|
|
448
|
+
Run full verification before proceeding:
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
# Full test suite
|
|
452
|
+
npm test
|
|
453
|
+
|
|
454
|
+
# Full build
|
|
455
|
+
npm run build
|
|
456
|
+
|
|
457
|
+
# Full lint
|
|
458
|
+
npm run lint
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
**Phase Gate**: Do NOT proceed to next phase if build is broken.
|
|
462
|
+
|
|
463
|
+
### Multi-Perspective Implementation Options (Optional)
|
|
464
|
+
|
|
465
|
+
When facing complex implementation decisions during task execution, invoke one
|
|
466
|
+
or more of the following strategies. Each spawns multiple sub-agents that
|
|
467
|
+
explore different approaches, then a judge synthesizes the best result.
|
|
468
|
+
|
|
469
|
+
**Trigger conditions** — use these when:
|
|
470
|
+
|
|
471
|
+
| Strategy | Agent | When to Trigger | Converge Model |
|
|
472
|
+
| ------------------------ | -------------------------------- | -------------------------------------------------------------------------- | -------------- |
|
|
473
|
+
| #1 Variant Generator | `implement-variant-generator` | Multiple valid coding paradigms exist for a task (e.g., functional vs OOP) | sonnet |
|
|
474
|
+
| #3 Bug Triangulator | `implement-bug-triangulator` | Debugging a defect with unclear root cause | sonnet |
|
|
475
|
+
| #4 Test Diversifier | `implement-test-diversifier` | Writing tests for critical or complex logic | sonnet |
|
|
476
|
+
| #8 Error Hardener | `implement-error-hardener` | Implementing error-prone code (I/O, external APIs, resource mgmt) | sonnet |
|
|
477
|
+
| #11 Performance Explorer | `implement-performance-explorer` | Optimizing a hot path or resource-intensive operation | sonnet |
|
|
478
|
+
| #15 Code Review Council | `implement-code-review-council` | After completing a complex task, before marking done | sonnet |
|
|
479
|
+
| #17 Doc Writer | `implement-doc-writer` | Writing documentation for a user-facing feature | sonnet |
|
|
480
|
+
|
|
481
|
+
**Invocation pattern** (example for #1 Variant Generator):
|
|
482
|
+
|
|
483
|
+
```
|
|
484
|
+
# Diverge: Launch 3-5 agents with different approaches
|
|
485
|
+
Task: subagent_type="implement-variant-generator", model="sonnet"
|
|
486
|
+
prompt="Perspective 1: Implement [task] using functional approach. Files: [list]"
|
|
487
|
+
|
|
488
|
+
Task: subagent_type="implement-variant-generator", model="sonnet"
|
|
489
|
+
prompt="Perspective 2: Implement [task] using OOP approach. Files: [list]"
|
|
490
|
+
|
|
491
|
+
Task: subagent_type="implement-variant-generator", model="sonnet"
|
|
492
|
+
prompt="Perspective 3: Implement [task] using event-driven approach. Files: [list]"
|
|
493
|
+
|
|
494
|
+
# Converge: Judge synthesizes best approach
|
|
495
|
+
Task: subagent_type="multi-perspective-judge", model="opus"
|
|
496
|
+
prompt="Synthesize 3 implementation variants for [task]. Select best approach.
|
|
497
|
+
Variant 1: [result]. Variant 2: [result]. Variant 3: [result]."
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
**Rules**:
|
|
501
|
+
|
|
502
|
+
- These are OPTIONAL — only invoke when trigger conditions are met
|
|
503
|
+
- Each diverge agent returns <2000 tokens; judge returns <4000 tokens
|
|
504
|
+
- Do NOT use for trivial tasks (config changes, simple getters, boilerplate)
|
|
505
|
+
- Prefer strategies that match the task type (debugging → #3, testing → #4)
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
## Step 8: Progress Tracking
|
|
510
|
+
|
|
511
|
+
### After Each Task
|
|
512
|
+
|
|
513
|
+
```
|
|
514
|
+
✓ T001 Create directory structure - DONE
|
|
515
|
+
→ T002 [P] Set up configuration files - IN PROGRESS
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
### After Each Phase
|
|
519
|
+
|
|
520
|
+
```
|
|
521
|
+
═══════════════════════════════════════
|
|
522
|
+
Phase 1: Setup - COMPLETE
|
|
523
|
+
═══════════════════════════════════════
|
|
524
|
+
Tasks completed: 4/4
|
|
525
|
+
Files created:
|
|
526
|
+
- src/index.ts
|
|
527
|
+
- src/config.ts
|
|
528
|
+
- package.json
|
|
529
|
+
- tsconfig.json
|
|
530
|
+
|
|
531
|
+
→ Starting Phase 2: Foundational
|
|
532
|
+
═══════════════════════════════════════
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## Step 9: Error Handling
|
|
538
|
+
|
|
539
|
+
### If Task Fails
|
|
540
|
+
|
|
541
|
+
1. Report the error with context
|
|
542
|
+
2. **For sequential tasks**: Halt execution
|
|
543
|
+
3. **For parallel [P] tasks**: Continue others, report failed
|
|
544
|
+
4. Provide debugging suggestions
|
|
545
|
+
5. Ask user how to proceed:
|
|
546
|
+
- Retry the task
|
|
547
|
+
- Skip and continue
|
|
548
|
+
- Stop implementation
|
|
549
|
+
|
|
550
|
+
### If Blocked
|
|
551
|
+
|
|
552
|
+
1. Identify the blocker
|
|
553
|
+
2. Check if it's a missing prerequisite
|
|
554
|
+
3. Suggest running earlier stage if needed
|
|
555
|
+
4. Document the issue in tasks.md
|
|
556
|
+
|
|
557
|
+
### If Something Goes Wrong (Rollback)
|
|
558
|
+
|
|
559
|
+
1. **STOP immediately** - don't make more changes
|
|
560
|
+
2. **Assess damage**:
|
|
561
|
+
```bash
|
|
562
|
+
git status
|
|
563
|
+
git diff
|
|
564
|
+
```
|
|
565
|
+
3. **Rollback options**:
|
|
566
|
+
- Single file: `git checkout HEAD -- <file>`
|
|
567
|
+
- All uncommitted: `git reset --hard HEAD`
|
|
568
|
+
- To last checkpoint: `git reset --hard <checkpoint-commit>`
|
|
569
|
+
4. **Document** what went wrong in tasks.md
|
|
570
|
+
5. **Retry** with modified approach
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
574
|
+
## Step 10: Completion Validation
|
|
575
|
+
|
|
576
|
+
After all tasks complete:
|
|
577
|
+
|
|
578
|
+
1. **Verify all tasks marked [X]**
|
|
579
|
+
2. **Check implementation matches spec**
|
|
580
|
+
3. **Run automated tests** if they exist
|
|
581
|
+
4. **Validate against plan.md architecture**
|
|
582
|
+
5. **Run loop audit in strict mode**:
|
|
583
|
+
|
|
584
|
+
```bash
|
|
585
|
+
node .specify/scripts/node/gofer-loop-audit.mjs --feature-dir {FEATURE_DIR} --stage 5_implement --json --strict
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
If the audit fails, implementation is not complete. Repair the contract,
|
|
589
|
+
append missing ledger evidence, run the failing eval command, or escalate
|
|
590
|
+
according to the stop condition.
|
|
591
|
+
|
|
592
|
+
---
|
|
593
|
+
|
|
594
|
+
## Step 11: Engineering Review Gate (Up to 5 cycles)
|
|
595
|
+
|
|
596
|
+
Before proceeding to validation, run an iterative engineering review to catch
|
|
597
|
+
implementation issues early.
|
|
598
|
+
|
|
599
|
+
### Review Cycle (repeat up to 5 times)
|
|
600
|
+
|
|
601
|
+
**CRITICAL**: You **MUST** dispatch 3 review agents in parallel using the Task
|
|
602
|
+
tool. Do NOT perform this review work inline in the main context.
|
|
603
|
+
|
|
604
|
+
**Agent 1**: engineer-review (sonnet) — cross-check spec↔plan↔implementation
|
|
605
|
+
alignment
|
|
606
|
+
|
|
607
|
+
```
|
|
608
|
+
Task: subagent_type="engineer-review", model="sonnet"
|
|
609
|
+
Prompt: "Review alignment between spec.md, plan.md, tasks.md, and the
|
|
610
|
+
implemented code in {FEATURE_DIR}. Check that all acceptance criteria are
|
|
611
|
+
implemented. Report Red/Yellow/Gray findings."
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
**Agent 2**: codebase-analyzer (sonnet) — verify implementation patterns
|
|
615
|
+
|
|
616
|
+
```
|
|
617
|
+
Task: subagent_type="codebase-analyzer", model="sonnet"
|
|
618
|
+
Prompt: "Verify that the implemented code follows existing codebase patterns
|
|
619
|
+
from {FEATURE_DIR}/research.md and matches the architecture in
|
|
620
|
+
{FEATURE_DIR}/plan.md. Report Red/Yellow/Gray findings."
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
**Agent 3**: validation-correctness (sonnet) — verify acceptance criteria
|
|
624
|
+
coverage
|
|
625
|
+
|
|
626
|
+
```
|
|
627
|
+
Task: subagent_type="validation-correctness", model="sonnet"
|
|
628
|
+
Prompt: "Verify that every acceptance criterion in {FEATURE_DIR}/spec.md
|
|
629
|
+
has been implemented and has corresponding test coverage.
|
|
630
|
+
Report Red/Yellow/Gray findings with coverage gaps."
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
**After agents return:**
|
|
634
|
+
|
|
635
|
+
1. Classify findings: Red (blocking) / Yellow (should fix) / Gray
|
|
636
|
+
(informational)
|
|
637
|
+
2. If NO Red or Yellow findings → PASS → proceed to auto-chain
|
|
638
|
+
3. If Red or Yellow findings exist: a. Fix findings directly in implementation
|
|
639
|
+
code (Red first, then Yellow) b. Re-run build/test/lint to verify fixes c.
|
|
640
|
+
Increment cycle counter d. If cycle <= 5 → re-run review agents e. If cycle >
|
|
641
|
+
5 → log remaining findings, proceed with warnings
|
|
642
|
+
|
|
643
|
+
---
|
|
644
|
+
|
|
645
|
+
## Step 12: Report and Continue
|
|
646
|
+
|
|
647
|
+
After implementation complete, strict loop audit passes, and review gate passes,
|
|
648
|
+
update the stakeholder-facing implementation record:
|
|
649
|
+
|
|
650
|
+
1. Update `{FEATURE_DIR}/working-backwards-prfaq.md`.
|
|
651
|
+
- In "The Launch" and Delivery / Operations FAQ, describe what is now built.
|
|
652
|
+
- Add "What changed from plan" when implementation differs from `plan.md`,
|
|
653
|
+
`tasks.md`, or stakeholder-approved scope.
|
|
654
|
+
- Link to code/test evidence, `loop-ledger.jsonl`, and any preview evidence.
|
|
655
|
+
2. Write `{FEATURE_DIR}/prfaq-history/05-implement.md` as an immutable
|
|
656
|
+
implementation snapshot.
|
|
657
|
+
3. Update `{FEATURE_DIR}/business-owner-summary.md` if implementation changed
|
|
658
|
+
process, scope, user-facing behavior, assumptions, or success metrics.
|
|
659
|
+
4. Update `{FEATURE_DIR}/cto-architecture-summary.md` if implementation changed
|
|
660
|
+
architecture, EAI Platform/Azure usage, auth, tenancy, data, contracts, or
|
|
661
|
+
integration boundaries.
|
|
662
|
+
5. Update `{FEATURE_DIR}/stakeholder-review-index.md` with:
|
|
663
|
+
- Business Owner review ask for implemented behavior and demo readiness.
|
|
664
|
+
- CTO review ask for implementation deltas against the architecture summary.
|
|
665
|
+
- Delivery review ask for completed scope, outstanding risks, and rollback
|
|
666
|
+
evidence.
|
|
667
|
+
6. Do not mark implementation complete unless the existing feedback loops,
|
|
668
|
+
`loop-ledger.jsonl`, and strict loop audit requirements remain satisfied.
|
|
669
|
+
|
|
670
|
+
After the stakeholder PR/FAQ artifacts are updated:
|
|
671
|
+
|
|
672
|
+
```
|
|
673
|
+
════════════════════════════════════════════════════════════════
|
|
674
|
+
✓ IMPLEMENTATION COMPLETE: [Feature Name]
|
|
675
|
+
════════════════════════════════════════════════════════════════
|
|
676
|
+
|
|
677
|
+
Tasks: [N]/[N] completed
|
|
678
|
+
Loop evidence: {FEATURE_DIR}/loop-ledger.jsonl
|
|
679
|
+
Working Backwards PR/FAQ: {FEATURE_DIR}/working-backwards-prfaq.md
|
|
680
|
+
PR/FAQ implementation snapshot: {FEATURE_DIR}/prfaq-history/05-implement.md
|
|
681
|
+
Stakeholder review index: {FEATURE_DIR}/stakeholder-review-index.md
|
|
682
|
+
|
|
683
|
+
Phases completed:
|
|
684
|
+
- Phase 1: Setup ✓
|
|
685
|
+
- Phase 2: Foundational ✓
|
|
686
|
+
- Phase 3: US1 ✓
|
|
687
|
+
- Phase 4: US2 ✓
|
|
688
|
+
- Phase 5: Polish ✓
|
|
689
|
+
|
|
690
|
+
Engineering Review: PASSED (cycle [N] of 5)
|
|
691
|
+
|
|
692
|
+
Files created/modified:
|
|
693
|
+
- src/models/user.ts (new)
|
|
694
|
+
- src/services/userService.ts (new)
|
|
695
|
+
- src/routes/users.ts (new)
|
|
696
|
+
- src/index.ts (modified)
|
|
697
|
+
|
|
698
|
+
════════════════════════════════════════════════════════════════
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
**AUTO-CHAIN (MANDATORY)**: You MUST immediately invoke the next pipeline stage
|
|
702
|
+
by calling the Skill tool with skill="/6_gofer_validate". Do NOT ask the user
|
|
703
|
+
for confirmation. Do NOT output "Ready for next stage". Just invoke the skill
|
|
704
|
+
NOW.
|
|
705
|
+
|
|
706
|
+
---
|
|
707
|
+
|
|
708
|
+
## Resumption Support
|
|
709
|
+
|
|
710
|
+
If implementation was interrupted:
|
|
711
|
+
|
|
712
|
+
1. Parse tasks.md for `- [X]` completed tasks
|
|
713
|
+
2. Find first incomplete task `- [ ]`
|
|
714
|
+
3. Resume from that task
|
|
715
|
+
4. Report what was already done
|
|
716
|
+
|
|
717
|
+
**Note**: Implementation is stateful - it resumes from the last completed task.
|
|
718
|
+
|
|
719
|
+
---
|
|
720
|
+
|
|
721
|
+
## EnterpriseAI Runtime Deployment Preflight Gate
|
|
722
|
+
|
|
723
|
+
The standard Gofer workflow is the public default. EnterpriseAI deployment
|
|
724
|
+
preflight is migration-only and runs only when `workflowProfile` is explicitly
|
|
725
|
+
`enterpriseai`.
|
|
726
|
+
|
|
727
|
+
Before any deployment task emitted by `/4_gofer_tasks` completes, this stage
|
|
728
|
+
MUST execute deployment preflight checks for the runtime contract and deploy
|
|
729
|
+
doctor gate. A task that invokes `eai deploy` is not marked complete until all
|
|
730
|
+
of the following files are present at the workspace root and pass their
|
|
731
|
+
readiness checks:
|
|
732
|
+
|
|
733
|
+
| Required File | Purpose |
|
|
734
|
+
| ------------------------- | -------------------------------------------------------------- |
|
|
735
|
+
| `eai.runtime.json` | Provider-neutral runtime contract from the EAI app template |
|
|
736
|
+
| `.eai/deploy-doctor.json` | Black-box deploy doctor evidence from the deployed app runtime |
|
|
737
|
+
|
|
738
|
+
Required commands:
|
|
739
|
+
|
|
740
|
+
```bash
|
|
741
|
+
eai runtime validate
|
|
742
|
+
mkdir -p .eai
|
|
743
|
+
eai deploy doctor --url <deployed-url> --format json > .eai/deploy-doctor.json
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
`/health` alone is not enough. Auth.js, runtime config, tenant/workflow config,
|
|
747
|
+
PublicAPI/BFF reachability, service-identity requirements, and declared smoke
|
|
748
|
+
tests must pass before deployment is complete.
|
|
749
|
+
|
|
750
|
+
### Gate behaviour
|
|
751
|
+
|
|
752
|
+
- If any required file is missing, the stage emits `EVT-012` via the
|
|
753
|
+
deployment-readiness event bus and blocks task completion.
|
|
754
|
+
- Paths are resolved relative to the workspace root. Any attempt to resolve a
|
|
755
|
+
required file outside the workspace (for example `/etc/passwd`) throws
|
|
756
|
+
`IMPL_DEPLOYMENT_PATH_INVALID`.
|
|
757
|
+
- When the gate passes, `readinessPassed=true` is recorded in the emitted event
|
|
758
|
+
and the deployment task is allowed to continue.
|
|
759
|
+
|
|
760
|
+
### EnterpriseAI Red/Green Implementation Discipline
|
|
761
|
+
|
|
762
|
+
For EnterpriseAI runs, implementation MUST preserve the test/implementation
|
|
763
|
+
separation from `tasks.md`:
|
|
764
|
+
|
|
765
|
+
- Run the spec-derived tests before implementation and record the expected
|
|
766
|
+
failure when the implementation is missing or incomplete.
|
|
767
|
+
- Implement only against the approved `contract-pack.md`, `context-bundle.md`,
|
|
768
|
+
`reuse-scan.md`, `journeys/base-journey.md`, `plan.md`, and `goal-ledger.json`.
|
|
769
|
+
- For application delivery, stop and return to the preview loop if
|
|
770
|
+
`{FEATURE_DIR}/ui-approval.md` is missing or not approved. App-delivery runs
|
|
771
|
+
MUST NOT continue as though the UI is settled when approval has not been
|
|
772
|
+
recorded.
|
|
773
|
+
- For application delivery, use the EAI App Template already installed in the
|
|
774
|
+
workspace as the default UI lego-block source. Any create-new UI concept must
|
|
775
|
+
be justified in the approved plan and approval artifacts.
|
|
776
|
+
- For application delivery, implement on EAI Platform first, including the EAI
|
|
777
|
+
app template, and Azure second: use the EAI scaffold, PublicAPI/object
|
|
778
|
+
types/workflows/block catalog, ResourceAPI/`eai resources schema`, tenant/app
|
|
779
|
+
enrollment, provisioning, diagnostics, and Azure-compatible
|
|
780
|
+
deployment/supporting services before any non-EAI exception. Do not introduce a
|
|
781
|
+
non-EAI primary runtime, database, hosting platform, or app stack unless
|
|
782
|
+
`plan.md`, `service-fit-matrix.md`, and approval artifacts record it as an
|
|
783
|
+
explicit exception.
|
|
784
|
+
- Before implementing UI, run or inspect `eai --describe`, `eai blocks list`,
|
|
785
|
+
`eai blocks describe <id>` for every selected block, and
|
|
786
|
+
`eai resources schema --format json`. Implementation notes must cite the block IDs,
|
|
787
|
+
required resources, bindings, package lane, coupling status, Storybook story
|
|
788
|
+
IDs, theme override points, and any approved custom-block exception.
|
|
789
|
+
- Reject unknown component names during implementation unless `tasks.md` and
|
|
790
|
+
`ui-approval.md` explicitly authorize a custom extension block and manifest.
|
|
791
|
+
- Treat package-profile, block-porting, source-platform decoupling, and public-readiness
|
|
792
|
+
tasks as first-class implementation tasks, not polish. Update
|
|
793
|
+
`{FEATURE_DIR}/goal-ledger.json` whenever a task changes an owner, target
|
|
794
|
+
metric, delivery state, promotion criterion, or re-loop trigger. External and
|
|
795
|
+
hybrid profile work is incomplete until package exports, Storybook stories,
|
|
796
|
+
theme overrides, consumer smoke checks, and unsupported custom-block
|
|
797
|
+
exceptions are resolved or explicitly deferred by approval artifacts.
|
|
798
|
+
- Do not let public or hybrid package lanes import source-platform internals directly.
|
|
799
|
+
Use `eai resources schema`, an adapter boundary, or an approved
|
|
800
|
+
restricted-source exception; record the coupling status in implementation
|
|
801
|
+
notes and `ui-review-log.md`.
|
|
802
|
+
- For EAI app delivery, read `.specify/references/platform/eai-repo-contract.md`,
|
|
803
|
+
`.specify/references/platform/eai-error-catalog.yaml`, and
|
|
804
|
+
`.specify/specs/{feature}/eai-preflight.md` before remote platform changes.
|
|
805
|
+
- Carry forward the last completed gate, blocked gate, and next recovery
|
|
806
|
+
command from `eai-preflight.md` whenever provisioning, object-type publish,
|
|
807
|
+
schema/storage health, workflow readiness, or preview readiness changes.
|
|
808
|
+
- After any failed `eai` command, run `eai errors explain <code-or-reason>
|
|
809
|
+
--format json` when advertised before proposing a fix. If the command is not
|
|
810
|
+
advertised, match `.specify/references/platform/eai-error-catalog.yaml`. Run
|
|
811
|
+
read-only diagnostics before mutating fixes, ask for approval before tenant
|
|
812
|
+
membership or admin changes, and stop at the guidance retry/escalation
|
|
813
|
+
condition instead of repeatedly rerunning the same command.
|
|
814
|
+
- Treat resource provisioning, object-type publish, schema/storage health, and preview readiness as separate gates even when the CLI reports progress in a single run.
|
|
815
|
+
- Track workflow readiness alongside those gates; do not collapse it into
|
|
816
|
+
provisioning, schema/storage health, or preview status.
|
|
817
|
+
- Use `eai app provision <key> --tenant-id <tenant-id> --select --format json`,
|
|
818
|
+
`eai provision entra --force --redirect-uri <confirmed-callback-uri>`,
|
|
819
|
+
`eai types seed --tenant-key <key> --tenant-id <tenant-id> --format json`,
|
|
820
|
+
`eai resources schema --tenant-id <tenant-id> --format json`,
|
|
821
|
+
`eai resources storage doctor --tenant-id <tenant-id> --format json`, and
|
|
822
|
+
`eai verify storage --tenant-id <tenant-id>` in the recovery order recorded
|
|
823
|
+
by the preflight artifact instead of improvising a new sequence. Use EAI
|
|
824
|
+
`--debug` flags only with explicit user approval, and never write private
|
|
825
|
+
hostnames, tenant IDs, client IDs, tokens, or raw debug output to committed
|
|
826
|
+
artifacts.
|
|
827
|
+
- For v4 passive ResourceAPI search, treat `capabilities.search.fulltext`,
|
|
828
|
+
`capabilities.search.hybrid`, and `capabilities.search.vector` from
|
|
829
|
+
`eai resources storage doctor --tenant-id <tenant-id> --format json` as
|
|
830
|
+
separate readiness states. If hybrid/vector are unavailable but fulltext is
|
|
831
|
+
ready, use `eai resources search "<query>" --fulltext --tenant-id <tenant-id>`
|
|
832
|
+
and record semantic search as a deferred platform capability only when the
|
|
833
|
+
business scenario genuinely requires it. Do not apply this fallback to legacy
|
|
834
|
+
v1/v3 or active ResourceAPI behavior.
|
|
835
|
+
- If a browser or runtime auth log reports `AADSTS50011`, `redirect_uri`,
|
|
836
|
+
"reply URL specified in the request does not match", or
|
|
837
|
+
`/api/auth/callback/microsoft-entra-id`, match
|
|
838
|
+
`EAI_ENTRA_REDIRECT_URI_MISMATCH` in the error catalog. Confirm `eai whoami`
|
|
839
|
+
and tenant selection first, then use EAI Entra provisioning to register the
|
|
840
|
+
confirmed callback URI before asking the user to edit Azure manually. Record
|
|
841
|
+
only a redacted callback route pattern and recovery status in implementation
|
|
842
|
+
notes or validation artifacts.
|
|
843
|
+
- If `eai user invite` fails with `EXTERNAL_SERVICE_ERROR`, a 5xx response, or
|
|
844
|
+
`user_invite_external_service_existing_member`, treat it as a tenant-member
|
|
845
|
+
recovery flow: run `eai user list --tenant <tenant-id> --search <email>
|
|
846
|
+
--format json`, use `eai user role set --tenant <tenant-id> --member-id
|
|
847
|
+
<member-id> --role tenant-admin --format json` only when an existing direct
|
|
848
|
+
member is verified and the user approves, verify the read-back, and tell the
|
|
849
|
+
affected app user to sign out and sign back in because Auth.js session or JWT
|
|
850
|
+
role data may be cached. Do not edit databases or cloud portals directly
|
|
851
|
+
unless EAI guidance reports an operator-only block.
|
|
852
|
+
- For application delivery, implement the four-step-or-fewer AI-augmented
|
|
853
|
+
process as the user-facing spine. Each step must preserve its business goal,
|
|
854
|
+
AI assistance mode, contextual prefill or conversational support, completion
|
|
855
|
+
criteria, human controls, audit trail, and fallback/escalation path.
|
|
856
|
+
- Preserve dual-state delivery discipline: when a capability stays in `mock` or
|
|
857
|
+
`hybrid`, record why, what promotion criteria remain, and what validation
|
|
858
|
+
evidence is still required before it can move to `live`.
|
|
859
|
+
- For application delivery, before showing any new MVP preview to the
|
|
860
|
+
stakeholder, collect screenshot, local render proof, or Playwright-style
|
|
861
|
+
self-review evidence and append it to `{FEATURE_DIR}/ui-review-log.md`.
|
|
862
|
+
- For application delivery, after UI approval and before treating platform
|
|
863
|
+
selection as complete, update `{FEATURE_DIR}/service-fit-matrix.md` with
|
|
864
|
+
tenant-aware evidence from `eai --describe`, `eai whoami`, `eai tenant
|
|
865
|
+
select`, `eai resources schema --format json`, `eai workflow readiness
|
|
866
|
+
--format json`, `eai verify calls --format json`, or equivalent approved
|
|
867
|
+
platform evidence. The matrix must distinguish
|
|
868
|
+
accessible now, purchasable but unavailable now, and unavailable without new
|
|
869
|
+
platform work.
|
|
870
|
+
- For non-app work, skip the preview, approval, branding, and service-fit gates
|
|
871
|
+
while preserving the same numbered stage flow.
|
|
872
|
+
- Do not add extra user-facing app steps unless `plan.md` records why they
|
|
873
|
+
cannot be combined, automated, or handled by generative AI assistance.
|
|
874
|
+
- Re-run the same tests and validation checks after implementation.
|
|
875
|
+
- Update `audit-history.md` with stable finding IDs for every blocking issue,
|
|
876
|
+
recurring issue, accepted exception, owner, expiry, and review cadence.
|
|
877
|
+
|
|
878
|
+
---
|
|
879
|
+
|
|
880
|
+
## Observability Logging
|
|
881
|
+
|
|
882
|
+
At stage completion, log metrics:
|
|
883
|
+
|
|
884
|
+
```bash
|
|
885
|
+
.specify/scripts/bash/log-stage.sh 5_implement --complete --tokens [N] --compactions [N]
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
Logs to: `.specify/logs/pipeline.jsonl`
|
|
889
|
+
|
|
890
|
+
---
|
|
891
|
+
|
|
892
|
+
## Key Rules
|
|
893
|
+
|
|
894
|
+
- ALWAYS mark tasks complete in tasks.md as you finish them
|
|
895
|
+
- Use absolute paths for all file operations
|
|
896
|
+
- Follow existing codebase patterns from research.md
|
|
897
|
+
- Follow architecture from plan.md
|
|
898
|
+
- Report progress clearly after each task
|
|
899
|
+
- Stop on errors for sequential tasks
|
|
900
|
+
- Implementation must match specification
|
|
901
|
+
- Log stage completion for observability tracking
|
|
902
|
+
|
|
903
|
+
---
|
|
904
|
+
|
|
905
|
+
## Optional Helpers: TDD and Diagnose
|
|
906
|
+
|
|
907
|
+
- If the operator explicitly requests `tdd-assist` and both `spec.md` and
|
|
908
|
+
`tasks.md` are present, run `gofer:tdd` inline and write
|
|
909
|
+
`.specify/specs/{feature}/tdd-session.md` using the same artifact contract as
|
|
910
|
+
the standalone helper.
|
|
911
|
+
- If the operator explicitly requests `diagnose` and `spec.md` is present, run
|
|
912
|
+
`gofer:diagnose` inline; bug context, failing output, or equivalent failure
|
|
913
|
+
evidence may supplement the investigation. Write
|
|
914
|
+
`.specify/specs/{feature}/diagnose-report.md` using the same artifact
|
|
915
|
+
contract as the standalone helper.
|
|
916
|
+
- If the required inputs are missing, continue the stage normally and report
|
|
917
|
+
that the helper was not run.
|
|
918
|
+
- These selectors are optional and do not change stage progress, routing, or
|
|
919
|
+
pipeline state.
|