{"record":{"id":"dd455d8f745f0830","repo":"multica-ai/multica","slug":"path-is-required-dd455d","errorCode":null,"errorMessage":"--path is required","messagePattern":"--path is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"server/cmd/multica/cmd_skill.go","lineNumber":680,"sourceCode":"\t\t\tstrVal(f, \"id\"),\n\t\t\tstrVal(f, \"path\"),\n\t\t\tstrVal(f, \"created_at\"),\n\t\t\tstrVal(f, \"updated_at\"),\n\t\t})\n\t}\n\tcli.PrintTable(os.Stdout, headers, rows)\n\treturn nil\n}\n\nfunc runSkillFilesUpsert(cmd *cobra.Command, args []string) error {\n\tclient, err := newAPIClient(cmd)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfilePath, _ := cmd.Flags().GetString(\"path\")\n\tif filePath == \"\" {\n\t\treturn fmt.Errorf(\"--path is required\")\n\t}\n\tcontent, hasContent, err := resolveSkillContentFlag(cmd)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !hasContent || content == \"\" {\n\t\treturn fmt.Errorf(\"--content is required\")\n\t}\n\n\tbody := map[string]any{\n\t\t\"path\":    filePath,\n\t\t\"content\": content,\n\t}\n\n\tctx, cancel := cli.APIContext(context.Background())\n\tdefer cancel()\n\n\tvar result map[string]any","sourceCodeStart":662,"sourceCodeEnd":698,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/cmd/multica/cmd_skill.go#L662-L698","documentation":"Client-side flag validation in `multica skill files upsert`: the `--path` flag (the destination path of the file inside the skill bundle) is required and was empty. No network call occurs; nothing is modified.","triggerScenarios":"Running `multica skill files upsert <skill-id> --content \"...\"` while forgetting --path; a script whose PATH_VAR variable is unset; passing --path \"\" explicitly.","commonSituations":"Building the command from variables where the path variable is empty in one CI branch; user assumes the CLI infers the path from the local filename.","solutions":["Add the bundle-relative destination: `multica skill files upsert <id> --path SKILL.md --content \"...\"`.","In scripts, fail fast on empty variables before invoking the CLI.","Remember --path is where the file lives INSIDE the skill, not a local disk path."],"exampleFix":"# before\nmultica skill files upsert sk-1 --content \"new docs\"\n\n# after\nmultica skill files upsert sk-1 --path references/api.md --content \"new docs\"","handlingStrategy":"validation","validationCode":": \"${BUNDLE_PATH:?set BUNDLE_PATH (file path INSIDE the skill bundle)}\"\nmultica skill files upsert \"$SKILL_ID\" --path \"$BUNDLE_PATH\" --content \"$CONTENT\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Remember --path is bundle-relative, not a local filesystem path.","Fail fast on empty variables in scripts.","Review `skill files list` output to match the path style of existing files."],"tags":["cli","validation","flags","skill","files"],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}