Skip to content

Founder Intake — FLT-75 Phase 1

.NET 10/SQLite thin slice for durable founder-request refinement. Jira is isolated behind IJiraAdapter; this repository contains no credentials or live network adapter.

Execution is isolated behind IFleetDispatchQueue. The intake broker never starts an agent process directly: after an intake reaches Ready, it may enqueue a request to fleet-dispatch, which owns agent and host selection, governor admission, concurrency, and worktree execution. The production queue remains deliberately disabled until the FLT-80 preconditions pass.

Set FOUNDER_INTAKE_REQUESTER to Allyson or Shereeba (default: Allyson) and optionally FOUNDER_INTAKE_DB, then run:

dotnet run --project FounderIntake.Cli -- ingest slack thread-1 event-1 "Describe the request"

The domain enforces event idempotency, provenance tags, two refinement rounds, ambiguity and safety gates, human requester confirmation, seven-day stalling, and governor parking.

Research and ideation lane

The same trusted Slack or AgentMail ingress can classify requests for research, documents, presentations, mockups, feature ideation, ideal user-story packages, images, storyboards, and approval-gated video. These requests still pass through fleet admission and the usage governor; the intake service never invokes a model or media generator directly.

A low-cost Fast Find intent searches approved Confluence, Jira, Drive documentation, and help resources and returns direct links before summaries. Council ideation and approved-library retrieval are separate, governor-aware capabilities: they are opt-in or policy-triggered, preserve source permissions, record citations, and must treat retrieved messages and PDFs as untrusted content rather than instructions.

Artifact drafts default to the verified requester's private Drive folder. Publishing to Team Shared requires an explicit destination or submit-review action, and cross-user private-folder writes are denied. Video remains approval-gated. Completed work returns an auditable Drive link to the originating Slack thread or email conversation.

FounderIntake.Host now contains the live transport layer: a Slack Socket Mode listener, an AgentMail WebSocket listener, a config-driven identity resolver, transport-scoped reply writers, and a durable reply-outbox pump. Every one of these is passive by default — each stays dormant unless its Enabled flag is set and its required secrets resolve, so the safe default is "connected to nothing." The AgentMail signature verifier is fail-closed until a provider-specific verifier is registered. The intake pipeline only ever accepts, authorizes, records, and sends a dry-run acknowledgement; it never starts an agent, writes Jira/Confluence, or touches Drive. The scoped Drive adapter and fleet completion watcher remain unbuilt; keep Artifacts:Enabled false and dispatch disabled until they exist and the FLT-80 preconditions pass.

Team-facing help is available in the Google Site, Confluence, and the Slack Work Wingman Help & Ideation Guide canvas.

The CLI is explicitly dry-run only. It never accepts caller-controlled identity; the configured pilot identity is canonicalized from its stable ID. A production channel must supply a trusted ISourceIdentityResolver implementation before intake.

Execution boundary

Fleet dispatch is the sole execution boundary. The intake broker never starts or contacts an agent directly; it can only submit a FleetDispatchRequest through IFleetDispatchQueue. Phase 1 uses the in-memory fake, and dispatch remains explicitly disabled until the FLT-80 preconditions are satisfied. A production fleet adapter belongs to the later phase.