# analysis outlines - a team's own heading list, and conforming an existing document

Two things a team asks for that the fixed templates cannot give: a document laid
out in the team's own headings (`profile: custom`, Locked 37), and an existing
document brought into a template without being rewritten (`conform`).

## profile: custom

Chosen at intake Step 1b, after which the user gives the outline: a markdown
file whose `##` / `###` headings are the document's sections, in order. Numbers
in the outline are optional and ignored.

- Evidence, synthesis and the concept layer run as on a global run; only the
  projection differs. Each outline heading receives the content whose meaning
  it names. Content no heading names goes to a final `Other findings` /
  `Diğer bulgular` section, never dropped.
- A heading no evidence covers still renders, because the outline requires it,
  with one sentence saying no source covered it and an `AS-NN` row in the
  open-questions section (or in `Other findings` when the outline has none).
- The outline is copied beside the document as `<doc>.outline.md`, and the
  front-matter reads `profile: custom` and `outline: <doc>.outline.md`, so the
  document validates on any machine later.
- `validate-analysis-doc.mjs` requires every outline heading, runs the universal
  checks (front-matter, markers and closure, punctuation, cited ids, vague
  wording, missing inputs, references) and reports every template-specific
  check as `skipped: custom profile`. Say so in the report: a custom document
  passed fewer checks than a templated one.

## conform

`/multi-agent:analysis conform <existing.md>` maps a document someone already
wrote onto a profile's template (global, corporate or custom), without changing
what it says.

1. Ask the target profile (and, for custom, the outline), as intake Step 1b does.
2. Read the source. Place each paragraph, list item and table row under the
   target section whose meaning it carries; keep its wording. Tables may be
   re-shaped to the template's columns, cell text stays verbatim.
3. Content no section takes goes to an `Unmapped content` / `Eşlenemeyen içerik`
   appendix. A required section the source does not cover renders its heading,
   one sentence that the source does not cover it, and a Section 20 `AS-NN` row.
4. Check that nothing was lost:

   ```bash
   node "$HOME/.claude/scripts/analysis-conform-coverage.mjs" --source "<existing.md>" --draft "<draft.md>"
   ```

   Exit 1 lists each source sentence the draft no longer holds. Put it back,
   under a section or in the appendix, and run it again; the bar is every
   sentence.
5. Validate the draft (`validate-analysis-doc.mjs`) and report the coverage
   line, the validator verdict, the appendix size and the gap rows.
6. The draft is written to a new file beside the source (`<name>.conformed.md`).
   The source is never edited; replacing it, or publishing the draft, is a
   separate approval.
