Skip to content

Commit 882be6f

Browse files
committed
answer the human review round: convergence, off-ramps, per-section drafting
Signed-off-by: Nate W <natew@cncf.io> Assisted-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 43bac1b commit 882be6f

1 file changed

Lines changed: 54 additions & 28 deletions

File tree

specs/ai-assisted-techdocs-assessment-spec.md

Lines changed: 54 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: AI-assisted TechDocs Assessment
44

55
# AI-assisted TechDocs Assessment
66

7-
**What this is.** A working specification for an AI-assisted, human-supervised
7+
**What this is.** A working specification for an AI-assisted, expert-supervised
88
CNCF TechDocs assessment workflow, in two parts. Part I is requirements: the
99
outcomes the system must produce and the boundaries it must never cross. Part II
1010
is the operational specification: how those requirements bind to concrete
@@ -121,7 +121,9 @@ the labor. AI drafts, humans decide, all in the open.
121121
boundary), not a named product.
122122
- P-4: Reproducible and auditable. Every claim in a deliverable traces to a
123123
cited, committed source. Prompts, configuration, and any data-generating steps
124-
are versioned and re-runnable.
124+
are versioned and re-runnable. Reproducible means convergent, not identical:
125+
two honest runs over the same material surface the same major findings, though
126+
details and wording differ (section 15).
125127

126128
### Hard constraints (the "never" list)
127129

@@ -151,7 +153,9 @@ the labor. AI drafts, humans decide, all in the open.
151153
already given.
152154
- HC-5: Provenance required. Quantitative claims (counts, link status,
153155
inventories) must be generated by a committed, re-runnable step and cite their
154-
source; no unverifiable figures in a deliverable.
156+
source; no unverifiable figures in a deliverable. Citation is the working
157+
anti-hallucination control: a claim that names its source can be checked, and
158+
the verifier (section 4) depends on those handholds.
155159
- HC-6: Disclose AI involvement. The assessed project is told, up front in the
156160
intake and in a header on every deliverable, that the analysis was AI-drafted
157161
and human-reviewed. No project should discover this after the fact.
@@ -220,11 +224,17 @@ Each phase runs the same six steps:
220224
becomes eligible once the previous one is merged (phase C directly after A
221225
when phase B is skipped; section 6).
222226
2. Accept. A technical writer triages and explicitly accepts the request, for
223-
every phase, not just A; eligibility alone does not start work (P-1).
227+
every phase, not just A; eligibility alone does not start work (P-1). Triage
228+
can equally decline (section 12); acceptance is a choice, not a formality.
224229
3. Draft. The drafter produces the deliverable as a draft PR. When the phase's
225230
drafter takes data-collection outputs as input (section 14), delegation
226231
produces them first: they are generated deterministically at session start,
227232
before any model runs, and committed with the draft as its evidence (HC-5).
233+
Drafting may be decomposed by criteria section: successive delegations, each
234+
free to use a different model or effort (section 14), accumulate into the
235+
same draft PR. Decomposition changes how the draft is produced, not what is
236+
reviewed: the deliverable stays whole, and review (step 4) reads it as one
237+
document.
228238
4. Review. The verifier's fact-check pass runs first; the reviewer may skip it
229239
deliberately, recording why (section 12). The reviewer then refines the draft
230240
in conversation with the drafter, verifies findings against source (HC-7),
@@ -237,9 +247,10 @@ Each phase runs the same six steps:
237247

238248
Failure path: if a draft is bad enough that fixing it would cost more than
239249
starting over, the reviewer may discard it and restart or write by hand rather
240-
than sink time into editing. Repeated failure is escalated to the
241-
administrator/platform owner, who may abort the run. An assessment must never
242-
end up slower than doing it by hand.
250+
than sink time into editing. Each discarded draft is a decision point: restart,
251+
hand-write, or stop; retries are chosen, never automatic. Repeated failure is
252+
escalated to the administrator/platform owner, who may abort the run. An
253+
assessment must never end up slower than doing it by hand.
243254

244255
## 6. Phases and deliverables
245256

@@ -253,7 +264,8 @@ end up slower than doing it by hand.
253264
methodology's time bound (a few hours to a couple of days at most for someone
254265
experienced with the project and comfortable writing), plus an umbrella/index
255266
file that lists them. Effort estimates are the agent's first pass and are
256-
coherence-checked by the reviewer; agent estimates are not reliable on their own.
267+
coherence-checked by the reviewer; agent estimates are not reliable on their
268+
own.
257269

258270
Proposed methodology change. The current method delivers the backlog as one
259271
`_PROJECT_-issues.md` file (`howto.md`, `templates/issues-list.md`,
@@ -276,8 +288,10 @@ Scope note: phase one produces plans (assessment, implementation, backlog), not
276288
documentation changes, and the backlog lands as files in cncf/techdocs rather
277289
than as issues where writers work (NG-2, HC-3). Until the optional filing tool
278290
exists (section 17), the reviewer and stakeholders route the backlog to writers
279-
by hand. The pilot therefore measures output, not documentation outcomes, a
280-
distinction we state so we don't mistake one for the other.
291+
by hand. The pilot, and any later evaluation of this process, measures output
292+
(quality, time, and cost to produce), not documentation outcomes, which turn on
293+
contributor effort beyond this process's control; we state the distinction so we
294+
don't mistake one for the other.
281295

282296
## 7. Inputs: the assessment request
283297

@@ -289,10 +303,11 @@ sections, plus maturity and contacts).
289303

