zbeam-page-orchestrator

star 0

Orchestrates full page generation section by section. Use when writing a new page or doing a complete rewrite. More token-efficient than full-page mode.

Air2air By Air2air schedule Updated 6/12/2026

name: zbeam-page-orchestrator description: "Section-by-section page orchestration. Use when generation-loop stalls on oversized pages. Not the primary path — generation-loop handles routine work."

Z-Beam Page Orchestrator

Manual-only skill — called by Todd directly, not by weekly-batch or generation-loop. Use when: writing a new page where the full-page content-writer would exceed context limits. Alternative to generation-loop for very large pages or slow-start situations. generation-loop is preferred for routine new-page work; use this when generation-loop stalls.

Sequences zbeam-content-writer one section at a time. Each call is small and focused. The page section (title, description, meta) is always written last.

Input required: slug, content type (material | application | location), mode (new | update)

Mode:

  • new — page doesn't exist yet; uses zbeam-content-writer section:[x]
  • update — page exists; uses zbeam-page-updater section:[x]

Step 1: Prerequisites

# Confirm editorial brief exists
ls data/research/editorial-brief-[slug]-*.json | sort | tail -1
import json, glob

eb_file = sorted(glob.glob('data/research/editorial-brief-[slug]-*.json'))[-1]
eb = json.load(open(eb_file))
print('contentType:', eb.get('contentType', 'material'))
print('readyToWrite:', eb.get('readyToWrite', True))
if not eb.get('readyToWrite', True):
    print('BLOCKED — gaps:', eb.get('blockingGaps', []))

Stop if readyToWrite is false. Report blocking gaps to user.


Step 2: Create page shell (new pages only)

If no YAML file exists yet, create a minimal shell before section writes begin:

import yaml
from datetime import date

slug = '[slug]'
content_type = '[material|application|location]'
today = date.today().isoformat()

shell = {
    'document': {
        'id': slug,
        'contentType': content_type,
        'schemaVersion': '7.0.0'
    },
    'routing': {
        'slug': slug,
        'fullPath': f'/materials/[category]/[subcategory]/{slug}',
        'category': '[category]',
        'subcategory': '[subcategory]'
    },
    'page': {
        'title': f'[{slug} — placeholder]',
        'description': '',
        'subject': '',
        'keywords': []
    }
}

path = f'frontmatter/{content_type}s/{slug}.yaml'
with open(path, 'w') as f:
    yaml.dump(shell, f, allow_unicode=True, sort_keys=False, default_flow_style=False)
print(f'Shell created: {path}')

For rewrite mode (page already exists): skip this step.


Step 3: Run sections in order

Read references/section-sequences.md for the full section tables (material + application) and the pre-extract logic that loads the written-sections snapshot and slices the section brief from all three research briefs before each section write.

Which skill to use:

  • Mode newzbeam-content-writer
  • Mode updatezbeam-page-updater

Validation after each section:

python3 -c "import yaml; yaml.safe_load(open('frontmatter/[type]s/[slug].yaml'))" && echo "valid"

Do not skip ahead. Each section builds on the previous one, and page depends on all of them.


Progress log — copy and track as you go

Material page:

[ ] 1. characteristics
[ ] 2. laserInteraction
[ ] 3. machineSettings
[ ] 4. industryApplications
[ ] 5. regulatoryStandards
[ ] 6. faq
[ ] 7. serp        ← title + metaDescription
[ ] 8. page        ← description + keywords (last)

Application page:

[ ] 1. problems
[ ] 2. howToProceed
[ ] 3. faq
[ ] 4. enhancements
[ ] 5. serp        ← title + metaDescription
[ ] 6. page        ← description + keywords (last)

Mark each [x] when the section passes YAML validation with no FAIL items.


Step 4: Final validation pass (after all sections complete)

Run in order once all sections are marked [x]:

  1. Post-gen report group:prose — fast prose check, YAML only
  2. Post-gen report group:seo — SERP fields + sectionDescription, YAML only
  3. Fix all FAIL items from steps 1–2 (surgical string replacement)
  4. Post-gen report group:data — source grounding + required sentences (loads briefs)
  5. Fix any FAIL items from step 4
  6. zbeam-crosslinker [slug] — adds internal links
  7. zbeam-content-validator [slug] — full gate (loads only what each dim needs)

Report to user

  • Content type + sections completed
  • Word count per section
  • FAIL items encountered and fixed during section writes
  • Post-gen score
  • Crosslinks added
  • Validator result (PASS / FAIL with dimension scores)
Install via CLI
npx skills add https://github.com/Air2air/z-beam --skill zbeam-page-orchestrator
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator