Skip to content
agent context systems

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.

Read the repo on GitHub Public repo, MIT, clonable today

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.

Two modes
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.

  1. 01 Standing rules CLAUDE.md The constitution. Provenance or it does not ship, measure never estimate, nothing silently overwritten.
  2. 02 Skills GENERAL-Q&A-PLAYBOOK.md
    START-SESSION-PROMPT.md
    Loaded only for the mode that needs them. Plain files rather than the agent's skills mechanism, which this system does not use.
  3. 03 Knowledge base knowledge-base/references/
    knowledge-base/previous-RFIs/
    The whole point of this system. Prior responses form the factual corpus, and the most recent finalised one ranks top for current facts.
  4. 04 Scripts claude-code-tooling-requirements.txt Declares 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.
  5. 05 Tests none This 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.