Apache-3 BidOps · Docs · 02

Bundle format

Shape of an auto-applied bid bundle: the directory structure, file naming, and per-artifact contract.

A "bundle" is the full set of artifacts the auto-apply pipeline produces for a single SAM.gov opportunity.

Directory layout

docs/sample-bundles/<noticeId>/
├── README.md                       # human summary + guardrail log
├── email-body.md                   # the email body for the CO
├── capability_statement.md         # generated capability statement
├── sources_sought_response.md      # if applicable to notice type
├── rfi_response.md                 # if applicable
├── rfq_response.md                 # if applicable
├── prime_outreach_email.md         # email to prime contractor SBLOs
├── sblo_outreach_email.md          # email to agency SBLOs
├── capability_statement.pdf        # Apache-3 letterhead PDF
├── sources_sought_response.pdf
├── rfi_response.pdf
├── rfq_response.pdf
├── prime_outreach_email.pdf
└── sblo_outreach_email.pdf

README.md shape

Each bundle's README contains:

# <noticeId>
**<opportunity title>**
**Agency:** <agency name>
**Mode:** <templates_only | llm_enhanced>
**Win themes:** <count>
**Artifacts:** <count>
**Recommended submission path:** <email_co | sam_gov_portal | piee | manual>
**Generated:** <ISO 8601 timestamp>

## Artifacts
- [<title>](./<type>.md) — confidence: <high | medium | low>

## Attachments
- `<filename>` (<artifact_type>) — <asset_url if present>

## Claim guardrail activity
Stripped: <forbidden phrases stripped from generated content>
Verification flags: <missing-info markers per artifact>

## Email body preview
```<first 400 chars>...```

TypeScript types

The full type definitions live in:

  • src/lib/auto-apply/types.tsAutoApplyBundle, AutoApplyAttachment, AutoApplySubmissionResult
  • src/lib/artifacts/types.tsGeneratedArtifact, ArtifactType

How to regenerate

# Single bundle (filter by noticeId)
node --import tsx scripts/generate-all-bundles.ts MOCK-W912DY-2026-001

# All bundles, with PDFs
node --import tsx scripts/generate-all-bundles.ts --pdf

# Just PDFs (markdown already committed)
node --import tsx scripts/render-bundle-pdfs.ts --all

How to score

node --import tsx scripts/score-bundle.ts --all

The CI bundle-quality-score job runs this on every push.

← All docs