You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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_domains → rules.focus URL patterns and out_of_scope_patterns → rules.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)
Parent
#360
What to build
Register
bountyas a top-level CLI subcommand and implementbounty startas a thin wrapper around the existingspawnWorker/ensureInframachinery. Wire program config into the pipeline as scope rules and a newbountyConfigfield onPipelineInput.End-to-end path:
apps/cli/src/commands/bounty.ts— dispatcher forbounty start; accepts--url,--repo,--program <file|url>,--refresh-program,--workspace,--output,--debug,--pipeline-testing(no--config)bounty startloads or parsesProgramConfigvia the program config system (feat(cli): program config system — fetch, parse, store #364), then convertsin_scope_domains→rules.focusURL patterns andout_of_scope_patterns→rules.avoidpatterns, passed asconfigDataoverrides intoPipelineInputbountyConfig?: BountyConfigfield added toPipelineInputandshared.ts; workflow passes it through to all activity inputsapps/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 whenbountyConfigis presentAcceptance criteria
./shannon bounty start -u <url> -r <repo> --program shopify.txtruns a complete scanrules.focuspatterns visible in agent promptsrules.avoidpatterns visible in agent promptsbountyConfigpresent inPipelineInputand visible in Temporal workflow input_bounty-mode.txtpartial appears in agent prompts during a bounty scan./shannon bounty start --helpshows correct usageBlocked by
#364