---
name: blurb_writing_basics
description: "Write a book blurb: the short reader-facing description for a back cover or product page. Build a source-facts file first, take the hook from the actual setup, state stakes without spoiling past the setup, use comp titles only when they are real and comparable, produce a one-liner, a standard blurb, and a long product page variant, and run a claims check so every factual line in the blurb is true of the book. Use when a finished or nearly finished book needs its back cover copy or retailer description drafted or revised."
metadata: { "includeInPrompt": true }
---

# Blurb Writing Basics

## Purpose

Write the short description that sells one specific book to a reader who has never seen it before. The blurb lives on the back cover of a print book and as the description on a retailer product page. Its job is narrow: name the book, place it in its genre, present the setup, raise the stakes, and stop while the reader still needs the book itself for the rest. A blurb is sales copy for readers. It is not a synopsis, it does not summarize the whole plot, and it never reveals the ending.

The work runs in a fixed order: record the verified facts of the book first, mark the line past which story material counts as a spoiler, draft from the setup only, add comp titles only after checking them, build the length variants from the standard draft, and finish with a claims check that compares every factual line in the blurb against the facts file. The worked example in this skill, a fictional mystery called The Lantern Ferry, is invented for teaching. No real book is presented as comparable to it, and no praise for it exists or is quoted.

Scope:
- copywriting is conversion copy for landing pages, emails, and product pages at page length. This skill writes one short book description, not a full sales page or campaign.
- social-bio-optimization is profile bios for a person or brand on a social platform. This skill describes a book, not a profile.
- literary-agent-querying is querying agents with a trade-facing letter that can include the ending. This skill is reader-facing and withholds the ending on purpose.
- This skill is the reader-facing book blurb itself: back cover copy and the retailer product page description, in short, standard, and long variants, with a claims check before delivery.
- Verification note, 2026-10-22: three sources were opened and read during drafting. First, the Amazon KDP help page "Write a Book Description" at https://kdp.amazon.com/en_US/help/topic/G201189630 supports the length and channel facts used here: KDP advises aiming for a 150-word paragraph with sentences that are easy to scan, the Description field limit is 4,000 characters including HTML tags, the first sentence should draw the reader in and set genre expectations, and the restrictions list for that field bans reviews, quotes, and testimonials, requests for customer reviews, spoiler information, website URLs, phone numbers, mail and email addresses, price and availability information, time-sensitive information, Unicode emojis, and keyword or book tag phrase lists. The same page lists the supported HTML tags for the field, including br, p, b, em, i, u, h4 to h6, ol, ul, and li. Second, the guide "Book Back Cover: How to Write One That Sells" at https://selfpublishing.com/book-back-cover/ supports the working range and structure used here: it describes the blurb as a 100 to 200 word sales pitch, lists the usual back cover elements (a tagline or hook, the blurb, testimonials, an author bio, and the ISBN barcode and price on print editions), gives a fiction order of tagline, protagonist and want, inciting conflict, stakes, and a final line that hooks without resolving, gives a nonfiction order of problem, promised outcome, bullet points on what the reader gains, an author authority line, and a closing line, and states the distinction that a blurb is a short spoiler-free pitch for readers while a synopsis summarizes the whole plot including the ending for agents and publishers. Third, the guide "Keywords in Your Book Description: What KDP Allows" at https://www.vappingo.com/word-blog/keywords-in-book-description/ was opened as a secondary summary and agrees with the KDP page on the 4,000 character limit including HTML and on keeping keyword lists out of the description, treating the description as reader-facing copy separate from backend keyword fields. One further guide was attempted and returned a bot check page, so nothing from it is cited or relied on here. What was NOT verified: no help page for IngramSpark, Barnes and Noble Press, Draft2Digital, Kobo, or Apple Books was opened, so this skill states no character limit, word target, or content rule for those retailers and tells the writer to check the current retailer help page at drafting time instead. No print trim, bleed, or barcode placement spec is stated, because cover production is outside this skill. No sales figure, bestseller practice, or endorsement custom is claimed. Every length other than the KDP 150-word aim and the 100 to 200 word range above is presented as a drafting choice for the writer to set, not as an industry standard.

## Workflow

1. Build the source-facts file before drafting any copy.
   - Write one fact per line, in plain statements that can be checked against the manuscript or the publishing record. Cover: title, author name as it appears on the cover, genre and subgenre, protagonist name and role, setting, time frame if the blurb will name one, the inciting event, what the protagonist wants, and the central conflict.
   - For nonfiction, cover instead: the problem the book addresses, the reader it is for, the method or approach the book actually uses, the main outcomes the book delivers, the author credentials that are real and relevant, and any structural facts the blurb will name, such as a chapter count or included exercises, only if they are true of the finished book.
   - Add every number the blurb might use to the facts file in words or digits exactly as verified: years of experience, ages, distances, counts of chapters, parts, or books in a series, and the book position in a series. A number that is not in the facts file does not go in the blurb.
   - Mark the facts file as the single source for the claims check in step 9. Drafting from memory, from an old synopsis, or from a pitch written before the book changed is how false lines enter a blurb. If the book changed during revision, update the facts file first.
   - The fixture facts file in the Operating Rules section shows the format, including the TITLE, FACT, COMP, and SPOILER line prefixes the checker script reads.

2. Mark the spoiler boundary before writing the hook.
   - Decide, in one sentence written at the top of the draft, how far into the story the blurb is allowed to go. A workable default boundary is the end of the setup: the protagonist, the normal state of their world, the inciting event, and the first decision or danger that follows from it. Material after that boundary stays out.
   - List the specific reveals that are banned from the blurb as SPOILER lines in the facts file: the identity behind a mystery, a betrayal, a death that is not part of the opening setup, a twist about who a character is, and the outcome of the central conflict. Name them in the plain wording a draft might use, because the checker in the Operating Rules matches phrases.
   - Treat the midpoint turn and the ending as banned by default. A blurb that needs the midpoint to sound interesting has a setup problem to fix in the draft, or a hook problem to fix in step 3, not a reason to move the boundary.
   - For nonfiction, the boundary works differently: the blurb may name the conclusions and outcomes, since readers buy nonfiction for the result, but it should not dump the full contents in place of a pitch. Name the problem, the approach, and the strongest outcomes, and leave the detail for the book.
   - For a later book in a series, the boundary includes the ending of earlier books. State only the series setup a new reader needs, and flag any line that reveals how a previous book ended.

3. Take the hook from the actual setup.
   - The hook is the strongest true sentence the setup can support: the protagonist in their situation, with the inciting event or the central tension inside the same line or the line after it. Write five to ten candidate hook lines, each built from a different fact in the facts file, then pick the one a reader can repeat after one reading.
   - A hook built from the setup survives the claims check. A hook built from a later reveal, a scene that was cut, or a mood the book does not sustain will fail step 9 or mislead the reader. If a candidate line is not true of the opening of the book, cut it at this step, not later.
   - Put genre signals in the first two lines. Name or show the setting, the kind of protagonist, and the kind of conflict early, so the right reader recognizes the book and the wrong reader can move on. KDP gives the same advice for its description field: the first sentence should draw the reader in and set expectations about genre.
   - Keep the hook specific. A named person, a concrete place, and a particular problem beat a general claim about love, loss, courage, or destiny. General lines fit any book, which is why they sell none of them.
   - Worked example, from the fictional book in the fixture: the setup facts are a night ferry dispatcher, a passenger who boards without being on the manifest, and a storm closing the bay. The hook line built from those facts is the opening of the fixture blurb: Mara Venn has worked the night ferry for six years, and she knows every regular by sight. The next lines put the unlisted passenger and the storm on the page. Nothing in the hook comes from past the setup.

4. Draft the standard blurb for fiction in setup, stakes, stop order.
   - Paragraph one, the setup: introduce the protagonist with one or two concrete details, their normal world, and what they want. Keep backstory out unless a single fact from it drives the conflict.
   - Paragraph two, the disruption: state the inciting event and the conflict it creates. Say what stands between the protagonist and what they want, in concrete terms from the facts file.
   - Paragraph three, the stakes: state what failure costs, in personal terms the reader can feel. Stakes name a loss, a danger, or a forced choice. They do not name the outcome. End on the open edge of the choice or danger, with the central question raised and left unanswered.
   - Close with a short line that returns to tone or genre, if the draft needs one. A closing line can restate the central question in sharper words or place the book for its reader. It cannot resolve the question the body raised.
   - Write the draft in third person and present tense as the default, even when the book itself uses first person or past tense. This is a drafting default for clarity, and a writer may choose first person for a book whose voice is the selling point, as long as the choice is deliberate and consistent through the whole blurb.
   - Name few characters. The protagonist, plus one other person if the conflict needs a face, is usually enough. Every extra name costs the reader effort and adds a fact to check.
   - Cut subplots, secondary settings, and theme statements from the draft. The blurb carries one story line: the main one.

