@jeger-ai/opengantry 2.3.0 → 2.4.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/README.md +61 -59
- package/dist/cli/commands/arch.d.ts +9 -0
- package/dist/cli/commands/arch.d.ts.map +1 -1
- package/dist/cli/commands/arch.js +65 -0
- package/dist/cli/commands/arch.js.map +1 -1
- package/dist/cli/commands/context-request.d.ts +2 -2
- package/dist/cli/commands/context-request.d.ts.map +1 -1
- package/dist/cli/commands/context-request.js +13 -13
- package/dist/cli/commands/context-request.js.map +1 -1
- package/dist/cli/commands/init.js +2 -2
- package/dist/cli/commands/onboarding.js +4 -4
- package/dist/cli/commands/onboarding.js.map +1 -1
- package/dist/cli/commands/planner.d.ts +11 -0
- package/dist/cli/commands/{teacher.d.ts.map → planner.d.ts.map} +1 -1
- package/dist/cli/commands/{teacher.js → planner.js} +11 -11
- package/dist/cli/commands/{teacher.js.map → planner.js.map} +1 -1
- package/dist/cli/commands/runtime.d.ts +1 -1
- package/dist/cli/commands/runtime.d.ts.map +1 -1
- package/dist/cli/commands/runtime.js +4 -4
- package/dist/cli/commands/runtime.js.map +1 -1
- package/dist/cli/lib/arch-override.d.ts +4 -0
- package/dist/cli/lib/arch-override.d.ts.map +1 -0
- package/dist/cli/lib/arch-override.js +8 -0
- package/dist/cli/lib/arch-override.js.map +1 -0
- package/dist/cli/lib/architecture-fetch.d.ts +24 -0
- package/dist/cli/lib/architecture-fetch.d.ts.map +1 -0
- package/dist/cli/lib/architecture-fetch.js +88 -0
- package/dist/cli/lib/architecture-fetch.js.map +1 -0
- package/dist/cli/lib/audience-output.d.ts +1 -1
- package/dist/cli/lib/audience-output.d.ts.map +1 -1
- package/dist/cli/lib/audience-output.js +16 -16
- package/dist/cli/lib/audience-output.js.map +1 -1
- package/dist/cli/lib/break-glass.js +1 -1
- package/dist/cli/lib/command-reporter.d.ts +1 -0
- package/dist/cli/lib/command-reporter.d.ts.map +1 -1
- package/dist/cli/lib/command-reporter.js +10 -5
- package/dist/cli/lib/command-reporter.js.map +1 -1
- package/dist/cli/lib/config-namespace.d.ts +2 -2
- package/dist/cli/lib/config-namespace.js +2 -2
- package/dist/cli/lib/constants.d.ts +8 -8
- package/dist/cli/lib/constants.d.ts.map +1 -1
- package/dist/cli/lib/constants.js +8 -8
- package/dist/cli/lib/constants.js.map +1 -1
- package/dist/cli/lib/context-request.d.ts +4 -4
- package/dist/cli/lib/context-request.d.ts.map +1 -1
- package/dist/cli/lib/context-request.js +11 -11
- package/dist/cli/lib/context-request.js.map +1 -1
- package/dist/cli/lib/doctor-core.d.ts.map +1 -1
- package/dist/cli/lib/doctor-core.js +49 -22
- package/dist/cli/lib/doctor-core.js.map +1 -1
- package/dist/cli/lib/doctor-types.d.ts +2 -2
- package/dist/cli/lib/errors.js +6 -6
- package/dist/cli/lib/errors.js.map +1 -1
- package/dist/cli/lib/executor-log-integrity.d.ts +4 -0
- package/dist/cli/lib/executor-log-integrity.d.ts.map +1 -0
- package/dist/cli/lib/{worker-log-integrity.js → executor-log-integrity.js} +8 -8
- package/dist/cli/lib/executor-log-integrity.js.map +1 -0
- package/dist/cli/lib/{worker-log-line-map.d.ts → executor-log-line-map.d.ts} +4 -4
- package/dist/cli/lib/executor-log-line-map.d.ts.map +1 -0
- package/dist/cli/lib/{worker-log-line-map.js → executor-log-line-map.js} +4 -4
- package/dist/cli/lib/executor-log-line-map.js.map +1 -0
- package/dist/cli/lib/file-merge-gxt.js +1 -1
- package/dist/cli/lib/file-merge-gxt.js.map +1 -1
- package/dist/cli/lib/fix-hints.d.ts +6 -6
- package/dist/cli/lib/fix-hints.d.ts.map +1 -1
- package/dist/cli/lib/fix-hints.js +36 -30
- package/dist/cli/lib/fix-hints.js.map +1 -1
- package/dist/cli/lib/git-metrics.js +10 -10
- package/dist/cli/lib/git-metrics.js.map +1 -1
- package/dist/cli/lib/git-proof.d.ts +7 -5
- package/dist/cli/lib/git-proof.d.ts.map +1 -1
- package/dist/cli/lib/git-proof.js +48 -19
- package/dist/cli/lib/git-proof.js.map +1 -1
- package/dist/cli/lib/gxt-config.d.ts +9 -0
- package/dist/cli/lib/gxt-config.d.ts.map +1 -0
- package/dist/cli/lib/gxt-config.js +20 -0
- package/dist/cli/lib/gxt-config.js.map +1 -0
- package/dist/cli/lib/gxt-error-codes.d.ts +3 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +8 -3
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/init-compose.js +1 -1
- package/dist/cli/lib/init-interactive.js +1 -1
- package/dist/cli/lib/init-interactive.js.map +1 -1
- package/dist/cli/lib/init-tutorial.js +14 -14
- package/dist/cli/lib/init-tutorial.js.map +1 -1
- package/dist/cli/lib/kpi-engine.d.ts +1 -1
- package/dist/cli/lib/kpi-engine.d.ts.map +1 -1
- package/dist/cli/lib/kpi-engine.js +17 -11
- package/dist/cli/lib/kpi-engine.js.map +1 -1
- package/dist/cli/lib/legislate-forbidden-zone.d.ts +1 -1
- package/dist/cli/lib/legislate-forbidden-zone.js +1 -1
- package/dist/cli/lib/legislate.js +4 -4
- package/dist/cli/lib/mcp-governance.d.ts +2 -2
- package/dist/cli/lib/mcp-governance.d.ts.map +1 -1
- package/dist/cli/lib/mcp-governance.js +40 -10
- package/dist/cli/lib/mcp-governance.js.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +3 -3
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
- package/dist/cli/lib/mcp-upgrade.js +8 -0
- package/dist/cli/lib/mcp-upgrade.js.map +1 -1
- package/dist/cli/lib/mcp-write-guard.d.ts +20 -0
- package/dist/cli/lib/mcp-write-guard.d.ts.map +1 -0
- package/dist/cli/lib/mcp-write-guard.js +82 -0
- package/dist/cli/lib/mcp-write-guard.js.map +1 -0
- package/dist/cli/lib/missions/formatter.d.ts +1 -1
- package/dist/cli/lib/missions/formatter.js +1 -1
- package/dist/cli/lib/onboarding-flow.js +1 -1
- package/dist/cli/lib/out-of-scope-hint.js +1 -1
- package/dist/cli/lib/perimeter.d.ts +1 -1
- package/dist/cli/lib/perimeter.js +10 -10
- package/dist/cli/lib/planner-identity.d.ts +23 -0
- package/dist/cli/lib/{teacher-identity.d.ts.map → planner-identity.d.ts.map} +1 -1
- package/dist/cli/lib/{teacher-identity.js → planner-identity.js} +34 -34
- package/dist/cli/lib/{teacher-identity.js.map → planner-identity.js.map} +1 -1
- package/dist/cli/lib/planner-signature.d.ts +11 -0
- package/dist/cli/lib/planner-signature.d.ts.map +1 -0
- package/dist/cli/lib/planner-signature.js +17 -0
- package/dist/cli/lib/planner-signature.js.map +1 -0
- package/dist/cli/lib/program-audience-hook.js +1 -1
- package/dist/cli/lib/program-audience-hook.js.map +1 -1
- package/dist/cli/lib/register-proposals.js +1 -1
- package/dist/cli/lib/runtime-env.d.ts +3 -3
- package/dist/cli/lib/runtime-env.d.ts.map +1 -1
- package/dist/cli/lib/runtime-env.js +4 -4
- package/dist/cli/lib/runtime-env.js.map +1 -1
- package/dist/cli/lib/runtime-exec.d.ts +4 -4
- package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
- package/dist/cli/lib/runtime-exec.js +14 -14
- package/dist/cli/lib/runtime-exec.js.map +1 -1
- package/dist/cli/lib/staged-tmvc-guard.js +1 -1
- package/dist/cli/lib/staged-tmvc-guard.js.map +1 -1
- package/dist/cli/lib/start-orchestration.js +7 -7
- package/dist/cli/lib/start-orchestration.js.map +1 -1
- package/dist/cli/lib/status-report.d.ts +1 -1
- package/dist/cli/lib/status-report.js +7 -7
- package/dist/cli/lib/status-report.js.map +1 -1
- package/dist/cli/lib/surgeon.d.ts +3 -3
- package/dist/cli/lib/surgeon.d.ts.map +1 -1
- package/dist/cli/lib/surgeon.js +7 -7
- package/dist/cli/lib/surgeon.js.map +1 -1
- package/dist/cli/lib/surgeons/registry.d.ts +1 -1
- package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
- package/dist/cli/lib/target-architecture.d.ts +37 -0
- package/dist/cli/lib/target-architecture.d.ts.map +1 -0
- package/dist/cli/lib/target-architecture.js +155 -0
- package/dist/cli/lib/target-architecture.js.map +1 -0
- package/dist/cli/lib/telemetry-log.d.ts +1 -1
- package/dist/cli/lib/telemetry-log.d.ts.map +1 -1
- package/dist/cli/lib/telemetry-log.js +4 -4
- package/dist/cli/lib/telemetry-log.js.map +1 -1
- package/dist/cli/lib/tmvc-path.d.ts +1 -1
- package/dist/cli/lib/tmvc-path.d.ts.map +1 -1
- package/dist/cli/lib/tmvc-path.js +1 -1
- package/dist/cli/lib/tmvc-path.js.map +1 -1
- package/dist/cli/lib/trace.d.ts +8 -8
- package/dist/cli/lib/trace.d.ts.map +1 -1
- package/dist/cli/lib/trace.js +21 -21
- package/dist/cli/lib/trace.js.map +1 -1
- package/dist/cli/lib/triage-logic.js +1 -1
- package/dist/cli/lib/types.d.ts +2 -1
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.js +14 -2
- package/dist/cli/lib/upgrade-apply.js.map +1 -1
- package/dist/cli/lib/upgrade-plan.js +3 -3
- package/dist/cli/lib/verify-engine.d.ts +11 -5
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +47 -30
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-export.d.ts +6 -0
- package/dist/cli/lib/verify-export.d.ts.map +1 -0
- package/dist/cli/lib/verify-export.js +106 -0
- package/dist/cli/lib/verify-export.js.map +1 -0
- package/dist/cli/lib/verify-failure-normalize-phases.js +1 -1
- package/dist/cli/lib/verify-failure-normalize-phases.js.map +1 -1
- package/dist/cli/lib/verify-hints.d.ts +1 -1
- package/dist/cli/lib/verify-hints.d.ts.map +1 -1
- package/dist/cli/lib/verify-hints.js +16 -16
- package/dist/cli/lib/verify-hints.js.map +1 -1
- package/dist/cli/lib/verify-payload-types.d.ts +1 -0
- package/dist/cli/lib/verify-payload-types.d.ts.map +1 -1
- package/dist/cli/lib/verify-payload.d.ts.map +1 -1
- package/dist/cli/lib/verify-payload.js +3 -0
- package/dist/cli/lib/verify-payload.js.map +1 -1
- package/dist/cli/lib/verify-presenters.d.ts.map +1 -1
- package/dist/cli/lib/verify-presenters.js +12 -6
- package/dist/cli/lib/verify-presenters.js.map +1 -1
- package/dist/cli/lib/verify-sinks.d.ts.map +1 -1
- package/dist/cli/lib/verify-sinks.js +3 -2
- package/dist/cli/lib/verify-sinks.js.map +1 -1
- package/dist/cli/lib/version.gen.d.ts +1 -1
- package/dist/cli/lib/version.gen.js +1 -1
- package/dist/cli/program-arch.d.ts.map +1 -1
- package/dist/cli/program-arch.js +16 -1
- package/dist/cli/program-arch.js.map +1 -1
- package/dist/cli/program-core.js +4 -4
- package/dist/cli/program-core.js.map +1 -1
- package/dist/cli/program-mission.js +15 -15
- package/dist/cli/program-mission.js.map +1 -1
- package/dist/cli/program-planner.d.ts +3 -0
- package/dist/cli/program-planner.d.ts.map +1 -0
- package/dist/cli/program-planner.js +19 -0
- package/dist/cli/{program-teacher.js.map → program-planner.js.map} +1 -1
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +19 -8
- package/dist/cli/program-workflow.js.map +1 -1
- package/dist/cli/program.js +3 -3
- package/dist/cli/program.js.map +1 -1
- package/package.json +1 -1
- package/templates/.cursor/hooks/gxt-before-shell.sh +4 -4
- package/templates/.cursor/hooks/gxt-session-start.sh +2 -2
- package/templates/.cursor/rules/opengantry-gxt-substrate.mdc +4 -4
- package/templates/.gitagent/ARCHITECTURE.pointer.json +2 -2
- package/templates/.gitagent/foreman/MANIFEST.json +3 -3
- package/templates/.gitagent/foreman/PLANNER.allowlist.example +4 -0
- package/templates/.gitagent/missions/README.md +1 -1
- package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-ACCESS.md +3 -3
- package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-DISCOVERY.md +2 -2
- package/templates/.gitagent/planner/ARCHITECTURE_RUBRIC.template.md +25 -0
- package/templates/.gitagent/{teacher/WORKER_LOG.template.md → planner/EXECUTOR_LOG.template.md} +2 -2
- package/templates/.gitagent/{teacher → planner}/MISSION-ARCHITECT.md +11 -11
- package/templates/.gitagent/{teacher → planner}/RULES.md +4 -4
- package/templates/.githooks/post-checkout +4 -4
- package/templates/.githooks/pre-push +1 -1
- package/templates/.github/workflows/gxt-validate.yml +1 -1
- package/templates/.gitignore.gxt +1 -1
- package/templates/.prettierignore.gxt +1 -1
- package/templates/AGENTS.md +6 -6
- package/templates/docs/ARCHITECTURE.md +2 -2
- package/templates/integrations/aider/.aider.conf.yml +1 -1
- package/templates/integrations/antigravity/.agent/rules/gxt.md +1 -1
- package/templates/integrations/asset-catalog.json +7 -7
- package/templates/integrations/claude-code/CLAUDE.md +1 -1
- package/templates/integrations/cline/.clinerules/gxt.md +1 -1
- package/templates/integrations/compatibility.json +1 -1
- package/templates/integrations/junie/.junie/guidelines.md +1 -1
- package/templates/integrations/opencode/opencode.json +1 -1
- package/templates/integrations/openhands/.openhands/microagents/gxt.md +1 -1
- package/templates/integrations/recipes/_footer.md +7 -7
- package/templates/integrations/recipes/_preamble.md +7 -7
- package/templates/integrations/recipes/claude-code.md +1 -1
- package/templates/integrations/recipes/cursor.md +2 -2
- package/templates/scripts/gxt-manifest-lib.mjs +1 -1
- package/templates/scripts/gxt-runtime-env.sh +1 -1
- package/templates/skills/gantry.md +1 -1
- package/templates/skills/substrate.md +1 -1
- package/dist/cli/commands/teacher.d.ts +0 -11
- package/dist/cli/lib/teacher-identity.d.ts +0 -23
- package/dist/cli/lib/worker-log-integrity.d.ts +0 -4
- package/dist/cli/lib/worker-log-integrity.d.ts.map +0 -1
- package/dist/cli/lib/worker-log-integrity.js.map +0 -1
- package/dist/cli/lib/worker-log-line-map.d.ts.map +0 -1
- package/dist/cli/lib/worker-log-line-map.js.map +0 -1
- package/dist/cli/program-teacher.d.ts +0 -3
- package/dist/cli/program-teacher.d.ts.map +0 -1
- package/dist/cli/program-teacher.js +0 -19
- package/templates/.gitagent/foreman/TEACHER.allowlist.example +0 -4
- /package/templates/.gitagent/{teacher → planner}/KPI-REPORT.schema.yaml +0 -0
- /package/templates/.gitagent/{teacher → planner}/MISSION.schema.yaml +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schema_version": "0.1.0",
|
|
3
3
|
"kind": "unset",
|
|
4
4
|
"location": "",
|
|
5
|
-
"read_hint": "Architecture source not selected. Do NOT invent layer layout or module boundaries. Read .gitagent/
|
|
5
|
+
"read_hint": "Architecture source not selected. Do NOT invent layer layout or module boundaries. Read .gitagent/planner/ARCHITECTURE-DISCOVERY.md and ask the user before any application code changes.",
|
|
6
6
|
"discovery": {
|
|
7
|
-
"skill": ".gitagent/
|
|
7
|
+
"skill": ".gitagent/planner/ARCHITECTURE-DISCOVERY.md"
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"desc": "gantry CLI delivery, lib layers, and unit tests (OpenGantry specimen).",
|
|
18
18
|
"trust_threshold": "Tier-2",
|
|
19
19
|
"tmvc_roots": ["src/cli/"],
|
|
20
|
-
"forbidden_zones": [".gitagent/foreman/", ".gitagent/
|
|
20
|
+
"forbidden_zones": [".gitagent/foreman/", ".gitagent/planner/RULES.md"]
|
|
21
21
|
},
|
|
22
22
|
"substrate": {
|
|
23
|
-
"desc": "Reserved for high-risk substrate work; requires
|
|
23
|
+
"desc": "Reserved for high-risk substrate work; requires Planner mission.",
|
|
24
24
|
"trust_threshold": "Tier-3",
|
|
25
25
|
"tmvc_roots": [],
|
|
26
26
|
"forbidden_zones": []
|
|
@@ -37,6 +37,6 @@
|
|
|
37
37
|
"perimeter_protected": [
|
|
38
38
|
"**/.gxt-skill.yaml",
|
|
39
39
|
".gitagent/foreman/MANIFEST.json",
|
|
40
|
-
".gitagent/
|
|
40
|
+
".gitagent/planner/RULES.md"
|
|
41
41
|
]
|
|
42
42
|
}
|
|
@@ -12,7 +12,7 @@ Quick start:
|
|
|
12
12
|
gantry legislate "<intent>" --msn MSN-0001 --skill-key <manifest-key> [--gate-command "<cmd>"]
|
|
13
13
|
```
|
|
14
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
|
|
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 executor execution.
|
|
16
16
|
|
|
17
17
|
For the full specimen runbook, see the upstream OpenGantry adoption guide:
|
|
18
18
|
https://github.com/jeger-ai/opengantry/blob/main/docs/ADOPTION.md
|
|
@@ -25,7 +25,7 @@ Check in order:
|
|
|
25
25
|
3. **Stored credentials** — run `gantry arch cred status` (or `--slot <credential_slot>`). Status shows slot + kind only, never secrets.
|
|
26
26
|
4. **User docs** — project README / human INTEGRATIONS doc for team setup (not duplicated here).
|
|
27
27
|
|
|
28
|
-
If a path already works, record in `
|
|
28
|
+
If a path already works, record in `EXECUTOR_LOG.md` which method you used (not the secret) and fetch architecture docs.
|
|
29
29
|
|
|
30
30
|
## 3. Ask the user when detection fails
|
|
31
31
|
|
|
@@ -35,7 +35,7 @@ Ask **one focused question at a time**:
|
|
|
35
35
|
- How does your team authenticate? (PAT, API key, OAuth device flow, MCP already configured, …)
|
|
36
36
|
- Whether you may store a credential locally via `gantry arch cred set` (git-ignored, mode 600)
|
|
37
37
|
|
|
38
|
-
**Never** ask the user to paste tokens into chat, commits, or `
|
|
38
|
+
**Never** ask the user to paste tokens into chat, commits, or `EXECUTOR_LOG.md`.
|
|
39
39
|
|
|
40
40
|
## 4. Store credentials securely
|
|
41
41
|
|
|
@@ -58,7 +58,7 @@ To remove: `gantry arch cred unset --slot <name>`.
|
|
|
58
58
|
|
|
59
59
|
## 5. Context request (GXT)
|
|
60
60
|
|
|
61
|
-
Before first access to an **external** architecture source, log a **Context Request** in `
|
|
61
|
+
Before first access to an **external** architecture source, log a **Context Request** in `EXECUTOR_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
62
|
|
|
63
63
|
## 6. Read architecture docs
|
|
64
64
|
|
|
@@ -23,8 +23,8 @@ Read this when [`.gitagent/ARCHITECTURE.pointer.json`](../ARCHITECTURE.pointer.j
|
|
|
23
23
|
- Which directories are entry points for each skill / TMVC root in MANIFEST?
|
|
24
24
|
- Dependency direction rules (what may import what)?
|
|
25
25
|
- Existing conventions from another repo or ADR to follow?
|
|
26
|
-
4. **Log a Context Request** in `
|
|
27
|
-
5. **Update the pointer** (or ask the user /
|
|
26
|
+
4. **Log a Context Request** in `EXECUTOR_LOG.md` when the discussion expands scope beyond current TMVC.
|
|
27
|
+
5. **Update the pointer** (or ask the user / Planner to) once source is chosen — e.g. set `kind: file` and fill `docs/ARCHITECTURE.md`, or `kind: external` with `access` if authenticated.
|
|
28
28
|
6. **Only then** proceed with implementation aligned to documented layout and MANIFEST `tmvc_roots`.
|
|
29
29
|
|
|
30
30
|
## After the user answers
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ARCHITECTURE_RUBRIC (advisory LLM judge)
|
|
2
|
+
|
|
3
|
+
Use this rubric with a BYO `llm_verifiers` command in mission YAML. Verdicts are **ADVISORY_ONLY** — write `findings[]` to the KPI report; do **not** add blocking `kpi_gate` thresholds on judge metrics.
|
|
4
|
+
|
|
5
|
+
Anchor each question to a `TARGET_ARCHITECTURE.yaml` rule `id`:
|
|
6
|
+
|
|
7
|
+
| Rule ID | Review question |
|
|
8
|
+
|---------|-----------------|
|
|
9
|
+
| `RULE-LIB-TO-COMMAND` | Did the diff introduce lib → command imports? |
|
|
10
|
+
| `RULE-LIB-COMMANDER` | Did lib code import `commander` directly? |
|
|
11
|
+
| `RULE-COMMAND-RUNTIME-EXEC-PROCESS` | Did a command bypass `runtime-exec.js`? |
|
|
12
|
+
|
|
13
|
+
Human Architect override: commit subject must include **`[GXT-ARCH-OVERRIDE]`** with rationale when accepting advisory violations.
|
|
14
|
+
|
|
15
|
+
Example verifier stdout fragment:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"metrics": { "arch_judge::reviewed": 1 },
|
|
20
|
+
"findings": [
|
|
21
|
+
{ "id": "RULE-LIB-COMMANDER", "severity": "warn", "message": "…" }
|
|
22
|
+
],
|
|
23
|
+
"exit_code": 0
|
|
24
|
+
}
|
|
25
|
+
```
|
package/templates/.gitagent/{teacher/WORKER_LOG.template.md → planner/EXECUTOR_LOG.template.md}
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
#
|
|
1
|
+
# EXECUTOR_LOG
|
|
2
2
|
|
|
3
|
-
<!-- Mission trace_rows PASS quotes go here. Optional [SKILL-EXEC] reviewer context: see .gitagent/
|
|
3
|
+
<!-- Mission trace_rows PASS quotes go here. Optional [SKILL-EXEC] reviewer context: see .gitagent/planner/RUNTIME.md § Optional skill context stamps. -->
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Mission Architect (
|
|
1
|
+
# Mission Architect (Planner-Assistant Contract)
|
|
2
2
|
|
|
3
|
-
IDE chat protocol for drafting missions **before**
|
|
3
|
+
IDE chat protocol for drafting missions **before** executor execution. No CLI chatbot. No agent-authored Git commits.
|
|
4
4
|
|
|
5
5
|
## When to activate
|
|
6
6
|
|
|
@@ -50,7 +50,7 @@ Use for new features, multi-file scope, forbidden-zone proximity, path_risks/ris
|
|
|
50
50
|
|
|
51
51
|
## Handoff (legislate only)
|
|
52
52
|
|
|
53
|
-
**Forbidden:** multi-line YAML mission blocks, “save this file manually” instructions, agent-authored
|
|
53
|
+
**Forbidden:** multi-line YAML mission blocks, “save this file manually” instructions, agent-authored Planner git commits.
|
|
54
54
|
|
|
55
55
|
### Cursor MCP (preferred — zero copy/paste)
|
|
56
56
|
|
|
@@ -60,8 +60,8 @@ When the OpenGantry MCP server is configured (`.cursor/mcp.json`):
|
|
|
60
60
|
2. Present the returned `chat_message_to_user` to the human.
|
|
61
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
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
|
|
64
|
-
6. After the human commits, call **`gxt_check_signature`**. On `signature_valid`, proceed to **`gxt_pin_mission`** then
|
|
63
|
+
5. Render the returned `suggested_human_action` in a fenced shell block for the Planner commit.
|
|
64
|
+
6. After the human commits, call **`gxt_check_signature`**. On `signature_valid`, proceed to **`gxt_pin_mission`** then executor phase.
|
|
65
65
|
|
|
66
66
|
This two-step draft/execute gate prevents silent legislation even when Cursor runs tools in auto-run (“Yolo”) mode.
|
|
67
67
|
|
|
@@ -78,16 +78,16 @@ gantry legislate "<intent summary>" --msn MSN-NNNN --skill-key <key> \
|
|
|
78
78
|
- Quote `--gate-command` when it contains spaces.
|
|
79
79
|
- Omit `--gate-success-substring` when exit code 0 alone is sufficient.
|
|
80
80
|
|
|
81
|
-
**Stop after handoff.** Do not write application code until the
|
|
81
|
+
**Stop after handoff.** Do not write application code until the Planner commits and pins the mission.
|
|
82
82
|
|
|
83
|
-
##
|
|
83
|
+
## Planner loop (human)
|
|
84
84
|
|
|
85
85
|
1. Approve draft (MCP) or paste and run `gantry legislate` (CLI).
|
|
86
86
|
2. Optionally review/edit the generated YAML.
|
|
87
|
-
3. `git commit -m "[MSN-NNNN] legislate …"` including the mission file (
|
|
87
|
+
3. `git commit -m "[MSN-NNNN] legislate …"` including the mission file (Planner email in `GANTRY_TEACHER_EMAILS`).
|
|
88
88
|
4. Pin mission (`gxt_pin_mission` MCP tool or `scripts/gxt-pin-mission.sh`).
|
|
89
|
-
5.
|
|
89
|
+
5. Executor phase begins.
|
|
90
90
|
|
|
91
|
-
##
|
|
91
|
+
## Executor phase (after pin)
|
|
92
92
|
|
|
93
|
-
Edit within TMVC → append PASS quotes to `
|
|
93
|
+
Edit within TMVC → append PASS quotes to `EXECUTOR_LOG.md` → `gantry verify --mission …` (or `gxt_verify`) → pin stays until mission complete.
|
|
@@ -11,18 +11,18 @@ Normative keywords **MUST**, **MUST NOT**, and **SHOULD** follow RFC 2119.
|
|
|
11
11
|
## 2. Segregation of duties
|
|
12
12
|
|
|
13
13
|
- The agent executing the gate MUST NOT be the same actor declaring PASS.
|
|
14
|
-
- Mission law is
|
|
14
|
+
- Mission law is Planner-owned; executors MUST NOT silently rewrite mission law.
|
|
15
15
|
|
|
16
16
|
## 3. Trace-mapped verification
|
|
17
17
|
|
|
18
|
-
- PASS claims MUST quote `
|
|
18
|
+
- PASS claims MUST quote `EXECUTOR_LOG.md` with a valid anchor (line or timestamp).
|
|
19
19
|
- Missing quotes/anchors for claimed PASS is evidence tampering and MUST fail verification.
|
|
20
20
|
|
|
21
21
|
## 4. Dynamic TMVC
|
|
22
22
|
|
|
23
23
|
- Work is bounded to manifest roots unless explicit mission expansion is approved.
|
|
24
|
-
- Access outside effective TMVC requires a context request recorded in `
|
|
25
|
-
- Access into forbidden zones MUST fail closed unless
|
|
24
|
+
- Access outside effective TMVC requires a context request recorded in `EXECUTOR_LOG.md`.
|
|
25
|
+
- Access into forbidden zones MUST fail closed unless Planner policy explicitly allows it.
|
|
26
26
|
|
|
27
27
|
## 5. Mission commit indexing
|
|
28
28
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# post-checkout: create empty
|
|
2
|
+
# post-checkout: create empty EXECUTOR_LOG.md on branch checkouts (feature branches only).
|
|
3
3
|
# Git passes: $1 = previous HEAD, $2 = new HEAD, $3 = 1 if branch checkout, 0 if file checkout.
|
|
4
4
|
set -euo pipefail
|
|
5
5
|
|
|
@@ -15,12 +15,12 @@ case "$branch" in
|
|
|
15
15
|
main|master) exit 0 ;;
|
|
16
16
|
esac
|
|
17
17
|
|
|
18
|
-
log_file="
|
|
18
|
+
log_file="EXECUTOR_LOG.md"
|
|
19
19
|
[[ -f "$log_file" ]] && exit 0
|
|
20
20
|
|
|
21
|
-
template=".gitagent/
|
|
21
|
+
template=".gitagent/planner/EXECUTOR_LOG.template.md"
|
|
22
22
|
if [[ -f "$template" ]]; then
|
|
23
23
|
cp "$template" "$log_file"
|
|
24
24
|
else
|
|
25
|
-
printf '%s\n\n' '#
|
|
25
|
+
printf '%s\n\n' '# EXECUTOR_LOG' >"$log_file"
|
|
26
26
|
fi
|
|
@@ -38,7 +38,7 @@ for mission in "${missions[@]}"; do
|
|
|
38
38
|
"${GAPMAN[@]}" verify --mission "$mission" --pre-push || exit 1
|
|
39
39
|
done
|
|
40
40
|
|
|
41
|
-
if git diff --name-only "${base}..HEAD" | grep -qE '^\.gitagent/foreman/MANIFEST\.json$|^\.gitagent/
|
|
41
|
+
if git diff --name-only "${base}..HEAD" | grep -qE '^\.gitagent/foreman/MANIFEST\.json$|^\.gitagent/planner/RULES\.md$|\.gxt-skill\.yaml$'; then
|
|
42
42
|
echo "pre-push: gantry perimeter (advisory)" >&2
|
|
43
43
|
"${GAPMAN[@]}" perimeter --base-ref "$base" || true
|
|
44
44
|
fi
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# subject [MSN-NNNN] (four digits), a valid gxt-bypass git note, or satisfy
|
|
7
7
|
# repository-declared trusted_automation policy (.gitagent/config.json).
|
|
8
8
|
# Mission purity: scripts/verify-pr-missions.sh — one [MSN-NNNN] per PR commit range.
|
|
9
|
-
# Paths = fixed substrate (.gitagent/,
|
|
9
|
+
# Paths = fixed substrate (.gitagent/, EXECUTOR_LOG.md, .githooks/, gxt-validate.yml)
|
|
10
10
|
# + all MANIFEST skills[].tmvc_roots (Node via scripts/gxt-manifest-lib.mjs).
|
|
11
11
|
# Logic: scripts/validate-gxt.sh — keep workflow header and script in sync.
|
|
12
12
|
|
package/templates/.gitignore.gxt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
EXECUTOR_LOG.md
|
package/templates/AGENTS.md
CHANGED
|
@@ -2,27 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
Before planning, editing code, or running substantive commands in this repository:
|
|
4
4
|
|
|
5
|
-
1. Read **`.gitagent/
|
|
5
|
+
1. Read **`.gitagent/planner/RULES.md`** — governance (SOD, trace mapping, risk tiers, dynamic TMVC, Rule 4.4).
|
|
6
6
|
2. Read **`.gitagent/foreman/MANIFEST.json`** — Foreman map (`schema_version`, per-skill `trust_threshold`, `tmvc_roots`, `forbidden_zones`, `path_risks`, `risk_keywords`).
|
|
7
7
|
|
|
8
|
-
Treat these as the **law + routing contract** for agent work. Before editing application code, read **`.gitagent/ARCHITECTURE.pointer.json`**. If **`kind` is `unset`**, or docs are stub/missing, read **`.gitagent/
|
|
8
|
+
Treat these as the **law + routing contract** for agent work. Before editing application code, read **`.gitagent/ARCHITECTURE.pointer.json`**. If **`kind` is `unset`**, or docs are stub/missing, read **`.gitagent/planner/ARCHITECTURE-DISCOVERY.md`** and ask the user — do not invent architecture. When `access.required` is true, read **`.gitagent/planner/ARCHITECTURE-ACCESS.md`**. For GXT workflow orientation, see **`.gitagent/README.md`**.
|
|
9
9
|
|
|
10
10
|
## Mission Architect (IDE chat)
|
|
11
11
|
|
|
12
12
|
**Activation macro:**
|
|
13
13
|
|
|
14
14
|
- If a user prompt starts with `/gantry`, treat that as an explicit Mission Architect activation request. Do not use `/plan` — Cursor reserves it for native Plan Mode.
|
|
15
|
-
- On activation, follow **`.gitagent/
|
|
15
|
+
- On activation, follow **`.gitagent/planner/MISSION-ARCHITECT.md`** and complete the legislate handoff flow.
|
|
16
16
|
|
|
17
17
|
**Implicit interception:**
|
|
18
18
|
|
|
19
|
-
When the user **explicitly** asks to write, edit, refactor, or implement code and **no mission is pinned**, read **`.gitagent/
|
|
19
|
+
When the user **explicitly** asks to write, edit, refactor, or implement code and **no mission is pinned**, read **`.gitagent/planner/MISSION-ARCHITECT.md`** and follow it.
|
|
20
20
|
|
|
21
21
|
- **Do NOT** trigger for questions, explanations, or code discovery — answer normally.
|
|
22
22
|
- **Fast-path** trivial single-file work; **full interview** for heavy/risky scope.
|
|
23
|
-
- **Cursor MCP handoff (preferred):** `gxt_draft_legislation` → human chat approval → `gxt_execute_legislation` →
|
|
23
|
+
- **Cursor MCP handoff (preferred):** `gxt_draft_legislation` → human chat approval → `gxt_execute_legislation` → Planner commit → `gxt_check_signature` → `gxt_pin_mission`.
|
|
24
24
|
- **CLI fallback:** one copy-paste `gantry legislate …` command — never raw YAML blocks.
|
|
25
25
|
|
|
26
26
|
## External IDE skills (edge quarantine)
|
|
27
27
|
|
|
28
|
-
Third-party agent skills are **untrusted edge helpers** — not GXT law. Keep them in local IDE config (gitignored); do not add subjective style guides to this file or `.gitagent/`. Repository safety is deterministic gates only (compile, tests, import layers). Optional `[SKILL-EXEC]` lines in `
|
|
28
|
+
Third-party agent skills are **untrusted edge helpers** — not GXT law. Keep them in local IDE config (gitignored); do not add subjective style guides to this file or `.gitagent/`. Repository safety is deterministic gates only (compile, tests, import layers). Optional `[SKILL-EXEC]` lines in `EXECUTOR_LOG.md` are reviewer context only — see `.gitagent/planner/RUNTIME.md`.
|
|
@@ -9,11 +9,11 @@ This file is the **default** architecture source when [`.gitagent/ARCHITECTURE.p
|
|
|
9
9
|
|
|
10
10
|
Agents discover how to read architecture via the pointer on first substantive work — do not hardcode alternate paths in IDE rules.
|
|
11
11
|
|
|
12
|
-
**If the pointer has `kind: unset`**, or pointed docs are still the init stub, read **`.gitagent/
|
|
12
|
+
**If the pointer has `kind: unset`**, or pointed docs are still the init stub, read **`.gitagent/planner/ARCHITECTURE-DISCOVERY.md`** and ask the user structured questions before implementing — never invent the full architecture yourself.
|
|
13
13
|
|
|
14
14
|
## GXT governance (always read first)
|
|
15
15
|
|
|
16
|
-
1. **`.gitagent/
|
|
16
|
+
1. **`.gitagent/planner/RULES.md`** — law (SOD, trace, TMVC, Rule 4.4).
|
|
17
17
|
2. **`.gitagent/foreman/MANIFEST.json`** — skill routing, `tmvc_roots`, forbidden zones.
|
|
18
18
|
|
|
19
19
|
Workflow orientation: **`.gitagent/README.md`**.
|
|
@@ -4,7 +4,7 @@ always_on: true
|
|
|
4
4
|
|
|
5
5
|
# GXT substrate (Google Antigravity)
|
|
6
6
|
|
|
7
|
-
Read **`AGENTS.md`**, **`.gitagent/
|
|
7
|
+
Read **`AGENTS.md`**, **`.gitagent/planner/RULES.md`**, and **`.gitagent/foreman/MANIFEST.json`** before acting.
|
|
8
8
|
|
|
9
9
|
Bootstrap: `source scripts/gxt-runtime-env.sh .gitagent/missions/<file>.yaml`
|
|
10
10
|
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
{ "targetPath": ".gitagent/foreman/MANIFEST.json", "mode": "scaffold_only", "tags": ["core"] },
|
|
16
16
|
{ "targetPath": ".gitagent/foreman/SUBSTRATE.version.json", "mode": "scaffold_only", "tags": ["core"] },
|
|
17
17
|
{ "targetPath": ".gitagent/missions/README.md", "mode": "scaffold_only", "tags": ["core"] },
|
|
18
|
-
{ "targetPath": ".gitagent/
|
|
19
|
-
{ "targetPath": ".gitagent/
|
|
20
|
-
{ "targetPath": ".gitagent/
|
|
21
|
-
{ "targetPath": ".gitagent/
|
|
22
|
-
{ "targetPath": ".gitagent/
|
|
23
|
-
{ "targetPath": ".gitagent/
|
|
24
|
-
{ "targetPath": ".gitagent/
|
|
18
|
+
{ "targetPath": ".gitagent/planner/ARCHITECTURE-ACCESS.md", "mode": "scaffold_only", "tags": ["core"] },
|
|
19
|
+
{ "targetPath": ".gitagent/planner/ARCHITECTURE-DISCOVERY.md", "mode": "scaffold_only", "tags": ["core"] },
|
|
20
|
+
{ "targetPath": ".gitagent/planner/EXECUTOR_LOG.template.md", "mode": "managed_strict", "tags": ["core"] },
|
|
21
|
+
{ "targetPath": ".gitagent/planner/KPI-REPORT.schema.yaml", "mode": "managed_strict", "tags": ["core"] },
|
|
22
|
+
{ "targetPath": ".gitagent/planner/MISSION-ARCHITECT.md", "mode": "scaffold_only", "tags": ["core"] },
|
|
23
|
+
{ "targetPath": ".gitagent/planner/MISSION.schema.yaml", "mode": "managed_strict", "tags": ["core"] },
|
|
24
|
+
{ "targetPath": ".gitagent/planner/RULES.md", "mode": "scaffold_only", "tags": ["core"] },
|
|
25
25
|
{ "targetPath": ".githooks/post-checkout", "mode": "managed_strict", "executable": true, "tags": ["hooks"] },
|
|
26
26
|
{ "targetPath": ".githooks/pre-commit", "mode": "managed_strict", "executable": true, "tags": ["hooks"] },
|
|
27
27
|
{ "targetPath": ".githooks/pre-push", "mode": "managed_strict", "executable": true, "tags": ["hooks"] },
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Before planning, editing code, or running substantive commands:
|
|
4
4
|
|
|
5
5
|
1. Read **`AGENTS.md`** — cross-tool entry.
|
|
6
|
-
2. Read **`.gitagent/
|
|
6
|
+
2. Read **`.gitagent/planner/RULES.md`** — governance law.
|
|
7
7
|
3. Read **`.gitagent/foreman/MANIFEST.json`** — routing map (TMVC roots, forbidden zones).
|
|
8
8
|
|
|
9
9
|
Do not duplicate full RULES here. For code architecture read `.gitagent/ARCHITECTURE.pointer.json` first (follow `read_hint`). For GXT workflow see `.gitagent/README.md`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GXT policy for Cline
|
|
2
2
|
|
|
3
|
-
Before substantive work, read `AGENTS.md`, `.gitagent/
|
|
3
|
+
Before substantive work, read `AGENTS.md`, `.gitagent/planner/RULES.md`, and `.gitagent/foreman/MANIFEST.json`.
|
|
4
4
|
|
|
5
5
|
Terminal bootstrap: `source scripts/gxt-runtime-env.sh .gitagent/missions/<file>.yaml`
|
|
6
6
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Before planning, editing code, or running substantive commands:
|
|
4
4
|
|
|
5
5
|
1. Read **`AGENTS.md`**
|
|
6
|
-
2. Read **`.gitagent/
|
|
6
|
+
2. Read **`.gitagent/planner/RULES.md`**
|
|
7
7
|
3. Read **`.gitagent/foreman/MANIFEST.json`**
|
|
8
8
|
|
|
9
9
|
Bootstrap: `source scripts/gxt-runtime-env.sh .gitagent/missions/<file>.yaml`
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
## Closed-loop checklist
|
|
4
4
|
|
|
5
|
-
1. `gantry init` + `export
|
|
6
|
-
2. `gantry legislate "<intent>" --msn MSN-NNNN --skill-key <key>` →
|
|
5
|
+
1. `gantry init` + `export GANTRY_PLANNER_EMAILS="$(git config user.email)"` + `gantry doctor`
|
|
6
|
+
2. `gantry legislate "<intent>" --msn MSN-NNNN --skill-key <key>` → Planner `[MSN-NNNN]` commit
|
|
7
7
|
3. Bootstrap: `source scripts/gxt-runtime-env.sh .gitagent/missions/<file>.yaml`
|
|
8
|
-
4.
|
|
8
|
+
4. Executor executes; append PASS quotes to `EXECUTOR_LOG.md`
|
|
9
9
|
5. `gantry verify --mission .gitagent/missions/<file>.yaml`
|
|
10
10
|
6. `git push` (pre-push uses `--pre-push` handoff semantics)
|
|
11
11
|
|
|
12
12
|
## External IDE skills
|
|
13
13
|
|
|
14
|
-
Optional third-party skill packs belong on the **local IDE edge** (gitignored), not in GXT substrate or init templates. All edits are zero-trust until deterministic gates pass. Optional `[SKILL-EXEC]` lines in `
|
|
14
|
+
Optional third-party skill packs belong on the **local IDE edge** (gitignored), not in GXT substrate or init templates. All edits are zero-trust until deterministic gates pass. Optional `[SKILL-EXEC]` lines in `EXECUTOR_LOG.md` are reviewer context only — see `.gitagent/planner/RUNTIME.md`.
|
|
15
15
|
|
|
16
16
|
## Troubleshooting
|
|
17
17
|
|
|
18
18
|
| Symptom | Fix |
|
|
19
19
|
|---------|-----|
|
|
20
|
-
| `NO_MSN_COMMITS` on push |
|
|
21
|
-
| Pre-push OK, full verify fails trace | Fill `
|
|
22
|
-
| `
|
|
20
|
+
| `NO_MSN_COMMITS` on push | Planner `[MSN-NNNN]` commit modifying the mission file; set `GANTRY_PLANNER_EMAILS` |
|
|
21
|
+
| Pre-push OK, full verify fails trace | Fill `EXECUTOR_LOG.md`; align `trace_rows`; re-run full verify |
|
|
22
|
+
| `PLANNER_IDENTITY_UNCONFIGURED` | `export GANTRY_PLANNER_EMAILS="$(git config user.email)"` |
|
|
23
23
|
|
|
24
24
|
Integration compat verified by OpenGantry release — run `gantry doctor` for detected wiring and stale paths.
|
|
@@ -4,9 +4,9 @@ OpenGantry is **tool-agnostic** and **vendor-neutral** — any agent that can ru
|
|
|
4
4
|
|
|
5
5
|
## Universal rule
|
|
6
6
|
|
|
7
|
-
1.
|
|
8
|
-
2. Bootstrap mission-scoped runtime env before
|
|
9
|
-
3. Append trace evidence to `
|
|
7
|
+
1. Planner legislates a mission under `.gitagent/missions/` (IDE chat: [`.gitagent/planner/MISSION-ARCHITECT.md`](.gitagent/planner/MISSION-ARCHITECT.md) — one copy-paste `gantry legislate` command).
|
|
8
|
+
2. Bootstrap mission-scoped runtime env before executor execution.
|
|
9
|
+
3. Append trace evidence to `EXECUTOR_LOG.md`.
|
|
10
10
|
4. Finish with `gantry verify --mission <path>` (full verify before merge / claiming done).
|
|
11
11
|
|
|
12
12
|
```bash
|
|
@@ -19,8 +19,8 @@ gantry runtime env --mission .gitagent/missions/MSN-0001.<slug>.yaml --json
|
|
|
19
19
|
|
|
20
20
|
| Tier | Mechanism | What it actually traps |
|
|
21
21
|
|------|-----------|------------------------|
|
|
22
|
-
| **Process-boundary** | `gantry runtime exec` | TMVC roots + forbidden zones for subprocess
|
|
23
|
-
| **Deterministic hook** | Tool hooks (Cursor `beforeShellExecution` on law/manifest paths) | Shell writes to `.gitagent/foreman/`, `.gitagent/
|
|
22
|
+
| **Process-boundary** | `gantry runtime exec` | TMVC roots + forbidden zones for subprocess executors |
|
|
23
|
+
| **Deterministic hook** | Tool hooks (Cursor `beforeShellExecution` on law/manifest paths) | Shell writes to `.gitagent/foreman/`, `.gitagent/planner/RULES.md` |
|
|
24
24
|
| **Advisory** | Rules / `AGENTS.md` / tool memory | IDE Agent Write/Edit — LLM compliance, not kernel enforcement |
|
|
25
25
|
|
|
26
26
|
IDE agent file edits are not TMVC-trapped unless the tool runs inside `runtime exec`.
|
|
@@ -30,14 +30,14 @@ IDE agent file edits are not TMVC-trapped unless the tool runs inside `runtime e
|
|
|
30
30
|
| File | Role |
|
|
31
31
|
|------|------|
|
|
32
32
|
| `AGENTS.md` | Cross-tool entry: read RULES + MANIFEST before acting |
|
|
33
|
-
| `.gitagent/
|
|
33
|
+
| `.gitagent/planner/RULES.md` | Governance law |
|
|
34
34
|
| `.gitagent/foreman/MANIFEST.json` | Routing map (TMVC roots, forbidden zones) |
|
|
35
35
|
|
|
36
36
|
## Shared session variables
|
|
37
37
|
|
|
38
38
|
| Variable | Purpose |
|
|
39
39
|
|----------|---------|
|
|
40
|
-
| `
|
|
40
|
+
| `GANTRY_PLANNER_EMAILS` | Comma-separated Git author emails allowed to legislate |
|
|
41
41
|
| `GANTRY_MISSION` | Optional mission path for `gxt-runtime-env.sh` |
|
|
42
42
|
| `GXT_*` | Emitted by `gantry runtime env` |
|
|
43
43
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
### Claude Code
|
|
2
2
|
|
|
3
|
-
- **Context injection:** Minimal `CLAUDE.md` pointing at `AGENTS.md`, `.gitagent/
|
|
3
|
+
- **Context injection:** Minimal `CLAUDE.md` pointing at `AGENTS.md`, `.gitagent/planner/RULES.md`, `.gitagent/foreman/MANIFEST.json`.
|
|
4
4
|
- **Session bootstrap (shell wrapper — no project hooks):**
|
|
5
5
|
|
|
6
6
|
```bash
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
### Cursor
|
|
2
2
|
|
|
3
3
|
- **Context injection:** `.cursor/rules/opengantry-gxt-substrate.mdc` (`alwaysApply: true`); `.cursor/hooks.json` — `sessionStart` mission scope + `beforeShellExecution` fallback guard; `.cursor/mcp.json` — `gantry mcp serve`.
|
|
4
|
-
- **Mission Architect:** `/gantry` macro (do not use `/plan` — Cursor native Plan Mode); implicit activation when user asks to **write/edit code** with no pinned mission. Follow `.gitagent/
|
|
5
|
-
- **MCP legislation:** `gxt_draft_legislation` → semantic chat approval → `gxt_execute_legislation` →
|
|
4
|
+
- **Mission Architect:** `/gantry` macro (do not use `/plan` — Cursor native Plan Mode); implicit activation when user asks to **write/edit code** with no pinned mission. Follow `.gitagent/planner/MISSION-ARCHITECT.md`.
|
|
5
|
+
- **MCP legislation:** `gxt_draft_legislation` → semantic chat approval → `gxt_execute_legislation` → Planner commit → `gxt_check_signature` → `gxt_pin_mission`. Or **`gxt_start_orchestration`** for goal-first CLI parity.
|
|
6
6
|
- **Verify remediation:** `gxt_verify` returns `error_code`, `fix_hints`, `next_actions` on failure; CLI equivalent: `gantry verify --mission … --fix`.
|
|
7
7
|
- **Session bootstrap:**
|
|
8
8
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# Load GXT
|
|
2
|
+
# Load GXT Executor Runtime Contract into the current shell (any IDE terminal / manual runs).
|
|
3
3
|
set -euo pipefail
|
|
4
4
|
|
|
5
5
|
ROOT="$(git rev-parse --show-toplevel 2>/dev/null || true)"
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Manifest key `gantry`. **gantry** CLI and tests under `src/cli/` per [`.gitagent/foreman/MANIFEST.json`](../.gitagent/foreman/MANIFEST.json).
|
|
4
4
|
|
|
5
|
-
Substrate paths (`.gitagent/`, hooks, workflows) require
|
|
5
|
+
Substrate paths (`.gitagent/`, hooks, workflows) require Planner legislation and **`substrate`** or explicit mission scope — do not edit Foreman law without a mission.
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface TeacherShowOptions {
|
|
2
|
-
json?: boolean;
|
|
3
|
-
cwd?: string;
|
|
4
|
-
}
|
|
5
|
-
export interface TeacherSetOptions {
|
|
6
|
-
emails: string[];
|
|
7
|
-
cwd?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare function runTeacherShow(options?: TeacherShowOptions): void;
|
|
10
|
-
export declare function runTeacherSet(options: TeacherSetOptions): void;
|
|
11
|
-
//# sourceMappingURL=teacher.d.ts.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export { ENV_TEACHER_EMAILS } from "./config-namespace.js";
|
|
2
|
-
export declare const REL_TEACHER_ALLOWLIST: ".gitagent/foreman/TEACHER.allowlist";
|
|
3
|
-
export declare const REL_TEACHER_ALLOWLIST_LOCAL: ".gitagent/foreman/TEACHER.allowlist.local";
|
|
4
|
-
export type TeacherIdentitySource = "allowlist_file" | "allowlist_local" | "git_config" | "env" | "git_user_email" | "unset";
|
|
5
|
-
export interface ResolvedTeacherIdentity {
|
|
6
|
-
emails: string[];
|
|
7
|
-
source: TeacherIdentitySource;
|
|
8
|
-
/** Human-readable detail for doctor / errors */
|
|
9
|
-
detail: string;
|
|
10
|
-
}
|
|
11
|
-
/** Legacy env-only parser (tests / explicit CI override). */
|
|
12
|
-
export declare function parseTeacherEmailsFromEnv(): string[];
|
|
13
|
-
/**
|
|
14
|
-
* Resolve Teacher legislation allowlist for a repository.
|
|
15
|
-
* Repo-local sources win over shell env so multi-project developers are not cross-contaminated.
|
|
16
|
-
*/
|
|
17
|
-
export declare function resolveTeacherEmails(repoRoot: string): ResolvedTeacherIdentity;
|
|
18
|
-
export declare function serializeTeacherAllowlist(emails: string[]): string;
|
|
19
|
-
export declare function writeTeacherAllowlistLocal(repoRoot: string, emails: string[]): void;
|
|
20
|
-
/** Create gitignored local allowlist from repo git user.email when missing. */
|
|
21
|
-
export declare function ensureTeacherAllowlistOnInit(repoRoot: string): boolean;
|
|
22
|
-
export declare function teacherIdentitySetupHint(_repoRoot: string): string;
|
|
23
|
-
//# sourceMappingURL=teacher-identity.d.ts.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { DoctorLine } from "./doctor-types.js";
|
|
2
|
-
/** Warn-level integrity checks for WORKER_LOG.md before verify fails opaquely. */
|
|
3
|
-
export declare function runWorkerLogIntegrityDoctorChecks(repoRoot: string): DoctorLine[];
|
|
4
|
-
//# sourceMappingURL=worker-log-integrity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-log-integrity.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/worker-log-integrity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,kFAAkF;AAClF,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAgDhF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-log-integrity.js","sourceRoot":"","sources":["../../../src/cli/lib/worker-log-integrity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAElD,kFAAkF;AAClF,MAAM,UAAU,iCAAiC,CAAC,QAAgB;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,wEAAwE;SAClF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,6CAA6C,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;aAC1E,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,wEAAwE;SAClF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,OAAO;SAC5B,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACxF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-log-line-map.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/worker-log-line-map.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACrC;AAED,uEAAuE;AACvE,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EAAE,GACf,gBAAgB,GAAG,IAAI,CAgBzB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/E;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK1D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-log-line-map.js","sourceRoot":"","sources":["../../../src/cli/lib/worker-log-line-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AASzB,uEAAuE;AACvE,MAAM,UAAU,8BAA8B,CAC5C,aAAqB,EACrB,MAAgB;IAEhB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAqB,EAAE,KAAa;IACnE,OAAO,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,CACL,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC;QACrD,uDAAuD,CAAC,IAAI,CAAC,MAAM,CAAC,CACrE,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"program-teacher.d.ts","sourceRoot":"","sources":["../../src/cli/program-teacher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkB9D"}
|