Fleet Integration Plan
Fleet Integration Plan
Section titled “Fleet Integration Plan”Purpose: Turn the Fleet Operational Patterns analysis into concrete progress.json rows. Every pattern gets a phase assignment, subphase placement, and execution priority. Audience: gormes-planner, gormes-builder, and gormes-skill-manager skills. Canonical queue: progress.json rows created from this plan become the implementation queue.
Phase Assignment Map
Section titled “Phase Assignment Map”Each fleet pattern is assigned to the Gormes phase and subphase where it naturally fits:
| Pattern | Phase | Subphase | Lane | Priority |
|---|---|---|---|---|
| Blocker policy | 5 — Final Purge | 5.N (Misc Operator Tools) | 5 | P0 |
| Session health monitoring | 5 — Final Purge | 5.N (Misc Operator Tools) | 5 | P0 |
| Evidence-before-claims quality gate | 5 — Final Purge | 5.O (CLI Parity) | 5 | P0 |
| Git delivery contract enforcement | 5 — Final Purge | 5.N (Misc Operator Tools) | 5 | P1 |
| QMD hybrid search | 5 — Final Purge | 5.N (Misc Operator Tools) | 5 | P1 |
| Session rollover automation | 5 — Final Purge | 5.N (Misc Operator Tools) | 5 | P1 |
| Sandbox policy explain | 5 — Final Purge | 5.B (Sandboxing) | 3 | P1 |
| ACP bridge | 5 — Final Purge | 5.H (ACP Integration) | 3 | P1 |
| Interactive onboarding | 5 — Final Purge | 5.O (CLI Parity) | 5 | P1 |
| Agent hooks registry | 5 — Final Purge | 5.I (Plugins) | 3 | P2 |
| Plugin marketplace + doctor | 5 — Final Purge | 5.I (Plugins) | 3 | P2 |
| Logs command | 5 — Final Purge | 5.O (CLI Parity) | 5 | P2 |
| Multi-instance fleet management | 5 — Final Purge | 5.E (new subphase) | 4 | P2 |
| Standardized workspace layout | 6 — Learning Loop | 6.A (new subphase) | 6 | P2 |
| Memory backend plugin architecture | 5 — Final Purge | 5.I (Plugins) | 3 | P2 |
| Device pairing + token management | 5 — Final Purge | 5.N (Misc Operator Tools) | 5 | P3 |
| Container-aware runtime | 5 — Final Purge | 5.B (Sandboxing) | 3 | P3 |
Row Specifications
Section titled “Row Specifications”P0 — Immediate (Next 30 Days)
Section titled “P0 — Immediate (Next 30 Days)”Row 1: Blocker Policy Integration
Section titled “Row 1: Blocker Policy Integration”- Phase: 5.N (Misc Operator Tools)
- Priority: P0
- Slice size: small
- Execution owner: tools
- Contract: Port the sages-openclaw fleet blocker protocol into Gormes: classify blockages by type (access|infra|dependency|decision|bug|unknown), record evidence in structured format, auto-pivot to unblocked work, and surface active blockers in
gormes statusoutput. - Trust class: operator
- Degraded mode: Unknown blocker type, missing evidence, or inability to pivot reports
blocker_unclassifiedin status rather than crashing or silently stalling. - Fixture:
internal/tools/blocker_test.go - Source refs:
workspace-mineru/AGENTS.md(blocker policy section)workspace-link/AGENTS.md(session health monitor)fleet-operational-patterns.md
- Write scope:
internal/tools/blocker.gointernal/tools/blocker_test.gointernal/cli/status.go(surface blockers)webpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/tools -run TestBlocker -count=1 - Acceptance:
gormes statusshows active blockers with type, evidence, and owner- Blocker record format matches fleet standard: [BLOCKED] title — timestamp, blocker, evidence, unblocks when, owner, pivot, next check
- gormes-planner can mark rows as blocked in progress.json
- gormes-builder auto-pivots when hitting a blocker
- Done signal: Blocker records appear in status output, planner can mark rows blocked, builder auto-pivots.
Row 2: Session Health Monitoring
Section titled “Row 2: Session Health Monitoring”- Phase: 5.N (Misc Operator Tools)
- Priority: P0
- Slice size: small
- Execution owner: tools
- Contract: Port Link’s session-health-monitor patterns: track session file sizes with 500KB/2MB tier alerts, monitor heartbeat freshness with 45min/90min tiers, and expose via
gormes healthcommand with structured JSON output. - Trust class: operator
- Degraded mode: Missing session files, stale heartbeat, or unreadable metrics report
health_unavailablewith specific path/error details. - Fixture:
internal/tools/health_test.go - Source refs:
workspace-link/skills/session-health-monitor/SKILL.mdworkspace-mineru/skills/fleet-admin/SKILL.mdinternal/goncho/service.go(session store)fleet-operational-patterns.md
- Write scope:
internal/tools/health.gointernal/tools/health_test.gocmd/gormes/health.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/tools -run TestHealth -count=1 - Acceptance:
gormes healthoutputs session sizes with tier labels (ok/warn/critical)gormes healthoutputs heartbeat age with freshness labels- JSON mode (
--json) produces machine-parseable structured output - Goncho extraction queue depth included in health report
- Done signal:
gormes healthcommand ships with session size, heartbeat, and Goncho queue monitoring.
Row 3: Evidence-Before-Claims Quality Gate
Section titled “Row 3: Evidence-Before-Claims Quality Gate”- Phase: 5.O (CLI Parity)
- Priority: P0
- Slice size: small
- Execution owner: tools
- Contract: Port Link’s evidence-before-claims pattern: doctor output and build results must include exact counts (pass/fail/skip), not summary claims. Every status line with a count must derive from an actual computation, not a hardcoded narrative.
gormes doctor --offlinemust report exact pass/fail/skip per check category. - Trust class: operator
- Degraded mode: Uncomputable counts report
count_unavailablewith the reason (missing data, corrupt store, etc.) rather than fabricating a number. - Fixture:
internal/doctor/evidence_test.go - Source refs:
workspace-link/skills/deep-research/SKILL.md(evidence standard)workspace-riju/skills/fecim-physics-validation/SKILL.md(exact thresholds)internal/doctor/doctor.gofleet-operational-patterns.md
- Write scope:
internal/doctor/evidence.gointernal/doctor/evidence_test.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/doctor -run TestEvidence -count=1 - Acceptance:
gormes doctor --offlineoutput contains exact pass/fail/skip counts per category- No hardcoded “all checks passed” when counts disagree
- JSON doctor output includes per-check result objects with pass/fail/skip/error status
- Done signal: Doctor output uses computed evidence rather than narrative summaries.
P1 — Short-Term (Next 90 Days)
Section titled “P1 — Short-Term (Next 90 Days)”Row 4: Git Delivery Contract Enforcement
Section titled “Row 4: Git Delivery Contract Enforcement”- Phase: 5.N (Misc Operator Tools)
- Priority: P1
- Slice size: small
- Execution owner: tools
- Contract: Enforce the fleet-wide git delivery contract: split commits by concern, commit after each validated slice, push to origin, report hash/branch/push confirmation. gormes-builder skill must include post-commit validation.
- Trust class: operator
- Degraded mode: Unpushed commits, dirty working tree, or missing remote report
git_delivery_incompleterather than silently failing. - Fixture:
internal/tools/git_delivery_test.go - Source refs:
- All 6 workspace AGENTS.md files (Git delivery contract)
SHARED-PROTOCOLS.mdfleet-operational-patterns.md
- Write scope:
internal/tools/git_delivery.gointernal/tools/git_delivery_test.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/tools -run TestGitDelivery -count=1 - Acceptance:
- Builder skill validates working tree is clean and commits are pushed before declaring row complete
gormes statusreports git delivery state (branch, ahead/behind, unpushed)- Split-commit discipline documented in AGENTS.md
- Done signal: Git delivery contract enforced by builder skill and visible in status.
Row 5: QMD Hybrid Search
Section titled “Row 5: QMD Hybrid Search”- Phase: 5.N (Misc Operator Tools)
- Priority: P1
- Slice size: medium
- Execution owner: tools
- Contract: Port the fleet’s shared QMD hybrid search (BM25 + vector) as
gormes search. Index all markdown docs in the workspace (AGENTS.md, TOOLS.md, USER.md, MEMORY.md, memory/, sessions/, skills/SKILL.md) for offline keyword + semantic retrieval. - Trust class: operator
- Degraded mode: Missing embedding model, corrupt index, or unreadable workspace reports
search_unavailablewith root cause. Falls back to BM25-only search when vector model unavailable. - Fixture:
internal/tools/qmd_test.go - Source refs:
- All 6 workspace
skills/qmd/SKILL.mdfiles internal/goncho/service.go(embedding model integration)fleet-operational-patterns.md
- All 6 workspace
- Write scope:
internal/tools/qmd.gointernal/tools/qmd_test.gocmd/gormes/search.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/tools -run TestQMD -count=1 - Acceptance:
gormes search "how to deploy"returns ranked results from workspace docs- BM25 fallback works when no embedding model configured
- Results include source file path and excerpt context
- Index updates automatically on doc changes (optional, planned for P2 iteration)
- Done signal:
gormes searchships with BM25 + optional vector hybrid search across workspace docs.
Row 6: Session Rollover Automation
Section titled “Row 6: Session Rollover Automation”- Phase: 5.N (Misc Operator Tools)
- Priority: P1
- Slice size: small
- Execution owner: tools
- Contract: Port the fleet’s session rollover rule (1500KB threshold → write handoff summary → fresh session).
gormes session rolloverexports current session, writes 5-line handoff summary, starts fresh session. Auto-rollover at configurable threshold. - Trust class: operator, system
- Degraded mode: Session file too large to export cleanly, corrupt session state, or rollover failure reports
session_rollover_failedwith specific path/error and keeps original session intact. - Fixture:
internal/persistence/session/rollover_test.go - Source refs:
- All 6 workspace AGENTS.md (Session reliability rules)
internal/persistence/session/session.gointernal/goncho/service.gofleet-operational-patterns.md
- Write scope:
internal/persistence/session/rollover.gointernal/persistence/session/rollover_test.gocmd/gormes/session_rollover.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/persistence/session -run TestRollover -count=1 - Acceptance:
gormes session rolloverexports and starts fresh session- Handoff summary includes: session ID, message count, time range, last 3 actions, blockages
- Auto-rollover triggers at configurable size threshold (default 1500KB)
- Original session preserved after rollover
- Done signal:
gormes session rolloverships with auto-trigger at configurable threshold.
P2 — Medium-Term (Next 6 Months)
Section titled “P2 — Medium-Term (Next 6 Months)”Row 7: Agent Hooks Registry
Section titled “Row 7: Agent Hooks Registry”- Phase: 5.I (Plugins Architecture)
- Priority: P2
- Slice size: medium
- Execution owner: tools
- Contract: Port OpenClaw’s hook registry:
gormes hookswith list/enable/disable/check/info subcommands. Hooks are inspectable at runtime from gateway config (HOOK.yaml/BOOT.md). Support enable/disable without restart. - Trust class: operator
- Degraded mode: Hook config parse failure, missing hook implementation, or runtime error reports per-hook status with degraded hook skipped.
- Fixture:
internal/plugins/hooks_test.go - Source refs:
- OpenClaw
hooksCLI surface internal/gateway/manager.go(HOOK.yaml loading)fleet-operational-patterns.md
- OpenClaw
- Write scope:
internal/plugins/hooks.gointernal/plugins/hooks_test.gocmd/gormes/hooks.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/plugins -run TestHooks -count=1 - Acceptance:
gormes hooks listshows all hooks with enabled/disabled statusgormes hooks enable/disabletoggles without restartgormes hooks info <hook>shows source, trigger, and status- Runtime toggling does not require process restart
- Done signal:
gormes hookscommand ships with list/enable/disable/info.
Row 8: Plugin Marketplace + Doctor
Section titled “Row 8: Plugin Marketplace + Doctor”- Phase: 5.I (Plugins Architecture)
- Priority: P2
- Slice size: large
- Execution owner: tools
- Contract: Port OpenClaw’s plugin management surface: marketplace discovery (ClawHub-compatible), plugin doctor (load issue reporting), plugin inspect (manifest details), and third-party plugin sandboxing (WASM/subprocess isolation).
- Trust class: operator
- Degraded mode: Marketplace unreachable, plugin load failure, or sandbox crash reports per-plugin status with degraded plugin skipped.
- Fixture:
internal/plugins/marketplace_test.go - Source refs:
- OpenClaw
pluginsCLI surface (install, list, enable, disable, inspect, doctor, marketplace, update, uninstall) internal/plugins/current implementationfleet-operational-patterns.md
- OpenClaw
- Write scope:
internal/plugins/marketplace.gointernal/plugins/marketplace_test.gointernal/plugins/doctor.gointernal/plugins/sandbox.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/plugins -run TestMarketplace -count=1 - Acceptance:
gormes plugins marketplacelists available plugins from configured sourcesgormes plugins installfetches and activates from ClawHub-compatible sourcesgormes plugins doctorreports load issues per plugin- Third-party plugins run in WASM or subprocess sandbox
- Done signal: Plugin marketplace + doctor shipped with third-party sandboxing.
Row 9: First-Run Setup/Readiness
Section titled “Row 9: First-Run Setup/Readiness”- Phase: 5.O (CLI Parity)
- Priority: P1
- Slice size: medium
- Execution owner: tools
- Contract: Keep first-run setup on
gormes setupand machine-readable readiness ongormes doctor --offline --target terminal --json: model/provider selection → auth setup → gateway channel configuration → browser/CDP checks → skill discovery → dashboard launch. Match OpenClaw’s onboarding depth without adding a deprecated top-level command. - Trust class: operator
- Degraded mode: Missing provider credentials, gateway config gaps, or browser unavailability reports per-step status and allows skip with explicit warning.
- Fixture:
internal/cli/onboard_test.go - Source refs:
- OpenClaw
onboardcommand cmd/gormes/setup.gofleet-operational-patterns.mdimplementation-roadmap.md(Product Hardening Borrow List)
- OpenClaw
- Write scope:
internal/cli/onboard.gointernal/cli/onboard_test.gocmd/gormes/onboard.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/cli -run TestOnboard -count=1 - Acceptance:
gormes setupand doctor readiness cover model → provider → auth → gateway → browser → skills → dashboard- Each step can be skipped with explicit warning
- Already-configured steps are detected and pre-filled
- End-to-end testable without live credentials (mock provider, fake channel)
- Done signal: Public setup/readiness surfaces ship the full first-run flow without registering
gormes onboard.
Row 10: Logs Command
Section titled “Row 10: Logs Command”- Phase: 5.O (CLI Parity)
- Priority: P2
- Slice size: small
- Execution owner: tools
- Contract: Port
openclaw logsasgormes logs: tail gateway file logs, support follow mode (-f), filter by level, and stream via RPC if gateway is remote. - Trust class: operator
- Degraded mode: Missing log file, permission denied, or remote gateway unreachable reports
logs_unavailablewith root cause. - Fixture:
internal/cli/logs_test.go - Source refs:
- OpenClaw
logscommand must-have-features.md(CLI Commands gap)fleet-operational-patterns.md
- OpenClaw
- Write scope:
internal/cli/logs.gointernal/cli/logs_test.gocmd/gormes/logs.gowebpages/docs/content/building-gormes/progress.json
- Test commands:
go test ./internal/cli -run TestLogs -count=1 - Acceptance:
gormes logsshows recent gateway log entriesgormes logs -ffollows live logsgormes logs --level errorfilters by severity
- Done signal:
gormes logsships with follow mode and level filtering.
New Subphase Proposals
Section titled “New Subphase Proposals”5.N.x — Fleet Operational Patterns (within Phase 5.N)
Section titled “5.N.x — Fleet Operational Patterns (within Phase 5.N)”Rows 1, 2, 4, 5, 6 from above belong here. This is a logical grouping within the existing 5.N subphase. No new subphase key needed if rows are added directly to 5.N items.
5.E.x — Multi-Instance Management (new subphase)
Section titled “5.E.x — Multi-Instance Management (new subphase)”Currently Phase 5.E is “TTS / Voice / Transcription.” Multi-instance fleet management doesn’t fit there. Proposal: new subphase 5.E.x (or renumber) for fleet-level concerns.
Alternative: Place multi-instance management under 5.N (Misc Operator Tools).
Implementation Sequence
Section titled “Implementation Sequence”Sprint 1 (Weeks 1-2) — P0 Foundation
Section titled “Sprint 1 (Weeks 1-2) — P0 Foundation”Row 1: Blocker Policy IntegrationRow 2: Session Health MonitoringSprint 2 (Weeks 3-4) — P0 Closeout
Section titled “Sprint 2 (Weeks 3-4) — P0 Closeout”Row 3: Evidence-Before-Claims Quality GateSprint 3 (Weeks 5-8) — P1 Foundation
Section titled “Sprint 3 (Weeks 5-8) — P1 Foundation”Row 5: QMD Hybrid SearchRow 4: Git Delivery Contract EnforcementRow 6: Session Rollover AutomationSprint 4 (Weeks 9-12) — P1 Closeout
Section titled “Sprint 4 (Weeks 9-12) — P1 Closeout”Row 9: Interactive OnboardingRow 7: Agent Hooks RegistryBacklog (Month 3+) — P2
Section titled “Backlog (Month 3+) — P2”Row 8: Plugin Marketplace + DoctorRow 10: Logs CommandRow 11: Multi-Instance Fleet ManagementDependencies
Section titled “Dependencies”| Row | Depends On | Unblocks |
|---|---|---|
| Row 1 (Blocker) | Phase 5.N completed | All builder/planner quality |
| Row 2 (Health) | Goncho session store (Phase 3) | Row 6 (Rollover) |
| Row 3 (Evidence) | Doctor command (Phase 1) | All CLI parity work |
| Row 4 (Git Delivery) | Builder skill (Phase 1.D) | CI/CD integration |
| Row 5 (QMD) | Goncho embeddings (Phase 3) | Search UX, Row 9 (Onboard) |
| Row 6 (Rollover) | Row 2 (Health) | Session lifecycle |
| Row 7 (Hooks) | Gateway HOOK.yaml loader (Phase 2) | Row 8 (Plugins) |
| Row 8 (Plugins) | Row 7 (Hooks), Phase 5.I base | Community ecosystem |
| Row 9 (Onboard) | Row 5 (QMD), Phase 5.O base | First-run experience |
| Row 10 (Logs) | Gateway file logging | Operator visibility |
Validation Checklist
Section titled “Validation Checklist”Before declaring any row complete:
- Row TDD fixtures pass (
go testwith row-specific test command) -
go run ./cmd/progress validatepasses - Row status updated to
completeinprogress.json -
contract_statusset tovalidated -
evidenceblock populated with implementation path and test results - New commands documented in
cmd/README.md - Fleet operational patterns doc updated with shipped status
Generated: May 1, 2026 Source: fleet-operational-patterns.md, all 6 sages workspaces, OpenClaw 2026.3.28 Cross-referenced against: progress.json, completion-plan.md, lane-roadmap.md, must-have-features.md