Summary
When context-mode is installed globally and used with pi-coding-agent, pi prints a startup warning:
~/.npm-global/lib/node_modules/context-mode/skills/UPSTREAM-CREDITS.md
description is required
Cause
Pi's skill discovery rules:
- A directory containing
SKILL.md is a skill root.
- For top-level skill directories (including those declared via
pi.skills in package.json), direct .md children at the root are also loaded as skills.
context-mode declares pi.skills: ["./skills"] in its package.json, and ships skills/UPSTREAM-CREDITS.md at the root of that directory. Pi treats it as a skill, fails frontmatter validation (no description:), and emits a warning every startup.
Relevant pi loader logic: loadSkillsFromDirInternal(..., includeRootFiles: true) for the entry call, which then tries to parse every .md at the root.
Suggested fix
Any one of:
- Rename to
.txt (or UPSTREAM-CREDITS with no extension). Easiest, zero behavior change.
- Move it out of
skills/ — e.g. to repo root or docs/. Credits don't really belong inside the skill discovery tree.
- Add stub frontmatter with a
description and disable-model-invocation: true so it's parsed as a non-invokable skill. Works but is the hackiest option.
Option 1 or 2 seems cleanest.
Environment
context-mode v1.0.111
@mariozechner/pi-coding-agent (current)
- macOS
Summary
When
context-modeis installed globally and used with pi-coding-agent, pi prints a startup warning:Cause
Pi's skill discovery rules:
SKILL.mdis a skill root.pi.skillsinpackage.json), direct.mdchildren at the root are also loaded as skills.context-modedeclarespi.skills: ["./skills"]in itspackage.json, and shipsskills/UPSTREAM-CREDITS.mdat the root of that directory. Pi treats it as a skill, fails frontmatter validation (nodescription:), and emits a warning every startup.Relevant pi loader logic:
loadSkillsFromDirInternal(..., includeRootFiles: true)for the entry call, which then tries to parse every.mdat the root.Suggested fix
Any one of:
.txt(orUPSTREAM-CREDITSwith no extension). Easiest, zero behavior change.skills/— e.g. to repo root ordocs/. Credits don't really belong inside the skill discovery tree.descriptionanddisable-model-invocation: trueso it's parsed as a non-invokable skill. Works but is the hackiest option.Option 1 or 2 seems cleanest.
Environment
context-modev1.0.111@mariozechner/pi-coding-agent(current)