@moretea-labs/forge 1.5.0-rc.1 → 1.5.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/AGENTS.md +9 -11
- package/CHANGELOG.md +19 -0
- package/CLAUDE.md +8 -10
- package/DESIGN.md +278 -0
- package/README.md +70 -90
- package/README.zh-CN.md +50 -55
- package/SKILL.md +8 -11
- package/THIRD_PARTY_NOTICES.md +9 -3
- package/assets/branding/README.md +4 -2
- package/assets/hooks/lib/workflow-state.sh +19 -18
- package/assets/hooks/post-edit-guard.sh +6 -75
- package/assets/hooks/prompt-guard.sh +24 -12
- package/assets/hooks/session-start-context.sh +17 -17
- package/assets/hooks/stop-orchestrator.sh +2 -2
- package/assets/partials/04-project-structure.partial.md +6 -6
- package/assets/partials/05-workflow.partial.md +6 -6
- package/assets/partials/07-footer.partial.md +1 -1
- package/assets/partials/08-orchestration.partial.md +2 -2
- package/assets/partials-agents/02-operating-mode.partial.md +5 -5
- package/assets/partials-agents/03-orchestration.partial.md +3 -3
- package/assets/partials-agents/04-task-protocol.partial.md +3 -3
- package/assets/partials-agents/08-deep-docs.partial.md +1 -1
- package/assets/reference-configs/agentic-development-flow.md +49 -86
- package/assets/reference-configs/external-tooling.md +21 -61
- package/assets/reference-configs/handoff-protocol.md +25 -20
- package/assets/reference-configs/harness-overview.md +8 -8
- package/assets/templates/helpers/archive-workflow.sh +0 -1
- package/assets/templates/helpers/capture-plan.sh +3 -3
- package/assets/templates/helpers/check-task-workflow.sh +2 -2
- package/assets/templates/helpers/codex-handoff-resume.sh +5 -5
- package/assets/templates/helpers/ensure-task-workflow.sh +37 -35
- package/assets/templates/helpers/new-plan.sh +1 -1
- package/assets/templates/helpers/plan-to-todo.sh +2 -2
- package/assets/templates/helpers/prepare-codex-handoff.sh +2 -2
- package/assets/templates/helpers/prepare-handoff.sh +9 -9
- package/assets/templates/helpers/refresh-current-status.sh +2 -2
- package/assets/templates/helpers/ship-worktrees.sh +1 -1
- package/assets/templates/helpers/sprint-backlog.sh +1 -1
- package/assets/templates/helpers/verify-sprint.sh +7 -7
- package/assets/templates/helpers/workstream-sync.sh +1 -1
- package/assets/templates/plan.template.md +1 -1
- package/assets/workflow-contract.v1.json +6 -3
- package/docs/architecture/current/README.md +10 -9
- package/docs/architecture/current/approved-target-architecture.zh-CN.md +2 -2
- package/docs/architecture/current/architecture-invariants.md +2 -2
- package/docs/architecture/current/automation-and-schedule-engine.md +15 -15
- package/docs/architecture/current/codegraph-context-provider.md +2 -2
- package/docs/architecture/current/control-plane-authority-inventory.md +12 -0
- package/docs/architecture/current/dispatch-and-agent-strategy.md +11 -11
- package/docs/architecture/current/entity-model.md +0 -27
- package/docs/architecture/current/failure-recovery.md +0 -24
- package/docs/architecture/current/governance.md +1 -1
- package/docs/architecture/current/implementation-status.md +1 -1
- package/docs/architecture/current/legacy-governance.md +58 -0
- package/docs/architecture/current/multi-repository-execution.md +1 -1
- package/docs/architecture/current/peer-supercontroller-runtime.md +1 -1
- package/docs/architecture/current/personal-assistant-plugin-baseline.md +4 -5
- package/docs/architecture/current/scheduler-and-resource-claims.md +0 -10
- package/docs/architecture/current/target-requirements-traceability.md +2 -2
- package/docs/architecture/current/thin-harness-governance-policy.md +1 -1
- package/docs/architecture/current/thin-harness-v1.md +9 -11
- package/docs/architecture/domains/runtime-harness.md +1 -1
- package/docs/forge-autonomous-goal-loop.md +3 -1
- package/docs/forge-chatgpt-mcp-setup.md +51 -184
- package/docs/images/forge-banner-cn.svg +26 -1
- package/docs/images/forge-banner.svg +26 -1
- package/docs/operations/features.md +1 -1
- package/docs/operations/homebrew.md +3 -3
- package/docs/operations/mcp-tool-exposure.md +5 -5
- package/docs/operations/platform-support.md +45 -37
- package/docs/operations/platform-support.zh-CN.md +40 -38
- package/docs/operations/releasing.md +3 -3
- package/docs/operations/releasing.zh-CN.md +3 -3
- package/docs/operations/troubleshooting.md +11 -6
- package/docs/operations/troubleshooting.zh-CN.md +11 -6
- package/docs/public-usage-guide.md +28 -21
- package/docs/public-usage-guide.zh-CN.md +28 -21
- package/docs/tutorials/01-install-and-start.md +56 -35
- package/docs/tutorials/01-install-and-start.zh-CN.md +56 -35
- package/docs/tutorials/02-connect-chatgpt.md +112 -46
- package/docs/tutorials/02-connect-chatgpt.zh-CN.md +113 -45
- package/docs/wiki/Architecture.md +1 -1
- package/docs/wiki/Installation.md +2 -2
- package/docs/wiki/Quick-Start.md +1 -1
- package/docs/wiki/Work-Lifecycle.md +1 -1
- package/install.ps1 +4 -5
- package/install.sh +4 -6
- package/package.json +15 -5
- package/scripts/archive-workflow.sh +0 -1
- package/scripts/benchmark-thin-harness-mcp-e2e.ts +27 -14
- package/scripts/build-controller-ui.ts +28 -0
- package/scripts/capture-plan.sh +4 -4
- package/scripts/check-agent-tooling.sh +12 -1
- package/scripts/check-platform-support.mjs +2 -2
- package/scripts/check-public-docs.sh +16 -5
- package/scripts/check-release-readiness.sh +5 -11
- package/scripts/check-runtime-architecture.mjs +14 -22
- package/scripts/check-tarball-install-smoke.sh +3 -2
- package/scripts/check-task-workflow.sh +2 -2
- package/scripts/codex-handoff-resume.sh +5 -5
- package/scripts/create-project-dirs.sh +3 -3
- package/scripts/ensure-task-workflow.sh +45 -35
- package/scripts/init-project.sh +4 -4
- package/scripts/install-desktop-operator-registration.ts +2 -2
- package/scripts/lib/project-init-lib.sh +46 -44
- package/scripts/migrate-project-template.sh +7 -4
- package/scripts/new-plan.sh +1 -1
- package/scripts/plan-to-todo.sh +2 -2
- package/scripts/prepare-codex-handoff.sh +2 -2
- package/scripts/prepare-handoff.sh +9 -9
- package/scripts/refresh-current-status.sh +2 -2
- package/scripts/setup-plugins.sh +3 -3
- package/scripts/ship-worktrees.sh +1 -1
- package/scripts/sprint-backlog.sh +5 -5
- package/scripts/sync-codex-installed-copies.sh +2 -3
- package/scripts/verify-sprint.sh +7 -7
- package/scripts/workstream-sync.sh +1 -1
- package/src/cli/chatgpt-browser/bridge-extension.ts +1 -1
- package/src/cli/chatgpt-browser/bridge-provider.ts +29 -0
- package/src/cli/chatgpt-browser/file-policy.ts +3 -1
- package/src/cli/commands/chatgpt.ts +51 -0
- package/src/cli/commands/doctor.ts +1 -1
- package/src/cli/commands/init-hook.ts +211 -70
- package/src/cli/commands/init.ts +5 -6
- package/src/cli/commands/mcp.ts +29 -5
- package/src/cli/commands/runtime.ts +60 -8
- package/src/cli/commands/setup-profile.ts +441 -0
- package/src/cli/controller/check-runner.ts +20 -3
- package/src/cli/controller/codex-continuation.ts +4 -7
- package/src/cli/controller/context-pack.ts +118 -14
- package/src/cli/controller/operational-plan.ts +4 -4
- package/src/cli/controller/task-ledger.ts +10 -10
- package/src/cli/controller/work-mode.ts +6 -13
- package/src/cli/index.ts +14 -35
- package/src/cli/local-bridge/connector-freshness.ts +1 -1
- package/src/cli/local-bridge/console-automations.ts +160 -0
- package/src/cli/local-bridge/dashboard.ts +8 -1303
- package/src/cli/local-bridge/facade-api.ts +16 -7
- package/src/cli/local-bridge/frontend/src/App.tsx +10 -0
- package/src/cli/local-bridge/frontend/src/components/Button.tsx +1 -0
- package/src/cli/local-bridge/frontend/src/components/DetailPane.tsx +3 -0
- package/src/cli/local-bridge/frontend/src/components/SearchField.tsx +1 -0
- package/src/cli/local-bridge/frontend/src/components/SectionHeader.tsx +1 -0
- package/src/cli/local-bridge/frontend/src/components/Segmented.tsx +1 -0
- package/src/cli/local-bridge/frontend/src/components/StatusText.tsx +3 -0
- package/src/cli/local-bridge/frontend/src/design/icons.tsx +11 -0
- package/src/cli/local-bridge/frontend/src/design/tokens.css +8 -0
- package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +3 -0
- package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +4 -0
- package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +3 -0
- package/src/cli/local-bridge/frontend/src/features/repositories/RepositoriesView.tsx +2 -0
- package/src/cli/local-bridge/frontend/src/features/settings/SettingsView.tsx +2 -0
- package/src/cli/local-bridge/frontend/src/features/system/SystemView.tsx +2 -0
- package/src/cli/local-bridge/frontend/src/features/work/WorkView.tsx +3 -0
- package/src/cli/local-bridge/frontend/src/lib/api.ts +23 -0
- package/src/cli/local-bridge/frontend/src/lib/format.ts +4 -0
- package/src/cli/local-bridge/frontend/src/lib/routes.ts +7 -0
- package/src/cli/local-bridge/frontend/src/main.tsx +1 -0
- package/src/cli/local-bridge/frontend/src/shell/AppShell.tsx +1 -0
- package/src/cli/local-bridge/frontend/src/shell/CommandBar.tsx +2 -0
- package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +3 -0
- package/src/cli/local-bridge/frontend/src/styles.css +12 -0
- package/src/cli/local-bridge/frontend/src/types.ts +14 -0
- package/src/cli/local-bridge/frontend/src/vite-env.d.ts +1 -0
- package/src/cli/local-bridge/frontend/vite.config.ts +27 -0
- package/src/cli/local-bridge/server.ts +44 -0
- package/src/cli/local-bridge/ui-dist/app.css +1 -0
- package/src/cli/local-bridge/ui-dist/app.js +11094 -0
- package/src/cli/mcp/instructions.ts +3 -3
- package/src/cli/mcp/legacy-tool-service.ts +27 -23
- package/src/cli/mcp/multi-repository.ts +2 -0
- package/src/cli/mcp/policy.ts +7 -5
- package/src/cli/mcp/repository-tools.ts +53 -14
- package/src/cli/mcp/server.ts +5 -10
- package/src/cli/mcp/setup.ts +211 -275
- package/src/cli/mcp/tool-capability-cache.ts +1 -1
- package/src/cli/mcp/toolset-names.ts +1 -1
- package/src/cli/mcp/toolset.ts +0 -1
- package/src/cli/mcp/transports/http.ts +24 -4
- package/src/cli/repositories/branch-name-policy.ts +0 -7
- package/src/cli/repositories/controller-home.ts +110 -3
- package/src/cli/repositories/safe-patch.ts +1 -1
- package/src/cli/repositories/selected-path-actions.ts +26 -24
- package/src/core/adoption/gitignore-plan.ts +2 -3
- package/src/core/adoption/plan.ts +4 -1
- package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +556 -0
- package/src/runtime/control-plane/execution/work-handle-store.ts +128 -1
- package/src/runtime/control-plane/execution/work-validation-reconciler.ts +277 -0
- package/src/runtime/control-plane/execution/work-verification-snapshot.ts +169 -0
- package/src/runtime/control-plane/facade/capability-registry.ts +0 -10
- package/src/runtime/control-plane/facade/handoff-inbox-store.ts +44 -25
- package/src/runtime/control-plane/facade/suggested-actions.ts +7 -1
- package/src/runtime/control-plane/facade/types.ts +0 -1
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +30 -8
- package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +114 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +175 -0
- package/src/runtime/control-plane/launcher/launch-reservation-store.ts +161 -0
- package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +64 -0
- package/src/runtime/control-plane/launcher/thin-launcher.ts +117 -24
- package/src/runtime/control-plane/routing/route-policy.ts +14 -14
- package/src/runtime/control-plane/runtime-cleanup.ts +0 -1
- package/src/runtime/evidence/event-ledger.ts +1 -1
- package/src/runtime/{workflow/campaigns/workspace.ts → execution/managed-workspace.ts} +41 -43
- package/src/runtime/execution/process-runtime/check-facade.ts +6 -0
- package/src/runtime/execution/process-runtime/check-result.ts +45 -0
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +42 -16
- package/src/runtime/execution/process-runtime/command-facade.ts +4 -2
- package/src/runtime/execution/process-runtime/gc.ts +1 -1
- package/src/runtime/execution/process-runtime/index.ts +3 -0
- package/src/runtime/execution/process-runtime/interactive-admission.ts +14 -5
- package/src/runtime/execution/process-runtime/persisted-check.ts +285 -0
- package/src/runtime/execution/process-runtime/resource-claims.ts +30 -0
- package/src/runtime/execution/process-runtime/runtime.ts +18 -1
- package/src/runtime/execution/process-runtime/store.ts +1 -19
- package/src/runtime/execution/process-runtime/types.ts +4 -0
- package/src/runtime/execution/thin-harness/execution-router.ts +0 -1
- package/src/runtime/execution/thin-harness/fast-executor.ts +1 -1
- package/src/runtime/execution/thin-harness/lightweight-lanes.ts +1 -2
- package/src/runtime/execution/thin-harness/types.ts +0 -1
- package/src/runtime/execution/workers/executor.ts +1 -1
- package/src/runtime/gateway/mcp/execution-tools.ts +1 -1
- package/src/runtime/gateway/mcp/persisted-check-process.ts +3 -255
- package/src/runtime/gateway/mcp/process-tools.ts +16 -3
- package/src/runtime/gateway/mcp/resource-policy.ts +0 -9
- package/src/runtime/gateway/mcp/router.ts +117 -182
- package/src/runtime/gateway/mcp/runtime-tools.ts +331 -409
- package/src/runtime/gateway/mcp/work-validation-reconciler.ts +1 -219
- package/src/runtime/plugins/browser-adapter.ts +5 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +1 -1
- package/src/runtime/plugins/store.ts +14 -6
- package/src/runtime/plugins/types.ts +1 -1
- package/src/runtime/projections/materialized-view.ts +1 -23
- package/src/runtime/recovery/maintenance-executor.ts +9 -0
- package/src/runtime/resources/ownership.ts +0 -1
- package/src/runtime/root/gateway-adapter.ts +2 -0
- package/src/runtime/root/mcp-transport.ts +10 -2
- package/src/runtime/root/package-runtime-release.ts +161 -0
- package/src/runtime/root/package-runtime-service.ts +172 -0
- package/src/runtime/root/runtime.ts +2 -1
- package/src/runtime/root/scheduler.ts +5 -0
- package/src/runtime/root/service.ts +18 -5
- package/src/runtime/standalone-recovery/core.ts +65 -16
- package/src/runtime/workflow/findings/store.ts +145 -106
- package/src/runtime/workflow/findings/types.ts +22 -0
- package/src/runtime/workflow/schedules/engine.ts +132 -2
- package/src/runtime/workflow/schedules/pending-activation.ts +139 -0
- package/src/runtime/workflow/schedules/work-continuation.ts +218 -0
- package/docs/CHANGELOG.md +0 -978
- package/docs/README.zh-CN.md +0 -58
- package/scripts/smoke-chatgpt-supervised-automation.ts +0 -208
- package/src/cli/commands/controller.ts +0 -680
- package/src/runtime/workflow/campaigns/cleanup.ts +0 -263
- package/src/runtime/workflow/campaigns/engine.ts +0 -112
- package/src/runtime/workflow/campaigns/normalize.ts +0 -100
- package/src/runtime/workflow/campaigns/review.ts +0 -315
- package/src/runtime/workflow/campaigns/store.ts +0 -526
- package/src/runtime/workflow/campaigns/supervisor.ts +0 -112
- package/src/runtime/workflow/campaigns/types.ts +0 -290
- /package/src/runtime/{workflow/campaigns → execution}/workspace-agent.ts +0 -0
package/AGENTS.md
CHANGED
|
@@ -10,7 +10,7 @@ Treat ChatGPT as the controller and Forge as its repository execution layer. Cha
|
|
|
10
10
|
- Tasks describe objectives, scope, checks, and acceptance criteria. They do not permanently bind Codex, Claude, or GitHub Copilot. The executor is selected when each Run starts.
|
|
11
11
|
- Agents are optional implementation tools for broad exploration, large refactors, or compile/test/fix loops. They receive a high-level implementation contract; ChatGPT still reviews the result and decides what happens next.
|
|
12
12
|
- Ordinary local risk levels are metadata, not permission gates. There is no approval queue and no `approve_risk` handshake. Only an explicitly destructive or irreversible operation requires authorization in the same request.
|
|
13
|
-
- The Controller UI is
|
|
13
|
+
- The Controller UI is an auxiliary configuration/state utility behind ChatGPT: Overview, Work, Automations, Capabilities, Repositories, Settings, and System. It presents durable user-facing state and hides Issue/Task/Run internals unless diagnostics require them.
|
|
14
14
|
- Hard runtime boundaries remain for secrets, credentials, Git internals, concurrent write conflicts, out-of-scope writes when a scope is declared, and remote or irreversible side effects.
|
|
15
15
|
## Canonical Workflow Files
|
|
16
16
|
|
|
@@ -27,7 +27,7 @@ Treat ChatGPT as the controller and Forge as its repository execution layer. Cha
|
|
|
27
27
|
- `.ai/harness/policy.json` for the machine-readable workflow contract
|
|
28
28
|
- `.ai/context/context-map.json` for progressive context loading
|
|
29
29
|
- `docs/architecture/index.md` for umbrella architecture status, drift requests, snapshots, and diagram links
|
|
30
|
-
- `docs/reference-configs/agentic-development-flow.md` for
|
|
30
|
+
- `docs/reference-configs/agentic-development-flow.md` for Forge task routing and optional host-skill enhancements
|
|
31
31
|
|
|
32
32
|
## Runtime Architecture Guardrails
|
|
33
33
|
|
|
@@ -51,19 +51,17 @@ Treat ChatGPT as the controller and Forge as its repository execution layer. Cha
|
|
|
51
51
|
- Keep architecture drift handling split: `architecture-queue.sh` writes architecture requests/events, `workstream-sync.sh` maintains durable capability workstreams, and `context-contract-sync.sh` only updates controlled local `CLAUDE.md`/`AGENTS.md` architecture blocks.
|
|
52
52
|
- Keep `assets/workflow-contract.v1.json` and `.ai/harness/workflow-contract.json` in sync.
|
|
53
53
|
- Keep `CLAUDE.md` and `AGENTS.md` short; put detailed guidance in `docs/reference-configs/`.
|
|
54
|
-
- Treat Codex auto-compact as a fallback only; use `.ai/harness/
|
|
54
|
+
- Treat Codex auto-compact as a fallback only; use `.ai/harness/session/continuation.md` and `.ai/harness/session/resume.md` for long-task rollover.
|
|
55
55
|
- Treat `_ref/` as an occasional ignored external reference checkout cache, not a commit surface or daily workflow. Agents may read or refresh it for comparison; when it influences a decision, cite the source repo plus commit/tag and path in `tasks/notes/` or `docs/researches/`.
|
|
56
56
|
- Treat `deploy/` as the trackable deployment and operations surface for runbooks, submission materials, release checklists, helper scripts, ordered SQL files under `deploy/sql/`, and env examples.
|
|
57
57
|
- Treat `_ops/` as ignored local operations state for secrets, real env files, provider state, artifacts, logs, and scratch files; do not commit or agent-edit `_ops/*`.
|
|
58
|
-
- Treat contract-level task execution as worktree-first: `scripts/plan-to-todo.sh --plan <approved-plan>`
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
- Route knowledge sync and handoff retrieval to `gbrain`.
|
|
58
|
+
- Treat contract-level task execution as worktree-first when policy requires isolation: `scripts/plan-to-todo.sh --plan <approved-plan>` may start `scripts/contract-worktree.sh start --plan <approved-plan>`; finish through Forge `/review`, focused checks, and `scripts/contract-worktree.sh finish`.
|
|
59
|
+
- Forge task directives are the stable user-facing routing surface: `/direct`, `/plan`, `/debug`, `/review`, `/release`, and `/scale`. Do not require users or automation to remember third-party skill commands.
|
|
60
|
+
- After Forge `/plan`, Codex Plan mode, or an optional external planning skill produces a decision-complete plan, capture it with `scripts/capture-plan.sh --slug <slug> --title <title>` so `plans/` becomes the file-backed source of truth; if implementation is already approved, capture with `--status Approved --execute` or run `scripts/plan-to-todo.sh --plan <active-plan>`.
|
|
61
|
+
- If current repo state conflicts with the task, isolate the work, finish there, run Forge `/review`-style validation plus focused checks, then merge back without absorbing unrelated dirty changes.
|
|
62
|
+
- Waza, gstack, Mermaid, gbrain, and cross-review skills are optional host enhancements. Use them only when already installed or explicitly requested; their absence must never block Forge planning, debugging, review, or execution.
|
|
64
63
|
- Register valuable repo-authored docs in `.ai/harness/brain-manifest.json` with `sync.direction=repo-to-brain`; `scripts/sync-brain-docs.sh` and the PostEdit hook mirror only those explicit entries into the default brain vault.
|
|
65
|
-
-
|
|
66
|
-
- Use `docs/reference-configs/external-tooling.md` and `bash scripts/check-agent-tooling.sh --host both --check-updates` for environment checks; this self-host repo vendors CodeGraph as a dev dependency while generated downstream repos keep the global MCP default unless local policy opts in.
|
|
64
|
+
- Use `docs/reference-configs/external-tooling.md` and `bash scripts/check-agent-tooling.sh --host both --check-updates` for optional host-tool diagnostics. Forge structural retrieval uses its bundled CodeGraph read backend; a global CodeGraph CLI/MCP is an optional developer integration, not Runtime readiness.
|
|
67
65
|
- When changing `scripts/migrate-project-template.sh` or `scripts/lib/project-init-lib.sh`, verify self-migration of this repo still works.
|
|
68
66
|
- Treat repo-local `.claude/settings.json` and `.codex/hooks.json` hook adapters as retired legacy config; migration may back them up locally, but they are not product deliverables.
|
|
69
67
|
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,25 @@ All notable public Forge changes are recorded here. Release entries are tied to
|
|
|
6
6
|
|
|
7
7
|
No unreleased public changes are currently recorded.
|
|
8
8
|
|
|
9
|
+
## 1.5.0 - 2026-08-13
|
|
10
|
+
|
|
11
|
+
### Stable Runtime and recovery
|
|
12
|
+
|
|
13
|
+
- Graduated the single Canonical Runtime plus independent Recovery architecture to the first stable Forge release.
|
|
14
|
+
- Hardened whole-Runtime restart, rollback, source coherence, launcher resolution, process storage lifecycle, and recovery activation behavior.
|
|
15
|
+
- Isolated Work verification snapshots from unrelated concurrent files and fixed persisted check semantic identity under compiled Runtime releases.
|
|
16
|
+
|
|
17
|
+
### ChatGPT continuity and execution performance
|
|
18
|
+
|
|
19
|
+
- Added bound ChatGPT work continuation across natural restarts with authenticated controller ownership and safer continuation activation.
|
|
20
|
+
- Reduced avoidable MCP/reasoning round trips, composed direct edit validation, and kept short Process Runtime commands synchronous long enough to avoid unnecessary follow-up waits.
|
|
21
|
+
- Removed redundant Runtime schema discovery round trips from the MCP hot path while retaining session schema fencing.
|
|
22
|
+
|
|
23
|
+
### Product surface
|
|
24
|
+
|
|
25
|
+
- Added the React-based local Forge utility workstation and continued consolidating retired controller/campaign compatibility surfaces.
|
|
26
|
+
- Kept the stable ChatGPT MCP surface at 19 tools while preserving the official provider/plugin model introduced in the release candidate.
|
|
27
|
+
|
|
9
28
|
## 1.5.0-rc.1 - 2026-08-11
|
|
10
29
|
|
|
11
30
|
### Official plugin distribution
|
package/CLAUDE.md
CHANGED
|
@@ -27,7 +27,7 @@ Treat ChatGPT as the controller and Forge as its repository execution layer. Cha
|
|
|
27
27
|
- `.ai/harness/policy.json` for the machine-readable workflow contract
|
|
28
28
|
- `.ai/context/context-map.json` for progressive context loading
|
|
29
29
|
- `docs/architecture/index.md` for umbrella architecture status, drift requests, snapshots, and diagram links
|
|
30
|
-
- `docs/reference-configs/agentic-development-flow.md` for
|
|
30
|
+
- `docs/reference-configs/agentic-development-flow.md` for Forge task routing and optional host-skill enhancements
|
|
31
31
|
|
|
32
32
|
## Runtime Architecture Guardrails
|
|
33
33
|
|
|
@@ -51,19 +51,17 @@ Treat ChatGPT as the controller and Forge as its repository execution layer. Cha
|
|
|
51
51
|
- Keep architecture drift handling split: `architecture-queue.sh` writes architecture requests/events, `workstream-sync.sh` maintains durable capability workstreams, and `context-contract-sync.sh` only updates controlled local `CLAUDE.md`/`AGENTS.md` architecture blocks.
|
|
52
52
|
- Keep `assets/workflow-contract.v1.json` and `.ai/harness/workflow-contract.json` in sync.
|
|
53
53
|
- Keep `CLAUDE.md` and `AGENTS.md` short; put detailed guidance in `docs/reference-configs/`.
|
|
54
|
-
- Treat Codex auto-compact as a fallback only; use `.ai/harness/
|
|
54
|
+
- Treat Codex auto-compact as a fallback only; use `.ai/harness/session/continuation.md` and `.ai/harness/session/resume.md` for long-task rollover.
|
|
55
55
|
- Treat `_ref/` as an occasional ignored external reference checkout cache, not a commit surface or daily workflow. Agents may read or refresh it for comparison; when it influences a decision, cite the source repo plus commit/tag and path in `tasks/notes/` or `docs/researches/`.
|
|
56
56
|
- Treat `deploy/` as the trackable deployment and operations surface for runbooks, submission materials, release checklists, helper scripts, ordered SQL files under `deploy/sql/`, and env examples.
|
|
57
57
|
- Treat `_ops/` as ignored local operations state for secrets, real env files, provider state, artifacts, logs, and scratch files; do not commit or agent-edit `_ops/*`.
|
|
58
|
-
- Treat contract-level task execution as worktree-first: `scripts/plan-to-todo.sh --plan <approved-plan>`
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
- Route knowledge sync and handoff retrieval to `gbrain`.
|
|
58
|
+
- Treat contract-level task execution as worktree-first when policy requires isolation: `scripts/plan-to-todo.sh --plan <approved-plan>` may start `scripts/contract-worktree.sh start --plan <approved-plan>`; finish through Forge `/review`, focused checks, and `scripts/contract-worktree.sh finish`.
|
|
59
|
+
- Forge task directives are the stable user-facing routing surface: `/direct`, `/plan`, `/debug`, `/review`, `/release`, and `/scale`. Do not require users or automation to remember third-party skill commands.
|
|
60
|
+
- After Forge `/plan`, Codex Plan mode, or an optional external planning skill produces a decision-complete plan, capture it with `scripts/capture-plan.sh --slug <slug> --title <title>` so `plans/` becomes the file-backed source of truth; if implementation is already approved, capture with `--status Approved --execute` or run `scripts/plan-to-todo.sh --plan <active-plan>`.
|
|
61
|
+
- If current repo state conflicts with the task, isolate the work, finish there, run Forge `/review`-style validation plus focused checks, then merge back without absorbing unrelated dirty changes.
|
|
62
|
+
- Waza, gstack, Mermaid, gbrain, and cross-review skills are optional host enhancements. Use them only when already installed or explicitly requested; their absence must never block Forge planning, debugging, review, or execution.
|
|
64
63
|
- Register valuable repo-authored docs in `.ai/harness/brain-manifest.json` with `sync.direction=repo-to-brain`; `scripts/sync-brain-docs.sh` and the PostEdit hook mirror only those explicit entries into the default brain vault.
|
|
65
|
-
-
|
|
66
|
-
- Use `docs/reference-configs/external-tooling.md` and `bash scripts/check-agent-tooling.sh --host both --check-updates` for environment checks; this self-host repo vendors CodeGraph as a dev dependency while generated downstream repos keep the global MCP default unless local policy opts in.
|
|
64
|
+
- Use `docs/reference-configs/external-tooling.md` and `bash scripts/check-agent-tooling.sh --host both --check-updates` for optional host-tool diagnostics. Forge structural retrieval uses its bundled CodeGraph read backend; a global CodeGraph CLI/MCP is an optional developer integration, not Runtime readiness.
|
|
67
65
|
- When changing `scripts/migrate-project-template.sh` or `scripts/lib/project-init-lib.sh`, verify self-migration of this repo still works.
|
|
68
66
|
- Treat repo-local `.claude/settings.json` and `.codex/hooks.json` hook adapters as retired legacy config; migration may back them up locally, but they are not product deliverables.
|
|
69
67
|
|
package/DESIGN.md
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: "2.0"
|
|
3
|
+
name: Forge Utility Workstation
|
|
4
|
+
description: A precise light-first desktop utility for configuring and inspecting Forge behind ChatGPT, combining Carbon structure with Linear restraint.
|
|
5
|
+
colors:
|
|
6
|
+
canvas: "#F5F5F3"
|
|
7
|
+
surface: "#FFFFFF"
|
|
8
|
+
surface-subtle: "#F0F0EE"
|
|
9
|
+
surface-strong: "#E8E8E5"
|
|
10
|
+
rail: "#19191B"
|
|
11
|
+
rail-hover: "#242427"
|
|
12
|
+
rail-selected: "#303037"
|
|
13
|
+
text: "#1D1D20"
|
|
14
|
+
text-secondary: "#646469"
|
|
15
|
+
text-tertiary: "#909096"
|
|
16
|
+
text-inverse: "#F7F7F8"
|
|
17
|
+
border: "#E1E1DE"
|
|
18
|
+
border-strong: "#CECECA"
|
|
19
|
+
primary: "#584EE3"
|
|
20
|
+
accent: "#5E54E8"
|
|
21
|
+
accent-hover: "#5046D9"
|
|
22
|
+
accent-subtle: "#EFEEFF"
|
|
23
|
+
success: "#237A57"
|
|
24
|
+
success-subtle: "#EAF5EF"
|
|
25
|
+
warning: "#946200"
|
|
26
|
+
warning-subtle: "#FFF4D8"
|
|
27
|
+
danger: "#B44444"
|
|
28
|
+
danger-subtle: "#FBECEC"
|
|
29
|
+
info: "#3567B7"
|
|
30
|
+
focus: "#786FF7"
|
|
31
|
+
typography:
|
|
32
|
+
page-title:
|
|
33
|
+
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, SF Pro Display, PingFang SC, sans-serif"
|
|
34
|
+
fontSize: 24px
|
|
35
|
+
fontWeight: 650
|
|
36
|
+
lineHeight: 1.2
|
|
37
|
+
letterSpacing: -0.02em
|
|
38
|
+
section-title:
|
|
39
|
+
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, SF Pro Text, PingFang SC, sans-serif"
|
|
40
|
+
fontSize: 15px
|
|
41
|
+
fontWeight: 620
|
|
42
|
+
lineHeight: 1.35
|
|
43
|
+
body:
|
|
44
|
+
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, SF Pro Text, PingFang SC, sans-serif"
|
|
45
|
+
fontSize: 13px
|
|
46
|
+
fontWeight: 400
|
|
47
|
+
lineHeight: 1.5
|
|
48
|
+
body-strong:
|
|
49
|
+
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, SF Pro Text, PingFang SC, sans-serif"
|
|
50
|
+
fontSize: 13px
|
|
51
|
+
fontWeight: 600
|
|
52
|
+
lineHeight: 1.45
|
|
53
|
+
meta:
|
|
54
|
+
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, SF Pro Text, PingFang SC, sans-serif"
|
|
55
|
+
fontSize: 11px
|
|
56
|
+
fontWeight: 500
|
|
57
|
+
lineHeight: 1.35
|
|
58
|
+
rounded:
|
|
59
|
+
xs: 4px
|
|
60
|
+
sm: 6px
|
|
61
|
+
md: 8px
|
|
62
|
+
lg: 10px
|
|
63
|
+
full: 999px
|
|
64
|
+
spacing:
|
|
65
|
+
1: 4px
|
|
66
|
+
2: 8px
|
|
67
|
+
3: 12px
|
|
68
|
+
4: 16px
|
|
69
|
+
5: 20px
|
|
70
|
+
6: 24px
|
|
71
|
+
8: 32px
|
|
72
|
+
10: 40px
|
|
73
|
+
12: 48px
|
|
74
|
+
rail: 224px
|
|
75
|
+
content-max: 1280px
|
|
76
|
+
components:
|
|
77
|
+
app-canvas:
|
|
78
|
+
backgroundColor: "{colors.canvas}"
|
|
79
|
+
textColor: "{colors.text}"
|
|
80
|
+
sidebar:
|
|
81
|
+
backgroundColor: "{colors.rail}"
|
|
82
|
+
textColor: "{colors.text-inverse}"
|
|
83
|
+
sidebar-hover:
|
|
84
|
+
backgroundColor: "{colors.rail-hover}"
|
|
85
|
+
textColor: "{colors.text-inverse}"
|
|
86
|
+
sidebar-selected:
|
|
87
|
+
backgroundColor: "{colors.rail-selected}"
|
|
88
|
+
textColor: "{colors.text-inverse}"
|
|
89
|
+
secondary-surface:
|
|
90
|
+
backgroundColor: "{colors.surface-subtle}"
|
|
91
|
+
textColor: "{colors.text-secondary}"
|
|
92
|
+
segmented-track:
|
|
93
|
+
backgroundColor: "{colors.surface-strong}"
|
|
94
|
+
textColor: "{colors.text-secondary}"
|
|
95
|
+
strong-divider:
|
|
96
|
+
backgroundColor: "{colors.border-strong}"
|
|
97
|
+
height: "1px"
|
|
98
|
+
accent-selection:
|
|
99
|
+
backgroundColor: "{colors.accent}"
|
|
100
|
+
textColor: "#FFFFFF"
|
|
101
|
+
rounded: "{rounded.sm}"
|
|
102
|
+
accent-subtle-surface:
|
|
103
|
+
backgroundColor: "{colors.accent-subtle}"
|
|
104
|
+
textColor: "{colors.text}"
|
|
105
|
+
rounded: "{rounded.sm}"
|
|
106
|
+
accent-hover-state:
|
|
107
|
+
backgroundColor: "{colors.accent-hover}"
|
|
108
|
+
textColor: "#FFFFFF"
|
|
109
|
+
tertiary-text:
|
|
110
|
+
textColor: "{colors.text-tertiary}"
|
|
111
|
+
success-notice:
|
|
112
|
+
backgroundColor: "{colors.success-subtle}"
|
|
113
|
+
textColor: "{colors.success}"
|
|
114
|
+
primary-button:
|
|
115
|
+
backgroundColor: "{colors.primary}"
|
|
116
|
+
textColor: "#FFFFFF"
|
|
117
|
+
rounded: "{rounded.sm}"
|
|
118
|
+
padding: "{spacing.2}"
|
|
119
|
+
secondary-button:
|
|
120
|
+
backgroundColor: "{colors.surface}"
|
|
121
|
+
textColor: "{colors.text}"
|
|
122
|
+
rounded: "{rounded.sm}"
|
|
123
|
+
padding: "{spacing.2}"
|
|
124
|
+
panel:
|
|
125
|
+
backgroundColor: "{colors.surface}"
|
|
126
|
+
textColor: "{colors.text}"
|
|
127
|
+
rounded: "{rounded.md}"
|
|
128
|
+
padding: "{spacing.4}"
|
|
129
|
+
selected-row:
|
|
130
|
+
backgroundColor: "{colors.accent-subtle}"
|
|
131
|
+
textColor: "{colors.text}"
|
|
132
|
+
rounded: "{rounded.sm}"
|
|
133
|
+
padding: "{spacing.3}"
|
|
134
|
+
divider:
|
|
135
|
+
backgroundColor: "{colors.border}"
|
|
136
|
+
height: "1px"
|
|
137
|
+
status-success:
|
|
138
|
+
backgroundColor: "{colors.success}"
|
|
139
|
+
rounded: "{rounded.full}"
|
|
140
|
+
size: "7px"
|
|
141
|
+
status-warning:
|
|
142
|
+
backgroundColor: "{colors.warning}"
|
|
143
|
+
rounded: "{rounded.full}"
|
|
144
|
+
size: "7px"
|
|
145
|
+
status-danger:
|
|
146
|
+
backgroundColor: "{colors.danger}"
|
|
147
|
+
rounded: "{rounded.full}"
|
|
148
|
+
size: "7px"
|
|
149
|
+
status-info:
|
|
150
|
+
backgroundColor: "{colors.info}"
|
|
151
|
+
rounded: "{rounded.full}"
|
|
152
|
+
size: "7px"
|
|
153
|
+
notice-warning:
|
|
154
|
+
backgroundColor: "{colors.warning-subtle}"
|
|
155
|
+
textColor: "{colors.text}"
|
|
156
|
+
rounded: "{rounded.md}"
|
|
157
|
+
padding: "{spacing.3}"
|
|
158
|
+
notice-danger:
|
|
159
|
+
backgroundColor: "{colors.danger-subtle}"
|
|
160
|
+
textColor: "{colors.text}"
|
|
161
|
+
rounded: "{rounded.md}"
|
|
162
|
+
padding: "{spacing.3}"
|
|
163
|
+
focus-ring:
|
|
164
|
+
backgroundColor: "{colors.focus}"
|
|
165
|
+
rounded: "{rounded.sm}"
|
|
166
|
+
size: "2px"
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
# Forge Utility Workstation
|
|
170
|
+
|
|
171
|
+
## Overview
|
|
172
|
+
Forge is operated primarily through ChatGPT. The web UI is the durable **configuration and inspection surface behind ChatGPT**: not a second chat interface, not Jira, and not an agent execution wall. It answers what is configured, what Forge can do, which automations exist, which repositories are registered, and what genuinely needs human attention.
|
|
173
|
+
|
|
174
|
+
The visual direction is **Carbon × Linear Utility Workstation**. Carbon contributes structural rigor, explicit status semantics and dense information grammar. Linear contributes restrained surfaces, hairline hierarchy, sparse accent usage and quiet technical polish. The Investment Decision System is a proven local reference for dark-rail/light-canvas separation, semantic tokens and page grammar, but Forge keeps its own identity.
|
|
175
|
+
|
|
176
|
+
## Product principles
|
|
177
|
+
### Configuration before telemetry
|
|
178
|
+
The console primarily shows what Forge **is configured to do**. Execution details, verbose results, logs and conversations remain in ChatGPT or System diagnostics.
|
|
179
|
+
|
|
180
|
+
### Density without card spam
|
|
181
|
+
Use aligned rows, tables, split panes and whitespace. A card must answer one coherent question; never create one rounded rectangle per fact. Avoid panel-inside-panel nesting.
|
|
182
|
+
|
|
183
|
+
### Truthful state only
|
|
184
|
+
Never render guessed percentage progress. States are categorical and backed by controller facts: enabled, paused, ready, attention, active, waiting, completed, unavailable.
|
|
185
|
+
|
|
186
|
+
### Progressive technical depth
|
|
187
|
+
Daily pages use product language. Runtime ids, raw actions, schemas, leases and diagnostics belong in detail panes or System.
|
|
188
|
+
|
|
189
|
+
### Backend remains authoritative
|
|
190
|
+
React formats and filters facts from Local Bridge APIs. It does not reimplement scheduling, plugin readiness, repository identity or execution policy.
|
|
191
|
+
|
|
192
|
+
## Token architecture
|
|
193
|
+
Primitive values live in `frontend/src/design/tokens.css`. Components consume semantic variables such as canvas, surface, text, border, accent and semantic status. Page components must not introduce ad-hoc hex colors, radii or shadows.
|
|
194
|
+
|
|
195
|
+
## Color system
|
|
196
|
+
The application is light-first: warm-neutral `{colors.canvas}`, white `{colors.surface}`, near-black `{colors.rail}` navigation and near-black `{colors.text}` ink. `{colors.accent}` is the single Forge interaction accent and is used for selection, focus and primary action—not decoration.
|
|
197
|
+
|
|
198
|
+
Status color is local and compact. Critical state is always paired with text. Large red/green background blocks are prohibited.
|
|
199
|
+
|
|
200
|
+
## Typography
|
|
201
|
+
Use `{typography.page-title}` for page titles, `{typography.section-title}` for section headings, `{typography.body}` for dense product text and `{typography.meta}` for timestamps and identifiers. Long objectives truncate in scan lists and expand in the detail pane.
|
|
202
|
+
|
|
203
|
+
## Layout
|
|
204
|
+
Desktop uses a persistent `{spacing.rail}` dark rail and an open workspace capped near `{spacing.content-max}`. The main canvas is not wrapped in one giant card. Top-level sections are separated by rhythm and hairline dividers.
|
|
205
|
+
|
|
206
|
+
Below 980px, split panes collapse into list then detail blocks. Below 760px the rail becomes compact horizontal navigation while preserving hierarchy.
|
|
207
|
+
|
|
208
|
+
## Elevation
|
|
209
|
+
Ordinary content uses flat surfaces and 1px hairlines. Shadows are reserved for floating overlays. Use surface ladder and spacing to communicate depth.
|
|
210
|
+
|
|
211
|
+
## Shapes
|
|
212
|
+
Normal controls use `{rounded.sm}`; panels use `{rounded.md}` only when an enclosure is semantically useful. Pills are reserved for segmented filters and compact categories. Avoid oversized 16–24px rounding.
|
|
213
|
+
|
|
214
|
+
## Application shell
|
|
215
|
+
### Sidebar
|
|
216
|
+
Dark, persistent and quiet. It contains Forge identity, grouped navigation, and a small footer communicating that ChatGPT is the primary work surface. Selection uses a restrained accent indicator and darker surface, not a bright full-width pill.
|
|
217
|
+
|
|
218
|
+
### Command bar
|
|
219
|
+
Each route owns a compact command bar: eyebrow, title, one-line purpose, refreshed time and route actions. `Open ChatGPT` remains globally available but visually secondary.
|
|
220
|
+
|
|
221
|
+
## Core component grammar
|
|
222
|
+
### Metric strip
|
|
223
|
+
Overview may show at most four coarse operational facts in one horizontal strip. Metrics share one surface and divider rhythm; they are not separate cards.
|
|
224
|
+
|
|
225
|
+
### Data list
|
|
226
|
+
Primary scanning surface for Work, Capabilities and Repositories. Rows use hairline separators and bounded one-line context.
|
|
227
|
+
|
|
228
|
+
### Data table
|
|
229
|
+
Primary surface for Automations. Columns align schedule, source, status, last and next facts. Selection drives a detail pane.
|
|
230
|
+
|
|
231
|
+
### Detail pane
|
|
232
|
+
A single contextual pane explains the selected object and owns actions/configuration. It replaces nested cards and repeated full descriptions.
|
|
233
|
+
|
|
234
|
+
### Status text
|
|
235
|
+
Use a 7px dot plus short text. Filled badges are exceptional.
|
|
236
|
+
|
|
237
|
+
## Page grammar
|
|
238
|
+
### Overview
|
|
239
|
+
Command bar, one four-column metric strip, a deduplicated attention list capped to actionable groups, and a compact persistent-goals summary. No prompt composer, run timeline or grid of equal cards.
|
|
240
|
+
|
|
241
|
+
### Automations
|
|
242
|
+
Use a configuration-first table with Name, Schedule, Scope, Delivery, Status, Last and Next; filters Enabled / Paused / Attention / All; selected detail pane with exact source and Run/Pause/Resume. Never duplicate report body.
|
|
243
|
+
|
|
244
|
+
### Work
|
|
245
|
+
Use Active / Waiting / Completed / All filters, a dense goal list and selected detail pane. No percentage, PlanStep or Run timeline.
|
|
246
|
+
|
|
247
|
+
### Capabilities
|
|
248
|
+
Use category filters Extensions / Services / Execution / Models / All, compact catalog rows and a detail pane with provider, health, lifecycle, capabilities and warnings. Raw MCP actions are Advanced only.
|
|
249
|
+
|
|
250
|
+
### Repositories
|
|
251
|
+
Use a searchable compact registry list/table and selected detail pane. Adding a repository is an inline form, not another dashboard card.
|
|
252
|
+
|
|
253
|
+
### Settings
|
|
254
|
+
Use a narrow grouped settings column. Rows own their controls. Credentials and routing protocol details live under Advanced.
|
|
255
|
+
|
|
256
|
+
### System
|
|
257
|
+
Maintenance only: posture summary, compact definition tables, and progressively disclosed diagnostics. Visually separate it from daily work.
|
|
258
|
+
|
|
259
|
+
## Interaction & motion
|
|
260
|
+
Transitions are 120–160ms and limited to background, border, opacity and pane movement. No bounce, scale-on-hover or decorative animation. Focus-visible states are mandatory. Destructive actions retain backend authorization.
|
|
261
|
+
|
|
262
|
+
## Do / Don't
|
|
263
|
+
### Do
|
|
264
|
+
- prefer one strong hierarchy per page;
|
|
265
|
+
- use open canvas and hairlines before adding a container;
|
|
266
|
+
- truncate scan-list copy and reveal depth contextually;
|
|
267
|
+
- keep status next to the fact it qualifies;
|
|
268
|
+
- keep ChatGPT as primary work and notification surface;
|
|
269
|
+
- use shared tokens and components for every route.
|
|
270
|
+
|
|
271
|
+
### Don't
|
|
272
|
+
- render a dashboard of equal rounded cards;
|
|
273
|
+
- expose internal execution ids as primary labels;
|
|
274
|
+
- fabricate progress or infer completion percentage;
|
|
275
|
+
- repeat full objectives in every row;
|
|
276
|
+
- use gradients, glows or “AI futuristic” decoration;
|
|
277
|
+
- use more than one primary accent family;
|
|
278
|
+
- duplicate ChatGPT result feeds inside the utility console.
|