Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Convert one representative per template cluster and derive member pages from it

Open
#2,898 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
15/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
php, wordpress
Domain
backend

Research direction

This is design work spanning the conversion pipeline and a cluster declaration that depends on Automattic/data-liberation-agent#784, which is not in this repository. Read the existing per-route conversion path first to see where style resolution and page assembly happen, and decide how a representative's output would be reused. Done would mean the byte-identical and timing acceptance criteria pass on a fixture with N = 5 and N = 20 members.

Written by the indexing model from the issue text.

Description

Problem

Every route is converted independently, even when most routes share one template. On a 49-route site-builder import, 20 routes are product, category or blog pages built from 3 templates. Each one runs the full HTML → blocks conversion, style resolution and page assembly. Most of that work yields the same structure; only the slot content differs.

Data Liberation Agent is adding template clustering on the capture side (Automattic/data-liberation-agent#784): one representative per template plus a verification member, with other members derived. Conversion has no equivalent, so even a clustered capture pays full conversion for every member.

Proposal

When the artifact declares template clusters (representative, members, verified anchor ids for the varying slots):

  1. Convert the representative fully.
  2. For each member, reuse the representative's converted structure and styles, and convert only the content of the varying slots.
  3. Fall back to full conversion for any member whose slots don't map cleanly, and record a finding (template_member_converted_fully, unit page).

Acceptance

  • On a fixture with one template and N members, conversion cost grows with slot content, not with N × page size. Report timings for N = 5 and N = 20.
  • Each derived member's output is byte-identical to its full conversion on the fixture (verified by the test).
  • A member whose slots don't map produces the full-conversion output plus the finding.

Depends on Automattic/data-liberation-agent#784 for cluster declarations.

AI assistance: drafted by Claude (Anthropic) via Pi from a site-builder import investigation; reviewed by Chris Huber.

Dominant language
PHP
Stars
21
Forks
2
Avg merge
8h 35m
Merged PRs (30d)
659

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Automattic/blocks-engine

All issues in Automattic/blocks-engine

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.