# How the Quick Rejection Checklist Works in AI Berkshire: A Binary Hard-Stop Filter

> Discover how AI Berkshire's Quick Rejection Checklist functions as a binary hard-stop filter. Understand its eight disqualifying conditions and learn why preventing mistakes is paramount.

- Repository: [Xbt Lin/ai-berkshire](https://github.com/xbtlin/ai-berkshire)
- Tags: how-to-guide
- Published: 2026-07-10

---

**The Quick Rejection Checklist (快速否决清单) is a binary hard-stop filter embedded in the `/investment-checklist` skill that immediately disqualifies companies triggering any of eight specific disqualifying conditions, embodying the principle "宁可错过，不可做错" (better to miss a good opportunity than to make a mistake).**

The AI Berkshire project (`xbtlin/ai-berkshire`) implements a rigorous Buffett-style investment analysis workflow. Within this system, the **Quick Rejection Checklist** serves as the final gatekeeper, located at Step 5 of the six-gate "pre-buy" process defined in [`skills/investment-checklist.md`](https://github.com/xbtlin/ai-berkshire/blob/main/skills/investment-checklist.md).

## What Is the Quick Rejection Checklist?

The Quick Rejection Checklist is a deliberately binary filter designed to eliminate unsuitable investment targets before they consume analytical resources. Located at lines 90–100 of [`skills/investment-checklist.md`](https://github.com/xbtlin/ai-berkshire/blob/main/skills/investment-checklist.md), this checklist operates as **Step 5** in the `/investment-checklist` skill execution flow.

If any single item on the checklist evaluates to true, the company is immediately marked as **否决** (rejected). The workflow then jumps directly to the final output stage, bypassing further valuation or qualitative analysis. This hard-stop mechanism ensures that analysts avoid wasting time on data-poor or fundamentally flawed opportunities.

## The Eight Disqualifying Conditions (快速否决清单)

The checklist consists of eight markdown-style task items. Each represents a hard-no rule that triggers immediate disqualification:

- **说不清楚这家公司怎么赚钱** – You cannot explain the company's business model clearly.
- **连续3年自由现金流为负且看不到改善** – Negative free cash flow for three consecutive years with no visible improvement trend.
- **管理层有诚信污点** – Management has documented integrity issues or credibility stains.
- **竞争优势正在被不可逆侵蚀** – Competitive advantages (moat) are being irreversibly eroded.
- **需要靠“下一个接盘者出更高价”来赚钱（博傻）** – Profit depends on the "greater fool theory" (relying on a higher bidder).
- **无法承受这笔投资归零的后果** – You cannot afford the total loss of this investment.
- **买入理由主要是“别人都在买”或“最近涨得好”** – Primary reason for buying is "everyone else is buying" or "recent price performance."
- **无法用200字以内写清楚买入理由** – You cannot articulate the investment thesis in under 200 characters.

## Execution Flow and Implementation

When you invoke the `/investment-checklist` skill, the system executes a five-step pipeline:

1. **Input Parsing** – The skill parses the string of company names or tickers.
2. **Data Collection** – Agents gather required financial metrics and qualitative data.
3. **Six-Gate Checklist** – Steps 3–4 run the standard Buffett pre-buy analysis gates.
4. **Step 5 – Quick Rejection** – The system iterates over the eight disqualifying conditions. If any check evaluates true, the company is flagged as rejected.
5. **Output Generation** – Rejected companies display the message: `❌ 未通过 Checklist – [reason]`.

The generated Codex artifact at [`codex-skills/investment-checklist/SKILL.md`](https://github.com/xbtlin/ai-berkshire/blob/main/codex-skills/investment-checklist/SKILL.md) wraps this logic into the `/investment-checklist` command, while quantitative verification utilities reside in [`tools/financial_rigor.py`](https://github.com/xbtlin/ai-berkshire/blob/main/tools/financial_rigor.py).

## Practical Usage Examples

### Command Line Usage

Invoke the skill directly from a Claude Code session to screen multiple tickers:

```bash
/investment-checklist 腾讯, 茅台, 拼多多

```

If 拼多多 (PDD) fails the free cash flow rule, the output will contain:

```

❌ 未通过 Checklist – 连续3年自由现金流为负且看不到改善

```

### Python Implementation

For custom pipelines, implement the rejection logic directly:

```python
def quick_reject(company):
    """
    Evaluates a company against the Quick Rejection Checklist.
    Returns a list of failure reasons (empty if passed).
    """
    reasons = []
    
    if not company.can_explain_business:
        reasons.append("说不清楚这家公司怎么赚钱")
    
    if (company.free_cash_flow_last_3_years < 0 and 
        not company.fcff_trend_improving):
        reasons.append("连续3年自由现金流为负且看不到改善")
    
    if company.management_integrity_issues:
        reasons.append("管理层有诚信污点")
    
    if company.moat_eroding_irreversibly:
        reasons.append("竞争优势正在被不可逆侵蚀")
    
    # ... additional rules ...

    
    return reasons

# Usage example

reject_reasons = quick_reject(pdd_data)
if reject_reasons:
    print(f"❌ 未通过 Checklist – {'; '.join(reject_reasons)}")

```

### Markdown Rendering

When generating investment reports, render the checklist as follows:

```markdown

### 快速否决清单 (Quick Rejection Checklist)

- [ ] 说不清楚这家公司怎么赚钱  
- [ ] 连续3年自由现金流为负且看不到改善  
- [ ] 管理层有诚信污点  
- [ ] 竞争优势正在被不可逆侵蚀  
- [ ] 需要靠"下一个接盘者出更高价"来赚钱（博傻）  
- [ ] 无法承受这笔投资归零的后果  
- [ ] 买入理由主要是"别人都在买"或"最近涨得好"  
- [ ] 无法用200字以内写清楚买入理由  

```

Any checked box in this list automatically signals a hard rejection.

## Design Philosophy and Source Files

The Quick Rejection Checklist operationalizes the AI Berkshire principle **"宁可错过，不可做错"** (better to miss than to make a mistake). By eliminating clearly unsuitable candidates early in the workflow, the system prevents cognitive bias and sunk-cost fallacies from influencing downstream analysis.

**Key source files:**

- [`skills/investment-checklist.md`](https://github.com/xbtlin/ai-berkshire/blob/main/skills/investment-checklist.md) – Contains the source definition of the full Buffett-style checklist, including the Quick Rejection section (lines 90–100).
- [`codex-skills/investment-checklist/SKILL.md`](https://github.com/xbtlin/ai-berkshire/blob/main/codex-skills/investment-checklist/SKILL.md) – Generated Codex wrapper exposing the checklist as the `/investment-checklist` command.
- [`tools/financial_rigor.py`](https://github.com/xbtlin/ai-berkshire/blob/main/tools/financial_rigor.py) – Provides quantitative verification utilities referenced by the checklist rules.
- [`README.md`](https://github.com/xbtlin/ai-berkshire/blob/main/README.md) – Documents the `/investment-checklist` skill in the command table.

## Summary

- The **Quick Rejection Checklist** is a binary filter at Step 5 of the AI Berkshire investment workflow.
- It contains **eight hard-no rules** (快速否决清单) that immediately disqualify companies if any condition is met.
- Located in [`skills/investment-checklist.md`](https://github.com/xbtlin/ai-berkshire/blob/main/skills/investment-checklist.md) (lines 90–100), it implements the "宁可错过，不可做错" principle.
- Rejected companies display `❌ 未通过 Checklist – [reason]` and bypass further analysis.
- The checklist integrates with [`tools/financial_rigor.py`](https://github.com/xbtlin/ai-berkshire/blob/main/tools/financial_rigor.py) for quantitative validation.

## Frequently Asked Questions

### What happens when a company fails the Quick Rejection Checklist?

The company is immediately flagged as **否决** (rejected) and the workflow jumps to the final output stage. The system displays `❌ 未通过 Checklist – [specific reason]` and skips all remaining valuation and qualitative analysis steps, preventing wasted computational and analytical resources.

### Can I customize the rejection criteria?

Yes. The checklist is defined in [`skills/investment-checklist.md`](https://github.com/xbtlin/ai-berkshire/blob/main/skills/investment-checklist.md) (lines 90–100) as a standard markdown task list. You can modify the eight disqualifying conditions in this source file, and the changes will propagate to the generated [`codex-skills/investment-checklist/SKILL.md`](https://github.com/xbtlin/ai-berkshire/blob/main/codex-skills/investment-checklist/SKILL.md) wrapper upon regeneration.

### How does the Quick Rejection Checklist relate to the six-gate Buffett process?

The six-gate Buffett pre-buy process (Steps 3–4) performs initial qualitative screening. The **Quick Rejection Checklist** operates as Step 5, serving as a final hard-stop filter that catches disqualifying factors the earlier gates might have missed. It is the last line of defense before committing to deep financial modeling.

### Where does the quantitative data for the checklist come from?

The checklist relies on data collected during Step 2 of the skill execution, with quantitative verification utilities provided by [`tools/financial_rigor.py`](https://github.com/xbtlin/ai-berkshire/blob/main/tools/financial_rigor.py). This module supplies functions to calculate free cash flow trends, evaluate management integrity scores, and assess competitive moat stability referenced by the rejection rules.