junior check
junior check validates the same app/ content layout that the runtime loads. It ignores legacy top-level plugins/ and skills/ directories, and it only runs app-file checks when the target already looks like a Junior app.
Run it from your app root:
pnpm exec junior checkExtended usage
Section titled “Extended usage”You can also point it at another app directory:
pnpm exec junior check packages/my-botThe command accepts zero or one directory argument.
Validation
Section titled “Validation”junior check validates the plugin and skill files under app/:
app/plugins/<plugin>/plugin.yamlapp/plugins/<plugin>/skills/<skill>/SKILL.mdapp/skills/<skill>/SKILL.md
For each file it validates:
- Plugin manifest schema
- Skill frontmatter schema
- Skill name matches the containing directory
- Duplicate plugin names
- Duplicate skill names across app and plugin skill roots
When the target already contains Junior app markers such as app/SOUL.md, app/WORLD.md, app/DESCRIPTION.md, app/skills/, or app/plugins/, the command also checks the app-root Markdown files:
app/SOUL.mdfor assistant personality. Missing emits a warning.app/WORLD.mdfor operational context. Missing emits a warning.app/DESCRIPTION.mdfor the user-facing app description. Missing emits a warning.app/ABOUT.mdmust not exist. This is a clean break; useWORLD.mdandDESCRIPTION.mdinstead.- Other
app/*.mdfiles are allowed and stay available at runtime as optional sandbox reference documents.
If a skill file has frontmatter but no instructions after it, the command emits a warning instead of failing.
Example output
Section titled “Example output”Successful validation:
Checking /repo✓ app files✓ plugin demo └─ ✓ skill demo-helper✓ app skills └─ ✓ skill repo-local✓ Validation passed (1 plugin manifest, 2 skill directories checked).Validation failure:
Checking /repo✓ app files✓ plugin demo✖ app skills └─ ✖ skill repo-local✖ error: /repo/app/skills/repo-local/SKILL.md: uses-config token "GITHUB_REPO" is invalid; expected dotted lowercase tokens (for example "provider.repo")junior command failed: Validation failed (1 error, 1 plugin manifest, 1 skill directory checked).Deprecated app-file layout:
Checking /repo✖ app files✖ error: /repo/app/ABOUT.md: ABOUT.md is no longer supported. Rename to WORLD.md (operational context) and DESCRIPTION.md (user-facing description).junior command failed: Validation failed (1 error, 0 plugin manifests, 0 skill directories checked).Verification
Section titled “Verification”- Run
pnpm exec junior checkfrom the app root, or pass the app path explicitly. - Confirm the command prints
Validation passedor only expectedwarning:lines. - If you are migrating older app docs, replace
app/ABOUT.mdwithapp/WORLD.mdandapp/DESCRIPTION.md. - Fix any reported errors before build or deploy.
Next step
Section titled “Next step”After validation passes, continue with junior snapshot create if your plugins need sandbox dependencies, or return to Plugins to keep extending the app surface.