Summary
meta init scaffolds the agent-context (.metaobjects/AGENTS.md + the .claude/skills/metaobjects-* skills) relative to the cwd where it runs. When the MetaObjects project lives in a monorepo subdirectory (e.g. packages/api/), running meta init there puts the skills under packages/api/.claude/skills/.
But Claude Code discovers skills only from the cwd + ancestor directories + the user level — it does not walk down into subdirectories (CLAUDE.md, by contrast, loads nested files on-demand; skills don't). So skills scaffolded into a subdir load only when Claude is launched with cwd inside that subdir — not from the repo root, which is the most common way to launch.
Net effect: in a monorepo, meta init (run in the project subdir) produces metaobjects-* skills that silently don't load from a root-launched session.
Repro
- Monorepo with the MetaObjects project in a subdir (
packages/api/).
cd packages/api && meta init → skills land at packages/api/.claude/skills/metaobjects-*.
- Launch Claude Code from the repo root.
- The
metaobjects-* skills are not discovered/loaded.
Suggested handling (any of)
- Place (or offer to place) the agent-context skills at the repo root by default even when the project/metadata lives in a subdir — skills are repo-global guidance, while metadata/config/migrations stay with the project.
- Detect a monorepo-subdir init and warn, pointing to running the agent-context scaffold at the root.
- Document root-vs-subdir agent-context placement in the init docs.
Workaround that works today
Run the agent-context scaffold at the repo root with the project's stack:
cd <repo-root> && meta init --docs-only --server <lang>
This places discoverable skills at the root while the metadata/config/migrations remain in the subdir. (Per-package scoping, if ever needed, is the paths: skill frontmatter — not a buried directory.)
Environment
@metaobjectsdev/cli 0.12.0, monorepo with the project in a subdirectory.
Summary
meta initscaffolds the agent-context (.metaobjects/AGENTS.md+ the.claude/skills/metaobjects-*skills) relative to the cwd where it runs. When the MetaObjects project lives in a monorepo subdirectory (e.g.packages/api/), runningmeta initthere puts the skills underpackages/api/.claude/skills/.But Claude Code discovers skills only from the cwd + ancestor directories + the user level — it does not walk down into subdirectories (CLAUDE.md, by contrast, loads nested files on-demand; skills don't). So skills scaffolded into a subdir load only when Claude is launched with cwd inside that subdir — not from the repo root, which is the most common way to launch.
Net effect: in a monorepo,
meta init(run in the project subdir) producesmetaobjects-*skills that silently don't load from a root-launched session.Repro
packages/api/).cd packages/api && meta init→ skills land atpackages/api/.claude/skills/metaobjects-*.metaobjects-*skills are not discovered/loaded.Suggested handling (any of)
Workaround that works today
Run the agent-context scaffold at the repo root with the project's stack:
This places discoverable skills at the root while the metadata/config/migrations remain in the subdir. (Per-package scoping, if ever needed, is the
paths:skill frontmatter — not a buried directory.)Environment
@metaobjectsdev/cli 0.12.0, monorepo with the project in a subdirectory.