@enterpriseai/cli 3.19.0 → 3.19.2
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/package.json +3 -3
- package/resources/deploy/eai-app-template/producer-pin.json +5 -5
- package/resources/deploy/eai-app-template/tests/source-unknown-deployment-evidence.test.mjs +2141 -1
- package/resources/gofer/.gofer-version +4 -357
- package/resources/gofer/agents-skills/eai/SKILL.md +365 -0
- package/resources/gofer/agents-skills/eai-update/SKILL.md +56 -0
- package/resources/gofer/agents-skills/gofer-documentation/SKILL.md +93 -0
- package/resources/gofer/bash-scripts/create-new-feature.sh +3 -1
- package/resources/gofer/bash-scripts/sync-implementation-status.sh +4 -3
- package/resources/gofer/bash-scripts/update-agent-context.sh +7 -8
- package/resources/gofer/bash-scripts/validate-artifact.sh +10 -6
- package/resources/gofer/bash-scripts/verify-object-type-routing-workspace.sh +184 -0
- package/resources/gofer/claude-commands/eai-update.md +46 -0
- package/resources/gofer/claude-commands/eai.md +355 -0
- package/resources/gofer/claude-skills/eai/SKILL.md +365 -0
- package/resources/gofer/claude-skills/eai-update/SKILL.md +56 -0
- package/resources/gofer/claude-skills/gofer-documentation/SKILL.md +93 -0
- package/resources/gofer/commands/0_gofer_start.md +440 -99
- package/resources/gofer/commands/0a_problem_validation.md +187 -27
- package/resources/gofer/commands/10_gofer_cloud.md +183 -23
- package/resources/gofer/commands/1_gofer_research.md +239 -30
- package/resources/gofer/commands/2_gofer_specify.md +239 -35
- package/resources/gofer/commands/3_gofer_plan.md +259 -43
- package/resources/gofer/commands/4_gofer_tasks.md +401 -81
- package/resources/gofer/commands/5_gofer_implement.md +375 -84
- package/resources/gofer/commands/6_gofer_validate.md +284 -53
- package/resources/gofer/commands/7_gofer_save.md +187 -26
- package/resources/gofer/commands/7a_stakeholder_comms.md +183 -23
- package/resources/gofer/commands/8_gofer_branding.md +183 -23
- package/resources/gofer/commands/9_gofer_tests.md +212 -23
- package/resources/gofer/commands/gofer_bootstrap_workspace.md +121 -8
- package/resources/gofer/commands/gofer_check_workspace.md +123 -8
- package/resources/gofer/commands/gofer_constitution.md +183 -23
- package/resources/gofer/commands/gofer_diagnose.md +183 -23
- package/resources/gofer/commands/gofer_eai_first_run.md +254 -25
- package/resources/gofer/commands/gofer_hydrate.md +183 -23
- package/resources/gofer/commands/gofer_personality.md +117 -6
- package/resources/gofer/commands/gofer_plan.md +117 -6
- package/resources/gofer/commands/gofer_side.md +117 -6
- package/resources/gofer/commands/gofer_spec_summary.md +183 -23
- package/resources/gofer/commands/gofer_tdd.md +183 -23
- package/resources/gofer/commands/gofer_vocabulary.md +185 -25
- package/resources/gofer/commands/gofer_zoom_out.md +183 -23
- package/resources/gofer/config/typesafe-learning-review.json +16 -0
- package/resources/gofer/config/typesafe-semantic-review.json +9 -0
- package/resources/gofer/copilot-instructions/gofer-cost.instructions.md +15 -6
- package/resources/gofer/copilot-instructions/typescript.instructions.md +1 -1
- package/resources/gofer/copilot-prompts/eai-update.prompt.md +58 -0
- package/resources/gofer/copilot-prompts/eai.prompt.md +367 -0
- package/resources/gofer/gemini/commands/gofer/eai-update.md +22 -0
- package/resources/gofer/gemini/commands/gofer/eai-update.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/eai.md +357 -0
- package/resources/gofer/gemini/commands/gofer/eai.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/manifest.json +3 -27
- package/resources/gofer/gemini/extension.json +4 -4
- package/resources/gofer/github-agents/eai.agent.md +83 -0
- package/resources/gofer/github-agents/gofer-business.agent.md +73 -4
- package/resources/gofer/github-agents/gofer-implement.agent.md +71 -2
- package/resources/gofer/github-agents/gofer-plan.agent.md +72 -2
- package/resources/gofer/github-agents/gofer-research.agent.md +72 -2
- package/resources/gofer/github-agents/gofer-validate.agent.md +72 -2
- package/resources/gofer/github-skills/eai/SKILL.md +365 -0
- package/resources/gofer/github-skills/eai-update/SKILL.md +56 -0
- package/resources/gofer/github-skills/gofer-documentation/SKILL.md +93 -0
- package/resources/gofer/grok-skills/eai/SKILL.md +267 -14
- package/resources/gofer/grok-skills/eai-update/SKILL.md +56 -0
- package/resources/gofer/hook-scripts/user-prompt-submit.mjs +58 -13
- package/resources/gofer/instruction-templates/base/agents-base.md +8 -4
- package/resources/gofer/instruction-templates/gofer/gofer-claude.md +7 -5
- package/resources/gofer/instruction-templates/gofer/gofer-copilot.md +10 -8
- package/resources/gofer/memory/constitution.md +9 -7
- package/resources/gofer/memory/gofer-model-policy.yaml +23 -1
- package/resources/gofer/memory/lessons.md +0 -31
- package/resources/gofer/node-scripts/canonical-descriptions.mjs +1 -1
- package/resources/gofer/node-scripts/check-version-alignment.mjs +4 -7
- package/resources/gofer/node-scripts/delivery-lineage-corpus.mjs +156 -0
- package/resources/gofer/node-scripts/generate-commands.mjs +1073 -265
- package/resources/gofer/node-scripts/gofer-acceptance-check.mjs +143 -0
- package/resources/gofer/node-scripts/gofer-agent-catalog.mjs +271 -0
- package/resources/gofer/node-scripts/gofer-benchmark-executor.mjs +123 -0
- package/resources/gofer/node-scripts/gofer-benchmark-sign.mjs +62 -0
- package/resources/gofer/node-scripts/gofer-benchmark-signer.mjs +89 -0
- package/resources/gofer/node-scripts/gofer-benchmark.mjs +76 -0
- package/resources/gofer/node-scripts/gofer-blocker-control.mjs +274 -0
- package/resources/gofer/node-scripts/gofer-claude-adapter.mjs +154 -0
- package/resources/gofer/node-scripts/gofer-closed-loop-audit.mjs +19 -2
- package/resources/gofer/node-scripts/gofer-delivery-check.mjs +121 -0
- package/resources/gofer/node-scripts/gofer-encrypted-key.mjs +58 -0
- package/resources/gofer/node-scripts/gofer-execution-metrics.mjs +477 -0
- package/resources/gofer/node-scripts/gofer-execution-recovery.mjs +334 -0
- package/resources/gofer/node-scripts/gofer-grok-adapter.mjs +184 -0
- package/resources/gofer/node-scripts/gofer-heldout-corpus.mjs +73 -0
- package/resources/gofer/node-scripts/gofer-heldout-snapshot.mjs +286 -0
- package/resources/gofer/node-scripts/gofer-heldout-verifier.mjs +211 -0
- package/resources/gofer/node-scripts/gofer-host-capability.mjs +335 -0
- package/resources/gofer/node-scripts/gofer-independent-reviewer.mjs +130 -0
- package/resources/gofer/node-scripts/gofer-live-routing.mjs +109 -0
- package/resources/gofer/node-scripts/gofer-local-capability-issuer.mjs +71 -0
- package/resources/gofer/node-scripts/gofer-local-isolation.mjs +175 -0
- package/resources/gofer/node-scripts/gofer-local-settings-cleanup.mjs +388 -0
- package/resources/gofer/node-scripts/gofer-loop-audit.mjs +54 -3
- package/resources/gofer/node-scripts/gofer-native-adapter.mjs +567 -0
- package/resources/gofer/node-scripts/gofer-native-benchmark-dispatch.mjs +145 -0
- package/resources/gofer/node-scripts/gofer-native-runtime.mjs +169 -0
- package/resources/gofer/node-scripts/gofer-pre-edit-check.mjs +204 -0
- package/resources/gofer/node-scripts/gofer-priority-check.mjs +214 -0
- package/resources/gofer/node-scripts/gofer-response-check.mjs +56 -0
- package/resources/gofer/node-scripts/gofer-reviewed-learning.mjs +1232 -0
- package/resources/gofer/node-scripts/gofer-run-verified-task.mjs +330 -0
- package/resources/gofer/node-scripts/gofer-runtime-ledger.mjs +289 -0
- package/resources/gofer/node-scripts/gofer-semantic-drift.mjs +584 -0
- package/resources/gofer/node-scripts/gofer-surface-update.mjs +1178 -0
- package/resources/gofer/node-scripts/gofer-trust-bootstrap.mjs +77 -0
- package/resources/gofer/node-scripts/gofer-trusted-benchmark.mjs +102 -0
- package/resources/gofer/node-scripts/gofer-trusted-evaluator.mjs +274 -0
- package/resources/gofer/node-scripts/gofer-tty-prompt.mjs +34 -0
- package/resources/gofer/node-scripts/gofer-typesafe-credentials.mjs +435 -0
- package/resources/gofer/node-scripts/gofer-ui-preview.mjs +1212 -0
- package/resources/gofer/node-scripts/gofer-verified-execution.mjs +484 -0
- package/resources/gofer/node-scripts/gofer-verifier-key-ceremony.mjs +101 -0
- package/resources/gofer/node-scripts/gofer-worktree-layout.mjs +32 -0
- package/resources/gofer/node-scripts/object-type-routing-phase-bundle.mjs +360 -0
- package/resources/gofer/node-scripts/package-agent-plugin.mjs +574 -82
- package/resources/gofer/node-scripts/parse-stage-command.mjs +1 -1
- package/resources/gofer/node-scripts/render-delivery-lineage.mjs +178 -0
- package/resources/gofer/node-scripts/sync-extension-resources.mjs +78 -2
- package/resources/gofer/node-scripts/validate-object-type-identifiers.mjs +767 -0
- package/resources/gofer/node-scripts/validate-object-type-routing-workspace.mjs +1325 -0
- package/resources/gofer/node-scripts/validate-v4-resource-contract.d.mts +44 -0
- package/resources/gofer/node-scripts/validate-v4-resource-contract.mjs +957 -0
- package/resources/gofer/node-scripts/workspace-bootstrap-lib.mjs +685 -116
- package/resources/gofer/references/agent-catalog.json +126 -0
- package/resources/gofer/references/blocker-mediation.md +156 -0
- package/resources/gofer/references/business-updates-and-goal-checks.md +109 -0
- package/resources/gofer/references/delivery-lineage.md +48 -0
- package/resources/gofer/references/mvp-capability-validation.md +102 -0
- package/resources/gofer/references/platform/README.md +1 -1
- package/resources/gofer/references/platform/eai-app-template.md +15 -13
- package/resources/gofer/references/platform/eai-auth-access.md +104 -0
- package/resources/gofer/references/platform/eai-config-driven-ui.md +5 -5
- package/resources/gofer/references/platform/eai-error-catalog.yaml +77 -19
- package/resources/gofer/references/platform/eai-repo-contract.md +61 -23
- package/resources/gofer/references/platform/eai-service-patterns.md +102 -105
- package/resources/gofer/references/platform/eai.md +44 -8
- package/resources/gofer/references/platform/vertical-template.md +10 -9
- package/resources/gofer/references/priority-outcome-protection.md +152 -0
- package/resources/gofer/references/verified-agent-execution.md +179 -0
- package/resources/gofer/schemas/gofer-learning-trace-v1.json +70 -0
- package/resources/gofer/specify-commands/0_gofer_start.md +440 -99
- package/resources/gofer/specify-commands/0a_problem_validation.md +187 -27
- package/resources/gofer/specify-commands/10_gofer_cloud.md +183 -23
- package/resources/gofer/specify-commands/1_gofer_research.md +239 -30
- package/resources/gofer/specify-commands/2_gofer_specify.md +239 -35
- package/resources/gofer/specify-commands/3_gofer_plan.md +259 -43
- package/resources/gofer/specify-commands/4_gofer_tasks.md +401 -81
- package/resources/gofer/specify-commands/5_gofer_implement.md +375 -84
- package/resources/gofer/specify-commands/6_gofer_validate.md +284 -53
- package/resources/gofer/specify-commands/7_gofer_save.md +187 -26
- package/resources/gofer/specify-commands/7a_stakeholder_comms.md +183 -23
- package/resources/gofer/specify-commands/8_gofer_branding.md +183 -23
- package/resources/gofer/specify-commands/9_gofer_tests.md +212 -23
- package/resources/gofer/specify-commands/gofer_bootstrap_workspace.md +121 -8
- package/resources/gofer/specify-commands/gofer_check_workspace.md +123 -8
- package/resources/gofer/specify-commands/gofer_constitution.md +183 -23
- package/resources/gofer/specify-commands/gofer_diagnose.md +183 -23
- package/resources/gofer/specify-commands/gofer_eai_first_run.md +254 -25
- package/resources/gofer/specify-commands/gofer_hydrate.md +183 -23
- package/resources/gofer/specify-commands/gofer_personality.md +117 -6
- package/resources/gofer/specify-commands/gofer_plan.md +117 -6
- package/resources/gofer/specify-commands/gofer_side.md +117 -6
- package/resources/gofer/specify-commands/gofer_spec_summary.md +183 -23
- package/resources/gofer/specify-commands/gofer_tdd.md +183 -23
- package/resources/gofer/specify-commands/gofer_vocabulary.md +185 -25
- package/resources/gofer/specify-commands/gofer_zoom_out.md +183 -23
- package/resources/gofer/specify-config/object-type-routing.json +24 -0
- package/resources/gofer/specify-config/typesafe-learning-review.json +16 -0
- package/resources/gofer/specify-config/typesafe-semantic-review.json +9 -0
- package/resources/gofer/system-skills/eai/SKILL.md +365 -0
- package/resources/gofer/system-skills/eai-update/SKILL.md +56 -0
- package/resources/gofer/system-skills/gofer-documentation/SKILL.md +93 -0
- package/resources/gofer/templates/build-map-template.md +64 -0
- package/resources/gofer/templates/business-scenarios-template.json +14 -0
- package/resources/gofer/templates/ciso-security-summary-template.md +3 -3
- package/resources/gofer/templates/context-bundle-template.md +4 -3
- package/resources/gofer/templates/contract-pack-template.md +8 -8
- package/resources/gofer/templates/cto-architecture-summary-template.md +3 -3
- package/resources/gofer/templates/delivery-lineage-template.json +8 -0
- package/resources/gofer/templates/eai-preflight-template.md +109 -68
- package/resources/gofer/templates/goal-ledger-template.json +1 -1
- package/resources/gofer/templates/gofer-model-policy.yaml +28 -6
- package/resources/gofer/templates/loop-contract-template.json +3 -1
- package/resources/gofer/templates/plan-template.md +8 -7
- package/resources/gofer/templates/priority-plan-template.json +29 -0
- package/resources/gofer/templates/proposal-review-template.md +6 -3
- package/resources/gofer/templates/release-capability-ledger-template.md +24 -0
- package/resources/gofer/templates/research-template.md +7 -6
- package/resources/gofer/templates/spec-summary-template.md +1 -1
- package/resources/gofer/templates/spec-template.md +45 -6
- package/resources/gofer/templates/tasks-template.md +12 -3
- package/resources/gofer/templates/ui-preview-brief-template.md +55 -5
- package/resources/gofer/templates/ui-review-log-template.md +21 -3
- package/resources/gofer/templates/ui-show-and-tell-template.md +46 -0
- package/resources/gofer/templates/visuals/capability-heatmap-template.md +2 -2
- package/resources/gofer/templates/working-backwards-prfaq-template.md +9 -8
- package/resources/linked-sources.json +4 -4
- package/resources/gofer/agents-skills/0_gofer_start/SKILL.md +0 -1287
- package/resources/gofer/agents-skills/0a_problem_validation/SKILL.md +0 -429
- package/resources/gofer/agents-skills/10_gofer_cloud/SKILL.md +0 -635
- package/resources/gofer/agents-skills/1_gofer_research/SKILL.md +0 -1159
- package/resources/gofer/agents-skills/2_gofer_specify/SKILL.md +0 -860
- package/resources/gofer/agents-skills/3_gofer_plan/SKILL.md +0 -899
- package/resources/gofer/agents-skills/4_gofer_tasks/SKILL.md +0 -760
- package/resources/gofer/agents-skills/5_gofer_implement/SKILL.md +0 -944
- package/resources/gofer/agents-skills/6_gofer_validate/SKILL.md +0 -2302
- package/resources/gofer/agents-skills/7_gofer_save/SKILL.md +0 -423
- package/resources/gofer/agents-skills/7a_stakeholder_comms/SKILL.md +0 -508
- package/resources/gofer/agents-skills/8_gofer_branding/SKILL.md +0 -315
- package/resources/gofer/agents-skills/9_gofer_tests/SKILL.md +0 -558
- package/resources/gofer/agents-skills/gofer_bootstrap_workspace/SKILL.md +0 -148
- package/resources/gofer/agents-skills/gofer_check_workspace/SKILL.md +0 -119
- package/resources/gofer/agents-skills/gofer_constitution/SKILL.md +0 -612
- package/resources/gofer/agents-skills/gofer_diagnose/SKILL.md +0 -114
- package/resources/gofer/agents-skills/gofer_eai_first_run/SKILL.md +0 -397
- package/resources/gofer/agents-skills/gofer_hydrate/SKILL.md +0 -561
- package/resources/gofer/agents-skills/gofer_personality/SKILL.md +0 -44
- package/resources/gofer/agents-skills/gofer_plan/SKILL.md +0 -40
- package/resources/gofer/agents-skills/gofer_side/SKILL.md +0 -45
- package/resources/gofer/agents-skills/gofer_spec_summary/SKILL.md +0 -112
- package/resources/gofer/agents-skills/gofer_tdd/SKILL.md +0 -112
- package/resources/gofer/agents-skills/gofer_vocabulary/SKILL.md +0 -112
- package/resources/gofer/agents-skills/gofer_zoom_out/SKILL.md +0 -112
- package/resources/gofer/claude-commands/0_gofer_start.md +0 -1282
- package/resources/gofer/claude-commands/0a_problem_validation.md +0 -424
- package/resources/gofer/claude-commands/10_gofer_cloud.md +0 -630
- package/resources/gofer/claude-commands/1_gofer_research.md +0 -1154
- package/resources/gofer/claude-commands/2_gofer_specify.md +0 -855
- package/resources/gofer/claude-commands/3_gofer_plan.md +0 -894
- package/resources/gofer/claude-commands/4_gofer_tasks.md +0 -755
- package/resources/gofer/claude-commands/5_gofer_implement.md +0 -939
- package/resources/gofer/claude-commands/6_gofer_validate.md +0 -2297
- package/resources/gofer/claude-commands/7_gofer_save.md +0 -418
- package/resources/gofer/claude-commands/7a_stakeholder_comms.md +0 -503
- package/resources/gofer/claude-commands/8_gofer_branding.md +0 -310
- package/resources/gofer/claude-commands/9_gofer_tests.md +0 -553
- package/resources/gofer/claude-commands/gofer_bootstrap_workspace.md +0 -143
- package/resources/gofer/claude-commands/gofer_check_workspace.md +0 -114
- package/resources/gofer/claude-commands/gofer_constitution.md +0 -607
- package/resources/gofer/claude-commands/gofer_diagnose.md +0 -109
- package/resources/gofer/claude-commands/gofer_eai_first_run.md +0 -392
- package/resources/gofer/claude-commands/gofer_hydrate.md +0 -556
- package/resources/gofer/claude-commands/gofer_personality.md +0 -39
- package/resources/gofer/claude-commands/gofer_plan.md +0 -35
- package/resources/gofer/claude-commands/gofer_side.md +0 -40
- package/resources/gofer/claude-commands/gofer_spec_summary.md +0 -107
- package/resources/gofer/claude-commands/gofer_tdd.md +0 -107
- package/resources/gofer/claude-commands/gofer_vocabulary.md +0 -107
- package/resources/gofer/claude-commands/gofer_zoom_out.md +0 -107
- package/resources/gofer/claude-skills/eai-gofer/SKILL.md +0 -56
- package/resources/gofer/copilot-prompts/0_gofer_start.prompt.md +0 -1308
- package/resources/gofer/copilot-prompts/0a_problem_validation.prompt.md +0 -429
- package/resources/gofer/copilot-prompts/10_gofer_cloud.prompt.md +0 -644
- package/resources/gofer/copilot-prompts/1_gofer_research.prompt.md +0 -1177
- package/resources/gofer/copilot-prompts/2_gofer_specify.prompt.md +0 -878
- package/resources/gofer/copilot-prompts/3_gofer_plan.prompt.md +0 -917
- package/resources/gofer/copilot-prompts/4_gofer_tasks.prompt.md +0 -778
- package/resources/gofer/copilot-prompts/5_gofer_implement.prompt.md +0 -962
- package/resources/gofer/copilot-prompts/6_gofer_validate.prompt.md +0 -2310
- package/resources/gofer/copilot-prompts/7_gofer_save.prompt.md +0 -433
- package/resources/gofer/copilot-prompts/7a_stakeholder_comms.prompt.md +0 -516
- package/resources/gofer/copilot-prompts/8_gofer_branding.prompt.md +0 -323
- package/resources/gofer/copilot-prompts/9_gofer_tests.prompt.md +0 -566
- package/resources/gofer/copilot-prompts/gofer_bootstrap_workspace.prompt.md +0 -161
- package/resources/gofer/copilot-prompts/gofer_check_workspace.prompt.md +0 -132
- package/resources/gofer/copilot-prompts/gofer_constitution.prompt.md +0 -621
- package/resources/gofer/copilot-prompts/gofer_diagnose.prompt.md +0 -127
- package/resources/gofer/copilot-prompts/gofer_eai_first_run.prompt.md +0 -410
- package/resources/gofer/copilot-prompts/gofer_hydrate.prompt.md +0 -571
- package/resources/gofer/copilot-prompts/gofer_personality.prompt.md +0 -57
- package/resources/gofer/copilot-prompts/gofer_plan.prompt.md +0 -53
- package/resources/gofer/copilot-prompts/gofer_side.prompt.md +0 -58
- package/resources/gofer/copilot-prompts/gofer_spec_summary.prompt.md +0 -125
- package/resources/gofer/copilot-prompts/gofer_tdd.prompt.md +0 -125
- package/resources/gofer/copilot-prompts/gofer_vocabulary.prompt.md +0 -125
- package/resources/gofer/copilot-prompts/gofer_zoom_out.prompt.md +0 -125
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.md +0 -1282
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.md +0 -424
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.md +0 -630
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.md +0 -1154
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.md +0 -855
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.md +0 -894
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.md +0 -755
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.md +0 -939
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.md +0 -2297
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.md +0 -418
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.md +0 -503
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.md +0 -310
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.md +0 -553
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.md +0 -143
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.md +0 -114
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.md +0 -607
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.md +0 -109
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.md +0 -392
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.md +0 -556
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_personality.md +0 -39
- package/resources/gofer/gemini/commands/gofer/gofer_personality.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_plan.md +0 -35
- package/resources/gofer/gemini/commands/gofer/gofer_plan.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_side.md +0 -40
- package/resources/gofer/gemini/commands/gofer/gofer_side.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.md +0 -107
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.md +0 -107
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.md +0 -107
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.toml +0 -2
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.md +0 -107
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.toml +0 -2
- package/resources/gofer/github-skills/eai-gofer/SKILL.md +0 -56
- package/resources/gofer/system-skills/0_gofer_start/SKILL.md +0 -1287
- package/resources/gofer/system-skills/0a_problem_validation/SKILL.md +0 -429
- package/resources/gofer/system-skills/10_gofer_cloud/SKILL.md +0 -635
- package/resources/gofer/system-skills/1_gofer_research/SKILL.md +0 -1159
- package/resources/gofer/system-skills/2_gofer_specify/SKILL.md +0 -860
- package/resources/gofer/system-skills/3_gofer_plan/SKILL.md +0 -899
- package/resources/gofer/system-skills/4_gofer_tasks/SKILL.md +0 -760
- package/resources/gofer/system-skills/5_gofer_implement/SKILL.md +0 -944
- package/resources/gofer/system-skills/6_gofer_validate/SKILL.md +0 -2302
- package/resources/gofer/system-skills/7_gofer_save/SKILL.md +0 -423
- package/resources/gofer/system-skills/7a_stakeholder_comms/SKILL.md +0 -508
- package/resources/gofer/system-skills/8_gofer_branding/SKILL.md +0 -315
- package/resources/gofer/system-skills/9_gofer_tests/SKILL.md +0 -558
- package/resources/gofer/system-skills/gofer_bootstrap_workspace/SKILL.md +0 -148
- package/resources/gofer/system-skills/gofer_check_workspace/SKILL.md +0 -119
- package/resources/gofer/system-skills/gofer_constitution/SKILL.md +0 -612
- package/resources/gofer/system-skills/gofer_diagnose/SKILL.md +0 -114
- package/resources/gofer/system-skills/gofer_eai_first_run/SKILL.md +0 -397
- package/resources/gofer/system-skills/gofer_hydrate/SKILL.md +0 -561
- package/resources/gofer/system-skills/gofer_personality/SKILL.md +0 -44
- package/resources/gofer/system-skills/gofer_plan/SKILL.md +0 -40
- package/resources/gofer/system-skills/gofer_side/SKILL.md +0 -45
- package/resources/gofer/system-skills/gofer_spec_summary/SKILL.md +0 -112
- package/resources/gofer/system-skills/gofer_tdd/SKILL.md +0 -112
- package/resources/gofer/system-skills/gofer_vocabulary/SKILL.md +0 -112
- package/resources/gofer/system-skills/gofer_zoom_out/SKILL.md +0 -112
- package/resources/gofer/templates/ui-approval-template.md +0 -32
|
@@ -21,41 +21,185 @@ description: Execute tasks from tasks.md to implement the feature
|
|
|
21
21
|
|
|
22
22
|
# Gofer Implement
|
|
23
23
|
|
|
24
|
-
##
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
24
|
+
## Continuation And Stop Contract
|
|
25
|
+
<!-- gofer:continuation:start -->
|
|
26
|
+
|
|
27
|
+
1. Preserve the requested scope and mode, including read-only, plan-only, research-only and MVP work. Keep the full applicable pipeline, stage functions, artifacts, reviews and validation; do not expand an MVP into an unapproved release.
|
|
28
|
+
2. After a stage's required evidence is complete, read and follow the next internal file in .specify/commands/ in the same conversation. Do not require a numbered command or a host-specific skill dispatcher. Optional helpers remain optional; maintenance and control commands do not start delivery work.
|
|
29
|
+
3. Treat the stated business goal as authority for ordinary planning, task ordering, design, diagnosis, repair, testing, and reversible repository changes within scope. Record material Gofer decisions with their reason and effect. Do not ask the user to choose implementation details that Gofer can safely decide.
|
|
30
|
+
4. Ask only when the goal is unclear or changes, the action is irreversible or destructive, it changes security or access, it creates external cost or commitment, it changes production or public exposure, it requires missing authority or credentials, or it conflicts with an explicit user constraint. Record the exact reason before asking. missing or ambiguous approval is not approval when an approval boundary applies. Rejected, revoked, changed or unclear authority requires a pause.
|
|
31
|
+
5. Pause for material scope, security, cost, deployment, destructive or protected files/boundary changes and any outstanding user gate. A business goal does not authorize publishing, spending, external changes, or bypassing host permissions. Complete safe authorized work without bypassing the blocked gate.
|
|
32
|
+
6. A tool proposal is not execution. If host consent is required, wait for it. After the tool result or approved proposal returns, inspect the result and resume the next authorized action within approved scope; do not end with only a plan or a proposed tool call. A denied tool or unavailable capability must not be bypassed through another host or CLI.
|
|
33
|
+
7. Use the current agent's available native tools. Optional Gofer/MCP tools are conveniences, not prerequisites. If the current agent lacks a required capability, report that limitation and the safe next action; do not pretend a handoff button transfers control automatically.
|
|
34
|
+
8. Stop after research only when research-only work was requested, the user paused, or a real gate blocks progress. Otherwise continue to specification. At validation, report completion only when the requested scope's required evidence passes; failures remain unfinished work.
|
|
35
|
+
9. Respect budget, context and retry limits from the existing loop contract. Repair safe within-scope failures only within those limits. Preserve a checkpoint before an orderly context stop; resume by reading its recorded stage and rechecking scope, approvals and evidence. Never claim an abrupt host termination was handled.
|
|
36
|
+
10. Report concise Progress during work. At every controlled stop, report Progress, Stop reason and Next action, including the exact missing input or approval and unfinished work. Reasons are requested scope complete, user pause, approval required, material change, missing capability/access, validation blocked, or budget/context/retry limit. Stage completion alone is not pipeline completion.
|
|
37
|
+
|
|
38
|
+
**Blocker Mediation**
|
|
39
|
+
|
|
40
|
+
- Before repeating a failed action or asking for missing input, read .specify/references/blocker-mediation.md and inspect the private blocker register with gofer-blocker-control.mjs. Reuse the same state directory and goal, subject and condition keys across stages, restarts and surfaces. Different wording, models or tools do not create a new blocker.
|
|
41
|
+
- Classify the cause first. Missing user decisions, access, external dependencies and unavailable capabilities require a recorded wait. Reserve an ask event before asking; ask once, explain the business impact and required change, then stop affected work. An unanswered question is not new evidence. Do not poll or rephrase it to keep running.
|
|
42
|
+
- Technical ask events require a fresh verification file under .specify/references/priority-outcome-protection.md: actual diagnosis, self-cause check and why no authorized repair is available. Business choices need no failed command. For feature tasks, use gofer-priority-check.mjs and the saved direction before switching work; this does not start delivery during maintenance or conversation.
|
|
43
|
+
- For AI-solvable or unknown causes, reserve each attempt before execution. Allow one investigation and one different recovery within existing tighter budgets. Record its result even when interrupted or unsuccessful. An unfinished reservation must not launch again. Do not reset the register, change keys or switch surfaces to obtain more attempts.
|
|
44
|
+
- Resume only after a real user answer or changed external evidence has been recorded and checked. The helper allows one evidence-backed resumption; exhausted limits need human review. Never invent approval or evidence. Successful model output and a running server do not resolve a blocker without the relevant check.
|
|
45
|
+
- Save the blocker, unfinished tasks and next action before stopping. Continue only approved tasks that do not depend on it. Keep the original goal; update specs, plans, tasks and validation for accepted direction changes, and reopen stale checks. Do not quietly drop requirements to make progress.
|
|
46
|
+
- Use node .specify/scripts/node/gofer-blocker-control.mjs --state-dir <private-state-directory> --event <private-event.json> before controlled actions; inspect with --state-dir alone, or add --task T001 for an independent task. A denied action, invalid record or missing helper means stop and explain the limitation, not bypass it. Use the installed plugin script path if no repo scaffold exists. Conversation-only work uses a private session state directory and does not require app setup or feature files.
|
|
47
|
+
- Strict loop validation checks every recorded feature blocker. Shared instructions guide native chats; this helper cannot intercept calls that a host sends directly. Do not claim native enforcement from package tests alone.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## Verified Specialist Execution
|
|
51
|
+
|
|
52
|
+
Use .specify/references/verified-agent-execution.md before specialist delegation in any app or non-app stage. The shared agent-catalog.json retains specialist responsibilities. Resolve roles with gofer-agent-catalog.mjs; obtain tools and models from the current host, never from another provider's examples. Keep internal roles out of the public command picker.
|
|
53
|
+
|
|
54
|
+
Preserve every required review. Provider-specific Task/model examples describe intent, not portable commands or proof of support. Run independent work together only when dependencies, permission boundaries, scope and budgets allow it. Otherwise serialize supported work. A required independent review remains unverified if separate execution is unavailable; never relabel self-review as independent.
|
|
55
|
+
|
|
56
|
+
The experimental gofer-verified-execution.mjs controller accepts trusted adapters, not worker-supplied commands. It checks current priority, bounds calls and attempts, records required checks, and rejects stale results. Its local process tests do not qualify native model execution. Do not activate an unqualified host adapter or bypass existing blocker, permission, outcome or release gates. Preserve normal safe Gofer work and explain the limitation.
|
|
57
|
+
|
|
58
|
+
<!-- gofer:continuation:end -->
|
|
59
|
+
|
|
60
|
+
## MVP Capability-Based Validation
|
|
61
|
+
|
|
62
|
+
Use `.specify/references/mvp-capability-validation.md` as the source of
|
|
63
|
+
truth. Validate the work that the active feature specification requires now.
|
|
64
|
+
Do not apply later delivery requirements to an early MVP.
|
|
65
|
+
|
|
66
|
+
1. Create `.specify/specs/{feature}/` before app or operator-tool source work.
|
|
67
|
+
2. Keep `spec.md`, `plan.md`, `tasks.md`, `traceability.md`, and the validation scope aligned.
|
|
68
|
+
3. Mark each relevant capability as `not_applicable`, `planned`, `implemented`, `verified`, or `blocked`.
|
|
69
|
+
4. Require evidence only for an implemented capability or a capability required by the current delivery decision.
|
|
70
|
+
5. Treat `run.sh`, `run.bat`, and `run.ps1` as launch evidence only. They do not prove authentication, sessions, EAI access, or deployment readiness.
|
|
71
|
+
6. For a user-facing change, store the local HTTP check, screenshot, and review outcome in the feature validation report.
|
|
72
|
+
7. If browser validation is blocked, mark that user journey `unverified`. Do not call it complete.
|
|
73
|
+
8. If the user changes scope, update the feature artifacts before continuing. Explain what changed, what remains valid, and what now needs evidence.
|
|
74
|
+
9. Use truthful completion language. For example: `The server runs. Authentication is not in the current MVP scope.`
|
|
75
|
+
10. When the feature claims a release or deployed outcome, create `release-capability-ledger.md` from `.specify/templates/release-capability-ledger-template.md`.
|
|
76
|
+
11. Do not report a release complete or score 100% when a required capability is missing from traceability, remains on an open PR, is absent from the release branch, or lacks required deployed evidence.
|
|
77
|
+
|
|
78
|
+
## Application Classification And EAI Preflight
|
|
79
|
+
|
|
80
|
+
Before any EAI CLI, login, workspace, template, or app-enrollment action:
|
|
81
|
+
|
|
82
|
+
1. Classify the request as **EAI app delivery** or **non-application work** using the application signals in `.specify/commands/0_gofer_start.md`.
|
|
83
|
+
2. Create `.specify/specs/{feature}/` and record the active delivery scope before app or operator-tool source work.
|
|
84
|
+
3. If the request is clearly non-app work, confirm once: **"This looks like non-app work, so I will skip EAI workspace/app setup and continue the Gofer research/docs path. Is that right?"**
|
|
85
|
+
4. If the user confirms non-app, record the decision and mark app-only capabilities `not_applicable`. Do not run `eai whoami`, `eai workspace select`, `eai init`, or `/gofer:eai-first-run`.
|
|
86
|
+
5. For local MVP app work, validate the implemented user journey, repo runner, and preview evidence. Do not require EAI setup, authentication, or deployment when the active specification does not require them.
|
|
87
|
+
6. When the feature uses EAI Platform services, requires a workspace, or prepares deployment, run `eai whoami` and record the EAI readiness evidence in `eai-preflight.md`.
|
|
88
|
+
7. When the feature creates, changes, or validates an EAI Platform app integration, run `node .specify/scripts/node/eai-app-template-readiness.mjs --root . --json`. A missing checker or status other than `ready` blocks that EAI capability. It does not block unrelated local MVP work.
|
|
89
|
+
8. When authentication is implemented or required, validate provider, callback, sign-in, session, first protected API call, and safe denied access.
|
|
90
|
+
9. When deployment is requested or claimed, require the relevant EAI template, security, configuration, and deployment evidence before completion.
|
|
91
|
+
10. For durable app delivery, use EAI Platform first, Azure second, and every other stack only by explicit exception.
|
|
92
|
+
11. If the user changes scope, update `spec.md`, `plan.md`, `tasks.md`, `traceability.md`, and validation scope before continuing. Explain the business effect and evidence change.
|
|
93
|
+
12. Do not accept copied marker files, partial scaffolds, or custom templates as readiness evidence for an EAI capability.
|
|
94
|
+
13. Do not write tokens, secrets, private workspace IDs, Entra/CIAM authority tenant IDs, or local `.env` values into Gofer artifacts; record only product-safe readiness status and evidence.
|
|
95
|
+
|
|
96
|
+
**Authentication Access Decision**
|
|
97
|
+
|
|
98
|
+
When adding or changing authentication, read `.specify/references/platform/eai-auth-access.md`. Ask: **"Who should be able to use this app: only members of its EAI workspace (recommended), or any authenticated EAI user?"** Default to `workspace-only`. Wait for the answer before changing auth code. An unanswered question must not widen access. Preserve stricter existing rules. Record the answer in the feature spec; do not repeat a confirmed question unless its scope changes.
|
|
99
|
+
|
|
100
|
+
Confirm the sign-in method separately: EAI sign-in or client SSO through EAI. Verify platform support and CLI syntax; do not invent SSO commands. Enforce trusted server-side workspace membership and app permissions. A session, CIAM directory ID, or email domain alone is not workspace access. Platform-wide sign-in never grants access to another workspace's data. Test allowed and denied users, revoked membership, unavailable membership checks, and cross-workspace requests. These checks apply only when authentication is implemented or required, not to non-app work or an auth-free local MVP.
|
|
41
101
|
|
|
42
102
|
## Token And Cost Policy
|
|
43
103
|
<!-- gofer:token-cost-policy:start -->
|
|
44
104
|
|
|
45
105
|
Before spawning agents, calling tools, or loading large files:
|
|
46
106
|
|
|
47
|
-
1. Treat `.specify/memory/gofer-model-policy.yaml` as
|
|
48
|
-
2. Use the
|
|
49
|
-
- Claude: Haiku for scouting/extraction; Sonnet for normal implementation, synthesis, validation, and security; Opus for high-risk arbitration or release-critical failures.
|
|
50
|
-
- 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.
|
|
51
|
-
- Gemini: Flash-Lite for cheap large-context scan/summarize; Flash for default research synthesis; Pro for large-context architecture or high-risk arbitration.
|
|
52
|
-
- 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.
|
|
107
|
+
1. Treat `.specify/memory/gofer-model-policy.yaml` as advisory capability, cost, and quality constraints. A fresh signed host receipt and independently verified benchmark evidence select the model. If it is missing, run `/gofer:bootstrap-workspace` before continuing.
|
|
108
|
+
2. Use the lowest-cost model that the live router qualifies for this task. Its signed host receipt and independent benchmark evidence must govern the exact model identity. Do not select a model from static provider examples, names, or price alone.
|
|
53
109
|
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.
|
|
54
110
|
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.
|
|
55
111
|
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.
|
|
56
112
|
6. Escalate model tier only when a cheaper pass is low-confidence, contradictory, security-sensitive, or blocking release quality.
|
|
57
113
|
<!-- gofer:token-cost-policy:end -->
|
|
58
114
|
|
|
115
|
+
## Business-Friendly Progress Contract
|
|
116
|
+
<!-- gofer:business-progress:start -->
|
|
117
|
+
|
|
118
|
+
Default user-facing updates must be concise, business-level, and easy to scan.
|
|
119
|
+
Keep the technical work rigorous in artifacts, tests, logs, and code, but do
|
|
120
|
+
not lead with implementation jargon unless the user asks for it.
|
|
121
|
+
|
|
122
|
+
Use ASD-STE100 Simplified Technical English as the target writing standard for
|
|
123
|
+
all Gofer-authored chat, documents, commands, summaries, PR notes, error
|
|
124
|
+
guidance, and validation artifacts. ASD-STE100 is copyright and a trademark of
|
|
125
|
+
ASD; do not bundle the protected ASD dictionary and do not claim ASD
|
|
126
|
+
certification.
|
|
127
|
+
|
|
128
|
+
1. Explain progress as what is being connected, changed, checked, or fixed and
|
|
129
|
+
why it matters to the business outcome.
|
|
130
|
+
2. Use the running build map: create or update
|
|
131
|
+
`.specify/specs/{feature}/build-map.md` from
|
|
132
|
+
`.specify/templates/build-map-template.md` for application delivery, and
|
|
133
|
+
refer to its plain-language areas in progress updates.
|
|
134
|
+
3. When there is a problem, translate it into business impact, current status,
|
|
135
|
+
next action, and what input or approval is needed. Keep raw stack traces,
|
|
136
|
+
command logs, IDs, and acronyms out of chat unless asked.
|
|
137
|
+
4. If the user asks for technical depth, provide it on request and point to the
|
|
138
|
+
durable artifact that contains the evidence.
|
|
139
|
+
5. Prefer a compact update shape:
|
|
140
|
+
- `Working on`: the build-map area or stakeholder outcome
|
|
141
|
+
- `Why it matters`: user/business impact
|
|
142
|
+
- `Status`: done, checking, fixing, blocked, or needs decision
|
|
143
|
+
6. Use one action per instruction.
|
|
144
|
+
7. Keep instructions to 20 words or fewer where possible.
|
|
145
|
+
8. Use active voice unless the actor is unknown or not important.
|
|
146
|
+
9. Use simple verb forms: simple present, simple past, simple future,
|
|
147
|
+
infinitive, or imperative.
|
|
148
|
+
10. Define acronyms on first use and use approved project terms.
|
|
149
|
+
11. Avoid idioms, marketing adjectives, vague praise, and hedging.
|
|
150
|
+
12. Use vertical lists for complex information and one topic per paragraph.
|
|
151
|
+
13. For errors, state what happened, why it matters, what to do next, and the
|
|
152
|
+
exact safe command when one exists.
|
|
153
|
+
14. Do not remove technical validation, security checks, EAI preflights, tests,
|
|
154
|
+
or loop evidence. This contract changes presentation, not engineering
|
|
155
|
+
standards.
|
|
156
|
+
15. Before each user-facing reply, check that it leads with the business effect,
|
|
157
|
+
uses concise simple language, and includes only useful technical detail.
|
|
158
|
+
16. If any check fails, rewrite the reply before sending it.
|
|
159
|
+
**Business Updates And Goal Checks**
|
|
160
|
+
|
|
161
|
+
For every material code or contract change, keep `spec.md`, `plan.md`, `tasks.md`, `test-spec.md`, `change-manifest.json`, `blast-radius-report.md`, and `traceability.md` current before more implementation work. Keep executable feature tests in the owning repository. Add an `eai-testing-dev` contract only for a deployed canary, route/config contract, authentication smoke, workspace smoke, or release-evidence surface.
|
|
162
|
+
|
|
163
|
+
Use `.specify/references/business-updates-and-goal-checks.md`. Before each reply, explain the result, business effect, and next action in plain language. For progress, use two or three short sentences. Run `node .specify/scripts/node/gofer-response-check.mjs --input <private-draft-file>` before sending a drafted progress update; rewrite failed drafts. Use `--kind answer` for answers and `--technical` only when technical detail was requested. Do not repeat unchanged progress. This helper cannot intercept messages that the host sends directly.
|
|
164
|
+
|
|
165
|
+
Before each work batch, read the current goal, specification, tasks, and latest findings. Make ordinary design, sequencing, diagnosis, repair, and verification decisions that advance the goal. Record material decisions and update affected feature documents when new evidence changes the path. Never weaken acceptance criteria to match failing code. Do not invent approval where approval is required. Mark a task complete only after its linked checks pass; reopen affected tasks when evidence is stale. For app and non-app features with a spec and tasks, enable `requireDeliveryCheckpoint` in `loop-contract.json` and run `node .specify/scripts/node/gofer-delivery-check.mjs --feature-dir <feature-dir>` before advancing or claiming completion. Follow the reference to capture a reviewed checkpoint, not merely to clear a failure. Keep existing MVP exemptions, reviews, loops, and release gates. Conversation-only requests need no feature files.
|
|
166
|
+
|
|
167
|
+
For status, blocker, low-confidence, and decision replies, use the Recommendation, Why, Next step, Owner, and User action labels in .specify/references/blocker-mediation.md, then add the --business-update option to the response checker. State only evidence-backed causes; probabilities show the closest alternative, not why Jev chose its answer.
|
|
168
|
+
|
|
169
|
+
**Priority And Outcome Protection**
|
|
170
|
+
|
|
171
|
+
Jev must judge goal alignment, specification currency, executable test coverage, and blast-radius completeness at every configured checkpoint. Missing evidence, a conflict, partial alignment, low confidence, or an unavailable verdict blocks the affected task. Update the records and rerun the checkpoint. Never ignore the result, edit the receipt, or complete work with an unresolved verdict.
|
|
172
|
+
|
|
173
|
+
Follow `.specify/references/priority-outcome-protection.md`. Treat the stated goal as authority for ordinary delivery decisions. Record material user direction and Gofer decisions in decisions.md. Maintain priority-plan.json with ordered tasks, dependencies, allowedEditScope and the current outcome. Enable requirePriorityPlan for new feature contracts. Run `node .specify/scripts/node/gofer-priority-check.mjs --feature-dir <feature-dir> --task T001` before the action, and include --workspace <repo-root> plus --changed-file for each proposed or actual changed repo-relative path. Follow its nextTask; recorded independent work may run in parallel. Do not switch to unrelated work when blocked. Ask only when a decision changes the goal, needs missing authority or access, causes irreversible loss, creates external cost or commitment, changes production or public exposure, or conflicts with an explicit user constraint. On resume, state the agreed outcome and next task in plain language after reading the last recorded direction. Keep routine conversation free of feature paperwork.
|
|
174
|
+
|
|
175
|
+
**Pre-Edit Chat Readiness**
|
|
176
|
+
|
|
177
|
+
Before each source or test edit batch for a feature, run `node .specify/scripts/node/gofer-pre-edit-check.mjs --workspace <repo-root> --feature-dir <feature-dir> --task Tnnn --changed-file <repo-relative-path>`, repeating `--changed-file` for every intended path. This confirms that the goal ledger, specification, plan, and tasks are usable, and that the selected task and edit scope are current. Start no edit until it returns `ready`. If it blocks, create or update the missing feature records, resolve the finding, then rerun the gate. Reuse existing feature records; conversation-only work needs no feature files.
|
|
178
|
+
|
|
179
|
+
Offer an optional Jev chat-readiness review when context could affect whether the work is set up for success. Run it only when the user explicitly selects it, for example: “Check whether this chat is set up for success with Jev.” Summarize only relevant chat context in a short feature-local `chat-readiness-context.md`; do not send the transcript, secrets, or unrelated personal information. Then add `--jev-chat-readiness --chat-context-file chat-readiness-context.md` to the pre-edit check. Jev assesses the selected goal, specification, plan, tasks, decisions, context, and proposed scope. No Jev request occurs by default. A blocked, low-confidence, unavailable, or non-ready result blocks the selected task until reconciled. Jev cannot approve scope changes or replace deterministic checks.
|
|
180
|
+
|
|
181
|
+
Before technical escalation, attach fresh diagnosis through the blocker helper's ask event verification field. Check the exact command, route, environment, own mistake and existing authority. Do not invent a workspace, ask for login without checking it, require an unsafe alternative, or equate administrator access with permission. Business decisions need no failing command. At completion, run the priority checker with --finish; a missing or stale outcome receipt means unverified, regardless of test scores. Use --completion for the final gofer-closed-loop-audit.mjs run; a routine drift audit alone does not prove completion. When TypeSafe semantic review is enabled for the feature, run `node .specify/scripts/node/gofer-semantic-drift.mjs --workspace <repo-root> --feature-dir <feature-dir> --event <resume|before_task_batch|after_material_finding|before_validation>` at resume, before a material task batch, after a material finding, and before validation. A TypeSafe conflict or uncertain result requires Gofer reconciliation; it cannot edit artefacts, bypass scope controls, or complete work. Preserve detailed test results, early local MVP scope, non-app work, independent approved tasks and all release/security checks.
|
|
182
|
+
|
|
183
|
+
<!-- gofer:business-progress:end -->
|
|
184
|
+
|
|
185
|
+
## App Preview Runner Contract
|
|
186
|
+
<!-- gofer:app-preview-runner:start -->
|
|
187
|
+
|
|
188
|
+
For EAI app delivery, every UI preview must use the repo runner when it exists.
|
|
189
|
+
|
|
190
|
+
1. Use `./run.sh dev 3001` on macOS, Linux, and GitHub Codespaces.
|
|
191
|
+
2. Use `run.bat dev 3001` on Windows.
|
|
192
|
+
3. Use a different port only when the feature notes record the reason.
|
|
193
|
+
4. Restart only this app. Before stopping a process, verify its exact checkout, process ID, start time and command, then recheck immediately before stopping it. Never stop another app, an unknown process, or every process on a port. If ownership is uncertain, leave it running and ask the user. Inspect older runners before use; do not run one that kills by port alone.
|
|
194
|
+
5. Do not use direct `npm run dev`, `next dev`, or package-manager preview commands when `run.sh`, `run.bat`, or `run.ps1` exists.
|
|
195
|
+
6. After every UI-facing change, run:
|
|
196
|
+
- `node .specify/scripts/node/gofer-ui-preview.mjs --feature-dir {FEATURE_DIR} --command "./run.sh dev 3001" --open auto --screenshot --change "<change summary>"`
|
|
197
|
+
7. On Windows, use:
|
|
198
|
+
- `node .specify/scripts/node/gofer-ui-preview.mjs --feature-dir {FEATURE_DIR} --command "run.bat dev 3001" --open auto --screenshot --change "<change summary>"`
|
|
199
|
+
8. If the runner is missing in an EAI app template repo, refresh the template before preview work continues.
|
|
200
|
+
9. Check the exact preview page and the current implemented user journey after each change. A running process, open browser, screenshot alone, error page or dry run is not proof that it works. Say ready to view only after those checks pass. Otherwise explain what is unchecked or failing; do not claim readiness. Record fresh browser and test evidence. Local MVP checks cover only implemented behaviour; do not add future auth or deployment gates. Keep showing clearly labelled drafts without adding approval stops.
|
|
201
|
+
<!-- gofer:app-preview-runner:end -->
|
|
202
|
+
|
|
59
203
|
## User Input
|
|
60
204
|
|
|
61
205
|
```text
|
|
@@ -64,6 +208,13 @@ $ARGUMENTS
|
|
|
64
208
|
|
|
65
209
|
You **MUST** consider the user input before proceeding (if not empty).
|
|
66
210
|
|
|
211
|
+
## Delivery Lineage Contract
|
|
212
|
+
|
|
213
|
+
During implementation, read `.specify/references/delivery-lineage.md` and keep
|
|
214
|
+
`.specify/specs/{feature}/delivery-lineage.json` aligned with the actual
|
|
215
|
+
customer code, documentation, and test files changed. Do not add internal EAI
|
|
216
|
+
service or repository details discovered through logs or tool output.
|
|
217
|
+
|
|
67
218
|
## Execution Profile During Implementation
|
|
68
219
|
|
|
69
220
|
Before editing, re-check the planned depth and generic risk labels from
|
|
@@ -94,7 +245,10 @@ This command expects in `.specify/specs/{feature}/`:
|
|
|
94
245
|
- `tasks.md` - Task breakdown (from /4_gofer_tasks)
|
|
95
246
|
- `loop-contract.json` - Bounded eval commands and stop rules (from /1 through /4)
|
|
96
247
|
|
|
97
|
-
If missing,
|
|
248
|
+
If an artifact is missing, read its prerequisite contract and complete the
|
|
249
|
+
authorized prerequisite work internally. If scope, approval or access blocks
|
|
250
|
+
that work, report Progress, Stop reason and Next action rather than asking
|
|
251
|
+
the user to run a numbered command.
|
|
98
252
|
|
|
99
253
|
---
|
|
100
254
|
|
|
@@ -418,9 +572,9 @@ npm run typecheck # or tsc --noEmit
|
|
|
418
572
|
|
|
419
573
|
**Feedback Loop Rules**:
|
|
420
574
|
|
|
421
|
-
-
|
|
422
|
-
-
|
|
423
|
-
-
|
|
575
|
+
- Fix failures caused by the current task within its approved edit scope before proceeding.
|
|
576
|
+
- Record unrelated test, lint or type failures separately. Do not turn them into an unlimited repair project.
|
|
577
|
+
- Required release and security checks still block release. Never skip or weaken them to pass.
|
|
424
578
|
- **DO NOT** mark a task complete until the feedback loop passes
|
|
425
579
|
- **DO NOT** accumulate failures across tasks
|
|
426
580
|
|
|
@@ -519,21 +673,18 @@ Task: subagent_type="multi-perspective-judge", model="opus"
|
|
|
519
673
|
|
|
520
674
|
### If Task Fails
|
|
521
675
|
|
|
522
|
-
1.
|
|
523
|
-
2.
|
|
524
|
-
3.
|
|
525
|
-
4.
|
|
526
|
-
5. Ask user how to proceed:
|
|
527
|
-
- Retry the task
|
|
528
|
-
- Skip and continue
|
|
529
|
-
- Stop implementation
|
|
676
|
+
1. Record the failure and its effect on the agreed outcome.
|
|
677
|
+
2. Use the priority checker to retain the next required task and its dependencies.
|
|
678
|
+
3. Continue only explicitly approved independent work; never silently skip a required task.
|
|
679
|
+
4. Use the bounded blocker controller. Do not repeat a question or reset its retry budget.
|
|
530
680
|
|
|
531
681
|
### If Blocked
|
|
532
682
|
|
|
533
|
-
1.
|
|
534
|
-
2. Check
|
|
535
|
-
3.
|
|
536
|
-
4.
|
|
683
|
+
1. Inspect the actual error and verify the command, route, environment and existing access.
|
|
684
|
+
2. Check whether the agent caused the failure and whether an authorized repair is within the task scope.
|
|
685
|
+
3. Use one safe investigation and bounded recovery, not repeated blind attempts. Read-only logs may establish the cause without replaying a mutation.
|
|
686
|
+
4. Before a technical escalation, attach current diagnosis to the blocker helper ask event. State what the user must change and why.
|
|
687
|
+
5. Record the blocker in tasks.md. Keep the agreed priority; propose a scope change if a prerequisite needs broader edits.
|
|
537
688
|
|
|
538
689
|
### If Something Goes Wrong (Rollback)
|
|
539
690
|
|
|
@@ -543,10 +694,7 @@ Task: subagent_type="multi-perspective-judge", model="opus"
|
|
|
543
694
|
git status
|
|
544
695
|
git diff
|
|
545
696
|
```
|
|
546
|
-
3.
|
|
547
|
-
- Single file: `git checkout HEAD -- <file>`
|
|
548
|
-
- All uncommitted: `git reset --hard HEAD`
|
|
549
|
-
- To last checkpoint: `git reset --hard <checkpoint-commit>`
|
|
697
|
+
3. Preserve unrelated work. Identify the exact changes made by this task and propose a narrow, reversible repair. Never reset the checkout, discard user changes, or run a destructive rollback without explicit approval.
|
|
550
698
|
4. **Document** what went wrong in tasks.md
|
|
551
699
|
5. **Retry** with modified approach
|
|
552
700
|
|
|
@@ -579,8 +727,15 @@ implementation issues early.
|
|
|
579
727
|
|
|
580
728
|
### Review Cycle (repeat up to 5 times)
|
|
581
729
|
|
|
582
|
-
|
|
583
|
-
|
|
730
|
+
Complete all three reviews through separate qualified executions. Follow
|
|
731
|
+
`.specify/references/verified-agent-execution.md`. Use the current host's tools
|
|
732
|
+
and available models, with bounded concurrency or sequential independent
|
|
733
|
+
reviews. Do not replace a required independent review with inline self-review.
|
|
734
|
+
|
|
735
|
+
Run `gofer-host-capability.mjs` before dispatch. Create each assignment through
|
|
736
|
+
`gofer-agent-catalog.mjs` with its exact revision, scope, checks, host model,
|
|
737
|
+
and evidence target. A role prompt, model picker label, or answer does not prove
|
|
738
|
+
separate execution or read-only review access.
|
|
584
739
|
|
|
585
740
|
**Agent 1**: engineer-review (sonnet) — cross-check spec↔plan↔implementation
|
|
586
741
|
alignment
|
|
@@ -645,7 +800,12 @@ update the stakeholder-facing implementation record:
|
|
|
645
800
|
- CTO review ask for implementation deltas against the architecture summary.
|
|
646
801
|
- Delivery review ask for completed scope, outstanding risks, and rollback
|
|
647
802
|
evidence.
|
|
648
|
-
6.
|
|
803
|
+
6. For application delivery, update `{FEATURE_DIR}/build-map.md` after each
|
|
804
|
+
meaningful UI, EAI Platform, data/workflow, login/security, integration, or
|
|
805
|
+
preview/release change. The latest update must explain the change in
|
|
806
|
+
business terms, name the affected map area, and record any issue or fix that
|
|
807
|
+
would matter to a non-technical stakeholder.
|
|
808
|
+
7. Do not mark implementation complete unless the existing feedback loops,
|
|
649
809
|
`loop-ledger.jsonl`, and strict loop audit requirements remain satisfied.
|
|
650
810
|
|
|
651
811
|
After the stakeholder PR/FAQ artifacts are updated:
|
|
@@ -659,6 +819,7 @@ After the stakeholder PR/FAQ artifacts are updated:
|
|
|
659
819
|
Loop evidence: {FEATURE_DIR}/loop-ledger.jsonl
|
|
660
820
|
Working Backwards PR/FAQ: {FEATURE_DIR}/working-backwards-prfaq.md
|
|
661
821
|
PR/FAQ implementation snapshot: {FEATURE_DIR}/prfaq-history/05-implement.md
|
|
822
|
+
Build map: {FEATURE_DIR}/build-map.md
|
|
662
823
|
Stakeholder review index: {FEATURE_DIR}/stakeholder-review-index.md
|
|
663
824
|
|
|
664
825
|
Phases completed:
|
|
@@ -679,10 +840,11 @@ After the stakeholder PR/FAQ artifacts are updated:
|
|
|
679
840
|
════════════════════════════════════════════════════════════════
|
|
680
841
|
```
|
|
681
842
|
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
843
|
+
After required implementation evidence and approval checks pass, read and
|
|
844
|
+
follow `.specify/commands/6_gofer_validate.md` in the same conversation under
|
|
845
|
+
the Continuation And Stop Contract. A proposed tool call is not execution;
|
|
846
|
+
inspect the returned result and continue authorized validation. Preserve all
|
|
847
|
+
material/user gates and do not ask for a numbered command.
|
|
686
848
|
|
|
687
849
|
---
|
|
688
850
|
|
|
@@ -727,9 +889,14 @@ preflight is migration-only and runs only when `workflowProfile` is explicitly
|
|
|
727
889
|
|
|
728
890
|
Before any deployment task emitted by `/4_gofer_tasks` completes, this stage
|
|
729
891
|
MUST execute deployment preflight checks for the runtime contract and deploy
|
|
730
|
-
doctor gate.
|
|
731
|
-
|
|
732
|
-
|
|
892
|
+
doctor gate. The task's checkbox line determines the validation mode:
|
|
893
|
+
|
|
894
|
+
- `[hosting:eai-managed]` uses the strict operation-bound receipt gate below.
|
|
895
|
+
- Customer Azure and local-only task text retain the prior required-file
|
|
896
|
+
presence gate and are not required to carry an EAI-managed operation binding.
|
|
897
|
+
|
|
898
|
+
An EAI-managed task is not marked complete until all of the following files
|
|
899
|
+
are present at the workspace root and pass their readiness checks:
|
|
733
900
|
|
|
734
901
|
| Required File | Purpose |
|
|
735
902
|
| ------------------------- | -------------------------------------------------------------- |
|
|
@@ -740,18 +907,69 @@ Required commands:
|
|
|
740
907
|
|
|
741
908
|
```bash
|
|
742
909
|
eai runtime validate
|
|
743
|
-
|
|
744
|
-
eai deploy doctor --url <deployed-url> --format json > .eai/deploy-doctor.json
|
|
910
|
+
eai deploy doctor --operation-id <operation-id> --app-key <app-key> --tenant-id <app-scope-tenant> --target-tenant-id <runtime-tenant> --evidence-out .eai/deploy-doctor.json --format json
|
|
745
911
|
```
|
|
746
912
|
|
|
913
|
+
The CLI derives the active URL from the exact operation, verifies its
|
|
914
|
+
deployment, runtime, source, and configuration bindings, runs authenticated
|
|
915
|
+
readiness, and atomically writes the receipt.
|
|
916
|
+
|
|
917
|
+
Keep the selected initial EAI-managed deployment command and this doctor phase
|
|
918
|
+
inside one `[hosting:eai-managed]` task. Run the initial command while the task
|
|
919
|
+
remains in progress, and retain its resolved app key, `--target eai`,
|
|
920
|
+
`--tenant-id`, `--target-tenant-id`, selected `--source eai-managed` or
|
|
921
|
+
`--source customer-owned`, and `--format json` on the task's checkbox line. Do not
|
|
922
|
+
create a later dependent post-deploy checkbox: the initial marked task itself cannot
|
|
923
|
+
complete until this gate has the receipt.
|
|
924
|
+
|
|
925
|
+
After the exact operation exists and before requesting task completion, update
|
|
926
|
+
the EAI-managed deployment task's checkbox line in `tasks.md` so it retains
|
|
927
|
+
`[hosting:eai-managed]` and its inline doctor command contains the resolved
|
|
928
|
+
operation ID, app key, app-scope tenant, and runtime tenant. The gate independently
|
|
929
|
+
parses the selected initial command's app key, app-scope tenant, runtime tenant,
|
|
930
|
+
source mode, target, and output mode. It requires `--target eai` and `--format
|
|
931
|
+
json`, and the initial and doctor app and tenant values must match before the gate
|
|
932
|
+
parses `eai.managed-deploy-doctor-evidence.v1`. It then requires passing
|
|
933
|
+
receipt and doctor status plus authenticated readiness, rejects recorded failures,
|
|
934
|
+
and compares the receipt's source mode and four operation fields with the task. A
|
|
935
|
+
stale, malformed, failing, cross-command, or unrelated receipt cannot clear the
|
|
936
|
+
gate.
|
|
937
|
+
|
|
938
|
+
For customer-owned source, retain the resolved `--repo`, `--installation-id`,
|
|
939
|
+
and any selected `--branch` and `--workflow` in the initial task command. The gate
|
|
940
|
+
also matches the receipt's exact repository, positive installation ID, branch,
|
|
941
|
+
and workflow. Omitted branch and workflow use the CLI defaults `main` and
|
|
942
|
+
`.github/workflows/eai-app.yml`. GitHub repository names are case-insensitive;
|
|
943
|
+
installation IDs must be positive safe integers. The CLI receipt's
|
|
944
|
+
`source-unknown` maps only to customer-owned source, and `eai-cli-generated`
|
|
945
|
+
maps only to EAI-maintained source. Unknown or crossed modes block completion.
|
|
946
|
+
`requiresTenantInfra: true` identifies a TenantInfra-backed deployment; it is
|
|
947
|
+
not a pending-work flag. Completion still requires active deployment, matching
|
|
948
|
+
pointer versions, runtime identity, and passing authenticated doctor evidence.
|
|
949
|
+
|
|
747
950
|
`/health` alone is not enough. Auth.js, runtime config, workspace/workflow config,
|
|
748
|
-
PublicAPI
|
|
749
|
-
|
|
951
|
+
user-delegated PublicAPI BFF reachability, and declared smoke tests must pass
|
|
952
|
+
before deployment is complete. Workspace apps must not add app-only
|
|
953
|
+
`client_credentials` access for ordinary ResourceAPI reads, writes, files, or
|
|
954
|
+
search.
|
|
750
955
|
|
|
751
956
|
### Gate behaviour
|
|
752
957
|
|
|
753
958
|
- If any required file is missing, the stage emits `EVT-012` via the
|
|
754
959
|
deployment-readiness event bus and blocks task completion.
|
|
960
|
+
- If an `[hosting:eai-managed]` task line lacks the resolved doctor command,
|
|
961
|
+
regenerate or update that task after the operation exists, rerun the exact
|
|
962
|
+
command, and retry.
|
|
963
|
+
- If the receipt schema, status, authenticated readiness, source/configuration,
|
|
964
|
+
deployment/runtime, timestamp, or task binding is invalid, the stage records
|
|
965
|
+
non-secret evidence reasons in the optional `EVT-012` `evidenceIssues` field
|
|
966
|
+
and blocks task completion. Existing v1 event payloads without that additive
|
|
967
|
+
field remain valid.
|
|
968
|
+
- Recovery instructions must follow the reported condition: restore and
|
|
969
|
+
validate a missing runtime contract; generate a missing receipt after the
|
|
970
|
+
operation exists; regenerate only a missing/invalid managed task binding;
|
|
971
|
+
rerun doctor for invalid or mismatched evidence; and fix failed readiness
|
|
972
|
+
checks before rerunning doctor.
|
|
755
973
|
- Paths are resolved relative to the workspace root. Any attempt to resolve a
|
|
756
974
|
required file outside the workspace (for example `/etc/passwd`) throws
|
|
757
975
|
`IMPL_DEPLOYMENT_PATH_INVALID`.
|
|
@@ -765,37 +983,39 @@ separation from `tasks.md`:
|
|
|
765
983
|
|
|
766
984
|
- Run the spec-derived tests before implementation and record the expected
|
|
767
985
|
failure when the implementation is missing or incomplete.
|
|
768
|
-
- Implement only against the
|
|
986
|
+
- Implement only against the reviewed `contract-pack.md`, `context-bundle.md`,
|
|
769
987
|
`reuse-scan.md`, `journeys/base-journey.md`, `plan.md`, and `goal-ledger.json`.
|
|
770
|
-
- For application delivery,
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
988
|
+
- For application delivery, run the preview loop as soon as there is a visible
|
|
989
|
+
UI and after every UI-facing change. App-delivery runs MUST NOT report UI
|
|
990
|
+
work complete without `ui-review-log.md` and `ui-show-and-tell.md` evidence
|
|
991
|
+
showing what opened, what screenshot/browser evidence exists, and what user
|
|
992
|
+
feedback or unresolved UX questions remain.
|
|
774
993
|
- For application delivery, use the EAI App Template already installed in the
|
|
775
994
|
workspace as the default UI lego-block source. Any create-new UI concept must
|
|
776
|
-
be justified in the
|
|
995
|
+
be justified in the plan and show-and-tell artifacts.
|
|
777
996
|
- For application delivery, implement on EAI Platform first, including the EAI
|
|
778
997
|
app template, and Azure second: use the EAI scaffold, PublicAPI/object
|
|
779
998
|
types/workflows/block catalog, ResourceAPI/`eai resources schema`, workspace/app
|
|
780
999
|
enrollment, provisioning, diagnostics, and Azure-compatible
|
|
781
1000
|
deployment/supporting services before any non-EAI exception. Do not introduce a
|
|
782
1001
|
non-EAI primary runtime, database, hosting platform, or app stack unless
|
|
783
|
-
`plan.md`, `service-fit-matrix.md`, and
|
|
1002
|
+
`plan.md`, `service-fit-matrix.md`, and decision artifacts record it as an
|
|
784
1003
|
explicit exception.
|
|
785
1004
|
- Before implementing UI, run or inspect `eai --describe`, `eai blocks list`,
|
|
786
1005
|
`eai blocks describe <id>` for every selected block, and
|
|
787
1006
|
`eai resources schema --format json`. Implementation notes must cite the block IDs,
|
|
788
1007
|
required resources, bindings, package lane, coupling status, Storybook story
|
|
789
|
-
IDs, theme override points, and any
|
|
1008
|
+
IDs, theme override points, and any explicit custom-block exception.
|
|
790
1009
|
- Reject unknown component names during implementation unless `tasks.md` and
|
|
791
|
-
`ui-
|
|
1010
|
+
`ui-show-and-tell.md` explicitly record a custom extension block, manifest,
|
|
1011
|
+
and user-visible rationale.
|
|
792
1012
|
- Treat package-profile, block-porting, source-platform decoupling, and public-readiness
|
|
793
1013
|
tasks as first-class implementation tasks, not polish. Update
|
|
794
1014
|
`{FEATURE_DIR}/goal-ledger.json` whenever a task changes an owner, target
|
|
795
1015
|
metric, delivery state, promotion criterion, or re-loop trigger. External and
|
|
796
1016
|
hybrid profile work is incomplete until package exports, Storybook stories,
|
|
797
1017
|
theme overrides, consumer smoke checks, and unsupported custom-block
|
|
798
|
-
exceptions are resolved or explicitly deferred by
|
|
1018
|
+
exceptions are resolved or explicitly deferred by decision artifacts.
|
|
799
1019
|
- Do not let public or hybrid package lanes import source-platform internals directly.
|
|
800
1020
|
Use `eai resources schema`, an adapter boundary, or an approved
|
|
801
1021
|
restricted-source exception; record the coupling status in implementation
|
|
@@ -812,27 +1032,43 @@ separation from `tasks.md`:
|
|
|
812
1032
|
read-only diagnostics before mutating fixes, ask for approval before workspace
|
|
813
1033
|
membership or admin changes, and stop at the guidance retry/escalation
|
|
814
1034
|
condition instead of repeatedly rerunning the same command.
|
|
1035
|
+
- If Object Type seed reports `app_manifest_validation_failed`, update the CLI,
|
|
1036
|
+
run `eai types validate`, and run one dry run. Retry once through the named
|
|
1037
|
+
CLI command. Do not hand-build a PublicAPI manifest or change source names and
|
|
1038
|
+
slugs to match an HTTP request model.
|
|
1039
|
+
- Before the first mutating Object Type seed, require
|
|
1040
|
+
`app-manifest-name-slug-negotiation-v1` in the JSON agent-guide capabilities.
|
|
1041
|
+
Require the dry-run JSON to report `dryRun: true`,
|
|
1042
|
+
`publishingMode: app-manifest`, the `explicit-name-and-slug` preferred shape,
|
|
1043
|
+
and the exact declared pairs. The dry run is source and preferred-shape
|
|
1044
|
+
evidence; it does not prove deployed support. Require the actual mutating
|
|
1045
|
+
result to record the shape used. If proof is missing, block the mutating seed,
|
|
1046
|
+
update the CLI, and repeat the read-only checks.
|
|
1047
|
+
- Trace every Object Type from its PascalCase source `name` to its exact declared
|
|
1048
|
+
kebab-case `slug`. Relationships, Curate resource routes, query fields,
|
|
1049
|
+
`useResources`, and `client.resources` must use that slug. Stop implementation
|
|
1050
|
+
if generated code sends a PascalCase transport value or derives another slug.
|
|
815
1051
|
- 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.
|
|
816
1052
|
- Track workflow readiness alongside those gates; do not collapse it into
|
|
817
1053
|
provisioning, schema/storage health, or preview status.
|
|
818
|
-
- Use `eai app provision <key> --tenant-id <
|
|
1054
|
+
- Use `eai app provision <key> --tenant-id <tenant-id> --select --format json`,
|
|
819
1055
|
`eai provision entra --force --redirect-uri <confirmed-callback-uri>`,
|
|
820
|
-
`eai types seed --tenant-key <key> --tenant-id <
|
|
821
|
-
`eai resources schema --tenant-id <
|
|
822
|
-
`eai resources storage doctor --tenant-id <
|
|
823
|
-
`eai verify storage --tenant-id <
|
|
1056
|
+
`eai types seed --tenant-key <key> --tenant-id <tenant-id> --format json`,
|
|
1057
|
+
`eai resources schema --tenant-id <tenant-id> --format json`,
|
|
1058
|
+
`eai resources storage doctor --tenant-id <tenant-id> --format json`, and
|
|
1059
|
+
`eai verify storage --tenant-id <tenant-id>` in the recovery order recorded
|
|
824
1060
|
by the preflight artifact instead of improvising a new sequence. Use EAI
|
|
825
1061
|
`--debug` flags only with explicit user approval, and never write private
|
|
826
|
-
hostnames, workspace IDs,
|
|
1062
|
+
hostnames, workspace IDs, client IDs, tokens, or raw debug output to committed
|
|
827
1063
|
artifacts.
|
|
828
1064
|
- For v4 passive ResourceAPI search, treat `capabilities.search.fulltext`,
|
|
829
1065
|
`capabilities.search.hybrid`, and `capabilities.search.vector` from
|
|
830
|
-
`eai resources storage doctor --tenant-id <
|
|
1066
|
+
`eai resources storage doctor --tenant-id <tenant-id> --format json` as
|
|
831
1067
|
separate readiness states. If hybrid/vector are unavailable but fulltext is
|
|
832
|
-
ready, use `eai resources search "<query>" --fulltext --tenant-id <
|
|
1068
|
+
ready, use `eai resources search "<query>" --fulltext --tenant-id <tenant-id>`
|
|
833
1069
|
and record semantic search as a deferred platform capability only when the
|
|
834
|
-
business scenario genuinely requires it.
|
|
835
|
-
|
|
1070
|
+
business scenario genuinely requires it. Apply this fallback only to the
|
|
1071
|
+
published passive ResourceAPI search contract.
|
|
836
1072
|
- If a browser or runtime auth log reports `AADSTS50011`, `redirect_uri`,
|
|
837
1073
|
"reply URL specified in the request does not match", or
|
|
838
1074
|
`/api/auth/callback/microsoft-entra-id`, match
|
|
@@ -850,6 +1086,20 @@ separation from `tasks.md`:
|
|
|
850
1086
|
affected app user to sign out and sign back in because Auth.js session or JWT
|
|
851
1087
|
role data may be cached. Do not edit databases or cloud portals directly
|
|
852
1088
|
unless EAI guidance reports an operator-only block.
|
|
1089
|
+
- If platform user lookup or membership prerequisite calls fail with
|
|
1090
|
+
`MISSING_TENANT`, `app_token_tenant_context_required`, or "Tenant context
|
|
1091
|
+
required for app tokens", treat it as a workspace-scoped route/context issue
|
|
1092
|
+
before treating it as a workspace-member data issue. Run `eai errors explain
|
|
1093
|
+
app_token_tenant_context_required --format json` when advertised, confirm
|
|
1094
|
+
`eai whoami` and `eai workspace list --format json`, and retry through
|
|
1095
|
+
`/v4/platform/tenants/<tenant-id>/users/by-email?email=<email>`,
|
|
1096
|
+
`/v4/platform/tenants/<tenant-id>/users/<oid>/memberships`,
|
|
1097
|
+
`/v4/platform/tenants/<tenant-id>/members`, and
|
|
1098
|
+
`/v4/platform/tenants/<tenant-id>/role-definitions`. Do not change Entra,
|
|
1099
|
+
databases, workspace members, or role definitions until the workspace-scoped route
|
|
1100
|
+
check is complete; if it still fails, escalate with redacted route shape,
|
|
1101
|
+
status, server code, CLI version, active workspace slug, and deployed
|
|
1102
|
+
PublicAPI/AdminAPI versions if visible.
|
|
853
1103
|
- For application delivery, implement the four-step-or-fewer AI-augmented
|
|
854
1104
|
process as the user-facing spine. Each step must preserve its business goal,
|
|
855
1105
|
AI assistance mode, contextual prefill or conversational support, completion
|
|
@@ -857,19 +1107,44 @@ separation from `tasks.md`:
|
|
|
857
1107
|
- Preserve dual-state delivery discipline: when a capability stays in `mock` or
|
|
858
1108
|
`hybrid`, record why, what promotion criteria remain, and what validation
|
|
859
1109
|
evidence is still required before it can move to `live`.
|
|
860
|
-
- For application delivery,
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
1110
|
+
- For application delivery, after every UI-facing change to page layout,
|
|
1111
|
+
component choice, theme, copy, data binding, or interaction behavior, run the
|
|
1112
|
+
preview helper before reporting the task complete:
|
|
1113
|
+
```bash
|
|
1114
|
+
node .specify/scripts/node/gofer-ui-preview.mjs --feature-dir {FEATURE_DIR} --command "./run.sh dev 3001" --require-scenarios --open auto --screenshot --change "<change summary>"
|
|
1115
|
+
```
|
|
1116
|
+
Use `run.bat dev 3001` on Windows. Use `--url <preview-url>` only when a
|
|
1117
|
+
server is already running. Report the opened URL and screenshot path to the
|
|
1118
|
+
user quickly. Append the run, self-review, and any known visual risks to
|
|
1119
|
+
`{FEATURE_DIR}/ui-review-log.md`. Also update
|
|
1120
|
+
`{FEATURE_DIR}/build-map.md` with the affected map area, plain-language
|
|
1121
|
+
status, business impact, and next step.
|
|
1122
|
+
- For application delivery, do not mark a UI task complete unless
|
|
1123
|
+
`{FEATURE_DIR}/business-scenarios.json` maps every affected user story to its
|
|
1124
|
+
screens and executable browser tests, and the preview helper records a
|
|
1125
|
+
passing `business-scenario-report.json`. `--skip-scenarios` is permitted only
|
|
1126
|
+
for an intentional red test-first run; it is never completion evidence.
|
|
1127
|
+
- Use the host's integrated browser for the visible click-through when
|
|
1128
|
+
available and Playwright/Cypress for the repeatable automated gate. Exercise
|
|
1129
|
+
the screens in business order, verify the visible completion signal, and
|
|
1130
|
+
inspect console/network failures after interactions rather than treating a
|
|
1131
|
+
page-load screenshot as functional evidence.
|
|
1132
|
+
- For application delivery, show each new MVP preview to the user as quickly as
|
|
1133
|
+
possible after the latest UI-facing change opens in a browser and has
|
|
1134
|
+
screenshot, local render proof, or Playwright-style self-review evidence in
|
|
1135
|
+
`{FEATURE_DIR}/ui-review-log.md`. Update `{FEATURE_DIR}/ui-show-and-tell.md`
|
|
1136
|
+
with the URL, screenshot, user feedback, changes made, and open UX questions.
|
|
1137
|
+
- For application delivery, after the first concrete UI direction is visible
|
|
1138
|
+
and before treating platform selection as complete, update
|
|
1139
|
+
`{FEATURE_DIR}/service-fit-matrix.md` with
|
|
865
1140
|
workspace context evidence from `eai --describe`, `eai whoami`, `eai workspace
|
|
866
1141
|
select`, `eai resources schema --format json`, `eai workflow readiness
|
|
867
1142
|
--format json`, `eai verify calls --format json`, or equivalent approved
|
|
868
1143
|
platform evidence. The matrix must distinguish
|
|
869
1144
|
accessible now, purchasable but unavailable now, and unavailable without new
|
|
870
1145
|
platform work.
|
|
871
|
-
- For non-app work, skip the preview,
|
|
872
|
-
while preserving the same numbered stage flow.
|
|
1146
|
+
- For non-app work, skip the preview, show-and-tell, branding, and service-fit
|
|
1147
|
+
gates while preserving the same numbered stage flow.
|
|
873
1148
|
- Do not add extra user-facing app steps unless `plan.md` records why they
|
|
874
1149
|
cannot be combined, automated, or handled by generative AI assistance.
|
|
875
1150
|
- Re-run the same tests and validation checks after implementation.
|
|
@@ -918,3 +1193,19 @@ Logs to: `.specify/logs/pipeline.jsonl`
|
|
|
918
1193
|
that the helper was not run.
|
|
919
1194
|
- These selectors are optional and do not change stage progress, routing, or
|
|
920
1195
|
pipeline state.
|
|
1196
|
+
|
|
1197
|
+
## Local Settings Cleanup Contract
|
|
1198
|
+
<!-- gofer:local-settings-cleanup:start -->
|
|
1199
|
+
|
|
1200
|
+
After any Gofer install, update, release refresh, or workspace bootstrap:
|
|
1201
|
+
|
|
1202
|
+
1. Archive stale Gofer command and skill entries before continuing.
|
|
1203
|
+
2. Prefer the repo helper:
|
|
1204
|
+
- `node .specify/scripts/node/gofer-local-settings-cleanup.mjs --workspace . --apply --json`
|
|
1205
|
+
3. If the repo helper is missing, use the stable plugin bundle helper:
|
|
1206
|
+
- macOS/Linux: `node ~/plugins/eai-gofer/.specify/scripts/node/gofer-local-settings-cleanup.mjs --workspace . --apply --json`
|
|
1207
|
+
- Windows: `node %USERPROFILE%\plugins\eai-gofer\.specify\scripts\node\gofer-local-settings-cleanup.mjs --workspace . --apply --json`
|
|
1208
|
+
4. This cleanup covers old Claude, Codex, Copilot, Gemini, Grok, VS Code, desktop, and CLI command surfaces.
|
|
1209
|
+
5. Do not remove the current public `eai` entrypoint.
|
|
1210
|
+
6. Ask the user to refresh or restart the host command picker only after cleanup completes.
|
|
1211
|
+
<!-- gofer:local-settings-cleanup:end -->
|