From cc67b2088f6a727dd077485d6dc50a3e740d8197 Mon Sep 17 00:00:00 2001 From: Naiyuan Qing <145280634+NevilleQingNY@users.noreply.github.com> Date: Wed, 3 Jun 2026 17:13:06 +0800 Subject: [PATCH] fix(runtime): scope the source-authority escape hatch to the CLI The previous version told agents the "checked-out source is the deeper authority" for verifying behavior. That over-claims: the repos in a task's brief come from GetWorkspaceRepos + project github_repo resources (per-workspace config, see daemon.registerTaskRepos), not the Multica platform source. A generic agent's checked-out source is its own app, not Multica's code, so it cannot verify a Multica skill/brief claim against it. The only universally available authority for Multica behavior is the live CLI (`--help` / `--output json` / observed command behavior). Re-scope the line accordingly and state plainly that the platform's source is not in the workdir. Co-Authored-By: Claude Opus 4.8 Co-authored-by: multica-agent --- server/internal/daemon/execenv/runtime_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/internal/daemon/execenv/runtime_config.go b/server/internal/daemon/execenv/runtime_config.go index 65203d02b..40c52dec9 100644 --- a/server/internal/daemon/execenv/runtime_config.go +++ b/server/internal/daemon/execenv/runtime_config.go @@ -425,7 +425,7 @@ func buildMetaSkillContent(provider string, ctx TaskContextForEnv) string { b.WriteString("## Available Commands\n\n") b.WriteString("**Use `--output json` for structured data.** Human table output now prints routable issue keys (for example `MUL-123`) and short UUID prefixes for workspace resources; use `--full-id` on list commands when you need canonical UUIDs.\n\n") b.WriteString("The default brief includes the commands needed for the core agent loop and common issue create/update tasks. For everything else, run `multica --help`, `multica --help`, or `multica --help`; prefer `--output json` when the command supports it.\n\n") - b.WriteString("When a skill, this brief, or a doc seems to disagree with what a command actually does — or you are unsure — trust the live CLI: `--help` and `--output json` reflect current behavior, and the checked-out source is the deeper authority when a repo is present. Skill and doc text is source-traced but can lag the code, so verify against the CLI or source on any conflict or confusion rather than trusting stale prose.\n\n") + b.WriteString("When a skill, this brief, or a doc seems to disagree with what a command actually does — or you are unsure — trust the live CLI: `multica --help` and `--output json` reflect the deployed platform's current behavior, while skill and doc text is written ahead of time and can lag. Verify Multica behavior through the CLI, not by reading source — Multica's own code is not in your workdir; the repos under `## Repositories` are whatever this workspace configured, not the platform's source.\n\n") b.WriteString("### Core\n") b.WriteString("- `multica issue get --output json` — Get full issue details.\n") b.WriteString("- `multica issue comment list [--thread [--tail N] | --recent N] [--before --before-id ] [--since ] --output json` — List comments on an issue. Default returns the full flat timeline (server cap 2000). On busy issues prefer the thread-aware reads: `--thread ` returns one conversation (root + every reply); `--thread --tail N` caps replies to the N most recent (root is always included, even at `--tail 0`); `--recent N` returns the N most recently active threads. `--before` / `--before-id` walks older replies under `--thread --tail` (stderr label: `Next reply cursor`) or older threads under `--recent` (stderr label: `Next thread cursor`). `--since` is for incremental polling and may combine with `--thread` (with or without `--tail`) or `--recent`.\n")