5. Draft the standard blurb for nonfiction and memoir in problem, promise, proof order.
   - Open with the problem or situation the reader is in, stated in the reader terms the facts file uses. Then state the promise: what changes for the reader who uses the book, kept to outcomes the book actually delivers.
   - Follow with the approach: the method, framework, or path the book takes, named only as specifically as the book supports. A method name the book does not use, or a result the book does not produce, is a false claim even when it sounds like marketing.
   - Add a short list of concrete contents or gains for the long variant in step 8, drawn line by line from the facts file. Each listed item must correspond to a real chapter, section, exercise, or feature of the finished book.
   - Place one authority line where it helps: the author credential, experience, or prior work that is real, relevant, and already in the facts file. Authority supports the promise. It does not replace it.
   - For memoir, use the fiction order in step 4 for the story line, and borrow from this step only the closing placement line for readers of the kind of life story it is. The spoiler boundary still applies to the central events of the life as told in the book.

6. Use comp titles honestly, or not at all.
   - A comp title tells the reader what shelf the book belongs on. It works only when both halves of the claim hold: the comp book is real, and the comparison is fair on genre, tone, audience, or situation.
   - Verify each comp before naming it. Confirm the book exists under that exact title and author, from a retailer listing, a publisher page, or a library catalog the writer opens and reads. Confirm it is recent enough and close enough in kind that a reader of that book is a plausible reader of this one. Record the source where the comp was verified, with the date, in the comp record from the Output Contract.
   - Never invent a comp, never name a book from memory without checking it, and never stretch a comp past what the comparison can support. Naming a famous book the new book only resembles in setting misleads the reader and fails the claims check.
   - Phrase the comparison as reading fit, not as quality or success. A line in the form of "for readers of" plus a verified title makes a fit claim. A line that implies the new book shares the comp sales, awards, or reputation makes a claim the writer cannot support and must not write.
   - Limit comps to one or two titles. More than two reads as a list, weakens each comparison, and adds verification work for no gain.
   - If no comp can be verified and defended, ship the blurb with no comp line. A blurb without comps is complete. A blurb with a false comp is not.
   - The fictional example in this skill carries no comp line, on purpose: pairing a real book with an invented one as if the comparison had been researched would model the exact failure this step exists to prevent.

7. Handle praise, quotes, and credentials as sourced facts or leave them out.
   - Never invent a review quote, an endorsement, a praise line, or the name of a person or publication offering one. Never paraphrase a real review into a shorter, stronger quote. A quote in a blurb must be the exact words, from a named and checkable source, used with permission where permission is required.
   - Never claim bestseller status, sales numbers, award wins, award shortlists, ratings, or review counts unless the facts file records the exact claim with its source and date, and the claim is still true at delivery. These claims go stale, so the date is part of the fact.
   - Check the channel before placing any quote at all. On Amazon KDP, the description field itself bans reviews, quotes, and testimonials outright, per the KDP help page cited in the Purpose section. Praise that is real and permitted belongs in the channels that allow it, such as a print back cover or a separate editorial review section where the retailer provides one, not pasted into a field that bans it.
   - Author credentials follow the same rule as story facts: real, relevant, in the facts file, or out. A credential from a different field, an honorary title presented as an earned one, or a role the author held briefly and the blurb inflates will mislead the reader in the same way a false plot line does.
   - When in doubt, cut the praise and let the setup carry the blurb. Steps 3 and 4 exist because a true setup, well told, is the strongest part of most blurbs.

