Skip to content

KDP prep: ch10 QA blocker fixes + KDP listing metadata & upload checklist - #1

Merged
flaviogoncalves merged 7 commits into
mainfrom
kdp-ready-prep
Jul 5, 2026
Merged

KDP prep: ch10 QA blocker fixes + KDP listing metadata & upload checklist#1
flaviogoncalves merged 7 commits into
mainfrom
kdp-ready-prep

Conversation

@flaviogoncalves

Copy link
Copy Markdown
Owner

Drives the 2nd edition (Asterisk 22 LTS) toward "ready to upload on Amazon KDP." Three workstreams: QA typesetting fixes, KDP store-listing metadata, and the front-matter ISBN note.

1. QA typesetting fixes (book/qa/REPORT.md)

ch10 — Legacy Channels (the BLOCKER):

  • Lifted step headings out of code fences that wrapped them as if they were config: Step 2: system.conf configuration file and Step 4: vim /etc/dahdi/system.conf are now prose lead-ins with the command in its own fence.
  • Split a multi-file config dump where the prose line In the file extensions.conf was trapped inside the sip.conf fence — now two separate fenced blocks with the label between them.
  • Fixed scrambled lab step numbering: Step 8 -> Step 5 (sequence was 3, 4, 8).
  • Replaced leaked Portuguese senha with mysecret in six secret=/password= config examples; trimmed a For example: Step 1: run-on lead-in.

ch14 — Queues (the other BLOCKER): the image alt-text bracket issue is already resolved in the current source — none of the figure alt-texts contain unescaped [general]/[customerservice] brackets, and the queues.conf/agents.conf dumps are single fenced blocks. No change needed.

Secondary defects (ch20 Prometheus block, ch12 Dial()/Read() options, ch06 codec table, ch13 vendas/ConfBridge Portuguese, ch18 lab steps, ch19 fuzzing URLs, ch16 ODBC steps, ch02 lists): audited against the current source and confirmed already resolved by the earlier "QA phase 2" pass. No further change needed.

2. Front-matter ISBN

Replaced the [author TODO] ISBN placeholder in src/chapters/00-front-matter.md with a clean note that KDP assigns a free ISBN at publication (and that the 1st-ed ISBN is not reused).

3. KDP listing metadata (new book/kdp/ files)

  • listing-metadata.yaml — machine-readable store listing: prices ($49.99 print / $9.99 Kindle), Amazon description (~200 words, "only current Asterisk 22 / PJSIP-first, every example lab-verified"), 7 keywords, 2 BISAC categories (COM043000 Networking, COM046000 OS/Linux), and author bio (from the front matter).
  • UPLOAD-CHECKLIST.md — the ready-to-paste package plus the exact by-hand KDP steps (choose free ISBN, build interior + regenerate cover spine, upload, paste metadata, set prices, order proof, publish), since KDP has no publishing API.

Build / cover status

  • Markdown assembles cleanly: validated by building the EPUB via the repo's pandoc pipeline (all 23 chapters, fences balanced) after every edit.
  • Print interior PDF + final page count: NOT producedxelatex/TeX was unavailable in the automation environment (only pandoc is installed). The page count is therefore unlocked, so the cover spine must be regenerated (book/illustrate/render_kdp_cover.py, set PAGES=) once the interior is built locally. The committed cover PNG was rendered for an earlier 389pp estimate. Steps are in the checklist.

Follow-up (optional)

  • Back-of-book index is still a gap — noted in the checklist, not built here.

🤖 Generated with Claude Code

Flavio Eduardo de Andrade Gonçalves and others added 7 commits June 20, 2026 23:12
…+ upload checklist

QA fixes (book/qa/REPORT.md):
- ch10 (Legacy Channels): lift step headings out of code fences ("Step 2:
  system.conf", "Step 4: vim system.conf"); split a multi-file config dump where
  the prose "In the file extensions.conf" was trapped inside the sip.conf fence;
  fix scrambled lab step numbering (Step 8 -> Step 5); replace leaked Portuguese
  "senha" with "mysecret" in six config examples.
- Verified the other REPORT.md defects (ch20 Prometheus block, ch12 Dial/Read
  options, ch06 codec table, ch13 vendas/ConfBridge, ch18 lab steps, ch19 fuzzing
  URLs, ch16 ODBC steps, ch02 lists, ch14 queues image alt-text) are already
  resolved in the current source.

Front matter: replace the [author TODO] ISBN placeholder with a note that KDP
assigns a free ISBN at publication.

KDP listing metadata (new book/kdp/ files):
- listing-metadata.yaml: prices ($49.99 print / $9.99 Kindle), description,
  7 keywords, 2 BISAC categories (COM043000, COM046000), author bio.
- UPLOAD-CHECKLIST.md: the ready-to-paste package + the exact manual KDP steps
  (free ISBN, build interior + cover, upload, set prices, proof, publish).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Apply four design fixes to both cover generators and regenerate the PNGs:

- Make the node-graph the single hero mark, rendered clean/solid white and
  centered on the blue top band on both covers; remove the 6-point
  compass-star from both scripts.
- render_cover.py: remove the faint low-page node-graph that overlapped the
  "Building an IP PBX with Asterisk 22 LTS" subtitle (collision fixed).
- render_kdp_cover.py: lead the back-cover blurb with a bold hook — the only
  current, PJSIP-first guide to Asterisk 22, vs. the six-years-stale,
  pre-PJSIP incumbent; re-wrapped so nothing overflows the back panel.
- Add an Asterisk-orange (232,119,34) accent, used sparingly: the node-graph
  center node and the title underline rule.

Regenerated: src/images/cover.png (1700x2200) and
book/kdp/asterisk-guide-cover.png (4839x2851, spine left at 389pp).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…klist

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…tents

Multi-digit page numbers in the table of contents overflowed past the right
margin (KDP 'text outside the margins'). Widen @pnumwidth/@tocrmarg. Page-count
neutral, so the cover spine is unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…->0.7)

ToC page numbers (and other right-edge content) sat on KDP's right-margin line
and got flagged 'text outside the margins'. Pull the whole text block inward with
larger margins; the bigger gutter also suits a 400+ page perfect-bound book.
Page count will shift, so the cover is regenerated to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ears the gutter minimum

KDP flagged insufficient gutter: asymmetric margins on a one-sided layout left
the binding on the 0.625in outer side on half the pages. Symmetric 0.75in puts
>=0.625in on whichever side binds. Total side margin unchanged (1.5in) so page
count stays 426 and the cover remains valid.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@flaviogoncalves
flaviogoncalves merged commit 9e97d45 into main Jul 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant