# Process-Input Anti-Patterns

Common failure modes in project input intake, with remedies. If you see one of these in your output, fix before handoff.

## 1. Fabricated transcript

**Symptom.** The MCP call failed (server down, token missing, timeout) and the agent wrote what the audio "probably said" anyway.

**Why it's bad.** Downstream skills treat resource records as ground truth. A fabricated transcript poisons the whole pipeline with content nobody actually said.

**Remedy.** A failed audio item is `status: failed` in `index.json` with `md: null` and no invented body. Surface the error to the user in the command report. Never guess.

---

## 2. Paraphrased / "cleaned up" transcript

**Symptom.** The agent shortened the transcript, fixed grammar, removed filler words, or translated it.

**Why it's bad.** Intent lives in the exact wording. Paraphrasing silently drops nuance and the user cannot tell what was changed.

**Remedy.** Record the MCP tool output verbatim. Editing happens later, in a downstream skill, under the user's eyes.

---

## 3. Global folder fallback

**Symptom.** The agent reads from `docs/inputs/raw/` or writes to `docs/inputs/transcriptions/` because no project slug was supplied.

**Why it's bad.** Inputs from different clients/projects can mix, which breaks F0 and makes F1 discovery unreliable.

**Remedy.** Require `<project-slug>`. Read from `docs/inputs/<project-slug>/raw/` and write to `docs/inputs/<project-slug>/transcriptions/`.

---

## 4. Silent skip of a missing file

**Symptom.** A path in `$ARGUMENTS` does not exist, and the agent quietly leaves it out of the manifest.

**Why it's bad.** The user thinks all inputs were processed. A voice memo or note can vanish without a trace.

**Remedy.** Phase 1 marks every missing/unreadable path `⚠️ NEEDS INPUT` and stops until the user resolves it.

---

## 5. Reprocessing an already-ready source

**Symptom.** A source already present as `status: ready` is transcribed or rewritten again.

**Why it's bad.** It wastes transcription time and can create multiple conflicting records for the same source.

**Remedy.** Check `src` before transcription. If the source is ready and `md` exists, reuse it.

---

## 6. Transcript text stored in index.json

**Symptom.** The JSON index contains full transcript or source text.

**Why it's bad.** The index becomes large, hard to diff, and duplicates the canonical resource `.md`.

**Remedy.** Store only metadata and paths in `index.json`. Full text lives in `docs/inputs/<project-slug>/transcriptions/<resource-slug>.md`.

---

## 7. Consolidated batch record

**Symptom.** The skill writes one combined `docs/inputs/<project-slug>/transcriptions/<batch>.md` containing all resources.

**Why it's bad.** The new contract is one resource record per input so F0 and F1 can track reuse and extraction incrementally.

**Remedy.** Write one `.md` per ready resource and let `business-proposal` read all ready resources through the index.

---

## 8. Auto-chaining to a downstream skill

**Symptom.** After updating inputs, the agent immediately starts `/business-proposal` or `/render-docx`.

**Why it's bad.** Input processing is the end of this skill. The user decides when to synthesize a proposal.

**Remedy.** Stop after updating resource records and `index.json`. Suggest the next command in prose; do not run it.