8. Build the length variants from the standard draft.
   - Short variant, the one-liner: one or two lines that carry the protagonist, the situation, and the tension, for use in catalogs, ads, series pages, and any place that allows a single line. Build it by cutting the standard draft down to its hook plus one stakes phrase, not by writing a new claim. Every fact in the one-liner must already appear in the standard draft.
   - Standard variant: the back cover and default product page blurb. Work to the range the sources support: the selfpublishing.com guide describes the blurb as a 100 to 200 word sales pitch, and KDP advises aiming for a 150-word paragraph for its description field. Draft to about 150 words, then trim or extend inside the 100 to 200 range to fit the cover space the book actually has.
   - Long variant, the product page version: extend the standard draft with material the short space excluded, such as a contents list for nonfiction, a series placement line, a short author authority line, or one added paragraph of setup detail. The long variant is still a blurb, not a synopsis: the spoiler boundary from step 2 applies in full, and no new factual claim may enter at this length that was not in the facts file.
   - Watch the channel limit, not a habit. For KDP, the description field limit is 4,000 characters including HTML tags, so a long variant that fits on one retailer may still need trimming for that field, and formatting tags spend part of the budget. For any other retailer, check the current limit on that retailer help page at drafting time. No limit for other retailers is stated in this skill, because none was verified for them.
   - Keep the three variants consistent with each other. They may differ in length and detail. They may not differ in facts, genre placement, series position, or the promise they make. A reader who meets two variants should be meeting the same book.
   - Count words and characters for each variant and record the counts in the deliverable. Counts come from a count, not an estimate: the checker in the Operating Rules prints both for any blurb file it is run on.

9. Run the claims check, line by line, then with the checker.
   - Print the standard blurb and the facts file side by side. Go through the blurb one sentence at a time. For each sentence, point to the fact or facts that make it true. A sentence with no supporting fact gets rewritten to match the facts, or cut.
   - Check the high risk lines twice: any line with a number, a date, a place claim, a series position, a credential, a comp title, a quote, or a superlative. Superlatives about the book itself, such as calling it the first, the only, or the definitive book on its subject, are factual claims and need a source in the facts file, or they come out.
   - Check tone claims against the book as written. A blurb that promises a cozy tone for a grim book, or a fast pace for a slow one, misleads even when every plot fact is right. Tone lines must be true of the reading experience, and the writer should be able to name chapters or passages that support them.
   - Check that no SPOILER phrase from the facts file appears in any variant, and that no variant reveals material past the boundary in other words. The checker catches the listed phrases. The writer catches the same reveal phrased differently.
   - Run blurb_check.py from the Operating Rules on each variant against the facts file. Fix every flag it raises: an unverified number, an unverified title, quoted text, or a spoiler phrase. The fixture run in the Operating Rules shows a clean result: words 107, characters 562, flags 0, verdict PASS.
   - Record the claims check in the deliverable: the date, the variants checked, the checker output for each, and any line that was cut or rewritten because it failed. A blurb with no check record is treated as unchecked.

10. Format for the channel, then test the blurb cold.
   - For a print back cover, deliver clean text with paragraph breaks marked, and leave barcode space, bio placement, and layout to cover production. Note in the delivery which lines are the tagline, which are the body, and which are optional if space runs short.
   - For the KDP description field, format only with the HTML the KDP page lists as supported: br, p, b, em, i, u, h4 to h6 headings, and ol, ul, and li for lists. Count characters with the tags included against the 4,000 character limit. Keep out everything the KDP restrictions list bans, including quotes and testimonials, spoilers, contact details, URLs, price or availability lines, time-sensitive lines, emojis, and keyword lists.
   - For any other retailer, read that retailer current description rules before formatting, and note which page was checked and on what date in the channel notes. Rules change, and a rule remembered from a past book is not a verified rule for this one.
   - Cold test: give the standard blurb, with no cover and no other context, to a reader who does not know the book. Ask what genre it is, who it follows, what goes wrong, and what the reader expects to happen if they keep reading. Wrong or vague answers point at the lines to fix: genre signals, setup clarity, or stakes.
   - Read the final blurb aloud once. Lines that stumble aloud will stumble on the page. Fix rhythm at the sentence level, without adding new claims while polishing.
   - Freeze the delivered set: facts file, three variants, comp record, claims check record, and channel notes, kept together. Any later edit to any variant restarts step 9 for that variant.

## Output Contract

Deliver these items, in this order:

