Repository navigation
fix(cli): kilo local-path install leaves plugin rules inert #1081
Description
Description
aidd plugin install <local plugin path> --tool kilo copies every plugin Rule verbatim into .kilo/rules/<plugin>/<name>.md, including path-scoped Rules with their paths frontmatter, and adds no instructions entry. Kilo never loads Rules placed there, so every Rule installed this way is inert. If anyone lists them, the path-scoped ones apply to every file, because Kilo ignores paths.
The marketplace install (aidd plugin install <name>, aidd setup) and the flat archive (aidd translate --to kilo --as flat) already handle this, through the flat build strategy delivered with #868 (PR #1069):
- all-files Rules land at top-level
.kilo/rules/<plugin>-<group>-<name>.md; - path-scoped Rules are skipped with a warning naming the Rule and its paths (install), or fail the build (translate).
The local-path install goes through the Kilo profile's RulesCapability instead, which predates that work.
Affected file(s)
cli/src/contexts/tools/domain/profiles/kilo/profile.ts (rules: new RulesCapability(...))
Expected behaviour
A local-path install for Kilo matches the marketplace install:
- each all-files Rule is written to top-level
.kilo/rules/<plugin>-<group>-<name>.md, so Kilo loads it; - each path-scoped Rule is skipped with the same warning;
plugin removedeletes exactly what the install wrote.
Observed behaviour
With a plugin holding 1 all-files Rule and 7 path-scoped Rules (aidd-craft), the install exits 0 and prints no warning:
- all 8 Rules are copied to
.kilo/rules/aidd-craft/, with theirpathsfrontmatter; .kilo/kilo.jsonchas noinstructionskey;- none of the 8 Rules reaches the model.
Measured on Kilo 7.7.5, real runtime, with a fake OpenAI-compatible server capturing the prompt:
- a top-level
.kilo/rules/*.mdreaches the model without aninstructionsentry; - a file in
.kilo/rules/<subdir>/reaches it only when listed ininstructions; - a Rule with
paths: ["**/*.ts"]reaches a session that touches no.tsfile, sopathsis ignored.
Repro, from a CLI build of next, with an isolated HOME:
- Stage a marketplace (
.claude-plugin/marketplace.jsonplusplugins/<plugin>/) whose plugin has one all-files Rule and onepathsRule. - In a scratch git project, run
aidd setup --ai kilo --plugins none --no-default-marketplace --yes. - Run
aidd plugin install <path-to-plugin> --tool kilo --yes. - Run
find .kilo/rulesandgrep instructions .kilo/kilo.jsonc.
AI tool
Kilo Code
aidd-cli version
5.5.0 (next, plus PR #1069)
OS
macOS 26.6.2
Additional context
- Related: feat(cli): emit rules in Kilo flat builds #868 (flat archive Rules), feat(aidd-context): add Kilo-native generation targets #914 (in-project Kilo Rule generation by aidd-context; a different path).
- Kilo docs: https://kilo.ai/docs/customize/custom-rules
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Projects
- StatusShow more project fieldsIdeation
Activity