@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
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"stages": [
|
|
4
|
+
"0_gofer_start",
|
|
5
|
+
"0a_problem_validation",
|
|
6
|
+
"1_gofer_research",
|
|
7
|
+
"2_gofer_specify",
|
|
8
|
+
"3_gofer_plan",
|
|
9
|
+
"4_gofer_tasks",
|
|
10
|
+
"5_gofer_implement",
|
|
11
|
+
"6_gofer_validate",
|
|
12
|
+
"7_gofer_save",
|
|
13
|
+
"7a_stakeholder_comms",
|
|
14
|
+
"8_gofer_branding",
|
|
15
|
+
"9_gofer_tests",
|
|
16
|
+
"10_gofer_cloud",
|
|
17
|
+
"gofer_constitution",
|
|
18
|
+
"gofer_hydrate",
|
|
19
|
+
"gofer:bootstrap-workspace",
|
|
20
|
+
"gofer:check-workspace",
|
|
21
|
+
"gofer:diagnose",
|
|
22
|
+
"gofer:eai-first-run",
|
|
23
|
+
"gofer:personality",
|
|
24
|
+
"gofer:plan",
|
|
25
|
+
"gofer:side",
|
|
26
|
+
"gofer:spec-summary",
|
|
27
|
+
"gofer:tdd",
|
|
28
|
+
"gofer:vocabulary",
|
|
29
|
+
"gofer:zoom-out"
|
|
30
|
+
],
|
|
31
|
+
"surfaces": [
|
|
32
|
+
{
|
|
33
|
+
"id": "claude",
|
|
34
|
+
"legacy": false,
|
|
35
|
+
"evidenceKind": "self-declaration",
|
|
36
|
+
"independentReadIsolation": "unqualified",
|
|
37
|
+
"independentExecution": "unqualified"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "codex",
|
|
41
|
+
"legacy": false,
|
|
42
|
+
"evidenceKind": "self-declaration",
|
|
43
|
+
"independentReadIsolation": "unqualified",
|
|
44
|
+
"independentExecution": "unqualified"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "copilot",
|
|
48
|
+
"legacy": false,
|
|
49
|
+
"evidenceKind": "self-declaration",
|
|
50
|
+
"independentReadIsolation": "unqualified",
|
|
51
|
+
"independentExecution": "unqualified"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "vscode",
|
|
55
|
+
"legacy": false,
|
|
56
|
+
"evidenceKind": "self-declaration",
|
|
57
|
+
"independentReadIsolation": "unqualified",
|
|
58
|
+
"independentExecution": "unqualified"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "grok",
|
|
62
|
+
"legacy": false,
|
|
63
|
+
"evidenceKind": "self-declaration",
|
|
64
|
+
"independentReadIsolation": "unqualified",
|
|
65
|
+
"independentExecution": "unqualified"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "antigravity",
|
|
69
|
+
"legacy": false,
|
|
70
|
+
"evidenceKind": "self-declaration",
|
|
71
|
+
"independentReadIsolation": "unqualified",
|
|
72
|
+
"independentExecution": "unqualified"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "gemini",
|
|
76
|
+
"legacy": true,
|
|
77
|
+
"evidenceKind": "self-declaration",
|
|
78
|
+
"independentReadIsolation": "unqualified",
|
|
79
|
+
"independentExecution": "unqualified"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"roles": [
|
|
83
|
+
{ "id": "assumption-tracker", "body": "agents/assumption-tracker.md" },
|
|
84
|
+
{ "id": "business-metrics-analyzer", "body": "agents/business-metrics-analyzer.md" },
|
|
85
|
+
{ "id": "business-problem-validator", "body": "agents/business-problem-validator.md" },
|
|
86
|
+
{ "id": "codebase-analyzer", "body": "agents/codebase-analyzer.md" },
|
|
87
|
+
{ "id": "codebase-locator", "body": "agents/codebase-locator.md" },
|
|
88
|
+
{ "id": "codebase-pattern-finder", "body": "agents/codebase-pattern-finder.md" },
|
|
89
|
+
{ "id": "comms-writer", "body": "agents/comms-writer.md" },
|
|
90
|
+
{ "id": "engineer-review", "body": "agents/engineer-review.md" },
|
|
91
|
+
{ "id": "implement-bug-triangulator", "body": "agents/implement-bug-triangulator.md" },
|
|
92
|
+
{ "id": "implement-code-review-council", "body": "agents/implement-code-review-council.md" },
|
|
93
|
+
{ "id": "implement-doc-writer", "body": "agents/implement-doc-writer.md" },
|
|
94
|
+
{ "id": "implement-error-hardener", "body": "agents/implement-error-hardener.md" },
|
|
95
|
+
{ "id": "implement-performance-explorer", "body": "agents/implement-performance-explorer.md" },
|
|
96
|
+
{ "id": "implement-test-diversifier", "body": "agents/implement-test-diversifier.md" },
|
|
97
|
+
{ "id": "implement-variant-generator", "body": "agents/implement-variant-generator.md" },
|
|
98
|
+
{ "id": "multi-perspective-judge", "body": "agents/multi-perspective-judge.md" },
|
|
99
|
+
{ "id": "plan-api-comparator", "body": "agents/plan-api-comparator.md" },
|
|
100
|
+
{ "id": "plan-architecture-diverger", "body": "agents/plan-architecture-diverger.md" },
|
|
101
|
+
{ "id": "plan-data-model-stress-tester", "body": "agents/plan-data-model-stress-tester.md" },
|
|
102
|
+
{ "id": "plan-migration-path-finder", "body": "agents/plan-migration-path-finder.md" },
|
|
103
|
+
{ "id": "plan-refactor-rewrite-advisor", "body": "agents/plan-refactor-rewrite-advisor.md" },
|
|
104
|
+
{ "id": "research-dependency-evaluator", "body": "agents/research-dependency-evaluator.md" },
|
|
105
|
+
{ "id": "research-horizon-scanner", "body": "agents/research-horizon-scanner.md" },
|
|
106
|
+
{ "id": "research-market-scanner", "body": "agents/research-market-scanner.md" },
|
|
107
|
+
{ "id": "research-perspective-multiplier", "body": "agents/research-perspective-multiplier.md" },
|
|
108
|
+
{ "id": "scope-creep-detector", "body": "agents/scope-creep-detector.md" },
|
|
109
|
+
{ "id": "specify-ambiguity-detector", "body": "agents/specify-ambiguity-detector.md" },
|
|
110
|
+
{ "id": "specify-journey-stress-tester", "body": "agents/specify-journey-stress-tester.md" },
|
|
111
|
+
{ "id": "tasks-cross-cutting-scanner", "body": "agents/tasks-cross-cutting-scanner.md" },
|
|
112
|
+
{ "id": "tasks-rollback-planner", "body": "agents/tasks-rollback-planner.md" },
|
|
113
|
+
{ "id": "validate-security-red-team", "body": "agents/validate-security-red-team.md" },
|
|
114
|
+
{ "id": "validation-correctness", "body": "agents/validation-correctness.md" },
|
|
115
|
+
{ "id": "validation-integration", "body": "agents/validation-integration.md" },
|
|
116
|
+
{ "id": "validation-performance", "body": "agents/validation-performance.md" },
|
|
117
|
+
{ "id": "validation-security", "body": "agents/validation-security.md" },
|
|
118
|
+
{ "id": "validation-standards", "body": "agents/validation-standards.md" },
|
|
119
|
+
{ "id": "validation-test-quality", "body": "agents/validation-test-quality.md" },
|
|
120
|
+
{ "id": "visual-bounded-context-writer", "body": "agents/visual-bounded-context-writer.md" },
|
|
121
|
+
{ "id": "visual-c4-writer", "body": "agents/visual-c4-writer.md" },
|
|
122
|
+
{ "id": "visual-erd-writer", "body": "agents/visual-erd-writer.md" },
|
|
123
|
+
{ "id": "visual-heatmap-writer", "body": "agents/visual-heatmap-writer.md" },
|
|
124
|
+
{ "id": "visual-risk-writer", "body": "agents/visual-risk-writer.md" }
|
|
125
|
+
]
|
|
126
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Blocker Mediation
|
|
2
|
+
|
|
3
|
+
Technical escalation now requires a fresh diagnosis in the ask event's
|
|
4
|
+
`verification` file. Use `priority-outcome-protection.md` for its required
|
|
5
|
+
fields. A real business decision needs no failed command. Existing retry
|
|
6
|
+
budgets, ask-once history and permissions remain unchanged.
|
|
7
|
+
|
|
8
|
+
Keep the agreed goal. Stop spending time when progress needs an answer, access
|
|
9
|
+
or a change outside the current work.
|
|
10
|
+
|
|
11
|
+
## When To Use It
|
|
12
|
+
|
|
13
|
+
Before retrying a failed action or asking for missing input, check the existing
|
|
14
|
+
record. Routine successful work needs no blocker entry.
|
|
15
|
+
|
|
16
|
+
Use the private feature directory for app or product delivery. For
|
|
17
|
+
conversation-only work, reuse a private session directory. Do not initialise an
|
|
18
|
+
app for a question. Share the directory when changing coding tools. Do not store
|
|
19
|
+
passwords, access tokens or customer details in the record.
|
|
20
|
+
|
|
21
|
+
## State And Actions
|
|
22
|
+
|
|
23
|
+
Run
|
|
24
|
+
`node .specify/scripts/node/gofer-blocker-control.mjs --state-dir <directory>`
|
|
25
|
+
to inspect. Add `--task T001` only after confirming that task does not depend on
|
|
26
|
+
blocked work. No task filter means the whole feature.
|
|
27
|
+
|
|
28
|
+
Send actions with `--event <private-json-file>`. Reserve an action before asking
|
|
29
|
+
the user or starting a tool. Exit code 1 means stop that action. The helper
|
|
30
|
+
records decisions; it does not run commands or prove that permission was
|
|
31
|
+
granted.
|
|
32
|
+
|
|
33
|
+
| Action | Effect |
|
|
34
|
+
| -------- | ------------------------------------------------------------------------------------------------------- |
|
|
35
|
+
| open | Record the cause and affected tasks. Repeated opens retain history and widen, never narrow, task scope. |
|
|
36
|
+
| ask | Reserve one question. Later attempts to ask again are denied. |
|
|
37
|
+
| attempt | Reserve one investigation, then at most one different recovery. |
|
|
38
|
+
| result | Record the reserved attempt's actual result. Progress alone does not mean resolved. |
|
|
39
|
+
| classify | Update the cause without clearing a wait or resetting the budget. |
|
|
40
|
+
| resume | Accept changed evidence and allow one further bounded investigation/recovery cycle. |
|
|
41
|
+
| resolve | Accept the relevant successful check or genuine answer as resolution evidence. |
|
|
42
|
+
|
|
43
|
+
Use stable keys for the goal, affected subject and missing condition. Search the
|
|
44
|
+
register before assigning keys. Do not derive them from question wording, model
|
|
45
|
+
identity or command text. This identity rule needs agent judgement; the helper
|
|
46
|
+
does not detect semantic aliases.
|
|
47
|
+
|
|
48
|
+
An open event has this shape:
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"action": "open",
|
|
53
|
+
"goalKey": "feature-access",
|
|
54
|
+
"subjectKey": "workspace-selection",
|
|
55
|
+
"conditionKey": "user-choice-required",
|
|
56
|
+
"category": "decision",
|
|
57
|
+
"owner": "user",
|
|
58
|
+
"question": "Which workspace should this app use?",
|
|
59
|
+
"requiredChange": "The user selects the target workspace.",
|
|
60
|
+
"tasks": ["T001"]
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Categories are `decision`, `access`, `external`, `capability`, `solvable` and
|
|
65
|
+
`unknown`. The first four start in a waiting state. An empty task list affects
|
|
66
|
+
the whole feature. Other events use the returned `blockerId`. An `attempt` also
|
|
67
|
+
needs a stable `approachKey`. A `result` needs the returned `attemptId`, a
|
|
68
|
+
`summary` and `result`: `progress`, `no_progress` or `blocked`.
|
|
69
|
+
|
|
70
|
+
## Evidence And Resumption
|
|
71
|
+
|
|
72
|
+
For `resume` or `resolve`, supply `evidence` as a relative path inside the state
|
|
73
|
+
directory. A resume also needs `category`: `solvable` or `unknown`. Keep
|
|
74
|
+
evidence immutable:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"blockerId": "<returned blocker ID>",
|
|
79
|
+
"kind": "change",
|
|
80
|
+
"result": "changed",
|
|
81
|
+
"source": "<actual user reply or external check reference>",
|
|
82
|
+
"summary": "<what changed and why work can proceed>"
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Resolution uses `kind: resolution` and `result: pass`. Cite a real answer for a
|
|
87
|
+
decision, or the relevant successful check for a technical fault. A login answer
|
|
88
|
+
does not prove app access. Record the check that the current scope requires.
|
|
89
|
+
Local MVPs do not gain new authentication requirements from this rule.
|
|
90
|
+
|
|
91
|
+
Missing, changed, reused or unrelated evidence is rejected. The helper checks
|
|
92
|
+
its identity and file hash. It cannot authenticate a user reply or verify the
|
|
93
|
+
truth of a hand-written receipt. The agent must inspect the referenced evidence
|
|
94
|
+
and respect host permissions.
|
|
95
|
+
|
|
96
|
+
One evidence-backed resumption is allowed. Existing lower time, token, retry and
|
|
97
|
+
permission limits still apply. If that allowance is exhausted, stop for human
|
|
98
|
+
review. Do not delete the record or invent a new goal. Repeated calls,
|
|
99
|
+
unanswered questions and unchanged status are not progress.
|
|
100
|
+
|
|
101
|
+
A pending attempt survives a restart. Inspect what actually happened before
|
|
102
|
+
recording its outcome; never launch it again solely because the chat ended. A
|
|
103
|
+
writer lock prevents simultaneous state changes. If a lock remains after a
|
|
104
|
+
crash, confirm that no writer is active before manual recovery. Do not
|
|
105
|
+
automatically delete it.
|
|
106
|
+
|
|
107
|
+
## User Update
|
|
108
|
+
|
|
109
|
+
For a status, blocker, low-confidence review, or decision, use these five labels
|
|
110
|
+
so the reader can act without asking for a translation:
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
Recommendation: Continue, reconcile, or wait.
|
|
114
|
+
Why: State the verified rule or evidence that supports the recommendation.
|
|
115
|
+
Next step: Name one concrete action.
|
|
116
|
+
Owner: Name the verified person or role responsible; do not guess.
|
|
117
|
+
User action: Required — <one exact action>, or Not required.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Keep the stop rule separate from its cause. A low-confidence result explains why
|
|
121
|
+
Gofer held the task (the score did not meet the configured threshold); it does
|
|
122
|
+
not explain why Jev chose that score. Choice probabilities identify the closest
|
|
123
|
+
alternative only. Do not present them as Jev's reason. If the API returns no
|
|
124
|
+
reason, say that the cause is unknown. Distinguish a missing or oversized input,
|
|
125
|
+
a local budget hold, a provider error, and a review conflict when evidence shows
|
|
126
|
+
which one occurred. Never report a provider 400 cause as known unless a safe
|
|
127
|
+
diagnostic field establishes it.
|
|
128
|
+
|
|
129
|
+
Report independent gates separately. State each gate's effect on the current
|
|
130
|
+
goal and name its owner only when known. A Jev result does not approve CI,
|
|
131
|
+
reviews, security, deployment, or release. Do not make confidence-only holds
|
|
132
|
+
advisory or change the threshold without explicit approval. Continue safe
|
|
133
|
+
evidence review rather than asking the user to approve an unexplained override.
|
|
134
|
+
|
|
135
|
+
Run the response format check for these replies with
|
|
136
|
+
`node .specify/scripts/node/gofer-response-check.mjs --input <private-draft-file> --kind answer --business-update`.
|
|
137
|
+
The check verifies required labels and basic writing rules. It cannot verify
|
|
138
|
+
that the explanation is true or the named owner is correct.
|
|
139
|
+
|
|
140
|
+
State the result, business impact and one next action:
|
|
141
|
+
|
|
142
|
+
> The page opens, but sign-in still fails. Access is needed to check the account
|
|
143
|
+
> settings. This work is paused until access is available. The page layout can
|
|
144
|
+
> continue separately.
|
|
145
|
+
|
|
146
|
+
Ask the actual question once. Later progress updates must not repeat it. Waiting
|
|
147
|
+
is not feature completion.
|
|
148
|
+
|
|
149
|
+
## Validation Coverage
|
|
150
|
+
|
|
151
|
+
Strict loop checks reject unresolved or invalid recorded blockers. Legacy
|
|
152
|
+
features without a register retain their existing checks; absence is not proof
|
|
153
|
+
that no blocker exists. Package tests must execute the helper, test restart
|
|
154
|
+
behaviour, and verify all generated surface instructions. Native chat compliance
|
|
155
|
+
needs separate host tests. These instructions cannot force an unsupported host
|
|
156
|
+
to intercept every action.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Clear Updates And Current Goals
|
|
2
|
+
|
|
3
|
+
## Business Replies
|
|
4
|
+
|
|
5
|
+
Explain what changed, why it matters, and what happens next. Use two or three
|
|
6
|
+
short sentences for progress. Do not repeat an unchanged update. State blockers
|
|
7
|
+
and uncertainty without hiding them behind technical terms.
|
|
8
|
+
|
|
9
|
+
Before sending, store the draft in a private local file and run:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
node .specify/scripts/node/gofer-response-check.mjs --input <private-draft-file>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Use `--kind answer` for a full answer. Use `--previous <private-file>` to check
|
|
16
|
+
for an identical progress update. Use `--technical` only when the user asks for
|
|
17
|
+
technical detail. It is not a way to bypass a failed business reply. Rewrite
|
|
18
|
+
failed drafts; do not send the findings instead of explaining the work. Do not
|
|
19
|
+
commit drafts. The helper does not print the draft or previous reply.
|
|
20
|
+
|
|
21
|
+
The check flags a bounded set of jargon, length, repetition, and long sentences.
|
|
22
|
+
It does not prove meaning, technical accuracy, business clarity, or ASD-STE100
|
|
23
|
+
conformance. A human or model review must still check those points. It cannot
|
|
24
|
+
block chat messages sent directly by the coding app. Native tool logs remain the
|
|
25
|
+
host's responsibility. Never claim universal message interception.
|
|
26
|
+
|
|
27
|
+
## Reconcile Each Work Batch
|
|
28
|
+
|
|
29
|
+
1. Read the agreed goal, current spec, tasks, and latest findings before work.
|
|
30
|
+
2. Select tasks linked to that goal. Run the applicable acceptance checks.
|
|
31
|
+
3. After learning something new, record the evidence and affected assumptions.
|
|
32
|
+
4. Update the spec, plan, tasks, traceability, and validation scope as needed.
|
|
33
|
+
Record why a document remains valid if no change is needed.
|
|
34
|
+
5. If the outcome, scope, cost, security, or delivery promise changes, ask the
|
|
35
|
+
user before accepting that change. Do not rewrite requirements to excuse
|
|
36
|
+
failing code. Preserve requirement IDs and the decision history.
|
|
37
|
+
6. Mark tasks complete only after their checks pass. Record failure or blockage
|
|
38
|
+
instead of completion. Reopen affected tasks when evidence becomes stale.
|
|
39
|
+
7. Explain the business effect. Continue the next authorized batch or report the
|
|
40
|
+
exact unresolved decision. Do not wait until final validation to reconcile.
|
|
41
|
+
|
|
42
|
+
This applies to app and non-app features. Conversation-only requests need no
|
|
43
|
+
feature files. Maintenance commands stay maintenance-only. Keep local MVP
|
|
44
|
+
exemptions: no forced sign-in or deployment if the current scope excludes them.
|
|
45
|
+
|
|
46
|
+
## Delivery Checkpoint
|
|
47
|
+
|
|
48
|
+
New loop contracts enable `requireDeliveryCheckpoint: true` by default. For an
|
|
49
|
+
existing feature with a spec and tasks, enable it in `loop-contract.json`. Do
|
|
50
|
+
not disable it to hide a failed check. Create or reconcile `spec.md`, `plan.md`,
|
|
51
|
+
`tasks.md`, and `traceability.md` first. Research-only work before that point
|
|
52
|
+
does not need placeholder implementation artifacts. Legacy loop audits report
|
|
53
|
+
that the new coverage is absent until it is enabled; they retain their existing
|
|
54
|
+
checks.
|
|
55
|
+
|
|
56
|
+
After checks pass, write a local JSON evidence record for each completed task:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"result": "pass",
|
|
61
|
+
"check": "The actual executed acceptance check or named manual verification",
|
|
62
|
+
"requirements": ["FR-001"],
|
|
63
|
+
"specHash": "SHA-256 of the spec used by that check"
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Keep actual command output or manual verification records alongside it. Do not
|
|
68
|
+
manufacture a passing record. Record evidence at test time; changing its spec
|
|
69
|
+
hash later is not a valid way to reuse stale results. Evidence records and the
|
|
70
|
+
mapping below are relative to the feature directory. Each traceability row must
|
|
71
|
+
link the task to its requirement IDs.
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"T001": { "requirements": ["FR-001"], "evidence": "evidence/t001.json" }
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Capture the reviewed state with that mapping file:
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
node .specify/scripts/node/gofer-delivery-check.mjs --feature-dir <feature-dir> --capture --evidence-map <mapping-file>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
An empty mapping is valid only when no tasks are complete. Capture stores
|
|
86
|
+
hashes; it does not mark tasks complete or approve changed goals. Do not
|
|
87
|
+
recapture solely to hide drift. Review the change, update affected documents,
|
|
88
|
+
rerun checks, and replace stale evidence first.
|
|
89
|
+
|
|
90
|
+
Before advancing a batch, resuming work, or claiming completion, run:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
node .specify/scripts/node/gofer-delivery-check.mjs --feature-dir <feature-dir>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The existing strict loop audit also runs this check from the tasks stage when
|
|
97
|
+
enabled or when a checkpoint exists. A failure blocks that audit. It checks
|
|
98
|
+
document freshness and recorded task evidence. It does not independently execute
|
|
99
|
+
acceptance tests, detect every code change, or prove semantic goal alignment.
|
|
100
|
+
Keep the existing goal, test, browser, review, and release checks.
|
|
101
|
+
|
|
102
|
+
## Supported Surfaces
|
|
103
|
+
|
|
104
|
+
Claude, Codex, Copilot, VS Code, Grok, and Google command/skill packages receive
|
|
105
|
+
the same rules and portable Node helpers through the existing build paths.
|
|
106
|
+
Package tests prove the files are present. Script tests prove the checker
|
|
107
|
+
behavior. Neither proves that a live desktop or CLI session called the helper.
|
|
108
|
+
If the host cannot execute it, report the check as unverified; do not invent a
|
|
109
|
+
pass.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Customer Delivery Lineage
|
|
2
|
+
|
|
3
|
+
Every active feature maintains `.specify/specs/{feature}/delivery-lineage.json`
|
|
4
|
+
using schema `eai.delivery_lineage.v1`. The manifest is the machine-readable
|
|
5
|
+
graph consumed by the documentation viewer; Markdown remains the human-readable
|
|
6
|
+
evidence.
|
|
7
|
+
|
|
8
|
+
Gofer operates in the customer trust plane. The graph must use `plane: customer`
|
|
9
|
+
and may contain only `customer` and `public-contract` visibility. Never give the
|
|
10
|
+
viewer a larger internal graph and rely on the UI to hide nodes.
|
|
11
|
+
|
|
12
|
+
## PublicAPI Boundary
|
|
13
|
+
|
|
14
|
+
EAI dependencies terminate at a published capability node:
|
|
15
|
+
|
|
16
|
+
- kind: `public-api-capability`
|
|
17
|
+
- visibility: `public-contract`
|
|
18
|
+
- capability ID: `eai.publicapi.capability.{name}.v{major}`
|
|
19
|
+
- source repository: `PublicAPI`
|
|
20
|
+
- source path and commit: from the published capability contract
|
|
21
|
+
|
|
22
|
+
Do not name or reference services, repositories, policies, infrastructure, or
|
|
23
|
+
documentation behind PublicAPI. Customer projections must reject AdminAPI,
|
|
24
|
+
ResourceAPI, Configurator, Authz, AzureAPI, AICore, GeoService, Infra2025,
|
|
25
|
+
`eai-testing-dev`, `tech-docs`, personal absolute paths, and repositories not on
|
|
26
|
+
the explicit export allowlist.
|
|
27
|
+
|
|
28
|
+
## Stage Updates
|
|
29
|
+
|
|
30
|
+
| Stage | Required lineage update |
|
|
31
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| Start / Research | Customer need, research artifacts, owners, public capabilities, and evidence links |
|
|
33
|
+
| Specify | Requirements, acceptance outcomes, and the research evidence that supports or constrains them |
|
|
34
|
+
| Plan | Customer architecture, explicit decisions, concise rationale summaries, approvers, and PublicAPI dependencies |
|
|
35
|
+
| Tasks | Work-order nodes and links from requirements and decisions |
|
|
36
|
+
| Implement | Actual customer code, documentation, and test files changed |
|
|
37
|
+
| Validate | Planned-versus-actual reconciliation, test/outcome links, and honest current/suspect/broken/superseded status |
|
|
38
|
+
|
|
39
|
+
Each source location must use a repository-relative path and should include an
|
|
40
|
+
exact Markdown anchor, Git commit, and SHA-256 content hash when known. Record
|
|
41
|
+
the decision, considered options, concise rationale, evidence, owner, and
|
|
42
|
+
approval; never record hidden chain-of-thought.
|
|
43
|
+
|
|
44
|
+
Use `.specify/templates/delivery-lineage-template.json` when the feature does
|
|
45
|
+
not have a manifest. Preserve existing IDs and history when updating it. The
|
|
46
|
+
headless `validateDeliveryLineage`, `projectCustomerDeliveryLineage`, and
|
|
47
|
+
`serializeDeliveryLineage` contracts are authoritative for integrity,
|
|
48
|
+
fail-closed customer projection, and deterministic output.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# MVP Capability-Based Validation Contract
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Validate the work that the active feature specification requires now. Do not
|
|
6
|
+
apply later delivery requirements to an early MVP.
|
|
7
|
+
|
|
8
|
+
## Capability States
|
|
9
|
+
|
|
10
|
+
Use one state for every relevant capability:
|
|
11
|
+
|
|
12
|
+
| State | Meaning | Validation result |
|
|
13
|
+
| ---------------- | ---------------------------------------------------------------------- | ----------------------------------------------------- |
|
|
14
|
+
| `not_applicable` | The feature does not require this capability. | Excluded from the result. |
|
|
15
|
+
| `planned` | The feature includes this capability, but no code exists. | Visible as planned. It does not fail the current MVP. |
|
|
16
|
+
| `implemented` | Code or configuration exists. | Evidence is required before completion. |
|
|
17
|
+
| `verified` | Required evidence passes. | Complete for the current feature scope. |
|
|
18
|
+
| `blocked` | The active feature requires this capability, but evidence cannot pass. | The affected outcome is not complete. |
|
|
19
|
+
|
|
20
|
+
## Required Gates
|
|
21
|
+
|
|
22
|
+
1. Create `.specify/specs/{feature}/` before app or operator-tool source work.
|
|
23
|
+
2. Map every specified requirement to an automated test, smoke check, or named
|
|
24
|
+
manual check.
|
|
25
|
+
3. Validate only capabilities that are `implemented` or required by the current
|
|
26
|
+
delivery decision.
|
|
27
|
+
4. Store HTTP checks, screenshots, and manual review evidence in the feature
|
|
28
|
+
validation report.
|
|
29
|
+
5. State the exact feature result. Do not call an app working when a required
|
|
30
|
+
journey fails.
|
|
31
|
+
|
|
32
|
+
## Conditional Gates
|
|
33
|
+
|
|
34
|
+
| Capability | Required when | Not required when |
|
|
35
|
+
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
|
36
|
+
| EAI CLI and workspace readiness | The current feature uses EAI Platform services or the user asks to prepare an EAI deployment. | Local MVP work does not use EAI services yet. |
|
|
37
|
+
| EAI app template readiness | The feature creates, changes, or validates an EAI Platform app integration. | The local MVP has not entered EAI integration scope. |
|
|
38
|
+
| Authentication journey | The specification includes sign-in, protected content, user roles, or a deployment target that requires identity. | Authentication is explicitly out of the current MVP scope. |
|
|
39
|
+
| Deployment evidence | The user asks to deploy or the feature claims a deployed outcome. | Local development and preview only. |
|
|
40
|
+
| Browser preview evidence | The feature changes user-facing behaviour. | Non-app work or no user-facing change. |
|
|
41
|
+
|
|
42
|
+
## Authentication Journey
|
|
43
|
+
|
|
44
|
+
When authentication is `implemented`, `required`, or `blocked`, record these
|
|
45
|
+
checks:
|
|
46
|
+
|
|
47
|
+
1. Provider endpoint responds as expected.
|
|
48
|
+
2. Callback address matches the configured provider value.
|
|
49
|
+
3. Sign-in completes.
|
|
50
|
+
4. A session exists.
|
|
51
|
+
5. The first protected API call succeeds for an authorised user.
|
|
52
|
+
6. An unauthorised user fails safely.
|
|
53
|
+
|
|
54
|
+
Use `.specify/references/platform/eai-auth-access.md` for the access decision.
|
|
55
|
+
Record owner confirmation of `workspace-only` (default) or explicitly approved
|
|
56
|
+
`platform-authenticated` access. Test non-members, cross-workspace requests,
|
|
57
|
+
revocation, and unavailable membership checks. Sign-in alone is not permission.
|
|
58
|
+
Client SSO is a separate choice. Changing the provider must not widen access.
|
|
59
|
+
Require a real federated journey before claiming that SSO is verified.
|
|
60
|
+
|
|
61
|
+
If authentication is `not_applicable` or `planned`, record that state and the
|
|
62
|
+
trigger that will make it required. Do not report an authentication failure.
|
|
63
|
+
|
|
64
|
+
## Direction Changes
|
|
65
|
+
|
|
66
|
+
Before work continues after a scope change:
|
|
67
|
+
|
|
68
|
+
1. Update `spec.md`, `plan.md`, `tasks.md`, `traceability.md`, and the active
|
|
69
|
+
validation scope.
|
|
70
|
+
2. Record the change, business effect, new capability state, and test impact.
|
|
71
|
+
3. Tell the user what changed, what remains valid, and what now needs evidence.
|
|
72
|
+
4. Re-open only the affected pipeline loop.
|
|
73
|
+
|
|
74
|
+
## Completion Language
|
|
75
|
+
|
|
76
|
+
Use one of these truthful statements:
|
|
77
|
+
|
|
78
|
+
- `The current MVP works for its specified local journey.`
|
|
79
|
+
- `The server runs. Authentication is not in the current MVP scope.`
|
|
80
|
+
- `The server runs. Authentication is required and currently blocked.`
|
|
81
|
+
- `The deployed journey is not verified because browser evidence is unavailable.`
|
|
82
|
+
|
|
83
|
+
`run.sh`, `run.bat`, and `run.ps1` prove that the app starts. They do not prove
|
|
84
|
+
authentication, sessions, EAI access, or deployment readiness.
|
|
85
|
+
|
|
86
|
+
## Release Capability Ledger
|
|
87
|
+
|
|
88
|
+
For a feature that claims a release or deployed outcome, create
|
|
89
|
+
`release-capability-ledger.md`. Record every accepted capability with:
|
|
90
|
+
|
|
91
|
+
| Field | Required evidence |
|
|
92
|
+
| ----------------------- | -------------------------------------------------------------- |
|
|
93
|
+
| Business requirement | Requirement ID and plain-language outcome. |
|
|
94
|
+
| Acceptance evidence | Automated test, smoke check, or named manual check. |
|
|
95
|
+
| Responsible change | PR number and commit. |
|
|
96
|
+
| Required release branch | Branch or release candidate that must contain the commit. |
|
|
97
|
+
| Deployed evidence | Browser, API, or operational evidence for the claimed outcome. |
|
|
98
|
+
|
|
99
|
+
Final validation must not report a complete or 100% result when a required
|
|
100
|
+
capability is missing from the specification or traceability record, remains on
|
|
101
|
+
an open PR, is absent from the release branch, or lacks required browser
|
|
102
|
+
evidence.
|
|
@@ -14,4 +14,4 @@ Core files:
|
|
|
14
14
|
|
|
15
15
|
These files are intentionally public-safe. Private repositories can replace or
|
|
16
16
|
extend them with organization-specific references, but Gofer should always be
|
|
17
|
-
able to fall back to this pack without exposing secrets or
|
|
17
|
+
able to fall back to this pack without exposing secrets or tenant-private data.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# EAI App Template Reference
|
|
2
2
|
|
|
3
|
-
Use `https://github.com/eai-support/eai-app-template` as the canonical public
|
|
4
|
-
template for EnterpriseAI app-delivery work.
|
|
3
|
+
Use `https://github.com/eai-support/eai-app-template` as the canonical public
|
|
4
|
+
app template for EnterpriseAI app-delivery work.
|
|
5
5
|
|
|
6
6
|
## Source Of Truth
|
|
7
7
|
|
|
@@ -19,10 +19,13 @@ template for EnterpriseAI app-delivery work.
|
|
|
19
19
|
|
|
20
20
|
1. Browser code calls the local app BFF at `/api/eai/...`.
|
|
21
21
|
2. Browser streaming uses `/api/eai/stream/...`.
|
|
22
|
-
3.
|
|
22
|
+
3. For workspace-scoped PublicAPI calls, the BFF or server helpers forward the
|
|
23
|
+
`tenant` and `X-Tenant-Id` headers from server-validated workspace context,
|
|
24
|
+
and attach auth and correlation headers.
|
|
23
25
|
4. The frontend never receives direct downstream database, blob, search, or
|
|
24
26
|
PublicAPI credentials.
|
|
25
|
-
5. Use PublicAPI
|
|
27
|
+
5. Use the published PublicAPI route family through the template SDK, named
|
|
28
|
+
`eai` commands, or an approved server-side helper.
|
|
26
29
|
|
|
27
30
|
## Implementation Contract
|
|
28
31
|
|
|
@@ -52,10 +55,9 @@ files, restore files automatically, or weaken protected EAI controls to pass.
|
|
|
52
55
|
Local-only and customer-owned source retain their own validation paths.
|
|
53
56
|
|
|
54
57
|
- Use Object Types as the data model contract.
|
|
55
|
-
- Keep
|
|
56
|
-
kebab-case
|
|
57
|
-
|
|
58
|
-
stored slugs. Never re-derive historical stored slugs.
|
|
58
|
+
- Keep PascalCase model names separate from the exact stored `slug`. Use
|
|
59
|
+
lowercase kebab-case slugs in runtime paths and links; never re-derive or
|
|
60
|
+
rename a historical stored slug.
|
|
59
61
|
- Use the template SDK and hooks for resources, documents, and chat.
|
|
60
62
|
- Use config slots with `{ components: [...] }`, not stale array-only slot
|
|
61
63
|
examples.
|
|
@@ -64,11 +66,11 @@ Local-only and customer-owned source retain their own validation paths.
|
|
|
64
66
|
- Use the CLI for setup and verification:
|
|
65
67
|
- `eai login`
|
|
66
68
|
- `eai workspace select <workspace-slug>`
|
|
67
|
-
- `eai types validate
|
|
68
|
-
- `eai types
|
|
69
|
-
- `eai types
|
|
70
|
-
- `eai resources schema --tenant-id <
|
|
71
|
-
- `eai verify calls --tenant-id <
|
|
69
|
+
- `eai types validate --tenant-key <key> --tenant-id <tenant-id>`
|
|
70
|
+
- `eai types seed --tenant-key <key> --tenant-id <tenant-id>`
|
|
71
|
+
- `eai types diff --tenant-key <key> --tenant-id <tenant-id>`
|
|
72
|
+
- `eai resources schema --tenant-id <tenant-id>`
|
|
73
|
+
- `eai verify calls --tenant-id <tenant-id> --resource-type <type>`
|
|
72
74
|
|
|
73
75
|
Do not describe retired templates as canonical scaffolds. The surviving public
|
|
74
76
|
scaffold is the EAI App Template.
|