larksuite/cli · error

suite route for %s is missing or duplicated

Error message

suite route for %s is missing or duplicated

What it means

cropSuiteRoutes expects exactly one route bullet in SKILL.md for a removed skill (matched by the per-name regex); it found zero or more than one, so safe cropping is impossible - the archive's route format deviates from the generator's contract.

Source

Thrown at internal/skillscheck/layout.go:134

		return fmt.Errorf("write cropped suite SKILL.md: %w", err)
	}

	kept, err := listDirectSubdirs(referencesPath)
	if err != nil {
		return fmt.Errorf("verify cropped suite: %w", err)
	}
	return assertSameSkillNames(kept, target, "cropped suite")
}

func cropSuiteRoutes(content string, removed, target []string) (string, error) {
	routeLine := func(name string) *regexp.Regexp {
		return regexp.MustCompile(`(?m)^- ` + regexp.QuoteMeta(name) + `(?:([^)\n]*))?:[^\n]*(?:\n|$)`)
	}

	for _, name := range removed {
		line := routeLine(name)
		if len(line.FindAllStringIndex(content, -1)) != 1 {
			return "", fmt.Errorf("suite route for %s is missing or duplicated", name)
		}
		content = line.ReplaceAllString(content, "")
	}

	for _, name := range target {
		if len(routeLine(name).FindAllStringIndex(content, -1)) != 1 {
			return "", fmt.Errorf("cropped suite route for %s is missing or duplicated", name)
		}
	}

	keywords := suiteKeywords(content)
	start := strings.Index(content, suiteDescriptionPrefix)
	if start < 0 {
		return "", fmt.Errorf("suite description prefix is missing")
	}
	valueStart := start + len(suiteDescriptionPrefix)
	valueEndOffset := strings.Index(content[valueStart:], suiteDescriptionSuffix)
	if valueEndOffset < 0 {

View on GitHub (pinned to 7fd6ef3c07)

Solutions

  1. Align the suite SKILL.md route list with the reference directories (exactly one bullet per skill)
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/skillscheck/layout.go:134 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of larksuite/cli@7fd6ef3c07 (2026-09-04). Data as JSON: /api/errors/73101c5047b92e50. Report an issue: GitHub.