@jeger-ai/opengantry 1.0.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 +235 -0
- package/NOTICE +16 -0
- package/README.md +337 -0
- package/dist/cli/commands/arch.d.ts +19 -0
- package/dist/cli/commands/arch.d.ts.map +1 -0
- package/dist/cli/commands/arch.js +86 -0
- package/dist/cli/commands/arch.js.map +1 -0
- package/dist/cli/commands/check.d.ts +2 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +16 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +12 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +40 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.d.ts +18 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +185 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/legislate.d.ts +21 -0
- package/dist/cli/commands/legislate.d.ts.map +1 -0
- package/dist/cli/commands/legislate.js +143 -0
- package/dist/cli/commands/legislate.js.map +1 -0
- package/dist/cli/commands/mcp-serve.d.ts +2 -0
- package/dist/cli/commands/mcp-serve.d.ts.map +1 -0
- package/dist/cli/commands/mcp-serve.js +14 -0
- package/dist/cli/commands/mcp-serve.js.map +1 -0
- package/dist/cli/commands/metrics.d.ts +6 -0
- package/dist/cli/commands/metrics.d.ts.map +1 -0
- package/dist/cli/commands/metrics.js +20 -0
- package/dist/cli/commands/metrics.js.map +1 -0
- package/dist/cli/commands/mission.d.ts +3 -0
- package/dist/cli/commands/mission.d.ts.map +1 -0
- package/dist/cli/commands/mission.js +29 -0
- package/dist/cli/commands/mission.js.map +1 -0
- package/dist/cli/commands/onboarding.d.ts +2 -0
- package/dist/cli/commands/onboarding.d.ts.map +1 -0
- package/dist/cli/commands/onboarding.js +85 -0
- package/dist/cli/commands/onboarding.js.map +1 -0
- package/dist/cli/commands/runtime.d.ts +19 -0
- package/dist/cli/commands/runtime.d.ts.map +1 -0
- package/dist/cli/commands/runtime.js +101 -0
- package/dist/cli/commands/runtime.js.map +1 -0
- package/dist/cli/commands/start.d.ts +4 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +3 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +8 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +65 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/teacher.d.ts +11 -0
- package/dist/cli/commands/teacher.d.ts.map +1 -0
- package/dist/cli/commands/teacher.js +48 -0
- package/dist/cli/commands/teacher.js.map +1 -0
- package/dist/cli/commands/triage.d.ts +10 -0
- package/dist/cli/commands/triage.d.ts.map +1 -0
- package/dist/cli/commands/triage.js +48 -0
- package/dist/cli/commands/triage.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +10 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +89 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +6 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +33 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +13 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/agent-error.d.ts +20 -0
- package/dist/cli/lib/agent-error.d.ts.map +1 -0
- package/dist/cli/lib/agent-error.js +58 -0
- package/dist/cli/lib/agent-error.js.map +1 -0
- package/dist/cli/lib/architecture-credential.d.ts +22 -0
- package/dist/cli/lib/architecture-credential.d.ts.map +1 -0
- package/dist/cli/lib/architecture-credential.js +198 -0
- package/dist/cli/lib/architecture-credential.js.map +1 -0
- package/dist/cli/lib/architecture-pointer-discovery.d.ts +7 -0
- package/dist/cli/lib/architecture-pointer-discovery.d.ts.map +1 -0
- package/dist/cli/lib/architecture-pointer-discovery.js +60 -0
- package/dist/cli/lib/architecture-pointer-discovery.js.map +1 -0
- package/dist/cli/lib/architecture-pointer-doctor.d.ts +3 -0
- package/dist/cli/lib/architecture-pointer-doctor.d.ts.map +1 -0
- package/dist/cli/lib/architecture-pointer-doctor.js +114 -0
- package/dist/cli/lib/architecture-pointer-doctor.js.map +1 -0
- package/dist/cli/lib/architecture-pointer-schema.d.ts +5 -0
- package/dist/cli/lib/architecture-pointer-schema.d.ts.map +1 -0
- package/dist/cli/lib/architecture-pointer-schema.js +137 -0
- package/dist/cli/lib/architecture-pointer-schema.js.map +1 -0
- package/dist/cli/lib/architecture-pointer-types.d.ts +24 -0
- package/dist/cli/lib/architecture-pointer-types.d.ts.map +1 -0
- package/dist/cli/lib/architecture-pointer-types.js +7 -0
- package/dist/cli/lib/architecture-pointer-types.js.map +1 -0
- package/dist/cli/lib/architecture-pointer.d.ts +7 -0
- package/dist/cli/lib/architecture-pointer.d.ts.map +1 -0
- package/dist/cli/lib/architecture-pointer.js +10 -0
- package/dist/cli/lib/architecture-pointer.js.map +1 -0
- package/dist/cli/lib/atomic-fs.d.ts +9 -0
- package/dist/cli/lib/atomic-fs.d.ts.map +1 -0
- package/dist/cli/lib/atomic-fs.js +63 -0
- package/dist/cli/lib/atomic-fs.js.map +1 -0
- package/dist/cli/lib/audience-output.d.ts +18 -0
- package/dist/cli/lib/audience-output.d.ts.map +1 -0
- package/dist/cli/lib/audience-output.js +80 -0
- package/dist/cli/lib/audience-output.js.map +1 -0
- package/dist/cli/lib/break-glass.d.ts +25 -0
- package/dist/cli/lib/break-glass.d.ts.map +1 -0
- package/dist/cli/lib/break-glass.js +134 -0
- package/dist/cli/lib/break-glass.js.map +1 -0
- package/dist/cli/lib/cli-io.d.ts +9 -0
- package/dist/cli/lib/cli-io.d.ts.map +1 -0
- package/dist/cli/lib/cli-io.js +38 -0
- package/dist/cli/lib/cli-io.js.map +1 -0
- package/dist/cli/lib/cli-timeout.d.ts +9 -0
- package/dist/cli/lib/cli-timeout.d.ts.map +1 -0
- package/dist/cli/lib/cli-timeout.js +17 -0
- package/dist/cli/lib/cli-timeout.js.map +1 -0
- package/dist/cli/lib/constants.d.ts +26 -0
- package/dist/cli/lib/constants.d.ts.map +1 -0
- package/dist/cli/lib/constants.js +26 -0
- package/dist/cli/lib/constants.js.map +1 -0
- package/dist/cli/lib/dirty-missions.d.ts +8 -0
- package/dist/cli/lib/dirty-missions.d.ts.map +1 -0
- package/dist/cli/lib/dirty-missions.js +65 -0
- package/dist/cli/lib/dirty-missions.js.map +1 -0
- package/dist/cli/lib/doctor-checks.d.ts +16 -0
- package/dist/cli/lib/doctor-checks.d.ts.map +1 -0
- package/dist/cli/lib/doctor-checks.js +138 -0
- package/dist/cli/lib/doctor-checks.js.map +1 -0
- package/dist/cli/lib/doctor-integration-checks.d.ts +5 -0
- package/dist/cli/lib/doctor-integration-checks.d.ts.map +1 -0
- package/dist/cli/lib/doctor-integration-checks.js +88 -0
- package/dist/cli/lib/doctor-integration-checks.js.map +1 -0
- package/dist/cli/lib/doctor-orchestration.d.ts +10 -0
- package/dist/cli/lib/doctor-orchestration.d.ts.map +1 -0
- package/dist/cli/lib/doctor-orchestration.js +25 -0
- package/dist/cli/lib/doctor-orchestration.js.map +1 -0
- package/dist/cli/lib/draft-token.d.ts +37 -0
- package/dist/cli/lib/draft-token.d.ts.map +1 -0
- package/dist/cli/lib/draft-token.js +171 -0
- package/dist/cli/lib/draft-token.js.map +1 -0
- package/dist/cli/lib/fix-hints.d.ts +51 -0
- package/dist/cli/lib/fix-hints.d.ts.map +1 -0
- package/dist/cli/lib/fix-hints.js +197 -0
- package/dist/cli/lib/fix-hints.js.map +1 -0
- package/dist/cli/lib/forbidden-scan.d.ts +18 -0
- package/dist/cli/lib/forbidden-scan.d.ts.map +1 -0
- package/dist/cli/lib/forbidden-scan.js +96 -0
- package/dist/cli/lib/forbidden-scan.js.map +1 -0
- package/dist/cli/lib/gate.d.ts +10 -0
- package/dist/cli/lib/gate.d.ts.map +1 -0
- package/dist/cli/lib/gate.js +30 -0
- package/dist/cli/lib/gate.js.map +1 -0
- package/dist/cli/lib/git-metrics-missions.d.ts +3 -0
- package/dist/cli/lib/git-metrics-missions.d.ts.map +1 -0
- package/dist/cli/lib/git-metrics-missions.js +51 -0
- package/dist/cli/lib/git-metrics-missions.js.map +1 -0
- package/dist/cli/lib/git-metrics-stream.d.ts +24 -0
- package/dist/cli/lib/git-metrics-stream.d.ts.map +1 -0
- package/dist/cli/lib/git-metrics-stream.js +137 -0
- package/dist/cli/lib/git-metrics-stream.js.map +1 -0
- package/dist/cli/lib/git-metrics.d.ts +18 -0
- package/dist/cli/lib/git-metrics.d.ts.map +1 -0
- package/dist/cli/lib/git-metrics.js +39 -0
- package/dist/cli/lib/git-metrics.js.map +1 -0
- package/dist/cli/lib/git-proof-errors.d.ts +3 -0
- package/dist/cli/lib/git-proof-errors.d.ts.map +1 -0
- package/dist/cli/lib/git-proof-errors.js +7 -0
- package/dist/cli/lib/git-proof-errors.js.map +1 -0
- package/dist/cli/lib/git-proof.d.ts +37 -0
- package/dist/cli/lib/git-proof.d.ts.map +1 -0
- package/dist/cli/lib/git-proof.js +147 -0
- package/dist/cli/lib/git-proof.js.map +1 -0
- package/dist/cli/lib/git-repo.d.ts +17 -0
- package/dist/cli/lib/git-repo.d.ts.map +1 -0
- package/dist/cli/lib/git-repo.js +39 -0
- package/dist/cli/lib/git-repo.js.map +1 -0
- package/dist/cli/lib/git.d.ts +2 -0
- package/dist/cli/lib/git.d.ts.map +1 -0
- package/dist/cli/lib/git.js +19 -0
- package/dist/cli/lib/git.js.map +1 -0
- package/dist/cli/lib/gitignore-gxt.d.ts +2 -0
- package/dist/cli/lib/gitignore-gxt.d.ts.map +1 -0
- package/dist/cli/lib/gitignore-gxt.js +24 -0
- package/dist/cli/lib/gitignore-gxt.js.map +1 -0
- package/dist/cli/lib/gxt-error-codes.d.ts +19 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -0
- package/dist/cli/lib/gxt-error-codes.js +60 -0
- package/dist/cli/lib/gxt-error-codes.js.map +1 -0
- package/dist/cli/lib/init-asset-catalog.d.ts +15 -0
- package/dist/cli/lib/init-asset-catalog.d.ts.map +1 -0
- package/dist/cli/lib/init-asset-catalog.js +163 -0
- package/dist/cli/lib/init-asset-catalog.js.map +1 -0
- package/dist/cli/lib/init-assets.d.ts +8 -0
- package/dist/cli/lib/init-assets.d.ts.map +1 -0
- package/dist/cli/lib/init-assets.js +3 -0
- package/dist/cli/lib/init-assets.js.map +1 -0
- package/dist/cli/lib/init-compose-arch-pointer.d.ts +6 -0
- package/dist/cli/lib/init-compose-arch-pointer.d.ts.map +1 -0
- package/dist/cli/lib/init-compose-arch-pointer.js +64 -0
- package/dist/cli/lib/init-compose-arch-pointer.js.map +1 -0
- package/dist/cli/lib/init-compose-doc.d.ts +5 -0
- package/dist/cli/lib/init-compose-doc.d.ts.map +1 -0
- package/dist/cli/lib/init-compose-doc.js +37 -0
- package/dist/cli/lib/init-compose-doc.js.map +1 -0
- package/dist/cli/lib/init-interactive.d.ts +8 -0
- package/dist/cli/lib/init-interactive.d.ts.map +1 -0
- package/dist/cli/lib/init-interactive.js +195 -0
- package/dist/cli/lib/init-interactive.js.map +1 -0
- package/dist/cli/lib/init-plan.d.ts +20 -0
- package/dist/cli/lib/init-plan.d.ts.map +1 -0
- package/dist/cli/lib/init-plan.js +92 -0
- package/dist/cli/lib/init-plan.js.map +1 -0
- package/dist/cli/lib/init-profile.d.ts +39 -0
- package/dist/cli/lib/init-profile.d.ts.map +1 -0
- package/dist/cli/lib/init-profile.js +93 -0
- package/dist/cli/lib/init-profile.js.map +1 -0
- package/dist/cli/lib/init-tutorial.d.ts +2 -0
- package/dist/cli/lib/init-tutorial.d.ts.map +1 -0
- package/dist/cli/lib/init-tutorial.js +156 -0
- package/dist/cli/lib/init-tutorial.js.map +1 -0
- package/dist/cli/lib/integration-compat.d.ts +24 -0
- package/dist/cli/lib/integration-compat.d.ts.map +1 -0
- package/dist/cli/lib/integration-compat.js +50 -0
- package/dist/cli/lib/integration-compat.js.map +1 -0
- package/dist/cli/lib/legislate-skill.d.ts +20 -0
- package/dist/cli/lib/legislate-skill.d.ts.map +1 -0
- package/dist/cli/lib/legislate-skill.js +30 -0
- package/dist/cli/lib/legislate-skill.js.map +1 -0
- package/dist/cli/lib/manifest.d.ts +6 -0
- package/dist/cli/lib/manifest.d.ts.map +1 -0
- package/dist/cli/lib/manifest.js +53 -0
- package/dist/cli/lib/manifest.js.map +1 -0
- package/dist/cli/lib/mcp-legislation.d.ts +82 -0
- package/dist/cli/lib/mcp-legislation.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation.js +181 -0
- package/dist/cli/lib/mcp-legislation.js.map +1 -0
- package/dist/cli/lib/mcp-orchestration.d.ts +12 -0
- package/dist/cli/lib/mcp-orchestration.d.ts.map +1 -0
- package/dist/cli/lib/mcp-orchestration.js +54 -0
- package/dist/cli/lib/mcp-orchestration.js.map +1 -0
- package/dist/cli/lib/mcp-runtime.d.ts +60 -0
- package/dist/cli/lib/mcp-runtime.d.ts.map +1 -0
- package/dist/cli/lib/mcp-runtime.js +133 -0
- package/dist/cli/lib/mcp-runtime.js.map +1 -0
- package/dist/cli/lib/mcp-tools-register.d.ts +4 -0
- package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -0
- package/dist/cli/lib/mcp-tools-register.js +78 -0
- package/dist/cli/lib/mcp-tools-register.js.map +1 -0
- package/dist/cli/lib/mcp-upgrade.d.ts +7 -0
- package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -0
- package/dist/cli/lib/mcp-upgrade.js +38 -0
- package/dist/cli/lib/mcp-upgrade.js.map +1 -0
- package/dist/cli/lib/mission-emit.d.ts +7 -0
- package/dist/cli/lib/mission-emit.d.ts.map +1 -0
- package/dist/cli/lib/mission-emit.js +23 -0
- package/dist/cli/lib/mission-emit.js.map +1 -0
- package/dist/cli/lib/mission-legislative-stub.d.ts +9 -0
- package/dist/cli/lib/mission-legislative-stub.d.ts.map +1 -0
- package/dist/cli/lib/mission-legislative-stub.js +36 -0
- package/dist/cli/lib/mission-legislative-stub.js.map +1 -0
- package/dist/cli/lib/mission-markdown.d.ts +6 -0
- package/dist/cli/lib/mission-markdown.d.ts.map +1 -0
- package/dist/cli/lib/mission-markdown.js +84 -0
- package/dist/cli/lib/mission-markdown.js.map +1 -0
- package/dist/cli/lib/mission-msn.d.ts +10 -0
- package/dist/cli/lib/mission-msn.d.ts.map +1 -0
- package/dist/cli/lib/mission-msn.js +85 -0
- package/dist/cli/lib/mission-msn.js.map +1 -0
- package/dist/cli/lib/mission-parser.d.ts +6 -0
- package/dist/cli/lib/mission-parser.d.ts.map +1 -0
- package/dist/cli/lib/mission-parser.js +29 -0
- package/dist/cli/lib/mission-parser.js.map +1 -0
- package/dist/cli/lib/mission-path.d.ts +4 -0
- package/dist/cli/lib/mission-path.d.ts.map +1 -0
- package/dist/cli/lib/mission-path.js +28 -0
- package/dist/cli/lib/mission-path.js.map +1 -0
- package/dist/cli/lib/mission-resolution.d.ts +14 -0
- package/dist/cli/lib/mission-resolution.d.ts.map +1 -0
- package/dist/cli/lib/mission-resolution.js +60 -0
- package/dist/cli/lib/mission-resolution.js.map +1 -0
- package/dist/cli/lib/mission-yaml.d.ts +12 -0
- package/dist/cli/lib/mission-yaml.d.ts.map +1 -0
- package/dist/cli/lib/mission-yaml.js +96 -0
- package/dist/cli/lib/mission-yaml.js.map +1 -0
- package/dist/cli/lib/msn-allocate.d.ts +13 -0
- package/dist/cli/lib/msn-allocate.d.ts.map +1 -0
- package/dist/cli/lib/msn-allocate.js +98 -0
- package/dist/cli/lib/msn-allocate.js.map +1 -0
- package/dist/cli/lib/msn.d.ts +2 -0
- package/dist/cli/lib/msn.d.ts.map +1 -0
- package/dist/cli/lib/msn.js +5 -0
- package/dist/cli/lib/msn.js.map +1 -0
- package/dist/cli/lib/onboarding-flow.d.ts +11 -0
- package/dist/cli/lib/onboarding-flow.d.ts.map +1 -0
- package/dist/cli/lib/onboarding-flow.js +25 -0
- package/dist/cli/lib/onboarding-flow.js.map +1 -0
- package/dist/cli/lib/out-of-scope-hint.d.ts +7 -0
- package/dist/cli/lib/out-of-scope-hint.d.ts.map +1 -0
- package/dist/cli/lib/out-of-scope-hint.js +79 -0
- package/dist/cli/lib/out-of-scope-hint.js.map +1 -0
- package/dist/cli/lib/output-context.d.ts +22 -0
- package/dist/cli/lib/output-context.d.ts.map +1 -0
- package/dist/cli/lib/output-context.js +55 -0
- package/dist/cli/lib/output-context.js.map +1 -0
- package/dist/cli/lib/program-audience-hook.d.ts +4 -0
- package/dist/cli/lib/program-audience-hook.d.ts.map +1 -0
- package/dist/cli/lib/program-audience-hook.js +35 -0
- package/dist/cli/lib/program-audience-hook.js.map +1 -0
- package/dist/cli/lib/runtime-env.d.ts +23 -0
- package/dist/cli/lib/runtime-env.d.ts.map +1 -0
- package/dist/cli/lib/runtime-env.js +64 -0
- package/dist/cli/lib/runtime-env.js.map +1 -0
- package/dist/cli/lib/runtime-exec-orchestrator.d.ts +14 -0
- package/dist/cli/lib/runtime-exec-orchestrator.d.ts.map +1 -0
- package/dist/cli/lib/runtime-exec-orchestrator.js +131 -0
- package/dist/cli/lib/runtime-exec-orchestrator.js.map +1 -0
- package/dist/cli/lib/runtime-exec-process.d.ts +23 -0
- package/dist/cli/lib/runtime-exec-process.d.ts.map +1 -0
- package/dist/cli/lib/runtime-exec-process.js +55 -0
- package/dist/cli/lib/runtime-exec-process.js.map +1 -0
- package/dist/cli/lib/runtime-exec-result.d.ts +21 -0
- package/dist/cli/lib/runtime-exec-result.d.ts.map +1 -0
- package/dist/cli/lib/runtime-exec-result.js +42 -0
- package/dist/cli/lib/runtime-exec-result.js.map +1 -0
- package/dist/cli/lib/runtime-exec-worker.d.ts +18 -0
- package/dist/cli/lib/runtime-exec-worker.d.ts.map +1 -0
- package/dist/cli/lib/runtime-exec-worker.js +49 -0
- package/dist/cli/lib/runtime-exec-worker.js.map +1 -0
- package/dist/cli/lib/runtime-exec.d.ts +5 -0
- package/dist/cli/lib/runtime-exec.d.ts.map +1 -0
- package/dist/cli/lib/runtime-exec.js +5 -0
- package/dist/cli/lib/runtime-exec.js.map +1 -0
- package/dist/cli/lib/skill-sync.d.ts +11 -0
- package/dist/cli/lib/skill-sync.d.ts.map +1 -0
- package/dist/cli/lib/skill-sync.js +39 -0
- package/dist/cli/lib/skill-sync.js.map +1 -0
- package/dist/cli/lib/start-orchestration.d.ts +29 -0
- package/dist/cli/lib/start-orchestration.d.ts.map +1 -0
- package/dist/cli/lib/start-orchestration.js +176 -0
- package/dist/cli/lib/start-orchestration.js.map +1 -0
- package/dist/cli/lib/start-state.d.ts +12 -0
- package/dist/cli/lib/start-state.d.ts.map +1 -0
- package/dist/cli/lib/start-state.js +86 -0
- package/dist/cli/lib/start-state.js.map +1 -0
- package/dist/cli/lib/status-report.d.ts +21 -0
- package/dist/cli/lib/status-report.d.ts.map +1 -0
- package/dist/cli/lib/status-report.js +77 -0
- package/dist/cli/lib/status-report.js.map +1 -0
- package/dist/cli/lib/substrate-version.d.ts +22 -0
- package/dist/cli/lib/substrate-version.d.ts.map +1 -0
- package/dist/cli/lib/substrate-version.js +97 -0
- package/dist/cli/lib/substrate-version.js.map +1 -0
- package/dist/cli/lib/teacher-identity.d.ts +24 -0
- package/dist/cli/lib/teacher-identity.d.ts.map +1 -0
- package/dist/cli/lib/teacher-identity.js +123 -0
- package/dist/cli/lib/teacher-identity.js.map +1 -0
- package/dist/cli/lib/telemetry-log.d.ts +22 -0
- package/dist/cli/lib/telemetry-log.d.ts.map +1 -0
- package/dist/cli/lib/telemetry-log.js +50 -0
- package/dist/cli/lib/telemetry-log.js.map +1 -0
- package/dist/cli/lib/trace-failure-kind.d.ts +4 -0
- package/dist/cli/lib/trace-failure-kind.d.ts.map +1 -0
- package/dist/cli/lib/trace-failure-kind.js +23 -0
- package/dist/cli/lib/trace-failure-kind.js.map +1 -0
- package/dist/cli/lib/trace.d.ts +25 -0
- package/dist/cli/lib/trace.d.ts.map +1 -0
- package/dist/cli/lib/trace.js +121 -0
- package/dist/cli/lib/trace.js.map +1 -0
- package/dist/cli/lib/triage-logic.d.ts +10 -0
- package/dist/cli/lib/triage-logic.d.ts.map +1 -0
- package/dist/cli/lib/triage-logic.js +105 -0
- package/dist/cli/lib/triage-logic.js.map +1 -0
- package/dist/cli/lib/types.d.ts +62 -0
- package/dist/cli/lib/types.d.ts.map +1 -0
- package/dist/cli/lib/types.js +2 -0
- package/dist/cli/lib/types.js.map +1 -0
- package/dist/cli/lib/upgrade-apply.d.ts +15 -0
- package/dist/cli/lib/upgrade-apply.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-apply.js +122 -0
- package/dist/cli/lib/upgrade-apply.js.map +1 -0
- package/dist/cli/lib/upgrade-eligible-assets.d.ts +5 -0
- package/dist/cli/lib/upgrade-eligible-assets.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-eligible-assets.js +9 -0
- package/dist/cli/lib/upgrade-eligible-assets.js.map +1 -0
- package/dist/cli/lib/upgrade-plan.d.ts +43 -0
- package/dist/cli/lib/upgrade-plan.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-plan.js +220 -0
- package/dist/cli/lib/upgrade-plan.js.map +1 -0
- package/dist/cli/lib/upgrade-profile.d.ts +4 -0
- package/dist/cli/lib/upgrade-profile.d.ts.map +1 -0
- package/dist/cli/lib/upgrade-profile.js +27 -0
- package/dist/cli/lib/upgrade-profile.js.map +1 -0
- package/dist/cli/lib/user-error.d.ts +20 -0
- package/dist/cli/lib/user-error.d.ts.map +1 -0
- package/dist/cli/lib/user-error.js +64 -0
- package/dist/cli/lib/user-error.js.map +1 -0
- package/dist/cli/lib/verify-engine.d.ts +33 -0
- package/dist/cli/lib/verify-engine.d.ts.map +1 -0
- package/dist/cli/lib/verify-engine.js +104 -0
- package/dist/cli/lib/verify-engine.js.map +1 -0
- package/dist/cli/lib/verify-failure-presentation.d.ts +31 -0
- package/dist/cli/lib/verify-failure-presentation.d.ts.map +1 -0
- package/dist/cli/lib/verify-failure-presentation.js +93 -0
- package/dist/cli/lib/verify-failure-presentation.js.map +1 -0
- package/dist/cli/lib/verify-flow.d.ts +21 -0
- package/dist/cli/lib/verify-flow.d.ts.map +1 -0
- package/dist/cli/lib/verify-flow.js +103 -0
- package/dist/cli/lib/verify-flow.js.map +1 -0
- package/dist/cli/lib/verify-repair.d.ts +4 -0
- package/dist/cli/lib/verify-repair.d.ts.map +1 -0
- package/dist/cli/lib/verify-repair.js +61 -0
- package/dist/cli/lib/verify-repair.js.map +1 -0
- package/dist/cli/lib/verify-types.d.ts +21 -0
- package/dist/cli/lib/verify-types.d.ts.map +1 -0
- package/dist/cli/lib/verify-types.js +2 -0
- package/dist/cli/lib/verify-types.js.map +1 -0
- package/dist/cli/lib/version.gen.d.ts +4 -0
- package/dist/cli/lib/version.gen.d.ts.map +1 -0
- package/dist/cli/lib/version.gen.js +4 -0
- package/dist/cli/lib/version.gen.js.map +1 -0
- package/dist/cli/lib/worker-log-line-map.d.ts +12 -0
- package/dist/cli/lib/worker-log-line-map.d.ts.map +1 -0
- package/dist/cli/lib/worker-log-line-map.js +29 -0
- package/dist/cli/lib/worker-log-line-map.js.map +1 -0
- package/dist/cli/lib/workspace.d.ts +11 -0
- package/dist/cli/lib/workspace.d.ts.map +1 -0
- package/dist/cli/lib/workspace.js +14 -0
- package/dist/cli/lib/workspace.js.map +1 -0
- package/dist/cli/program-arch.d.ts +3 -0
- package/dist/cli/program-arch.d.ts.map +1 -0
- package/dist/cli/program-arch.js +45 -0
- package/dist/cli/program-arch.js.map +1 -0
- package/dist/cli/program-core.d.ts +3 -0
- package/dist/cli/program-core.d.ts.map +1 -0
- package/dist/cli/program-core.js +154 -0
- package/dist/cli/program-core.js.map +1 -0
- package/dist/cli/program-mcp.d.ts +3 -0
- package/dist/cli/program-mcp.d.ts.map +1 -0
- package/dist/cli/program-mcp.js +12 -0
- package/dist/cli/program-mcp.js.map +1 -0
- package/dist/cli/program-mission.d.ts +3 -0
- package/dist/cli/program-mission.d.ts.map +1 -0
- package/dist/cli/program-mission.js +77 -0
- package/dist/cli/program-mission.js.map +1 -0
- package/dist/cli/program-teacher.d.ts +3 -0
- package/dist/cli/program-teacher.d.ts.map +1 -0
- package/dist/cli/program-teacher.js +19 -0
- package/dist/cli/program-teacher.js.map +1 -0
- package/dist/cli/program-workflow.d.ts +3 -0
- package/dist/cli/program-workflow.d.ts.map +1 -0
- package/dist/cli/program-workflow.js +81 -0
- package/dist/cli/program-workflow.js.map +1 -0
- package/dist/cli/program.d.ts +4 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +25 -0
- package/dist/cli/program.js.map +1 -0
- package/package.json +66 -0
- package/templates/.cursor/hooks/gxt-before-shell.sh +63 -0
- package/templates/.cursor/hooks/gxt-session-start.sh +68 -0
- package/templates/.cursor/hooks.json +15 -0
- package/templates/.cursor/mcp.json +8 -0
- package/templates/.cursor/rules/opengantry-gxt-substrate.mdc +43 -0
- package/templates/.gitagent/ARCHITECTURE.pointer.external.example.json +13 -0
- package/templates/.gitagent/ARCHITECTURE.pointer.json +9 -0
- package/templates/.gitagent/foreman/BYPASS.sha256 +2 -0
- package/templates/.gitagent/foreman/MANIFEST.json +37 -0
- package/templates/.gitagent/foreman/SUBSTRATE.version.json +6 -0
- package/templates/.gitagent/foreman/TEACHER.allowlist.example +4 -0
- package/templates/.gitagent/missions/README.md +18 -0
- package/templates/.gitagent/teacher/ARCHITECTURE-ACCESS.md +85 -0
- package/templates/.gitagent/teacher/ARCHITECTURE-DISCOVERY.md +40 -0
- package/templates/.gitagent/teacher/MISSION-ARCHITECT.md +93 -0
- package/templates/.gitagent/teacher/MISSION.schema.yaml +80 -0
- package/templates/.gitagent/teacher/RULES.md +36 -0
- package/templates/.gitagent/teacher/WORKER_LOG.template.md +2 -0
- package/templates/.githooks/post-checkout +26 -0
- package/templates/.githooks/pre-push +53 -0
- package/templates/.github/workflows/gxt-validate.yml +129 -0
- package/templates/.gitignore.gxt +8 -0
- package/templates/AGENTS.md +24 -0
- package/templates/docs/ARCHITECTURE.md +23 -0
- package/templates/integrations/aider/.aider.conf.yml +4 -0
- package/templates/integrations/antigravity/.agent/rules/gxt.md +11 -0
- package/templates/integrations/claude-code/CLAUDE.md +9 -0
- package/templates/integrations/cline/.clinerules/gxt.md +7 -0
- package/templates/integrations/codex-cli/.codex/config.toml +3 -0
- package/templates/integrations/compatibility.json +92 -0
- package/templates/integrations/junie/.junie/guidelines.md +11 -0
- package/templates/integrations/opencode/opencode.json +3 -0
- package/templates/integrations/openhands/.openhands/microagents/gxt.md +11 -0
- package/templates/integrations/recipes/_footer.md +20 -0
- package/templates/integrations/recipes/_preamble.md +46 -0
- package/templates/integrations/recipes/aider.md +13 -0
- package/templates/integrations/recipes/antigravity.md +8 -0
- package/templates/integrations/recipes/claude-code.md +14 -0
- package/templates/integrations/recipes/cline.md +8 -0
- package/templates/integrations/recipes/codex-cli.md +16 -0
- package/templates/integrations/recipes/cursor.md +19 -0
- package/templates/integrations/recipes/junie.md +8 -0
- package/templates/integrations/recipes/opencode.md +8 -0
- package/templates/integrations/recipes/openhands.md +8 -0
- package/templates/scripts/dev-validate.sh +24 -0
- package/templates/scripts/gxt-cursor-env.sh +5 -0
- package/templates/scripts/gxt-manifest-lib.mjs +139 -0
- package/templates/scripts/gxt-pin-mission.sh +31 -0
- package/templates/scripts/gxt-resolve-mission.sh +47 -0
- package/templates/scripts/gxt-runtime-env.sh +32 -0
- package/templates/scripts/validate-gxt.sh +184 -0
- package/templates/skills/gapman.md +5 -0
- package/templates/skills/logic.md +3 -0
- package/templates/skills/substrate.md +3 -0
- package/templates/skills/ui.md +3 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Cursor sessionStart — inject GXT mission scope + runtime env for OpenGantry dogfood.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
ROOT="${CURSOR_PROJECT_DIR:-${CLAUDE_PROJECT_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || echo "")}}"
|
|
6
|
+
if [ -z "$ROOT" ]; then
|
|
7
|
+
exit 0
|
|
8
|
+
fi
|
|
9
|
+
cd "$ROOT"
|
|
10
|
+
|
|
11
|
+
MISSION=""
|
|
12
|
+
if MISSION="$(scripts/gxt-resolve-mission.sh 2>/dev/null)"; then
|
|
13
|
+
:
|
|
14
|
+
else
|
|
15
|
+
node -e '
|
|
16
|
+
process.stdout.write(JSON.stringify({
|
|
17
|
+
additional_context: "No active mission pinned. Ask me to run the Mission Architect protocol (MCP: gxt_draft_legislation) or gapman legislate.",
|
|
18
|
+
}));
|
|
19
|
+
'
|
|
20
|
+
exit 0
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
RUNTIME_JSON=""
|
|
24
|
+
if command -v gapman >/dev/null 2>&1; then
|
|
25
|
+
RUNTIME_JSON="$(gapman runtime env --mission "$MISSION" --json 2>/dev/null || true)"
|
|
26
|
+
elif [ -f "dist/cli/index.js" ]; then
|
|
27
|
+
RUNTIME_JSON="$(node dist/cli/index.js runtime env --mission "$MISSION" --json 2>/dev/null || true)"
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
if [ -z "$RUNTIME_JSON" ]; then
|
|
31
|
+
node -e '
|
|
32
|
+
process.stdout.write(JSON.stringify({
|
|
33
|
+
additional_context: "GXT: gapman not built — run npm ci && npm run build, then scripts/gxt-pin-mission.sh <mission>",
|
|
34
|
+
}));
|
|
35
|
+
'
|
|
36
|
+
exit 0
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
node -e '
|
|
40
|
+
const mission = process.argv[1];
|
|
41
|
+
const runtimeJson = process.argv[2];
|
|
42
|
+
let payload;
|
|
43
|
+
try {
|
|
44
|
+
payload = JSON.parse(runtimeJson);
|
|
45
|
+
} catch {
|
|
46
|
+
process.stdout.write(JSON.stringify({ additional_context: "GXT: failed to parse runtime env" }));
|
|
47
|
+
process.exit(0);
|
|
48
|
+
}
|
|
49
|
+
const tmvc = (payload.GXT_TMVC_ROOTS || "").split("\n").filter(Boolean);
|
|
50
|
+
const forbidden = (payload.GXT_FORBIDDEN_ZONES || "").split("\n").filter(Boolean);
|
|
51
|
+
process.stdout.write(JSON.stringify({
|
|
52
|
+
env: payload,
|
|
53
|
+
additional_context: [
|
|
54
|
+
"GXT OpenGantry active mission (auto-loaded at session start):",
|
|
55
|
+
`- Mission: ${payload.GXT_MISSION_FILE || mission} (${payload.GXT_MSN_ID || "no MSN"})`,
|
|
56
|
+
`- Skill: ${payload.GXT_SKILL_KEY || "unknown"}`,
|
|
57
|
+
`- TMVC roots: ${tmvc.join(", ") || "(none)"}`,
|
|
58
|
+
`- Forbidden: ${forbidden.join(", ") || "(none)"}`,
|
|
59
|
+
`- Trace sink: ${payload.GXT_WORKER_LOG || "WORKER_LOG.md"}`,
|
|
60
|
+
"",
|
|
61
|
+
"Worker loop: edit within TMVC → append PASS quotes to WORKER_LOG.md → gapman verify --mission … → npm run validate",
|
|
62
|
+
"MCP tools: gxt_draft_legislation, gxt_execute_legislation, gxt_check_signature, gxt_pin_mission, gxt_runtime_env, gxt_verify (see .cursor/mcp.json).",
|
|
63
|
+
"IDE Agent edits are advisory TMVC; shell substrate writes are hook-guarded. Full loop: docs/DEVELOPMENT.md",
|
|
64
|
+
].join("\n"),
|
|
65
|
+
}));
|
|
66
|
+
' "$MISSION" "$RUNTIME_JSON"
|
|
67
|
+
|
|
68
|
+
exit 0
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: OpenGantry GXT — read RULES and MANIFEST before any repo action
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OpenGantry substrate (mandatory read)
|
|
7
|
+
|
|
8
|
+
## Activation Macro
|
|
9
|
+
|
|
10
|
+
Whenever the user starts a prompt with `/gantry`:
|
|
11
|
+
|
|
12
|
+
1. Immediately switch to Mission Architect behavior.
|
|
13
|
+
2. Run the protocol in `.gitagent/teacher/MISSION-ARCHITECT.md`.
|
|
14
|
+
3. Hand off via MCP tools (`gxt_draft_legislation` → chat approval → `gxt_execute_legislation`) or CLI `gapman legislate` fallback.
|
|
15
|
+
|
|
16
|
+
Do not use `/plan` — Cursor reserves it for native Plan Mode.
|
|
17
|
+
|
|
18
|
+
Before planning, editing code, or running substantive commands in this repository:
|
|
19
|
+
|
|
20
|
+
1. Read **`.gitagent/teacher/RULES.md`** — governance (SOD, trace mapping, risk tiers, dynamic TMVC, Rule 4.4).
|
|
21
|
+
2. Read **`.gitagent/foreman/MANIFEST.json`** — Foreman map (`schema_version`, per-skill `trust_threshold`, `tmvc_roots`, `forbidden_zones`, `path_risks`, `risk_keywords`).
|
|
22
|
+
|
|
23
|
+
Treat these as the **law + routing contract** for agent work. For orientation and workflow, see **`.gitagent/README.md`**.
|
|
24
|
+
|
|
25
|
+
## Mission Architect (IDE chat)
|
|
26
|
+
|
|
27
|
+
**Implicit interception:** When the user **explicitly** asks to write, edit, refactor, or implement code and **no mission is pinned**, read **`.gitagent/teacher/MISSION-ARCHITECT.md`**.
|
|
28
|
+
|
|
29
|
+
- **Do NOT** trigger for questions, explanations, or code discovery.
|
|
30
|
+
- **MCP handoff:** two-step draft/execute with semantic chat approval before any mission file write.
|
|
31
|
+
- **CLI fallback:** one copy-paste `gapman legislate …` command only (no raw YAML blocks).
|
|
32
|
+
|
|
33
|
+
## Cursor wiring
|
|
34
|
+
|
|
35
|
+
- **Rules:** this file (`alwaysApply: true`) + root `AGENTS.md`.
|
|
36
|
+
- **MCP:** `.cursor/mcp.json` — `gxt_*` tools via `gapman mcp serve`.
|
|
37
|
+
- **Hooks:** `.cursor/hooks.json` (installed by `gapman init`) — `sessionStart` mission scope + shell guard for GXT law/manifest paths (fallback for non-MCP shell paths).
|
|
38
|
+
- **Pin mission:** `scripts/gxt-pin-mission.sh .gitagent/missions/<file>.yaml` before Agent work.
|
|
39
|
+
- **Terminal bootstrap:** `source scripts/gxt-runtime-env.sh` (uses pinned mission or explicit path).
|
|
40
|
+
- **Code architecture:** `.gitagent/ARCHITECTURE.pointer.json` — if `kind=unset` or stub, read `.gitagent/teacher/ARCHITECTURE-DISCOVERY.md` and ask user before coding.
|
|
41
|
+
- **Human IDE setup:** `docs/INTEGRATIONS.md` (adopter reference — not agent context).
|
|
42
|
+
|
|
43
|
+
If the user clearly scopes work to something that cannot affect OpenGantry (e.g. a typo in unrelated docs), still skim **RULES** and **MANIFEST** when the change could touch skills, missions, routing, or manifest sync.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "0.1.0",
|
|
3
|
+
"kind": "external",
|
|
4
|
+
"location": "https://wiki.example.com/display/ARCH",
|
|
5
|
+
"read_hint": "Fetch the ARCH space home page, then linked layer pages.",
|
|
6
|
+
"access": {
|
|
7
|
+
"required": true,
|
|
8
|
+
"tool": "confluence",
|
|
9
|
+
"credential_slot": "architecture/confluence",
|
|
10
|
+
"auth_hint": "Atlassian personal access token; API base URL is the location host.",
|
|
11
|
+
"detect": ["atlassian", "CONFLUENCE_", "mcp:atlassian"]
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "0.1.0",
|
|
3
|
+
"kind": "unset",
|
|
4
|
+
"location": "",
|
|
5
|
+
"read_hint": "Architecture source not selected. Do NOT invent layer layout or module boundaries. Read .gitagent/teacher/ARCHITECTURE-DISCOVERY.md and ask the user before any application code changes.",
|
|
6
|
+
"discovery": {
|
|
7
|
+
"skill": ".gitagent/teacher/ARCHITECTURE-DISCOVERY.md"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "0.5.0",
|
|
3
|
+
"skills": {
|
|
4
|
+
"ui": {
|
|
5
|
+
"desc": "UI components and styles within declared roots.",
|
|
6
|
+
"trust_threshold": "Tier-1",
|
|
7
|
+
"tmvc_roots": ["src/components/", "src/styles/"],
|
|
8
|
+
"forbidden_zones": [".gitagent/", "src/auth/", "src/core/", "src/db/schema/"]
|
|
9
|
+
},
|
|
10
|
+
"logic": {
|
|
11
|
+
"desc": "Application logic and utilities within declared roots.",
|
|
12
|
+
"trust_threshold": "Tier-2",
|
|
13
|
+
"tmvc_roots": ["src/lib/", "src/utils/"],
|
|
14
|
+
"forbidden_zones": [".gitagent/", "src/auth/", "src/core/", "src/db/schema/"]
|
|
15
|
+
},
|
|
16
|
+
"gapman": {
|
|
17
|
+
"desc": "gapman CLI delivery, lib layers, and unit tests (OpenGantry specimen).",
|
|
18
|
+
"trust_threshold": "Tier-2",
|
|
19
|
+
"tmvc_roots": ["src/cli/"],
|
|
20
|
+
"forbidden_zones": [".gitagent/foreman/", ".gitagent/teacher/RULES.md"]
|
|
21
|
+
},
|
|
22
|
+
"substrate": {
|
|
23
|
+
"desc": "Reserved for high-risk substrate work; requires Teacher mission.",
|
|
24
|
+
"trust_threshold": "Tier-3",
|
|
25
|
+
"tmvc_roots": [],
|
|
26
|
+
"forbidden_zones": []
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"path_risks": {
|
|
30
|
+
"src/cli/": "Tier-2",
|
|
31
|
+
".gitagent/": "Tier-3",
|
|
32
|
+
"src/core/": "Tier-3",
|
|
33
|
+
"src/auth/": "Tier-3",
|
|
34
|
+
"src/db/schema/": "Tier-3"
|
|
35
|
+
},
|
|
36
|
+
"risk_keywords": ["refactor", "migrate", "delete", "security", "schema"]
|
|
37
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Missions
|
|
2
|
+
|
|
3
|
+
Store mission files here (`.md` or `.yaml`) for `gapman verify`.
|
|
4
|
+
|
|
5
|
+
Quick start:
|
|
6
|
+
|
|
7
|
+
1. Configure `.gitagent/foreman/MANIFEST.json` skill keys and roots.
|
|
8
|
+
2. Set `GAPMAN_TEACHER_EMAILS`.
|
|
9
|
+
3. Legislate with explicit id:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
gapman legislate "<intent>" --msn MSN-0001 --skill-key <manifest-key> [--gate-command "<cmd>"]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Duplicate `msn_id` values fail closed by default; use `--allow-duplicate` only for intentional migration flows. New stubs emit `status: PENDING` trace rows until worker execution.
|
|
16
|
+
|
|
17
|
+
For the full specimen runbook, see the upstream OpenGantry adoption guide:
|
|
18
|
+
https://github.com/jeger-ai/opengantry/blob/main/docs/ADOPTION.md
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Architecture access (authenticated sources)
|
|
2
|
+
|
|
3
|
+
Read this **before** fetching external architecture documentation when [`.gitagent/ARCHITECTURE.pointer.json`](../ARCHITECTURE.pointer.json) has `"access": { "required": true }`.
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
Discover **which tool** hosts architecture docs, **how authentication works**, obtain credentials **without exposing secrets in chat or git**, then read layout docs and proceed under GXT rules.
|
|
8
|
+
|
|
9
|
+
## 1. Read the pointer
|
|
10
|
+
|
|
11
|
+
From the repo root, load `.gitagent/ARCHITECTURE.pointer.json`:
|
|
12
|
+
|
|
13
|
+
- `kind`, `location`, `read_hint` — where docs live
|
|
14
|
+
- `access.tool` — expected system (Confluence, Linear, Notion, custom MCP, …)
|
|
15
|
+
- `access.detect` — signals to probe first (MCP server id, env prefix, host substring)
|
|
16
|
+
- `access.auth_hint` — team-specific auth notes (PAT, OAuth, SSO, …)
|
|
17
|
+
- `access.credential_slot` — local storage key (git-ignored)
|
|
18
|
+
|
|
19
|
+
## 2. Detect existing access (do not ask yet)
|
|
20
|
+
|
|
21
|
+
Check in order:
|
|
22
|
+
|
|
23
|
+
1. **MCP / IDE integrations** — list configured MCP servers and tools; match `access.detect` and `access.tool`.
|
|
24
|
+
2. **Environment** — env vars suggested by `access.detect` or `auth_hint` (never print values).
|
|
25
|
+
3. **Stored credentials** — run `gapman arch cred status` (or `--slot <credential_slot>`). Status shows slot + kind only, never secrets.
|
|
26
|
+
4. **User docs** — project README / human INTEGRATIONS doc for team setup (not duplicated here).
|
|
27
|
+
|
|
28
|
+
If a path already works, record in `WORKER_LOG.md` which method you used (not the secret) and fetch architecture docs.
|
|
29
|
+
|
|
30
|
+
## 3. Ask the user when detection fails
|
|
31
|
+
|
|
32
|
+
Ask **one focused question at a time**:
|
|
33
|
+
|
|
34
|
+
- Which system hosts architecture docs? (confirm or override `access.tool`)
|
|
35
|
+
- How does your team authenticate? (PAT, API key, OAuth device flow, MCP already configured, …)
|
|
36
|
+
- Whether you may store a credential locally via `gapman arch cred set` (git-ignored, mode 600)
|
|
37
|
+
|
|
38
|
+
**Never** ask the user to paste tokens into chat, commits, or `WORKER_LOG.md`.
|
|
39
|
+
|
|
40
|
+
## 4. Store credentials securely
|
|
41
|
+
|
|
42
|
+
Use **`gapman arch cred set`** — secrets on **stdin only**, never argv:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Bearer / PAT
|
|
46
|
+
printf '%s' 'YOUR_TOKEN' | gapman arch cred set --slot architecture/confluence --kind bearer
|
|
47
|
+
|
|
48
|
+
# API key
|
|
49
|
+
printf '%s' 'YOUR_KEY' | gapman arch cred set --slot architecture/notion --kind api_key
|
|
50
|
+
|
|
51
|
+
# Basic auth (JSON on stdin)
|
|
52
|
+
printf '%s' '{"username":"you@corp.com","password":"…"}' | gapman arch cred set --slot architecture/wiki --kind basic
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Files live under **`.gitagent/history/credentials/`** (git-ignored). Verify with `gapman arch cred status`.
|
|
56
|
+
|
|
57
|
+
To remove: `gapman arch cred unset --slot <name>`.
|
|
58
|
+
|
|
59
|
+
## 5. Context request (GXT)
|
|
60
|
+
|
|
61
|
+
Before first access to an **external** architecture source, log a **Context Request** in `WORKER_LOG.md`: tool name, URL/host, auth method (not secrets), and why layout docs are needed. Wait for Verifier acceptance when tier/policy requires it.
|
|
62
|
+
|
|
63
|
+
## 6. Read architecture docs
|
|
64
|
+
|
|
65
|
+
Follow `read_hint` and consume layout boundaries. Align edits with `tmvc_roots` in MANIFEST.
|
|
66
|
+
|
|
67
|
+
## Adopter configuration example
|
|
68
|
+
|
|
69
|
+
In `ARCHITECTURE.pointer.json`:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"schema_version": "0.1.0",
|
|
74
|
+
"kind": "external",
|
|
75
|
+
"location": "https://wiki.example.com/display/ARCH",
|
|
76
|
+
"read_hint": "Fetch space ARCH home, then layer pages linked from the index.",
|
|
77
|
+
"access": {
|
|
78
|
+
"required": true,
|
|
79
|
+
"tool": "confluence",
|
|
80
|
+
"credential_slot": "architecture/confluence",
|
|
81
|
+
"auth_hint": "Atlassian personal access token; base URL from location host.",
|
|
82
|
+
"detect": ["atlassian", "CONFLUENCE_", "mcp:atlassian"]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Architecture discovery (unset or uncertain)
|
|
2
|
+
|
|
3
|
+
Read this when [`.gitagent/ARCHITECTURE.pointer.json`](../ARCHITECTURE.pointer.json) has **`"kind": "unset"`**, or when pointed architecture docs are missing, empty, or still the init stub.
|
|
4
|
+
|
|
5
|
+
## Hard rule
|
|
6
|
+
|
|
7
|
+
**Do NOT define or assume the full codebase architecture yourself.** The user may expect you to invent layers, folders, and boundaries — that is the **worst outcome**. Uncertainty MUST be resolved with the user **before** planning or editing application code.
|
|
8
|
+
|
|
9
|
+
## When this applies
|
|
10
|
+
|
|
11
|
+
- Pointer `kind` is **`unset`** (no source selected)
|
|
12
|
+
- `docs/ARCHITECTURE.md` (or pointed file) still contains placeholder text such as *"Replace this section with your project structure"*
|
|
13
|
+
- Pointed directory is empty or has no layout guidance
|
|
14
|
+
- External source is unreachable and no fallback docs exist in-repo
|
|
15
|
+
|
|
16
|
+
## What to do (in order)
|
|
17
|
+
|
|
18
|
+
1. **Stop** — do not scaffold modules, pick frameworks, or create folder trees based on guesses.
|
|
19
|
+
2. **Tell the user** architecture is unset or incomplete and implementation will wait until layout is clarified.
|
|
20
|
+
3. **Ask focused questions** (one or two at a time), for example:
|
|
21
|
+
- Where should architecture documentation live? (markdown file, folder, Confluence/wiki, other)
|
|
22
|
+
- What are the main layers or bounded contexts?
|
|
23
|
+
- Which directories are entry points for each skill / TMVC root in MANIFEST?
|
|
24
|
+
- Dependency direction rules (what may import what)?
|
|
25
|
+
- Existing conventions from another repo or ADR to follow?
|
|
26
|
+
4. **Log a Context Request** in `WORKER_LOG.md` when the discussion expands scope beyond current TMVC.
|
|
27
|
+
5. **Update the pointer** (or ask the user / Teacher to) once source is chosen — e.g. set `kind: file` and fill `docs/ARCHITECTURE.md`, or `kind: external` with `access` if authenticated.
|
|
28
|
+
6. **Only then** proceed with implementation aligned to documented layout and MANIFEST `tmvc_roots`.
|
|
29
|
+
|
|
30
|
+
## After the user answers
|
|
31
|
+
|
|
32
|
+
- If they choose a **file** or **folder**, help them write concise architecture notes; update `.gitagent/ARCHITECTURE.pointer.json` accordingly.
|
|
33
|
+
- If they choose **external**, set `kind: external`, follow [ARCHITECTURE-ACCESS.md](./ARCHITECTURE-ACCESS.md) for auth.
|
|
34
|
+
- If they want **you to draft** architecture text, treat it as a **proposal** — present for explicit approval before treating it as law.
|
|
35
|
+
|
|
36
|
+
## Never
|
|
37
|
+
|
|
38
|
+
- Silently invent `src/` layout, clean/hexagonal layers, or package structure without approval
|
|
39
|
+
- Treat generic best practices as this repository's architecture
|
|
40
|
+
- Skip discovery because the task "sounds simple"
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Mission Architect (Teacher-Assistant Contract)
|
|
2
|
+
|
|
3
|
+
IDE chat protocol for drafting missions **before** worker execution. No CLI chatbot. No agent-authored Git commits.
|
|
4
|
+
|
|
5
|
+
## When to activate
|
|
6
|
+
|
|
7
|
+
**Activate when any of these are true:**
|
|
8
|
+
|
|
9
|
+
1. User prompt **starts with** `/gantry` (explicit macro — planning-only prompts included). Do not use `/plan`; Cursor reserves it for native Plan Mode.
|
|
10
|
+
2. User **explicitly** asks to write, edit, refactor, add, fix, or implement code (or equivalent action intent) **and** no pinned/legislated mission covers the work (`.gitagent/missions/.active-mission` absent or stale).
|
|
11
|
+
|
|
12
|
+
**Do NOT activate for:**
|
|
13
|
+
|
|
14
|
+
- Questions (“how does auth work?”, “explain this function”)
|
|
15
|
+
- Read-only navigation, code discovery, or architecture exploration
|
|
16
|
+
- Docs-only questions unless the user asks to edit docs
|
|
17
|
+
- Casual conversation
|
|
18
|
+
|
|
19
|
+
When inactive, answer normally — do not mention this protocol.
|
|
20
|
+
|
|
21
|
+
## Phase 0 (silent reads)
|
|
22
|
+
|
|
23
|
+
Before proposing legislation, read (do not lecture the user):
|
|
24
|
+
|
|
25
|
+
- `.gitagent/foreman/MANIFEST.json` — skills, TMVC roots, forbidden zones, path_risks, risk_keywords
|
|
26
|
+
- `.gitagent/ARCHITECTURE.pointer.json` — code layout (if `kind=unset`, follow ARCHITECTURE-DISCOVERY.md and ask)
|
|
27
|
+
- Optional: `.gitagent/out-of-scope/` ADRs when scope is ambiguous
|
|
28
|
+
|
|
29
|
+
**Do not** run `gapman triage` in chat. Reason from manifest + architecture directly.
|
|
30
|
+
|
|
31
|
+
## Fast-path vs full interview
|
|
32
|
+
|
|
33
|
+
### Fast-path (trivial work)
|
|
34
|
+
|
|
35
|
+
Use when the change is trivial, low-risk, and clearly confined (e.g. single existing file, cosmetic tweak, obvious skill from manifest).
|
|
36
|
+
|
|
37
|
+
1. Infer `skill_key`, `gate_command`, and MSN (ask for MSN only if unknown).
|
|
38
|
+
2. Present legislation handoff (MCP tools preferred in Cursor — see below).
|
|
39
|
+
3. Ask for **single yes/no** confirmation — no 3-phase interview.
|
|
40
|
+
|
|
41
|
+
### Full 3-phase interview (heavy work)
|
|
42
|
+
|
|
43
|
+
Use for new features, multi-file scope, forbidden-zone proximity, path_risks/risk_keywords hits, ambiguous skill, or when the user requests mission planning.
|
|
44
|
+
|
|
45
|
+
| Phase | Focus |
|
|
46
|
+
|-------|--------|
|
|
47
|
+
| **1 — Boundary** | Skill, TMVC roots, forbidden zones |
|
|
48
|
+
| **2 — Risk** | Concrete paths; escalation flags |
|
|
49
|
+
| **3 — Verification** | Agree `gate_command` + success substring; DoD → future trace rows |
|
|
50
|
+
|
|
51
|
+
## Handoff (legislate only)
|
|
52
|
+
|
|
53
|
+
**Forbidden:** multi-line YAML mission blocks, “save this file manually” instructions, agent-authored Teacher git commits.
|
|
54
|
+
|
|
55
|
+
### Cursor MCP (preferred — zero copy/paste)
|
|
56
|
+
|
|
57
|
+
When the OpenGantry MCP server is configured (`.cursor/mcp.json`):
|
|
58
|
+
|
|
59
|
+
1. Call **`gxt_draft_legislation`** with `title`, `msn_id`, `skill_key`, `gate_command`, optional `gate_success_substring`.
|
|
60
|
+
2. Present the returned `chat_message_to_user` to the human.
|
|
61
|
+
3. Wait for clear approval intent in chat (`yes`, `approve`, `looks good`, `do it`) or rejection (`no`, `deny`, `stop`). If ambiguous, ask one short clarification.
|
|
62
|
+
4. On approval only, call **`gxt_execute_legislation`** with the `draft_token`.
|
|
63
|
+
5. Render the returned `suggested_human_action` in a fenced shell block for the Teacher commit.
|
|
64
|
+
6. After the human commits, call **`gxt_check_signature`**. On `signature_valid`, proceed to **`gxt_pin_mission`** then worker phase.
|
|
65
|
+
|
|
66
|
+
This two-step draft/execute gate prevents silent legislation even when Cursor runs tools in auto-run (“Yolo”) mode.
|
|
67
|
+
|
|
68
|
+
### CLI fallback (terminal)
|
|
69
|
+
|
|
70
|
+
One bash command the user copies into their terminal:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
gapman legislate "<intent summary>" --msn MSN-NNNN --skill-key <key> \
|
|
74
|
+
--gate-command "<deterministic gate shell command>" \
|
|
75
|
+
--gate-success-substring "<optional substring>"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
- Quote `--gate-command` when it contains spaces.
|
|
79
|
+
- Omit `--gate-success-substring` when exit code 0 alone is sufficient.
|
|
80
|
+
|
|
81
|
+
**Stop after handoff.** Do not write application code until the Teacher commits and pins the mission.
|
|
82
|
+
|
|
83
|
+
## Teacher loop (human)
|
|
84
|
+
|
|
85
|
+
1. Approve draft (MCP) or paste and run `gapman legislate` (CLI).
|
|
86
|
+
2. Optionally review/edit the generated YAML.
|
|
87
|
+
3. `git commit -m "[MSN-NNNN] legislate …"` including the mission file (Teacher email in `GAPMAN_TEACHER_EMAILS`).
|
|
88
|
+
4. Pin mission (`gxt_pin_mission` MCP tool or `scripts/gxt-pin-mission.sh`).
|
|
89
|
+
5. Worker phase begins.
|
|
90
|
+
|
|
91
|
+
## Worker phase (after pin)
|
|
92
|
+
|
|
93
|
+
Edit within TMVC → append PASS quotes to `WORKER_LOG.md` → `gapman verify --mission …` (or `gxt_verify`) → pin stays until mission complete.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# MISSION.schema — JSON Schema (YAML encoding) for structured missions
|
|
2
|
+
# Consumed by gapman (Ajv). Version label for docs only.
|
|
3
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
4
|
+
$id: https://opengantry.local/schemas/mission.v1_1.json
|
|
5
|
+
title: OpenGantryMission
|
|
6
|
+
type: object
|
|
7
|
+
additionalProperties: false
|
|
8
|
+
required:
|
|
9
|
+
- skill_key
|
|
10
|
+
- gate_command
|
|
11
|
+
allOf:
|
|
12
|
+
- anyOf:
|
|
13
|
+
- required: [msn_id]
|
|
14
|
+
- required: [msnId]
|
|
15
|
+
properties:
|
|
16
|
+
msn_id:
|
|
17
|
+
type: string
|
|
18
|
+
pattern: "^MSN-[0-9]{4}$"
|
|
19
|
+
msnId:
|
|
20
|
+
type: string
|
|
21
|
+
pattern: "^MSN-[0-9]{4}$"
|
|
22
|
+
skill_key:
|
|
23
|
+
type: string
|
|
24
|
+
minLength: 1
|
|
25
|
+
gate_command:
|
|
26
|
+
type: string
|
|
27
|
+
minLength: 1
|
|
28
|
+
gate_success_substring:
|
|
29
|
+
type: ["string", "null"]
|
|
30
|
+
upgrade_payload:
|
|
31
|
+
type: object
|
|
32
|
+
additionalProperties: false
|
|
33
|
+
required:
|
|
34
|
+
- from_version
|
|
35
|
+
- to_version
|
|
36
|
+
- staged_hashes
|
|
37
|
+
- planned_writes
|
|
38
|
+
properties:
|
|
39
|
+
from_version:
|
|
40
|
+
type: string
|
|
41
|
+
to_version:
|
|
42
|
+
type: string
|
|
43
|
+
staged_root:
|
|
44
|
+
type: string
|
|
45
|
+
const: ".gitagent/.upgrade-tmp"
|
|
46
|
+
planned_writes:
|
|
47
|
+
type: array
|
|
48
|
+
items:
|
|
49
|
+
type: string
|
|
50
|
+
skipped_scaffold_only:
|
|
51
|
+
type: array
|
|
52
|
+
items:
|
|
53
|
+
type: string
|
|
54
|
+
staged_hashes:
|
|
55
|
+
type: object
|
|
56
|
+
additionalProperties:
|
|
57
|
+
type: string
|
|
58
|
+
created_at:
|
|
59
|
+
type: string
|
|
60
|
+
trace_rows:
|
|
61
|
+
type: array
|
|
62
|
+
default: []
|
|
63
|
+
items:
|
|
64
|
+
type: object
|
|
65
|
+
additionalProperties: false
|
|
66
|
+
required:
|
|
67
|
+
- dod_id
|
|
68
|
+
- trace_quote
|
|
69
|
+
- anchor
|
|
70
|
+
- status
|
|
71
|
+
properties:
|
|
72
|
+
dod_id:
|
|
73
|
+
type: string
|
|
74
|
+
trace_quote:
|
|
75
|
+
type: string
|
|
76
|
+
anchor:
|
|
77
|
+
type: string
|
|
78
|
+
status:
|
|
79
|
+
type: string
|
|
80
|
+
pattern: "^(PASS|FAIL|PENDING|pass|fail|pending)$"
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# OpenGantry Rules (template)
|
|
2
|
+
|
|
3
|
+
Normative keywords **MUST**, **MUST NOT**, and **SHOULD** follow RFC 2119.
|
|
4
|
+
|
|
5
|
+
## 1. Governance and risk tiers
|
|
6
|
+
|
|
7
|
+
- **Tier 1 (SAFE)**: deterministic gate required; single-provider verifier is acceptable.
|
|
8
|
+
- **Tier 2 (LOGIC)**: deterministic gate required; single-provider verifier output is advisory and a human audit is required before merge.
|
|
9
|
+
- **Tier 3 (SUBSTRATE)**: strictest review path; human audit of trace-mapped evidence is mandatory.
|
|
10
|
+
|
|
11
|
+
## 2. Segregation of duties
|
|
12
|
+
|
|
13
|
+
- The agent executing the gate MUST NOT be the same actor declaring PASS.
|
|
14
|
+
- Mission law is Teacher-owned; workers MUST NOT silently rewrite mission law.
|
|
15
|
+
|
|
16
|
+
## 3. Trace-mapped verification
|
|
17
|
+
|
|
18
|
+
- PASS claims MUST quote `WORKER_LOG.md` with a valid anchor (line or timestamp).
|
|
19
|
+
- Missing quotes/anchors for claimed PASS is evidence tampering and MUST fail verification.
|
|
20
|
+
|
|
21
|
+
## 4. Dynamic TMVC
|
|
22
|
+
|
|
23
|
+
- Work is bounded to manifest roots unless explicit mission expansion is approved.
|
|
24
|
+
- Access outside effective TMVC requires a context request recorded in `WORKER_LOG.md`.
|
|
25
|
+
- Access into forbidden zones MUST fail closed unless Teacher policy explicitly allows it.
|
|
26
|
+
|
|
27
|
+
## 5. Mission commit indexing
|
|
28
|
+
|
|
29
|
+
- Mission-related commits MUST begin with `[MSN-XXXX]` in the subject line.
|
|
30
|
+
- Keep mission files for `gapman verify` under `.gitagent/missions/`.
|
|
31
|
+
|
|
32
|
+
## 6. Break-glass (v0.8.0)
|
|
33
|
+
|
|
34
|
+
- Set `GXT_BYPASS_SECRET` to match `.gitagent/foreman/BYPASS.sha256` (SHA-256 hex of the team secret).
|
|
35
|
+
- Use `gapman verify --break-glass --reason "..."` only in emergencies; push `refs/notes/gxt-bypass` with the branch.
|
|
36
|
+
- Forbidden-zone runtime policy is never bypassed.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# post-checkout: create empty WORKER_LOG.md on branch checkouts (feature branches only).
|
|
3
|
+
# Git passes: $1 = previous HEAD, $2 = new HEAD, $3 = 1 if branch checkout, 0 if file checkout.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
[[ "${3:-0}" == "1" ]] || exit 0
|
|
7
|
+
|
|
8
|
+
cd "$(git rev-parse --show-toplevel)"
|
|
9
|
+
|
|
10
|
+
# Detached HEAD — skip
|
|
11
|
+
branch="$(git symbolic-ref -q --short HEAD 2>/dev/null)" || exit 0
|
|
12
|
+
|
|
13
|
+
# Default branches — skip (edit if your primary branch differs)
|
|
14
|
+
case "$branch" in
|
|
15
|
+
main|master) exit 0 ;;
|
|
16
|
+
esac
|
|
17
|
+
|
|
18
|
+
log_file="WORKER_LOG.md"
|
|
19
|
+
[[ -f "$log_file" ]] && exit 0
|
|
20
|
+
|
|
21
|
+
template=".gitagent/teacher/WORKER_LOG.template.md"
|
|
22
|
+
if [[ -f "$template" ]]; then
|
|
23
|
+
cp "$template" "$log_file"
|
|
24
|
+
else
|
|
25
|
+
printf '%s\n\n' '# WORKER_LOG' >"$log_file"
|
|
26
|
+
fi
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# OpenGantry pre-push: dogfood GXT — mission verify, manifest sync, changed CLI quality.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
cd "$(git rev-parse --show-toplevel)"
|
|
6
|
+
|
|
7
|
+
if command -v gapman >/dev/null 2>&1; then
|
|
8
|
+
GAPMAN=(gapman)
|
|
9
|
+
elif [[ -f dist/cli/index.js ]]; then
|
|
10
|
+
GAPMAN=(node dist/cli/index.js)
|
|
11
|
+
else
|
|
12
|
+
echo "pre-push: gapman not found — run: npm run build" >&2
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
base="$(git merge-base HEAD @{upstream} 2>/dev/null || true)"
|
|
17
|
+
if [[ -z "$base" ]]; then
|
|
18
|
+
base="$(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null || true)"
|
|
19
|
+
fi
|
|
20
|
+
if [[ -z "$base" ]]; then
|
|
21
|
+
base="$(git rev-parse HEAD~1 2>/dev/null || true)"
|
|
22
|
+
fi
|
|
23
|
+
if [[ -z "$base" ]]; then
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
mapfile -t missions < <(
|
|
28
|
+
git diff --name-only --diff-filter=ACMRT "${base}..HEAD" -- .gitagent/missions/ \
|
|
29
|
+
| grep -E '\.(ya?ml|md)$' \
|
|
30
|
+
| grep -viE '(^|/)README\.md$' \
|
|
31
|
+
| sort
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
for mission in "${missions[@]}"; do
|
|
35
|
+
[[ -n "$mission" ]] || continue
|
|
36
|
+
[[ -f "$mission" ]] || continue
|
|
37
|
+
echo "pre-push: gapman verify --mission ${mission} (--pre-push)" >&2
|
|
38
|
+
"${GAPMAN[@]}" verify --mission "$mission" --pre-push || exit 1
|
|
39
|
+
done
|
|
40
|
+
|
|
41
|
+
if git diff --name-only "${base}..HEAD" | grep -qE '^\.gitagent/foreman/MANIFEST\.json$|^skills/'; then
|
|
42
|
+
echo "pre-push: gapman check (manifest / skills changed)" >&2
|
|
43
|
+
"${GAPMAN[@]}" check || exit 1
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if git diff --name-only "${base}..HEAD" -- 'src/cli/**/*.ts' | grep -q .; then
|
|
47
|
+
if [[ -x ./scripts/check-changed-code.sh ]]; then
|
|
48
|
+
echo "pre-push: changed-code quality (src/cli)" >&2
|
|
49
|
+
./scripts/check-changed-code.sh "$base" HEAD || exit 1
|
|
50
|
+
fi
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
exit 0
|