Grounded Theory
Toolkit · Qualitative
A reusable AI toolkit for research using grounded-theory techniques.
What has been built
An agent skill combines methods, workflows, templates and software helpers. Analysis expanded to 22 interviews over three cycles. Contrary accounts and review led to a distinction between approval of an outcome and authorization to act.
What comes next
Extend empirical analysis and examine alternative explanations and theoretical claims.
From accounts to explanations
A working agent skill connects source passages, codes, comparisons and changing categories. The researcher sets the question and judges the explanations; Python helpers preserve the records and check their links.
Keep evidence in view
Tie incidents and codes to source lines; distinguish reported actions, interpretations and unknown outcomes.
Learn from contrary cases
Record what a comparison changes, why a category is revised and which rival explanations remain.
Specify the next question
Propose evidence that could distinguish explanations. Sampling remains a proposal for the researcher to decide.
What the interview study changed
Across 22 interviews and three cycles, contrary accounts and review separated an acceptable outcome from authorization to act and the ability to redirect the work. These are provisional distinctions, not a validated theory.
| Cycle | Records | What changed |
|---|---|---|
| 2 | CMP015, MEM006 | Repeated repairs followed by a product shutdown challenged the initial idea: having a correction channel does not mean correction works. |
| 3 | CMP027, MEM010 | An investor email was sent without expected approval, yet its content was accepted. The revised category separates result, authorization and capacity to intervene. |
| 3, review | AUD-01, E714 | Review prompted a successor episode that keeps content acceptance and failed approval separate. The recipient’s response and later control remain unknown. |
The repository’s worked example links each distinction to its records. Source transcripts are not included. The open sampling proposal seeks a worker’s disagreement followed through to a known consequence.
Two cycles of an invented example
The toolkit comes with a scripted example: a nine-line invented text and two cycles of analysis records, written by a script through the toolkit’s own helpers, without a model. Step through it to see what each step adds to the record.
Prepare the cycle
The question, the method label and the source are fixed before any coding. The source is bound by its fingerprint, so a changed byte would show.
Reconstruct episodes
Each episode runs from what the maker set out to do to how it ended. The fourth stops where the text stops, so its outcome is recorded as unknown.
Code the incidents
Four incidents are actions in the text and get an action-oriented code. The fifth is the maker’s own explanation, bound to its exact words by a fingerprint.
Compare
The first comparison sets a known ending beside a missing one. It names a rival explanation and states what follows for the analysis.
Propose a category and write memos
A first category is proposed with its conditions and a rival. Four memos keep description, comparison, method and theory apart.
Seal the first cycle
The cycle is sealed: every file gets a fingerprint, and the record states why the cycle stopped, without claiming saturation.
Continue and compare again
The second cycle starts from a copy of the sealed first one. A new comparison sets the transformed and abandoned episodes against the repeated one.
Revise the category
The contrary cases narrow the category. The new version names the one it replaces and why; the first version stays in the record.
Propose further sampling
The proposal says what would support the narrowed category, what would challenge it, and what to conclude if the contrast cannot be found. It stays a proposal.
Seal the second cycle
The second cycle is sealed the same way. The example shows how the software behaves; it claims nothing about real people.
- Episodes
- 0
- Incidents
- 0
- Codes
- 0
- Comparisons
- 0
- Category versions
- 0
- Memos
- 0
- Sampling proposals
- 0
Invented text
- A maker begins a short moving title with specification A.
- After an unreadable result, the maker repeats specification A and accepts the next result.
- A maker begins another moving title with specification B.
- After an unreadable result, the maker switches to a static panel and records a transformed outcome.
- A maker begins a moving title with specification C.
- The maker explicitly abandons that attempt after an unreadable result.
- A maker begins a moving title with specification D.
- The recording stops while the maker is still adjusting the title; no result is visible.
- The maker says: I used a static panel because movement hid the label.
Wholly invented: no real person, source or finding.
Added in this step
- Question
- How do responses to an unreadable result differ?
- Method
- inductive process study using grounded-theory techniques
- Source
- MNF-SYNTHETIC-TRACE, normalized text (en)
- Fingerprint
- SHA-256 b332fbc6f594ba89…
- Models used
- None
- Release
- Not for release
- Saturation
- Not assessed
- Intended outcome, all four
- a readable moving title
| Episode | Lines | Outcome | Ending |
|---|---|---|---|
| E001 | 1–2 | Accepted | Outcome observed |
| E002 | 3–4 | Transformed | Outcome observed |
| E003 | 5–6 | Abandoned | Outcome observed |
| E004 | 7–8 | Unknown | Trace ends |
| Incident | Line | Kind | Code |
|---|---|---|---|
| I001 | 2 | Observed action | repeating a specification |
| I002 | 4 | Observed action | changing the intended result |
| I003 | 6 | Observed action | abandoning the attempt |
| I004 | 8 | Observed action | continuing without an observed ending |
| I005 | 9 | Stated interpretation | — |
- Comparison
- CMP001
- Compared
- I001 and I004
- Relation
- Difference
- Purpose
- Compare repetition with an incompletely observed attempt.
- Observation
- E001 has a known accepted result; E004 ends without an outcome.
- Rival explanation
- recording coverage differs
- Evidence that would decide
- a complete E004 ending
- Consequence
- Keep E004 UNKNOWN; do not infer eventual acceptance.
- Category
- CAT001, version MEM001
- Status
- Emerging
- Definition
- A tentative repetition account: continuing the same approach after an unreadable result.
- Not this
- No claim about unobserved endings or real makers.
- Conditions
- unreadable result
- Rival explanation
- recording selection
Memos
- Descriptive
- Four contrasting invented endings are retained.
- Comparison
- A missing ending differs from an observed successful outcome.
- Methodological
- Repetition is a tentative account and must face the transformed case.
- Theoretical
- The tentative repetition account is an analytical proposal, not evidence.
- Stop status
- Not reached
- Reason
- Initial synthetic comparison complete; counterevidence remains to be analyzed.
- Analyst’s account
- This is an invented demonstration. A tentative repetition category requires comparison against switching and abandonment. E004 is unresolved because the trace ends. No empirical claim or saturation conclusion.
Sealed files (10)
- CATEGORY_MEMOS.jsonl
- CODES.jsonl
- COMPARISONS.jsonl
- EPISODES.jsonl
- HANDOFF.md
- INCIDENTS.jsonl
- INPUT_MANIFEST.json
- MANIFEST.json
- MEMOS.jsonl
- SAMPLING_REQUESTS.jsonl
- Comparison
- CMP002
- Compared
- I001, I002 and I003
- Relation
- Difference
- Purpose
- Challenge the same-approach account with changed and abandoned outcomes.
- Observation
- The invented traces include repetition, changed outcome, and explicit abandonment.
- Rival explanation
- different task constraints rather than learning
- Evidence that would decide
- matched tasks with an attributable reason for retaining or changing the goal
- Consequence
- Bound CAT001 to cases retaining the goal and approach; do not generalize repetition to all responses.
- Category
- CAT001, version MEM002
- Replaces
- MEM001
- Why
- The transformed and abandoned cases challenge an unrestricted repetition account.
- Definition
- Repetition is one response when the goal and approach are retained, alongside transformation and abandonment.
- Not this
- Does not describe E002 or E003 as repetition, or infer an E004 outcome.
- Contrary cases
- E002 and E003
- Response
- Bound: Countercases change the scope of the repetition account.
Memo
- Theoretical, replaces MEMO004
- The countercases narrow the earlier repetition account. The examples establish software behavior only.
- Proposal
- REQ001
- Focus
- Conditions for retaining an approach versus changing the intended result.
- Question
- Do matched constraints distinguish repetition from transformation?
- Would support
- repetition only where retaining motion is required
- Would challenge
- transformation despite the same motion requirement
- If missing
- retain the unresolved rival; do not claim adequacy
- Limits
- draft only; no acquisition or contact
- Status
- Proposed
- Stop status
- Not reached
- Reason
- The planned synthetic scenarios are complete; a real-data pilot remains unperformed.
- Analyst’s account
- This synthetic cycle narrows CAT001 using transformed and abandoned countercases. It preserves E004 as UNKNOWN. The request would distinguish constraints from a general repetition account and remains PROPOSED. These are invented traces; no empirical validity, study finding, saturation or agent efficacy is established.
Sealed files (10)
- CATEGORY_MEMOS.jsonl
- CODES.jsonl
- COMPARISONS.jsonl
- EPISODES.jsonl
- HANDOFF.md
- INCIDENTS.jsonl
- INPUT_MANIFEST.json
- MANIFEST.json
- MEMOS.jsonl
- SAMPLING_REQUESTS.jsonl
A provisional analysis of 22 interviews
The toolkit was applied to 22 podcast interviews in which people describe work they do with AI. The analysis ran in three cycles, and each cycle’s comparisons and sampling proposal guided which interviews were added next.
What follows are counts of the saved records in each cycle. No interview text appears on this page.
The study’s question How do people describe initiating, directing, evaluating, and changing their work when they use AI, and under what conditions do those capacities expand or contract?
Its sampling proposal asked for failed, discontinued or disputed uses, and for contrasts between novices and experts and between workers and owners.
Its sampling proposal asked who can obtain a consequential change when local revision stalls: specialists, providers or organizational authority.
Its sampling proposal is left open: a worker’s disagreement with AI-mediated work, or refusal of it, followed through to a known consequence. The analysed interviews hold no such account.
Cycle 1: 6 interviews
| Records in the cycle | Current | Versions kept |
|---|---|---|
| Interviews analysed | 6 | |
| Account groupings | 24 | 24 |
| Incidents | 41 | |
| Codes | 41 | 42 |
| Comparisons | 14 | |
| Categories | 4 | 5 |
| Memos | 6 | |
| Sampling proposals | 1 |
Each cycle keeps the earlier ones: the counts are cumulative, and replaced versions stay in the record.
An account grouping is the toolkit’s episode record: one reported attempt, a general account of a kind of situation, or a piece of hypothetical advice. Groupings are not independent events.
| Unknown | 18 |
|---|---|
| Accepted | 4 |
| Transformed | 1 |
| Postponed | 1 |
| Abandoned | 0 |
| Actions the speaker reports | 26 |
|---|---|
| The speaker’s own interpretation | 14 |
| Claims by technology companies | 1 |
| Interpretations by others | 0 |
| Actions observed directly | 0 |
| Generalized accounts | 14 |
|---|---|
| Bounded reported attempts | 10 |
| Hypothetical advice | 0 |
| Revise the category | 1 |
|---|---|
| Bound it | 0 |
| Retain it, with a reason | 1 |
| Leave unresolved | 1 |
Cycle 2: 14 interviews
| Records in the cycle | Current | Versions kept |
|---|---|---|
| Interviews analysed | 14 | |
| Account groupings | 51 | 52 |
| Incidents | 119 | |
| Codes | 119 | 120 |
| Comparisons | 26 | |
| Categories | 5 | 9 |
| Memos | 10 | |
| Sampling proposals | 2 |
Each cycle keeps the earlier ones: the counts are cumulative, and replaced versions stay in the record.
An account grouping is the toolkit’s episode record: one reported attempt, a general account of a kind of situation, or a piece of hypothetical advice. Groupings are not independent events.
| Unknown | 36 |
|---|---|
| Accepted | 10 |
| Transformed | 3 |
| Postponed | 1 |
| Abandoned | 1 |
| Actions the speaker reports | 73 |
|---|---|
| The speaker’s own interpretation | 38 |
| Claims by technology companies | 5 |
| Interpretations by others | 3 |
| Actions observed directly | 0 |
| Generalized accounts | 25 |
|---|---|
| Bounded reported attempts | 25 |
| Hypothetical advice | 1 |
| Revise the category | 4 |
|---|---|
| Bound it | 0 |
| Retain it, with a reason | 1 |
| Leave unresolved | 2 |
Cycle 3: 22 interviews
| Records in the cycle | Current | Versions kept |
|---|---|---|
| Interviews analysed | 22 | |
| Account groupings | 86 | 89 |
| Incidents | 234 | |
| Codes | 234 | 235 |
| Comparisons | 43 | |
| Categories | 6 | 15 |
| Memos | 14 | |
| Sampling proposals | 3 |
Each cycle keeps the earlier ones: the counts are cumulative, and replaced versions stay in the record.
An account grouping is the toolkit’s episode record: one reported attempt, a general account of a kind of situation, or a piece of hypothetical advice. Groupings are not independent events.
| Unknown | 62 |
|---|---|
| Accepted | 15 |
| Transformed | 6 |
| Postponed | 2 |
| Abandoned | 1 |
| Actions the speaker reports | 129 |
|---|---|
| The speaker’s own interpretation | 78 |
| Claims by technology companies | 14 |
| Interpretations by others | 13 |
| Actions observed directly | 0 |
| Generalized accounts | 45 |
|---|---|
| Bounded reported attempts | 40 |
| Hypothetical advice | 1 |
| Revise the category | 8 |
|---|---|
| Bound it | 1 |
| Retain it, with a reason | 1 |
| Leave unresolved | 3 |
Download the dataCounts per cycle (CSV)Counts per cycle (JSON)The invented example’s records (JSON)
Limits and next work
- The analysis remains provisional: no claim to saturation or a validated theory. All incidents are mediated accounts; the 86 current account groupings are not independent events, and 62 endings are unknown.
- The sample is purposive, with founders and vendors overrepresented. Review used the producers’ model, without blinding, on selected passages; no independent human assessment or literature comparison has been completed.
- The 50 released tests pass and the invented example runs. These establish software behavior, not correct interpretations. Broader safeguards against prompt injection, bias and leakage remain to be evaluated.
- The transcripts are withheld because no redistribution grant has been established for the retained copies. The synthetic example is self-contained.
- Proposed: extend empirical analysis, examine alternative explanations and assess the theoretical claims.
Run and inspect
Open appendix/05-grounded-theory for the agent skill, runnable synthetic example, 50 tests, interview-study records and worked comparison trace. The README gives setup and offline check commands.
The analytical rows retain their source bindings and versions. Checks reproduce the counts and worked trace; source verification requires the withheld transcripts.
Credits
Method sources: Boeije (2002) on purposeful constant comparison; Birks, Chapman and Francis (2008) on memoing; Foley and Timonen (2015) on theoretical sampling.
Source accounts: Lenny’s Podcast, its host Lenny Rachitsky, and the interviewees.
The interview analysis was produced by AI agents under a researcher’s direction and reviewed by a separate agent on the same model.
The toolkit’s code and agent skill are offered under the Apache License 2.0, and the project’s documents and analytical records under CC BY 4.0. The rights in the transcripts stay with their owners.
