-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Summary
Today, junior config is set only via explicit jr-rpc config set commands. Config values should also be settable through natural-language prompting — similar to how Claude Code uses CLAUDE.md to establish per-project behavior — so any capability that needs configurable input can acquire it conversationally.
Current Behavior
- Config is set exclusively via
jr-rpc config set <key> <value>shell commands. - Skills and tools that need config values (e.g.
github.repo) require the user to have already set them manually. - No mechanism exists to detect missing config and prompt the user to supply it mid-conversation.
Gap / Opportunity
- Users shouldn't need to know which config keys exist before using a skill; the assistant should detect the gap and ask.
- Conversational config sets a lower barrier to entry and matches how people naturally interact with Slack bots.
- Aligns with the Claude Code model: behavior is shaped by prompts/files, not just CLI flags.
Prior Art
- Claude Code
CLAUDE.md— repo-level markdown file that shapes model behavior for a project; effectively "promptable config" at file scope. No direct URL available; described in Claude Code docs at code.claude.com/docs/en/settings. - Slack bot onboarding flows — common pattern where bots ask setup questions inline and persist answers, rather than requiring upfront CLI config.
Options
- Option A — Inline prompt on missing config: when a skill detects a required config key is absent, pause and ask the user for the value, then set it via
jr-rpc config setand continue. Minimal surface change; works for any skill. - Option B — Natural-language config parsing: allow freeform statements like "use getsentry/sentry for all issues" to be parsed and persisted as config, even without an explicit command invocation. Higher complexity; requires intent classification.
Recommended Direction
Start with Option A: required-key detection + inline prompt + auto-persist. This covers the core gap with low risk and makes Option B a natural follow-on once the persist path is proven.
Acceptance Criteria
- When a skill requires a config key that is not set, junior prompts the user for the value inline.
- User-supplied value is persisted via
jr-rpc config setand the skill resumes without re-invocation. - Works for any config key, not just
github.repo. - Natural-language phrasing ("use repo X") is recognized and stored as config without requiring
/config set.
Risks
- Prompting mid-skill adds a turn of latency; mitigation: only block on truly required keys, not optional ones.
- Misclassifying a statement as a config intent could silently overwrite existing config; mitigation: confirm before persisting on ambiguous input.
Sources
- Claude Code settings reference: https://code.claude.com/docs/en/settings
- Current junior config implementation: getsentry/junior (channel config via jr-rpc)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Fields
Give feedbackNo fields configured for issues without a type.