eai-cli 0.0.0-bootstrap.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +183 -0
- package/NOTICE +4 -0
- package/README.md +14 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +69 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/blocks.d.ts +3 -0
- package/dist/commands/blocks.d.ts.map +1 -0
- package/dist/commands/blocks.js +249 -0
- package/dist/commands/blocks.js.map +1 -0
- package/dist/commands/chat.d.ts +6 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +105 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/deploy.d.ts +36 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +712 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +15 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +133 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs.d.ts +6 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +118 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/env.d.ts +10 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +200 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/errors.d.ts +3 -0
- package/dist/commands/errors.d.ts.map +1 -0
- package/dist/commands/errors.js +72 -0
- package/dist/commands/errors.js.map +1 -0
- package/dist/commands/gofer.d.ts +3 -0
- package/dist/commands/gofer.d.ts.map +1 -0
- package/dist/commands/gofer.js +134 -0
- package/dist/commands/gofer.js.map +1 -0
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1437 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +117 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/provision.d.ts +6 -0
- package/dist/commands/provision.d.ts.map +1 -0
- package/dist/commands/provision.js +855 -0
- package/dist/commands/provision.js.map +1 -0
- package/dist/commands/publicapi.d.ts +6 -0
- package/dist/commands/publicapi.d.ts.map +1 -0
- package/dist/commands/publicapi.js +184 -0
- package/dist/commands/publicapi.js.map +1 -0
- package/dist/commands/resources.d.ts +38 -0
- package/dist/commands/resources.d.ts.map +1 -0
- package/dist/commands/resources.js +1010 -0
- package/dist/commands/resources.js.map +1 -0
- package/dist/commands/runtime.d.ts +3 -0
- package/dist/commands/runtime.d.ts.map +1 -0
- package/dist/commands/runtime.js +78 -0
- package/dist/commands/runtime.js.map +1 -0
- package/dist/commands/template.d.ts +3 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +365 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/tenant.d.ts +45 -0
- package/dist/commands/tenant.d.ts.map +1 -0
- package/dist/commands/tenant.js +1036 -0
- package/dist/commands/tenant.js.map +1 -0
- package/dist/commands/types.d.ts +130 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +1636 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +163 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/user.d.ts +6 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +359 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/verify.d.ts +40 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +1442 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/vertical.d.ts +24 -0
- package/dist/commands/vertical.d.ts.map +1 -0
- package/dist/commands/vertical.js +301 -0
- package/dist/commands/vertical.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +73 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/commands/workflow.d.ts +6 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +400 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +272 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent-guide.d.ts +24 -0
- package/dist/lib/agent-guide.d.ts.map +1 -0
- package/dist/lib/agent-guide.js +155 -0
- package/dist/lib/agent-guide.js.map +1 -0
- package/dist/lib/api.d.ts +338 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +991 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auth.d.ts +65 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +592 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/azure-cli.d.ts +6 -0
- package/dist/lib/azure-cli.d.ts.map +1 -0
- package/dist/lib/azure-cli.js +13 -0
- package/dist/lib/azure-cli.js.map +1 -0
- package/dist/lib/block-catalog-normalize.d.ts +47 -0
- package/dist/lib/block-catalog-normalize.d.ts.map +1 -0
- package/dist/lib/block-catalog-normalize.js +355 -0
- package/dist/lib/block-catalog-normalize.js.map +1 -0
- package/dist/lib/block-catalog-types.d.ts +111 -0
- package/dist/lib/block-catalog-types.d.ts.map +1 -0
- package/dist/lib/block-catalog-types.js +41 -0
- package/dist/lib/block-catalog-types.js.map +1 -0
- package/dist/lib/block-catalog-utils.d.ts +7 -0
- package/dist/lib/block-catalog-utils.d.ts.map +1 -0
- package/dist/lib/block-catalog-utils.js +47 -0
- package/dist/lib/block-catalog-utils.js.map +1 -0
- package/dist/lib/block-catalog-validation.d.ts +5 -0
- package/dist/lib/block-catalog-validation.d.ts.map +1 -0
- package/dist/lib/block-catalog-validation.js +112 -0
- package/dist/lib/block-catalog-validation.js.map +1 -0
- package/dist/lib/block-catalog.d.ts +3 -0
- package/dist/lib/block-catalog.d.ts.map +1 -0
- package/dist/lib/block-catalog.js +284 -0
- package/dist/lib/block-catalog.js.map +1 -0
- package/dist/lib/cloud-env.d.ts +25 -0
- package/dist/lib/cloud-env.d.ts.map +1 -0
- package/dist/lib/cloud-env.js +79 -0
- package/dist/lib/cloud-env.js.map +1 -0
- package/dist/lib/config.d.ts +116 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +195 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/context.d.ts +43 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/context.js +68 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/error-codes.d.ts +56 -0
- package/dist/lib/error-codes.d.ts.map +1 -0
- package/dist/lib/error-codes.js +211 -0
- package/dist/lib/error-codes.js.map +1 -0
- package/dist/lib/error-guidance/catalog.d.ts +648 -0
- package/dist/lib/error-guidance/catalog.d.ts.map +1 -0
- package/dist/lib/error-guidance/catalog.js +940 -0
- package/dist/lib/error-guidance/catalog.js.map +1 -0
- package/dist/lib/error-guidance/match.d.ts +3 -0
- package/dist/lib/error-guidance/match.d.ts.map +1 -0
- package/dist/lib/error-guidance/match.js +46 -0
- package/dist/lib/error-guidance/match.js.map +1 -0
- package/dist/lib/error-guidance/render.d.ts +5 -0
- package/dist/lib/error-guidance/render.d.ts.map +1 -0
- package/dist/lib/error-guidance/render.js +92 -0
- package/dist/lib/error-guidance/render.js.map +1 -0
- package/dist/lib/error-guidance/types.d.ts +76 -0
- package/dist/lib/error-guidance/types.d.ts.map +1 -0
- package/dist/lib/error-guidance/types.js +2 -0
- package/dist/lib/error-guidance/types.js.map +1 -0
- package/dist/lib/error-guidance/validate.d.ts +3 -0
- package/dist/lib/error-guidance/validate.d.ts.map +1 -0
- package/dist/lib/error-guidance/validate.js +59 -0
- package/dist/lib/error-guidance/validate.js.map +1 -0
- package/dist/lib/gofer-installer.d.ts +32 -0
- package/dist/lib/gofer-installer.d.ts.map +1 -0
- package/dist/lib/gofer-installer.js +589 -0
- package/dist/lib/gofer-installer.js.map +1 -0
- package/dist/lib/gofer-refresh.d.ts +46 -0
- package/dist/lib/gofer-refresh.d.ts.map +1 -0
- package/dist/lib/gofer-refresh.js +536 -0
- package/dist/lib/gofer-refresh.js.map +1 -0
- package/dist/lib/next-route-exports.d.ts +6 -0
- package/dist/lib/next-route-exports.d.ts.map +1 -0
- package/dist/lib/next-route-exports.js +127 -0
- package/dist/lib/next-route-exports.js.map +1 -0
- package/dist/lib/npm.d.ts +2 -0
- package/dist/lib/npm.d.ts.map +1 -0
- package/dist/lib/npm.js +4 -0
- package/dist/lib/npm.js.map +1 -0
- package/dist/lib/object-type-defaults.d.ts +4 -0
- package/dist/lib/object-type-defaults.d.ts.map +1 -0
- package/dist/lib/object-type-defaults.js +72 -0
- package/dist/lib/object-type-defaults.js.map +1 -0
- package/dist/lib/output.d.ts +35 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +166 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/profile.d.ts +52 -0
- package/dist/lib/profile.d.ts.map +1 -0
- package/dist/lib/profile.js +116 -0
- package/dist/lib/profile.js.map +1 -0
- package/dist/lib/project-manifest.d.ts +42 -0
- package/dist/lib/project-manifest.d.ts.map +1 -0
- package/dist/lib/project-manifest.js +191 -0
- package/dist/lib/project-manifest.js.map +1 -0
- package/dist/lib/resourceapi-bundle.d.ts +33 -0
- package/dist/lib/resourceapi-bundle.d.ts.map +1 -0
- package/dist/lib/resourceapi-bundle.js +79 -0
- package/dist/lib/resourceapi-bundle.js.map +1 -0
- package/dist/lib/runtime-contract.d.ts +84 -0
- package/dist/lib/runtime-contract.d.ts.map +1 -0
- package/dist/lib/runtime-contract.js +318 -0
- package/dist/lib/runtime-contract.js.map +1 -0
- package/dist/lib/schema-builder.d.ts +28 -0
- package/dist/lib/schema-builder.d.ts.map +1 -0
- package/dist/lib/schema-builder.js +69 -0
- package/dist/lib/schema-builder.js.map +1 -0
- package/dist/lib/tenant-context.d.ts +127 -0
- package/dist/lib/tenant-context.d.ts.map +1 -0
- package/dist/lib/tenant-context.js +573 -0
- package/dist/lib/tenant-context.js.map +1 -0
- package/dist/lib/update-check.d.ts +52 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +271 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/update-maintenance.d.ts +15 -0
- package/dist/lib/update-maintenance.d.ts.map +1 -0
- package/dist/lib/update-maintenance.js +187 -0
- package/dist/lib/update-maintenance.js.map +1 -0
- package/dist/lib/utils.d.ts +23 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +48 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/workflow-provisioning.d.ts +54 -0
- package/dist/lib/workflow-provisioning.d.ts.map +1 -0
- package/dist/lib/workflow-provisioning.js +281 -0
- package/dist/lib/workflow-provisioning.js.map +1 -0
- package/package.json +51 -0
- package/resources/gofer/.gofer-version +7 -0
- package/resources/gofer/agents-skills/0_gofer_start/SKILL.md +1287 -0
- package/resources/gofer/agents-skills/0a_problem_validation/SKILL.md +429 -0
- package/resources/gofer/agents-skills/10_gofer_cloud/SKILL.md +635 -0
- package/resources/gofer/agents-skills/1_gofer_research/SKILL.md +1159 -0
- package/resources/gofer/agents-skills/2_gofer_specify/SKILL.md +860 -0
- package/resources/gofer/agents-skills/3_gofer_plan/SKILL.md +886 -0
- package/resources/gofer/agents-skills/4_gofer_tasks/SKILL.md +748 -0
- package/resources/gofer/agents-skills/5_gofer_implement/SKILL.md +924 -0
- package/resources/gofer/agents-skills/6_gofer_validate/SKILL.md +2269 -0
- package/resources/gofer/agents-skills/7_gofer_save/SKILL.md +423 -0
- package/resources/gofer/agents-skills/7a_stakeholder_comms/SKILL.md +508 -0
- package/resources/gofer/agents-skills/8_gofer_branding/SKILL.md +315 -0
- package/resources/gofer/agents-skills/9_gofer_tests/SKILL.md +558 -0
- package/resources/gofer/agents-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
- package/resources/gofer/agents-skills/gofer_check_workspace/SKILL.md +119 -0
- package/resources/gofer/agents-skills/gofer_constitution/SKILL.md +612 -0
- package/resources/gofer/agents-skills/gofer_diagnose/SKILL.md +114 -0
- package/resources/gofer/agents-skills/gofer_eai_first_run/SKILL.md +397 -0
- package/resources/gofer/agents-skills/gofer_hydrate/SKILL.md +561 -0
- package/resources/gofer/agents-skills/gofer_personality/SKILL.md +44 -0
- package/resources/gofer/agents-skills/gofer_plan/SKILL.md +40 -0
- package/resources/gofer/agents-skills/gofer_side/SKILL.md +45 -0
- package/resources/gofer/agents-skills/gofer_spec_summary/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_tdd/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_vocabulary/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_zoom_out/SKILL.md +112 -0
- package/resources/gofer/bash-scripts/check-context-health.sh +365 -0
- package/resources/gofer/bash-scripts/check-persona-pack.sh +81 -0
- package/resources/gofer/bash-scripts/check-prerequisites.sh +168 -0
- package/resources/gofer/bash-scripts/common.sh +192 -0
- package/resources/gofer/bash-scripts/create-new-feature.sh +260 -0
- package/resources/gofer/bash-scripts/install-optional-tools.sh +270 -0
- package/resources/gofer/bash-scripts/log-stage.sh +224 -0
- package/resources/gofer/bash-scripts/mark-task-complete.sh +74 -0
- package/resources/gofer/bash-scripts/pipeline-state.sh +306 -0
- package/resources/gofer/bash-scripts/read-failed-approaches.sh +114 -0
- package/resources/gofer/bash-scripts/read-session-memories.sh +96 -0
- package/resources/gofer/bash-scripts/save-checkpoint.sh +407 -0
- package/resources/gofer/bash-scripts/setup-plan.sh +62 -0
- package/resources/gofer/bash-scripts/sync-implementation-status.sh +47 -0
- package/resources/gofer/bash-scripts/update-agent-context.sh +772 -0
- package/resources/gofer/bash-scripts/validate-artifact.sh +335 -0
- package/resources/gofer/bash-scripts/verify-task.sh +384 -0
- package/resources/gofer/bash-scripts/write-failed-approach.sh +110 -0
- package/resources/gofer/bash-scripts/write-periodic-checkpoint.sh +128 -0
- package/resources/gofer/bash-scripts/write-session-memory.sh +118 -0
- package/resources/gofer/claude-agents/assumption-tracker.md +168 -0
- package/resources/gofer/claude-agents/business-metrics-analyzer.md +169 -0
- package/resources/gofer/claude-agents/business-problem-validator.md +168 -0
- package/resources/gofer/claude-agents/codebase-analyzer.md +124 -0
- package/resources/gofer/claude-agents/codebase-locator.md +95 -0
- package/resources/gofer/claude-agents/codebase-pattern-finder.md +180 -0
- package/resources/gofer/claude-agents/comms-writer.md +158 -0
- package/resources/gofer/claude-agents/engineer-review.md +169 -0
- package/resources/gofer/claude-agents/implement-bug-triangulator.md +94 -0
- package/resources/gofer/claude-agents/implement-code-review-council.md +89 -0
- package/resources/gofer/claude-agents/implement-doc-writer.md +89 -0
- package/resources/gofer/claude-agents/implement-error-hardener.md +84 -0
- package/resources/gofer/claude-agents/implement-performance-explorer.md +95 -0
- package/resources/gofer/claude-agents/implement-test-diversifier.md +82 -0
- package/resources/gofer/claude-agents/implement-variant-generator.md +80 -0
- package/resources/gofer/claude-agents/multi-perspective-judge.md +114 -0
- package/resources/gofer/claude-agents/plan-api-comparator.md +90 -0
- package/resources/gofer/claude-agents/plan-architecture-diverger.md +100 -0
- package/resources/gofer/claude-agents/plan-data-model-stress-tester.md +95 -0
- package/resources/gofer/claude-agents/plan-migration-path-finder.md +95 -0
- package/resources/gofer/claude-agents/plan-refactor-rewrite-advisor.md +97 -0
- package/resources/gofer/claude-agents/research-dependency-evaluator.md +106 -0
- package/resources/gofer/claude-agents/research-horizon-scanner.md +100 -0
- package/resources/gofer/claude-agents/research-market-scanner.md +137 -0
- package/resources/gofer/claude-agents/research-perspective-multiplier.md +102 -0
- package/resources/gofer/claude-agents/scope-creep-detector.md +152 -0
- package/resources/gofer/claude-agents/specify-ambiguity-detector.md +95 -0
- package/resources/gofer/claude-agents/specify-journey-stress-tester.md +92 -0
- package/resources/gofer/claude-agents/tasks-cross-cutting-scanner.md +91 -0
- package/resources/gofer/claude-agents/tasks-rollback-planner.md +89 -0
- package/resources/gofer/claude-agents/validate-security-red-team.md +102 -0
- package/resources/gofer/claude-agents/validation-correctness.md +103 -0
- package/resources/gofer/claude-agents/validation-integration.md +129 -0
- package/resources/gofer/claude-agents/validation-performance.md +120 -0
- package/resources/gofer/claude-agents/validation-security.md +115 -0
- package/resources/gofer/claude-agents/validation-standards.md +151 -0
- package/resources/gofer/claude-agents/validation-test-quality.md +146 -0
- package/resources/gofer/claude-agents/visual-bounded-context-writer.md +40 -0
- package/resources/gofer/claude-agents/visual-c4-writer.md +45 -0
- package/resources/gofer/claude-agents/visual-erd-writer.md +34 -0
- package/resources/gofer/claude-agents/visual-heatmap-writer.md +63 -0
- package/resources/gofer/claude-agents/visual-risk-writer.md +64 -0
- package/resources/gofer/claude-commands/0_gofer_start.md +1282 -0
- package/resources/gofer/claude-commands/0a_problem_validation.md +424 -0
- package/resources/gofer/claude-commands/10_gofer_cloud.md +630 -0
- package/resources/gofer/claude-commands/1_gofer_research.md +1154 -0
- package/resources/gofer/claude-commands/2_gofer_specify.md +855 -0
- package/resources/gofer/claude-commands/3_gofer_plan.md +881 -0
- package/resources/gofer/claude-commands/4_gofer_tasks.md +743 -0
- package/resources/gofer/claude-commands/5_gofer_implement.md +919 -0
- package/resources/gofer/claude-commands/6_gofer_validate.md +2264 -0
- package/resources/gofer/claude-commands/7_gofer_save.md +418 -0
- package/resources/gofer/claude-commands/7a_stakeholder_comms.md +503 -0
- package/resources/gofer/claude-commands/8_gofer_branding.md +310 -0
- package/resources/gofer/claude-commands/9_gofer_tests.md +553 -0
- package/resources/gofer/claude-commands/gofer_bootstrap_workspace.md +143 -0
- package/resources/gofer/claude-commands/gofer_check_workspace.md +114 -0
- package/resources/gofer/claude-commands/gofer_constitution.md +607 -0
- package/resources/gofer/claude-commands/gofer_diagnose.md +109 -0
- package/resources/gofer/claude-commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/claude-commands/gofer_hydrate.md +556 -0
- package/resources/gofer/claude-commands/gofer_personality.md +39 -0
- package/resources/gofer/claude-commands/gofer_plan.md +35 -0
- package/resources/gofer/claude-commands/gofer_side.md +40 -0
- package/resources/gofer/claude-commands/gofer_spec_summary.md +107 -0
- package/resources/gofer/claude-commands/gofer_tdd.md +107 -0
- package/resources/gofer/claude-commands/gofer_vocabulary.md +107 -0
- package/resources/gofer/claude-commands/gofer_zoom_out.md +107 -0
- package/resources/gofer/claude-skills/eai-gofer/SKILL.md +56 -0
- package/resources/gofer/commands/.gitkeep +0 -0
- package/resources/gofer/commands/0_gofer_start.md +1299 -0
- package/resources/gofer/commands/0a_problem_validation.md +405 -0
- package/resources/gofer/commands/10_gofer_cloud.md +611 -0
- package/resources/gofer/commands/1_gofer_research.md +1135 -0
- package/resources/gofer/commands/2_gofer_specify.md +836 -0
- package/resources/gofer/commands/3_gofer_plan.md +862 -0
- package/resources/gofer/commands/4_gofer_tasks.md +724 -0
- package/resources/gofer/commands/5_gofer_implement.md +900 -0
- package/resources/gofer/commands/6_gofer_validate.md +2245 -0
- package/resources/gofer/commands/7_gofer_save.md +399 -0
- package/resources/gofer/commands/7a_stakeholder_comms.md +484 -0
- package/resources/gofer/commands/8_gofer_branding.md +291 -0
- package/resources/gofer/commands/9_gofer_tests.md +534 -0
- package/resources/gofer/commands/gofer_bootstrap_workspace.md +159 -0
- package/resources/gofer/commands/gofer_check_workspace.md +130 -0
- package/resources/gofer/commands/gofer_constitution.md +588 -0
- package/resources/gofer/commands/gofer_diagnose.md +89 -0
- package/resources/gofer/commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/commands/gofer_hydrate.md +537 -0
- package/resources/gofer/commands/gofer_personality.md +61 -0
- package/resources/gofer/commands/gofer_plan.md +51 -0
- package/resources/gofer/commands/gofer_side.md +56 -0
- package/resources/gofer/commands/gofer_spec_summary.md +87 -0
- package/resources/gofer/commands/gofer_tdd.md +87 -0
- package/resources/gofer/commands/gofer_vocabulary.md +87 -0
- package/resources/gofer/commands/gofer_zoom_out.md +87 -0
- package/resources/gofer/copilot-instructions/gofer-cost.instructions.md +13 -0
- package/resources/gofer/copilot-instructions/language-server.instructions.md +49 -0
- package/resources/gofer/copilot-instructions/typescript.instructions.md +47 -0
- package/resources/gofer/copilot-instructions/vscode-extension.instructions.md +46 -0
- package/resources/gofer/copilot-prompts/0_gofer_start.prompt.md +1308 -0
- package/resources/gofer/copilot-prompts/0a_problem_validation.prompt.md +429 -0
- package/resources/gofer/copilot-prompts/10_gofer_cloud.prompt.md +644 -0
- package/resources/gofer/copilot-prompts/1_gofer_research.prompt.md +1177 -0
- package/resources/gofer/copilot-prompts/2_gofer_specify.prompt.md +878 -0
- package/resources/gofer/copilot-prompts/3_gofer_plan.prompt.md +904 -0
- package/resources/gofer/copilot-prompts/4_gofer_tasks.prompt.md +766 -0
- package/resources/gofer/copilot-prompts/5_gofer_implement.prompt.md +942 -0
- package/resources/gofer/copilot-prompts/6_gofer_validate.prompt.md +2277 -0
- package/resources/gofer/copilot-prompts/7_gofer_save.prompt.md +433 -0
- package/resources/gofer/copilot-prompts/7a_stakeholder_comms.prompt.md +516 -0
- package/resources/gofer/copilot-prompts/8_gofer_branding.prompt.md +323 -0
- package/resources/gofer/copilot-prompts/9_gofer_tests.prompt.md +566 -0
- package/resources/gofer/copilot-prompts/gofer_bootstrap_workspace.prompt.md +161 -0
- package/resources/gofer/copilot-prompts/gofer_check_workspace.prompt.md +132 -0
- package/resources/gofer/copilot-prompts/gofer_constitution.prompt.md +621 -0
- package/resources/gofer/copilot-prompts/gofer_diagnose.prompt.md +127 -0
- package/resources/gofer/copilot-prompts/gofer_eai_first_run.prompt.md +410 -0
- package/resources/gofer/copilot-prompts/gofer_hydrate.prompt.md +571 -0
- package/resources/gofer/copilot-prompts/gofer_personality.prompt.md +57 -0
- package/resources/gofer/copilot-prompts/gofer_plan.prompt.md +53 -0
- package/resources/gofer/copilot-prompts/gofer_side.prompt.md +58 -0
- package/resources/gofer/copilot-prompts/gofer_spec_summary.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_tdd.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_vocabulary.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_zoom_out.prompt.md +125 -0
- package/resources/gofer/gemini/agents/assumption-tracker.md +171 -0
- package/resources/gofer/gemini/agents/business-metrics-analyzer.md +172 -0
- package/resources/gofer/gemini/agents/business-problem-validator.md +171 -0
- package/resources/gofer/gemini/agents/codebase-analyzer.md +127 -0
- package/resources/gofer/gemini/agents/codebase-locator.md +98 -0
- package/resources/gofer/gemini/agents/codebase-pattern-finder.md +183 -0
- package/resources/gofer/gemini/agents/comms-writer.md +161 -0
- package/resources/gofer/gemini/agents/engineer-review.md +172 -0
- package/resources/gofer/gemini/agents/implement-bug-triangulator.md +97 -0
- package/resources/gofer/gemini/agents/implement-code-review-council.md +92 -0
- package/resources/gofer/gemini/agents/implement-doc-writer.md +92 -0
- package/resources/gofer/gemini/agents/implement-error-hardener.md +87 -0
- package/resources/gofer/gemini/agents/implement-performance-explorer.md +98 -0
- package/resources/gofer/gemini/agents/implement-test-diversifier.md +85 -0
- package/resources/gofer/gemini/agents/implement-variant-generator.md +83 -0
- package/resources/gofer/gemini/agents/multi-perspective-judge.md +117 -0
- package/resources/gofer/gemini/agents/plan-api-comparator.md +93 -0
- package/resources/gofer/gemini/agents/plan-architecture-diverger.md +103 -0
- package/resources/gofer/gemini/agents/plan-data-model-stress-tester.md +98 -0
- package/resources/gofer/gemini/agents/plan-migration-path-finder.md +98 -0
- package/resources/gofer/gemini/agents/plan-refactor-rewrite-advisor.md +100 -0
- package/resources/gofer/gemini/agents/research-dependency-evaluator.md +109 -0
- package/resources/gofer/gemini/agents/research-horizon-scanner.md +103 -0
- package/resources/gofer/gemini/agents/research-market-scanner.md +140 -0
- package/resources/gofer/gemini/agents/research-perspective-multiplier.md +105 -0
- package/resources/gofer/gemini/agents/scope-creep-detector.md +155 -0
- package/resources/gofer/gemini/agents/specify-ambiguity-detector.md +98 -0
- package/resources/gofer/gemini/agents/specify-journey-stress-tester.md +95 -0
- package/resources/gofer/gemini/agents/tasks-cross-cutting-scanner.md +94 -0
- package/resources/gofer/gemini/agents/tasks-rollback-planner.md +92 -0
- package/resources/gofer/gemini/agents/validate-security-red-team.md +105 -0
- package/resources/gofer/gemini/agents/validation-correctness.md +106 -0
- package/resources/gofer/gemini/agents/validation-integration.md +132 -0
- package/resources/gofer/gemini/agents/validation-performance.md +123 -0
- package/resources/gofer/gemini/agents/validation-security.md +118 -0
- package/resources/gofer/gemini/agents/validation-standards.md +154 -0
- package/resources/gofer/gemini/agents/validation-test-quality.md +149 -0
- package/resources/gofer/gemini/agents/visual-bounded-context-writer.md +40 -0
- package/resources/gofer/gemini/agents/visual-c4-writer.md +44 -0
- package/resources/gofer/gemini/agents/visual-erd-writer.md +36 -0
- package/resources/gofer/gemini/agents/visual-heatmap-writer.md +63 -0
- package/resources/gofer/gemini/agents/visual-risk-writer.md +64 -0
- package/resources/gofer/gemini/commands/gofer/.gitkeep +0 -0
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.md +1282 -0
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.md +424 -0
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.md +630 -0
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.md +1154 -0
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.md +855 -0
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.md +881 -0
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.md +743 -0
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.md +919 -0
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.md +2264 -0
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.md +418 -0
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.md +503 -0
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.md +310 -0
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.md +553 -0
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.md +143 -0
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.md +114 -0
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.md +607 -0
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.md +109 -0
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.md +392 -0
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.md +556 -0
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_personality.md +39 -0
- package/resources/gofer/gemini/commands/gofer/gofer_personality.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_plan.md +35 -0
- package/resources/gofer/gemini/commands/gofer/gofer_plan.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_side.md +40 -0
- package/resources/gofer/gemini/commands/gofer/gofer_side.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/manifest.json +32 -0
- package/resources/gofer/gemini/extension.json +16 -0
- package/resources/gofer/github-agents/gofer-business.agent.md +20 -0
- package/resources/gofer/github-agents/gofer-implement.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-plan.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-research.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-validate.agent.md +10 -0
- package/resources/gofer/github-skills/eai-gofer/SKILL.md +56 -0
- package/resources/gofer/hook-scripts/agent-stop.mjs +655 -0
- package/resources/gofer/hook-scripts/log-stage-launch-time.mjs +77 -0
- package/resources/gofer/hook-scripts/post-tool-use.mjs +333 -0
- package/resources/gofer/hook-scripts/queued-input.mjs +188 -0
- package/resources/gofer/hook-scripts/session-lifecycle.mjs +93 -0
- package/resources/gofer/hook-scripts/user-prompt-submit.mjs +228 -0
- package/resources/gofer/instruction-templates/base/agents-base.md +37 -0
- package/resources/gofer/instruction-templates/base/claude-base.md +7 -0
- package/resources/gofer/instruction-templates/base/copilot-base.md +26 -0
- package/resources/gofer/instruction-templates/gofer/gofer-claude.md +5 -0
- package/resources/gofer/instruction-templates/gofer/gofer-copilot.md +9 -0
- package/resources/gofer/instruction-templates/languages/generic.md +7 -0
- package/resources/gofer/instruction-templates/languages/go.md +8 -0
- package/resources/gofer/instruction-templates/languages/java.md +8 -0
- package/resources/gofer/instruction-templates/languages/python.md +9 -0
- package/resources/gofer/instruction-templates/languages/rust.md +9 -0
- package/resources/gofer/instruction-templates/languages/typescript.md +19 -0
- package/resources/gofer/instruction-templates/workflow/principles.md +52 -0
- package/resources/gofer/memory/constitution.md +391 -0
- package/resources/gofer/memory/context-profiles.yaml +74 -0
- package/resources/gofer/memory/decisions/000-use-adr-for-decisions.md +67 -0
- package/resources/gofer/memory/decisions/001-di-framework.md +190 -0
- package/resources/gofer/memory/decisions/002-module-extraction.md +305 -0
- package/resources/gofer/memory/decisions/003-error-handling.md +368 -0
- package/resources/gofer/memory/decisions/004-cache-eviction.md +436 -0
- package/resources/gofer/memory/decisions/005-constants-management.md +520 -0
- package/resources/gofer/memory/decisions/README.md +129 -0
- package/resources/gofer/memory/diagrams/di-container.mmd +321 -0
- package/resources/gofer/memory/diagrams/extension-activation.mmd +184 -0
- package/resources/gofer/memory/diagrams/module-dependencies.mmd +264 -0
- package/resources/gofer/memory/gofer-model-policy.yaml +97 -0
- package/resources/gofer/memory/lessons.md +46 -0
- package/resources/gofer/node-scripts/canonical-descriptions.mjs +86 -0
- package/resources/gofer/node-scripts/check-version-alignment.mjs +131 -0
- package/resources/gofer/node-scripts/codex-doctor.mjs +425 -0
- package/resources/gofer/node-scripts/generate-commands.mjs +1366 -0
- package/resources/gofer/node-scripts/generate-issues.js +563 -0
- package/resources/gofer/node-scripts/gofer-closed-loop-audit.mjs +893 -0
- package/resources/gofer/node-scripts/gofer-loop-audit.mjs +541 -0
- package/resources/gofer/node-scripts/gofer-performance-report.mjs +306 -0
- package/resources/gofer/node-scripts/gofer-workspace-bootstrap.mjs +56 -0
- package/resources/gofer/node-scripts/gofer-workspace-check.mjs +56 -0
- package/resources/gofer/node-scripts/lib/ai-leverage-tagger.mjs +103 -0
- package/resources/gofer/node-scripts/lib/assemble-stakeholder-pack.mjs +114 -0
- package/resources/gofer/node-scripts/lib/marp-deck.mjs +87 -0
- package/resources/gofer/node-scripts/lib/mermaid-tabular-fallback.mjs +264 -0
- package/resources/gofer/node-scripts/lib/render-visual.mjs +54 -0
- package/resources/gofer/node-scripts/lib/validate-aliases.mjs +85 -0
- package/resources/gofer/node-scripts/lib/visual-counts.mjs +44 -0
- package/resources/gofer/node-scripts/lib/visual-pass-pipeline.mjs +134 -0
- package/resources/gofer/node-scripts/mermaid-export.mjs +72 -0
- package/resources/gofer/node-scripts/package-agent-plugin.mjs +940 -0
- package/resources/gofer/node-scripts/parse-stage-command.mjs +211 -0
- package/resources/gofer/node-scripts/schemas/.gitkeep +0 -0
- package/resources/gofer/node-scripts/schemas/stage-command.schema.json +72 -0
- package/resources/gofer/node-scripts/sync-extension-resources.mjs +110 -0
- package/resources/gofer/node-scripts/workspace-bootstrap-lib.mjs +1166 -0
- package/resources/gofer/powershell-scripts/install-optional-tools.ps1 +214 -0
- package/resources/gofer/references/platform/README.md +17 -0
- package/resources/gofer/references/platform/deployment-repo.md +9 -0
- package/resources/gofer/references/platform/eai-app-template.md +45 -0
- package/resources/gofer/references/platform/eai-config-driven-ui.md +156 -0
- package/resources/gofer/references/platform/eai-error-catalog.yaml +197 -0
- package/resources/gofer/references/platform/eai-repo-contract.md +134 -0
- package/resources/gofer/references/platform/eai-service-patterns.md +56 -0
- package/resources/gofer/references/platform/eai.md +85 -0
- package/resources/gofer/references/platform/vertical-template.md +49 -0
- package/resources/gofer/specify-commands/.gitkeep +0 -0
- package/resources/gofer/specify-commands/0_gofer_start.md +1299 -0
- package/resources/gofer/specify-commands/0a_problem_validation.md +405 -0
- package/resources/gofer/specify-commands/10_gofer_cloud.md +611 -0
- package/resources/gofer/specify-commands/1_gofer_research.md +1135 -0
- package/resources/gofer/specify-commands/2_gofer_specify.md +836 -0
- package/resources/gofer/specify-commands/3_gofer_plan.md +862 -0
- package/resources/gofer/specify-commands/4_gofer_tasks.md +724 -0
- package/resources/gofer/specify-commands/5_gofer_implement.md +900 -0
- package/resources/gofer/specify-commands/6_gofer_validate.md +2245 -0
- package/resources/gofer/specify-commands/7_gofer_save.md +399 -0
- package/resources/gofer/specify-commands/7a_stakeholder_comms.md +484 -0
- package/resources/gofer/specify-commands/8_gofer_branding.md +291 -0
- package/resources/gofer/specify-commands/9_gofer_tests.md +534 -0
- package/resources/gofer/specify-commands/gofer_bootstrap_workspace.md +159 -0
- package/resources/gofer/specify-commands/gofer_check_workspace.md +130 -0
- package/resources/gofer/specify-commands/gofer_constitution.md +588 -0
- package/resources/gofer/specify-commands/gofer_diagnose.md +89 -0
- package/resources/gofer/specify-commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/specify-commands/gofer_hydrate.md +537 -0
- package/resources/gofer/specify-commands/gofer_personality.md +61 -0
- package/resources/gofer/specify-commands/gofer_plan.md +51 -0
- package/resources/gofer/specify-commands/gofer_side.md +56 -0
- package/resources/gofer/specify-commands/gofer_spec_summary.md +87 -0
- package/resources/gofer/specify-commands/gofer_tdd.md +87 -0
- package/resources/gofer/specify-commands/gofer_vocabulary.md +87 -0
- package/resources/gofer/specify-commands/gofer_zoom_out.md +87 -0
- package/resources/gofer/system-skills/0_gofer_start/SKILL.md +1287 -0
- package/resources/gofer/system-skills/0a_problem_validation/SKILL.md +429 -0
- package/resources/gofer/system-skills/10_gofer_cloud/SKILL.md +635 -0
- package/resources/gofer/system-skills/1_gofer_research/SKILL.md +1159 -0
- package/resources/gofer/system-skills/2_gofer_specify/SKILL.md +860 -0
- package/resources/gofer/system-skills/3_gofer_plan/SKILL.md +886 -0
- package/resources/gofer/system-skills/4_gofer_tasks/SKILL.md +748 -0
- package/resources/gofer/system-skills/5_gofer_implement/SKILL.md +924 -0
- package/resources/gofer/system-skills/6_gofer_validate/SKILL.md +2269 -0
- package/resources/gofer/system-skills/7_gofer_save/SKILL.md +423 -0
- package/resources/gofer/system-skills/7a_stakeholder_comms/SKILL.md +508 -0
- package/resources/gofer/system-skills/8_gofer_branding/SKILL.md +315 -0
- package/resources/gofer/system-skills/9_gofer_tests/SKILL.md +558 -0
- package/resources/gofer/system-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
- package/resources/gofer/system-skills/gofer_check_workspace/SKILL.md +119 -0
- package/resources/gofer/system-skills/gofer_constitution/SKILL.md +612 -0
- package/resources/gofer/system-skills/gofer_diagnose/SKILL.md +114 -0
- package/resources/gofer/system-skills/gofer_eai_first_run/SKILL.md +397 -0
- package/resources/gofer/system-skills/gofer_hydrate/SKILL.md +561 -0
- package/resources/gofer/system-skills/gofer_personality/SKILL.md +44 -0
- package/resources/gofer/system-skills/gofer_plan/SKILL.md +40 -0
- package/resources/gofer/system-skills/gofer_side/SKILL.md +45 -0
- package/resources/gofer/system-skills/gofer_spec_summary/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_tdd/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_vocabulary/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_zoom_out/SKILL.md +112 -0
- package/resources/gofer/templates/agent-file-template.md +28 -0
- package/resources/gofer/templates/assumptions-template.md +94 -0
- package/resources/gofer/templates/audit-history-template.md +35 -0
- package/resources/gofer/templates/brand/brand-profile-template.json +45 -0
- package/resources/gofer/templates/brand/document-style-template.md +50 -0
- package/resources/gofer/templates/brand/marp-theme-template.css +58 -0
- package/resources/gofer/templates/brownfield-analysis.md +44 -0
- package/resources/gofer/templates/business-metrics-template.md +120 -0
- package/resources/gofer/templates/business-owner-summary-template.md +83 -0
- package/resources/gofer/templates/checklist-template.md +40 -0
- package/resources/gofer/templates/ciso-security-summary-template.md +70 -0
- package/resources/gofer/templates/context-bundle-template.md +76 -0
- package/resources/gofer/templates/contract-pack-template.md +109 -0
- package/resources/gofer/templates/cto-architecture-summary-template.md +83 -0
- package/resources/gofer/templates/discovery-template.md +92 -0
- package/resources/gofer/templates/eai-preflight-template.md +144 -0
- package/resources/gofer/templates/goal-ledger-template.json +69 -0
- package/resources/gofer/templates/gofer-model-policy.yaml +97 -0
- package/resources/gofer/templates/issues-template.md +106 -0
- package/resources/gofer/templates/journey/base-journey.md +95 -0
- package/resources/gofer/templates/journey/industry-variants.yaml +277 -0
- package/resources/gofer/templates/loop-contract-template.json +68 -0
- package/resources/gofer/templates/plan-template.md +215 -0
- package/resources/gofer/templates/problem-brief-template.md +85 -0
- package/resources/gofer/templates/proposal-review-template.md +79 -0
- package/resources/gofer/templates/research-template.md +222 -0
- package/resources/gofer/templates/reuse-scan-template.md +43 -0
- package/resources/gofer/templates/sequence-diagrams/option-spectrum.yaml +178 -0
- package/resources/gofer/templates/service-fit-matrix-template.md +29 -0
- package/resources/gofer/templates/session-handoff-template.md +172 -0
- package/resources/gofer/templates/spec-summary-template.md +118 -0
- package/resources/gofer/templates/spec-template.md +196 -0
- package/resources/gofer/templates/stakeholder-comms-template.md +330 -0
- package/resources/gofer/templates/stakeholder-review-index-template.md +54 -0
- package/resources/gofer/templates/tasks-template.md +323 -0
- package/resources/gofer/templates/ui-approval-template.md +32 -0
- package/resources/gofer/templates/ui-preview-brief-template.md +65 -0
- package/resources/gofer/templates/ui-review-log-template.md +11 -0
- package/resources/gofer/templates/visuals/.gitkeep +0 -0
- package/resources/gofer/templates/visuals/bounded-context-map.md +19 -0
- package/resources/gofer/templates/visuals/bounded-context-template.md +47 -0
- package/resources/gofer/templates/visuals/c4-container-template.md +38 -0
- package/resources/gofer/templates/visuals/c4-container.md +20 -0
- package/resources/gofer/templates/visuals/c4-context-template.md +46 -0
- package/resources/gofer/templates/visuals/capability-heatmap-template.md +54 -0
- package/resources/gofer/templates/visuals/data-model-erd-template.md +41 -0
- package/resources/gofer/templates/visuals/erd.md +19 -0
- package/resources/gofer/templates/visuals/impact-canvas.md +40 -0
- package/resources/gofer/templates/visuals/risk-heatmap-template.md +51 -0
- package/resources/gofer/templates/visuals/roi-projection.md +17 -0
- package/resources/gofer/templates/visuals/value-stream-asis.md +16 -0
- package/resources/gofer/templates/visuals/value-stream-tobe.md +18 -0
- package/resources/gofer/templates/working-backwards-prfaq-template.md +165 -0
- package/resources/linked-sources.json +25 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TB
|
|
3
|
+
subgraph "BEFORE: Monolithic Architecture (Technical Debt)"
|
|
4
|
+
Extension1["extension.ts<br/>1200 LOC<br/>❌ God Object"]
|
|
5
|
+
Migrator1["goferMigrator.ts<br/>2499 LOC<br/>❌ God Object"]
|
|
6
|
+
|
|
7
|
+
Extension1 --> Migrator1
|
|
8
|
+
Extension1 --> VSCode1[VSCode API]
|
|
9
|
+
Migrator1 --> VSCode1
|
|
10
|
+
Migrator1 --> FS1[File System]
|
|
11
|
+
|
|
12
|
+
style Extension1 fill:#ff6b6b,stroke:#c92a2a,stroke-width:3px
|
|
13
|
+
style Migrator1 fill:#ff6b6b,stroke:#c92a2a,stroke-width:3px
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
subgraph "AFTER: Modular Architecture (Refactored)"
|
|
17
|
+
subgraph "Core Infrastructure (Phase 1)"
|
|
18
|
+
Container["DI Container<br/>87 LOC"]
|
|
19
|
+
Logger["Logger Service<br/>147 LOC"]
|
|
20
|
+
|
|
21
|
+
Container -.->|registers| Logger
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
subgraph "Extension Services (Phase 3)"
|
|
25
|
+
Extension2["extension.ts<br/>~800 LOC<br/>✅ Orchestrator"]
|
|
26
|
+
Disposal["DisposalService<br/>~200 LOC"]
|
|
27
|
+
Events["EventHandlers<br/>~200 LOC"]
|
|
28
|
+
Init["InitializationService<br/>~300 LOC"]
|
|
29
|
+
Commands["CommandRegistry<br/>~250 LOC"]
|
|
30
|
+
State["StateManager<br/>~150 LOC"]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
subgraph "Migration Services (Phase 4)"
|
|
34
|
+
Migrator2["goferMigrator.ts<br/>467 LOC<br/>✅ Facade"]
|
|
35
|
+
Version["VersionDetector<br/>247 LOC"]
|
|
36
|
+
Upgrade["UpgradeService<br/>437 LOC"]
|
|
37
|
+
Resource["ResourceSyncer<br/>496 LOC"]
|
|
38
|
+
Path["PathMigrator<br/>332 LOC"]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
%% DI Container relationships
|
|
42
|
+
Container -.->|resolves| Disposal
|
|
43
|
+
Container -.->|resolves| Events
|
|
44
|
+
Container -.->|resolves| Init
|
|
45
|
+
Container -.->|resolves| Commands
|
|
46
|
+
Container -.->|resolves| State
|
|
47
|
+
Container -.->|resolves| Version
|
|
48
|
+
Container -.->|resolves| Upgrade
|
|
49
|
+
Container -.->|resolves| Resource
|
|
50
|
+
Container -.->|resolves| Path
|
|
51
|
+
|
|
52
|
+
%% Extension service dependencies
|
|
53
|
+
Extension2 --> Container
|
|
54
|
+
Extension2 --> Init
|
|
55
|
+
Extension2 --> State
|
|
56
|
+
Extension2 --> VSCode2[VSCode API]
|
|
57
|
+
|
|
58
|
+
Init --> Commands
|
|
59
|
+
Init --> Events
|
|
60
|
+
Disposal --> Logger
|
|
61
|
+
Events --> Logger
|
|
62
|
+
Init --> Logger
|
|
63
|
+
Commands --> Logger
|
|
64
|
+
State --> Logger
|
|
65
|
+
|
|
66
|
+
%% Migration service dependencies
|
|
67
|
+
Migrator2 --> Container
|
|
68
|
+
Migrator2 --> Version
|
|
69
|
+
Migrator2 --> Upgrade
|
|
70
|
+
Migrator2 --> Resource
|
|
71
|
+
Migrator2 --> Path
|
|
72
|
+
|
|
73
|
+
Upgrade --> Logger
|
|
74
|
+
Upgrade --> Version
|
|
75
|
+
Version --> Logger
|
|
76
|
+
Resource --> Logger
|
|
77
|
+
Resource --> FS2[File System]
|
|
78
|
+
Path --> Logger
|
|
79
|
+
Path --> FS2
|
|
80
|
+
|
|
81
|
+
%% External dependencies
|
|
82
|
+
Resource --> VSCode2
|
|
83
|
+
Path --> VSCode2
|
|
84
|
+
|
|
85
|
+
style Extension2 fill:#51cf66,stroke:#2f9e44,stroke-width:3px
|
|
86
|
+
style Migrator2 fill:#51cf66,stroke:#2f9e44,stroke-width:3px
|
|
87
|
+
style Logger fill:#339af0,stroke:#1864ab,stroke-width:2px
|
|
88
|
+
style Container fill:#339af0,stroke:#1864ab,stroke-width:2px
|
|
89
|
+
end
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
# Module Dependencies Diagram
|
|
93
|
+
|
|
94
|
+
This diagram shows the architecture transformation from monolithic God objects
|
|
95
|
+
to modular services.
|
|
96
|
+
|
|
97
|
+
## Metrics Comparison
|
|
98
|
+
|
|
99
|
+
| Metric | Before (Monolithic) | After (Modular) | Improvement |
|
|
100
|
+
| ------------------------ | ------------------- | --------------- | -------------- |
|
|
101
|
+
| **extension.ts LOC** | 1200 | ~800 | -33% (400 LOC) |
|
|
102
|
+
| **goferMigrator.ts LOC** | 2499 | 467 | -81% (2032 LOC) |
|
|
103
|
+
| **Total God object LOC** | 3699 | 1267 | -66% (2432 LOC) |
|
|
104
|
+
| **Service count** | 2 (monoliths) | 12 (focused) | +10 services |
|
|
105
|
+
| **Max service LOC** | 2499 | 496 | -80% |
|
|
106
|
+
| **Testable units** | 2 | 12 | 6x increase |
|
|
107
|
+
|
|
108
|
+
## Architecture Principles
|
|
109
|
+
|
|
110
|
+
### Before: Monolithic (Anti-Patterns)
|
|
111
|
+
|
|
112
|
+
❌ **God Objects**: Single files with 1000+ LOC and 20+ responsibilities
|
|
113
|
+
|
|
114
|
+
- `extension.ts`: Initialization + Events + Commands + Disposal
|
|
115
|
+
- `goferMigrator.ts`: Detection + Orchestration + Resources + Paths
|
|
116
|
+
|
|
117
|
+
❌ **High Coupling**: Direct instantiation with `new`, global state
|
|
118
|
+
|
|
119
|
+
❌ **Low Cohesion**: Unrelated functions in same file
|
|
120
|
+
|
|
121
|
+
❌ **Difficult Testing**: Too many mocks needed, can't test parts in isolation
|
|
122
|
+
|
|
123
|
+
### After: Modular (Best Practices)
|
|
124
|
+
|
|
125
|
+
✅ **Single Responsibility**: Each service has one focused purpose
|
|
126
|
+
|
|
127
|
+
- `VersionDetector`: Only format detection
|
|
128
|
+
- `UpgradeService`: Only orchestration
|
|
129
|
+
- `ResourceSyncer`: Only file operations
|
|
130
|
+
- `PathMigrator`: Only path migration
|
|
131
|
+
|
|
132
|
+
✅ **Dependency Injection**: Container manages lifecycles, explicit dependencies
|
|
133
|
+
|
|
134
|
+
✅ **Facade Pattern**: `extension.ts` and `goferMigrator.ts` become thin
|
|
135
|
+
orchestrators
|
|
136
|
+
|
|
137
|
+
✅ **Testability**: Services tested independently with mocked dependencies
|
|
138
|
+
|
|
139
|
+
## Service Responsibilities
|
|
140
|
+
|
|
141
|
+
### Core Infrastructure (Phase 1)
|
|
142
|
+
|
|
143
|
+
| Service | Responsibility | LOC | Dependencies |
|
|
144
|
+
| --------- | ----------------------------- | --- | ------------ |
|
|
145
|
+
| Container | DI service registration | 87 | TSyringe |
|
|
146
|
+
| Logger | Structured logging | 147 | VSCode API |
|
|
147
|
+
|
|
148
|
+
### Extension Services (Phase 3)
|
|
149
|
+
|
|
150
|
+
| Service | Responsibility | LOC | Dependencies |
|
|
151
|
+
| -------------- | ------------------------------- | ---- | -------------------- |
|
|
152
|
+
| extension.ts | Orchestrates activation | ~800 | All services |
|
|
153
|
+
| Disposal | Resource cleanup | ~200 | Logger |
|
|
154
|
+
| EventHandlers | Workspace event listeners | ~200 | Logger |
|
|
155
|
+
| Init | Workspace initialization | ~300 | Logger, Commands |
|
|
156
|
+
| CommandRegistry| Command registration | ~250 | Logger |
|
|
157
|
+
| StateManager | Global state management | ~150 | Logger |
|
|
158
|
+
|
|
159
|
+
### Migration Services (Phase 4)
|
|
160
|
+
|
|
161
|
+
| Service | Responsibility | LOC | Dependencies |
|
|
162
|
+
| ---------------- | ------------------------------- | ---- | -------------------- |
|
|
163
|
+
| goferMigrator.ts | Facade for migration services | 467 | All migration svcs |
|
|
164
|
+
| VersionDetector | Format detection | 247 | Logger |
|
|
165
|
+
| UpgradeService | Upgrade orchestration | 437 | Logger, Version |
|
|
166
|
+
| ResourceSyncer | File/resource sync | 496 | Logger |
|
|
167
|
+
| PathMigrator | Path reference migration | 332 | Logger |
|
|
168
|
+
|
|
169
|
+
## Dependency Layers
|
|
170
|
+
|
|
171
|
+
### Layer 1: Foundation
|
|
172
|
+
|
|
173
|
+
- **Container**: Manages all service lifecycles
|
|
174
|
+
- **Logger**: Used by all services (zero dependencies)
|
|
175
|
+
|
|
176
|
+
### Layer 2: Core Services
|
|
177
|
+
|
|
178
|
+
- **StateManager**: Maintains extension state (depends: Logger)
|
|
179
|
+
- **DisposalService**: Cleans up resources (depends: Logger)
|
|
180
|
+
|
|
181
|
+
### Layer 3: Feature Services
|
|
182
|
+
|
|
183
|
+
- **Extension Services**: EventHandlers, InitializationService, CommandRegistry
|
|
184
|
+
(depend: Logger)
|
|
185
|
+
- **Migration Services**: VersionDetector, UpgradeService, ResourceSyncer,
|
|
186
|
+
PathMigrator (depend: Logger, VersionDetector)
|
|
187
|
+
|
|
188
|
+
### Layer 4: Facades
|
|
189
|
+
|
|
190
|
+
- **extension.ts**: Orchestrates extension lifecycle
|
|
191
|
+
- **goferMigrator.ts**: Orchestrates migration operations
|
|
192
|
+
|
|
193
|
+
## Benefits of Refactoring
|
|
194
|
+
|
|
195
|
+
### Code Quality
|
|
196
|
+
|
|
197
|
+
- ✅ **Reduced complexity**: Max 496 LOC per file vs. 2499 LOC
|
|
198
|
+
- ✅ **Improved cohesion**: Services have single, clear purpose
|
|
199
|
+
- ✅ **Better naming**: Service names describe responsibility
|
|
200
|
+
|
|
201
|
+
### Maintainability
|
|
202
|
+
|
|
203
|
+
- ✅ **Easier navigation**: Find code by service (e.g., "path migration" →
|
|
204
|
+
`PathMigrator.ts`)
|
|
205
|
+
- ✅ **Isolated changes**: Update one service without touching others
|
|
206
|
+
- ✅ **Reduced merge conflicts**: Team works on different services
|
|
207
|
+
|
|
208
|
+
### Testing
|
|
209
|
+
|
|
210
|
+
- ✅ **Unit testable**: Mock dependencies via DI container
|
|
211
|
+
- ✅ **Integration testable**: Test service interactions
|
|
212
|
+
- ✅ **Faster tests**: Test one service at a time (not entire God object)
|
|
213
|
+
|
|
214
|
+
### Development Velocity
|
|
215
|
+
|
|
216
|
+
- ✅ **Parallel development**: Different developers on different services
|
|
217
|
+
- ✅ **Faster onboarding**: Understand one 300 LOC service vs. 2500 LOC file
|
|
218
|
+
- ✅ **Easier reviews**: 200-500 LOC PRs vs. 1000+ LOC changes
|
|
219
|
+
|
|
220
|
+
## Anti-Patterns Eliminated
|
|
221
|
+
|
|
222
|
+
### Before
|
|
223
|
+
|
|
224
|
+
1. **Blob/God Object**: 2499 LOC monolith
|
|
225
|
+
2. **Lava Flow**: Unclear which code is used
|
|
226
|
+
3. **Spaghetti Code**: Tangled control flow
|
|
227
|
+
4. **Golden Hammer**: Everything in one file
|
|
228
|
+
|
|
229
|
+
### After
|
|
230
|
+
|
|
231
|
+
1. **Single Responsibility**: Each service focused
|
|
232
|
+
2. **Dependency Injection**: Explicit dependencies
|
|
233
|
+
3. **Facade Pattern**: Thin orchestrators
|
|
234
|
+
4. **Service Layer**: Clean separation of concerns
|
|
235
|
+
|
|
236
|
+
## Future Phases
|
|
237
|
+
|
|
238
|
+
### Phase 2: Cache Services (Pending)
|
|
239
|
+
|
|
240
|
+
Will add:
|
|
241
|
+
|
|
242
|
+
- `SpecCache` (spec file caching)
|
|
243
|
+
- `MemoryCache` (memory indexing)
|
|
244
|
+
|
|
245
|
+
Both follow same pattern: <600 LOC, depend on Logger, registered in Container.
|
|
246
|
+
|
|
247
|
+
### Future Extraction Opportunities
|
|
248
|
+
|
|
249
|
+
If any service grows >500 LOC:
|
|
250
|
+
|
|
251
|
+
- Extract sub-services using same pattern
|
|
252
|
+
- Maintain <600 LOC limit per file
|
|
253
|
+
- Apply facade pattern if needed
|
|
254
|
+
|
|
255
|
+
## Related ADRs
|
|
256
|
+
|
|
257
|
+
- **ADR-001**: DI Framework (TSyringe)
|
|
258
|
+
- **ADR-002**: Module Extraction Strategy (Phased with Facades)
|
|
259
|
+
- **ADR-003**: Error Handling (Logger service)
|
|
260
|
+
|
|
261
|
+
## Related Tasks
|
|
262
|
+
|
|
263
|
+
- **Phase 3**: T020-T025 (extension.ts refactoring)
|
|
264
|
+
- **Phase 4**: T026-T030 (goferMigrator.ts refactoring)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Gofer model policy for this repository.
|
|
2
|
+
#
|
|
3
|
+
# This repo copy is user-owned. `gofer:bootstrap-workspace` and VS Code
|
|
4
|
+
# `gofer.initialize` create it when missing, but should not overwrite local
|
|
5
|
+
# edits. See `.specify/templates/gofer-model-policy.yaml` for the shipped
|
|
6
|
+
# default.
|
|
7
|
+
#
|
|
8
|
+
# Last verified against public provider docs: 2026-05-30.
|
|
9
|
+
version: 1
|
|
10
|
+
lastVerified: "2026-05-30"
|
|
11
|
+
profile: balanced
|
|
12
|
+
|
|
13
|
+
principles:
|
|
14
|
+
- Use the cheapest capable model first for repetitive scouting, extraction, and summarization.
|
|
15
|
+
- Use the default workhorse model for normal implementation, synthesis, and validation.
|
|
16
|
+
- Use the best available model for security, architecture, release-critical review, or repeated failure.
|
|
17
|
+
- Use provider prompt/context caching only for stable, non-secret prefixes.
|
|
18
|
+
- Compact or checkpoint after large research, planning, implementation, and validation bursts.
|
|
19
|
+
|
|
20
|
+
contextPolicy:
|
|
21
|
+
healthyBelowPercent: 40
|
|
22
|
+
summarizeAtPercent: 55
|
|
23
|
+
compactAtPercent: 70
|
|
24
|
+
checkpointAtPercent: 85
|
|
25
|
+
durableArtifact: .specify/specs/{feature}/context-bundle.md
|
|
26
|
+
|
|
27
|
+
surfaces:
|
|
28
|
+
claude:
|
|
29
|
+
simple:
|
|
30
|
+
model: claude-haiku-4-5
|
|
31
|
+
claudeCodeAlias: haiku
|
|
32
|
+
contextWindowTokens: 200000
|
|
33
|
+
useFor: scouting, extraction, summarization, low-risk helpers
|
|
34
|
+
medium:
|
|
35
|
+
model: claude-sonnet-4-6
|
|
36
|
+
claudeCodeAlias: sonnet
|
|
37
|
+
contextWindowTokens: 1000000
|
|
38
|
+
useFor: default implementation, synthesis, validation, everyday coding
|
|
39
|
+
hard:
|
|
40
|
+
model: claude-opus-4-8
|
|
41
|
+
claudeCodeAlias: opus
|
|
42
|
+
contextWindowTokens: 1000000
|
|
43
|
+
useFor: hardest bugs, security review, architecture arbitration, release-critical validation
|
|
44
|
+
codex:
|
|
45
|
+
simple:
|
|
46
|
+
model: gpt-5.4-mini
|
|
47
|
+
reasoningEffort: low
|
|
48
|
+
contextWindowTokens: 400000
|
|
49
|
+
useFor: simple coding, focused edits, routine test fixes
|
|
50
|
+
mechanical:
|
|
51
|
+
model: gpt-5.4-nano
|
|
52
|
+
reasoningEffort: low
|
|
53
|
+
contextWindowTokens: 400000
|
|
54
|
+
useFor: locate, classify, summarize, transform text
|
|
55
|
+
medium:
|
|
56
|
+
model: gpt-5.4
|
|
57
|
+
reasoningEffort: medium
|
|
58
|
+
contextWindowTokens: 1000000
|
|
59
|
+
useFor: default planning, implementation, research synthesis
|
|
60
|
+
hard:
|
|
61
|
+
model: gpt-5.3-codex
|
|
62
|
+
reasoningEffort: high
|
|
63
|
+
contextWindowTokens: 400000
|
|
64
|
+
useFor: agentic terminal coding, tool-heavy debugging, code review
|
|
65
|
+
arbiter:
|
|
66
|
+
model: gpt-5.5
|
|
67
|
+
reasoningEffort: high
|
|
68
|
+
contextWindowTokens: 1050000
|
|
69
|
+
useFor: broad frontier reasoning, complex architecture, final arbitration
|
|
70
|
+
gemini:
|
|
71
|
+
simple:
|
|
72
|
+
model: gemini-3.1-flash-lite
|
|
73
|
+
contextWindowTokens: 1000000
|
|
74
|
+
useFor: cheap large-context scans, summarization, extraction
|
|
75
|
+
medium:
|
|
76
|
+
model: gemini-3-flash-preview
|
|
77
|
+
contextWindowTokens: 1000000
|
|
78
|
+
useFor: default research and broad synthesis when cost matters
|
|
79
|
+
hard:
|
|
80
|
+
model: gemini-3.1-pro-preview
|
|
81
|
+
contextWindowTokens: 1000000
|
|
82
|
+
useFor: large-context architecture, cross-repo reasoning, high-risk research
|
|
83
|
+
highThroughputCoding:
|
|
84
|
+
model: gemini-3.5-flash
|
|
85
|
+
contextWindowTokens: 1000000
|
|
86
|
+
useFor: fast tool/coding workflows when account pricing makes it worthwhile
|
|
87
|
+
copilot:
|
|
88
|
+
simple:
|
|
89
|
+
model: Auto
|
|
90
|
+
useFor: default Copilot Chat, routine coding, completion, and quick fixes
|
|
91
|
+
medium:
|
|
92
|
+
model: Auto
|
|
93
|
+
useFor: normal Gofer stage prompts and workspace questions
|
|
94
|
+
hard:
|
|
95
|
+
model: "Best available in picker: GPT-5.3-Codex, GPT-5.5, Claude Opus, or Gemini Pro"
|
|
96
|
+
useFor: explicit hard review, security, architecture, or release gates
|
|
97
|
+
note: Copilot model availability depends on plan, organization policy, client, and feature surface.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Gofer Lessons Learned
|
|
2
|
+
|
|
3
|
+
Cross-cutting lessons captured from incidents, corrections, and
|
|
4
|
+
post-implementation reviews. Review at session start; update after any
|
|
5
|
+
correction.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 2026-04-25: Codex skill-budget hygiene
|
|
10
|
+
|
|
11
|
+
**Incident**: Codex CLI logged `Exceeded skills context budget of 2%` and
|
|
12
|
+
dropped descriptions of all installed skills. Investigation revealed 11
|
|
13
|
+
duplicate Gofer skill bundles (one per Anthropic-tenant) plus 5 system skills,
|
|
14
|
+
totaling ~30KB of skill descriptions across 181 SKILL.md files.
|
|
15
|
+
|
|
16
|
+
**Root cause**: Codex preloads ~2% of context for skill name+description text.
|
|
17
|
+
Over-budget triggers a global drop, not per-bundle eviction. Multiple tenanted
|
|
18
|
+
copies multiplied the description footprint.
|
|
19
|
+
|
|
20
|
+
**Fix**:
|
|
21
|
+
|
|
22
|
+
1. Disabled 176 redundant `[[skills.config]] enabled = false` entries in
|
|
23
|
+
`~/.codex/config.toml` (backup: `.bak.2026-04-25`).
|
|
24
|
+
2. Shipped `gofer codex doctor` (read-only) to detect this proactively.
|
|
25
|
+
3. Source-of-truth generator enforces ≤140-char descriptions per stage and ≤2KB
|
|
26
|
+
cumulative budget.
|
|
27
|
+
4. Flat non-tenanted layout: `.agents/skills/gofer/<stage>/SKILL.md` (one bundle
|
|
28
|
+
per stage, no per-tenant duplication).
|
|
29
|
+
|
|
30
|
+
**Lessons**:
|
|
31
|
+
|
|
32
|
+
- The official Codex disable knob is per-skill
|
|
33
|
+
`[[skills.config]] enabled = false`, NOT a budget percentage. The fictional
|
|
34
|
+
`skills_context_budget_percent` key DOES NOT EXIST.
|
|
35
|
+
- Codex discovers `.agents/skills/`, not `.claude/skills/`. They are separate
|
|
36
|
+
distribution paths.
|
|
37
|
+
- Read-only diagnostics (`gofer codex doctor`) are safer than auto-remediation:
|
|
38
|
+
never silently mutate user config.
|
|
39
|
+
- Description discipline matters: 16 stages × 128 bytes/desc = 2KB headroom; one
|
|
40
|
+
verbose description blows the entire budget for everyone.
|
|
41
|
+
|
|
42
|
+
**References**:
|
|
43
|
+
|
|
44
|
+
- Spec FR-006, FR-008, FR-009, FR-011 (negative)
|
|
45
|
+
- ADR-001 (Codex skill discovery path)
|
|
46
|
+
- `.specify/scripts/node/codex-doctor.mjs`
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* canonical-descriptions.mjs
|
|
3
|
+
* Canonical descriptions for all Gofer pipeline, utility, and helper commands
|
|
4
|
+
* that participate in the Codex skill-budget inventory.
|
|
5
|
+
* Each description must be ≤140 chars and the cumulative UTF-8 byte total
|
|
6
|
+
* must not exceed 2048 bytes (Codex skill-budget constraint).
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const CANONICAL_DESCRIPTIONS = {
|
|
10
|
+
'0_gofer_start':
|
|
11
|
+
'Define the business problem Gofer should solve.',
|
|
12
|
+
'0a_problem_validation':
|
|
13
|
+
'Validate the problem with 5 Whys and stakeholder mapping.',
|
|
14
|
+
'1_gofer_research':
|
|
15
|
+
'Research the codebase, integrations, and technology landscape.',
|
|
16
|
+
'2_gofer_specify':
|
|
17
|
+
'Generate a feature spec from research and approved review.',
|
|
18
|
+
'3_gofer_plan':
|
|
19
|
+
'Create the technical plan, architecture, data model, and contracts.',
|
|
20
|
+
'4_gofer_tasks':
|
|
21
|
+
'Break the plan into dependency-ordered, parallel tasks.',
|
|
22
|
+
'5_gofer_implement':
|
|
23
|
+
'Execute tasks phase by phase with feedback and review.',
|
|
24
|
+
'6_gofer_validate':
|
|
25
|
+
'Validate the work with scoring, blast-radius analysis, and review.',
|
|
26
|
+
'7_gofer_save':
|
|
27
|
+
'Save session state for later resumption.',
|
|
28
|
+
'7a_stakeholder_comms':
|
|
29
|
+
'Generate release notes, demos, and change briefs for stakeholders.',
|
|
30
|
+
'8_gofer_branding':
|
|
31
|
+
'Brand Gofer templates and stakeholder documents.',
|
|
32
|
+
'9_gofer_tests':
|
|
33
|
+
'Generate tests from four perspectives for a target component.',
|
|
34
|
+
'10_gofer_cloud':
|
|
35
|
+
'Deploy and configure Gofer cloud integration.',
|
|
36
|
+
gofer_constitution:
|
|
37
|
+
'Create or update the project constitution.',
|
|
38
|
+
gofer_hydrate:
|
|
39
|
+
'Reverse-engineer a specification from existing code.',
|
|
40
|
+
'gofer:check-workspace':
|
|
41
|
+
'Check whether the repo scaffold is missing or stale.',
|
|
42
|
+
'gofer:bootstrap-workspace':
|
|
43
|
+
'Create or update the repo-owned Gofer scaffold.',
|
|
44
|
+
'gofer:eai-first-run':
|
|
45
|
+
'Check EAI CLI, login, tenant, template, and Gofer readiness.',
|
|
46
|
+
'gofer:vocabulary':
|
|
47
|
+
'Extract domain terms into a canonical glossary.',
|
|
48
|
+
'gofer:diagnose':
|
|
49
|
+
'Run a structured reproduce-minimize-instrument-fix loop.',
|
|
50
|
+
'gofer:tdd':
|
|
51
|
+
'Guide a red-green-refactor loop tied to acceptance criteria.',
|
|
52
|
+
'gofer:spec-summary':
|
|
53
|
+
'Generate a business summary of feature value and scope.',
|
|
54
|
+
'gofer:zoom-out':
|
|
55
|
+
'Show how the current feature fits broader system boundaries.',
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Validates that all descriptions satisfy the Codex budget constraints:
|
|
60
|
+
* - Each description is ≤140 chars
|
|
61
|
+
* - Cumulative UTF-8 byte total ≤2048 bytes
|
|
62
|
+
*
|
|
63
|
+
* @throws {Error} if any constraint is violated
|
|
64
|
+
*/
|
|
65
|
+
export function validateDescriptions() {
|
|
66
|
+
const entries = Object.entries(CANONICAL_DESCRIPTIONS);
|
|
67
|
+
let totalBytes = 0;
|
|
68
|
+
|
|
69
|
+
for (const [name, description] of entries) {
|
|
70
|
+
if (description.length > 140) {
|
|
71
|
+
throw new Error(
|
|
72
|
+
`Description for '${name}' exceeds 140 chars: ${description.length} chars`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
const bytes = Buffer.byteLength(description, 'utf8');
|
|
76
|
+
totalBytes += bytes;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (totalBytes > 2048) {
|
|
80
|
+
throw new Error(
|
|
81
|
+
`Cumulative UTF-8 byte total exceeds 2048 bytes: ${totalBytes} bytes`
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return { count: entries.length, totalBytes };
|
|
86
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = path.dirname(__filename);
|
|
8
|
+
const DEFAULT_ROOT = path.resolve(__dirname, '..', '..', '..');
|
|
9
|
+
|
|
10
|
+
function parseArgs(argv) {
|
|
11
|
+
const args = { root: DEFAULT_ROOT, json: false };
|
|
12
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
13
|
+
const arg = argv[index];
|
|
14
|
+
if (arg === '--root') {
|
|
15
|
+
args.root = path.resolve(argv[index + 1] ?? '');
|
|
16
|
+
index += 1;
|
|
17
|
+
} else if (arg === '--json') {
|
|
18
|
+
args.json = true;
|
|
19
|
+
} else if (arg === '--help' || arg === '-h') {
|
|
20
|
+
args.help = true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return args;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function readJson(root, relativePath) {
|
|
27
|
+
const fullPath = path.join(root, relativePath);
|
|
28
|
+
const content = fs.readFileSync(fullPath, 'utf8');
|
|
29
|
+
return JSON.parse(content);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function readText(root, relativePath) {
|
|
33
|
+
return fs.readFileSync(path.join(root, relativePath), 'utf8').trim();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function collectVersions(root) {
|
|
37
|
+
const codexPluginManifest = readJson(root, '.codex-plugin/plugin.json');
|
|
38
|
+
const releaseAssetVersion =
|
|
39
|
+
/eai-gofer-agent-plugin-([^/]+)\.zip$/.exec(
|
|
40
|
+
codexPluginManifest.gofer?.releaseAsset ?? ''
|
|
41
|
+
)?.[1] ?? 'missing';
|
|
42
|
+
|
|
43
|
+
return [
|
|
44
|
+
{
|
|
45
|
+
name: 'root package',
|
|
46
|
+
path: 'package.json',
|
|
47
|
+
version: readJson(root, 'package.json').version,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'root package lock',
|
|
51
|
+
path: 'package-lock.json',
|
|
52
|
+
version: readJson(root, 'package-lock.json').version,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'extension package',
|
|
56
|
+
path: 'extension/package.json',
|
|
57
|
+
version: readJson(root, 'extension/package.json').version,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'extension package lock',
|
|
61
|
+
path: 'extension/package-lock.json',
|
|
62
|
+
version: readJson(root, 'extension/package-lock.json').version,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Claude plugin manifest',
|
|
66
|
+
path: '.claude-plugin/plugin.json',
|
|
67
|
+
version: readJson(root, '.claude-plugin/plugin.json').version,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'Codex plugin manifest',
|
|
71
|
+
path: '.codex-plugin/plugin.json',
|
|
72
|
+
version: codexPluginManifest.version,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'Codex plugin release asset',
|
|
76
|
+
path: '.codex-plugin/plugin.json#gofer.releaseAsset',
|
|
77
|
+
version: releaseAssetVersion,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'workspace version marker',
|
|
81
|
+
path: '.specify/.gofer-version',
|
|
82
|
+
version: readText(root, '.specify/.gofer-version'),
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function checkVersionAlignment(root) {
|
|
88
|
+
const entries = collectVersions(root);
|
|
89
|
+
const uniqueVersions = [...new Set(entries.map((entry) => entry.version))].sort();
|
|
90
|
+
const aligned = uniqueVersions.length === 1;
|
|
91
|
+
return {
|
|
92
|
+
aligned,
|
|
93
|
+
expectedVersion: aligned ? uniqueVersions[0] : undefined,
|
|
94
|
+
versions: entries,
|
|
95
|
+
mismatches: aligned ? [] : entries,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function formatMarkdown(result) {
|
|
100
|
+
const lines = ['# Gofer Version Alignment', ''];
|
|
101
|
+
lines.push(`Status: ${result.aligned ? 'PASS' : 'FAIL'}`);
|
|
102
|
+
if (result.expectedVersion) {
|
|
103
|
+
lines.push(`Version: ${result.expectedVersion}`);
|
|
104
|
+
}
|
|
105
|
+
lines.push('', '| Source | Path | Version |', '| --- | --- | --- |');
|
|
106
|
+
for (const entry of result.versions) {
|
|
107
|
+
lines.push(`| ${entry.name} | \`${entry.path}\` | \`${entry.version ?? 'missing'}\` |`);
|
|
108
|
+
}
|
|
109
|
+
return lines.join('\n');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (__filename === path.resolve(process.argv[1] ?? '')) {
|
|
113
|
+
const args = parseArgs(process.argv.slice(2));
|
|
114
|
+
if (args.help) {
|
|
115
|
+
console.log(`Usage: node .specify/scripts/node/check-version-alignment.mjs [--root <path>] [--json]
|
|
116
|
+
|
|
117
|
+
Checks that root package, extension package, plugin manifests, and .gofer-version
|
|
118
|
+
all carry the same Gofer release version.`);
|
|
119
|
+
process.exit(0);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const result = checkVersionAlignment(args.root);
|
|
123
|
+
if (args.json) {
|
|
124
|
+
console.log(JSON.stringify(result, null, 2));
|
|
125
|
+
} else {
|
|
126
|
+
console.log(formatMarkdown(result));
|
|
127
|
+
}
|
|
128
|
+
process.exit(result.aligned ? 0 : 1);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { checkVersionAlignment, collectVersions, formatMarkdown, parseArgs };
|