Your organization's most important architecture decisions were made in Slack threads and PR comments, and never written down. This playbook mines those exports for implicit decisions and drafts a backlog of retroactive ADRs — every one of which is a hypothesis until a human who was there validates it.
Tier: Core · Hands-on time: ~30 minutes
Tribal knowledge capture is the documentation debt every architecture practice carries: the queue standard exists because of an outage in 2023, the ORM ban traces to a PR argument nobody can find. LLMs are well suited to the mining half — reading thousands of messages and spotting decision-shaped exchanges is exactly the summarization work models do reliably. The trap is the second half: a mined "decision" is an inference from fragments, and models will confidently reconstruct rationales that were never anyone's reasoning. So the pipeline is AI-mines, human-validates, and no retroactive ADR files without a witness or strong documentary evidence.
Skip AI when the history is small enough to read — one team's quarter of Slack is an afternoon with coffee, not a pipeline.
Scope by question, not by archive. Mine for named unknowns: Sameer's GCC list was "why index-per-tenant was abandoned, why the gateway standard is what it is, why region X is prohibited for workload Y." A general trawl of #architecture produces hundreds of decision-ish fragments and no usable backlog; a targeted pass produces evidence.
Mine with an evidence-or-silence rule.
You are mining exported discussions for undocumented architecture
decisions. Corpus: #platform-arch Slack export (Jan–Dec 2025) and PR
discussions from the landing-zone repo, provided below in chunks.
For each candidate decision you find, emit:
- DECISION (one sentence, as specific as the evidence allows)
- EVIDENCE: verbatim quotes with author handle + date, minimum 2
independent messages; a single message is a REMARK, not a decision
- PARTICIPANTS: who argued, who appears to have decided
- APPARENT RATIONALE: only what the quotes state — mark anything
you inferred as INFERRED
- STATUS SIGNALS: any later message suggesting reversal or drift
- CONFIDENCE: high / medium / low, with one line why
Do not merge separate discussions into one decision. Do not fill
gaps with what a sensible team would have decided. Unresolved
arguments are OPEN QUESTIONS, not decisions.
###
[chunk]
Deduplicate and rank the candidate list. Merge candidates the model found in both Slack and PR history (same decision, two venues — good corroboration), drop anything already in the ADR log, and rank by blast radius: decisions still constraining current work validate first. This triage is yours; the model does not know which constraints still bind.
Validate with witnesses, evidence in hand. Take each high-priority candidate to a participant: here is the quoted thread, here is the reconstructed decision — is this right, is it still in force, what is missing? Fifteen minutes with the right veteran converts an inference into a record. Where no witness remains, the documentary evidence must stand alone: multiple corroborating quotes, and the ADR labeled "reconstructed from history, unwitnessed."
Draft the retroactive ADRs via pb-14, with provenance. Each validated decision goes through the standard drafting playbook, with two additions: a provenance block (mined from [source], validated by [witness], [date]) and the original quotes as an appendix. Status is "accepted — retroactive"; INFERRED rationale that the witness did not confirm gets cut, not kept as color.
File the leftovers honestly. The mining pass will surface decisions apparently reversed by later practice, open arguments that never resolved, and low-confidence fragments. These become, respectively: candidate superseded-ADR pairs, an open-questions list for the architecture forum, and nothing — low-confidence unwitnessed fragments are noise, and filing them as records launders speculation into history.
Chat exports are the most sensitive corpus in this track — personal remarks, client names, and commercial context interleaved with the technical history. Default to processing inside the boundary: your firm's enterprise tenancy or a local model via Ollama for the mining pass; never a consumer chat tool for raw Slack exports. Pre-filter mechanically where policy requires: strip DMs entirely, restrict to named public channels, and run a redaction pass (names to handles-only, client identifiers to placeholders) before the model reads anything. For client-owned history (mining a client's repos under an engagement), the pb-03 register governs — typically client-tenancy endpoints only, and the validated ADRs belong to the client's log, not yours.
Mining produces hypotheses about history, not history. The quotes are evidence, the witness is the authority, and an unvalidated retroactive ADR is fan fiction with a decision number.