290304
Filing a request does not start an assessment: it gathers context, and a
291305
technical writer triages and explicitly accepts it to begin Phase A (NG-5, P-1).
292-
A request can also be filed by the assessing team rather than the project, and
293-
HC-6's up-front promise must not depend on who filed: phase A is not delegated
294-
until the project contacts named in the request have been notified on the intake
295-
issue.
306+
Filing also obligates no one: the program may decline the request, and the
307+
project may withdraw at any point in the lifecycle (section 12). A request can
308+
also be filed by the assessing team rather than the project, and HC-6's up-front
309+
promise must not depend on who filed: phase A is not delegated until the project
310+
contacts named in the request have been notified on the intake issue.
296311

297312
Open question: how this relates to the existing CNCF service desk and TechDocs
298313
assistance-program intake, so we don't create a competing front door.
@@ -522,13 +537,16 @@ build.
522537
the intake issue: an unaccepted eligible phase is the stall mode, so the
523538
umbrella shows when work actually started and by whom. The triage verdict has
524539
a counterpart: a writer declines an unaccepted request with
525-
`/decline <reason>`, under the same authorization as `/accept`; the workflow
526-
labels it `triage/declined`, posts the reason, and closes the issue as not
527-
planned. Declining the intake means the assessment never starts. Declining a
528-
phase B or C tracking issue ends the assessment there, noted on the intake
529-
issue, which the workflow closes as not planned, so an open intake still means
530-
work in flight. A project's request to stop is honored the same way: the
531-
writer records a decline rather than leaving the request to sit unanswered.
540+
`/decline [reason]`, under the same authorization as `/accept`; the workflow
541+
labels it `triage/declined`, posts the reason when one is given, and closes
542+
the issue as not planned. The reason is optional: most declines should carry
543+
one, but a sensitive reason can go to the project privately instead of into
544+
the public record. Declining the intake means the assessment never starts.
545+
Declining a phase B or C tracking issue ends the assessment there, noted on
546+
the intake issue, which the workflow closes as not planned, so an open intake
547+
still means work in flight. A project's request to stop is honored the same
548+
way: the writer records a decline rather than leaving the request to sit
549+
unanswered.
532550
- Draft (step 3): a draft pull request. The agent works on its own branch in
533551
cncf/techdocs and opens a draft PR linked to the tracking issue, carrying the
534552
provenance block (section 15).
@@ -991,13 +1009,13 @@ second assessment overlaps it (section 12).
9911009
or selection needs the Agents panel (section 12); how the assessment's target
9921010
project reaches the setup steps that run collection, or whether collection
9931011
needs a different trigger (section 13); whether a full phase A draft, with its
994-
setup-step collection sharing the envelope, fits the session cap or the
995-
drafting needs decomposing (section 11); whether effort level can be pinned in
996-
a profile or anywhere else, the one model-choice question the documentation
997-
leaves open (section 14); and whether the cloud-agent configuration read
998-
endpoint, in public preview as of this writing, returns the fields the
999-
snapshot needs and what credential the snapshot script must hold to call it
1000-
(section 13).
1012+
setup-step collection sharing the envelope, fits the session cap in a single
1013+
delegation or leans on the per-section decomposition section 5 allows (section
1014+
11); whether effort level can be pinned in a profile or anywhere else, the one
1015+
model-choice question the documentation leaves open (section 14); and whether
1016+
the cloud-agent configuration read endpoint, in public preview as of this
1017+
writing, returns the fields the snapshot needs and what credential the
1018+
snapshot script must hold to call it (section 13).
10011019
- Filing issues into project repos. A separate, opt-in tool to create the
10021020
backlog issues in a project's own repository (NG-2). Out of scope for phase
10031021
one. It would be human-run with its own credential and the project's explicit
@@ -1008,6 +1026,14 @@ second assessment overlaps it (section 12).
10081026
front door. Related: the contribute.cncf.io site needs a page for projects on
10091027
requesting an assessment and what to expect, including the AI disclosure,
10101028
updated as this process changes.
1029+
- Cost and usage reporting. Recording per-assessment expert hours and AI usage
1030+
(credit or token draw) so G-1's compression claim can be judged against real
1031+
numbers rather than impressions. Out of scope for the MVP.
1032+
- Template provenance. Propose adding the provenance block skeleton (section 15)
1033+
to the methodology's templates as body content, under the same P-2 ordering as
1034+
the section 6 issues-split proposal, and define what the template front
1035+
matter's `author:` field carries on an AI-drafted deliverable. Until the
1036+
methodology accepts it, the drafter's instructions carry the block format.
10111037
- AI-readiness criteria. Whether and how the criteria evolve for AI consumption
10121038
(for example llms.txt), tracked in PR #357.
10131039
- Assessment-quality rubric. Define the meta-rubric that scores an assessment's

0 commit comments

Comments
 (0)