Skip to content

feat: promptable config — detect missing keys and collect values conversationally #7

@sentry-junior

Description

@sentry-junior

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 set and 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 set and 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

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