1. Source-facts file: the verified facts for the book, in the TITLE, FACT, COMP, and SPOILER line format the checker reads, including every number, credential, and series fact the blurbs use, each true of the finished book.
2. One-liner: the short variant, one or two lines, built only from facts already in the standard blurb, with its word count.
3. Standard blurb: the main variant, drafted to about 150 words and delivered inside the 100 to 200 word range, with its word count and character count.
4. Long product page variant: the extended variant, with its word count and character count, the channel it was built for, and that channel character limit as checked on the delivery date.
5. Comp record: for each comp title named in any variant, the exact title and author, where and on what date its existence and fit were verified, and the comparison the blurb actually claims. If no comp is used, the record says so and says why.
6. Claims check record: the date of the check, the checker output for each variant, and a list of any line cut or rewritten during the check and the reason for each change.
7. Channel notes: for each delivery channel, the rules source checked and the date checked, including the KDP restrictions when KDP is a channel, plus any praise or quote material that was held out of a channel because that channel bans it.
8. Limits: anything the blurb set does not cover, stated plainly, for example a retailer whose current rules were not checked, a comp that could not be verified and was dropped, or a series fact that could not be confirmed before delivery.

## Operating Rules

1. Facts file first, copy second. No blurb line is drafted from memory when a facts file can be built, and the facts file is updated before the copy whenever the book changes.
2. The spoiler boundary is set before drafting and does not move to make a weak hook stronger. Material past the setup, the midpoint turn, and the ending stay out of every variant.
3. No invented praise, ever. No fake review quotes, no invented endorsements, no invented bestseller, sales, award, or ratings claims, and no comp title that has not been verified as a real and comparable book.
4. Every number, credential, series position, and superlative in a blurb traces to the facts file or comes out. If a claim cannot be pointed to a fact, the claim is cut, not softened into a vaguer version of the same claim.
5. Channel rules are checked on the current help page at drafting time. The KDP facts in this skill were verified on 2026-10-22. Other retailers rules are checked when needed, never quoted from memory.
6. The three variants agree with each other on every fact. Length may change between variants. Facts, genre, and promise may not.
7. The claims check is run on every variant before delivery, and again after any edit. The checker output is filed in the claims check record, not summarized from memory.
8. Use the checker below for the mechanical part of the claims check. Save it as blurb_check.py, run it as its header describes, and put its full output in the deliverable as part of item 6 of the Output Contract.

### Blurb claims checker (blurb_check.py)

Run: `python3 blurb_check.py facts.txt blurb.txt` checks one blurb file against one facts file. Run it once per variant. The facts file uses one entry per line: FACT lines hold verified facts, COMP lines list comp titles verified as real and comparable books, SPOILER lines list banned reveal phrases, and a TITLE line names the book itself so its own title is not flagged. In the blurb file, mark book titles with underscores, like _The Lantern Ferry_, so the checker can find them.

Fixture facts file, for the fictional book The Lantern Ferry. The book, its town, and its people are invented for this fixture:

```text
TITLE: The Lantern Ferry
FACT: Mara Venn is a ferry dispatcher in the fictional town of Salt Hollow.
FACT: Mara Venn is thirty one years old and has worked the night ferry for six years.
FACT: On the first night of the winter schedule, a passenger boards who is not on the manifest.
FACT: The ferry carries passengers across the bay between Salt Hollow and Port Ansel.
FACT: Mara must decide whether to sail before the storm closes the bay.
FACT: The book is a mystery novel told in third person.
FACT: The passenger carries no bag and knows Mara Venn by name.
FACT: Mara checks the manifest and watches the weather as part of her dispatcher work.
SPOILER: Mara is the one who cut the ferry cable
SPOILER: the passenger is Mara's brother
```

Fixture blurb file, the standard variant drafted from those facts only:

```text
Mara Venn has worked the night ferry for six years, and she knows every regular by sight. As a ferry dispatcher in Salt Hollow, she checks the manifest, watches the weather, and keeps the crossing to Port Ansel on schedule. On the first night of the winter schedule, a passenger boards who is not on the manifest. He carries no bag. He knows her name. The storm is closing the bay, and the ferry cannot wait long for answers. Mara must decide whether to sail before the storm closes the bay, and what to do about a stranger who should not be on her boat at all.
```

Expected output for the fixture run:

```text
words: 107
characters: 562
flags: 0
verdict: PASS
```

The fixture passes because every number word in the blurb (six, first) appears in the facts file, no title is named, no quoted text appears, and neither spoiler phrase appears. A draft that adds an unverified comp title, a praise quote, an invented sales claim, or a spoiler phrase prints one flag line per problem and ends with verdict REVIEW.

