Use case: analyst and RFI responses
Answer the analyst questionnaire without inventing a number.
A free, open source context system for drafting accurate, analyst-ready RFI responses with an AI coding agent. Gartner Magic Quadrant, Forrester Wave, IDC MarketScape, BARC Score.
One questionnaire can run to hundreds of questions. Every answer is scored against a capability rubric, every cell is size capped, and the finished evaluation gets published. Drafting it by hand is slow. Drafting it fast invites three specific failures, and this system exists to make all three structurally hard rather than merely discouraged.
The failure modes
Three ways an analyst response goes wrong, and what stops each one.
These are not hypotheticals. They are the three things that actually happen when a team drafts under deadline, and each one has a mechanism pointed at it.
numbers that are not real
A figure inherited from an old template, or invented once and then quietly repeated across a dozen answers. Every number is defined once in a facts register, sourced to a quotable location, or flagged as unverified. A number sitting in a template is treated as a question to answer, not as an answer. Fabricating corroboration for a figure is explicitly forbidden.
limits that get blown
Answers that overflow the per-cell character caps and have to be re-cut late, badly. The schema comes out of the workbook first: every cell's character limit, dropdown options and value type are read before a word is written, then every finished answer is re-measured in code against its limit rather than eyeballed.
stories that do not match
One answer contradicting another, or quietly rewriting what last year's submission told the very same analyst. A dedicated pass attacks the drafted set hunting contradictions, against each other, against the sources, and against the last finalised response. What a quotable source settles, it settles. The rest goes to the reviewer in session, clustered by decision, and nothing is overwritten on the agent's own authority.
The range
One system, two modes, one set of rules about what is true.
It is the same job whether the questionnaire is blank, half answered, or was submitted last year and needs rewriting. And the same truth rules apply when the question arrives from a customer instead of an analyst.
| Mode A, the analyst questionnaire | Mode B, general product questions | |
|---|---|---|
| You have | A blank or partly filled analyst questionnaire | Questions from a customer thread, a sales escalation, a security review |
| You get | A filled workbook, an answer sheet labelled by cell reference, and a reviewer's note | One response document, structured to be forwarded as it is |
| It enforces | Cell limits, dropdown values, rubric line items | Prose, deep linked to published documentation |
| Governed by | CLAUDE.md |
CLAUDE.md plus GENERAL-Q&A-PLAYBOOK.md |
The pipeline
You populate four folders and run one prompt.
There is nothing to configure. The folder is the interface: drop this cycle's blank questionnaire, the reference material, and the corpus of prior responses into their places, and the agent runs a fixed sequence governed by the standing rules.
01 Extract the schema first
Every cell's limit, dropdown and type is read from the workbook before a word is drafted, so limits are honoured from the first draft rather than patched at the end.
02 Build a facts register
Every number defined once, sourced to a quotable location, or flagged. Inherited values are unverified until proven.
03 Interview the human
It stops and asks about the judgement calls only a person can make: module scoping, partner capability disclosure, generally available versus roadmap, deployment reality. Before drafting, not after.
04 Draft per capability
Each answer written to its rubric line item, to the character limit, as narrative prose, with a defensible and well reasoned no preferred over an overreaching yes.
05 Verify by measurement
Lengths re-measured in code. Every number re-checked against the register by a fresh adversarial pass. Every dropdown value validated.
06 Reconcile conflicts live
Fresh agents hunt contradictions and bring what they cannot settle to the reviewer in session, clustered by decision rather than by cell.
07 Hand back a reviewable package
An answer sheet, a filled workbook, and a reviewer's note listing every number's provenance, the conflict log, and every open item still to verify.
What is actually in this one
Two of the five parts, and that is the correct number for this job.
The five parts a context system can hold are on the hub. This system leans hard on two of them and barely touches the rest, because its deliverable is a document and its hardest problem is provenance. Adding a script directory and a test suite here would be engineering for its own sake.
-
01
Standing rules
CLAUDE.mdThe constitution. Provenance or it does not ship, measure never estimate, nothing silently overwritten. -
02
Skills
GENERAL-Q&A-PLAYBOOK.mdLoaded only for the mode that needs them. Plain files rather than the agent's skills mechanism, which this system does not use.
START-SESSION-PROMPT.md -
03
Knowledge base
knowledge-base/references/The whole point of this system. Prior responses form the factual corpus, and the most recent finalised one ranks top for current facts.
knowledge-base/previous-RFIs/ -
04
Scripts
claude-code-tooling-requirements.txtDeclares the libraries the agent reads and writes the workbook with. There is no committed script directory, because the deliverable is a document rather than a hundred binary files. -
05
Tests
noneThis system has no test suite, and the honest reason is that its checks run inside the pipeline instead: lengths re-measured in code, numbers re-checked by an adversarial pass. A committed test suite here is a real gap, not a design choice.
The division of labour
What stays yours, and what this genuinely cannot do.
Yours
the judgement calls
- What the product actually does, and what you will put in writing
- Module scoping, and what counts as generally available
- Which third-party capability may be disclosed, and in whose words
- The final read before it is submitted
Not yours
tedious, error prone, expensive
- Chasing a number back to the slide it came from
- Counting characters against a few hundred cell caps
- Finding the two answers that contradict each other
- Remembering what last year's submission claimed
The corpus is the ceiling
This system cannot know anything you have not given it. If the reference material is stale, the answers are confidently stale, and no amount of process fixes that. It does not have opinions about your product strategy, it will not decide what to disclose, and it cannot tell you whether a capability is good enough to claim.
What it will do is refuse to assert what it cannot source, and hand you the list of everything still unverified rather than quietly filling the gap.
Start
Run it this afternoon.
Clone it, populate the folders with your own material, and start your agent from inside the directory. The rules load themselves.
$ git clone https://github.com/fenil-dedhia/product-RFI-drafting-system.git $ cd product-RFI-drafting-system $ pip install -r claude-code-tooling-requirements.txt $ claude
Setup and the per-cycle folder checklist are in SETUP-INSTRUCTIONS.md, and
the whole layout is mapped in REPO-STRUCTURE.md. Nothing you populate is
committed: the repo's own ignore rules keep your material out of it.