Skip to content

Support running junior as a package with external skills/soul directory #9

@sentry-junior

Description

@sentry-junior

Summary

Currently, skills and soul configuration are bundled inside the junior repo/package. This makes it impossible to run junior as a standalone package pointed at a custom working directory with user-defined skills and soul. We want to support a mode where junior can be installed as a package and loaded against an external directory for skills and soul configuration.

Current Behavior

  • Skills and soul files are bundled directly in the junior repository.
  • There is no mechanism to point a running junior instance at an external working directory.
  • Customizing junior requires forking or modifying the repo directly.

Gap / Opportunity

  • Users/teams should be able to install junior as a package and bring their own skills/soul without modifying the package itself.
  • Enables multi-tenant or org-specific deployments where skills and soul differ per team.

Prior Art

  • Many CLI tools support a --config-dir or working directory override (e.g., ESLint config resolution, dbt project dir flag) — same pattern applies here.

Options

  • Add a --working-dir (or JUNIOR_WORKING_DIR) flag/env var that overrides the default bundled skills/soul path at runtime.
  • Support a config file (e.g., junior.config.js) in the working directory that declares where to load skills and soul from.

Recommended Direction

  • Implement a --working-dir CLI flag and/or JUNIOR_WORKING_DIR env var. When set, junior loads skills and soul from that directory instead of the bundled defaults.

Acceptance Criteria

  • junior can be installed as a package and invoked with a working directory flag/env var.
  • Skills are loaded from the specified external directory when the flag/env is set.
  • Soul configuration is loaded from the specified external directory when the flag/env is set.
  • Bundled defaults are used as fallback when no working directory is specified.

Risks

  • Schema/format mismatches between externally provided skills and what junior expects — needs validation or clear error messaging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions