# Phase 3: analysis and writing plan

Paper S1 for The International Journal of Advanced Manufacturing Technology (IJAMT). Plan rendered {{plan_date|text}} (UTC).

**Check: {{check_line|text}}**

Every number below is substituted from a values file: `values3.json` for Phase 3 and `values.json` for the Phase 2 results the plan cites. Thresholds and settings are judgments, registered with their reasons in `q02_judgments.py`. Nothing in this document is a confirmatory result: the plan fixes, before any of them is computed, the {{n_predictions|word}} predictions the paper will test, how each is decided, and how a failure will be reported. External claims carry a tag: VERIFIED means retrieved and read on the date given.

## 1. Negative findings first

{{block:negatives}}

## 2. Research question

{{block:rq}}

The working title stays the Phase 2 one: "What the expert labels of an open milling anomaly benchmark encode: microphone loudness, tool identity and chatter signatures". The submitted title is chosen in Phase 4 after reading recent IJAMT titles, as the pipeline asks.

## 3. Venue constraint checklist (the gate)

Source: the IJAMT submission guidelines, {{v_source_url|text}}, read in the built-in browser on {{v_retrieved_date|text}} (VERIFIED). Each quote was extracted from the page text and then found again, verbatim, on a fresh load of the page ({{v_quotes_checked|int}} quotes over both readings described below, {{v_quotes_failed|int}} failed); the page text of {{v_page_chars|int}} characters had the same sha256 at every load. On the same day I also read the IJAMT article page of U1 ({{v_u1_url|text}}, read {{v_other_retrieved|text}}), for the article type (VERIFIED), and the Springer Nature LaTeX author support page ({{v_sn_latex_url|text}}, read {{v_other_retrieved|text}}), for the template version and size (VERIFIED). After the review round I read the guidelines page again, section by section, on {{v_round2_date|text}}: its text had the same sha256, {{v_quotes_checked_round2|int}} further quotes were found verbatim on a fresh load, and every one of its {{v_page_headings|int}} headings with text now maps to a rule or to a stated reason for none ({{n_sections_accounted|int}} entries, {{n_sections_without_rule|int}} of them without a rule). The checklist has {{rules_n|int}} rules resting on {{quotes_n_cited|int}} distinct quotes; scripts will test {{rules_n_machine|int}} of them and {{rules_n_hand|int}} are confirmed by hand. Every later phase is checked against this list.

{{block:checklist}}

### 3.1 Conflicts and gaps

{{block:conflicts}}

## 4. Submission format, and the table and figure budget

{{block:format}}

The budget holds {{budget_n_tables|word}} tables and {{budget_n_figures|word}} figures. The guidelines set no limit on either for original articles (R27), so the budget is a choice: every item serves a prediction, an exploratory question or a result seen in Phase 2, and every table is a plain grid.

{{block:budget_tables}}

{{block:budget_figures}}

{{block:budget_style}}

## 5. Pre-registered predictions

Each prediction is stated in plain language and as a boolean expression over names in the values file. The names starting with `h1_` to `h3_` do not exist yet; the check asserts that no values file holds any of them. The thresholds are the judgment `thr_auc_drop` for H1 and H2 and, for H3, the value `h3_thr` that the registered rule (`thr_kappa_frac`) gives at execution; the family-wise level is `alpha_family`. Each prediction is computed by a frozen function in `q_confirm.py`.

{{block:predictions}}

## 6. Methods, with the reason for each choice

{{block:methods}}

## 7. Assumptions and how they are tested

{{block:assumptions}}

## 8. Missing data, outliers and multiple comparisons

**Missing data.**

{{block:missing}}

**Outliers.**

{{block:outliers}}

**Multiple comparisons.**

{{block:multiplicity}}

## 9. Robustness and sensitivity

A variant changes a single nuisance choice and keeps every other choice of the primary analysis. It contradicts its prediction only when its whole interval lies below the prediction's threshold; a variant whose interval still reaches the threshold is consistent with the prediction, even when its point estimate falls short, because the variants run on smaller or noisier versions of the data and a shortfall there can come from lost power alone. Its p-value is reported without adjustment and does not enter the verdict. A variant can only qualify a confirmed prediction (section 12).

{{block:variants}}

## 10. Exploratory analyses

These are reported with estimates and run-bootstrap intervals and labelled exploratory wherever they appear, the abstract included.

{{block:exploratory}}

## 11. Pre-registration statement

{{block:prereg}}

## 12. Failure taxonomy and the computed tally

{{block:taxonomy}}

## 13. Manuscript structure mapped to the checklist

Headings use at most {{structure_levels_planned|word}} of the {{v_heading_levels_max|word}} levels the guidelines allow.

{{block:structure}}

## 14. Why this plan might fail

The {{n_failure_modes|word}} most likely ways this analysis ends in an unpublishable result, most likely first.

{{block:failure}}

## 15. Satisfiability of every rule (pipeline change C20)

The new pipeline prompt leaves out changes C20 to C23, and I apply them anyway. C20: every pre-registered rule is tested against the measured population before the freeze. Each testability condition must hold for the primary analysis, and each threshold must be reachable and missable given what is already known. The H3 threshold depends on shares within label 1 that are computed only at execution, so its bound is checked here with the speed classes pooled, and a runtime condition (`h3_kappa_max > h3_kappa_null`) guards the rest. The check script evaluates every expression below on the values file; nothing in this table is typed.

{{block:satisfiability}}

## 16. Decisions logged in this phase

{{block:decisions}}

## 17. Self-audit and independent review

{{block:selfaudit}}

{{block:review}}

## 18. Questions for you

{{block:questions}}

## Appendix: freeze record and the Phase 2 values seen

{{block:freeze}}

{{block:prefixes}}
