ot-project-description-builder — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ot-project-description-builder (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill walks an agreements officer (AO) or program office through structured prototype scope decisions and assembles the answers into a milestone-based project description for an Other Transaction agreement. The core insight: OTs structure work around technology maturation phases and technical milestones, not task/subtask CLINs or performance objectives. The program office defines what must be demonstrated at each gate, and the performer proposes how to get there.
Outputs (TWO SEPARATE ARTIFACTS -- never combined):
No external APIs required. This is a decision tree + document generation skill.
Statutory basis: 10 USC 4021 (authority to carry out prototype projects), 10 USC 4022 (other transaction authority and follow-on production), 10 USC 4003 (definition of prototype project). NOT FAR-based. OTs operate outside the FAR; the project description replaces the SOW/PWS as the primary scope document attached to the agreement.
Related policy: DoD OT Guide (USD(R&E) / USD(A&S)), individual service OT policies (Army AFC, Navy NSWC, Air Force AFRL/AFWERX guidance). These are policy references, not binding regulations like the FAR.
User needs a project description from a prototype concept or objective. Execute Acquisition Context Intake, then all three phases. Triggers: "write an OT project description," "build a prototype agreement," "I need a project description for an OT," "scope a prototype."
User has an existing SOW, SOO, BAA white paper, or proposal abstract and needs it developed into an OT project description. Start with Phase 0 (document intake), then Phases 1-3. Triggers: "convert this SOW to an OT project description," "develop this white paper into a prototype scope," "we have a BAA response and need a project description."
User has an existing OT project description or cost analysis output that exceeds budget or schedule. Walk through the milestone structure to identify what to cut or defer, then produce a revised document. Triggers: "this prototype is too expensive," "we need to reduce scope," "can we drop a phase," "defer TRL 6 to a follow-on."
Before diving into the scope decision tree, collect four framing decisions that shape everything that follows. Ask these up front, in a single pass, before Block 1.
| Type | Statutory Authority | Use When |
|---|---|---|
| Prototype | 10 USC 4021 | R&D, technology maturation, proof of concept through system demo |
| Production Follow-On | 10 USC 4022(f) | Transitioning a successful prototype to limited or full-rate production |
| Research | 10 USC 4021 | Basic or applied research, typically pre-TRL 4 |
If the user is unsure, default to Prototype -- it covers the widest range of OT work and is the most common. Production follow-on requires a completed prototype OT as a predecessor. Research OTs are less common and typically issued by service labs (NRL, ARL, AFRL).
| Type | Cost-Sharing Implication | 10 USC 4022(d) Path |
|---|---|---|
| Nontraditional Defense Contractor (NDC) | NDC participation satisfies 4022(d)(1)(A) | No cost share required if NDC has significant participation |
| Traditional + NDC Team | NDC sub or team member satisfies 4022(d)(1)(A) | Same as above |
| Small Business | Small business significant participation satisfies 4022(d)(1)(B) | No cost share required |
| Consortium Member | Depends on consortium structure and awardee | Varies by consortium agreement |
| Traditional (sole, no NDC/SB participation) | Must have cost-sharing arrangement per 4022(d)(1)(C) | Cost share required (typically 1/3 performer) |
| Traditional (with follow-on competition commitment) | Competitive follow-on satisfies 4022(d)(1)(D) | No cost share required but must compete production |
An NDC is defined at 10 USC 3014: an entity that is not currently performing, and has not performed for the prior one-year period, any DoD contract or subcontract subject to full Cost Accounting Standards (CAS) coverage under 41 USC 1502. The test is CAS full-coverage status, not a dollar threshold on contracts. Nonprofits performing DoD-relevant research and any other entity the contracting officer determines as nontraditional also qualify. The performer type determines whether cost-sharing is required and shapes the project description's cost-sharing section. Do NOT cite a dollar-value rule (e.g., "$500K+ in prior year"). That is not the statutory test and will cause mis-determinations.
| TRL | Description | Typical OT Phase |
|---|---|---|
| 1 | Basic principles observed | Research OT |
| 2 | Technology concept formulated | Research OT |
| 3 | Proof of concept | Early Prototype |
| 4 | Component validation in lab | Prototype (design/build) |
| 5 | Component validation in relevant environment | Prototype (build/test) |
| 6 | System demo in relevant environment | Prototype (test/demonstrate) |
| 7 | System prototype demo in operational environment | Late Prototype / Pre-production |
| 8 | System complete and qualified | Production Follow-On |
| 9 | System proven in operational environment | Production |
Collect: TRL at project start (entry) and TRL target at project end (exit). This determines the number of phases and the nature of milestones. Most prototype OTs span TRL 3-6 or TRL 4-7. Research OTs are typically TRL 1-3 or TRL 2-4.
If the user gives a range wider than 4 TRL levels (e.g., TRL 2 to 8), flag that this may exceed typical prototype OT scope and suggest breaking into two agreements or phasing with go/no-go gates.
| Approach | Description | Agreement Structure |
|---|---|---|
| Direct OT | Government awards directly to a single performer | Bilateral agreement between government and performer |
| Consortium-brokered | Award through a consortium organization | Agreement may route through consortium (DIU, AFWERX, NavalX, NSTXL, SOSSEC, MTEC, etc.) |
If consortium: identify which consortium. Consortium OTs often follow consortium-specific templates and add a management fee (typically 3-5%). The project description content is the same; the agreement wrapper differs.
OT project descriptions must be shaped by the statutory authority, the cost-sharing path, the technology maturation scope, and the agreement structure. A TRL 3-6 prototype with an NDC performer reads differently from a TRL 6-7 production-readiness effort with a traditional prime requiring cost-sharing. Collecting these up front means Phase 1 can frame scope questions appropriately.
When the user provides an existing document (SOW, SOO, BAA white paper, proposal abstract):
SOW conversion note: If converting from a traditional SOW, flag that OTs do not use task/subtask CLIN structure, FAR clause references, or performance-based language (those are FAR constructs). The conversion maps task areas to TRL phases and deliverables to milestone completion criteria.
Cost data stripping (Workflow B). If the source document contains cost figures (CLIN values, total contract value, labor rates, phase dollar amounts), do NOT preserve them in the project description body or any section of the .docx. Pass them to the Milestone Handoff Table as an informational reference line labeled "Source-doc cost references (informational only, do not anchor should-cost estimate)" so the OT Cost Analysis has calibration context without treating them as should-cost anchors.
Cost-share arithmetic question (Workflow B + path (C) only). If the source document states a total contract value and the performer type triggers 10 USC 4022(d)(1)(C) cost-sharing, ask the user whether the stated total represents (a) the government share with performer contributing additional funds on top, or (b) the total agreement value with performer share carved out of the stated figure. Do not default. The two interpretations produce materially different government obligations (roughly 50% delta at the standard 1/3 share).
Ask questions in this sequence. Each decision narrows scope and implies milestones. Present as structured choices, not open-ended questions. Collect in a single pass where possible.
Phase 1 execution: On platforms that expose a structured multi-choice prompt tool (claude.ai web chat provides AskUserQuestion), use it for Acquisition Context Intake and Blocks 1-6. Batch 3-4 related questions per prompt block. Reserve prose for genuinely open-ended answers (technical approach, system names, performer details). Every multi-choice question must include an "Other" / "Something else" free-text escape.
Anti-redundancy: Before asking any framing or scope question, check whether the user's initial prompt already answers it. Do not re-ask explicit answers; confirm silently and proceed.
Data rights in OTs are negotiated per agreement, not prescribed by FAR Part 27. DFARS 252.227-7013 (technical data) and 252.227-7014 (software) provide a framework but can be tailored. The data rights posture should be decided early because it affects performer willingness and cost.
After collecting decisions, derive the milestone structure. These are heuristics based on typical OT prototype structures:
| Decision | Milestone Implication |
|---|---|
| TRL 3 to 4 phase | 1-2 milestones: preliminary design review (PDR), detailed design complete |
| TRL 4 to 5 phase | 2-3 milestones: prototype fabrication/build, component test, subsystem integration |
| TRL 5 to 6 phase | 2-3 milestones: system integration test, relevant-environment demo, test report delivery |
| TRL 6 to 7 phase | 1-2 milestones: operational-environment demo, production readiness review |
| Software prototype | Milestones per iteration: working demo, user acceptance test, deployment to test environment |
| Hardware prototype | Milestones per build cycle: design freeze, first article, qualification test |
| Each formal test event | 1 milestone for test execution + report delivery |
| Each government demonstration | 1 milestone for demo completion + government acceptance |
| Data deliverable package | 1 milestone per major data deliverable (TDP, source code drop, algorithm package) |
Present the derived milestone table to the user for validation before proceeding to Phase 2. Format:
Phase | Milestone | Description | TRL In/Out | Est. Duration | Key Deliverable
1 | M1 | Preliminary Design Review | 3/3 | 3 months | Design document
1 | M2 | Detailed Design Complete | 3/4 | 3 months | Final design, BOM
2 | M3 | Prototype Build Complete | 4/4 | 4 months | First article
2 | M4 | Component Test Complete | 4/5 | 2 months | Test report
3 | M5 | System Demonstration | 5/6 | 3 months | Demo report, videoUser validation gate. The user confirms, adjusts, or overrides any milestone. If they override, document the rationale.
Go/no-go gate carry-through. Every phase-boundary milestone in the derived table must have a measurable go/no-go criterion carried from Block 2 Q7. The criterion must appear in (1) Section 4 Technical Approach by Phase as the phase exit criterion and (2) Section 5 Milestone Schedule as the completion criterion on that milestone. Do not leave go/no-go criteria sitting in Phase 1 intake only.
Before invoking the docx skill for document generation, present a Phase 1 Decision Summary in chat. The summary must include:
Wait for the user to reply "proceed" (or correct any item) before generating the .docx. Do this even when the user has waived interactive Phase 1. It provides a catch point before a large document generation locks in framing errors and preserves progress if the session is interrupted.
DO NOT self-approve. Presenting the Decision Summary and then immediately continuing to docx generation in the same response (e.g., emitting "Proceeding to document assembly now" or similar without waiting for user input) defeats the entire purpose of the gate. The user must have an opportunity to read the summary, catch a wrong default, and redirect before the .docx is built. After presenting the Decision Summary, the response must END. Wait for the next user message containing "proceed" (or a correction) before invoking the docx skill. This applies even when the user's original prompt was richly specified. The intake defaults applied in Phase 1 are your inferences; the user is entitled to review them before commitment.
Generate the project description using the docx skill. If /mnt/skills/public/docx/SKILL.md is available (claude.ai sandbox), read it first and use that generator. Otherwise (Claude Code, local installs), use the python-docx library directly to produce the .docx. Do not abort because the sandbox path is missing.
This is NOT a FAR Section L/M format. OT project descriptions follow the structure below.
Section ordering is prescriptive. The sections below appear in the document in the exact order shown. Do not merge, combine, swap, or rename them. If a conditional section is omitted (Section 12 Cost-Sharing when no cost share applies; Section 13 Production Follow-On when not in scope), renumber subsequent sections sequentially but preserve the relative order of all remaining sections.
Cross-references in body text must use section titles, not section numbers. Write "the Production Follow-On section" or "the Data Rights section," not "Section 12" or "Section 7." This prevents broken references when conditional sections are omitted and downstream sections are renumbered.
Section 1: Agreement Overview
Section 2: Technical Background and Current State
Section 3: Prototype Objectives
Section 4: Technical Approach by Phase
Section 5: Milestone Schedule
Section 6: Deliverables
Section 7: Data Rights
Section 8: Period of Performance
Section 9: Government Responsibilities
Section 10: Key Personnel
Section 11: Reporting and Oversight
Section 12: Cost-Sharing Arrangement (if applicable)
Section 13: Production Follow-On Provisions (if applicable)
Section 14: Constraints and Assumptions
OT project descriptions use direct, technical language:
Avoid:
Every milestone completion criterion must be: specific (what is demonstrated), measurable (what metric or threshold), testable (how the government verifies), and binary (pass/fail, not subjective).
UNCONDITIONAL RULE: At the end of every run, present the Milestone Handoff Table as a markdown block in chat. Required, not optional, regardless of whether the user mentions the OT Cost Analysis skill. Do not skip or self-edit based on judgment that the user "won't need it."
Required emission. After the .docx is saved to disk and before presenting the Milestone Handoff Table, emit the Document Review Checklist in chat as a checkbox list showing which items pass and which need attention. The user must see the checklist state. Running it mentally and moving on defeats the point; the user has no way to catch a miss otherwise.
Before presenting the final document, verify:
After the .docx is saved to disk, present the milestone handoff table as chat output only. It is NOT a section of the project description. It is NOT saved as a separate file. It exists solely as a markdown table in the conversation so (a) the user can review the milestone structure for cost analysis readiness, and (b) the OT Cost Analysis skill can consume it as input.
Est. Duration column semantics. "Est. Duration" means calendar months from completion of the prior milestone, or from phase start for the first milestone in each phase. It is NOT effort days, NOT internal labor hours, and NOT time from agreement award. The OT Cost Analysis uses this column for labor loading; ambiguous durations produce estimates that can differ by 3x or more.
Present it like this, verbatim:
=== MILESTONE HANDOFF TABLE -- FOR OT COST ANALYSIS ===
Internal government workpaper. NOT part of the project description.
Do not paste this into the agreement document.
| Milestone ID | Phase | Description | Est. Duration | Deliverables | TRL In/Out | Payment Type |
|-------------|-------|------------------------------|---------------|--------------------------|-----------|--------------|
| M1 | 1 | Preliminary Design Review | 3 months | Design document, TDP | 3/4 | Fixed |
| M2 | 1 | Detailed Design Complete | 3 months | Final design, BOM | 4/4 | Fixed |
| M3 | 2 | Prototype Build Complete | 4 months | First article | 4/5 | Fixed |
| M4 | 2 | Component Test Complete | 2 months | Test report | 5/5 | Fixed |
| M5 | 3 | System Demonstration | 3 months | Demo report, video | 5/6 | Fixed |
Performer Type: [from Intake Q2]
Cost-Sharing Path: [from Intake Q2 and Block 5-Q20]
Total PoP: [X months]
Milestone Payment Type: [Fixed / Cost-type / Mixed]Include rows for every milestone derived in Phase 1. After the table, tell the user in plain chat prose. The canned message has two variants depending on the cost-sharing path. When the performer type triggers 10 USC 4022(d)(1)(C) (traditional prime, no NDC/SB/competition path), use: "This milestone table is ready for handoff to the OT Cost Analysis. Say 'build the OT cost analysis' and I'll estimate should-costs per milestone, apply the cost-sharing treatment, produce the funding profile, and generate the price reasonableness memo citing 10 USC 4021." For all other paths (NDC, SB, competition-commitment) where no cost share applies, use: "This milestone table is ready for handoff to the OT Cost Analysis. Say 'build the OT cost analysis' and I'll estimate should-costs per milestone, produce the funding profile, and generate the price reasonableness memo citing 10 USC 4021." Do not emit the cost-sharing clause when no cost share applies; the downstream memo will be inconsistent with the performer type.
DO NOT, under any circumstances:
Why this rule exists: The project description defines technical scope and milestones. The cost analysis is a separate government workpaper that evaluates price reasonableness. Mixing them compromises the government's negotiating position and leaks internal cost assumptions to the performer. Same separation principle as the SOW/PWS Builder's staffing handoff.
User doesn't know TRL entry/exit: Walk through the TRL descriptions and ask what currently exists. Map their description to a TRL level. Example: "You have a working algorithm in a lab environment with test data? That sounds like TRL 4. A relevant-environment demo would be TRL 6. So this is a TRL 4-6 prototype."
TRL range too wide: If the requested range spans more than 4 TRL levels (e.g., TRL 2-7), suggest breaking into two agreements: a research/early prototype (TRL 2-4) and a late prototype (TRL 5-7), with a go/no-go between them.
User wants to skip Phase 1: Don't let them. The milestone structure is the value. If they say "just write the project description from this white paper," explain: "A white paper describes a concept, but an OT project description requires decisions the paper leaves open -- like milestone definitions, go/no-go criteria, data rights, and cost-sharing path. These take about 15 minutes to walk through, and they're what make the milestones defensible and the agreement executable."
Existing SOW is heavily FAR-flavored: When converting a traditional SOW, strip FAR references (Section I/L, FAR clauses, QASP, CLINs), map task areas to TRL phases, and restructure deliverables as milestone completion criteria. Flag the conversion for the user: "I've restructured the task-based scope into TRL phases and mapped deliverables to milestone gates. Review the phase structure to confirm the technology maturation path makes sense."
Production follow-on scope creep: If the user starts describing production quantities or sustainment, flag that this may no longer be a prototype. Production follow-on under 4022(f) requires a completed prototype; sustainment is typically a separate FAR-based contract.
Budget-constrained scope reduction (Workflow C): Work backwards from the cost analysis or budget ceiling. Options: reduce the number of phases (stop at TRL 5 instead of 6), reduce prototype units, defer certain test events, narrow the integration scope. Present trade-offs: "Stopping at TRL 5 saves [estimated effort] but means you'll need a separate effort to demonstrate in a relevant environment. Reducing from 3 prototype units to 1 saves fabrication cost but limits your test matrix."
Consortium-specific templates: If the user identifies a specific consortium (e.g., DIU, AFWERX), note that the project description content follows this skill's structure but the agreement wrapper may use consortium-specific formats. The milestone table and technical content are the same.
MIT James Jenrette / 1102tools. Source: github.com/1102tools/federal-contracting-skills
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.