blurb_check.py (plain Python, standard library only). Save this code as blurb_check.py:

```python
#!/usr/bin/env python3
"""Check a book blurb against a source-facts file.

Save this code as blurb_check.py, then run:

  python3 blurb_check.py facts.txt blurb.txt

The facts file is plain text with one entry per line:

  FACT: Mara Venn is a ferry dispatcher in Salt Hollow.
  COMP: The Night Ferry (use only titles verified as real books)
  SPOILER: Mara is the one who cut the ferry cable.

Lines starting with FACT: are the verified facts for the book.
Lines starting with COMP: list comp titles that have been
verified as real, comparable books. Any other title named in
the blurb is flagged.
Lines starting with SPOILER: list phrases that reveal story
material past the setup. Any spoiler phrase found in the
blurb is flagged.

The blurb file is plain text. Mark book titles in the blurb
with underscores, like _The Night Ferry_, so the checker can
find them. Put review quotes in double quotes if they appear
at all. The checker flags every double-quoted string, because
a product description is not the place for unverified praise,
and some retailers ban quotes in the description field.

What the checker does:
  - Reports word count and character count for the blurb.
  - Flags any number or quantity word in the blurb that does
    not appear in the facts file.
  - Flags any underscored title that is not listed as a COMP
    and is not the book title from a TITLE: line in the facts.
  - Flags any double-quoted string in the blurb.
  - Flags any SPOILER phrase that appears in the blurb.
  - Prints PASS when no flags fire, otherwise REVIEW.

What it does not do: it cannot prove a prose sentence true.
A writer still checks each factual sentence in the blurb
against the FACT lines by reading. The checker catches the
mechanical risks: invented numbers, unverified titles,
quotes, and named spoilers.
"""
import re
import sys

NUMBER_WORDS = [
    "one", "two", "three", "four", "five", "six", "seven",
    "eight", "nine", "ten", "eleven", "twelve", "first",
    "second", "third", "bestseller", "best-selling",
    "award-winning", "million", "thousand",
]


def load_facts(path):
    facts_text = ""
    comps = []
    spoilers = []
    title = ""
    with open(path, encoding="utf-8") as handle:
        for raw in handle:
            line = raw.strip()
            if not line or line.startswith("#"):
                continue
            if line.startswith("FACT:"):
                facts_text += " " + line[5:].strip().lower()
            elif line.startswith("COMP:"):
                comps.append(line[5:].strip())
            elif line.startswith("SPOILER:"):
                spoilers.append(line[8:].strip())
            elif line.startswith("TITLE:"):
                title = line[6:].strip()
    return facts_text, comps, spoilers, title


def main(argv):
    if len(argv) != 3:
        print("usage: blurb_check.py FACTS_FILE BLURB_FILE")
        return 2
    facts_text, comps, spoilers, title = load_facts(argv[1])
    with open(argv[2], encoding="utf-8") as handle:
        blurb = handle.read()
    words = len(blurb.split())
    chars = len(blurb)
    print(f"words: {words}")
    print(f"characters: {chars}")
    flags = []
    lowered = blurb.lower()
    for token in NUMBER_WORDS:
        if re.search(r"\b" + re.escape(token) + r"\b", lowered):
            if token not in facts_text:
                flags.append(f"UNVERIFIED_NUMBER: {token}")
    for digit in sorted(set(re.findall(r"\d+", blurb))):
        if digit not in facts_text:
            flags.append(f"UNVERIFIED_NUMBER: {digit}")
    allowed = {c.lower() for c in comps}
    if title:
        allowed.add(title.lower())
    for found in re.findall(r"_([^_]+)_", blurb):
        if found.strip().lower() not in allowed:
            flags.append(f"UNVERIFIED_TITLE: {found.strip()}")
    for quote in re.findall(r'"([^"]+)"', blurb):
        flags.append(f"QUOTED_TEXT: {quote.strip()}")
    for spoiler in spoilers:
        if spoiler.lower() in lowered:
            flags.append(f"SPOILER_FOUND: {spoiler}")
    for flag in flags:
        print(flag)
    print(f"flags: {len(flags)}")
    print("verdict: " + ("PASS" if not flags else "REVIEW"))
    return 0 if not flags else 1


if __name__ == "__main__":
    raise SystemExit(main(sys.argv))
```
