Skip to content

feat(cli): ./shannon bounty subcommand + scope injection + bounty-mode prompt #365

Description

@JonathanVD43

Parent

#360

What to build

Register bounty as a top-level CLI subcommand and implement bounty start as a thin wrapper around the existing spawnWorker / ensureInfra machinery. Wire program config into the pipeline as scope rules and a new bountyConfig field on PipelineInput.

End-to-end path:

  • apps/cli/src/commands/bounty.ts — dispatcher for bounty start; accepts --url, --repo, --program <file|url>, --refresh-program, --workspace, --output, --debug, --pipeline-testing (no --config)
  • bounty start loads or parses ProgramConfig via the program config system (feat(cli): program config system — fetch, parse, store #364), then converts in_scope_domainsrules.focus URL patterns and out_of_scope_patternsrules.avoid patterns, passed as configData overrides into PipelineInput
  • New optional bountyConfig?: BountyConfig field added to PipelineInput and shared.ts; workflow passes it through to all activity inputs
  • apps/worker/prompts/shared/_bounty-mode.txt — instructs agents to behave as a careful human researcher: space out requests, avoid brute-force patterns, vary timing, do not hammer auth endpoints; injected into all agent prompts when bountyConfig is present
  • Active campaign info surfaced in the startup output (alongside Target / Repository / Workspace)

Acceptance criteria

  • ./shannon bounty start -u <url> -r <repo> --program shopify.txt runs a complete scan
  • In-scope domains appear as rules.focus patterns visible in agent prompts
  • Out-of-scope patterns appear as rules.avoid patterns visible in agent prompts
  • bountyConfig present in PipelineInput and visible in Temporal workflow input
  • _bounty-mode.txt partial appears in agent prompts during a bounty scan
  • Active campaign name and multipliers printed at scan startup when present
  • ./shannon bounty start --help shows correct usage

Blocked by

#364

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions