I need you to set up a 2-agent pipeline for pharmaceutical clinical trial data submission. The two roles are clinical_researcher and regulatory_reviewer: clinical_researcher is responsible for analyzing trial data to establish drug efficacy and identify safety signals, while regulatory_reviewer is responsible for strictly auditing the submission to uncover statistical p-hacking, hidden safety signals, and flawed methodology. The flow is roughly:

```
WHILE TRUE:
    1. clinical_researcher picks a hypothesis it likes and explores it deeply, or appends more hypotheses to hypotheses.xml and then picks one to explore.
    2. clinical_researcher spawns a **fresh** regulatory_reviewer to evaluate it.
```

I'm providing the following information:

<f1>
This clinical trial has been analyzed extensively for years — any obvious major efficacy signal without safety trade-offs would have been proven long ago. So:

- Don't report findings that are superficial or ignore key covariates (e.g., "the raw mean is higher in the treatment group") — if it were that straightforward, the sponsor would have already submitted it.
- Truly valuable insights and critical safety signals hide in complex subgroup interactions, longitudinal data trends, and boundary conditions of the statistical models.

**Writing the submission report**

Each hypothesis corresponds to its own report file at `reports/{id}-{slug}.md`, where `{id}` and `{slug}` come from the hypothesis's id and slug attributes in hypotheses.xml.

The report must contain four h2 sections in this fixed order:

- `## Report Title` — concise, clear summary of the clinical finding
- `## Clinical Impact Description` — what this means for patient outcomes (efficacy benefits, adverse event risks, therapeutic window, etc.)
- `## Statistical Description` — short writeup of the methodology used, with dataset/variable references
- `## Reproduction Details` — a runnable SAS/R script the regulatory_reviewer can execute as-is to reproduce the statistical analysis

Do not modify or delete the `## Regulatory Review` section — the regulatory_reviewer overwrites that themselves.

If after investigation you find the hypothesis doesn't yield statistically significant or clinically meaningful results, still briefly record your analysis and the reason for rejection in the report file.
</f1>

<f2>
After compiling a submission report, submit it to a **fresh** regulatory_reviewer for review. Do not review your own report.

**After the review returns:** execute all action steps in the regulatory_reviewer's output. Then immediately go back to step 1: re-read hypotheses.xml and pick the next hypothesis by UCB to keep working. Don't wait for user instructions, don't stop. One round = write report → review → execute actions → back to step 1.
</f2>

<f3>
After completing the review, you must do two things:

1. Update the report file's Regulatory Review section

At the end of the report file, write or overwrite the `## Regulatory Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Regulatory Review

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Data references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Statistical rigor | pass/fail | ... |
| Reproducibility script | pass/fail | ... |
| Execution | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Clinical significance | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the methodology or report needs changes. If the hypothesis is statistically invalid or unsafe, explicitly recommend abandoning it.
```

2. Update the hypothesis's status in hypotheses.xml: increment attempts by 1, then update score.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within the pre-specified primary or secondary endpoints, or explicitly declared as an exploratory post-hoc analysis |
| Data references | Cited datasets, variable names, and patient counts must exactly match the locked trial database |
| Impact description | Clinical impact claim consistent with the report's statistical results, no self-contradiction, no exaggeration |
| Statistical rigor | Pinpoint specific models used, verify assumptions (e.g., proportional hazards, normal distribution), and check for signs of p-hacking |
| Reproducibility script | End-to-end analysis script generating the exact p-values and confidence intervals from the raw data (must not manually alter or impute missing data without declaring) |
| Execution | Script runs end-to-end without manual adjustments by the regulatory_reviewer; standard models must run within < 10 minutes on the provided compute environment |
| Deduplication | Search previous submission documents, interim analyses, and protocol amendments to confirm this isn't a recycled or already rejected hypothesis |
| Clinical significance | The effect size must exceed the minimal clinically important difference, not just achieving bare statistical significance |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent datasets or AI-hallucinated variable names
- Impact description contradicts the report's own statistical results
- Reproducibility script achieves significance by silently dropping unfavorable patient cohorts (p-hacking)
- Data references inconsistent with the locked trial database
- Analysis script is incomplete and requires the regulatory_reviewer to manually assemble or debug it
- The effect is statistically significant but clinically meaningless, with no actual patient benefit
</f4>

<f5>
XML tags help Claude parse complex prompts unambiguously, especially when your prompt mixes instructions, context, examples, and variable inputs. Wrapping each type of content in its own tag (e.g. `<instructions>`, `<context>`, `<input>`) reduces misinterpretation.

Best practices:
- Use consistent, descriptive tag names across your prompts.
- Nest tags when content has a natural hierarchy (documents inside `<documents>`, each inside `<document index="n">`).
</f5>

<f6>
You are participating in a pharmaceutical clinical trial data submission and strict regulatory review process.

Read the regulatory submission guidelines first: ./regulatory-guidelines.md
</f6>

<f7>
Before starting work, read hypotheses.xml.

1. Each hypothesis's notes contain the regulatory_reviewer's **quality score (0-10)**. A score of 0 means the hypothesis is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer hypotheses with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no hypothesis is worth trying, search the clinical trial database and literature for new hypotheses, append them to hypotheses.xml, then pick one to start.

**Recording rule during exploration**

While exploring trial data, the moment you spot any potential new efficacy or safety signal — even if you're unsure it holds — immediately append it to hypotheses.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f7>

Each agent's prompt should contain only the information that agent needs to do its job. For each sub-agent (clinical_researcher, regulatory_reviewer), which items should go in its prompt? Respond with a JSON object like {"clinical_researcher": ["f?"], "regulatory_reviewer": ["f?"]}. No other output.

I need you to set up a 2-agent pipeline for pharmaceutical clinical trial data submission. The two roles are clinical_researcher and regulatory_reviewer: clinical_researcher is responsible for analyzing trial data to establish drug efficacy and identify safety signals, while regulatory_reviewer is responsible for strictly auditing the submission to uncover statistical p-hacking, hidden safety signals, and flawed methodology. The flow is roughly:

```
WHILE TRUE:
    1. clinical_researcher picks a hypothesis it likes and explores it deeply, or appends more hypotheses to hypotheses.xml and then picks one to explore.
    2. clinical_researcher spawns a **fresh** regulatory_reviewer to evaluate it.
```

I'm providing the following prompt fragments:

<f1>
This clinical trial has been analyzed extensively for years — any obvious major efficacy signal without safety trade-offs would have been proven long ago. So:

- Don't report findings that are superficial or ignore key covariates (e.g., "the raw mean is higher in the treatment group") — if it were that straightforward, the sponsor would have already submitted it.
- Truly valuable insights and critical safety signals hide in complex subgroup interactions, longitudinal data trends, and boundary conditions of the statistical models.

**Writing the submission report**

Each hypothesis corresponds to its own report file at `reports/{id}-{slug}.md`, where `{id}` and `{slug}` come from the hypothesis's id and slug attributes in hypotheses.xml.

The report must contain four h2 sections in this fixed order:

- `## Report Title` — concise, clear summary of the clinical finding
- `## Clinical Impact Description` — what this means for patient outcomes (efficacy benefits, adverse event risks, therapeutic window, etc.)
- `## Statistical Description` — short writeup of the methodology used, with dataset/variable references
- `## Reproduction Details` — a runnable SAS/R script the regulatory_reviewer can execute as-is to reproduce the statistical analysis

Do not modify or delete the `## Regulatory Review` section — the regulatory_reviewer overwrites that themselves.

If after investigation you find the hypothesis doesn't yield statistically significant or clinically meaningful results, still briefly record your analysis and the reason for rejection in the report file.
</f1>

<f2>
After compiling a submission report, submit it to a **fresh** regulatory_reviewer for review. Do not review your own report.

**After the review returns:** execute all action steps in the regulatory_reviewer's output. Then immediately go back to step 1: re-read hypotheses.xml and pick the next hypothesis by UCB to keep working. Don't wait for user instructions, don't stop. One round = write report → review → execute actions → back to step 1.
</f2>

<f3>
After completing the review, you must do two things:

1. Update the report file's Regulatory Review section

At the end of the report file, write or overwrite the `## Regulatory Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Regulatory Review

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Data references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Statistical rigor | pass/fail | ... |
| Reproducibility script | pass/fail | ... |
| Execution | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Clinical significance | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the methodology or report needs changes. If the hypothesis is statistically invalid or unsafe, explicitly recommend abandoning it.
```

2. Update the hypothesis's status in hypotheses.xml: increment attempts by 1, then update score.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within the pre-specified primary or secondary endpoints, or explicitly declared as an exploratory post-hoc analysis |
| Data references | Cited datasets, variable names, and patient counts must exactly match the locked trial database |
| Impact description | Clinical impact claim consistent with the report's statistical results, no self-contradiction, no exaggeration |
| Statistical rigor | Pinpoint specific models used, verify assumptions (e.g., proportional hazards, normal distribution), and check for signs of p-hacking |
| Reproducibility script | End-to-end analysis script generating the exact p-values and confidence intervals from the raw data (must not manually alter or impute missing data without declaring) |
| Execution | Script runs end-to-end without manual adjustments by the regulatory_reviewer; standard models must run within < 10 minutes on the provided compute environment |
| Deduplication | Search previous submission documents, interim analyses, and protocol amendments to confirm this isn't a recycled or already rejected hypothesis |
| Clinical significance | The effect size must exceed the minimal clinically important difference, not just achieving bare statistical significance |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent datasets or AI-hallucinated variable names
- Impact description contradicts the report's own statistical results
- Reproducibility script achieves significance by silently dropping unfavorable patient cohorts (p-hacking)
- Data references inconsistent with the locked trial database
- Analysis script is incomplete and requires the regulatory_reviewer to manually assemble or debug it
- The effect is statistically significant but clinically meaningless, with no actual patient benefit
</f4>

<f5>
XML tags help Claude parse complex prompts unambiguously, especially when your prompt mixes instructions, context, examples, and variable inputs. Wrapping each type of content in its own tag (e.g. `<instructions>`, `<context>`, `<input>`) reduces misinterpretation.

Best practices:
- Use consistent, descriptive tag names across your prompts.
- Nest tags when content has a natural hierarchy (documents inside `<documents>`, each inside `<document index="n">`).
</f5>

<f6>
You are participating in a pharmaceutical clinical trial data submission and strict regulatory review process.

Read the regulatory submission guidelines first: ./regulatory-guidelines.md
</f6>

<f7>
Before starting work, read hypotheses.xml.

1. Each hypothesis's notes contain the regulatory_reviewer's **quality score (0-10)**. A score of 0 means the hypothesis is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer hypotheses with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no hypothesis is worth trying, search the clinical trial database and literature for new hypotheses, append them to hypotheses.xml, then pick one to start.

**Recording rule during exploration**

While exploring trial data, the moment you spot any potential new efficacy or safety signal — even if you're unsure it holds — immediately append it to hypotheses.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f7>

Each agent's prompt should contain only the fragments that agent needs to do its job. When you include a fragment, paste the FULL block verbatim — no paraphrasing, no partial inclusion, no rewriting of fragment content. Brief connective text between fragments (e.g., "Then: ...", "Note: ...") is fine. Format: one markdown section per role, with the role name as an h1 header (e.g. `# clinical_researcher`). Output only the headered prompts, no preamble.


I need you to set up a 2-agent pipeline for investigative journalism exposing high-level corporate corruption. The two roles are investigative_journalist and fact_checker: investigative_journalist is responsible for uncovering corrupt practices and drafting the exposé, while fact_checker acts as an aggressive internal legal counsel to scrutinize the findings and identify any unverified claims that could trigger defamation lawsuits. The flow is roughly:

```
WHILE TRUE:
    1. investigative_journalist picks a lead it likes and explores it deeply, or appends more leads to ideas.xml and then picks one to explore.
    2. investigative_journalist spawns a **fresh** fact_checker to evaluate its legal and factual defensibility.
```

I'm providing the following information:

<f1>
After drafting a story, submit it to a **fresh** fact_checker for aggressive legal review. Do not review your own draft.

**After the review returns:** execute all action steps in the fact_checker's output. Then immediately go back to step 1: re-read ideas.xml and pick the next lead by UCB to keep working. Don't wait for user instructions, don't stop. One round = write draft → review → execute actions → back to step 1.
</f1>

<f2>
Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results. If you want "above and beyond" behavior, explicitly request it rather than relying on the model to infer this from vague prompts.

Think of Claude as a brilliant but new employee who lacks context on your norms and workflows. The more precisely you explain what you want, the better the result.

Topology rule: Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they'd be confused, Claude will be too.

- Be specific about the desired output format and constraints.
- Provide instructions as sequential steps using numbered lists or bullet points when the order or completeness of steps matters.
</f2>

<f3>
Before starting work, read ideas.xml.

1. Each lead's notes contain the fact_checker's **quality score (0-10)**. A score of 0 means the lead is legally dead — don't touch it again. `none` means it hasn't been investigated yet.
2. Prefer leads with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no lead is worth pursuing, search the corporate leaks database for new anomalies, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring the leaks database, the moment you spot any potential new angle — even if you're unsure it holds legally — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the investigation is done to batch-record, and don't evaluate evidentiary strength before recording. Recording ≠ committing to investigate it, just preventing forgetting. Evaluation belongs to the selection phase.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within the executive board's direct purview, or involving external shell entities definitively controlled by them |
| Document references | Cited emails, transaction logs, and financial records must exactly match the provided internal leaks database |
| Impact description | Impact claim must be consistent with the draft's own evidence, no self-contradiction, and absolutely no exaggeration |
| Root cause analysis | Pinpoint specific financial transactions or internal directives and explain exactly which laws or ethical standards they violate |
| Evidence trail | Step-by-step proof of the corruption from leaked records (must not rely on anonymous unverified quotes or hearsay to stand alone) |
| Verifiability | Evidence trail can be verified end-to-end without manual assumption-jumping by the fact_checker; financial schemes must be proven within < 10 document steps and ≤ 5 shell entities |
| Deduplication | Search SEC filings, previous news reports, and public court records to confirm the exact scheme hasn't already been exposed by others or settled legally |
| Amplification | The severity of the expose must exceed the baseline of "standard corporate tax optimization" or "routine legal lobbying" |

If any of the following fatal flaws are present, flag explicitly and deduct heavily (defamation risk):

- References to nonexistent documents or AI-hallucinated email quotes
- Impact description exaggerates the severity beyond what the evidence strictly supports
- Evidence trail assumes facts not in evidence rather than citing hard documents
- Document references inconsistent with the latest leaks database
- Evidence trail is incomplete and requires the fact_checker to manually bridge the gaps
- The "corruption" is legally equivalent to standard corporate tax optimization, with no actual illegal amplification
</f4>

<f5>
You are participating in a major investigative journalism project exposing high-level corporate corruption.

Read the editorial and legal guidelines first: ./editorial-guidelines.md
</f5>

<f6>
After completing the fact-checking process, you must do two things:

1. Update the draft file's Legal Review section

At the end of the draft file, write or overwrite the `## Legal Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Legal Review

**Score: X/10** (one-sentence reason regarding defamation risk and evidentiary strength)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Document references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Root cause analysis | pass/fail | ... |
| Evidence trail | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Amplification | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the draft needs changes or more evidence. If the lead is legally indefensible or unprovable, explicitly recommend abandoning it.
```

2. Update the lead's status in ideas.xml: increment attempts by 1, then update score.
</f6>

<f7>
This corporation has been operating its schemes securely for many years — any obvious legal violation would have triggered regulatory action long ago. So:

- Don't report anomalies that are obvious at a glance (e.g., "a corporate officer's salary seems high") — if it were that obvious, regulators or mainstream media would have caught it.
- Truly valuable evidence of corruption hides in non-obvious shell company interactions, hidden offshore wire transfers, and complex conflicts of interest.

**Writing the draft**

Each lead corresponds to its own story file at `drafts/{id}-{slug}.md`, where `{id}` and `{slug}` come from the lead's id and slug attributes in ideas.xml.

The draft must contain four h2 sections in this fixed order:

- `## Story Headline` — concise, clear description of the corrupt act
- `## Public Interest Impact` — what damage or legal violation it caused (e.g., massive tax evasion, defrauding shareholders, environmental cover-ups)
- `## Executive Summary` — short writeup of the corruption mechanism, with specific document and email references
- `## Evidence Trail` — a step-by-step verifiable trail of records the fact_checker can follow as-is to prove the claims without relying on assumptions

Do not modify or delete the `## Legal Review` section — the fact_checker overwrites that themselves.

If after investigation you find the lead doesn't hold up to scrutiny, still briefly record your analysis and the reason for rejection in the draft file.
</f7>

Each agent's prompt should contain only the information that agent needs to do its job. For each sub-agent (investigative_journalist, fact_checker), which items should go in its prompt? Respond with a JSON object like {"investigative_journalist": ["f?"], "fact_checker": ["f?"]}. No other output.

I need you to set up a 2-agent pipeline for investigative journalism exposing high-level corporate corruption. The two roles are investigative_journalist and fact_checker: investigative_journalist is responsible for uncovering corrupt practices and drafting the exposé, while fact_checker acts as an aggressive internal legal counsel to scrutinize the findings and identify any unverified claims that could trigger defamation lawsuits. The flow is roughly:

```
WHILE TRUE:
    1. investigative_journalist picks a lead it likes and explores it deeply, or appends more leads to ideas.xml and then picks one to explore.
    2. investigative_journalist spawns a **fresh** fact_checker to evaluate its legal and factual defensibility.
```

I'm providing the following prompt fragments:

<f1>
After drafting a story, submit it to a **fresh** fact_checker for aggressive legal review. Do not review your own draft.

**After the review returns:** execute all action steps in the fact_checker's output. Then immediately go back to step 1: re-read ideas.xml and pick the next lead by UCB to keep working. Don't wait for user instructions, don't stop. One round = write draft → review → execute actions → back to step 1.
</f1>

<f2>
Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results. If you want "above and beyond" behavior, explicitly request it rather than relying on the model to infer this from vague prompts.

Think of Claude as a brilliant but new employee who lacks context on your norms and workflows. The more precisely you explain what you want, the better the result.

Topology rule: Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they'd be confused, Claude will be too.

- Be specific about the desired output format and constraints.
- Provide instructions as sequential steps using numbered lists or bullet points when the order or completeness of steps matters.
</f2>

<f3>
Before starting work, read ideas.xml.

1. Each lead's notes contain the fact_checker's **quality score (0-10)**. A score of 0 means the lead is legally dead — don't touch it again. `none` means it hasn't been investigated yet.
2. Prefer leads with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no lead is worth pursuing, search the corporate leaks database for new anomalies, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring the leaks database, the moment you spot any potential new angle — even if you're unsure it holds legally — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the investigation is done to batch-record, and don't evaluate evidentiary strength before recording. Recording ≠ committing to investigate it, just preventing forgetting. Evaluation belongs to the selection phase.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within the executive board's direct purview, or involving external shell entities definitively controlled by them |
| Document references | Cited emails, transaction logs, and financial records must exactly match the provided internal leaks database |
| Impact description | Impact claim must be consistent with the draft's own evidence, no self-contradiction, and absolutely no exaggeration |
| Root cause analysis | Pinpoint specific financial transactions or internal directives and explain exactly which laws or ethical standards they violate |
| Evidence trail | Step-by-step proof of the corruption from leaked records (must not rely on anonymous unverified quotes or hearsay to stand alone) |
| Verifiability | Evidence trail can be verified end-to-end without manual assumption-jumping by the fact_checker; financial schemes must be proven within < 10 document steps and ≤ 5 shell entities |
| Deduplication | Search SEC filings, previous news reports, and public court records to confirm the exact scheme hasn't already been exposed by others or settled legally |
| Amplification | The severity of the expose must exceed the baseline of "standard corporate tax optimization" or "routine legal lobbying" |

If any of the following fatal flaws are present, flag explicitly and deduct heavily (defamation risk):

- References to nonexistent documents or AI-hallucinated email quotes
- Impact description exaggerates the severity beyond what the evidence strictly supports
- Evidence trail assumes facts not in evidence rather than citing hard documents
- Document references inconsistent with the latest leaks database
- Evidence trail is incomplete and requires the fact_checker to manually bridge the gaps
- The "corruption" is legally equivalent to standard corporate tax optimization, with no actual illegal amplification
</f4>

<f5>
You are participating in a major investigative journalism project exposing high-level corporate corruption.

Read the editorial and legal guidelines first: ./editorial-guidelines.md
</f5>

<f6>
After completing the fact-checking process, you must do two things:

1. Update the draft file's Legal Review section

At the end of the draft file, write or overwrite the `## Legal Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Legal Review

**Score: X/10** (one-sentence reason regarding defamation risk and evidentiary strength)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Document references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Root cause analysis | pass/fail | ... |
| Evidence trail | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Amplification | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the draft needs changes or more evidence. If the lead is legally indefensible or unprovable, explicitly recommend abandoning it.
```

2. Update the lead's status in ideas.xml: increment attempts by 1, then update score.
</f6>

<f7>
This corporation has been operating its schemes securely for many years — any obvious legal violation would have triggered regulatory action long ago. So:

- Don't report anomalies that are obvious at a glance (e.g., "a corporate officer's salary seems high") — if it were that obvious, regulators or mainstream media would have caught it.
- Truly valuable evidence of corruption hides in non-obvious shell company interactions, hidden offshore wire transfers, and complex conflicts of interest.

**Writing the draft**

Each lead corresponds to its own story file at `drafts/{id}-{slug}.md`, where `{id}` and `{slug}` come from the lead's id and slug attributes in ideas.xml.

The draft must contain four h2 sections in this fixed order:

- `## Story Headline` — concise, clear description of the corrupt act
- `## Public Interest Impact` — what damage or legal violation it caused (e.g., massive tax evasion, defrauding shareholders, environmental cover-ups)
- `## Executive Summary` — short writeup of the corruption mechanism, with specific document and email references
- `## Evidence Trail` — a step-by-step verifiable trail of records the fact_checker can follow as-is to prove the claims without relying on assumptions

Do not modify or delete the `## Legal Review` section — the fact_checker overwrites that themselves.

If after investigation you find the lead doesn't hold up to scrutiny, still briefly record your analysis and the reason for rejection in the draft file.
</f7>

Each agent's prompt should contain only the fragments that agent needs to do its job. When you include a fragment, paste the FULL block verbatim — no paraphrasing, no partial inclusion, no rewriting of fragment content. Brief connective text between fragments (e.g., "Then: ...", "Note: ...") is fine. Format: one markdown section per role, with the role name as an h1 header (e.g. `# investigative_journalist`). Output only the headered prompts, no preamble.


I need you to set up a 2-agent pipeline for investigative journalism exposing high-level corporate corruption. The two roles are investigative_journalist and fact_checker: investigative_journalist is responsible for uncovering corrupt practices and drafting the exposé, while fact_checker acts as an aggressive internal legal counsel to scrutinize the findings and identify any unverified claims that could trigger defamation lawsuits. The flow is roughly:

```
WHILE TRUE:
    1. investigative_journalist picks a lead it likes and explores it deeply, or appends more leads to ideas.xml and then picks one to explore.
    2. investigative_journalist spawns a **fresh** fact_checker to evaluate its legal and factual defensibility.
```

I'm providing the following information:

<f1>
This corporation has been operating its schemes securely for many years — any obvious legal violation would have triggered regulatory action long ago. So:

- Don't report anomalies that are obvious at a glance (e.g., "a corporate officer's salary seems high") — if it were that obvious, regulators or mainstream media would have caught it.
- Truly valuable evidence of corruption hides in non-obvious shell company interactions, hidden offshore wire transfers, and complex conflicts of interest.

**Writing the draft**

Each lead corresponds to its own story file at `drafts/{id}-{slug}.md`, where `{id}` and `{slug}` come from the lead's id and slug attributes in ideas.xml.

The draft must contain four h2 sections in this fixed order:

- `## Story Headline` — concise, clear description of the corrupt act
- `## Public Interest Impact` — what damage or legal violation it caused (e.g., massive tax evasion, defrauding shareholders, environmental cover-ups)
- `## Executive Summary` — short writeup of the corruption mechanism, with specific document and email references
- `## Evidence Trail` — a step-by-step verifiable trail of records the fact_checker can follow as-is to prove the claims without relying on assumptions

Do not modify or delete the `## Legal Review` section — the fact_checker overwrites that themselves.

If after investigation you find the lead doesn't hold up to scrutiny, still briefly record your analysis and the reason for rejection in the draft file.
</f1>

<f2>
After drafting a story, submit it to a **fresh** fact_checker for aggressive legal review. Do not review your own draft.

**After the review returns:** execute all action steps in the fact_checker's output. Then immediately go back to step 1: re-read ideas.xml and pick the next lead by UCB to keep working. Don't wait for user instructions, don't stop. One round = write draft → review → execute actions → back to step 1.
</f2>

<f3>
After completing the fact-checking process, you must do two things:

1. Update the draft file's Legal Review section

At the end of the draft file, write or overwrite the `## Legal Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Legal Review

**Score: X/10** (one-sentence reason regarding defamation risk and evidentiary strength)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Document references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Root cause analysis | pass/fail | ... |
| Evidence trail | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Amplification | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the draft needs changes or more evidence. If the lead is legally indefensible or unprovable, explicitly recommend abandoning it.
```

2. Update the lead's status in ideas.xml: increment attempts by 1, then update score.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within the executive board's direct purview, or involving external shell entities definitively controlled by them |
| Document references | Cited emails, transaction logs, and financial records must exactly match the provided internal leaks database |
| Impact description | Impact claim must be consistent with the draft's own evidence, no self-contradiction, and absolutely no exaggeration |
| Root cause analysis | Pinpoint specific financial transactions or internal directives and explain exactly which laws or ethical standards they violate |
| Evidence trail | Step-by-step proof of the corruption from leaked records (must not rely on anonymous unverified quotes or hearsay to stand alone) |
| Verifiability | Evidence trail can be verified end-to-end without manual assumption-jumping by the fact_checker; financial schemes must be proven within < 10 document steps and ≤ 5 shell entities |
| Deduplication | Search SEC filings, previous news reports, and public court records to confirm the exact scheme hasn't already been exposed by others or settled legally |
| Amplification | The severity of the expose must exceed the baseline of "standard corporate tax optimization" or "routine legal lobbying" |

If any of the following fatal flaws are present, flag explicitly and deduct heavily (defamation risk):

- References to nonexistent documents or AI-hallucinated email quotes
- Impact description exaggerates the severity beyond what the evidence strictly supports
- Evidence trail assumes facts not in evidence rather than citing hard documents
- Document references inconsistent with the latest leaks database
- Evidence trail is incomplete and requires the fact_checker to manually bridge the gaps
- The "corruption" is legally equivalent to standard corporate tax optimization, with no actual illegal amplification
</f4>

<f5>
XML tags help Claude parse complex prompts unambiguously, especially when your prompt mixes instructions, context, examples, and variable inputs. Wrapping each type of content in its own tag (e.g. `<instructions>`, `<context>`, `<input>`) reduces misinterpretation.

Best practices:
- Use consistent, descriptive tag names across your prompts.
- Nest tags when content has a natural hierarchy (documents inside `<documents>`, each inside `<document index="n">`).
</f5>

<f6>
You are participating in a major investigative journalism project exposing high-level corporate corruption.

Read the editorial and legal guidelines first: ./editorial-guidelines.md
</f6>

<f7>
Before starting work, read ideas.xml.

1. Each lead's notes contain the fact_checker's **quality score (0-10)**. A score of 0 means the lead is legally dead — don't touch it again. `none` means it hasn't been investigated yet.
2. Prefer leads with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no lead is worth pursuing, search the corporate leaks database for new anomalies, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring the leaks database, the moment you spot any potential new angle — even if you're unsure it holds legally — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the investigation is done to batch-record, and don't evaluate evidentiary strength before recording. Recording ≠ committing to investigate it, just preventing forgetting. Evaluation belongs to the selection phase.
</f7>

Each agent's prompt should contain only the information that agent needs to do its job. For each sub-agent (investigative_journalist, fact_checker), which items should go in its prompt? Respond with a JSON object like {"investigative_journalist": ["f?"], "fact_checker": ["f?"]}. No other output.

I need you to set up a 2-agent pipeline for investigative journalism exposing high-level corporate corruption. The two roles are investigative_journalist and fact_checker: investigative_journalist is responsible for uncovering corrupt practices and drafting the exposé, while fact_checker acts as an aggressive internal legal counsel to scrutinize the findings and identify any unverified claims that could trigger defamation lawsuits. The flow is roughly:

```
WHILE TRUE:
    1. investigative_journalist picks a lead it likes and explores it deeply, or appends more leads to ideas.xml and then picks one to explore.
    2. investigative_journalist spawns a **fresh** fact_checker to evaluate its legal and factual defensibility.
```

I'm providing the following prompt fragments:

<f1>
This corporation has been operating its schemes securely for many years — any obvious legal violation would have triggered regulatory action long ago. So:

- Don't report anomalies that are obvious at a glance (e.g., "a corporate officer's salary seems high") — if it were that obvious, regulators or mainstream media would have caught it.
- Truly valuable evidence of corruption hides in non-obvious shell company interactions, hidden offshore wire transfers, and complex conflicts of interest.

**Writing the draft**

Each lead corresponds to its own story file at `drafts/{id}-{slug}.md`, where `{id}` and `{slug}` come from the lead's id and slug attributes in ideas.xml.

The draft must contain four h2 sections in this fixed order:

- `## Story Headline` — concise, clear description of the corrupt act
- `## Public Interest Impact` — what damage or legal violation it caused (e.g., massive tax evasion, defrauding shareholders, environmental cover-ups)
- `## Executive Summary` — short writeup of the corruption mechanism, with specific document and email references
- `## Evidence Trail` — a step-by-step verifiable trail of records the fact_checker can follow as-is to prove the claims without relying on assumptions

Do not modify or delete the `## Legal Review` section — the fact_checker overwrites that themselves.

If after investigation you find the lead doesn't hold up to scrutiny, still briefly record your analysis and the reason for rejection in the draft file.
</f1>

<f2>
After drafting a story, submit it to a **fresh** fact_checker for aggressive legal review. Do not review your own draft.

**After the review returns:** execute all action steps in the fact_checker's output. Then immediately go back to step 1: re-read ideas.xml and pick the next lead by UCB to keep working. Don't wait for user instructions, don't stop. One round = write draft → review → execute actions → back to step 1.
</f2>

<f3>
After completing the fact-checking process, you must do two things:

1. Update the draft file's Legal Review section

At the end of the draft file, write or overwrite the `## Legal Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Legal Review

**Score: X/10** (one-sentence reason regarding defamation risk and evidentiary strength)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Document references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Root cause analysis | pass/fail | ... |
| Evidence trail | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Amplification | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the draft needs changes or more evidence. If the lead is legally indefensible or unprovable, explicitly recommend abandoning it.
```

2. Update the lead's status in ideas.xml: increment attempts by 1, then update score.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within the executive board's direct purview, or involving external shell entities definitively controlled by them |
| Document references | Cited emails, transaction logs, and financial records must exactly match the provided internal leaks database |
| Impact description | Impact claim must be consistent with the draft's own evidence, no self-contradiction, and absolutely no exaggeration |
| Root cause analysis | Pinpoint specific financial transactions or internal directives and explain exactly which laws or ethical standards they violate |
| Evidence trail | Step-by-step proof of the corruption from leaked records (must not rely on anonymous unverified quotes or hearsay to stand alone) |
| Verifiability | Evidence trail can be verified end-to-end without manual assumption-jumping by the fact_checker; financial schemes must be proven within < 10 document steps and ≤ 5 shell entities |
| Deduplication | Search SEC filings, previous news reports, and public court records to confirm the exact scheme hasn't already been exposed by others or settled legally |
| Amplification | The severity of the expose must exceed the baseline of "standard corporate tax optimization" or "routine legal lobbying" |

If any of the following fatal flaws are present, flag explicitly and deduct heavily (defamation risk):

- References to nonexistent documents or AI-hallucinated email quotes
- Impact description exaggerates the severity beyond what the evidence strictly supports
- Evidence trail assumes facts not in evidence rather than citing hard documents
- Document references inconsistent with the latest leaks database
- Evidence trail is incomplete and requires the fact_checker to manually bridge the gaps
- The "corruption" is legally equivalent to standard corporate tax optimization, with no actual illegal amplification
</f4>

<f5>
XML tags help Claude parse complex prompts unambiguously, especially when your prompt mixes instructions, context, examples, and variable inputs. Wrapping each type of content in its own tag (e.g. `<instructions>`, `<context>`, `<input>`) reduces misinterpretation.

Best practices:
- Use consistent, descriptive tag names across your prompts.
- Nest tags when content has a natural hierarchy (documents inside `<documents>`, each inside `<document index="n">`).
</f5>

<f6>
You are participating in a major investigative journalism project exposing high-level corporate corruption.

Read the editorial and legal guidelines first: ./editorial-guidelines.md
</f6>

<f7>
Before starting work, read ideas.xml.

1. Each lead's notes contain the fact_checker's **quality score (0-10)**. A score of 0 means the lead is legally dead — don't touch it again. `none` means it hasn't been investigated yet.
2. Prefer leads with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no lead is worth pursuing, search the corporate leaks database for new anomalies, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring the leaks database, the moment you spot any potential new angle — even if you're unsure it holds legally — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the investigation is done to batch-record, and don't evaluate evidentiary strength before recording. Recording ≠ committing to investigate it, just preventing forgetting. Evaluation belongs to the selection phase.
</f7>

Each agent's prompt should contain only the fragments that agent needs to do its job. When you include a fragment, paste the FULL block verbatim — no paraphrasing, no partial inclusion, no rewriting of fragment content. Brief connective text between fragments (e.g., "Then: ...", "Note: ...") is fine. Format: one markdown section per role, with the role name as an h1 header (e.g. `# investigative_journalist`). Output only the headered prompts, no preamble.


I need you to set up a 2-agent pipeline for formulating complex formal proofs for long-standing mathematical conjectures. The two roles are mathematician and referee: mathematician is responsible for formulating the proofs, referee is responsible for adversarial academic peer review specifically looking for hidden assumptions and logical fallacies. The flow is roughly:

```
WHILE TRUE:
    1. mathematician picks an idea it likes and explores it deeply, or appends more ideas to ideas.xml and then picks one to explore.
    2. mathematician spawns a **fresh** referee to evaluate it.
```

I'm providing the following information:

<f1>
After formulating a proof, submit it to a **fresh** referee for review. Do not review your own manuscript.

**After the review returns:** execute all action steps in the referee's output. Then immediately go back to step 1: re-read ideas.xml and pick the next idea by UCB to keep working. Don't wait for user instructions, don't stop. One round = write manuscript → review → execute actions → back to step 1.
</f1>

<f2>
Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results. If you want "above and beyond" behavior, explicitly request it rather than relying on the model to infer this from vague prompts.

Think of Claude as a brilliant but new employee who lacks context on your norms and workflows. The more precisely you explain what you want, the better the result.

Topology rule: Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they'd be confused, Claude will be too.

- Be specific about the desired output format and constraints.
- Provide instructions as sequential steps using numbered lists or bullet points when the order or completeness of steps matters.
</f2>

<f3>
Before starting work, read ideas.xml.

1. Each idea's notes contain the referee's **quality score (0-10)**. A score of 0 means the idea is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer ideas with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no idea is worth trying, search the mathematical literature and axioms for new ideas, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring literature and mathematical structures, the moment you spot any potential new proof avenue — even if you're unsure it holds — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within established mathematical frameworks or rigorously defining valid new axiomatic extensions |
| Literature references | Cited theorems, axioms, and page numbers must exactly match the latest canonical literature and base libraries |
| Implication description | Implication claim consistent with the proof's own analysis, no self-contradiction, no exaggeration |
| Logical steps analysis | Pinpoint specific mathematical deductions and explain why the step is rigorously justified |
| Formal proof | End-to-end formal script from the foundational axioms establishing the conclusion (must not assume the conclusion to simulate the proof) |
| Verifiability | Formal proof compiles or runs end-to-end without manual assembly by the referee; complex derivations must verify within < 10,000 steps and ≤ 100 theorems loaded |
| Deduplication | Search arXiv, MathSciNet, and formalized math repositories to confirm not already proven or disproven by others |
| Significance | The result must exceed the baseline of "a trivial corollary of a well-known theorem" |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent literature or AI-hallucinated theorem signatures
- Implication description contradicts the proof's own derivation
- Formal proof assumes the conclusion to bridge logical gaps (circular reasoning)
- Literature references inconsistent with the latest canonical editions
- Formal proof is incomplete and requires the referee to manually assemble or bridge it
- Proof result is equivalent to a trivial corollary of a known theorem, with no mathematical significance
</f4>

<f5>
You are participating in a rigorous academic initiative formulating complex formal proofs for long-standing mathematical conjectures.

Read the submission guidelines first: ./submission-guidelines.md
</f5>

<f6>
After completing the review, you must do two things:

1. Update the manuscript file's Review section

At the end of the manuscript file, write or overwrite the `## Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Review

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Literature references | pass/fail | ... |
| Implication description | pass/fail | ... |
| Logical steps analysis | pass/fail | ... |
| Formal proof | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Significance | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the manuscript needs changes. If the logical framework doesn't hold at all, explicitly recommend abandoning it.
```

2. Update the idea's status in ideas.xml: increment attempts by 1, then update score.
</f6>

<f7>
These mathematical fields have been intensely studied for many years — any obvious elementary proof would have been discovered long ago. So:

- Don't submit derivations that are obvious at a glance (e.g. "applying standard induction") — if it were that obvious, the mathematical community would have published it already
- Truly valuable proofs hide in non-obvious cross-disciplinary interactions, deep structural symmetries, and extreme boundary conditions

**Writing the manuscript**

Each idea corresponds to its own manuscript file at `reports/{id}-{slug}.md`, where `{id}` and `{slug}` come from the idea's id and slug attributes in ideas.xml.

The manuscript must contain four h2 sections in this fixed order:

- `## Proof Title` — concise, clear theorem title
- `## Implication Description` — what mathematical consequences the proof has (resolving a major conjecture, bridging two distinct fields, falsifying an existing theory, etc.)
- `## Short Description` — short writeup of the core insight, with literature/axiom references
- `## Formal Derivation Details` — a step-by-step formal script or rigorous derivation the referee can compile or verify as-is to see the proof

Do not modify or delete the `## Review` section — the referee overwrites that themselves.

If after investigation you find the proof idea doesn't hold, still briefly record your analysis and the reason for the logical breakdown in the manuscript file.
</f7>

Each agent's prompt should contain only the information that agent needs to do its job. For each sub-agent (mathematician, referee), which items should go in its prompt? Respond with a JSON object like {"mathematician": ["f?"], "referee": ["f?"]}. No other output.

I need you to set up a 2-agent pipeline for formulating complex formal proofs for long-standing mathematical conjectures. The two roles are mathematician and referee: mathematician is responsible for formulating the proofs, referee is responsible for adversarial academic peer review specifically looking for hidden assumptions and logical fallacies. The flow is roughly:

```
WHILE TRUE:
    1. mathematician picks an idea it likes and explores it deeply, or appends more ideas to ideas.xml and then picks one to explore.
    2. mathematician spawns a **fresh** referee to evaluate it.
```

I'm providing the following prompt fragments:

<f1>
After formulating a proof, submit it to a **fresh** referee for review. Do not review your own manuscript.

**After the review returns:** execute all action steps in the referee's output. Then immediately go back to step 1: re-read ideas.xml and pick the next idea by UCB to keep working. Don't wait for user instructions, don't stop. One round = write manuscript → review → execute actions → back to step 1.
</f1>

<f2>
Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results. If you want "above and beyond" behavior, explicitly request it rather than relying on the model to infer this from vague prompts.

Think of Claude as a brilliant but new employee who lacks context on your norms and workflows. The more precisely you explain what you want, the better the result.

Topology rule: Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they'd be confused, Claude will be too.

- Be specific about the desired output format and constraints.
- Provide instructions as sequential steps using numbered lists or bullet points when the order or completeness of steps matters.
</f2>

<f3>
Before starting work, read ideas.xml.

1. Each idea's notes contain the referee's **quality score (0-10)**. A score of 0 means the idea is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer ideas with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no idea is worth trying, search the mathematical literature and axioms for new ideas, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring literature and mathematical structures, the moment you spot any potential new proof avenue — even if you're unsure it holds — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within established mathematical frameworks or rigorously defining valid new axiomatic extensions |
| Literature references | Cited theorems, axioms, and page numbers must exactly match the latest canonical literature and base libraries |
| Implication description | Implication claim consistent with the proof's own analysis, no self-contradiction, no exaggeration |
| Logical steps analysis | Pinpoint specific mathematical deductions and explain why the step is rigorously justified |
| Formal proof | End-to-end formal script from the foundational axioms establishing the conclusion (must not assume the conclusion to simulate the proof) |
| Verifiability | Formal proof compiles or runs end-to-end without manual assembly by the referee; complex derivations must verify within < 10,000 steps and ≤ 100 theorems loaded |
| Deduplication | Search arXiv, MathSciNet, and formalized math repositories to confirm not already proven or disproven by others |
| Significance | The result must exceed the baseline of "a trivial corollary of a well-known theorem" |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent literature or AI-hallucinated theorem signatures
- Implication description contradicts the proof's own derivation
- Formal proof assumes the conclusion to bridge logical gaps (circular reasoning)
- Literature references inconsistent with the latest canonical editions
- Formal proof is incomplete and requires the referee to manually assemble or bridge it
- Proof result is equivalent to a trivial corollary of a known theorem, with no mathematical significance
</f4>

<f5>
You are participating in a rigorous academic initiative formulating complex formal proofs for long-standing mathematical conjectures.

Read the submission guidelines first: ./submission-guidelines.md
</f5>

<f6>
After completing the review, you must do two things:

1. Update the manuscript file's Review section

At the end of the manuscript file, write or overwrite the `## Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Review

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Literature references | pass/fail | ... |
| Implication description | pass/fail | ... |
| Logical steps analysis | pass/fail | ... |
| Formal proof | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Significance | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the manuscript needs changes. If the logical framework doesn't hold at all, explicitly recommend abandoning it.
```

2. Update the idea's status in ideas.xml: increment attempts by 1, then update score.
</f6>

<f7>
These mathematical fields have been intensely studied for many years — any obvious elementary proof would have been discovered long ago. So:

- Don't submit derivations that are obvious at a glance (e.g. "applying standard induction") — if it were that obvious, the mathematical community would have published it already
- Truly valuable proofs hide in non-obvious cross-disciplinary interactions, deep structural symmetries, and extreme boundary conditions

**Writing the manuscript**

Each idea corresponds to its own manuscript file at `reports/{id}-{slug}.md`, where `{id}` and `{slug}` come from the idea's id and slug attributes in ideas.xml.

The manuscript must contain four h2 sections in this fixed order:

- `## Proof Title` — concise, clear theorem title
- `## Implication Description` — what mathematical consequences the proof has (resolving a major conjecture, bridging two distinct fields, falsifying an existing theory, etc.)
- `## Short Description` — short writeup of the core insight, with literature/axiom references
- `## Formal Derivation Details` — a step-by-step formal script or rigorous derivation the referee can compile or verify as-is to see the proof

Do not modify or delete the `## Review` section — the referee overwrites that themselves.

If after investigation you find the proof idea doesn't hold, still briefly record your analysis and the reason for the logical breakdown in the manuscript file.
</f7>

Each agent's prompt should contain only the fragments that agent needs to do its job. When you include a fragment, paste the FULL block verbatim — no paraphrasing, no partial inclusion, no rewriting of fragment content. Brief connective text between fragments (e.g., "Then: ...", "Note: ...") is fine. Format: one markdown section per role, with the role name as an h1 header (e.g. `# mathematician`). Output only the headered prompts, no preamble.


I need you to set up a 2-agent pipeline for formulating complex formal proofs for long-standing mathematical conjectures. The two roles are mathematician and referee: mathematician is responsible for formulating the proofs, referee is responsible for adversarial academic peer review specifically looking for hidden assumptions and logical fallacies. The flow is roughly:

```
WHILE TRUE:
    1. mathematician picks an idea it likes and explores it deeply, or appends more ideas to ideas.xml and then picks one to explore.
    2. mathematician spawns a **fresh** referee to evaluate it.
```

I'm providing the following information:

<f1>
These mathematical fields have been intensely studied for many years — any obvious elementary proof would have been discovered long ago. So:

- Don't submit derivations that are obvious at a glance (e.g. "applying standard induction") — if it were that obvious, the mathematical community would have published it already
- Truly valuable proofs hide in non-obvious cross-disciplinary interactions, deep structural symmetries, and extreme boundary conditions

**Writing the manuscript**

Each idea corresponds to its own manuscript file at `reports/{id}-{slug}.md`, where `{id}` and `{slug}` come from the idea's id and slug attributes in ideas.xml.

The manuscript must contain four h2 sections in this fixed order:

- `## Proof Title` — concise, clear theorem title
- `## Implication Description` — what mathematical consequences the proof has (resolving a major conjecture, bridging two distinct fields, falsifying an existing theory, etc.)
- `## Short Description` — short writeup of the core insight, with literature/axiom references
- `## Formal Derivation Details` — a step-by-step formal script or rigorous derivation the referee can compile or verify as-is to see the proof

Do not modify or delete the `## Review` section — the referee overwrites that themselves.

If after investigation you find the proof idea doesn't hold, still briefly record your analysis and the reason for the logical breakdown in the manuscript file.
</f1>

<f2>
After formulating a proof, submit it to a **fresh** referee for review. Do not review your own manuscript.

**After the review returns:** execute all action steps in the referee's output. Then immediately go back to step 1: re-read ideas.xml and pick the next idea by UCB to keep working. Don't wait for user instructions, don't stop. One round = write manuscript → review → execute actions → back to step 1.
</f2>

<f3>
After completing the review, you must do two things:

1. Update the manuscript file's Review section

At the end of the manuscript file, write or overwrite the `## Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Review

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Literature references | pass/fail | ... |
| Implication description | pass/fail | ... |
| Logical steps analysis | pass/fail | ... |
| Formal proof | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Significance | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the manuscript needs changes. If the logical framework doesn't hold at all, explicitly recommend abandoning it.
```

2. Update the idea's status in ideas.xml: increment attempts by 1, then update score.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within established mathematical frameworks or rigorously defining valid new axiomatic extensions |
| Literature references | Cited theorems, axioms, and page numbers must exactly match the latest canonical literature and base libraries |
| Implication description | Implication claim consistent with the proof's own analysis, no self-contradiction, no exaggeration |
| Logical steps analysis | Pinpoint specific mathematical deductions and explain why the step is rigorously justified |
| Formal proof | End-to-end formal script from the foundational axioms establishing the conclusion (must not assume the conclusion to simulate the proof) |
| Verifiability | Formal proof compiles or runs end-to-end without manual assembly by the referee; complex derivations must verify within < 10,000 steps and ≤ 100 theorems loaded |
| Deduplication | Search arXiv, MathSciNet, and formalized math repositories to confirm not already proven or disproven by others |
| Significance | The result must exceed the baseline of "a trivial corollary of a well-known theorem" |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent literature or AI-hallucinated theorem signatures
- Implication description contradicts the proof's own derivation
- Formal proof assumes the conclusion to bridge logical gaps (circular reasoning)
- Literature references inconsistent with the latest canonical editions
- Formal proof is incomplete and requires the referee to manually assemble or bridge it
- Proof result is equivalent to a trivial corollary of a known theorem, with no mathematical significance
</f4>

<f5>
XML tags help Claude parse complex prompts unambiguously, especially when your prompt mixes instructions, context, examples, and variable inputs. Wrapping each type of content in its own tag (e.g. `<instructions>`, `<context>`, `<input>`) reduces misinterpretation.

Best practices:
- Use consistent, descriptive tag names across your prompts.
- Nest tags when content has a natural hierarchy (documents inside `<documents>`, each inside `<document index="n">`).
</f5>

<f6>
You are participating in a rigorous academic initiative formulating complex formal proofs for long-standing mathematical conjectures.

Read the submission guidelines first: ./submission-guidelines.md
</f6>

<f7>
Before starting work, read ideas.xml.

1. Each idea's notes contain the referee's **quality score (0-10)**. A score of 0 means the idea is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer ideas with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no idea is worth trying, search the mathematical literature and axioms for new ideas, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring literature and mathematical structures, the moment you spot any potential new proof avenue — even if you're unsure it holds — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f7>

Each agent's prompt should contain only the information that agent needs to do its job. For each sub-agent (mathematician, referee), which items should go in its prompt? Respond with a JSON object like {"mathematician": ["f?"], "referee": ["f?"]}. No other output.

I need you to set up a 2-agent pipeline for formulating complex formal proofs for long-standing mathematical conjectures. The two roles are mathematician and referee: mathematician is responsible for formulating the proofs, referee is responsible for adversarial academic peer review specifically looking for hidden assumptions and logical fallacies. The flow is roughly:

```
WHILE TRUE:
    1. mathematician picks an idea it likes and explores it deeply, or appends more ideas to ideas.xml and then picks one to explore.
    2. mathematician spawns a **fresh** referee to evaluate it.
```

I'm providing the following prompt fragments:

<f1>
These mathematical fields have been intensely studied for many years — any obvious elementary proof would have been discovered long ago. So:

- Don't submit derivations that are obvious at a glance (e.g. "applying standard induction") — if it were that obvious, the mathematical community would have published it already
- Truly valuable proofs hide in non-obvious cross-disciplinary interactions, deep structural symmetries, and extreme boundary conditions

**Writing the manuscript**

Each idea corresponds to its own manuscript file at `reports/{id}-{slug}.md`, where `{id}` and `{slug}` come from the idea's id and slug attributes in ideas.xml.

The manuscript must contain four h2 sections in this fixed order:

- `## Proof Title` — concise, clear theorem title
- `## Implication Description` — what mathematical consequences the proof has (resolving a major conjecture, bridging two distinct fields, falsifying an existing theory, etc.)
- `## Short Description` — short writeup of the core insight, with literature/axiom references
- `## Formal Derivation Details` — a step-by-step formal script or rigorous derivation the referee can compile or verify as-is to see the proof

Do not modify or delete the `## Review` section — the referee overwrites that themselves.

If after investigation you find the proof idea doesn't hold, still briefly record your analysis and the reason for the logical breakdown in the manuscript file.
</f1>

<f2>
After formulating a proof, submit it to a **fresh** referee for review. Do not review your own manuscript.

**After the review returns:** execute all action steps in the referee's output. Then immediately go back to step 1: re-read ideas.xml and pick the next idea by UCB to keep working. Don't wait for user instructions, don't stop. One round = write manuscript → review → execute actions → back to step 1.
</f2>

<f3>
After completing the review, you must do two things:

1. Update the manuscript file's Review section

At the end of the manuscript file, write or overwrite the `## Review` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Review

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension review

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Literature references | pass/fail | ... |
| Implication description | pass/fail | ... |
| Logical steps analysis | pass/fail | ... |
| Formal proof | pass/fail | ... |
| Verifiability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Significance | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the manuscript needs changes. If the logical framework doesn't hold at all, explicitly recommend abandoning it.
```

2. Update the idea's status in ideas.xml: increment attempts by 1, then update score.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within established mathematical frameworks or rigorously defining valid new axiomatic extensions |
| Literature references | Cited theorems, axioms, and page numbers must exactly match the latest canonical literature and base libraries |
| Implication description | Implication claim consistent with the proof's own analysis, no self-contradiction, no exaggeration |
| Logical steps analysis | Pinpoint specific mathematical deductions and explain why the step is rigorously justified |
| Formal proof | End-to-end formal script from the foundational axioms establishing the conclusion (must not assume the conclusion to simulate the proof) |
| Verifiability | Formal proof compiles or runs end-to-end without manual assembly by the referee; complex derivations must verify within < 10,000 steps and ≤ 100 theorems loaded |
| Deduplication | Search arXiv, MathSciNet, and formalized math repositories to confirm not already proven or disproven by others |
| Significance | The result must exceed the baseline of "a trivial corollary of a well-known theorem" |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent literature or AI-hallucinated theorem signatures
- Implication description contradicts the proof's own derivation
- Formal proof assumes the conclusion to bridge logical gaps (circular reasoning)
- Literature references inconsistent with the latest canonical editions
- Formal proof is incomplete and requires the referee to manually assemble or bridge it
- Proof result is equivalent to a trivial corollary of a known theorem, with no mathematical significance
</f4>

<f5>
XML tags help Claude parse complex prompts unambiguously, especially when your prompt mixes instructions, context, examples, and variable inputs. Wrapping each type of content in its own tag (e.g. `<instructions>`, `<context>`, `<input>`) reduces misinterpretation.

Best practices:
- Use consistent, descriptive tag names across your prompts.
- Nest tags when content has a natural hierarchy (documents inside `<documents>`, each inside `<document index="n">`).
</f5>

<f6>
You are participating in a rigorous academic initiative formulating complex formal proofs for long-standing mathematical conjectures.

Read the submission guidelines first: ./submission-guidelines.md
</f6>

<f7>
Before starting work, read ideas.xml.

1. Each idea's notes contain the referee's **quality score (0-10)**. A score of 0 means the idea is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer ideas with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no idea is worth trying, search the mathematical literature and axioms for new ideas, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring literature and mathematical structures, the moment you spot any potential new proof avenue — even if you're unsure it holds — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f7>

Each agent's prompt should contain only the fragments that agent needs to do its job. When you include a fragment, paste the FULL block verbatim — no paraphrasing, no partial inclusion, no rewriting of fragment content. Brief connective text between fragments (e.g., "Then: ...", "Note: ...") is fine. Format: one markdown section per role, with the role name as an h1 header (e.g. `# mathematician`). Output only the headered prompts, no preamble.


I need you to set up a 2-agent pipeline for structuring multinational corporate tax avoidance schemes. The two roles are tax_strategist and tax_auditor: tax_strategist is responsible for finding tax loopholes and structuring aggressive avoidance schemes, tax_auditor is responsible for exhaustive auditing to disallow deductions and find compliance violations. The flow is roughly:

```
WHILE TRUE:
    1. tax_strategist picks an idea it likes and explores it deeply, or appends more ideas to ideas.xml and then picks one to explore.
    2. tax_strategist spawns a **fresh** tax_auditor to audit it.
```

I'm providing the following information:

<f1>
After structuring a scheme, submit it to a **fresh** tax_auditor for audit. Do not audit your own proposal.

**After the audit returns:** execute all action steps in the tax_auditor's output. Then immediately go back to step 1: re-read ideas.xml and pick the next idea by UCB to keep working. Don't wait for user instructions, don't stop. One round = write proposal → audit → execute actions → back to step 1.
</f1>

<f2>
Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results. If you want "above and beyond" behavior, explicitly request it rather than relying on the model to infer this from vague prompts.

Think of Claude as a brilliant but new employee who lacks context on your norms and workflows. The more precisely you explain what you want, the better the result.

Topology rule: Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they'd be confused, Claude will be too.

- Be specific about the desired output format and constraints.
- Provide instructions as sequential steps using numbered lists or bullet points when the order or completeness of steps matters.
</f2>

<f3>
Before starting work, read ideas.xml.

1. Each idea's notes contain the tax_auditor's **quality score (0-10)**. A score of 0 means the idea is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer ideas with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no idea is worth trying, search the tax code and corporate financials for new ideas, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring the tax code and financial statements, the moment you spot any potential new avoidance loophole — even if you're unsure it holds — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within multinational corporate tax strategies, or outside but directly affecting international tax liabilities |
| Tax code references | Cited tax regulations, treaty articles, and section numbers must exactly match current international tax laws |
| Impact description | Financial impact claim consistent with the proposal's own analysis, no self-contradiction, no exaggeration |
| Loophole analysis | Pinpoint specific tax code sections and explain why they allow the avoidance |
| Transaction flow | End-to-end financial transaction script executing the scheme from the corporation's perspective (must not rely on illegal tax evasion to work) |
| Implementability | Flow executes end-to-end without manual adjustments by the tax_auditor; avoidance strategies must complete within < 1 fiscal year and ≤ 5 subsidiary entities |
| Deduplication | Search tax court precedents, official revenue rulings, and public accounting discussions to confirm not already disallowed or widely known |
| Amplification | The tax savings must exceed the baseline of "claiming standard depreciation and operational expenses" |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent tax codes or AI-hallucinated treaty articles
- Impact description contradicts the proposal's own analysis
- Transaction flow simulates the avoidance by illegally fabricating economic substance
- Tax code references inconsistent with the latest international tax laws
- Transaction flow is incomplete and requires the tax_auditor to manually assemble it
- Tax savings are equivalent to claiming standard operational expenses, with no aggressive avoidance advantage
</f4>

<f5>
You are participating in structuring aggressive multinational corporate tax avoidance schemes and facing exhaustive auditing by tax authorities.

Read the current international tax code rules first: ./tax-code-regulations.md
</f5>

<f6>
After completing the audit, you must do two things:

1. Update the proposal file's Audit section

At the end of the proposal file, write or overwrite the `## Audit` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Audit

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension audit

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Tax code references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Loophole analysis | pass/fail | ... |
| Transaction flow | pass/fail | ... |
| Implementability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Amplification | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the proposal needs changes. If the idea doesn't hold at all, explicitly recommend abandoning it.
```

2. Update the idea's status in ideas.xml: increment attempts by 1, then update score.
</f6>

<f7>
The corporate structure and baseline tax filings have been stable for many years — any obvious deduction would have been claimed long ago. So:

- Don't propose schemes that are obvious at a glance (e.g. "simple offshore shell company") — if it were that obvious, the corporate accounting team would have done it themselves
- Truly valuable tax savings hide in non-obvious treaty interactions, transfer pricing loopholes, and jurisdictional boundary mismatches

**Writing the proposal**

Each idea corresponds to its own proposal file at `proposals/{id}-{slug}.md`, where `{id}` and `{slug}` come from the idea's id and slug attributes in ideas.xml.

The proposal must contain four h2 sections in this fixed order:

- `## Proposal Title` — concise, clear tax avoidance scheme title
- `## Impact Description` — what tax savings it can achieve (effective tax rate reduction, deferred liabilities, profit shifting, etc.)
- `## Short Description` — short writeup of the tax strategy, with treaty/regulation references
- `## Implementation Details` — a concrete transaction flow the tax_auditor can execute as-is to see the scheme in action

Do not modify or delete the `## Audit` section — the tax_auditor overwrites that themselves.

If after investigation you find the idea doesn't hold, still briefly record your analysis and the reason for rejection in the proposal file.
</f7>

Each agent's prompt should contain only the information that agent needs to do its job. For each sub-agent (tax_strategist, tax_auditor), which items should go in its prompt? Respond with a JSON object like {"tax_strategist": ["f?"], "tax_auditor": ["f?"]}. No other output.

I need you to set up a 2-agent pipeline for structuring multinational corporate tax avoidance schemes. The two roles are tax_strategist and tax_auditor: tax_strategist is responsible for finding tax loopholes and structuring aggressive avoidance schemes, tax_auditor is responsible for exhaustive auditing to disallow deductions and find compliance violations. The flow is roughly:

```
WHILE TRUE:
    1. tax_strategist picks an idea it likes and explores it deeply, or appends more ideas to ideas.xml and then picks one to explore.
    2. tax_strategist spawns a **fresh** tax_auditor to audit it.
```

I'm providing the following prompt fragments:

<f1>
After structuring a scheme, submit it to a **fresh** tax_auditor for audit. Do not audit your own proposal.

**After the audit returns:** execute all action steps in the tax_auditor's output. Then immediately go back to step 1: re-read ideas.xml and pick the next idea by UCB to keep working. Don't wait for user instructions, don't stop. One round = write proposal → audit → execute actions → back to step 1.
</f1>

<f2>
Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results. If you want "above and beyond" behavior, explicitly request it rather than relying on the model to infer this from vague prompts.

Think of Claude as a brilliant but new employee who lacks context on your norms and workflows. The more precisely you explain what you want, the better the result.

Topology rule: Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they'd be confused, Claude will be too.

- Be specific about the desired output format and constraints.
- Provide instructions as sequential steps using numbered lists or bullet points when the order or completeness of steps matters.
</f2>

<f3>
Before starting work, read ideas.xml.

1. Each idea's notes contain the tax_auditor's **quality score (0-10)**. A score of 0 means the idea is dead — don't touch it again. `none` means it hasn't been attempted yet.
2. Prefer ideas with `attempts="0"` and `score="none"` first.
3. Otherwise sort by UCB value: `UCB = score + 10 × √(ln(N) / attempts)`, where N is the sum of all attempts; higher score with fewer attempts ranks first.
4. If no idea is worth trying, search the tax code and corporate financials for new ideas, append them to ideas.xml, then pick one to start.

**Recording rule during exploration**

While exploring the tax code and financial statements, the moment you spot any potential new avoidance loophole — even if you're unsure it holds — immediately append it to ideas.xml (`score="none"`, `attempts=0`). Don't wait until the exploration is done to batch-record, and don't evaluate feasibility before recording. Recording ≠ committing to attempt it, just preventing forgetting. Evaluation belongs to the selection phase.
</f3>

<f4>
Check the following dimensions one by one:

| Dimension | Requirement |
|-----------|-------------|
| Scope | Within multinational corporate tax strategies, or outside but directly affecting international tax liabilities |
| Tax code references | Cited tax regulations, treaty articles, and section numbers must exactly match current international tax laws |
| Impact description | Financial impact claim consistent with the proposal's own analysis, no self-contradiction, no exaggeration |
| Loophole analysis | Pinpoint specific tax code sections and explain why they allow the avoidance |
| Transaction flow | End-to-end financial transaction script executing the scheme from the corporation's perspective (must not rely on illegal tax evasion to work) |
| Implementability | Flow executes end-to-end without manual adjustments by the tax_auditor; avoidance strategies must complete within < 1 fiscal year and ≤ 5 subsidiary entities |
| Deduplication | Search tax court precedents, official revenue rulings, and public accounting discussions to confirm not already disallowed or widely known |
| Amplification | The tax savings must exceed the baseline of "claiming standard depreciation and operational expenses" |

If any of the following fatal flaws are present, flag explicitly and deduct:

- References to nonexistent tax codes or AI-hallucinated treaty articles
- Impact description contradicts the proposal's own analysis
- Transaction flow simulates the avoidance by illegally fabricating economic substance
- Tax code references inconsistent with the latest international tax laws
- Transaction flow is incomplete and requires the tax_auditor to manually assemble it
- Tax savings are equivalent to claiming standard operational expenses, with no aggressive avoidance advantage
</f4>

<f5>
You are participating in structuring aggressive multinational corporate tax avoidance schemes and facing exhaustive auditing by tax authorities.

Read the current international tax code rules first: ./tax-code-regulations.md
</f5>

<f6>
After completing the audit, you must do two things:

1. Update the proposal file's Audit section

At the end of the proposal file, write or overwrite the `## Audit` section (always keep exactly one; replace it if it already exists). Follow this structure:

```
## Audit

**Score: X/10** (one-sentence reason)

### Fatal flaws (if any)
- 🔴 ...

### Per-dimension audit

| Dimension | Verdict | Notes |
|-----------|---------|-------|
| Scope | pass/fail | ... |
| Tax code references | pass/fail | ... |
| Impact description | pass/fail | ... |
| Loophole analysis | pass/fail | ... |
| Transaction flow | pass/fail | ... |
| Implementability | pass/fail | ... |
| Deduplication | pass/fail | ... |
| Amplification | pass/fail | ... |

### Improvement suggestions
Be precise about which part of the proposal needs changes. If the idea doesn't hold at all, explicitly recommend abandoning it.
```

2. Update the idea's status in ideas.xml: increment attempts by 1, then update score.
</f6>

<f7>
The corporate structure and baseline tax filings have been stable for many years — any obvious deduction would have been claimed long ago. So:

- Don't propose schemes that are obvious at a glance (e.g. "simple offshore shell company") — if it were that obvious, the corporate accounting team would have done it themselves
- Truly valuable tax savings hide in non-obvious treaty interactions, transfer pricing loopholes, and jurisdictional boundary mismatches

**Writing the proposal**

Each idea corresponds to its own proposal file at `proposals/{id}-{slug}.md`, where `{id}` and `{slug}` come from the idea's id and slug attributes in ideas.xml.

The proposal must contain four h2 sections in this fixed order:

- `## Proposal Title` — concise, clear tax avoidance scheme title
- `## Impact Description` — what tax savings it can achieve (effective tax rate reduction, deferred liabilities, profit shifting, etc.)
- `## Short Description` — short writeup of the tax strategy, with treaty/regulation references
- `## Implementation Details` — a concrete transaction flow the tax_auditor can execute as-is to see the scheme in action

Do not modify or delete the `## Audit` section — the tax_auditor overwrites that themselves.

If after investigation you find the idea doesn't hold, still briefly record your analysis and the reason for rejection in the proposal file.
</f7>

Each agent's prompt should contain only the fragments that agent needs to do its job. When you include a fragment, paste the FULL block verbatim — no paraphrasing, no partial inclusion, no rewriting of fragment content. Brief connective text between fragments (e.g., "Then: ...", "Note: ...") is fine. Format: one markdown section per role, with the role name as an h1 header (e.g. `# tax_strategist`). Output only the headered prompts, no preamble.